From a614ec724b28a9cf91ae3d456d8009d6f30a8da1 Mon Sep 17 00:00:00 2001 From: dcode Date: Thu, 4 Feb 2021 03:11:24 +0100 Subject: [PATCH 1/3] Optimize shadow stack pass --- src/passes/shadowstack.ts | 32 ++++++++++++++++++++++---------- 1 file changed, 22 insertions(+), 10 deletions(-) diff --git a/src/passes/shadowstack.ts b/src/passes/shadowstack.ts index 54ead248b0..588bb29246 100644 --- a/src/passes/shadowstack.ts +++ b/src/passes/shadowstack.ts @@ -162,6 +162,18 @@ function matchTostack(module: Module, expr: ExpressionRef): ExpressionRef { return 0; } +/** Tests whether a `value` matched by `matchTostack` needs a slot. */ +function needsSlot(module: Module, value: ExpressionRef): bool { + switch (_BinaryenExpressionGetId(value)) { + // no need to stack null pointers + case ExpressionId.Const: return !isConstZero(value); + // already kept in another slot + case ExpressionId.LocalGet: + case ExpressionId.LocalSet: return false; // tee + } + return !matchTostack(module, value); +} + /** Instruments a module with a shadow stack for precise GC. */ export class ShadowStackPass extends Pass { /** Stack frame slots, per function. */ @@ -322,7 +334,7 @@ export class ShadowStackPass extends Pass { let operand = operands[i]; let match = matchTostack(module, operand); if (!match) continue; - if (isConstZero(match)) { + if (!needsSlot(module, match)) { operands[i] = match; continue; } @@ -366,10 +378,10 @@ export class ShadowStackPass extends Pass { operands[i] = _BinaryenCallGetOperandAt(call, i); } let numSlots = this.updateCallOperands(operands); + for (let i = 0, k = operands.length; i < k; ++i) { + _BinaryenCallSetOperandAt(call, i, operands[i]); + } if (numSlots) { - for (let i = 0, k = operands.length; i < k; ++i) { - _BinaryenCallSetOperandAt(call, i, operands[i]); - } // Reserve these slots for us so nested calls use their own this.callSlotOffset += numSlots; } @@ -390,10 +402,10 @@ export class ShadowStackPass extends Pass { operands[i] = _BinaryenCallIndirectGetOperandAt(callIndirect, i); } let numSlots = this.updateCallOperands(operands); + for (let i = 0, k = operands.length; i < k; ++i) { + _BinaryenCallIndirectSetOperandAt(callIndirect, i, operands[i]); + } if (numSlots) { - for (let i = 0, k = operands.length; i < k; ++i) { - _BinaryenCallIndirectSetOperandAt(callIndirect, i, operands[i]); - } // Reserve these slots for us so nested calls use their own this.callSlotOffset += numSlots; } @@ -408,14 +420,14 @@ export class ShadowStackPass extends Pass { /** @override */ visitLocalSet(localSet: ExpressionRef): void { + let module = this.module; let value = _BinaryenLocalSetGetValue(localSet); - let match = matchTostack(this.module, value); + let match = matchTostack(module, value); if (!match) return; - if (isConstZero(match)) { + if (!needsSlot(module, match)) { _BinaryenLocalSetSetValue(localSet, match); return; } - var module = this.module; let index = _BinaryenLocalSetGetIndex(localSet); let slotIndex = this.noteSlot(this.currentFunction, index); let stmts = new Array(); From 34d6186e1def934977af156550a669fd13783447 Mon Sep 17 00:00:00 2001 From: dcode Date: Thu, 4 Feb 2021 11:43:13 +0100 Subject: [PATCH 2/3] update fixtures --- src/passes/shadowstack.ts | 2 +- tests/compiler/assert-nonnull.optimized.wat | 71 +- tests/compiler/assert-nonnull.untouched.wat | 203 +- tests/compiler/builtins.optimized.wat | 277 +- tests/compiler/builtins.untouched.wat | 137 +- tests/compiler/call-super.optimized.wat | 55 +- tests/compiler/call-super.untouched.wat | 257 +- tests/compiler/class-implements.optimized.wat | 39 +- tests/compiler/class-implements.untouched.wat | 71 +- .../compiler/class-overloading.optimized.wat | 560 +- .../compiler/class-overloading.untouched.wat | 637 +- tests/compiler/class.optimized.wat | 21 - tests/compiler/class.untouched.wat | 117 +- .../extends-baseaggregate.optimized.wat | 107 +- .../extends-baseaggregate.untouched.wat | 71 +- .../compiler/extends-recursive.optimized.wat | 11 +- .../compiler/extends-recursive.untouched.wat | 33 +- .../field-initialization.optimized.wat | 414 +- .../field-initialization.untouched.wat | 417 +- tests/compiler/getter-call.optimized.wat | 11 +- tests/compiler/getter-call.untouched.wat | 55 +- tests/compiler/infer-array.optimized.wat | 219 +- tests/compiler/infer-array.untouched.wat | 774 +- tests/compiler/infer-generic.optimized.wat | 35 +- tests/compiler/infer-generic.untouched.wat | 166 +- tests/compiler/inlining.optimized.wat | 14 +- tests/compiler/inlining.untouched.wat | 16 +- tests/compiler/instanceof-class.optimized.wat | 22 +- tests/compiler/instanceof-class.untouched.wat | 54 +- tests/compiler/managed-cast.optimized.wat | 204 +- tests/compiler/managed-cast.untouched.wat | 376 +- tests/compiler/new.optimized.wat | 55 +- tests/compiler/new.untouched.wat | 71 +- tests/compiler/number.optimized.wat | 262 +- tests/compiler/number.untouched.wat | 137 +- tests/compiler/object-literal.optimized.wat | 449 +- tests/compiler/object-literal.untouched.wat | 408 +- tests/compiler/possibly-null.optimized.wat | 109 +- tests/compiler/possibly-null.untouched.wat | 130 +- tests/compiler/resolve-access.optimized.wat | 372 +- tests/compiler/resolve-access.untouched.wat | 134 +- tests/compiler/resolve-binary.optimized.wat | 262 +- tests/compiler/resolve-binary.untouched.wat | 137 +- .../resolve-elementaccess.optimized.wat | 318 +- .../resolve-elementaccess.untouched.wat | 391 +- .../resolve-function-expression.optimized.wat | 354 +- .../resolve-function-expression.untouched.wat | 137 +- .../resolve-propertyaccess.optimized.wat | 279 +- .../resolve-propertyaccess.untouched.wat | 150 +- tests/compiler/resolve-ternary.optimized.wat | 262 +- tests/compiler/resolve-ternary.untouched.wat | 137 +- tests/compiler/resolve-unary.optimized.wat | 268 +- tests/compiler/resolve-unary.untouched.wat | 147 +- tests/compiler/rt/instanceof.optimized.wat | 66 +- tests/compiler/rt/instanceof.untouched.wat | 50 +- tests/compiler/std-wasi/console.optimized.wat | 2246 +- tests/compiler/std-wasi/console.untouched.wat | 3319 +- tests/compiler/std-wasi/crypto.optimized.wat | 2248 +- tests/compiler/std-wasi/crypto.untouched.wat | 2954 +- tests/compiler/std-wasi/process.optimized.wat | 4914 +- tests/compiler/std-wasi/process.untouched.wat | 4739 +- tests/compiler/std/array-access.optimized.wat | 227 +- tests/compiler/std/array-access.untouched.wat | 236 +- tests/compiler/std/array.optimized.wat | 20630 ++- tests/compiler/std/array.untouched.wat | 33683 ++--- tests/compiler/std/arraybuffer.optimized.wat | 325 +- tests/compiler/std/arraybuffer.untouched.wat | 686 +- tests/compiler/std/dataview.optimized.wat | 584 +- tests/compiler/std/dataview.untouched.wat | 936 +- tests/compiler/std/hash.optimized.wat | 117 +- tests/compiler/std/hash.untouched.wat | 182 +- tests/compiler/std/map.optimized.wat | 18407 ++- tests/compiler/std/map.untouched.wat | 30190 ++-- tests/compiler/std/object.optimized.wat | 131 +- tests/compiler/std/object.untouched.wat | 133 +- .../std/operator-overloading.optimized.wat | 6 - .../std/operator-overloading.untouched.wat | 10 - tests/compiler/std/set.optimized.wat | 9944 +- tests/compiler/std/set.untouched.wat | 17112 +-- tests/compiler/std/static-array.optimized.wat | 73 +- tests/compiler/std/static-array.untouched.wat | 344 +- tests/compiler/std/staticarray.optimized.wat | 123 +- tests/compiler/std/staticarray.untouched.wat | 129 +- .../std/string-casemapping.optimized.wat | 1986 +- .../std/string-casemapping.untouched.wat | 1743 +- .../std/string-encoding.optimized.wat | 680 +- .../std/string-encoding.untouched.wat | 509 +- tests/compiler/std/string.optimized.wat | 16264 +-- tests/compiler/std/string.untouched.wat | 24438 ++-- tests/compiler/std/symbol.optimized.wat | 1534 +- tests/compiler/std/symbol.untouched.wat | 2293 +- tests/compiler/std/typedarray.optimized.wat | 72529 ++++------ tests/compiler/std/typedarray.untouched.wat | 107708 ++++++--------- tests/compiler/super-inline.optimized.wat | 40 +- tests/compiler/super-inline.untouched.wat | 66 +- tests/compiler/typeof.optimized.wat | 262 +- tests/compiler/typeof.untouched.wat | 137 +- tests/compiler/wasi/abort.optimized.wat | 147 +- tests/compiler/wasi/abort.untouched.wat | 66 +- tests/compiler/wasi/seed.optimized.wat | 349 +- tests/compiler/wasi/seed.untouched.wat | 258 +- tests/compiler/wasi/trace.optimized.wat | 403 +- tests/compiler/wasi/trace.untouched.wat | 400 +- 103 files changed, 172445 insertions(+), 224526 deletions(-) diff --git a/src/passes/shadowstack.ts b/src/passes/shadowstack.ts index 588bb29246..a3baf9ee95 100644 --- a/src/passes/shadowstack.ts +++ b/src/passes/shadowstack.ts @@ -171,7 +171,7 @@ function needsSlot(module: Module, value: ExpressionRef): bool { case ExpressionId.LocalGet: case ExpressionId.LocalSet: return false; // tee } - return !matchTostack(module, value); + return true; } /** Instruments a module with a shadow stack for precise GC. */ diff --git a/tests/compiler/assert-nonnull.optimized.wat b/tests/compiler/assert-nonnull.optimized.wat index 19370c2515..26d5ec0a02 100644 --- a/tests/compiler/assert-nonnull.optimized.wat +++ b/tests/compiler/assert-nonnull.optimized.wat @@ -84,17 +84,6 @@ 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 - call $~stack_check - global.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.eqz if @@ -109,10 +98,6 @@ 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 ) (func $export:assert-nonnull/testObj (param $0 i32) (result i32) @@ -124,17 +109,6 @@ 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 - call $~stack_check - global.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.eqz if @@ -151,10 +125,6 @@ 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 ) (func $export:assert-nonnull/testProp (param $0 i32) (result i32) global.get $~lib/memory/__stack_pointer @@ -208,16 +178,13 @@ local.get $0 i32.store 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 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 + i32.const 0 + i32.store local.get $0 i32.eqz if @@ -271,7 +238,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 global.get $~lib/memory/__stack_pointer @@ -290,21 +257,18 @@ local.get $0 i32.store 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 - global.get $~lib/memory/__stack_pointer - local.get $0 + i32.const 0 i32.store global.get $~lib/memory/__stack_pointer local.get $0 call $~lib/array/Array#__get local.tee $0 - i32.store offset=4 + i32.store local.get $0 i32.eqz if @@ -316,7 +280,7 @@ unreachable end 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 @@ -348,9 +312,6 @@ local.set $1 global.get $~lib/memory/__stack_pointer local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 block $__inlined_func$assert-nonnull/testAll block $folding-inner0 local.get $0 @@ -417,9 +378,6 @@ local.set $1 global.get $~lib/memory/__stack_pointer local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 block $__inlined_func$assert-nonnull/testAll2 block $folding-inner0 local.get $0 @@ -491,17 +449,14 @@ local.get $0 i32.store 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 - global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - local.get $0 + i32.const 0 i32.store + global.get $~lib/memory/__stack_pointer local.get $0 i32.eqz if @@ -513,12 +468,12 @@ unreachable end local.get $0 - i32.store offset=4 + i32.store local.get $0 i32.load call_indirect (type $none_=>_i32) 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 diff --git a/tests/compiler/assert-nonnull.untouched.wat b/tests/compiler/assert-nonnull.untouched.wat index 5512697363..63d2c59d6c 100644 --- a/tests/compiler/assert-nonnull.untouched.wat +++ b/tests/compiler/assert-nonnull.untouched.wat @@ -29,6 +29,37 @@ (export "testRet" (func $export:assert-nonnull/testRet)) (export "testObjFn" (func $export:assert-nonnull/testObjFn)) (export "testObjRet" (func $export:assert-nonnull/testObjRet)) + (func $assert-nonnull/testVar (param $0 i32) (result i32) + (local $1 i32) + local.get $0 + local.tee $1 + if (result i32) + local.get $1 + else + i32.const 32 + i32.const 96 + i32.const 2 + i32.const 10 + call $~lib/builtins/abort + unreachable + end + ) + (func $assert-nonnull/testObj (param $0 i32) (result i32) + (local $1 i32) + local.get $0 + local.tee $1 + if (result i32) + local.get $1 + else + i32.const 32 + i32.const 96 + i32.const 11 + i32.const 10 + call $~lib/builtins/abort + unreachable + end + i32.load + ) (func $assert-nonnull/testFn (param $0 i32) (result i32) i32.const 0 global.set $~argumentsLength @@ -61,18 +92,15 @@ (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 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 local.get $0 local.tee $1 - i32.store offset=4 - local.get $1 if (result i32) local.get $1 else @@ -92,47 +120,7 @@ call $~lib/array/Array#__get local.set $2 global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $2 - ) - (func $assert-nonnull/testElem (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 - call $~stack_check - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $2 - i32.const 0 - call $~lib/array/Array#__get - local.tee $1 - i32.store offset=4 - local.get $1 - if (result i32) - local.get $1 - else - i32.const 32 - i32.const 96 - i32.const 23 - i32.const 10 - call $~lib/builtins/abort - unreachable - 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 @@ -150,11 +138,8 @@ i64.store global.get $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer local.get $0 local.tee $1 - i32.store offset=4 - local.get $1 if (result i32) local.get $1 else @@ -219,11 +204,8 @@ i64.store global.get $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer local.get $0 local.tee $1 - i32.store offset=4 - local.get $1 if (result i32) local.get $1 else @@ -275,73 +257,6 @@ global.set $~lib/memory/__stack_pointer local.get $2 ) - (func $assert-nonnull/testVar (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 - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - local.tee $1 - i32.store - local.get $1 - if (result i32) - local.get $1 - else - i32.const 32 - i32.const 96 - i32.const 2 - i32.const 10 - call $~lib/builtins/abort - unreachable - end - local.set $2 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $2 - ) - (func $assert-nonnull/testObj (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 - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - local.tee $1 - i32.store - local.get $1 - if (result i32) - local.get $1 - else - i32.const 32 - i32.const 96 - i32.const 11 - i32.const 10 - call $~lib/builtins/abort - unreachable - end - i32.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 $assert-nonnull/testProp (param $0 i32) (result i32) (local $1 i32) (local $2 i32) @@ -478,24 +393,56 @@ global.set $~lib/memory/__stack_pointer local.get $3 ) - (func $assert-nonnull/testFn2 (param $0 i32) (result i32) + (func $assert-nonnull/testElem (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 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 global.get $~lib/memory/__stack_pointer local.get $0 + i32.const 0 + call $~lib/array/Array#__get local.tee $1 i32.store local.get $1 + if (result i32) + local.get $1 + else + i32.const 32 + i32.const 96 + i32.const 23 + i32.const 10 + call $~lib/builtins/abort + unreachable + end + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + ) + (func $assert-nonnull/testFn2 (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 + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + local.tee $1 if (result i32) local.get $1 else @@ -507,7 +454,7 @@ unreachable end local.tee $2 - i32.store offset=4 + i32.store i32.const 0 global.set $~argumentsLength local.get $2 @@ -515,7 +462,7 @@ call_indirect (type $none_=>_i32) local.set $3 global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer local.get $3 diff --git a/tests/compiler/builtins.optimized.wat b/tests/compiler/builtins.optimized.wat index 2e750bfa1c..040a28b9f0 100644 --- a/tests/compiler/builtins.optimized.wat +++ b/tests/compiler/builtins.optimized.wat @@ -1,6 +1,6 @@ (module - (type $none_=>_none (func)) (type $i32_i32_=>_i32 (func (param i32 i32) (result i32))) + (type $none_=>_none (func)) (type $i32_i32_i32_i32_=>_none (func (param i32 i32 i32 i32))) (type $i32_i32_f64_f64_f64_f64_f64_=>_none (func (param i32 i32 f64 f64 f64 f64 f64))) (type $i32_=>_i32 (func (param i32) (result i32))) @@ -76,6 +76,122 @@ local.get $1 i32.add ) + (func $~lib/string/String.__eq (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + local.get $0 + local.get $1 + i32.eq + if + i32.const 1 + return + end + local.get $1 + i32.eqz + i32.const 1 + local.get $0 + select + if + i32.const 0 + return + end + 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.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u + i32.ne + if + i32.const 0 + return + end + block $__inlined_func$~lib/util/string/compareImpl (result i32) + local.get $0 + local.tee $3 + i32.const 7 + i32.and + local.get $1 + i32.const 7 + i32.and + i32.or + i32.eqz + i32.const 0 + local.get $2 + local.tee $0 + i32.const 4 + i32.ge_u + select + if + loop $do-continue|0 + local.get $3 + i64.load + local.get $1 + i64.load + i64.eq + if + local.get $3 + i32.const 8 + i32.add + local.set $3 + 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-continue|0 + end + end + end + loop $while-continue|1 + local.get $0 + local.tee $2 + i32.const 1 + i32.sub + local.set $0 + local.get $2 + if + local.get $3 + i32.load16_u + local.tee $2 + local.get $1 + i32.load16_u + local.tee $4 + i32.ne + if + local.get $2 + local.get $4 + i32.sub + br $__inlined_func$~lib/util/string/compareImpl + end + local.get $3 + i32.const 2 + i32.add + local.set $3 + local.get $1 + i32.const 2 + i32.add + local.set $1 + br $while-continue|1 + end + end + i32.const 0 + end + i32.eqz + ) (func $~lib/atomics/Atomics.isLockFree (param $0 i32) (result i32) i32.const 1 local.get $0 @@ -100,7 +216,11 @@ (func $~start call $start:builtins ) - (func $~stack_check + (func $start:builtins + 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 2028 i32.lt_s @@ -112,159 +232,6 @@ call $~lib/builtins/abort unreachable end - ) - (func $~lib/string/String.__eq (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 - call $~stack_check - 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 - i32.const 1 - local.get $0 - select - 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 - block $__inlined_func$~lib/util/string/compareImpl (result i32) - local.get $0 - local.tee $3 - i32.const 7 - i32.and - local.get $1 - i32.const 7 - i32.and - i32.or - i32.eqz - i32.const 0 - local.get $2 - i32.const 4 - i32.ge_u - select - if - loop $do-continue|0 - local.get $3 - i64.load - local.get $1 - i64.load - i64.eq - if - local.get $3 - i32.const 8 - i32.add - local.set $3 - 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-continue|0 - end - end - end - loop $while-continue|1 - local.get $2 - local.tee $0 - i32.const 1 - i32.sub - local.set $2 - local.get $0 - if - local.get $3 - i32.load16_u - local.tee $4 - local.get $1 - i32.load16_u - local.tee $0 - i32.ne - if - local.get $4 - local.get $0 - i32.sub - br $__inlined_func$~lib/util/string/compareImpl - end - local.get $3 - i32.const 2 - i32.add - local.set $3 - local.get $1 - i32.const 2 - i32.add - local.set $1 - br $while-continue|1 - end - end - i32.const 0 - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - 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:builtins - 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 diff --git a/tests/compiler/builtins.untouched.wat b/tests/compiler/builtins.untouched.wat index fad6fdad2f..f1745736f0 100644 --- a/tests/compiler/builtins.untouched.wat +++ b/tests/compiler/builtins.untouched.wat @@ -215,6 +215,48 @@ end i32.const 0 ) + (func $~lib/string/String.__eq (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + local.get $0 + local.get $1 + i32.eq + if + i32.const 1 + return + end + local.get $0 + i32.const 0 + i32.eq + if (result i32) + i32.const 1 + else + local.get $1 + i32.const 0 + i32.eq + end + if + i32.const 0 + return + end + local.get $0 + call $~lib/string/String#get:length + local.set $2 + local.get $2 + local.get $1 + call $~lib/string/String#get:length + i32.ne + if + i32.const 0 + return + end + local.get $0 + i32.const 0 + local.get $1 + i32.const 0 + local.get $2 + call $~lib/util/string/compareImpl + i32.eqz + ) (func $~lib/function/Function<%28i32%2Ci32%29=>i32>#get:length (param $0 i32) (result i32) i32.const 2 ) @@ -397,101 +439,6 @@ unreachable end ) - (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 - call $~stack_check - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - local.get $0 - local.get $1 - 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 $0 - i32.const 0 - i32.eq - if (result i32) - i32.const 1 - else - local.get $1 - 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 $0 - 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 $2 - local.get $2 - local.get $1 - 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 $0 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store - local.get $3 - i32.const 0 - local.get $1 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - i32.const 0 - local.get $2 - 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 - ) (func $start:builtins (local $0 i32) (local $1 i32) diff --git a/tests/compiler/call-super.optimized.wat b/tests/compiler/call-super.optimized.wat index 00f8452e6f..d73c63540b 100644 --- a/tests/compiler/call-super.optimized.wat +++ b/tests/compiler/call-super.optimized.wat @@ -1736,13 +1736,13 @@ i32.store global.get $~lib/memory/__stack_pointer 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 global.get $~lib/memory/__stack_pointer i32.const 8 i32.const 5 @@ -1753,9 +1753,6 @@ i32.const 2 i32.store offset=4 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 i32.const 4 i32.sub @@ -1808,7 +1805,7 @@ unreachable end global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer local.get $0 @@ -1856,13 +1853,13 @@ i32.store global.get $~lib/memory/__stack_pointer 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 global.get $~lib/memory/__stack_pointer i32.const 8 i32.const 7 @@ -1870,9 +1867,6 @@ local.tee $0 i32.store 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 i32.const 4 i32.sub @@ -1916,7 +1910,7 @@ i32.const 2 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer local.get $0 @@ -1964,13 +1958,13 @@ i32.store global.get $~lib/memory/__stack_pointer 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 global.get $~lib/memory/__stack_pointer i32.const 8 i32.const 9 @@ -1978,9 +1972,6 @@ local.tee $0 i32.store 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 i32.const 4 i32.sub @@ -2012,7 +2003,7 @@ i32.const 2 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer local.get $0 @@ -2060,13 +2051,13 @@ i32.store global.get $~lib/memory/__stack_pointer 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 global.get $~lib/memory/__stack_pointer i32.const 8 i32.const 11 @@ -2074,9 +2065,6 @@ local.tee $0 i32.store 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 i32.const 4 i32.sub @@ -2108,7 +2096,7 @@ i32.const 2 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer local.get $0 @@ -2271,13 +2259,13 @@ (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 call $~stack_check global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store + i32.const 0 + i32.store global.get $~lib/memory/__stack_pointer i32.const 8 i32.const 3 @@ -2288,9 +2276,6 @@ i32.const 2 i32.store offset=4 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 i32.const 4 i32.sub @@ -2355,7 +2340,7 @@ unreachable end global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer local.get $0 diff --git a/tests/compiler/call-super.untouched.wat b/tests/compiler/call-super.untouched.wat index dfccbe9c80..1b56587f9a 100644 --- a/tests/compiler/call-super.untouched.wat +++ b/tests/compiler/call-super.untouched.wat @@ -2736,39 +2736,29 @@ unreachable end ) - (func $call-super/B#constructor (param $0 i32) (result i32) + (func $call-super/A#constructor (param $0 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 $0 i32.eqz if global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.const 3 + i32.const 4 + i32.const 4 call $~lib/rt/itcms/__new local.tee $0 i32.store end local.get $0 - i32.const 2 - call $call-super/B#set:b - global.get $~lib/memory/__stack_pointer - local.get $0 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $call-super/A#constructor - local.tee $0 - i32.store + i32.const 1 + call $call-super/A#set:a local.get $0 i32.load i32.const 1 @@ -2777,20 +2767,7 @@ if i32.const 0 i32.const 32 - i32.const 15 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load offset=4 - i32.const 2 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 32 - i32.const 16 + i32.const 6 i32.const 5 call $~lib/builtins/abort unreachable @@ -2798,42 +2775,37 @@ local.get $0 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 ) - (func $call-super/D#constructor (param $0 i32) (result i32) + (func $call-super/B#constructor (param $0 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 $0 i32.eqz if global.get $~lib/memory/__stack_pointer i32.const 8 - i32.const 5 + i32.const 3 call $~lib/rt/itcms/__new local.tee $0 i32.store end local.get $0 i32.const 2 - call $call-super/D#set:b + call $call-super/B#set:b global.get $~lib/memory/__stack_pointer local.get $0 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $call-super/C#constructor + call $call-super/A#constructor local.tee $0 i32.store local.get $0 @@ -2844,7 +2816,7 @@ if i32.const 0 i32.const 32 - i32.const 38 + i32.const 15 i32.const 5 call $~lib/builtins/abort unreachable @@ -2857,7 +2829,7 @@ if i32.const 0 i32.const 32 - i32.const 39 + i32.const 16 i32.const 5 call $~lib/builtins/abort unreachable @@ -2865,135 +2837,149 @@ local.get $0 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 ) - (func $call-super/F#constructor (param $0 i32) (result i32) + (func $call-super/C#constructor (param $0 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 $0 i32.eqz if global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.const 7 + i32.const 4 + i32.const 6 call $~lib/rt/itcms/__new local.tee $0 i32.store end - global.get $~lib/memory/__stack_pointer local.get $0 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $call-super/E#constructor - local.tee $0 - i32.store - local.get $0 - i32.const 2 - call $call-super/F#set:b + i32.const 1 + call $call-super/C#set:a local.get $0 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 ) - (func $call-super/H#constructor (param $0 i32) (result i32) + (func $call-super/D#constructor (param $0 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 $0 i32.eqz if global.get $~lib/memory/__stack_pointer i32.const 8 - i32.const 9 + i32.const 5 call $~lib/rt/itcms/__new local.tee $0 i32.store end - global.get $~lib/memory/__stack_pointer local.get $0 - local.set $1 + i32.const 2 + call $call-super/D#set:b global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $call-super/G#constructor + local.get $0 + call $call-super/C#constructor local.tee $0 i32.store local.get $0 + i32.load + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 38 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=4 i32.const 2 - call $call-super/H#set:b + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 39 + i32.const 5 + call $~lib/builtins/abort + unreachable + end local.get $0 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 ) - (func $call-super/J#constructor (param $0 i32) (result i32) + (func $call-super/E#constructor (param $0 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 $0 i32.eqz if global.get $~lib/memory/__stack_pointer + i32.const 4 i32.const 8 - i32.const 11 call $~lib/rt/itcms/__new local.tee $0 i32.store end - global.get $~lib/memory/__stack_pointer local.get $0 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $call-super/I#constructor - local.tee $0 - i32.store + i32.const 1 + call $call-super/E#set:a local.get $0 - i32.const 2 - call $call-super/J#set:b + i32.load + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 56 + i32.const 5 + call $~lib/builtins/abort + unreachable + end local.get $0 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 ) - (func $call-super/A#constructor (param $0 i32) (result i32) + (func $call-super/F#constructor (param $0 i32) (result i32) (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 4 @@ -3007,28 +2993,20 @@ i32.eqz if global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.const 4 + i32.const 8 + i32.const 7 call $~lib/rt/itcms/__new local.tee $0 i32.store end + global.get $~lib/memory/__stack_pointer local.get $0 - i32.const 1 - call $call-super/A#set:a + call $call-super/E#constructor + local.tee $0 + i32.store local.get $0 - i32.load - i32.const 1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 32 - i32.const 6 - i32.const 5 - call $~lib/builtins/abort - unreachable - end + i32.const 2 + call $call-super/F#set:b local.get $0 local.set $1 global.get $~lib/memory/__stack_pointer @@ -3037,7 +3015,7 @@ global.set $~lib/memory/__stack_pointer local.get $1 ) - (func $call-super/C#constructor (param $0 i32) (result i32) + (func $call-super/G#constructor (param $0 i32) (result i32) (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 4 @@ -3052,14 +3030,14 @@ if global.get $~lib/memory/__stack_pointer i32.const 4 - i32.const 6 + i32.const 10 call $~lib/rt/itcms/__new local.tee $0 i32.store end local.get $0 i32.const 1 - call $call-super/C#set:a + call $call-super/G#set:a local.get $0 local.set $1 global.get $~lib/memory/__stack_pointer @@ -3068,7 +3046,7 @@ global.set $~lib/memory/__stack_pointer local.get $1 ) - (func $call-super/E#constructor (param $0 i32) (result i32) + (func $call-super/H#constructor (param $0 i32) (result i32) (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 4 @@ -3082,28 +3060,20 @@ i32.eqz if global.get $~lib/memory/__stack_pointer - i32.const 4 i32.const 8 + i32.const 9 call $~lib/rt/itcms/__new local.tee $0 i32.store end + global.get $~lib/memory/__stack_pointer local.get $0 - i32.const 1 - call $call-super/E#set:a + call $call-super/G#constructor + local.tee $0 + i32.store local.get $0 - i32.load - i32.const 1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 32 - i32.const 56 - i32.const 5 - call $~lib/builtins/abort - unreachable - end + i32.const 2 + call $call-super/H#set:b local.get $0 local.set $1 global.get $~lib/memory/__stack_pointer @@ -3112,7 +3082,7 @@ global.set $~lib/memory/__stack_pointer local.get $1 ) - (func $call-super/G#constructor (param $0 i32) (result i32) + (func $call-super/I#constructor (param $0 i32) (result i32) (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 4 @@ -3127,14 +3097,14 @@ if global.get $~lib/memory/__stack_pointer i32.const 4 - i32.const 10 + i32.const 12 call $~lib/rt/itcms/__new local.tee $0 i32.store end local.get $0 i32.const 1 - call $call-super/G#set:a + call $call-super/I#set:a local.get $0 local.set $1 global.get $~lib/memory/__stack_pointer @@ -3143,7 +3113,7 @@ global.set $~lib/memory/__stack_pointer local.get $1 ) - (func $call-super/I#constructor (param $0 i32) (result i32) + (func $call-super/J#constructor (param $0 i32) (result i32) (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 4 @@ -3157,15 +3127,20 @@ i32.eqz if global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.const 12 + i32.const 8 + i32.const 11 call $~lib/rt/itcms/__new local.tee $0 i32.store end + global.get $~lib/memory/__stack_pointer local.get $0 - i32.const 1 - call $call-super/I#set:a + call $call-super/I#constructor + local.tee $0 + i32.store + local.get $0 + i32.const 2 + call $call-super/J#set:b local.get $0 local.set $1 global.get $~lib/memory/__stack_pointer diff --git a/tests/compiler/class-implements.optimized.wat b/tests/compiler/class-implements.optimized.wat index 46a0ee9f90..1e98be4b67 100644 --- a/tests/compiler/class-implements.optimized.wat +++ b/tests/compiler/class-implements.optimized.wat @@ -1522,28 +1522,31 @@ unreachable end ) - (func $class-implements/C#constructor (param $0 i32) (result i32) + (func $class-implements/A#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 call $~stack_check global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store + i32.const 0 + i32.store local.get $0 i32.eqz if global.get $~lib/memory/__stack_pointer - i32.const 5 + i32.const 3 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 offset=4 - global.get $~lib/memory/__stack_pointer + ) + (func $class-implements/C#constructor (param $0 i32) (result i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -1556,24 +1559,12 @@ i32.eqz if global.get $~lib/memory/__stack_pointer - i32.const 6 + i32.const 5 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 - ) - (func $class-implements/A#constructor (param $0 i32) (result i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -1586,7 +1577,7 @@ i32.eqz if global.get $~lib/memory/__stack_pointer - i32.const 3 + i32.const 6 call $~lib/rt/itcms/__new local.tee $0 i32.store @@ -1596,6 +1587,12 @@ i32.add global.set $~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 ) (func $export:class-implements/A#foo (param $0 i32) (result i32) global.get $~lib/memory/__stack_pointer diff --git a/tests/compiler/class-implements.untouched.wat b/tests/compiler/class-implements.untouched.wat index c23013e26c..c6f2f894d5 100644 --- a/tests/compiler/class-implements.untouched.wat +++ b/tests/compiler/class-implements.untouched.wat @@ -2452,44 +2452,6 @@ unreachable end ) - (func $class-implements/C#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 - call $~stack_check - 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 0 - i32.const 5 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - end - global.get $~lib/memory/__stack_pointer - local.get $0 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $class-implements/B#constructor - local.tee $0 - i32.store - local.get $0 - 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:class-implements (local $0 i32) global.get $~lib/memory/__stack_pointer @@ -2612,6 +2574,39 @@ global.set $~lib/memory/__stack_pointer local.get $1 ) + (func $class-implements/C#constructor (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 + call $~stack_check + 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 5 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + global.get $~lib/memory/__stack_pointer + local.get $0 + call $class-implements/B#constructor + local.tee $0 + i32.store + local.get $0 + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) (func $export:class-implements/A#foo (param $0 i32) (result i32) (local $1 i32) global.get $~lib/memory/__stack_pointer diff --git a/tests/compiler/class-overloading.optimized.wat b/tests/compiler/class-overloading.optimized.wat index 10eb7f23a2..3501f8da58 100644 --- a/tests/compiler/class-overloading.optimized.wat +++ b/tests/compiler/class-overloading.optimized.wat @@ -1,7 +1,7 @@ (module (type $i32_=>_i32 (func (param i32) (result i32))) - (type $i32_=>_none (func (param i32))) (type $none_=>_none (func)) + (type $i32_=>_none (func (param i32))) (type $i32_i32_=>_none (func (param i32 i32))) (type $i32_i32_i32_=>_none (func (param i32 i32 i32))) (type $i32_i32_i32_i32_=>_none (func (param i32 i32 i32 i32))) @@ -1474,8 +1474,123 @@ i32.const 20 i32.add ) + (func $~lib/string/String.__eq (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + local.get $0 + local.get $1 + i32.eq + if + i32.const 1 + return + end + local.get $1 + i32.eqz + i32.const 1 + local.get $0 + select + if + i32.const 0 + return + end + 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.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u + i32.ne + if + i32.const 0 + return + end + block $__inlined_func$~lib/util/string/compareImpl (result i32) + local.get $0 + local.tee $3 + i32.const 7 + i32.and + local.get $1 + i32.const 7 + i32.and + i32.or + i32.eqz + i32.const 0 + local.get $2 + local.tee $0 + i32.const 4 + i32.ge_u + select + if + loop $do-continue|0 + local.get $3 + i64.load + local.get $1 + i64.load + i64.eq + if + local.get $3 + i32.const 8 + i32.add + local.set $3 + 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-continue|0 + end + end + end + loop $while-continue|1 + local.get $0 + local.tee $2 + i32.const 1 + i32.sub + local.set $0 + local.get $2 + if + local.get $3 + i32.load16_u + local.tee $2 + local.get $1 + i32.load16_u + local.tee $4 + i32.ne + if + local.get $2 + local.get $4 + i32.sub + br $__inlined_func$~lib/util/string/compareImpl + end + local.get $3 + i32.const 2 + i32.add + local.set $3 + local.get $1 + i32.const 2 + i32.add + local.set $1 + br $while-continue|1 + end + end + i32.const 0 + end + i32.eqz + ) (func $class-overloading/A#a@virtual (param $0 i32) - (local $1 i32) block $default block $case2 block $case1 @@ -1484,16 +1599,16 @@ i32.const 8 i32.sub i32.load - local.tee $1 + local.tee $0 i32.const 4 i32.eq - local.get $1 + local.get $0 i32.const 6 i32.eq i32.or br_if $case0 block $tablify|0 - local.get $1 + local.get $0 i32.const 5 i32.sub br_table $case1 $tablify|0 $case0 $case2 $tablify|0 @@ -1504,7 +1619,6 @@ global.set $class-overloading/which return end - local.get $0 call $class-overloading/C#a return end @@ -1600,22 +1714,19 @@ i32.const 0 i32.store 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 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.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -1640,20 +1751,9 @@ 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 4 - i32.sub + i32.add 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 local.get $0 i32.store @@ -1675,10 +1775,6 @@ 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 i32.const 3 return end @@ -1779,61 +1875,7 @@ unreachable end ) - (func $class-overloading/B#constructor (param $0 i32) (result 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 $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 - 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 $0 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 3 - 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 - ) - (func $~lib/string/String.__eq (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) + (func $class-overloading/C#a global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -1842,152 +1884,6 @@ 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 - i32.const 1 - local.get $0 - select - 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 - block $__inlined_func$~lib/util/string/compareImpl (result i32) - local.get $0 - local.tee $3 - i32.const 7 - i32.and - local.get $1 - i32.const 7 - i32.and - i32.or - i32.eqz - i32.const 0 - local.get $2 - i32.const 4 - i32.ge_u - select - if - loop $do-continue|0 - local.get $3 - i64.load - local.get $1 - i64.load - i64.eq - if - local.get $3 - i32.const 8 - i32.add - local.set $3 - 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-continue|0 - end - end - end - loop $while-continue|1 - local.get $2 - local.tee $0 - i32.const 1 - i32.sub - local.set $2 - local.get $0 - if - local.get $3 - i32.load16_u - local.tee $4 - local.get $1 - i32.load16_u - local.tee $0 - i32.ne - if - local.get $4 - local.get $0 - i32.sub - br $__inlined_func$~lib/util/string/compareImpl - end - local.get $3 - i32.const 2 - i32.add - local.set $3 - local.get $1 - i32.const 2 - i32.add - local.set $1 - br $while-continue|1 - end - end - i32.const 0 - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - 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 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 - local.get $0 - i32.store i32.const 1520 global.set $class-overloading/which global.get $~lib/memory/__stack_pointer @@ -2015,73 +1911,8 @@ 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 - call $~stack_check - 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 $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 - call $~stack_check - 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/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 $start:class-overloading (local $0 i32) - (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -2209,13 +2040,13 @@ unreachable end 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 global.get $~lib/memory/__stack_pointer i32.const 5 call $~lib/rt/itcms/__new @@ -2223,14 +2054,11 @@ 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-overloading/B#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 @@ -2239,9 +2067,7 @@ global.set $class-overloading/which global.get $~lib/memory/__stack_pointer global.get $class-overloading/c - local.tee $0 i32.store - local.get $0 call $class-overloading/C#a global.get $~lib/memory/__stack_pointer global.get $class-overloading/which @@ -2554,13 +2380,13 @@ unreachable end 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 global.get $~lib/memory/__stack_pointer i32.const 8 call $~lib/rt/itcms/__new @@ -2568,14 +2394,11 @@ 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-overloading/E#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 @@ -2781,22 +2604,19 @@ unreachable end 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 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.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -2821,7 +2641,7 @@ 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 $0 @@ -2847,4 +2667,110 @@ i32.add global.set $~lib/memory/__stack_pointer ) + (func $class-overloading/B#constructor (param $0 i32) (result 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 $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 + 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 $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 3 + 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 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + ) + (func $class-overloading/D#constructor (param $0 i32) (result 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 $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 + call $class-overloading/B#constructor + 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 $class-overloading/E#constructor (param $0 i32) (result 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 $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 + call $class-overloading/D#constructor + 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/class-overloading.untouched.wat b/tests/compiler/class-overloading.untouched.wat index 39c2aafa2e..6aff20ad45 100644 --- a/tests/compiler/class-overloading.untouched.wat +++ b/tests/compiler/class-overloading.untouched.wat @@ -2487,6 +2487,48 @@ end i32.const 0 ) + (func $~lib/string/String.__eq (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + local.get $0 + local.get $1 + i32.eq + if + i32.const 1 + return + end + local.get $0 + i32.const 0 + i32.eq + if (result i32) + i32.const 1 + else + local.get $1 + i32.const 0 + i32.eq + end + if + i32.const 0 + return + end + local.get $0 + call $~lib/string/String#get:length + local.set $2 + local.get $2 + local.get $1 + call $~lib/string/String#get:length + i32.ne + if + i32.const 0 + return + end + local.get $0 + i32.const 0 + local.get $1 + i32.const 0 + local.get $2 + call $~lib/util/string/compareImpl + i32.eqz + ) (func $class-overloading/A#b (param $0 i32) (param $1 i32) i32.const 464 global.set $class-overloading/which @@ -2808,6 +2850,10 @@ call $~lib/builtins/abort unreachable ) + (func $class-overloading/A1#bar (param $0 i32) (result i32) + local.get $0 + call $class-overloading/A1#baz@virtual + ) (func $class-overloading/A2#foo@virtual (param $0 i32) (result i32) (local $1 i32) block $default @@ -3002,341 +3048,9 @@ call $~lib/builtins/abort unreachable end - ) - (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 - call $~stack_check - 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 0 - i32.const 4 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - end - global.get $~lib/memory/__stack_pointer - local.get $0 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $class-overloading/A#constructor - local.tee $0 - i32.store - local.get $0 - local.set $1 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $1 - ) - (func $~lib/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 - call $~stack_check - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - local.get $0 - local.get $1 - 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 $0 - i32.const 0 - i32.eq - if (result i32) - i32.const 1 - else - local.get $1 - 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 $0 - 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 $2 - local.get $2 - local.get $1 - 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 $0 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store - local.get $3 - i32.const 0 - local.get $1 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - i32.const 0 - local.get $2 - 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 - ) - (func $class-overloading/C#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 - call $~stack_check - 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 0 - i32.const 5 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - end - global.get $~lib/memory/__stack_pointer - local.get $0 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $class-overloading/B#constructor - local.tee $0 - i32.store - local.get $0 - 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-overloading/C#a (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 - call $~stack_check - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - local.get $0 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $2 - local.get $1 - call $class-overloading/B#a - global.get $class-overloading/which - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - 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 - i32.const 0 - i32.const 528 - i32.const 52 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - i32.const 592 - global.set $class-overloading/which - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - 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 - global.set $~lib/memory/__stack_pointer - call $~stack_check - 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 0 - i32.const 6 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - end - global.get $~lib/memory/__stack_pointer - local.get $0 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $class-overloading/B#constructor - local.tee $0 - i32.store - local.get $0 - 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-overloading/E#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 - call $~stack_check - 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 0 - i32.const 7 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - end - global.get $~lib/memory/__stack_pointer - local.get $0 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $class-overloading/D#constructor - local.tee $0 - i32.store - local.get $0 - 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-overloading/F#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 - call $~stack_check - 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 0 - i32.const 8 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - end - global.get $~lib/memory/__stack_pointer - local.get $0 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $class-overloading/E#constructor - local.tee $0 - i32.store - local.get $0 - 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-overloading/B2#constructor (param $0 i32) (result i32) - (local $1 i32) + ) + (func $class-overloading/C#a (param $0 i32) (param $1 i32) + (local $2 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -3346,32 +3060,36 @@ i64.const 0 i64.store local.get $0 + local.get $1 + call $class-overloading/B#a + global.get $class-overloading/which + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + 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 - global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 14 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store + i32.const 528 + i32.const 52 + i32.const 5 + call $~lib/builtins/abort + unreachable end - global.get $~lib/memory/__stack_pointer - local.get $0 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $class-overloading/A2#constructor - local.tee $0 - i32.store - local.get $0 - local.set $1 + i32.const 592 + global.set $class-overloading/which global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 ) (func $start:class-overloading (local $0 i32) @@ -4133,45 +3851,93 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $class-overloading/B1#constructor (param $0 i32) (result i32) + (func $class-overloading/B2#foo (param $0 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 + i32.const 0 + call $class-overloading/B1#constructor + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + call $class-overloading/A1#bar + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $class-overloading/A#constructor (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 + call $~stack_check + 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 15 + i32.const 3 call $~lib/rt/itcms/__new local.tee $0 i32.store end - global.get $~lib/memory/__stack_pointer local.get $0 local.set $1 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 $1 - call $class-overloading/A1#constructor + ) + (func $class-overloading/B#constructor (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 + call $~stack_check + 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 4 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + global.get $~lib/memory/__stack_pointer + local.get $0 + call $class-overloading/A#constructor local.tee $0 i32.store local.get $0 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 ) - (func $class-overloading/A1#bar (param $0 i32) (result i32) + (func $class-overloading/C#constructor (param $0 i32) (result i32) (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 4 @@ -4182,12 +3948,21 @@ i32.const 0 i32.store local.get $0 - local.set $1 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 5 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 + call $class-overloading/B#constructor + local.tee $0 i32.store - local.get $1 - call $class-overloading/A1#baz@virtual + local.get $0 local.set $1 global.get $~lib/memory/__stack_pointer i32.const 4 @@ -4195,7 +3970,7 @@ global.set $~lib/memory/__stack_pointer local.get $1 ) - (func $class-overloading/B2#foo (param $0 i32) (result i32) + (func $class-overloading/D#constructor (param $0 i32) (result i32) (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 4 @@ -4205,14 +3980,55 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - i32.const 0 - call $class-overloading/B1#constructor + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 6 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + global.get $~lib/memory/__stack_pointer + local.get $0 + call $class-overloading/B#constructor + local.tee $0 + i32.store + local.get $0 local.set $1 global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer local.get $1 + ) + (func $class-overloading/E#constructor (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 + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 i32.store - local.get $1 - call $class-overloading/A1#bar + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 7 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + global.get $~lib/memory/__stack_pointer + local.get $0 + call $class-overloading/D#constructor + local.tee $0 + i32.store + local.get $0 local.set $1 global.get $~lib/memory/__stack_pointer i32.const 4 @@ -4220,7 +4036,7 @@ global.set $~lib/memory/__stack_pointer local.get $1 ) - (func $class-overloading/A#constructor (param $0 i32) (result i32) + (func $class-overloading/F#constructor (param $0 i32) (result i32) (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 4 @@ -4235,11 +4051,16 @@ if global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 3 + i32.const 8 call $~lib/rt/itcms/__new local.tee $0 i32.store end + global.get $~lib/memory/__stack_pointer + local.get $0 + call $class-overloading/E#constructor + local.tee $0 + i32.store local.get $0 local.set $1 global.get $~lib/memory/__stack_pointer @@ -4332,6 +4153,39 @@ global.set $~lib/memory/__stack_pointer local.get $1 ) + (func $class-overloading/B2#constructor (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 + call $~stack_check + 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 14 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + global.get $~lib/memory/__stack_pointer + local.get $0 + call $class-overloading/A2#constructor + local.tee $0 + i32.store + local.get $0 + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) (func $class-overloading/A1#constructor (param $0 i32) (result i32) (local $1 i32) global.get $~lib/memory/__stack_pointer @@ -4360,4 +4214,37 @@ global.set $~lib/memory/__stack_pointer local.get $1 ) + (func $class-overloading/B1#constructor (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 + call $~stack_check + 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 15 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + global.get $~lib/memory/__stack_pointer + local.get $0 + call $class-overloading/A1#constructor + local.tee $0 + i32.store + local.get $0 + 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.optimized.wat b/tests/compiler/class.optimized.wat index d9fbdb9b97..1fddc4e995 100644 --- a/tests/compiler/class.optimized.wat +++ b/tests/compiler/class.optimized.wat @@ -1932,20 +1932,6 @@ 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 - call $~stack_check - 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 local.get $0 i32.load drop @@ -1965,13 +1951,6 @@ 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 diff --git a/tests/compiler/class.untouched.wat b/tests/compiler/class.untouched.wat index 858cd8ae16..4cba793593 100644 --- a/tests/compiler/class.untouched.wat +++ b/tests/compiler/class.untouched.wat @@ -106,6 +106,51 @@ local.get $1 i32.store8 offset=6 ) + (func $class/test (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) + local.get $0 + i32.const 1 + i32.const 2 + call $class/Animal#instanceAdd + drop + local.get $0 + f32.const 1 + f32.const 2 + call $class/Animal#instanceSub + drop + local.get $0 + i32.load + drop + local.get $0 + i32.load16_s offset=4 + drop + local.get $0 + i32.load8_s offset=6 + drop + local.get $0 + i32.const 0 + i32.const 1 + i32.add + call $class/Animal#set:one + local.get $0 + i32.const 1 + i32.const 1 + i32.add + call $class/Animal#set:two + local.get $0 + i32.const 1 + i32.const 1 + i32.add + i32.const 1 + i32.add + call $class/Animal#set:three + local.get $0 + local.set $1 + local.get $1 + local.set $2 + local.get $2 + ) (func $~lib/rt/itcms/Object#set:nextWithColor (param $0 i32) (param $1 i32) local.get $0 local.get $1 @@ -2634,78 +2679,6 @@ unreachable end ) - (func $class/test (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 - call $~stack_check - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - local.get $0 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store - local.get $3 - i32.const 1 - i32.const 2 - call $class/Animal#instanceAdd - drop - local.get $0 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store - local.get $3 - f32.const 1 - f32.const 2 - call $class/Animal#instanceSub - drop - local.get $0 - i32.load - drop - local.get $0 - i32.load16_s offset=4 - drop - local.get $0 - i32.load8_s offset=6 - drop - local.get $0 - i32.const 0 - i32.const 1 - i32.add - call $class/Animal#set:one - local.get $0 - i32.const 1 - i32.const 1 - i32.add - call $class/Animal#set:two - local.get $0 - i32.const 1 - i32.const 1 - i32.add - i32.const 1 - i32.add - call $class/Animal#set:three - local.get $0 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - local.tee $2 - i32.store offset=4 - local.get $2 - 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#constructor (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) diff --git a/tests/compiler/extends-baseaggregate.optimized.wat b/tests/compiler/extends-baseaggregate.optimized.wat index cbaaa1b561..2a70e72859 100644 --- a/tests/compiler/extends-baseaggregate.optimized.wat +++ b/tests/compiler/extends-baseaggregate.optimized.wat @@ -2079,23 +2079,20 @@ i32.const 1168 i32.store 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 global.get $~lib/memory/__stack_pointer i32.const 20 i32.const 6 call $~lib/rt/itcms/__new - local.tee $9 + local.tee $2 i32.store global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -2104,26 +2101,26 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - local.get $9 + local.get $2 i32.eqz if global.get $~lib/memory/__stack_pointer i32.const 20 i32.const 4 call $~lib/rt/itcms/__new - local.tee $9 + local.tee $2 i32.store end - local.get $9 + local.get $2 f64.const 0 f64.store - local.get $9 + local.get $2 f64.const 0 f64.store offset=8 - local.get $9 + local.get $2 i32.const 0 i32.store offset=16 - local.get $9 + local.get $2 i32.const 0 i32.const 0 call $~lib/rt/itcms/__link @@ -2131,31 +2128,31 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $9 + local.get $2 i32.store 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 $9 + local.get $2 i32.store offset=4 i32.const 1180 i32.load - local.tee $2 + local.tee $9 i32.const 1 i32.add - local.tee $6 - local.set $0 - local.get $6 + local.tee $5 + local.set $1 + local.get $5 i32.const 1176 i32.load - local.tee $5 + local.tee $6 i32.const 2 i32.shr_u i32.gt_u if - local.get $0 + local.get $1 i32.const 268435455 i32.gt_u if @@ -2168,18 +2165,18 @@ end i32.const 1168 i32.load - local.tee $4 - local.set $1 + local.tee $7 + local.set $0 block $__inlined_func$~lib/rt/itcms/__renew - local.get $0 + local.get $1 i32.const 2 i32.shl - local.tee $3 local.tee $8 - local.get $4 + local.tee $3 + local.get $7 i32.const 20 i32.sub - local.tee $7 + local.tee $4 i32.load i32.const -4 i32.and @@ -2187,69 +2184,69 @@ i32.sub i32.le_u if - local.get $7 - local.get $8 + local.get $4 + local.get $3 i32.store offset=16 br $__inlined_func$~lib/rt/itcms/__renew end - local.get $8 - local.get $7 + local.get $3 + local.get $4 i32.load offset=12 call $~lib/rt/itcms/__new - local.tee $0 - local.get $1 - local.get $8 - local.get $7 - i32.load offset=16 local.tee $1 - local.get $1 - local.get $8 + local.get $0 + local.get $3 + local.get $4 + i32.load offset=16 + local.tee $0 + local.get $0 + local.get $3 i32.gt_u select call $~lib/memory/memory.copy - local.get $0 - local.set $1 + local.get $1 + local.set $0 end - local.get $1 - local.get $5 + local.get $0 + local.get $6 i32.add - local.get $3 - local.get $5 + local.get $8 + local.get $6 i32.sub call $~lib/memory/memory.fill - local.get $1 - local.get $4 + local.get $0 + local.get $7 i32.ne if i32.const 1168 - local.get $1 + local.get $0 i32.store i32.const 1172 - local.get $1 + local.get $0 i32.store i32.const 1168 - local.get $1 + local.get $0 i32.const 0 call $~lib/rt/itcms/__link end i32.const 1176 - local.get $3 + local.get $8 i32.store end i32.const 1172 i32.load - local.get $2 + local.get $9 i32.const 2 i32.shl i32.add - local.get $9 + local.get $2 i32.store i32.const 1168 - local.get $9 + local.get $2 i32.const 1 call $~lib/rt/itcms/__link i32.const 1180 - local.get $6 + local.get $5 i32.store global.get $~lib/memory/__stack_pointer i32.const 8 diff --git a/tests/compiler/extends-baseaggregate.untouched.wat b/tests/compiler/extends-baseaggregate.untouched.wat index a610c05e87..560df5135e 100644 --- a/tests/compiler/extends-baseaggregate.untouched.wat +++ b/tests/compiler/extends-baseaggregate.untouched.wat @@ -4098,44 +4098,6 @@ unreachable end ) - (func $extends-baseaggregate/A2#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 - call $~stack_check - 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 20 - i32.const 6 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - end - global.get $~lib/memory/__stack_pointer - local.get $0 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $extends-baseaggregate/A1#constructor - local.tee $0 - i32.store - local.get $0 - 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:extends-baseaggregate (local $0 i32) (local $1 i32) @@ -4214,4 +4176,37 @@ global.set $~lib/memory/__stack_pointer local.get $1 ) + (func $extends-baseaggregate/A2#constructor (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 + call $~stack_check + 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 20 + i32.const 6 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + global.get $~lib/memory/__stack_pointer + local.get $0 + call $extends-baseaggregate/A1#constructor + local.tee $0 + i32.store + local.get $0 + 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/extends-recursive.optimized.wat b/tests/compiler/extends-recursive.optimized.wat index 6903726f57..361e232034 100644 --- a/tests/compiler/extends-recursive.optimized.wat +++ b/tests/compiler/extends-recursive.optimized.wat @@ -1601,13 +1601,13 @@ local.get $0 i32.store 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 $0 i32.eqz if @@ -1618,9 +1618,6 @@ i32.store end 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 i32.const 4 i32.sub @@ -1648,7 +1645,7 @@ 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 global.get $~lib/memory/__stack_pointer diff --git a/tests/compiler/extends-recursive.untouched.wat b/tests/compiler/extends-recursive.untouched.wat index b4b22389d9..b5a29b2c4a 100644 --- a/tests/compiler/extends-recursive.untouched.wat +++ b/tests/compiler/extends-recursive.untouched.wat @@ -2531,45 +2531,38 @@ unreachable end ) - (func $extends-recursive/Child#constructor (param $0 i32) (result i32) + (func $extends-recursive/Parent#constructor (param $0 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 $0 i32.eqz if global.get $~lib/memory/__stack_pointer i32.const 4 - i32.const 3 + i32.const 4 call $~lib/rt/itcms/__new local.tee $0 i32.store end - global.get $~lib/memory/__stack_pointer local.get $0 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $extends-recursive/Parent#constructor - local.tee $0 - i32.store + i32.const 0 + call $extends-recursive/Parent#set:child local.get $0 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 ) - (func $extends-recursive/Parent#constructor (param $0 i32) (result i32) + (func $extends-recursive/Child#constructor (param $0 i32) (result i32) (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 4 @@ -2584,14 +2577,16 @@ if global.get $~lib/memory/__stack_pointer i32.const 4 - i32.const 4 + i32.const 3 call $~lib/rt/itcms/__new local.tee $0 i32.store end + global.get $~lib/memory/__stack_pointer local.get $0 - i32.const 0 - call $extends-recursive/Parent#set:child + call $extends-recursive/Parent#constructor + local.tee $0 + i32.store local.get $0 local.set $1 global.get $~lib/memory/__stack_pointer diff --git a/tests/compiler/field-initialization.optimized.wat b/tests/compiler/field-initialization.optimized.wat index ccd2a65304..39bba5954c 100644 --- a/tests/compiler/field-initialization.optimized.wat +++ b/tests/compiler/field-initialization.optimized.wat @@ -1816,6 +1816,122 @@ local.get $1 call $~lib/rt/itcms/__link ) + (func $~lib/string/String.__eq (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + local.get $0 + local.get $1 + i32.eq + if + i32.const 1 + return + end + local.get $1 + i32.eqz + i32.const 1 + local.get $0 + select + if + i32.const 0 + return + end + 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.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u + i32.ne + if + i32.const 0 + return + end + block $__inlined_func$~lib/util/string/compareImpl (result i32) + local.get $0 + local.tee $3 + i32.const 7 + i32.and + local.get $1 + i32.const 7 + i32.and + i32.or + i32.eqz + i32.const 0 + local.get $2 + local.tee $0 + i32.const 4 + i32.ge_u + select + if + loop $do-continue|0 + local.get $3 + i64.load + local.get $1 + i64.load + i64.eq + if + local.get $3 + i32.const 8 + i32.add + local.set $3 + 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-continue|0 + end + end + end + loop $while-continue|1 + local.get $0 + local.tee $2 + i32.const 1 + i32.sub + local.set $0 + local.get $2 + if + local.get $3 + i32.load16_u + local.tee $2 + local.get $1 + i32.load16_u + local.tee $4 + i32.ne + if + local.get $2 + local.get $4 + i32.sub + br $__inlined_func$~lib/util/string/compareImpl + end + local.get $3 + i32.const 2 + i32.add + local.set $3 + local.get $1 + i32.const 2 + i32.add + local.set $1 + br $while-continue|1 + end + end + i32.const 0 + end + i32.eqz + ) (func $field-initialization/SomeOtherObject#set:c (param $0 i32) (param $1 i32) local.get $0 local.get $1 @@ -1918,185 +2034,6 @@ unreachable end ) - (func $~lib/string/String.__eq (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 - call $~stack_check - 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 - i32.const 1 - local.get $0 - select - 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 - block $__inlined_func$~lib/util/string/compareImpl (result i32) - local.get $0 - local.tee $3 - i32.const 7 - i32.and - local.get $1 - i32.const 7 - i32.and - i32.or - i32.eqz - i32.const 0 - local.get $2 - i32.const 4 - i32.ge_u - select - if - loop $do-continue|0 - local.get $3 - i64.load - local.get $1 - i64.load - i64.eq - if - local.get $3 - i32.const 8 - i32.add - local.set $3 - 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-continue|0 - end - end - end - loop $while-continue|1 - local.get $2 - local.tee $0 - i32.const 1 - i32.sub - local.set $2 - local.get $0 - if - local.get $3 - i32.load16_u - local.tee $4 - local.get $1 - i32.load16_u - local.tee $0 - i32.ne - if - local.get $4 - local.get $0 - i32.sub - br $__inlined_func$~lib/util/string/compareImpl - end - local.get $3 - i32.const 2 - i32.add - local.set $3 - local.get $1 - i32.const 2 - i32.add - local.set $1 - br $while-continue|1 - end - end - i32.const 0 - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - 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 - call $~stack_check - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.const 21 - 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 - local.get $0 - i32.const 0 - call $field-initialization/SomeOtherObject#set:c - 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) (local $1 i32) @@ -2488,12 +2425,9 @@ end global.get $~lib/memory/__stack_pointer call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $0 + local.tee $1 i32.store 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 i32.const 4 i32.sub @@ -2506,19 +2440,19 @@ i32.const 4 i32.const 13 call $~lib/rt/itcms/__new - local.tee $1 + local.tee $0 i32.store - local.get $1 local.get $0 + local.get $1 call $field-initialization/Ref_Init#set:a 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 $0 + i32.store offset=4 local.get $1 + local.get $0 i32.load i32.ne if @@ -2552,7 +2486,7 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $0 - i32.store offset=8 + i32.store offset=4 local.get $0 i32.load if @@ -2586,7 +2520,7 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $0 - i32.store offset=8 + i32.store offset=4 local.get $0 i32.load i32.eqz @@ -2624,7 +2558,7 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $0 - i32.store offset=8 + i32.store offset=4 local.get $0 i32.load i32.eqz @@ -2638,13 +2572,13 @@ end global.get $~lib/memory/__stack_pointer 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 global.get $~lib/memory/__stack_pointer i32.const 4 i32.const 17 @@ -2653,18 +2587,15 @@ 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/Inherit_Base#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 - i32.store offset=8 + i32.store offset=4 local.get $0 i32.load i32.eqz @@ -2678,13 +2609,13 @@ end global.get $~lib/memory/__stack_pointer 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 global.get $~lib/memory/__stack_pointer i32.const 4 i32.const 19 @@ -2693,18 +2624,15 @@ 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/Inherit_Base#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 - i32.store offset=8 + i32.store offset=4 local.get $0 i32.load i32.eqz @@ -2721,7 +2649,7 @@ i32.const 0 call $field-initialization/SomeObject#constructor local.tee $0 - i32.store offset=8 + i32.store offset=4 local.get $0 i32.const 0 i32.store @@ -2744,7 +2672,7 @@ local.get $0 i32.load offset=4 local.tee $0 - i32.store offset=12 + i32.store offset=8 local.get $0 i32.const 0 call $~lib/string/String.__eq @@ -2762,7 +2690,7 @@ i32.const 0 call $field-initialization/SomeObject#constructor local.tee $0 - i32.store offset=16 + i32.store offset=12 local.get $0 i32.const 1 i32.store @@ -2770,7 +2698,7 @@ i32.const 0 call $field-initialization/SomeObject#set:b local.get $0 - i32.store offset=20 + i32.store offset=16 local.get $0 i32.load i32.const 1 @@ -2787,7 +2715,7 @@ local.get $0 i32.load offset=4 local.tee $0 - i32.store offset=12 + i32.store offset=8 local.get $0 i32.const 0 call $~lib/string/String.__eq @@ -2805,7 +2733,7 @@ i32.const 0 call $field-initialization/SomeObject#constructor local.tee $0 - i32.store offset=24 + i32.store offset=20 local.get $0 i32.const 1648 call $field-initialization/SomeObject#set:b @@ -2813,7 +2741,7 @@ i32.const 0 i32.store local.get $0 - i32.store offset=28 + i32.store offset=24 local.get $0 i32.load if @@ -2828,10 +2756,10 @@ local.get $0 i32.load offset=4 local.tee $0 - i32.store offset=12 + i32.store offset=8 global.get $~lib/memory/__stack_pointer i32.const 1648 - i32.store offset=4 + i32.store offset=28 local.get $0 i32.const 1648 call $~lib/string/String.__eq @@ -2874,10 +2802,10 @@ local.get $0 i32.load offset=4 local.tee $0 - i32.store offset=12 + i32.store offset=8 global.get $~lib/memory/__stack_pointer i32.const 1680 - i32.store offset=4 + i32.store offset=28 local.get $0 i32.const 1680 call $~lib/string/String.__eq @@ -2905,7 +2833,7 @@ i32.const 0 call $field-initialization/SomeObject#set:b local.get $0 - i32.store offset=28 + i32.store offset=24 local.get $0 i32.load if @@ -2920,7 +2848,7 @@ local.get $0 i32.load offset=4 local.tee $1 - i32.store offset=12 + i32.store offset=8 local.get $1 i32.const 0 call $~lib/string/String.__eq @@ -2937,10 +2865,10 @@ local.get $0 i32.load offset=8 local.tee $0 - i32.store offset=12 + i32.store offset=8 global.get $~lib/memory/__stack_pointer i32.const 1712 - i32.store offset=4 + i32.store offset=28 local.get $0 i32.const 1712 call $~lib/string/String.__eq @@ -2957,7 +2885,7 @@ global.get $~lib/memory/__stack_pointer call $field-initialization/SomeOtherObject#constructor local.tee $0 - i32.store offset=20 + i32.store offset=16 local.get $0 i32.const 3 i32.store @@ -2985,10 +2913,10 @@ local.get $0 i32.load offset=4 local.tee $1 - i32.store offset=12 + i32.store offset=8 global.get $~lib/memory/__stack_pointer i32.const 1744 - i32.store offset=4 + i32.store offset=28 local.get $1 i32.const 1744 call $~lib/string/String.__eq @@ -3005,10 +2933,10 @@ local.get $0 i32.load offset=8 local.tee $0 - i32.store offset=12 + i32.store offset=8 global.get $~lib/memory/__stack_pointer i32.const 1776 - i32.store offset=4 + i32.store offset=28 local.get $0 i32.const 1776 call $~lib/string/String.__eq @@ -3065,12 +2993,12 @@ i32.const 23 call $~lib/rt/itcms/__new local.tee $0 - i32.store offset=28 + i32.store offset=24 local.get $0 call $~lib/arraybuffer/ArrayBuffer#constructor call $field-initialization/Ref_Init#set:a local.get $0 - i32.store offset=28 + i32.store offset=24 local.get $0 i32.load i32.eqz @@ -3197,4 +3125,34 @@ global.set $~lib/memory/__stack_pointer local.get $0 ) + (func $field-initialization/SomeOtherObject#constructor (result i32) + (local $0 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 21 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + call $field-initialization/SomeObject#constructor + local.tee $0 + i32.store + local.get $0 + i32.const 0 + call $field-initialization/SomeOtherObject#set:c + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + ) ) diff --git a/tests/compiler/field-initialization.untouched.wat b/tests/compiler/field-initialization.untouched.wat index a12b54f6a5..a9855d4deb 100644 --- a/tests/compiler/field-initialization.untouched.wat +++ b/tests/compiler/field-initialization.untouched.wat @@ -2672,6 +2672,48 @@ end i32.const 0 ) + (func $~lib/string/String.__eq (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + local.get $0 + local.get $1 + i32.eq + if + i32.const 1 + return + end + local.get $0 + i32.const 0 + i32.eq + if (result i32) + i32.const 1 + else + local.get $1 + i32.const 0 + i32.eq + end + if + i32.const 0 + return + end + local.get $0 + call $~lib/string/String#get:length + local.set $2 + local.get $2 + local.get $1 + call $~lib/string/String#get:length + i32.ne + if + i32.const 0 + return + end + local.get $0 + i32.const 0 + local.get $1 + i32.const 0 + local.get $2 + call $~lib/util/string/compareImpl + i32.eqz + ) (func $field-initialization/SomeOtherObject#set:c (param $0 i32) (param $1 i32) local.get $0 local.get $1 @@ -3064,218 +3106,6 @@ unreachable end ) - (func $field-initialization/Inherit#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 - call $~stack_check - 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 17 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - end - global.get $~lib/memory/__stack_pointer - local.get $0 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $field-initialization/Inherit_Base#constructor - local.tee $0 - i32.store - local.get $0 - local.set $1 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $1 - ) - (func $field-initialization/Inherit_Ctor#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 - call $~stack_check - 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 19 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - end - global.get $~lib/memory/__stack_pointer - local.get $0 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $field-initialization/Inherit_Base#constructor - local.tee $0 - i32.store - local.get $0 - local.set $1 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $1 - ) - (func $~lib/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 - call $~stack_check - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - local.get $0 - local.get $1 - 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 $0 - i32.const 0 - i32.eq - if (result i32) - i32.const 1 - else - local.get $1 - 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 $0 - 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 $2 - local.get $2 - local.get $1 - 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 $0 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store - local.get $3 - i32.const 0 - local.get $1 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - i32.const 0 - local.get $2 - 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 - ) - (func $field-initialization/SomeOtherObject#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 - call $~stack_check - 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 12 - i32.const 21 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - end - global.get $~lib/memory/__stack_pointer - local.get $0 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $field-initialization/SomeObject#constructor - local.tee $0 - i32.store - local.get $0 - i32.const 0 - call $field-initialization/SomeOtherObject#set:c - local.get $0 - 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:field-initialization (local $0 i32) (local $1 i32) @@ -3504,14 +3334,9 @@ global.get $~lib/memory/__stack_pointer i32.const 0 local.get $0 - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 call $field-initialization/Ref_Ctor_Param#constructor local.tee $1 - i32.store offset=8 + i32.store offset=4 local.get $1 i32.load local.get $0 @@ -3529,7 +3354,7 @@ i32.const 0 call $field-initialization/Nullable_Ctor#constructor local.tee $1 - i32.store offset=8 + i32.store offset=4 local.get $1 i32.load i32.const 0 @@ -3547,7 +3372,7 @@ i32.const 0 call $field-initialization/Nullable_Init_Ctor#constructor local.tee $1 - i32.store offset=8 + i32.store offset=4 local.get $1 i32.load i32.const 0 @@ -3565,7 +3390,7 @@ i32.const 0 call $field-initialization/Nullable_Ctor_Init#constructor local.tee $1 - i32.store offset=8 + i32.store offset=4 local.get $1 i32.load i32.const 0 @@ -3583,7 +3408,7 @@ i32.const 0 call $field-initialization/Inherit#constructor local.tee $1 - i32.store offset=8 + i32.store offset=4 local.get $1 i32.load i32.const 0 @@ -3601,7 +3426,7 @@ i32.const 0 call $field-initialization/Inherit_Ctor#constructor local.tee $1 - i32.store offset=8 + i32.store offset=4 local.get $1 i32.load i32.const 0 @@ -3620,7 +3445,7 @@ i32.const 0 call $field-initialization/SomeObject#constructor local.tee $1 - i32.store offset=8 + i32.store offset=4 local.get $1 i32.const 0 call $field-initialization/SomeObject#set:a @@ -3648,7 +3473,7 @@ local.set $8 global.get $~lib/memory/__stack_pointer local.get $8 - i32.store offset=12 + i32.store offset=8 local.get $8 i32.const 0 call $~lib/string/String.__eq @@ -3666,7 +3491,7 @@ i32.const 0 call $field-initialization/SomeObject#constructor local.tee $2 - i32.store offset=16 + i32.store offset=12 local.get $2 i32.const 1 call $field-initialization/SomeObject#set:a @@ -3675,7 +3500,7 @@ call $field-initialization/SomeObject#set:b local.get $2 local.tee $3 - i32.store offset=20 + i32.store offset=16 local.get $3 i32.load i32.const 1 @@ -3694,7 +3519,7 @@ local.set $8 global.get $~lib/memory/__stack_pointer local.get $8 - i32.store offset=12 + i32.store offset=8 local.get $8 i32.const 0 call $~lib/string/String.__eq @@ -3712,7 +3537,7 @@ i32.const 0 call $field-initialization/SomeObject#constructor local.tee $4 - i32.store offset=24 + i32.store offset=20 local.get $4 i32.const 624 call $field-initialization/SomeObject#set:b @@ -3721,7 +3546,7 @@ call $field-initialization/SomeObject#set:a local.get $4 local.tee $5 - i32.store offset=28 + i32.store offset=24 local.get $5 i32.load i32.const 0 @@ -3740,13 +3565,13 @@ local.set $8 global.get $~lib/memory/__stack_pointer local.get $8 - i32.store offset=12 + i32.store offset=8 local.get $8 i32.const 624 local.set $8 global.get $~lib/memory/__stack_pointer local.get $8 - i32.store offset=4 + i32.store offset=28 local.get $8 call $~lib/string/String.__eq i32.eqz @@ -3791,13 +3616,13 @@ local.set $8 global.get $~lib/memory/__stack_pointer local.get $8 - i32.store offset=12 + i32.store offset=8 local.get $8 i32.const 656 local.set $8 global.get $~lib/memory/__stack_pointer local.get $8 - i32.store offset=4 + i32.store offset=28 local.get $8 call $~lib/string/String.__eq i32.eqz @@ -3826,7 +3651,7 @@ call $field-initialization/SomeObject#set:b local.get $7 local.tee $5 - i32.store offset=28 + i32.store offset=24 local.get $5 i32.load i32.const 0 @@ -3845,7 +3670,7 @@ local.set $8 global.get $~lib/memory/__stack_pointer local.get $8 - i32.store offset=12 + i32.store offset=8 local.get $8 i32.const 0 call $~lib/string/String.__eq @@ -3863,13 +3688,13 @@ local.set $8 global.get $~lib/memory/__stack_pointer local.get $8 - i32.store offset=12 + i32.store offset=8 local.get $8 i32.const 688 local.set $8 global.get $~lib/memory/__stack_pointer local.get $8 - i32.store offset=4 + i32.store offset=28 local.get $8 call $~lib/string/String.__eq i32.eqz @@ -3886,7 +3711,7 @@ i32.const 0 call $field-initialization/SomeOtherObject#constructor local.tee $3 - i32.store offset=20 + i32.store offset=16 local.get $3 i32.const 3 call $field-initialization/SomeObject#set:a @@ -3917,13 +3742,13 @@ local.set $8 global.get $~lib/memory/__stack_pointer local.get $8 - i32.store offset=12 + i32.store offset=8 local.get $8 i32.const 720 local.set $8 global.get $~lib/memory/__stack_pointer local.get $8 - i32.store offset=4 + i32.store offset=28 local.get $8 call $~lib/string/String.__eq i32.eqz @@ -3940,13 +3765,13 @@ local.set $8 global.get $~lib/memory/__stack_pointer local.get $8 - i32.store offset=12 + i32.store offset=8 local.get $8 i32.const 752 local.set $8 global.get $~lib/memory/__stack_pointer local.get $8 - i32.store offset=4 + i32.store offset=28 local.get $8 call $~lib/string/String.__eq i32.eqz @@ -3988,7 +3813,7 @@ i32.const 23 call $~lib/rt/itcms/__new local.tee $5 - i32.store offset=28 + i32.store offset=24 end local.get $5 i32.const 0 @@ -3997,7 +3822,7 @@ call $field-initialization/Ref_Init_InlineCtor#set:a local.get $5 local.tee $5 - i32.store offset=28 + i32.store offset=24 local.get $5 i32.load i32.const 0 @@ -4581,6 +4406,72 @@ global.set $~lib/memory/__stack_pointer local.get $1 ) + (func $field-initialization/Inherit#constructor (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 + call $~stack_check + 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.const 17 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + global.get $~lib/memory/__stack_pointer + local.get $0 + call $field-initialization/Inherit_Base#constructor + local.tee $0 + i32.store + local.get $0 + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $field-initialization/Inherit_Ctor#constructor (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 + call $~stack_check + 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.const 19 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + global.get $~lib/memory/__stack_pointer + local.get $0 + call $field-initialization/Inherit_Base#constructor + local.tee $0 + i32.store + local.get $0 + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) (func $field-initialization/SomeObject#constructor (param $0 i32) (result i32) (local $1 i32) global.get $~lib/memory/__stack_pointer @@ -4615,6 +4506,42 @@ global.set $~lib/memory/__stack_pointer local.get $1 ) + (func $field-initialization/SomeOtherObject#constructor (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 + call $~stack_check + 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 12 + i32.const 21 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + global.get $~lib/memory/__stack_pointer + local.get $0 + call $field-initialization/SomeObject#constructor + local.tee $0 + i32.store + local.get $0 + i32.const 0 + call $field-initialization/SomeOtherObject#set:c + local.get $0 + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) (func $field-initialization/Flow_Balanced#constructor (param $0 i32) (param $1 i32) (result i32) (local $2 i32) global.get $~lib/memory/__stack_pointer diff --git a/tests/compiler/getter-call.optimized.wat b/tests/compiler/getter-call.optimized.wat index 0072cc7a06..a75d67931f 100644 --- a/tests/compiler/getter-call.optimized.wat +++ b/tests/compiler/getter-call.optimized.wat @@ -1408,13 +1408,13 @@ (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 call $~stack_check global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store + i32.const 0 + i32.store global.get $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 4 @@ -1506,14 +1506,11 @@ global.set $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 i32.const 1456 i32.load call_indirect (type $none_=>_i32) 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/getter-call.untouched.wat b/tests/compiler/getter-call.untouched.wat index f4de8c5e4d..42b45d99d6 100644 --- a/tests/compiler/getter-call.untouched.wat +++ b/tests/compiler/getter-call.untouched.wat @@ -2447,41 +2447,36 @@ unreachable end ) - (func $getter-call/test (result i32) - (local $0 i32) + (func $getter-call/C#constructor (param $0 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 - global.get $~lib/memory/__stack_pointer i32.const 0 - call $getter-call/C#constructor - local.tee $0 i32.store - i32.const 0 - global.set $~argumentsLength + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 3 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end local.get $0 local.set $1 global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $getter-call/C#get:x - i32.load - call_indirect (type $none_=>_i32) - 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 ) - (func $getter-call/C#constructor (param $0 i32) (result i32) + (func $getter-call/test (result i32) + (local $0 i32) (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 4 @@ -2491,17 +2486,17 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + call $getter-call/C#constructor + local.tee $0 + i32.store + i32.const 0 + global.set $~argumentsLength local.get $0 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 3 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - end - local.get $0 + call $getter-call/C#get:x + i32.load + call_indirect (type $none_=>_i32) local.set $1 global.get $~lib/memory/__stack_pointer i32.const 4 diff --git a/tests/compiler/infer-array.optimized.wat b/tests/compiler/infer-array.optimized.wat index 937d7c6451..621d4a6d60 100644 --- a/tests/compiler/infer-array.optimized.wat +++ b/tests/compiler/infer-array.optimized.wat @@ -2010,93 +2010,6 @@ i32.const 1 call $~lib/rt/itcms/__link ) - (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 $infer-array/Ref - block $~lib/arraybuffer/ArrayBufferView - block $~lib/string/String - block $~lib/arraybuffer/ArrayBuffer - local.get $0 - i32.const 8 - i32.sub - i32.load - br_table $~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 - local.get $0 - i32.load - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end - return - end - return - end - unreachable - end - local.get $0 - i32.load - call $~lib/rt/itcms/__visit - return - end - local.get $0 - i32.load offset=4 - local.tee $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 - local.get $0 - i32.load - call $~lib/rt/itcms/__visit - ) - (func $~start - call $start:infer-array - ) - (func $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 2212 - i32.lt_s - if - i32.const 18624 - i32.const 18672 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - ) (func $start:infer-array (local $0 i32) (local $1 i32) @@ -2104,7 +2017,7 @@ (local $3 i32) block $folding-inner0 global.get $~lib/memory/__stack_pointer - i32.const 20 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check @@ -2114,9 +2027,6 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=16 i32.const 1200 call $~lib/rt/itcms/initLazy global.set $~lib/rt/itcms/pinSpace @@ -2148,9 +2058,6 @@ call $~lib/rt/__newArray local.tee $0 i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 local.get $0 local.tee $1 i32.load offset=12 @@ -2185,9 +2092,6 @@ call $~lib/rt/__newArray local.tee $0 i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 local.get $0 local.tee $1 i32.load offset=12 @@ -2214,11 +2118,11 @@ i32.const 0 call $~lib/rt/__newArray local.tee $0 - i32.store offset=12 + i32.store offset=8 global.get $~lib/memory/__stack_pointer local.get $0 i32.load offset=4 - i32.store offset=16 + i32.store offset=12 local.get $0 i32.const 0 local.get $1 @@ -2228,11 +2132,11 @@ local.get $2 call $~lib/array/Array#__uset local.get $0 - i32.store offset=16 + i32.store offset=12 global.get $~lib/memory/__stack_pointer call $infer-array/Ref#constructor local.tee $1 - i32.store offset=16 + i32.store offset=12 global.get $~lib/memory/__stack_pointer call $infer-array/Ref#constructor local.tee $2 @@ -2249,7 +2153,7 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.load offset=4 - i32.store offset=12 + i32.store offset=8 local.get $0 i32.const 0 local.get $1 @@ -2259,11 +2163,11 @@ local.get $2 call $~lib/array/Array#__uset local.get $0 - i32.store offset=12 + i32.store offset=8 global.get $~lib/memory/__stack_pointer call $infer-array/Ref#constructor local.tee $1 - i32.store offset=12 + i32.store offset=8 global.get $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 2 @@ -2276,7 +2180,7 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.load offset=4 - i32.store offset=16 + i32.store offset=12 local.get $0 i32.const 0 local.get $1 @@ -2286,21 +2190,21 @@ i32.const 0 call $~lib/array/Array#__uset local.get $0 - i32.store offset=16 + i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 2 i32.const 2 i32.const 9 i32.const 1776 call $~lib/rt/__newArray - i32.store offset=12 + i32.store offset=8 global.get $~lib/memory/__stack_pointer i32.const 1 i32.const 2 i32.const 10 i32.const 1808 call $~lib/rt/__newArray - i32.store offset=16 + i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 2 i32.const 2 @@ -2314,14 +2218,14 @@ i32.const 3 i32.const 1872 call $~lib/rt/__newArray - i32.store offset=16 + i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 2 i32.const 2 i32.const 3 i32.const 1904 call $~lib/rt/__newArray - i32.store offset=12 + i32.store offset=8 global.get $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 2 @@ -2330,11 +2234,11 @@ i32.const 0 call $~lib/rt/__newArray local.tee $0 - i32.store offset=12 + i32.store offset=8 global.get $~lib/memory/__stack_pointer local.get $0 i32.load offset=4 - i32.store offset=16 + i32.store offset=12 local.get $0 i32.const 0 i32.const 1 @@ -2352,9 +2256,9 @@ call $~lib/rt/__newArray call $~lib/array/Array#__uset local.get $0 - i32.store offset=16 + i32.store offset=12 global.get $~lib/memory/__stack_pointer - i32.const 20 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer return @@ -2366,6 +2270,93 @@ 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 $infer-array/Ref + block $~lib/arraybuffer/ArrayBufferView + block $~lib/string/String + block $~lib/arraybuffer/ArrayBuffer + local.get $0 + i32.const 8 + i32.sub + i32.load + br_table $~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 + local.get $0 + i32.load + local.tee $0 + if + local.get $0 + call $~lib/rt/itcms/__visit + end + return + end + return + end + unreachable + end + local.get $0 + i32.load + call $~lib/rt/itcms/__visit + return + end + local.get $0 + i32.load offset=4 + local.tee $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 + local.get $0 + i32.load + call $~lib/rt/itcms/__visit + ) + (func $~start + call $start:infer-array + ) + (func $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 2212 + i32.lt_s + if + i32.const 18624 + i32.const 18672 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + ) (func $~lib/rt/__newArray (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) (local $4 i32) (local $5 i32) diff --git a/tests/compiler/infer-array.untouched.wat b/tests/compiler/infer-array.untouched.wat index 0c0a616361..3961707e77 100644 --- a/tests/compiler/infer-array.untouched.wat +++ b/tests/compiler/infer-array.untouched.wat @@ -3868,97 +3868,407 @@ i32.const 1 call $~lib/rt/itcms/__link ) - (func $~lib/rt/__visit_globals (param $0 i32) + (func $start:infer-array + (local $0 i32) (local $1 i32) - i32.const 256 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 976 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 64 - 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 - i32.load - local.tee $2 - if - local.get $2 - local.get $1 - call $~lib/rt/itcms/__visit - end - ) - (func $~lib/array/Array#__visit (param $0 i32) (param $1 i32) + (local $2 f32) + (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 + i32.const 176 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/pinSpace + i32.const 208 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/toSpace + i32.const 352 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/fromSpace + global.get $~lib/memory/__stack_pointer + i32.const 3 + i32.const 2 + i32.const 3 + i32.const 32 + call $~lib/rt/__newArray + local.tee $1 + i32.store + i32.const 1 + drop + i32.const 1 + drop + global.get $~lib/memory/__stack_pointer + i32.const 3 + i32.const 3 + i32.const 4 + i32.const 512 + call $~lib/rt/__newArray + local.tee $0 + i32.store offset=4 + i32.const 1 + drop + global.get $~lib/memory/__stack_pointer + i32.const 2 + i32.const 2 + i32.const 5 + i32.const 560 + call $~lib/rt/__newArray + local.tee $1 + i32.store + i32.const 1 + drop i32.const 0 + i32.eqz drop - local.get $0 - i32.load local.get $1 - call $~lib/rt/itcms/__visit - ) - (func $~lib/array/Array~visit (param $0 i32) (param $1 i32) - local.get $0 + i32.const 1 + call $~lib/array/Array#__get + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 592 + i32.const 14 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 3 + i32.const 3 + i32.const 4 + i32.const 640 + call $~lib/rt/__newArray + local.tee $0 + i32.store offset=4 + i32.const 1 + drop + global.get $~lib/memory/__stack_pointer + i32.const 3 + i32.const 2 + i32.const 6 + i32.const 688 + call $~lib/rt/__newArray + local.tee $1 + i32.store + i32.const 1 + drop local.get $1 - call $~lib/array/Array#__visit - ) - (func $~lib/array/Array#__visit (param $0 i32) (param $1 i32) + i32.const 1 + call $~lib/array/Array#__get + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 0 + call $infer-array/Ref#constructor + local.tee $1 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + call $infer-array/Ref#constructor + local.tee $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 2 + i32.const 2 + i32.const 8 + i32.const 0 + call $~lib/rt/__newArray + local.tee $3 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.load offset=4 + local.tee $4 + i32.store offset=12 + local.get $3 i32.const 0 - drop - local.get $0 - i32.load local.get $1 - call $~lib/rt/itcms/__visit - ) - (func $~lib/array/Array~visit (param $0 i32) (param $1 i32) + call $~lib/array/Array#__uset + local.get $3 + i32.const 1 local.get $0 - local.get $1 - call $~lib/array/Array#__visit - ) - (func $~lib/array/Array#__visit (param $0 i32) (param $1 i32) - i32.const 0 + call $~lib/array/Array#__uset + local.get $3 + local.tee $4 + i32.store offset=12 + i32.const 1 drop - local.get $0 - i32.load + global.get $~lib/memory/__stack_pointer + i32.const 0 + call $infer-array/Ref#constructor + local.tee $4 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 0 + call $infer-array/Ref#constructor + local.tee $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 2 + i32.const 2 + i32.const 8 + i32.const 0 + call $~lib/rt/__newArray + local.tee $1 + i32.store + global.get $~lib/memory/__stack_pointer local.get $1 - call $~lib/rt/itcms/__visit - ) - (func $~lib/array/Array~visit (param $0 i32) (param $1 i32) - local.get $0 + i32.load offset=4 + local.tee $3 + i32.store offset=8 local.get $1 - call $~lib/array/Array#__visit - ) - (func $~lib/array/Array#__visit (param $0 i32) (param $1 i32) i32.const 0 - drop - local.get $0 - i32.load + local.get $4 + call $~lib/array/Array#__uset local.get $1 - call $~lib/rt/itcms/__visit - ) - (func $~lib/array/Array~visit (param $0 i32) (param $1 i32) + i32.const 1 local.get $0 + call $~lib/array/Array#__uset local.get $1 - call $~lib/array/Array#__visit - ) - (func $~lib/array/Array#__visit (param $0 i32) (param $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) + local.tee $3 + i32.store offset=8 i32.const 1 drop + global.get $~lib/memory/__stack_pointer + i32.const 0 + call $infer-array/Ref#constructor + local.tee $3 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 2 + i32.const 2 + i32.const 8 + i32.const 0 + call $~lib/rt/__newArray + local.tee $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer local.get $0 i32.load offset=4 - local.set $2 - local.get $2 + local.tee $4 + i32.store offset=12 local.get $0 - i32.load offset=12 + i32.const 0 + local.get $3 + call $~lib/array/Array#__uset + local.get $0 + i32.const 1 + i32.const 0 + call $~lib/array/Array#__uset + local.get $0 + local.tee $4 + i32.store offset=12 + i32.const 1 + drop + global.get $~lib/memory/__stack_pointer i32.const 2 - i32.shl - i32.add + i32.const 2 + i32.const 9 + i32.const 752 + call $~lib/rt/__newArray + local.tee $3 + i32.store offset=8 + i32.const 1 + drop + global.get $~lib/memory/__stack_pointer + i32.const 1 + i32.const 2 + i32.const 10 + i32.const 784 + call $~lib/rt/__newArray + local.tee $4 + i32.store offset=12 + i32.const 1 + drop + i32.const 0 + i32.eqz + drop + global.get $~lib/memory/__stack_pointer + i32.const 2 + i32.const 2 + i32.const 10 + i32.const 816 + call $~lib/rt/__newArray + local.tee $0 + i32.store offset=4 + i32.const 1 + drop + i32.const 0 + i32.eqz + drop + global.get $~lib/memory/__stack_pointer + i32.const 2 + i32.const 2 + i32.const 3 + i32.const 848 + call $~lib/rt/__newArray + local.tee $4 + i32.store offset=12 + i32.const 1 + drop + i32.const 0 + i32.eqz + drop + global.get $~lib/memory/__stack_pointer + i32.const 2 + i32.const 2 + i32.const 3 + i32.const 880 + call $~lib/rt/__newArray + local.tee $3 + i32.store offset=8 + i32.const 1 + drop + i32.const 0 + i32.eqz + drop + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 2 + i32.const 2 + i32.const 11 + i32.const 0 + call $~lib/rt/__newArray + local.tee $3 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.load offset=4 + local.tee $4 + i32.store offset=12 + local.get $3 + i32.const 0 + i32.const 1 + i32.const 2 + i32.const 3 + i32.const 912 + call $~lib/rt/__newArray + call $~lib/array/Array<~lib/array/Array>#__uset + local.get $3 + i32.const 1 + i32.const 1 + i32.const 2 + i32.const 3 + i32.const 944 + call $~lib/rt/__newArray + call $~lib/array/Array<~lib/array/Array>#__uset + local.get $3 + local.tee $4 + i32.store offset=12 + i32.const 1 + drop + i32.const 0 + i32.eqz + drop + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/rt/__visit_globals (param $0 i32) + (local $1 i32) + i32.const 256 + local.get $0 + call $~lib/rt/itcms/__visit + i32.const 976 + local.get $0 + call $~lib/rt/itcms/__visit + i32.const 64 + 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 + i32.load + local.tee $2 + if + local.get $2 + local.get $1 + call $~lib/rt/itcms/__visit + end + ) + (func $~lib/array/Array#__visit (param $0 i32) (param $1 i32) + i32.const 0 + drop + local.get $0 + i32.load + local.get $1 + call $~lib/rt/itcms/__visit + ) + (func $~lib/array/Array~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/array/Array#__visit + ) + (func $~lib/array/Array#__visit (param $0 i32) (param $1 i32) + i32.const 0 + drop + local.get $0 + i32.load + local.get $1 + call $~lib/rt/itcms/__visit + ) + (func $~lib/array/Array~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/array/Array#__visit + ) + (func $~lib/array/Array#__visit (param $0 i32) (param $1 i32) + i32.const 0 + drop + local.get $0 + i32.load + local.get $1 + call $~lib/rt/itcms/__visit + ) + (func $~lib/array/Array~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/array/Array#__visit + ) + (func $~lib/array/Array#__visit (param $0 i32) (param $1 i32) + i32.const 0 + drop + local.get $0 + i32.load + local.get $1 + call $~lib/rt/itcms/__visit + ) + (func $~lib/array/Array~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/array/Array#__visit + ) + (func $~lib/array/Array#__visit (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + i32.const 1 + drop + local.get $0 + i32.load offset=4 + local.set $2 + local.get $2 + local.get $0 + i32.load offset=12 + i32.const 2 + i32.shl + i32.add local.set $3 loop $while-continue|0 local.get $2 @@ -4195,330 +4505,6 @@ unreachable end ) - (func $start:infer-array - (local $0 i32) - (local $1 i32) - (local $2 f32) - (local $3 i32) - (local $4 i32) - (local $5 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 - 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 0 - i32.store offset=16 - i32.const 176 - call $~lib/rt/itcms/initLazy - global.set $~lib/rt/itcms/pinSpace - i32.const 208 - call $~lib/rt/itcms/initLazy - global.set $~lib/rt/itcms/toSpace - i32.const 352 - call $~lib/rt/itcms/initLazy - global.set $~lib/rt/itcms/fromSpace - global.get $~lib/memory/__stack_pointer - i32.const 3 - i32.const 2 - i32.const 3 - i32.const 32 - call $~lib/rt/__newArray - local.tee $1 - i32.store - i32.const 1 - drop - i32.const 1 - drop - global.get $~lib/memory/__stack_pointer - i32.const 3 - i32.const 3 - i32.const 4 - i32.const 512 - call $~lib/rt/__newArray - local.tee $0 - i32.store offset=4 - i32.const 1 - drop - global.get $~lib/memory/__stack_pointer - i32.const 2 - i32.const 2 - i32.const 5 - i32.const 560 - call $~lib/rt/__newArray - local.tee $1 - i32.store - i32.const 1 - drop - i32.const 0 - i32.eqz - drop - local.get $1 - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=8 - local.get $5 - i32.const 1 - call $~lib/array/Array#__get - i32.const -1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 592 - i32.const 14 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 3 - i32.const 3 - i32.const 4 - i32.const 640 - call $~lib/rt/__newArray - local.tee $0 - i32.store offset=4 - i32.const 1 - drop - global.get $~lib/memory/__stack_pointer - i32.const 3 - i32.const 2 - i32.const 6 - i32.const 688 - call $~lib/rt/__newArray - local.tee $1 - i32.store - i32.const 1 - drop - local.get $1 - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=8 - local.get $5 - i32.const 1 - call $~lib/array/Array#__get - local.set $2 - global.get $~lib/memory/__stack_pointer - i32.const 0 - call $infer-array/Ref#constructor - local.tee $1 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - call $infer-array/Ref#constructor - local.tee $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 2 - i32.const 2 - i32.const 8 - 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 - local.tee $4 - i32.store offset=16 - local.get $3 - i32.const 0 - local.get $1 - call $~lib/array/Array#__uset - local.get $3 - i32.const 1 - local.get $0 - call $~lib/array/Array#__uset - local.get $3 - local.tee $4 - i32.store offset=16 - i32.const 1 - drop - global.get $~lib/memory/__stack_pointer - i32.const 0 - call $infer-array/Ref#constructor - local.tee $4 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - i32.const 0 - call $infer-array/Ref#constructor - local.tee $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 2 - i32.const 2 - i32.const 8 - i32.const 0 - call $~lib/rt/__newArray - local.tee $1 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.load offset=4 - local.tee $3 - i32.store offset=12 - local.get $1 - i32.const 0 - local.get $4 - call $~lib/array/Array#__uset - local.get $1 - i32.const 1 - local.get $0 - call $~lib/array/Array#__uset - local.get $1 - local.tee $3 - i32.store offset=12 - i32.const 1 - drop - global.get $~lib/memory/__stack_pointer - i32.const 0 - call $infer-array/Ref#constructor - local.tee $3 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 2 - i32.const 2 - i32.const 8 - i32.const 0 - call $~lib/rt/__newArray - local.tee $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.load offset=4 - local.tee $4 - i32.store offset=16 - local.get $0 - i32.const 0 - local.get $3 - call $~lib/array/Array#__uset - local.get $0 - i32.const 1 - i32.const 0 - call $~lib/array/Array#__uset - local.get $0 - local.tee $4 - i32.store offset=16 - i32.const 1 - drop - global.get $~lib/memory/__stack_pointer - i32.const 2 - i32.const 2 - i32.const 9 - i32.const 752 - call $~lib/rt/__newArray - local.tee $3 - i32.store offset=12 - i32.const 1 - drop - global.get $~lib/memory/__stack_pointer - i32.const 1 - i32.const 2 - i32.const 10 - i32.const 784 - call $~lib/rt/__newArray - local.tee $4 - i32.store offset=16 - i32.const 1 - drop - i32.const 0 - i32.eqz - drop - global.get $~lib/memory/__stack_pointer - i32.const 2 - i32.const 2 - i32.const 10 - i32.const 816 - call $~lib/rt/__newArray - local.tee $0 - i32.store offset=4 - i32.const 1 - drop - i32.const 0 - i32.eqz - drop - global.get $~lib/memory/__stack_pointer - i32.const 2 - i32.const 2 - i32.const 3 - i32.const 848 - call $~lib/rt/__newArray - local.tee $4 - i32.store offset=16 - i32.const 1 - drop - i32.const 0 - i32.eqz - drop - global.get $~lib/memory/__stack_pointer - i32.const 2 - i32.const 2 - i32.const 3 - i32.const 880 - call $~lib/rt/__newArray - local.tee $3 - i32.store offset=12 - i32.const 1 - drop - i32.const 0 - i32.eqz - drop - global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 2 - i32.const 2 - i32.const 11 - 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 - local.tee $4 - i32.store offset=16 - local.get $3 - i32.const 0 - i32.const 1 - i32.const 2 - i32.const 3 - i32.const 912 - call $~lib/rt/__newArray - call $~lib/array/Array<~lib/array/Array>#__uset - local.get $3 - i32.const 1 - i32.const 1 - i32.const 2 - i32.const 3 - i32.const 944 - call $~lib/rt/__newArray - call $~lib/array/Array<~lib/array/Array>#__uset - local.get $3 - local.tee $4 - i32.store offset=16 - i32.const 1 - drop - i32.const 0 - i32.eqz - drop - global.get $~lib/memory/__stack_pointer - i32.const 20 - i32.add - 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) diff --git a/tests/compiler/infer-generic.optimized.wat b/tests/compiler/infer-generic.optimized.wat index 5a2d247893..e84415fad3 100644 --- a/tests/compiler/infer-generic.optimized.wat +++ b/tests/compiler/infer-generic.optimized.wat @@ -39,7 +39,6 @@ (local $1 i32) (local $2 i32) (local $3 i32) - (local $4 f32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -54,14 +53,6 @@ global.get $~lib/memory/__stack_pointer i32.const 1200 i32.store offset=4 - 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 1164 i32.load local.set $2 @@ -77,6 +68,7 @@ select i32.lt_s if + local.get $1 i32.const 1156 i32.load local.get $0 @@ -84,12 +76,6 @@ i32.shl i32.add f32.load - local.set $4 - global.get $~lib/memory/__stack_pointer - i32.const 1152 - i32.store - local.get $1 - local.get $4 local.get $0 i32.const 1152 i32.const 1200 @@ -104,10 +90,6 @@ end 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 @@ -136,21 +118,6 @@ i32.store 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 - 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 diff --git a/tests/compiler/infer-generic.untouched.wat b/tests/compiler/infer-generic.untouched.wat index 392df89865..3629c037c4 100644 --- a/tests/compiler/infer-generic.untouched.wat +++ b/tests/compiler/infer-generic.untouched.wat @@ -40,53 +40,12 @@ i32.const 0 end ) - (func $infer-generic/inferPlain (param $0 f32) (result f32) - local.get $0 - ) - (func $infer-generic/test1 (param $0 f32) (result f32) - local.get $0 - call $infer-generic/inferPlain - ) - (func $infer-generic/inferEncapsulatedClass (param $0 i32) (result i32) - local.get $0 - ) - (func $infer-generic/inferEncapsulatedFunction (param $0 i32) (result i32) - local.get $0 - ) - (func $infer-generic/inferEncapsulatedFunctionMixed (param $0 i32) (result i32) - local.get $0 - ) - (func $~start - call $start:infer-generic - ) - (func $~stack_check - global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__data_end - i32.lt_s - if - i32.const 16592 - i32.const 16640 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - ) (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) (local $6 i32) (local $7 i32) - (local $8 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 $2 local.set $3 i32.const 0 @@ -119,11 +78,6 @@ f32.load local.get $4 local.get $0 - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store - local.get $8 i32.const 4 global.set $~argumentsLength local.get $1 @@ -138,12 +92,50 @@ end end local.get $3 - local.set $8 + ) + (func $infer-generic/inferPlain (param $0 f32) (result f32) + local.get $0 + ) + (func $infer-generic/test1 (param $0 f32) (result f32) + local.get $0 + call $infer-generic/inferPlain + ) + (func $infer-generic/inferEncapsulatedClass (param $0 i32) (result i32) + local.get $0 + ) + (func $infer-generic/test2 (param $0 i32) (result i32) + local.get $0 + call $infer-generic/inferEncapsulatedClass + ) + (func $infer-generic/inferEncapsulatedFunction (param $0 i32) (result i32) + local.get $0 + ) + (func $infer-generic/test3 (param $0 i32) (result i32) + local.get $0 + call $infer-generic/inferEncapsulatedFunction + ) + (func $infer-generic/inferEncapsulatedFunctionMixed (param $0 i32) (result i32) + local.get $0 + ) + (func $infer-generic/test4 (param $0 i32) (result i32) + local.get $0 + call $infer-generic/inferEncapsulatedFunctionMixed + ) + (func $~start + call $start:infer-generic + ) + (func $~stack_check global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $8 + global.get $~lib/memory/__data_end + i32.lt_s + if + i32.const 16592 + i32.const 16640 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end ) (func $start:infer-generic (local $0 i32) @@ -189,78 +181,6 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $infer-generic/test2 (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 - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - local.get $0 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $1 - call $infer-generic/inferEncapsulatedClass - local.set $1 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $1 - ) - (func $infer-generic/test3 (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 - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - local.get $0 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $1 - call $infer-generic/inferEncapsulatedFunction - local.set $1 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $1 - ) - (func $infer-generic/test4 (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 - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - local.get $0 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $1 - call $infer-generic/inferEncapsulatedFunctionMixed - local.set $1 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $1 - ) (func $export:infer-generic/test2 (param $0 i32) (result i32) (local $1 i32) global.get $~lib/memory/__stack_pointer diff --git a/tests/compiler/inlining.optimized.wat b/tests/compiler/inlining.optimized.wat index defb78529a..2573498310 100644 --- a/tests/compiler/inlining.optimized.wat +++ b/tests/compiler/inlining.optimized.wat @@ -1762,9 +1762,6 @@ i32.const 0 i32.store offset=12 global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 local.get $0 i32.eqz if @@ -1887,13 +1884,13 @@ ) (func $~start 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 1104 i32.load @@ -1912,10 +1909,7 @@ i32.const 123 i32.store global.get $~lib/memory/__stack_pointer - i32.const 123 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer i32.const 1248 diff --git a/tests/compiler/inlining.untouched.wat b/tests/compiler/inlining.untouched.wat index a3a195623e..dcc9c3078a 100644 --- a/tests/compiler/inlining.untouched.wat +++ b/tests/compiler/inlining.untouched.wat @@ -62,13 +62,13 @@ (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 call $~stack_check global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store + i32.const 0 + i32.store f32.const -1 local.set $0 f64.const -2 @@ -220,10 +220,8 @@ i32.const 123 local.tee $7 i32.store - global.get $~lib/memory/__stack_pointer local.get $7 - local.tee $4 - i32.store offset=4 + local.set $4 i32.const 43 local.set $5 i32.const 3 @@ -241,7 +239,7 @@ unreachable end global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer ) @@ -2617,10 +2615,8 @@ i32.const 0 call $inlining/Bar#set:e global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer local.get $1 - local.tee $3 - i32.store offset=4 + local.set $3 i32.const 2 local.set $2 local.get $3 diff --git a/tests/compiler/instanceof-class.optimized.wat b/tests/compiler/instanceof-class.optimized.wat index cb8b71a141..8188cd1197 100644 --- a/tests/compiler/instanceof-class.optimized.wat +++ b/tests/compiler/instanceof-class.optimized.wat @@ -1441,22 +1441,19 @@ call $~lib/rt/itcms/initLazy global.set $~lib/rt/itcms/fromSpace 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 global.get $~lib/memory/__stack_pointer i32.const 3 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 global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -1481,28 +1478,25 @@ 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 $0 global.set $instanceof-class/a 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 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 global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -1527,7 +1521,7 @@ 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 $0 diff --git a/tests/compiler/instanceof-class.untouched.wat b/tests/compiler/instanceof-class.untouched.wat index df0ee33a97..acb261b9ff 100644 --- a/tests/compiler/instanceof-class.untouched.wat +++ b/tests/compiler/instanceof-class.untouched.wat @@ -2542,83 +2542,68 @@ unreachable end ) - (func $instanceof-class/Child#constructor (param $0 i32) (result i32) + (func $instanceof-class/Parent#constructor (param $0 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 $0 i32.eqz if global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 3 + i32.const 4 call $~lib/rt/itcms/__new local.tee $0 i32.store end - global.get $~lib/memory/__stack_pointer local.get $0 local.set $1 global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $instanceof-class/Parent#constructor - local.tee $0 - i32.store - local.get $0 - 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 ) - (func $instanceof-class/Child#constructor (param $0 i32) (result i32) + (func $instanceof-class/Child#constructor (param $0 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 $0 i32.eqz if global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 6 + i32.const 3 call $~lib/rt/itcms/__new local.tee $0 i32.store end global.get $~lib/memory/__stack_pointer local.get $0 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $instanceof-class/Parent#constructor + call $instanceof-class/Parent#constructor local.tee $0 i32.store local.get $0 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 ) - (func $instanceof-class/Parent#constructor (param $0 i32) (result i32) + (func $instanceof-class/Parent#constructor (param $0 i32) (result i32) (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 4 @@ -2633,7 +2618,7 @@ if global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 4 + i32.const 5 call $~lib/rt/itcms/__new local.tee $0 i32.store @@ -2646,7 +2631,7 @@ global.set $~lib/memory/__stack_pointer local.get $1 ) - (func $instanceof-class/Parent#constructor (param $0 i32) (result i32) + (func $instanceof-class/Child#constructor (param $0 i32) (result i32) (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 4 @@ -2661,11 +2646,16 @@ if global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 5 + i32.const 6 call $~lib/rt/itcms/__new local.tee $0 i32.store end + global.get $~lib/memory/__stack_pointer + local.get $0 + call $instanceof-class/Parent#constructor + local.tee $0 + i32.store local.get $0 local.set $1 global.get $~lib/memory/__stack_pointer diff --git a/tests/compiler/managed-cast.optimized.wat b/tests/compiler/managed-cast.optimized.wat index 86f7526094..3d4ff74c13 100644 --- a/tests/compiler/managed-cast.optimized.wat +++ b/tests/compiler/managed-cast.optimized.wat @@ -1,8 +1,8 @@ (module (type $none_=>_none (func)) (type $i32_=>_i32 (func (param i32) (result i32))) - (type $i32_=>_none (func (param i32))) (type $i32_i32_=>_none (func (param i32 i32))) + (type $i32_=>_none (func (param i32))) (type $i32_i32_i32_=>_none (func (param i32 i32 i32))) (type $none_=>_i32 (func (result i32))) (type $i32_i32_i32_i32_=>_none (func (param i32 i32 i32 i32))) @@ -1496,78 +1496,6 @@ unreachable end ) - (func $managed-cast/Cat#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 - call $~stack_check - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 3 - 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 - 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 $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 - 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 - ) - (func $managed-cast/testDowncastToNullable (param $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 - 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:managed-cast (local $0 i32) (local $1 i32) @@ -1593,37 +1521,19 @@ 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 - call $~stack_check - 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 call $managed-cast/Cat#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.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 - local.get $0 - i32.store offset=4 + i32.const 0 + i32.store local.get $0 i32.eqz if @@ -1638,7 +1548,7 @@ 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 call $managed-cast/Cat#constructor @@ -1646,31 +1556,24 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $0 - call $managed-cast/testDowncastToNullable call $managed-cast/Cat#constructor local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $0 - call $managed-cast/testDowncastToNullable call $managed-cast/Cat#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.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 - local.get $0 - i32.store offset=4 + i32.const 0 + i32.store local.get $0 call $~lib/rt/__instanceof i32.eqz @@ -1686,7 +1589,7 @@ 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 call $managed-cast/Cat#constructor @@ -1704,9 +1607,6 @@ 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.eqz if i32.const 1456 @@ -1742,20 +1642,14 @@ 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 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 - 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 call $~lib/rt/__instanceof i32.eqz @@ -1768,15 +1662,9 @@ unreachable end local.get $0 - i32.store offset=4 - local.get $0 - if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - end + i32.store global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer call $managed-cast/Cat#constructor @@ -1785,20 +1673,14 @@ 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 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 - 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 call $~lib/rt/__instanceof i32.eqz @@ -1811,15 +1693,9 @@ unreachable end local.get $0 - i32.store offset=4 - local.get $0 - if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - end + i32.store global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer i32.const 18060 @@ -1862,4 +1738,50 @@ i32.add global.set $~lib/memory/__stack_pointer ) + (func $managed-cast/Cat#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 + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + 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 $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 + i32.const 4 + i32.add + global.set $~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 + ) ) diff --git a/tests/compiler/managed-cast.untouched.wat b/tests/compiler/managed-cast.untouched.wat index 96ba8bf923..fc743adf20 100644 --- a/tests/compiler/managed-cast.untouched.wat +++ b/tests/compiler/managed-cast.untouched.wat @@ -2357,6 +2357,30 @@ (func $managed-cast/Animal#tame (param $0 i32) nop ) + (func $managed-cast/testDowncast (param $0 i32) + local.get $0 + call $managed-cast/Animal#tame + ) + (func $managed-cast/testDowncastToNullable (param $0 i32) + (local $1 i32) + local.get $0 + local.set $1 + local.get $1 + if + local.get $1 + call $managed-cast/Animal#tame + end + ) + (func $managed-cast/testDowncastFromToNullable (param $0 i32) + (local $1 i32) + local.get $0 + local.set $1 + local.get $1 + if + local.get $1 + call $managed-cast/Animal#tame + end + ) (func $~lib/rt/__instanceof (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) @@ -2400,6 +2424,82 @@ (func $managed-cast/Cat#meow (param $0 i32) nop ) + (func $managed-cast/testUpcastToNullable (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 + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + local.tee $1 + i32.const 3 + call $~lib/rt/__instanceof + if (result i32) + local.get $1 + else + i32.const 560 + i32.const 496 + i32.const 41 + i32.const 30 + call $~lib/builtins/abort + unreachable + end + local.tee $2 + i32.store + local.get $2 + if + local.get $2 + call $managed-cast/Cat#meow + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $managed-cast/testUpcastFromToNullable (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 + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + local.tee $1 + i32.const 3 + call $~lib/rt/__instanceof + if (result i32) + local.get $1 + else + i32.const 560 + i32.const 496 + i32.const 47 + i32.const 30 + call $~lib/builtins/abort + unreachable + end + local.tee $2 + i32.store + local.get $2 + if + local.get $2 + call $managed-cast/Cat#meow + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) (func $~lib/rt/itcms/__collect (local $0 i32) i32.const 0 @@ -2519,46 +2619,9 @@ unreachable end ) - (func $managed-cast/Cat#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 - call $~stack_check - 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 0 - i32.const 3 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - end - global.get $~lib/memory/__stack_pointer - local.get $0 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $managed-cast/Animal#constructor - local.tee $0 - i32.store - local.get $0 - local.set $1 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $1 - ) - (func $managed-cast/testDowncast (param $0 i32) + (func $managed-cast/testDowncastFromNullable (param $0 i32) (local $1 i32) + (local $2 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -2568,33 +2631,7 @@ i32.const 0 i32.store local.get $0 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $1 - call $managed-cast/Animal#tame - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $managed-cast/testDowncastFromNullable (param $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 - call $~stack_check - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 local.tee $1 - i32.store offset=4 - local.get $1 if (result i32) local.get $1 else @@ -2612,67 +2649,7 @@ local.get $2 call $managed-cast/Animal#tame global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $managed-cast/testDowncastToNullable (param $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 - call $~stack_check - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - local.tee $1 - i32.store - local.get $1 - if - local.get $1 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - call $managed-cast/Animal#tame - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $managed-cast/testDowncastFromToNullable (param $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 - call $~stack_check - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - local.tee $1 - i32.store - local.get $1 - if - local.get $1 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - call $managed-cast/Animal#tame - end - global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer ) @@ -2680,18 +2657,15 @@ (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 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 local.get $0 local.tee $1 - i32.store offset=4 - local.get $1 i32.const 3 call $~lib/rt/__instanceof if (result i32) @@ -2711,7 +2685,7 @@ local.get $2 call $managed-cast/Cat#meow global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer ) @@ -2727,11 +2701,8 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer local.get $0 local.tee $1 - i32.store offset=4 - local.get $1 if (result i32) local.get $1 else @@ -2768,106 +2739,6 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $managed-cast/testUpcastToNullable (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 - 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 - global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - local.get $0 - local.tee $1 - i32.store - local.get $1 - i32.const 3 - call $~lib/rt/__instanceof - if (result i32) - local.get $1 - else - i32.const 560 - i32.const 496 - i32.const 41 - i32.const 30 - call $~lib/builtins/abort - unreachable - end - local.tee $2 - i32.store offset=4 - local.get $2 - if - local.get $2 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=8 - local.get $3 - call $managed-cast/Cat#meow - end - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $managed-cast/testUpcastFromToNullable (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 - 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 - global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - local.get $0 - local.tee $1 - i32.store - local.get $1 - i32.const 3 - call $~lib/rt/__instanceof - if (result i32) - local.get $1 - else - i32.const 560 - i32.const 496 - i32.const 47 - i32.const 30 - call $~lib/builtins/abort - unreachable - end - local.tee $2 - i32.store offset=4 - local.get $2 - if - local.get $2 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=8 - local.get $3 - call $managed-cast/Cat#meow - end - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - ) (func $start:managed-cast (local $0 i32) global.get $~lib/memory/__stack_pointer @@ -2987,4 +2858,37 @@ global.set $~lib/memory/__stack_pointer local.get $1 ) + (func $managed-cast/Cat#constructor (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 + call $~stack_check + 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 3 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + global.get $~lib/memory/__stack_pointer + local.get $0 + call $managed-cast/Animal#constructor + local.tee $0 + i32.store + local.get $0 + 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/new.optimized.wat b/tests/compiler/new.optimized.wat index e4316d8771..ac05b7c5a4 100644 --- a/tests/compiler/new.optimized.wat +++ b/tests/compiler/new.optimized.wat @@ -1571,35 +1571,6 @@ unreachable end ) - (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 - call $~stack_check - 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 $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 $new/Ref#constructor (result i32) (local $0 i32) global.get $~lib/memory/__stack_pointer @@ -1666,4 +1637,30 @@ 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 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 + i32.const 6 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + 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 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + ) ) diff --git a/tests/compiler/new.untouched.wat b/tests/compiler/new.untouched.wat index 2df4b1024e..aa352811e2 100644 --- a/tests/compiler/new.untouched.wat +++ b/tests/compiler/new.untouched.wat @@ -2478,44 +2478,6 @@ unreachable end ) - (func $new/GenExt#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 - call $~stack_check - 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 0 - i32.const 6 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - end - global.get $~lib/memory/__stack_pointer - local.get $0 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $new/Gen#constructor - local.tee $0 - i32.store - local.get $0 - 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:new (local $0 i32) global.get $~lib/memory/__stack_pointer @@ -2678,4 +2640,37 @@ global.set $~lib/memory/__stack_pointer local.get $1 ) + (func $new/GenExt#constructor (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 + call $~stack_check + 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 6 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + global.get $~lib/memory/__stack_pointer + local.get $0 + call $new/Gen#constructor + local.tee $0 + i32.store + local.get $0 + 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/number.optimized.wat b/tests/compiler/number.optimized.wat index d97d95bea1..8519949331 100644 --- a/tests/compiler/number.optimized.wat +++ b/tests/compiler/number.optimized.wat @@ -1892,6 +1892,122 @@ end 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.get $0 + local.get $1 + i32.eq + if + i32.const 1 + return + end + local.get $1 + i32.eqz + i32.const 1 + local.get $0 + select + if + i32.const 0 + return + end + 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.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u + i32.ne + if + i32.const 0 + return + end + block $__inlined_func$~lib/util/string/compareImpl (result i32) + local.get $0 + local.tee $3 + i32.const 7 + i32.and + local.get $1 + i32.const 7 + i32.and + i32.or + i32.eqz + i32.const 0 + local.get $2 + local.tee $0 + i32.const 4 + i32.ge_u + select + if + loop $do-continue|0 + local.get $3 + i64.load + local.get $1 + i64.load + i64.eq + if + local.get $3 + i32.const 8 + i32.add + local.set $3 + 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-continue|0 + end + end + end + loop $while-continue|1 + local.get $0 + local.tee $2 + i32.const 1 + i32.sub + local.set $0 + local.get $2 + if + local.get $3 + i32.load16_u + local.tee $2 + local.get $1 + i32.load16_u + local.tee $4 + i32.ne + if + local.get $2 + local.get $4 + i32.sub + br $__inlined_func$~lib/util/string/compareImpl + end + local.get $3 + i32.const 2 + i32.add + local.set $3 + local.get $1 + i32.const 2 + i32.add + local.set $1 + br $while-continue|1 + end + end + i32.const 0 + end + i32.eqz + ) (func $~lib/util/number/genDigits (param $0 i64) (param $1 i32) (param $2 i64) (param $3 i32) (param $4 i64) (result i32) (local $5 i32) (local $6 i64) @@ -2891,152 +3007,6 @@ unreachable end ) - (func $~lib/string/String.__eq (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 - call $~stack_check - 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 - i32.const 1 - local.get $0 - select - 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 - block $__inlined_func$~lib/util/string/compareImpl (result i32) - local.get $0 - local.tee $3 - i32.const 7 - i32.and - local.get $1 - i32.const 7 - i32.and - i32.or - i32.eqz - i32.const 0 - local.get $2 - i32.const 4 - i32.ge_u - select - if - loop $do-continue|0 - local.get $3 - i64.load - local.get $1 - i64.load - i64.eq - if - local.get $3 - i32.const 8 - i32.add - local.set $3 - 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-continue|0 - end - end - end - loop $while-continue|1 - local.get $2 - local.tee $0 - i32.const 1 - i32.sub - local.set $2 - local.get $0 - if - local.get $3 - i32.load16_u - local.tee $4 - local.get $1 - i32.load16_u - local.tee $0 - i32.ne - if - local.get $4 - local.get $0 - i32.sub - br $__inlined_func$~lib/util/string/compareImpl - end - local.get $3 - i32.const 2 - i32.add - local.set $3 - local.get $1 - i32.const 2 - i32.add - local.set $1 - br $while-continue|1 - end - end - i32.const 0 - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - 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:number (local $0 i32) (local $1 i32) diff --git a/tests/compiler/number.untouched.wat b/tests/compiler/number.untouched.wat index 516d081cf9..7162e43525 100644 --- a/tests/compiler/number.untouched.wat +++ b/tests/compiler/number.untouched.wat @@ -2937,6 +2937,48 @@ end i32.const 0 ) + (func $~lib/string/String.__eq (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + local.get $0 + local.get $1 + i32.eq + if + i32.const 1 + return + end + local.get $0 + i32.const 0 + i32.eq + if (result i32) + i32.const 1 + else + local.get $1 + i32.const 0 + i32.eq + end + if + i32.const 0 + return + end + local.get $0 + call $~lib/string/String#get:length + local.set $2 + local.get $2 + local.get $1 + call $~lib/string/String#get:length + i32.ne + if + i32.const 0 + return + end + local.get $0 + i32.const 0 + local.get $1 + i32.const 0 + local.get $2 + call $~lib/util/string/compareImpl + i32.eqz + ) (func $~lib/util/number/genDigits (param $0 i32) (param $1 i64) (param $2 i32) (param $3 i64) (param $4 i32) (param $5 i64) (param $6 i32) (result i32) (local $7 i32) (local $8 i64) @@ -5575,101 +5617,6 @@ unreachable end ) - (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 - call $~stack_check - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - local.get $0 - local.get $1 - 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 $0 - i32.const 0 - i32.eq - if (result i32) - i32.const 1 - else - local.get $1 - 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 $0 - 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 $2 - local.get $2 - local.get $1 - 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 $0 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store - local.get $3 - i32.const 0 - local.get $1 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - i32.const 0 - local.get $2 - 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 - ) (func $start:number (local $0 i32) (local $1 f32) diff --git a/tests/compiler/object-literal.optimized.wat b/tests/compiler/object-literal.optimized.wat index 1548e94848..7c7ce3d239 100644 --- a/tests/compiler/object-literal.optimized.wat +++ b/tests/compiler/object-literal.optimized.wat @@ -1811,6 +1811,122 @@ call $~lib/memory/memory.fill local.get $1 ) + (func $~lib/string/String.__eq (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + local.get $0 + local.get $1 + i32.eq + if + i32.const 1 + return + end + local.get $1 + i32.eqz + i32.const 1 + local.get $0 + select + if + i32.const 0 + return + end + 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.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u + i32.ne + if + i32.const 0 + return + end + block $__inlined_func$~lib/util/string/compareImpl (result i32) + local.get $0 + local.tee $3 + i32.const 7 + i32.and + local.get $1 + i32.const 7 + i32.and + i32.or + i32.eqz + i32.const 0 + local.get $2 + local.tee $0 + i32.const 4 + i32.ge_u + select + if + loop $do-continue|0 + local.get $3 + i64.load + local.get $1 + i64.load + i64.eq + if + local.get $3 + i32.const 8 + i32.add + local.set $3 + 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-continue|0 + end + end + end + loop $while-continue|1 + local.get $0 + local.tee $2 + i32.const 1 + i32.sub + local.set $0 + local.get $2 + if + local.get $3 + i32.load16_u + local.tee $2 + local.get $1 + i32.load16_u + local.tee $4 + i32.ne + if + local.get $2 + local.get $4 + i32.sub + br $__inlined_func$~lib/util/string/compareImpl + end + local.get $3 + i32.const 2 + i32.add + local.set $3 + local.get $1 + i32.const 2 + i32.add + local.set $1 + br $while-continue|1 + end + end + i32.const 0 + end + i32.eqz + ) (func $~lib/memory/memory.copy (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) @@ -2298,247 +2414,6 @@ unreachable end ) - (func $~lib/string/String.__eq (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 - call $~stack_check - 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 - i32.const 1 - local.get $0 - select - 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 - block $__inlined_func$~lib/util/string/compareImpl (result i32) - local.get $0 - local.tee $3 - i32.const 7 - i32.and - local.get $1 - i32.const 7 - i32.and - i32.or - i32.eqz - i32.const 0 - local.get $2 - i32.const 4 - i32.ge_u - select - if - loop $do-continue|0 - local.get $3 - i64.load - local.get $1 - i64.load - i64.eq - if - local.get $3 - i32.const 8 - i32.add - local.set $3 - 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-continue|0 - end - end - end - loop $while-continue|1 - local.get $2 - local.tee $0 - i32.const 1 - i32.sub - local.set $2 - local.get $0 - if - local.get $3 - i32.load16_u - local.tee $4 - local.get $1 - i32.load16_u - local.tee $0 - i32.ne - if - local.get $4 - local.get $0 - i32.sub - br $__inlined_func$~lib/util/string/compareImpl - end - local.get $3 - i32.const 2 - i32.add - local.set $3 - local.get $1 - i32.const 2 - i32.add - local.set $1 - br $while-continue|1 - end - end - i32.const 0 - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - 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 (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 - call $~stack_check - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 1056 - i32.store - i32.const 0 - i32.const 1052 - i32.load - i32.const 1 - i32.shr_u - local.tee $0 - local.get $0 - i32.const 0 - i32.gt_s - select - local.tee $1 - i32.const 5 - local.get $0 - local.get $0 - i32.const 5 - i32.gt_s - select - local.tee $2 - local.get $1 - local.get $2 - i32.gt_s - select - i32.const 1 - i32.shl - local.tee $3 - local.get $1 - local.get $2 - local.get $1 - local.get $2 - i32.lt_s - select - i32.const 1 - i32.shl - local.tee $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 1568 - return - end - i32.const 0 - local.get $3 - local.get $0 - i32.const 1 - i32.shl - i32.eq - local.get $1 - select - if - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1056 - return - end - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store offset=4 - local.get $0 - local.get $1 - i32.const 1056 - i32.add - local.get $2 - call $~lib/memory/memory.copy - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - ) (func $object-literal/testOmittedFoo (param $0 i32) (local $1 i32) global.get $~lib/memory/__stack_pointer @@ -3201,4 +3076,96 @@ i32.add global.set $~lib/memory/__stack_pointer ) + (func $~lib/string/String#substring (result i32) + (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 + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + i32.const 0 + i32.const 1052 + i32.load + i32.const 1 + i32.shr_u + local.tee $0 + local.get $0 + i32.const 0 + i32.gt_s + select + local.tee $1 + i32.const 5 + local.get $0 + local.get $0 + i32.const 5 + i32.gt_s + select + local.tee $2 + local.get $1 + local.get $2 + i32.gt_s + select + i32.const 1 + i32.shl + local.tee $3 + local.get $1 + local.get $2 + local.get $1 + local.get $2 + i32.lt_s + select + i32.const 1 + i32.shl + local.tee $1 + i32.sub + 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 1568 + return + end + i32.const 0 + local.get $3 + local.get $0 + i32.const 1 + i32.shl + i32.eq + local.get $1 + select + if + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 1056 + return + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + local.get $0 + local.get $1 + i32.const 1056 + i32.add + local.get $2 + call $~lib/memory/memory.copy + 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/object-literal.untouched.wat b/tests/compiler/object-literal.untouched.wat index 573edced89..bedbd2e2b0 100644 --- a/tests/compiler/object-literal.untouched.wat +++ b/tests/compiler/object-literal.untouched.wat @@ -2559,6 +2559,48 @@ end i32.const 0 ) + (func $~lib/string/String.__eq (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + local.get $0 + local.get $1 + i32.eq + if + i32.const 1 + return + end + local.get $0 + i32.const 0 + i32.eq + if (result i32) + i32.const 1 + else + local.get $1 + i32.const 0 + i32.eq + end + if + i32.const 0 + return + end + local.get $0 + call $~lib/string/String#get:length + local.set $2 + local.get $2 + local.get $1 + call $~lib/string/String#get:length + i32.ne + if + i32.const 0 + return + end + local.get $0 + i32.const 0 + local.get $1 + i32.const 0 + local.get $2 + call $~lib/util/string/compareImpl + i32.eqz + ) (func $object-literal/Unmanaged#set:bar (param $0 i32) (param $1 i32) local.get $0 local.get $1 @@ -4418,101 +4460,6 @@ unreachable end ) - (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 - call $~stack_check - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - local.get $0 - local.get $1 - 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 $0 - i32.const 0 - i32.eq - if (result i32) - i32.const 1 - else - local.get $1 - 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 $0 - 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 $2 - local.get $2 - local.get $1 - 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 $0 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store - local.get $3 - i32.const 0 - local.get $1 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - i32.const 0 - local.get $2 - 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 - ) (func $object-literal/testManaged (param $0 i32) (local $1 i32) global.get $~lib/memory/__stack_pointer @@ -4564,144 +4511,6 @@ 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) - (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 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 $0 - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store - local.get $12 - call $~lib/string/String#get:length - local.set $3 - local.get $1 - local.tee $4 - i32.const 0 - local.tee $5 - local.get $4 - local.get $5 - i32.gt_s - select - local.tee $5 - local.get $3 - local.tee $4 - local.get $5 - local.get $4 - i32.lt_s - select - local.set $6 - local.get $2 - local.tee $4 - i32.const 0 - local.tee $5 - local.get $4 - local.get $5 - i32.gt_s - select - local.tee $5 - local.get $3 - local.tee $4 - local.get $5 - local.get $4 - i32.lt_s - select - local.set $7 - local.get $6 - local.tee $4 - local.get $7 - local.tee $5 - local.get $4 - local.get $5 - i32.lt_s - select - i32.const 1 - i32.shl - local.set $8 - local.get $6 - local.tee $5 - local.get $7 - local.tee $4 - local.get $5 - local.get $4 - i32.gt_s - select - i32.const 1 - i32.shl - local.set $9 - local.get $9 - local.get $8 - i32.sub - local.set $10 - local.get $10 - i32.eqz - if - i32.const 544 - local.set $12 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $12 - return - end - local.get $8 - i32.eqz - if (result i32) - local.get $9 - local.get $3 - i32.const 1 - i32.shl - i32.eq - else - i32.const 0 - end - if - local.get $0 - local.set $12 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $12 - return - end - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $11 - i32.store offset=4 - local.get $11 - local.get $0 - local.get $8 - i32.add - local.get $10 - call $~lib/memory/memory.copy - local.get $11 - local.set $12 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $12 - ) (func $object-literal/testUnmanaged (param $0 i32) (local $1 i32) global.get $~lib/memory/__stack_pointer @@ -5230,6 +5039,139 @@ global.set $~lib/memory/__stack_pointer local.get $1 ) + (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) + (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 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 $0 + call $~lib/string/String#get:length + local.set $3 + local.get $1 + local.tee $4 + i32.const 0 + local.tee $5 + local.get $4 + local.get $5 + i32.gt_s + select + local.tee $5 + local.get $3 + local.tee $4 + local.get $5 + local.get $4 + i32.lt_s + select + local.set $6 + local.get $2 + local.tee $4 + i32.const 0 + local.tee $5 + local.get $4 + local.get $5 + i32.gt_s + select + local.tee $5 + local.get $3 + local.tee $4 + local.get $5 + local.get $4 + i32.lt_s + select + local.set $7 + local.get $6 + local.tee $4 + local.get $7 + local.tee $5 + local.get $4 + local.get $5 + i32.lt_s + select + i32.const 1 + i32.shl + local.set $8 + local.get $6 + local.tee $5 + local.get $7 + local.tee $4 + local.get $5 + local.get $4 + i32.gt_s + select + i32.const 1 + i32.shl + local.set $9 + local.get $9 + local.get $8 + i32.sub + local.set $10 + local.get $10 + i32.eqz + if + i32.const 544 + local.set $12 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $12 + return + end + local.get $8 + i32.eqz + if (result i32) + local.get $9 + local.get $3 + i32.const 1 + i32.shl + i32.eq + else + i32.const 0 + end + if + local.get $0 + local.set $12 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $12 + return + end + global.get $~lib/memory/__stack_pointer + local.get $10 + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $11 + i32.store + local.get $11 + local.get $0 + local.get $8 + i32.add + local.get $10 + call $~lib/memory/memory.copy + local.get $11 + local.set $12 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $12 + ) (func $object-literal/OmittedTypes#constructor (param $0 i32) (result i32) (local $1 i32) global.get $~lib/memory/__stack_pointer diff --git a/tests/compiler/possibly-null.optimized.wat b/tests/compiler/possibly-null.optimized.wat index 8458e2e69e..0f3019966d 100644 --- a/tests/compiler/possibly-null.optimized.wat +++ b/tests/compiler/possibly-null.optimized.wat @@ -19,11 +19,11 @@ (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 "testLogicalAnd" (func $export:possibly-null/testTrue)) + (export "testLogicalOr" (func $export:possibly-null/testTrue)) (export "testLogicalAndMulti" (func $export:possibly-null/testLogicalAndMulti)) (export "testLogicalOrMulti" (func $export:possibly-null/testLogicalAndMulti)) - (export "testAssign" (func $export:possibly-null/testAssign)) + (export "testAssign" (func $export:possibly-null/testLogicalAndMulti)) (export "testNeverNull" (func $export:possibly-null/testTrue)) (func $~stack_check global.get $~lib/memory/__stack_pointer @@ -86,29 +86,15 @@ 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 - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store loop $while-continue|0 local.get $0 if - global.get $~lib/memory/__stack_pointer local.get $1 - local.tee $0 - i32.store + 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 - global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer @@ -125,69 +111,22 @@ 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 - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store loop $while-continue|0 local.get $0 if local.get $1 - if - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $1 - local.set $0 - end + local.get $0 + local.get $1 + select + 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 - global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer ) - (func $export:possibly-null/testLogicalAnd (param $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 - local.get $0 - i32.store - 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 $0 - if - global.get $~lib/memory/__stack_pointer - local.get $0 - 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 4 - i32.add - global.set $~lib/memory/__stack_pointer - ) (func $export:possibly-null/testLogicalAndMulti (param $0 i32) (param $1 i32) global.get $~lib/memory/__stack_pointer i32.const 8 @@ -205,36 +144,4 @@ 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 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - 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 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 - local.get $1 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - ) ) diff --git a/tests/compiler/possibly-null.untouched.wat b/tests/compiler/possibly-null.untouched.wat index 07c959e64c..7a401766db 100644 --- a/tests/compiler/possibly-null.untouched.wat +++ b/tests/compiler/possibly-null.untouched.wat @@ -138,14 +138,6 @@ ) (func $possibly-null/testWhile2 (param $0 i32) (param $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 loop $while-continue|0 local.get $0 local.set $2 @@ -153,31 +145,17 @@ if i32.const 0 drop - global.get $~lib/memory/__stack_pointer local.get $1 - local.tee $0 - i32.store + local.set $0 i32.const 1 i32.eqz drop br $while-continue|0 end end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer ) (func $possibly-null/testWhile3 (param $0 i32) (param $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 loop $while-continue|0 local.get $0 local.set $2 @@ -187,24 +165,41 @@ drop local.get $1 if - global.get $~lib/memory/__stack_pointer local.get $1 - local.tee $0 - i32.store + local.set $0 i32.const 0 drop end br $while-continue|0 end end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer ) (func $possibly-null/requireNonNull (param $0 i32) (result i32) local.get $0 ) + (func $possibly-null/testLogicalAnd (param $0 i32) + local.get $0 + if (result i32) + local.get $0 + call $possibly-null/requireNonNull + else + i32.const 0 + end + drop + ) + (func $possibly-null/testLogicalOr (param $0 i32) + local.get $0 + i32.eqz + if (result i32) + i32.const 1 + else + local.get $0 + call $possibly-null/requireNonNull + i32.const 0 + i32.ne + end + drop + ) (func $possibly-null/testLogicalAndMulti (param $0 i32) (param $1 i32) local.get $0 if (result i32) @@ -250,24 +245,10 @@ end ) (func $possibly-null/testAssign (param $0 i32) (param $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 $~lib/memory/__stack_pointer local.get $1 - local.tee $0 - i32.store + local.set $0 i32.const 0 drop - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer ) (func $possibly-null/testNeverNull (param $0 i32) local.get $0 @@ -289,65 +270,6 @@ unreachable end ) - (func $possibly-null/testLogicalAnd (param $0 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 $0 - if (result i32) - local.get $0 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $1 - call $possibly-null/requireNonNull - else - i32.const 0 - end - drop - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $possibly-null/testLogicalOr (param $0 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 $0 - i32.eqz - if (result i32) - i32.const 1 - else - local.get $0 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $1 - call $possibly-null/requireNonNull - i32.const 0 - i32.ne - end - drop - 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 diff --git a/tests/compiler/resolve-access.optimized.wat b/tests/compiler/resolve-access.optimized.wat index dd9964437c..d3a2f2a3f8 100644 --- a/tests/compiler/resolve-access.optimized.wat +++ b/tests/compiler/resolve-access.optimized.wat @@ -2032,6 +2032,133 @@ unreachable end ) + (func $~lib/util/number/utoa64 (param $0 i64) (result i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + 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 1728 + return + end + local.get $0 + i64.const 4294967295 + i64.le_u + if + local.get $0 + i32.wrap_i64 + local.tee $3 + call $~lib/util/number/decimalCount32 + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $2 + i32.store + local.get $2 + local.get $3 + local.get $1 + call $~lib/util/number/utoa_dec_simple + else + global.get $~lib/memory/__stack_pointer + 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 + 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 + local.get $0 + i64.const 1000000000000 + i64.lt_u + select + local.get $0 + i64.const 10000000000000000 + i64.ge_u + i32.const 16 + i32.add + 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 + local.get $0 + i64.const 100000000000000000 + i64.lt_u + select + local.get $0 + i64.const 1000000000000000 + i64.lt_u + select + local.tee $1 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $2 + i32.store + loop $do-continue|0 + local.get $2 + local.get $1 + i32.const 1 + i32.sub + local.tee $1 + i32.const 1 + i32.shl + i32.add + local.get $0 + i64.const 10 + i64.rem_u + i32.wrap_i64 + i32.const 48 + i32.add + i32.store16 + local.get $0 + i64.const 10 + i64.div_u + local.tee $0 + i64.const 0 + i64.ne + br_if $do-continue|0 + end + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + ) (func $resolve-access/arrayAccess (result i32) (local $0 i32) (local $1 i32) @@ -2040,13 +2167,13 @@ (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 call $~stack_check global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store + i32.const 0 + i32.store global.get $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 4 @@ -2138,9 +2265,6 @@ 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.load offset=12 i32.eqz @@ -2157,32 +2281,79 @@ i64.load call $~lib/util/number/utoa64 global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer ) - (func $resolve-access/propertyAccess (result i32) + (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.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 + i32.const 8 + i32.const 5 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + local.get $0 i64.const 0 i64.store global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + ) + (func $resolve-access/fieldAccess (result i32) + (local $0 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer call $resolve-access/Container#constructor local.tee $0 i32.store local.get $0 i64.const 1 i64.store + local.get $0 + i64.load + call $~lib/util/number/utoa64 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $resolve-access/propertyAccess (result i32) + (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 + global.get $~lib/memory/__stack_pointer + call $resolve-access/Container#constructor + local.tee $0 + i32.store local.get $0 - i32.store offset=4 + i64.const 1 + i64.store local.get $0 i64.load i32.wrap_i64 @@ -2228,186 +2399,9 @@ 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 $~lib/util/number/utoa64 (param $0 i64) (result i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - 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 1728 - return - end - local.get $0 - i64.const 4294967295 - i64.le_u - if - local.get $0 - i32.wrap_i64 - local.tee $3 - call $~lib/util/number/decimalCount32 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.const 1 - i32.shl - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $2 - i32.store - local.get $2 - local.get $3 - local.get $1 - call $~lib/util/number/utoa_dec_simple - else - global.get $~lib/memory/__stack_pointer - 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 - 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 - local.get $0 - i64.const 1000000000000 - i64.lt_u - select - local.get $0 - i64.const 10000000000000000 - i64.ge_u - i32.const 16 - i32.add - 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 - local.get $0 - i64.const 100000000000000000 - i64.lt_u - select - local.get $0 - i64.const 1000000000000000 - i64.lt_u - select - local.tee $1 - i32.const 1 - i32.shl - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $2 - i32.store - loop $do-continue|0 - local.get $2 - local.get $1 - i32.const 1 - i32.sub - local.tee $1 - i32.const 1 - i32.shl - i32.add - local.get $0 - i64.const 10 - i64.rem_u - i32.wrap_i64 - i32.const 48 - i32.add - i32.store16 - local.get $0 - i64.const 10 - i64.div_u - local.tee $0 - i64.const 0 - i64.ne - br_if $do-continue|0 - end - end - global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 - ) - (func $resolve-access/Container#constructor (result i32) - (local $0 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.const 5 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - local.get $0 - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - ) - (func $resolve-access/fieldAccess (result i32) - (local $0 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - call $resolve-access/Container#constructor - local.tee $0 - i32.store - local.get $0 - i64.const 1 - i64.store local.get $0 - i64.load - call $~lib/util/number/utoa64 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer ) ) diff --git a/tests/compiler/resolve-access.untouched.wat b/tests/compiler/resolve-access.untouched.wat index 2466b7aa32..6108f227d4 100644 --- a/tests/compiler/resolve-access.untouched.wat +++ b/tests/compiler/resolve-access.untouched.wat @@ -4464,78 +4464,6 @@ unreachable end ) - (func $resolve-access/arrayAccess (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 - call $~stack_check - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 1 - i32.const 3 - i32.const 3 - i32.const 32 - call $~lib/rt/__newArray - 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/array/Array#__get - i32.const 10 - call $~lib/number/U64#toString - local.set $2 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $2 - ) - (func $resolve-access/propertyAccess (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 - call $~stack_check - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - call $resolve-access/Container#constructor - local.tee $0 - i32.store - local.get $0 - i64.const 1 - call $resolve-access/Container#set:foo - local.get $0 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $resolve-access/Container#toU32 - i32.const 10 - call $~lib/number/U32#toString - local.set $1 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $1 - ) (func $~lib/rt/__newArray (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) (local $4 i32) (local $5 i32) @@ -4766,6 +4694,38 @@ global.set $~lib/memory/__stack_pointer local.get $9 ) + (func $resolve-access/arrayAccess (result i32) + (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 + global.get $~lib/memory/__stack_pointer + i32.const 1 + i32.const 3 + i32.const 3 + i32.const 32 + call $~lib/rt/__newArray + local.tee $1 + i32.store + local.get $1 + i32.const 0 + call $~lib/array/Array#__get + i32.const 10 + call $~lib/number/U64#toString + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + ) (func $resolve-access/Container#constructor (param $0 i32) (result i32) (local $1 i32) global.get $~lib/memory/__stack_pointer @@ -4968,4 +4928,34 @@ global.set $~lib/memory/__stack_pointer local.get $7 ) + (func $resolve-access/propertyAccess (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 + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + call $resolve-access/Container#constructor + local.tee $0 + i32.store + local.get $0 + i64.const 1 + call $resolve-access/Container#set:foo + local.get $0 + call $resolve-access/Container#toU32 + i32.const 10 + call $~lib/number/U32#toString + 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/resolve-binary.optimized.wat b/tests/compiler/resolve-binary.optimized.wat index ca59b39eff..6109ceef2b 100644 --- a/tests/compiler/resolve-binary.optimized.wat +++ b/tests/compiler/resolve-binary.optimized.wat @@ -105,6 +105,122 @@ (global $~lib/memory/__stack_pointer (mut i32) (i32.const 20060)) (export "memory" (memory $0)) (start $~start) + (func $~lib/string/String.__eq (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + local.get $0 + local.get $1 + i32.eq + if + i32.const 1 + return + end + local.get $1 + i32.eqz + i32.const 1 + local.get $0 + select + if + i32.const 0 + return + end + 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.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u + i32.ne + if + i32.const 0 + return + end + block $__inlined_func$~lib/util/string/compareImpl (result i32) + local.get $0 + local.tee $3 + i32.const 7 + i32.and + local.get $1 + i32.const 7 + i32.and + i32.or + i32.eqz + i32.const 0 + local.get $2 + local.tee $0 + i32.const 4 + i32.ge_u + select + if + loop $do-continue|0 + local.get $3 + i64.load + local.get $1 + i64.load + i64.eq + if + local.get $3 + i32.const 8 + i32.add + local.set $3 + 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-continue|0 + end + end + end + loop $while-continue|1 + local.get $0 + local.tee $2 + i32.const 1 + i32.sub + local.set $0 + local.get $2 + if + local.get $3 + i32.load16_u + local.tee $2 + local.get $1 + i32.load16_u + local.tee $4 + i32.ne + if + local.get $2 + local.get $4 + i32.sub + br $__inlined_func$~lib/util/string/compareImpl + end + local.get $3 + i32.const 2 + i32.add + local.set $3 + local.get $1 + i32.const 2 + i32.add + local.set $1 + br $while-continue|1 + end + end + i32.const 0 + end + i32.eqz + ) (func $~lib/util/number/decimalCount32 (param $0 i32) (result i32) local.get $0 i32.const 10 @@ -2923,152 +3039,6 @@ unreachable end ) - (func $~lib/string/String.__eq (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 - call $~stack_check - 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 - i32.const 1 - local.get $0 - select - 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 - block $__inlined_func$~lib/util/string/compareImpl (result i32) - local.get $0 - local.tee $3 - i32.const 7 - i32.and - local.get $1 - i32.const 7 - i32.and - i32.or - i32.eqz - i32.const 0 - local.get $2 - i32.const 4 - i32.ge_u - select - if - loop $do-continue|0 - local.get $3 - i64.load - local.get $1 - i64.load - i64.eq - if - local.get $3 - i32.const 8 - i32.add - local.set $3 - 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-continue|0 - end - end - end - loop $while-continue|1 - local.get $2 - local.tee $0 - i32.const 1 - i32.sub - local.set $2 - local.get $0 - if - local.get $3 - i32.load16_u - local.tee $4 - local.get $1 - i32.load16_u - local.tee $0 - i32.ne - if - local.get $4 - local.get $0 - i32.sub - br $__inlined_func$~lib/util/string/compareImpl - end - local.get $3 - i32.const 2 - i32.add - local.set $3 - local.get $1 - i32.const 2 - i32.add - local.set $1 - br $while-continue|1 - end - end - i32.const 0 - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - 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:resolve-binary (local $0 i32) (local $1 i32) diff --git a/tests/compiler/resolve-binary.untouched.wat b/tests/compiler/resolve-binary.untouched.wat index 2d6dabba02..2f8933523a 100644 --- a/tests/compiler/resolve-binary.untouched.wat +++ b/tests/compiler/resolve-binary.untouched.wat @@ -220,6 +220,48 @@ end i32.const 0 ) + (func $~lib/string/String.__eq (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + local.get $0 + local.get $1 + i32.eq + if + i32.const 1 + return + end + local.get $0 + i32.const 0 + i32.eq + if (result i32) + i32.const 1 + else + local.get $1 + i32.const 0 + i32.eq + end + if + i32.const 0 + return + end + local.get $0 + call $~lib/string/String#get:length + local.set $2 + local.get $2 + local.get $1 + call $~lib/string/String#get:length + i32.ne + if + i32.const 0 + return + end + local.get $0 + i32.const 0 + local.get $1 + i32.const 0 + local.get $2 + call $~lib/util/string/compareImpl + i32.eqz + ) (func $~lib/util/number/decimalCount32 (param $0 i32) (result i32) local.get $0 i32.const 100000 @@ -6798,101 +6840,6 @@ unreachable end ) - (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 - call $~stack_check - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - local.get $0 - local.get $1 - 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 $0 - i32.const 0 - i32.eq - if (result i32) - i32.const 1 - else - local.get $1 - 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 $0 - 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 $2 - local.get $2 - local.get $1 - 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 $0 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store - local.get $3 - i32.const 0 - local.get $1 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - i32.const 0 - local.get $2 - 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 - ) (func $start:resolve-binary (local $0 i32) global.get $~lib/memory/__stack_pointer diff --git a/tests/compiler/resolve-elementaccess.optimized.wat b/tests/compiler/resolve-elementaccess.optimized.wat index 5cf0f66572..36d00fdb57 100644 --- a/tests/compiler/resolve-elementaccess.optimized.wat +++ b/tests/compiler/resolve-elementaccess.optimized.wat @@ -3118,6 +3118,122 @@ end local.get $2 ) + (func $~lib/string/String.__eq (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + local.get $0 + local.get $1 + i32.eq + if + i32.const 1 + return + end + local.get $1 + i32.eqz + i32.const 1 + local.get $0 + select + if + i32.const 0 + return + end + 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.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u + i32.ne + if + i32.const 0 + return + end + block $__inlined_func$~lib/util/string/compareImpl (result i32) + local.get $0 + local.tee $3 + i32.const 7 + i32.and + local.get $1 + i32.const 7 + i32.and + i32.or + i32.eqz + i32.const 0 + local.get $2 + local.tee $0 + i32.const 4 + i32.ge_u + select + if + loop $do-continue|0 + local.get $3 + i64.load + local.get $1 + i64.load + i64.eq + if + local.get $3 + i32.const 8 + i32.add + local.set $3 + 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-continue|0 + end + end + end + loop $while-continue|1 + local.get $0 + local.tee $2 + i32.const 1 + i32.sub + local.set $0 + local.get $2 + if + local.get $3 + i32.load16_u + local.tee $2 + local.get $1 + i32.load16_u + local.tee $4 + i32.ne + if + local.get $2 + local.get $4 + i32.sub + br $__inlined_func$~lib/util/string/compareImpl + end + local.get $3 + i32.const 2 + i32.add + local.set $3 + local.get $1 + i32.const 2 + i32.add + local.set $1 + br $while-continue|1 + end + end + i32.const 0 + end + i32.eqz + ) (func $~lib/typedarray/Uint8Array#__set (param $0 i32) (param $1 i32) (param $2 i32) local.get $1 local.get $0 @@ -3256,157 +3372,11 @@ unreachable end ) - (func $~lib/string/String.__eq (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 - call $~stack_check - 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 - i32.const 1 - local.get $0 - select - 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 - block $__inlined_func$~lib/util/string/compareImpl (result i32) - local.get $0 - local.tee $3 - i32.const 7 - i32.and - local.get $1 - i32.const 7 - i32.and - i32.or - i32.eqz - i32.const 0 - local.get $2 - i32.const 4 - i32.ge_u - select - if - loop $do-continue|0 - local.get $3 - i64.load - local.get $1 - i64.load - i64.eq - if - local.get $3 - i32.const 8 - i32.add - local.set $3 - 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-continue|0 - end - end - end - loop $while-continue|1 - local.get $2 - local.tee $0 - i32.const 1 - i32.sub - local.set $2 - local.get $0 - if - local.get $3 - i32.load16_u - local.tee $4 - local.get $1 - i32.load16_u - local.tee $0 - i32.ne - if - local.get $4 - local.get $0 - i32.sub - br $__inlined_func$~lib/util/string/compareImpl - end - local.get $3 - i32.const 2 - i32.add - local.set $3 - local.get $1 - i32.const 2 - i32.add - local.set $1 - br $while-continue|1 - end - end - i32.const 0 - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - 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:resolve-elementaccess (local $0 i32) (local $1 i32) global.get $~lib/memory/__stack_pointer - i32.const 20 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check @@ -3416,9 +3386,6 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=16 i32.const 1280 call $~lib/rt/itcms/initLazy global.set $~lib/rt/itcms/pinSpace @@ -3429,13 +3396,13 @@ call $~lib/rt/itcms/initLazy global.set $~lib/rt/itcms/fromSpace 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 global.get $~lib/memory/__stack_pointer i32.const 12 i32.const 3 @@ -3444,15 +3411,12 @@ 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.const 2 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 @@ -3532,12 +3496,9 @@ local.tee $0 i32.store offset=12 global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer global.get $resolve-elementaccess/arr local.tee $1 - i32.store offset=16 + i32.store offset=8 local.get $0 i32.const 0 local.get $1 @@ -3546,9 +3507,6 @@ f32.const 10 f32.add call $~lib/typedarray/Float32Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 local.get $0 i32.const 0 call $~lib/typedarray/Float32Array#__get @@ -3606,13 +3564,13 @@ unreachable end 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 global.get $~lib/memory/__stack_pointer i32.const 12 i32.const 4 @@ -3620,17 +3578,14 @@ local.tee $0 i32.store 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 - 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 $0 i32.eqz if @@ -3643,21 +3598,18 @@ end global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - 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 4 i32.add global.set $~lib/memory/__stack_pointer 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 $0 @@ -3737,12 +3689,9 @@ local.tee $0 i32.store offset=12 global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer global.get $resolve-elementaccess/buf local.tee $1 - i32.store offset=16 + i32.store offset=8 local.get $0 i32.const 0 local.get $1 @@ -3751,9 +3700,6 @@ i32.const 10 i32.add call $~lib/typedarray/Uint8Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 local.get $0 i32.const 0 call $~lib/typedarray/Uint8Array#__get @@ -3811,7 +3757,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-elementaccess.untouched.wat b/tests/compiler/resolve-elementaccess.untouched.wat index 04d432b432..abe8e728d9 100644 --- a/tests/compiler/resolve-elementaccess.untouched.wat +++ b/tests/compiler/resolve-elementaccess.untouched.wat @@ -5346,6 +5346,48 @@ end i32.const 0 ) + (func $~lib/string/String.__eq (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + local.get $0 + local.get $1 + i32.eq + if + i32.const 1 + return + end + local.get $0 + i32.const 0 + i32.eq + if (result i32) + i32.const 1 + else + local.get $1 + i32.const 0 + i32.eq + end + if + i32.const 0 + return + end + local.get $0 + call $~lib/string/String#get:length + local.set $2 + local.get $2 + local.get $1 + call $~lib/string/String#get:length + i32.ne + if + i32.const 0 + return + end + local.get $0 + i32.const 0 + local.get $1 + i32.const 0 + local.get $2 + call $~lib/util/string/compareImpl + i32.eqz + ) (func $~lib/typedarray/Uint8Array#__set (param $0 i32) (param $1 i32) (param $2 i32) local.get $1 local.get $0 @@ -5728,226 +5770,12 @@ unreachable end ) - (func $~lib/typedarray/Float32Array#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 - call $~stack_check - 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 12 - i32.const 3 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - end - global.get $~lib/memory/__stack_pointer - local.get $0 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - local.get $1 - i32.const 2 - call $~lib/arraybuffer/ArrayBufferView#constructor - local.tee $0 - i32.store - local.get $0 - local.set $2 - 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) (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 - call $~stack_check - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - local.get $0 - local.get $1 - 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 $0 - i32.const 0 - i32.eq - if (result i32) - i32.const 1 - else - local.get $1 - 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 $0 - 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 $2 - local.get $2 - local.get $1 - 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 $0 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store - local.get $3 - i32.const 0 - local.get $1 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - i32.const 0 - local.get $2 - 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 - ) - (func $~lib/typedarray/Uint8Array#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 - call $~stack_check - 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 12 - i32.const 5 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - end - global.get $~lib/memory/__stack_pointer - local.get $0 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - local.get $1 - i32.const 0 - call $~lib/arraybuffer/ArrayBufferView#constructor - local.tee $0 - i32.store - local.get $0 - local.set $2 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $2 - ) - (func $resolve-elementaccess/Buffer#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 - call $~stack_check - 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 12 - i32.const 4 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - end - global.get $~lib/memory/__stack_pointer - local.get $0 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - local.get $1 - call $~lib/typedarray/Uint8Array#constructor - local.tee $0 - i32.store - local.get $0 - 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:resolve-elementaccess (local $0 i32) (local $1 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 @@ -5957,9 +5785,6 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=16 i32.const 256 call $~lib/rt/itcms/initLazy global.set $~lib/rt/itcms/pinSpace @@ -6058,18 +5883,13 @@ local.tee $0 i32.store offset=12 local.get $0 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=8 - local.get $2 i32.const 0 local.tee $1 global.get $resolve-elementaccess/arr local.set $2 global.get $~lib/memory/__stack_pointer local.get $2 - i32.store offset=16 + i32.store offset=8 local.get $2 i32.const 0 call $~lib/typedarray/Float32Array#__get @@ -6077,11 +5897,6 @@ f32.add call $~lib/typedarray/Float32Array#__set local.get $0 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=8 - local.get $2 local.get $1 call $~lib/typedarray/Float32Array#__get i32.const 0 @@ -6233,18 +6048,13 @@ local.tee $0 i32.store offset=12 local.get $0 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=8 - local.get $2 i32.const 0 local.tee $1 global.get $resolve-elementaccess/buf local.set $2 global.get $~lib/memory/__stack_pointer local.get $2 - i32.store offset=16 + i32.store offset=8 local.get $2 i32.const 0 call $~lib/typedarray/Uint8Array#__get @@ -6252,11 +6062,6 @@ i32.add call $~lib/typedarray/Uint8Array#__set local.get $0 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=8 - local.get $2 local.get $1 call $~lib/typedarray/Uint8Array#__get i32.const 10 @@ -6320,7 +6125,7 @@ unreachable end global.get $~lib/memory/__stack_pointer - i32.const 20 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer ) @@ -6397,6 +6202,41 @@ global.set $~lib/memory/__stack_pointer local.get $4 ) + (func $~lib/typedarray/Float32Array#constructor (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 + call $~stack_check + 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 12 + i32.const 3 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + global.get $~lib/memory/__stack_pointer + local.get $0 + local.get $1 + i32.const 2 + call $~lib/arraybuffer/ArrayBufferView#constructor + local.tee $0 + i32.store + 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 $2 + ) (func $~lib/util/number/dtoa (param $0 f64) (result i32) (local $1 i32) (local $2 i32) @@ -6480,6 +6320,75 @@ global.set $~lib/memory/__stack_pointer local.get $3 ) + (func $~lib/typedarray/Uint8Array#constructor (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 + call $~stack_check + 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 12 + i32.const 5 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + global.get $~lib/memory/__stack_pointer + local.get $0 + local.get $1 + i32.const 0 + call $~lib/arraybuffer/ArrayBufferView#constructor + local.tee $0 + i32.store + 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 $2 + ) + (func $resolve-elementaccess/Buffer#constructor (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 + call $~stack_check + 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 12 + i32.const 4 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + global.get $~lib/memory/__stack_pointer + local.get $0 + local.get $1 + call $~lib/typedarray/Uint8Array#constructor + local.tee $0 + i32.store + 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 $2 + ) (func $~lib/util/number/utoa32 (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) diff --git a/tests/compiler/resolve-function-expression.optimized.wat b/tests/compiler/resolve-function-expression.optimized.wat index d7aa45daa7..8359f156d1 100644 --- a/tests/compiler/resolve-function-expression.optimized.wat +++ b/tests/compiler/resolve-function-expression.optimized.wat @@ -1,7 +1,7 @@ (module (type $i32_=>_i32 (func (param i32) (result i32))) - (type $i32_i32_=>_none (func (param i32 i32))) (type $none_=>_none (func)) + (type $i32_i32_=>_none (func (param i32 i32))) (type $i32_=>_none (func (param i32))) (type $i32_i32_i32_=>_none (func (param i32 i32 i32))) (type $i32_i32_=>_i32 (func (param i32 i32) (result i32))) @@ -1789,7 +1789,27 @@ unreachable ) (func $~start + call $start:resolve-function-expression + ) + (func $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 2004 + i32.lt_s + if + i32.const 18416 + i32.const 18464 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + ) + (func $start:resolve-function-expression (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 @@ -1839,97 +1859,150 @@ i32.const 1200 i32.load call_indirect (type $i32_=>_i32) - call $~lib/util/number/itoa32 local.set $0 global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1952 - i32.store offset=4 - local.get $0 - call $~lib/string/String.__eq - i32.eqz - if - 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 8 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 2004 - i32.lt_s - if - i32.const 18416 - i32.const 18464 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - ) - (func $~lib/string/String.__eq (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.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 $0 - i32.const 1952 - i32.eq - if + i32.const 0 + i32.store + block $__inlined_func$~lib/util/number/itoa32 + 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 $0 + br $__inlined_func$~lib/util/number/itoa32 + 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 + local.tee $1 + select + local.tee $2 + i32.const 10 + i32.ge_u + i32.const 1 + i32.add + 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 + local.get $2 + i32.const 100 + i32.lt_u + select + local.get $2 + i32.const 1000000 + i32.ge_u + i32.const 6 + i32.add + local.get $2 + i32.const 1000000000 + i32.ge_u i32.const 8 i32.add - global.set $~lib/memory/__stack_pointer + local.get $2 + i32.const 100000000 + i32.ge_u + i32.add + local.get $2 + i32.const 10000000 + i32.lt_u + select + local.get $2 + i32.const 100000 + i32.lt_u + select + local.get $1 + i32.add + local.tee $3 i32.const 1 - return + i32.shl + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + loop $do-continue|0 + local.get $0 + local.get $3 + i32.const 1 + i32.sub + local.tee $3 + i32.const 1 + i32.shl + i32.add + local.get $2 + i32.const 10 + i32.rem_u + i32.const 48 + i32.add + i32.store16 + local.get $2 + i32.const 10 + i32.div_u + local.tee $2 + br_if $do-continue|0 + end + 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 - block $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 1952 + i32.store offset=4 + block $__inlined_func$~lib/string/String.__eq (result i32) + i32.const 1 local.get $0 - i32.eqz - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer + i32.const 1952 + i32.eq + br_if $__inlined_func$~lib/string/String.__eq + drop + i32.const 0 local.get $0 - i32.store + i32.eqz + br_if $__inlined_func$~lib/string/String.__eq + drop + i32.const 0 local.get $0 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 1952 - i32.store - local.get $1 + local.tee $1 i32.const 1948 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 - global.get $~lib/memory/__stack_pointer - i32.const 1952 - i32.store offset=4 + br_if $__inlined_func$~lib/string/String.__eq + drop block $__inlined_func$~lib/util/string/compareImpl (result i32) i32.const 1952 local.set $3 @@ -1940,11 +2013,12 @@ i32.eqz i32.const 0 local.get $1 + local.tee $0 i32.const 4 i32.ge_u select if - loop $do-continue|0 + loop $do-continue|01 local.get $2 i64.load local.get $3 @@ -1959,34 +2033,34 @@ i32.const 8 i32.add local.set $3 - local.get $1 + local.get $0 i32.const 4 i32.sub - local.tee $1 + local.tee $0 i32.const 4 i32.ge_u - br_if $do-continue|0 + br_if $do-continue|01 end end end loop $while-continue|1 - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 1 i32.sub - local.set $1 - local.get $0 + local.set $0 + local.get $1 if local.get $3 i32.load16_u - local.tee $4 + local.tee $1 local.get $2 i32.load16_u - local.tee $0 + local.tee $4 i32.ne if - local.get $0 local.get $4 + local.get $1 i32.sub br $__inlined_func$~lib/util/string/compareImpl end @@ -2003,130 +2077,20 @@ end i32.const 0 end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer 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/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 - call $~stack_check - 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 1424 - 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 - local.tee $2 - select - local.tee $0 - i32.const 10 - i32.ge_u - i32.const 1 - i32.add - 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 - local.get $0 - i32.const 100 - i32.lt_u - select - local.get $0 - i32.const 1000000 - i32.ge_u - i32.const 6 - i32.add - 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 - local.get $0 - i32.const 10000000 - i32.lt_u - select - local.get $0 - i32.const 100000 - i32.lt_u - select - local.get $2 - i32.add - local.tee $3 - i32.const 1 - i32.shl - call $~lib/rt/itcms/__new - local.tee $1 - i32.store - loop $do-continue|0 - local.get $1 - local.get $3 - i32.const 1 - i32.sub - local.tee $3 + i32.const 0 + i32.const 1088 + i32.const 11 i32.const 1 - i32.shl - i32.add - local.get $0 - i32.const 10 - i32.rem_u - i32.const 48 - i32.add - i32.store16 - local.get $0 - i32.const 10 - i32.div_u - local.tee $0 - br_if $do-continue|0 - end - local.get $2 - if - local.get $1 - i32.const 45 - i32.store16 + call $~lib/builtins/abort + unreachable end global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 ) ) diff --git a/tests/compiler/resolve-function-expression.untouched.wat b/tests/compiler/resolve-function-expression.untouched.wat index b897b3f434..e8fb9835e2 100644 --- a/tests/compiler/resolve-function-expression.untouched.wat +++ b/tests/compiler/resolve-function-expression.untouched.wat @@ -2920,6 +2920,48 @@ end i32.const 0 ) + (func $~lib/string/String.__eq (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + local.get $0 + local.get $1 + i32.eq + if + i32.const 1 + return + end + local.get $0 + i32.const 0 + i32.eq + if (result i32) + i32.const 1 + else + local.get $1 + i32.const 0 + i32.eq + end + if + i32.const 0 + return + end + local.get $0 + call $~lib/string/String#get:length + local.set $2 + local.get $2 + local.get $1 + call $~lib/string/String#get:length + i32.ne + if + i32.const 0 + return + end + local.get $0 + i32.const 0 + local.get $1 + i32.const 0 + local.get $2 + call $~lib/util/string/compareImpl + i32.eqz + ) (func $~lib/rt/__visit_globals (param $0 i32) (local $1 i32) i32.const 624 @@ -3001,101 +3043,6 @@ unreachable end ) - (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 - call $~stack_check - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - local.get $0 - local.get $1 - 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 $0 - i32.const 0 - i32.eq - if (result i32) - i32.const 1 - else - local.get $1 - 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 $0 - 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 $2 - local.get $2 - local.get $1 - 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 $0 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store - local.get $3 - i32.const 0 - local.get $1 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - i32.const 0 - local.get $2 - 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 - ) (func $start:resolve-function-expression (local $0 i32) global.get $~lib/memory/__stack_pointer diff --git a/tests/compiler/resolve-propertyaccess.optimized.wat b/tests/compiler/resolve-propertyaccess.optimized.wat index c6a619a9a7..a7e20d4361 100644 --- a/tests/compiler/resolve-propertyaccess.optimized.wat +++ b/tests/compiler/resolve-propertyaccess.optimized.wat @@ -1873,6 +1873,122 @@ end 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.get $0 + local.get $1 + i32.eq + if + i32.const 1 + return + end + local.get $1 + i32.eqz + i32.const 1 + local.get $0 + select + if + i32.const 0 + return + end + 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.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u + i32.ne + if + i32.const 0 + return + end + block $__inlined_func$~lib/util/string/compareImpl (result i32) + local.get $0 + local.tee $3 + i32.const 7 + i32.and + local.get $1 + i32.const 7 + i32.and + i32.or + i32.eqz + i32.const 0 + local.get $2 + local.tee $0 + i32.const 4 + i32.ge_u + select + if + loop $do-continue|0 + local.get $3 + i64.load + local.get $1 + i64.load + i64.eq + if + local.get $3 + i32.const 8 + i32.add + local.set $3 + 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-continue|0 + end + end + end + loop $while-continue|1 + local.get $0 + local.tee $2 + i32.const 1 + i32.sub + local.set $0 + local.get $2 + if + local.get $3 + i32.load16_u + local.tee $2 + local.get $1 + i32.load16_u + local.tee $4 + i32.ne + if + local.get $2 + local.get $4 + i32.sub + br $__inlined_func$~lib/util/string/compareImpl + end + local.get $3 + i32.const 2 + i32.add + local.set $3 + local.get $1 + i32.const 2 + i32.add + local.set $1 + br $while-continue|1 + end + end + i32.const 0 + end + i32.eqz + ) (func $~lib/rt/__visit_members (param $0 i32) block $invalid block $resolve-propertyaccess/Class @@ -1918,157 +2034,11 @@ unreachable end ) - (func $~lib/string/String.__eq (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 - call $~stack_check - 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 - i32.const 1 - local.get $0 - select - 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 - block $__inlined_func$~lib/util/string/compareImpl (result i32) - local.get $0 - local.tee $3 - i32.const 7 - i32.and - local.get $1 - i32.const 7 - i32.and - i32.or - i32.eqz - i32.const 0 - local.get $2 - i32.const 4 - i32.ge_u - select - if - loop $do-continue|0 - local.get $3 - i64.load - local.get $1 - i64.load - i64.eq - if - local.get $3 - i32.const 8 - i32.add - local.set $3 - 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-continue|0 - end - end - end - loop $while-continue|1 - local.get $2 - local.tee $0 - i32.const 1 - i32.sub - local.set $2 - local.get $0 - if - local.get $3 - i32.load16_u - local.tee $4 - local.get $1 - i32.load16_u - local.tee $0 - i32.ne - if - local.get $4 - local.get $0 - i32.sub - br $__inlined_func$~lib/util/string/compareImpl - end - local.get $3 - i32.const 2 - i32.add - local.set $3 - local.get $1 - i32.const 2 - i32.add - local.set $1 - br $while-continue|1 - end - end - i32.const 0 - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - 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:resolve-propertyaccess (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 @@ -2076,8 +2046,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 i32.const 1392 call $~lib/rt/itcms/initLazy global.set $~lib/rt/itcms/pinSpace @@ -2324,14 +2294,14 @@ local.get $0 i32.load call $~lib/number/I32#toString - 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 2176 i32.store offset=4 - local.get $1 + local.get $0 i32.const 2176 call $~lib/string/String.__eq i32.eqz @@ -2343,9 +2313,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=12 i32.const 8 call $~lib/number/I32#toString local.set $0 @@ -2368,7 +2335,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.untouched.wat b/tests/compiler/resolve-propertyaccess.untouched.wat index 4bc2f16c85..8d16575adc 100644 --- a/tests/compiler/resolve-propertyaccess.untouched.wat +++ b/tests/compiler/resolve-propertyaccess.untouched.wat @@ -2920,6 +2920,48 @@ end i32.const 0 ) + (func $~lib/string/String.__eq (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + local.get $0 + local.get $1 + i32.eq + if + i32.const 1 + return + end + local.get $0 + i32.const 0 + i32.eq + if (result i32) + i32.const 1 + else + local.get $1 + i32.const 0 + i32.eq + end + if + i32.const 0 + return + end + local.get $0 + call $~lib/string/String#get:length + local.set $2 + local.get $2 + local.get $1 + call $~lib/string/String#get:length + i32.ne + if + i32.const 0 + return + end + local.get $0 + i32.const 0 + local.get $1 + i32.const 0 + local.get $2 + call $~lib/util/string/compareImpl + i32.eqz + ) (func $resolve-propertyaccess/Class.get:staticProperty (result i32) i32.const 7 ) @@ -2998,106 +3040,11 @@ unreachable end ) - (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 - call $~stack_check - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - local.get $0 - local.get $1 - 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 $0 - i32.const 0 - i32.eq - if (result i32) - i32.const 1 - else - local.get $1 - 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 $0 - 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 $2 - local.get $2 - local.get $1 - 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 $0 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store - local.get $3 - i32.const 0 - local.get $1 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - i32.const 0 - local.get $2 - 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 - ) (func $start:resolve-propertyaccess (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 @@ -3105,8 +3052,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 i32.const 368 call $~lib/rt/itcms/initLazy global.set $~lib/rt/itcms/pinSpace @@ -3387,11 +3334,6 @@ unreachable end local.get $0 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=12 - local.get $1 call $resolve-propertyaccess/Class#get:instanceProperty i32.const 10 call $~lib/number/I32#toString @@ -3417,7 +3359,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-ternary.optimized.wat b/tests/compiler/resolve-ternary.optimized.wat index c28b1ea3ac..12bd3585b7 100644 --- a/tests/compiler/resolve-ternary.optimized.wat +++ b/tests/compiler/resolve-ternary.optimized.wat @@ -1825,6 +1825,122 @@ br_if $do-continue|0 end ) + (func $~lib/string/String.__eq (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + local.get $0 + local.get $1 + i32.eq + if + i32.const 1 + return + end + local.get $1 + i32.eqz + i32.const 1 + local.get $0 + select + if + i32.const 0 + return + end + 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.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u + i32.ne + if + i32.const 0 + return + end + block $__inlined_func$~lib/util/string/compareImpl (result i32) + local.get $0 + local.tee $3 + i32.const 7 + i32.and + local.get $1 + i32.const 7 + i32.and + i32.or + i32.eqz + i32.const 0 + local.get $2 + local.tee $0 + i32.const 4 + i32.ge_u + select + if + loop $do-continue|0 + local.get $3 + i64.load + local.get $1 + i64.load + i64.eq + if + local.get $3 + i32.const 8 + i32.add + local.set $3 + 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-continue|0 + end + end + end + loop $while-continue|1 + local.get $0 + local.tee $2 + i32.const 1 + i32.sub + local.set $0 + local.get $2 + if + local.get $3 + i32.load16_u + local.tee $2 + local.get $1 + i32.load16_u + local.tee $4 + i32.ne + if + local.get $2 + local.get $4 + i32.sub + br $__inlined_func$~lib/util/string/compareImpl + end + local.get $3 + i32.const 2 + i32.add + local.set $3 + local.get $1 + i32.const 2 + i32.add + local.set $1 + br $while-continue|1 + end + end + i32.const 0 + end + i32.eqz + ) (func $~lib/util/number/genDigits (param $0 i64) (param $1 i32) (param $2 i64) (param $3 i32) (param $4 i64) (result i32) (local $5 i32) (local $6 i64) @@ -2800,152 +2916,6 @@ unreachable end ) - (func $~lib/string/String.__eq (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 - call $~stack_check - 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 - i32.const 1 - local.get $0 - select - 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 - block $__inlined_func$~lib/util/string/compareImpl (result i32) - local.get $0 - local.tee $3 - i32.const 7 - i32.and - local.get $1 - i32.const 7 - i32.and - i32.or - i32.eqz - i32.const 0 - local.get $2 - i32.const 4 - i32.ge_u - select - if - loop $do-continue|0 - local.get $3 - i64.load - local.get $1 - i64.load - i64.eq - if - local.get $3 - i32.const 8 - i32.add - local.set $3 - 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-continue|0 - end - end - end - loop $while-continue|1 - local.get $2 - local.tee $0 - i32.const 1 - i32.sub - local.set $2 - local.get $0 - if - local.get $3 - i32.load16_u - local.tee $4 - local.get $1 - i32.load16_u - local.tee $0 - i32.ne - if - local.get $4 - local.get $0 - i32.sub - br $__inlined_func$~lib/util/string/compareImpl - end - local.get $3 - i32.const 2 - i32.add - local.set $3 - local.get $1 - i32.const 2 - i32.add - local.set $1 - br $while-continue|1 - end - end - i32.const 0 - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - 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:resolve-ternary (local $0 i32) (local $1 i32) diff --git a/tests/compiler/resolve-ternary.untouched.wat b/tests/compiler/resolve-ternary.untouched.wat index 37e43632ef..4bc9d2925b 100644 --- a/tests/compiler/resolve-ternary.untouched.wat +++ b/tests/compiler/resolve-ternary.untouched.wat @@ -2928,6 +2928,48 @@ end i32.const 0 ) + (func $~lib/string/String.__eq (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + local.get $0 + local.get $1 + i32.eq + if + i32.const 1 + return + end + local.get $0 + i32.const 0 + i32.eq + if (result i32) + i32.const 1 + else + local.get $1 + i32.const 0 + i32.eq + end + if + i32.const 0 + return + end + local.get $0 + call $~lib/string/String#get:length + local.set $2 + local.get $2 + local.get $1 + call $~lib/string/String#get:length + i32.ne + if + i32.const 0 + return + end + local.get $0 + i32.const 0 + local.get $1 + i32.const 0 + local.get $2 + call $~lib/util/string/compareImpl + i32.eqz + ) (func $~lib/util/number/genDigits (param $0 i32) (param $1 i64) (param $2 i32) (param $3 i64) (param $4 i32) (param $5 i64) (param $6 i32) (result i32) (local $7 i32) (local $8 i64) @@ -5537,101 +5579,6 @@ unreachable end ) - (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 - call $~stack_check - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - local.get $0 - local.get $1 - 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 $0 - i32.const 0 - i32.eq - if (result i32) - i32.const 1 - else - local.get $1 - 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 $0 - 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 $2 - local.get $2 - local.get $1 - 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 $0 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store - local.get $3 - i32.const 0 - local.get $1 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - i32.const 0 - local.get $2 - 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 - ) (func $start:resolve-ternary (local $0 i32) global.get $~lib/memory/__stack_pointer diff --git a/tests/compiler/resolve-unary.optimized.wat b/tests/compiler/resolve-unary.optimized.wat index 57e0b098ec..240b6772e4 100644 --- a/tests/compiler/resolve-unary.optimized.wat +++ b/tests/compiler/resolve-unary.optimized.wat @@ -1893,6 +1893,122 @@ end 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.get $0 + local.get $1 + i32.eq + if + i32.const 1 + return + end + local.get $1 + i32.eqz + i32.const 1 + local.get $0 + select + if + i32.const 0 + return + end + 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.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u + i32.ne + if + i32.const 0 + return + end + block $__inlined_func$~lib/util/string/compareImpl (result i32) + local.get $0 + local.tee $3 + i32.const 7 + i32.and + local.get $1 + i32.const 7 + i32.and + i32.or + i32.eqz + i32.const 0 + local.get $2 + local.tee $0 + i32.const 4 + i32.ge_u + select + if + loop $do-continue|0 + local.get $3 + i64.load + local.get $1 + i64.load + i64.eq + if + local.get $3 + i32.const 8 + i32.add + local.set $3 + 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-continue|0 + end + end + end + loop $while-continue|1 + local.get $0 + local.tee $2 + i32.const 1 + i32.sub + local.set $0 + local.get $2 + if + local.get $3 + i32.load16_u + local.tee $2 + local.get $1 + i32.load16_u + local.tee $4 + i32.ne + if + local.get $2 + local.get $4 + i32.sub + br $__inlined_func$~lib/util/string/compareImpl + end + local.get $3 + i32.const 2 + i32.add + local.set $3 + local.get $1 + i32.const 2 + i32.add + local.set $1 + br $while-continue|1 + end + end + i32.const 0 + end + i32.eqz + ) (func $~lib/rt/__visit_members (param $0 i32) block $invalid block $resolve-unary/Bar @@ -1941,152 +2057,6 @@ unreachable end ) - (func $~lib/string/String.__eq (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 - call $~stack_check - 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 - i32.const 1 - local.get $0 - select - 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 - block $__inlined_func$~lib/util/string/compareImpl (result i32) - local.get $0 - local.tee $3 - i32.const 7 - i32.and - local.get $1 - i32.const 7 - i32.and - i32.or - i32.eqz - i32.const 0 - local.get $2 - i32.const 4 - i32.ge_u - select - if - loop $do-continue|0 - local.get $3 - i64.load - local.get $1 - i64.load - i64.eq - if - local.get $3 - i32.const 8 - i32.add - local.set $3 - 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-continue|0 - end - end - end - loop $while-continue|1 - local.get $2 - local.tee $0 - i32.const 1 - i32.sub - local.set $2 - local.get $0 - if - local.get $3 - i32.load16_u - local.tee $4 - local.get $1 - i32.load16_u - local.tee $0 - i32.ne - if - local.get $4 - local.get $0 - i32.sub - br $__inlined_func$~lib/util/string/compareImpl - end - local.get $3 - i32.const 2 - i32.add - local.set $3 - local.get $1 - i32.const 2 - i32.add - local.set $1 - br $while-continue|1 - end - end - i32.const 0 - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - 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:resolve-unary (local $0 i32) global.get $~lib/memory/__stack_pointer @@ -2485,9 +2455,6 @@ global.get $resolve-unary/foo local.tee $0 i32.store offset=16 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 local.get $0 global.set $resolve-unary/foo global.get $~lib/memory/__stack_pointer @@ -2508,9 +2475,6 @@ global.get $resolve-unary/foo local.tee $0 i32.store offset=16 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 local.get $0 global.set $resolve-unary/foo global.get $~lib/memory/__stack_pointer diff --git a/tests/compiler/resolve-unary.untouched.wat b/tests/compiler/resolve-unary.untouched.wat index 9bdc145660..4ee0a0c811 100644 --- a/tests/compiler/resolve-unary.untouched.wat +++ b/tests/compiler/resolve-unary.untouched.wat @@ -2917,6 +2917,48 @@ end i32.const 0 ) + (func $~lib/string/String.__eq (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + local.get $0 + local.get $1 + i32.eq + if + i32.const 1 + return + end + local.get $0 + i32.const 0 + i32.eq + if (result i32) + i32.const 1 + else + local.get $1 + i32.const 0 + i32.eq + end + if + i32.const 0 + return + end + local.get $0 + call $~lib/string/String#get:length + local.set $2 + local.get $2 + local.get $1 + call $~lib/string/String#get:length + i32.ne + if + i32.const 0 + return + end + local.get $0 + i32.const 0 + local.get $1 + i32.const 0 + local.get $2 + call $~lib/util/string/compareImpl + i32.eqz + ) (func $~lib/number/Bool#toString (param $0 i32) (param $1 i32) (result i32) local.get $0 if (result i32) @@ -3051,101 +3093,6 @@ unreachable end ) - (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 - call $~stack_check - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - local.get $0 - local.get $1 - 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 $0 - i32.const 0 - i32.eq - if (result i32) - i32.const 1 - else - local.get $1 - 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 $0 - 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 $2 - local.get $2 - local.get $1 - 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 $0 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store - local.get $3 - i32.const 0 - local.get $1 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - i32.const 0 - local.get $2 - 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 - ) (func $start:resolve-unary (local $0 i32) (local $1 i32) @@ -3607,11 +3554,6 @@ local.tee $0 i32.store offset=16 local.get $0 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 call $resolve-unary/Foo#postfix_inc global.set $resolve-unary/foo local.get $0 @@ -3637,11 +3579,6 @@ local.tee $0 i32.store offset=16 local.get $0 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 call $resolve-unary/Foo#postfix_dec global.set $resolve-unary/foo local.get $0 diff --git a/tests/compiler/rt/instanceof.optimized.wat b/tests/compiler/rt/instanceof.optimized.wat index 1eb7fd2f5e..4a7f826c0b 100644 --- a/tests/compiler/rt/instanceof.optimized.wat +++ b/tests/compiler/rt/instanceof.optimized.wat @@ -1879,68 +1879,61 @@ unreachable end ) - (func $rt/instanceof/Cat#constructor (param $0 i32) (result i32) + (func $rt/instanceof/Animal#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 call $~stack_check global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store + i32.const 0 + i32.store local.get $0 i32.eqz if global.get $~lib/memory/__stack_pointer - i32.const 4 + 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 - global.get $~lib/memory/__stack_pointer - local.get $0 - call $rt/instanceof/Animal#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 ) - (func $rt/instanceof/BlackCat#constructor (result i32) - (local $0 i32) + (func $rt/instanceof/Cat#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 call $~stack_check 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.const 0 i32.store - global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=4 + 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 - call $rt/instanceof/Cat#constructor + call $rt/instanceof/Animal#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 ) - (func $rt/instanceof/Animal#constructor (param $0 i32) (result i32) + (func $rt/instanceof/BlackCat#constructor (result i32) + (local $0 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -1949,15 +1942,16 @@ global.get $~lib/memory/__stack_pointer i32.const 0 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 local.get $0 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 3 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - end + call $rt/instanceof/Cat#constructor + local.tee $0 + i32.store global.get $~lib/memory/__stack_pointer i32.const 4 i32.add diff --git a/tests/compiler/rt/instanceof.untouched.wat b/tests/compiler/rt/instanceof.untouched.wat index e2313d516b..01580a7d01 100644 --- a/tests/compiler/rt/instanceof.untouched.wat +++ b/tests/compiler/rt/instanceof.untouched.wat @@ -3069,83 +3069,68 @@ unreachable end ) - (func $rt/instanceof/Cat#constructor (param $0 i32) (result i32) + (func $rt/instanceof/Animal#constructor (param $0 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 $0 i32.eqz if global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 4 + i32.const 3 call $~lib/rt/itcms/__new local.tee $0 i32.store end - global.get $~lib/memory/__stack_pointer local.get $0 local.set $1 global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $rt/instanceof/Animal#constructor - local.tee $0 - i32.store - local.get $0 - 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 ) - (func $rt/instanceof/BlackCat#constructor (param $0 i32) (result i32) + (func $rt/instanceof/Cat#constructor (param $0 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 $0 i32.eqz if global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 5 + i32.const 4 call $~lib/rt/itcms/__new local.tee $0 i32.store end global.get $~lib/memory/__stack_pointer local.get $0 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $rt/instanceof/Cat#constructor + call $rt/instanceof/Animal#constructor local.tee $0 i32.store local.get $0 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 ) - (func $rt/instanceof/Animal#constructor (param $0 i32) (result i32) + (func $rt/instanceof/BlackCat#constructor (param $0 i32) (result i32) (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 4 @@ -3160,11 +3145,16 @@ if global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 3 + i32.const 5 call $~lib/rt/itcms/__new local.tee $0 i32.store end + global.get $~lib/memory/__stack_pointer + local.get $0 + call $rt/instanceof/Cat#constructor + local.tee $0 + i32.store local.get $0 local.set $1 global.get $~lib/memory/__stack_pointer diff --git a/tests/compiler/std-wasi/console.optimized.wat b/tests/compiler/std-wasi/console.optimized.wat index a8a778edb3..b1b5004460 100644 --- a/tests/compiler/std-wasi/console.optimized.wat +++ b/tests/compiler/std-wasi/console.optimized.wat @@ -1,6 +1,6 @@ (module - (type $i32_i32_=>_none (func (param i32 i32))) (type $i32_=>_none (func (param i32))) + (type $i32_i32_=>_none (func (param i32 i32))) (type $i32_=>_i32 (func (param i32) (result i32))) (type $none_=>_none (func)) (type $i32_i32_=>_i32 (func (param i32 i32) (result i32))) @@ -486,6 +486,131 @@ i32.lt_u select ) + (func $~lib/wasi/index/abort (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) + (local $4 i32) + i32.const 0 + i32.const 12 + i32.store + i32.const 12 + i64.const 9071471065260641 + i64.store + local.get $0 + if (result i32) + local.get $0 + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u + i32.const 19 + call $~lib/string/String.UTF8.encodeUnsafe + i32.const 19 + i32.add + else + i32.const 19 + end + local.tee $4 + i32.const 544106784 + i32.store + local.get $4 + i32.const 4 + i32.add + local.set $4 + local.get $1 + if + local.get $1 + local.get $1 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u + local.get $4 + call $~lib/string/String.UTF8.encodeUnsafe + local.get $4 + i32.add + local.set $4 + end + local.get $4 + i32.const 40 + i32.store8 + local.get $2 + call $~lib/util/number/decimalCount32 + local.tee $0 + local.get $4 + i32.const 1 + i32.add + i32.add + local.set $4 + loop $do-continue|0 + local.get $4 + i32.const 1 + i32.sub + local.tee $4 + local.get $2 + i32.const 10 + i32.rem_u + i32.const 48 + i32.add + i32.store8 + local.get $2 + i32.const 10 + i32.div_u + local.tee $2 + br_if $do-continue|0 + end + local.get $0 + local.get $4 + i32.add + local.tee $0 + i32.const 58 + i32.store8 + local.get $3 + call $~lib/util/number/decimalCount32 + local.tee $1 + local.get $0 + i32.const 1 + i32.add + i32.add + local.set $4 + loop $do-continue|1 + local.get $4 + i32.const 1 + i32.sub + local.tee $4 + local.get $3 + i32.const 10 + i32.rem_u + i32.const 48 + i32.add + i32.store8 + local.get $3 + i32.const 10 + i32.div_u + local.tee $3 + br_if $do-continue|1 + end + local.get $1 + local.get $4 + i32.add + local.tee $0 + i32.const 2601 + i32.store16 + i32.const 4 + local.get $0 + i32.const 10 + i32.sub + i32.store + i32.const 2 + i32.const 0 + i32.const 1 + i32.const 8 + call $~lib/bindings/wasi_snapshot_preview1/fd_write + drop + i32.const 255 + call $~lib/bindings/wasi_snapshot_preview1/proc_exit + ) (func $~lib/bindings/wasi_snapshot_preview1/errnoToString (param $0 i32) (result i32) block $break|0 block $case76|0 @@ -1822,78 +1947,309 @@ local.get $1 call $~lib/rt/tlsf/insertBlock ) - (func $~lib/rt/itcms/initLazy (param $0 i32) (result i32) - local.get $0 - local.get $0 - i32.store offset=4 - local.get $0 - local.get $0 - i32.store offset=8 - local.get $0 - ) - (func $~lib/rt/itcms/visitRoots - (local $0 i32) - (local $1 i32) - global.get $~lib/console/timers - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end - i32.const 5008 - call $~lib/rt/itcms/__visit - i32.const 5152 - call $~lib/rt/itcms/__visit - i32.const 5584 - call $~lib/rt/itcms/__visit - i32.const 4288 - call $~lib/rt/itcms/__visit - i32.const 5920 - 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 4880 - i32.const 159 - i32.const 16 - call $~lib/wasi/index/abort - unreachable + (func $~lib/process/writeString (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + i32.const -1 + local.set $4 + i32.const -1 + local.set $5 + i32.const -1 + local.set $2 + block $break|0 + block $case4|0 + block $case3|0 + block $case2|0 + block $case1|0 + block $case0|0 + local.get $1 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u + br_table $case4|0 $case3|0 $case2|0 $case1|0 $case0|0 $break|0 + end + local.get $1 + i32.load16_u offset=6 + local.tee $2 + i32.const 128 + i32.ge_u + br_if $break|0 + end + local.get $1 + i32.load16_u offset=4 + local.tee $5 + i32.const 128 + i32.ge_u + br_if $break|0 + end + local.get $1 + i32.load16_u offset=2 + local.tee $4 + i32.const 128 + i32.ge_u + br_if $break|0 end - local.get $0 - i32.const 20 + local.get $1 + i32.load16_u + local.tee $3 + i32.const 128 + i32.ge_u + br_if $break|0 + i32.const 1136 + i32.const 1144 + i32.store + i32.const 1140 + local.get $4 + i32.const -1 + i32.ne + 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 - end - end - ) - (func $~lib/rt/itcms/Object#set:color (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - local.get $0 - i32.load offset=4 - i32.const -4 + local.get $5 + i32.const -1 + i32.ne + i32.add + local.get $2 + i32.const -1 + i32.ne + i32.add + i32.store + i32.const 1144 + local.get $3 + local.get $4 + i32.const 8 + i32.shl + i32.or + local.get $5 + i32.const 16 + i32.shl + i32.or + local.get $2 + i32.const 24 + i32.shl + i32.or + i32.store + local.get $0 + i32.const 1136 + i32.const 1 + i32.const 1148 + call $~lib/bindings/wasi_snapshot_preview1/fd_write + local.tee $0 + i32.const 65535 + i32.and + if + local.get $0 + call $~lib/bindings/wasi_snapshot_preview1/errnoToString + i32.const 4160 + i32.const 178 + i32.const 16 + call $~lib/wasi/index/abort + unreachable + end + end + return + end + i32.const 0 + local.set $3 + local.get $1 + local.tee $2 + local.get $2 + i32.const 20 + i32.sub + i32.load offset=16 + i32.add + local.set $4 + loop $while-continue|0 + local.get $2 + local.get $4 + i32.lt_u + if + local.get $2 + i32.load16_u + local.tee $5 + i32.const 128 + i32.lt_u + if (result i32) + local.get $3 + i32.const 1 + i32.add + else + local.get $5 + i32.const 2048 + i32.lt_u + if (result i32) + local.get $3 + i32.const 2 + i32.add + else + local.get $4 + local.get $2 + i32.const 2 + i32.add + i32.gt_u + i32.const 0 + local.get $5 + i32.const 64512 + i32.and + i32.const 55296 + i32.eq + select + if + local.get $2 + i32.load16_u offset=2 + i32.const 64512 + i32.and + i32.const 56320 + i32.eq + if + local.get $3 + i32.const 4 + i32.add + local.set $3 + local.get $2 + i32.const 4 + i32.add + local.set $2 + br $while-continue|0 + end + end + local.get $3 + i32.const 3 + i32.add + end + end + local.set $3 + local.get $2 + i32.const 2 + i32.add + local.set $2 + br $while-continue|0 + end + end + local.get $3 + call $~lib/rt/tlsf/__alloc + local.set $2 + local.get $1 + local.get $1 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u + local.get $2 + call $~lib/string/String.UTF8.encodeUnsafe + local.get $3 + i32.ne + if + i32.const 0 + i32.const 4160 + i32.const 184 + i32.const 3 + call $~lib/wasi/index/abort + unreachable + end + i32.const 1136 + local.get $2 + i32.store + i32.const 1140 + local.get $3 + i32.store + local.get $0 + i32.const 1136 + i32.const 1 + i32.const 1144 + call $~lib/bindings/wasi_snapshot_preview1/fd_write + local.set $0 + local.get $2 + call $~lib/rt/tlsf/__free + local.get $0 + i32.const 65535 + i32.and + if + local.get $0 + call $~lib/bindings/wasi_snapshot_preview1/errnoToString + i32.const 4160 + i32.const 189 + i32.const 12 + call $~lib/wasi/index/abort + unreachable + end + ) + (func $~lib/rt/itcms/initLazy (param $0 i32) (result i32) + local.get $0 + local.get $0 + i32.store offset=4 + local.get $0 + local.get $0 + i32.store offset=8 + local.get $0 + ) + (func $~lib/rt/itcms/visitRoots + (local $0 i32) + (local $1 i32) + global.get $~lib/console/timers + local.tee $0 + if + local.get $0 + call $~lib/rt/itcms/__visit + end + i32.const 5008 + call $~lib/rt/itcms/__visit + i32.const 5152 + call $~lib/rt/itcms/__visit + i32.const 5584 + call $~lib/rt/itcms/__visit + i32.const 4288 + call $~lib/rt/itcms/__visit + i32.const 5920 + 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 4880 + i32.const 159 + i32.const 16 + call $~lib/wasi/index/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#set:color (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + local.get $0 + i32.load offset=4 + i32.const -4 i32.and i32.or i32.store offset=4 @@ -2596,618 +2952,14 @@ i32.const 0 call $~lib/rt/itcms/__link ) - (func $~lib/process/process.hrtime (result i64) - (local $0 i32) - i32.const 1 - i64.const 0 - i32.const 1136 - call $~lib/bindings/wasi_snapshot_preview1/clock_time_get - local.tee $0 - i32.const 65535 - i32.and - if - local.get $0 - call $~lib/bindings/wasi_snapshot_preview1/errnoToString - i32.const 4160 - i32.const 59 - i32.const 14 - call $~lib/wasi/index/abort - unreachable - end - i32.const 1136 - i64.load - ) - (func $~lib/rt/__visit_members (param $0 i32) - (local $1 i32) - (local $2 i32) - block $invalid - block $~lib/map/Map<~lib/string/String,u64> - block $~lib/arraybuffer/ArrayBufferView - block $~lib/string/String - block $~lib/arraybuffer/ArrayBuffer - local.get $0 - i32.const 8 - i32.sub - i32.load - br_table $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $~lib/map/Map<~lib/string/String,u64> $invalid - 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 - i32.load - call $~lib/rt/itcms/__visit - local.get $0 - i32.load offset=8 - local.tee $2 - local.tee $1 - local.get $0 - i32.load offset=16 - i32.const 24 - i32.mul - i32.add - local.set $0 - loop $while-continue|0 - local.get $0 - local.get $1 - i32.gt_u - if - local.get $1 - i32.load offset=16 - i32.const 1 - i32.and - i32.eqz - if - local.get $1 - i32.load - call $~lib/rt/itcms/__visit - end - local.get $1 - i32.const 24 - i32.add - local.set $1 - br $while-continue|0 - end - end - local.get $2 - call $~lib/rt/itcms/__visit - return - end - unreachable - ) - (func $~start - global.get $~started - if - return - end - i32.const 1 - global.set $~started - call $start:std-wasi/console - ) - (func $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 6404 - i32.lt_s - if - i32.const 22816 - i32.const 22864 - i32.const 1 - i32.const 1 - call $~lib/wasi/index/abort - unreachable - end - ) - (func $~lib/wasi/index/abort (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 - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - i32.const 0 - i32.const 12 - i32.store - i32.const 12 - i64.const 9071471065260641 - i64.store - local.get $0 - if (result i32) - 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 19 - call $~lib/string/String.UTF8.encodeUnsafe - i32.const 19 - i32.add - else - i32.const 19 - end - local.tee $4 - i32.const 544106784 - i32.store - local.get $4 - i32.const 4 - i32.add - local.set $4 - local.get $1 - if - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $1 - local.get $1 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 1 - i32.shr_u - local.get $4 - call $~lib/string/String.UTF8.encodeUnsafe - local.get $4 - i32.add - local.set $4 - end - local.get $4 - i32.const 40 - i32.store8 - local.get $2 - call $~lib/util/number/decimalCount32 - local.tee $0 - local.get $4 - i32.const 1 - i32.add - i32.add - local.set $4 - loop $do-continue|0 - local.get $4 - i32.const 1 - i32.sub - local.tee $4 - local.get $2 - i32.const 10 - i32.rem_u - i32.const 48 - i32.add - i32.store8 - local.get $2 - i32.const 10 - i32.div_u - local.tee $2 - br_if $do-continue|0 - end - local.get $0 - local.get $4 - i32.add - local.tee $0 - i32.const 58 - i32.store8 - local.get $3 - call $~lib/util/number/decimalCount32 - local.tee $1 - local.get $0 - i32.const 1 - i32.add - i32.add - local.set $4 - loop $do-continue|1 - local.get $4 - i32.const 1 - i32.sub - local.tee $4 - local.get $3 - i32.const 10 - i32.rem_u - i32.const 48 - i32.add - i32.store8 - local.get $3 - i32.const 10 - i32.div_u - local.tee $3 - br_if $do-continue|1 - end - local.get $1 - local.get $4 - i32.add - local.tee $0 - i32.const 2601 - i32.store16 - i32.const 4 - local.get $0 - i32.const 10 - i32.sub - i32.store - i32.const 2 - i32.const 0 - i32.const 1 - i32.const 8 - call $~lib/bindings/wasi_snapshot_preview1/fd_write - drop - i32.const 255 - call $~lib/bindings/wasi_snapshot_preview1/proc_exit - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/process/writeString (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 - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - i32.const -1 - local.set $4 - i32.const -1 - local.set $5 - i32.const -1 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - block $break|0 - block $case4|0 - block $case3|0 - block $case2|0 - block $case1|0 - block $case0|0 - local.get $1 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 1 - i32.shr_u - br_table $case4|0 $case3|0 $case2|0 $case1|0 $case0|0 $break|0 - end - local.get $1 - i32.load16_u offset=6 - local.tee $2 - i32.const 128 - i32.ge_u - br_if $break|0 - end - local.get $1 - i32.load16_u offset=4 - local.tee $5 - i32.const 128 - i32.ge_u - br_if $break|0 - end - local.get $1 - i32.load16_u offset=2 - local.tee $4 - i32.const 128 - i32.ge_u - br_if $break|0 - end - local.get $1 - i32.load16_u - local.tee $3 - i32.const 128 - i32.ge_u - br_if $break|0 - i32.const 1136 - i32.const 1144 - i32.store - i32.const 1140 - local.get $4 - i32.const -1 - i32.ne - i32.const 1 - i32.add - local.get $5 - i32.const -1 - i32.ne - i32.add - local.get $2 - i32.const -1 - i32.ne - i32.add - i32.store - i32.const 1144 - local.get $3 - local.get $4 - i32.const 8 - i32.shl - i32.or - local.get $5 - i32.const 16 - i32.shl - i32.or - local.get $2 - i32.const 24 - i32.shl - i32.or - i32.store - local.get $0 - i32.const 1136 - i32.const 1 - i32.const 1148 - call $~lib/bindings/wasi_snapshot_preview1/fd_write - local.tee $0 - i32.const 65535 - i32.and - if - local.get $0 - call $~lib/bindings/wasi_snapshot_preview1/errnoToString - i32.const 4160 - i32.const 178 - i32.const 16 - call $~lib/wasi/index/abort - unreachable - end - end - 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 - local.get $1 - local.set $2 - i32.const 0 - local.set $3 - local.get $1 - local.get $1 - i32.const 20 - i32.sub - i32.load offset=16 - i32.add - local.set $4 - loop $while-continue|0 - local.get $2 - local.get $4 - i32.lt_u - if - local.get $2 - i32.load16_u - local.tee $5 - i32.const 128 - i32.lt_u - if (result i32) - local.get $3 - i32.const 1 - i32.add - else - local.get $5 - i32.const 2048 - i32.lt_u - if (result i32) - local.get $3 - i32.const 2 - i32.add - else - local.get $4 - local.get $2 - i32.const 2 - i32.add - i32.gt_u - i32.const 0 - local.get $5 - i32.const 64512 - i32.and - i32.const 55296 - i32.eq - select - if - local.get $2 - i32.load16_u offset=2 - i32.const 64512 - i32.and - i32.const 56320 - i32.eq - if - local.get $3 - i32.const 4 - i32.add - local.set $3 - local.get $2 - i32.const 4 - i32.add - local.set $2 - br $while-continue|0 - end - end - local.get $3 - i32.const 3 - i32.add - end - end - local.set $3 - local.get $2 - i32.const 2 - i32.add - local.set $2 - br $while-continue|0 - end - end - local.get $3 - call $~lib/rt/tlsf/__alloc - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $1 - local.get $1 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 1 - i32.shr_u - local.get $2 - call $~lib/string/String.UTF8.encodeUnsafe - local.get $3 - i32.ne - if - i32.const 0 - i32.const 4160 - i32.const 184 - i32.const 3 - call $~lib/wasi/index/abort - unreachable - end - i32.const 1136 - local.get $2 - i32.store - i32.const 1140 - local.get $3 - i32.store - local.get $0 - i32.const 1136 - i32.const 1 - i32.const 1144 - call $~lib/bindings/wasi_snapshot_preview1/fd_write - local.set $0 - local.get $2 - call $~lib/rt/tlsf/__free - local.get $0 - i32.const 65535 - i32.and - if - local.get $0 - call $~lib/bindings/wasi_snapshot_preview1/errnoToString - i32.const 4160 - i32.const 189 - i32.const 12 - call $~lib/wasi/index/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/process/WritableStream#write<~lib/string/String> (param $0 i32) (param $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 $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $0 - local.get $1 - call $~lib/process/writeString - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/console/console.assert (param $0 i32) (param $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 $0 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 1088 - i32.store - i32.const 2 - i32.const 1088 - call $~lib/process/WritableStream#write<~lib/string/String> - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - i32.const 2 - local.get $1 - call $~lib/process/WritableStream#write<~lib/string/String> - global.get $~lib/memory/__stack_pointer - i32.const 4352 - i32.store - i32.const 2 - i32.const 4352 - call $~lib/process/WritableStream#write<~lib/string/String> - end - 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) - 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 - local.get $0 - i32.store - i32.const 1 - local.get $0 - call $~lib/process/WritableStream#write<~lib/string/String> - global.get $~lib/memory/__stack_pointer - i32.const 4352 - i32.store - i32.const 1 - i32.const 4352 - call $~lib/process/WritableStream#write<~lib/string/String> - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - ) (func $~lib/util/hash/hashStr (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 - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store i32.const -2128831035 local.set $1 local.get $0 if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store local.get $0 i32.const 20 i32.sub @@ -3239,247 +2991,9 @@ end end 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.__eq (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 - call $~stack_check - 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 - i32.const 1 - local.get $0 - select - 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 - block $__inlined_func$~lib/util/string/compareImpl (result i32) - local.get $0 - local.tee $3 - i32.const 7 - i32.and - local.get $1 - i32.const 7 - i32.and - i32.or - i32.eqz - i32.const 0 - local.get $2 - i32.const 4 - i32.ge_u - select - if - loop $do-continue|0 - local.get $3 - i64.load - local.get $1 - i64.load - i64.eq - if - local.get $3 - i32.const 8 - i32.add - local.set $3 - 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-continue|0 - end - end - end - loop $while-continue|1 - local.get $2 - local.tee $0 - i32.const 1 - i32.sub - local.set $2 - local.get $0 - if - local.get $3 - i32.load16_u - local.tee $4 - local.get $1 - i32.load16_u - local.tee $0 - i32.ne - if - local.get $4 - local.get $0 - i32.sub - br $__inlined_func$~lib/util/string/compareImpl - end - local.get $3 - i32.const 2 - i32.add - local.set $3 - local.get $1 - i32.const 2 - i32.add - local.set $1 - br $while-continue|1 - end - end - i32.const 0 - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - 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,u64>#find (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 - call $~stack_check - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - local.get $0 - i32.load - 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=16 - local.tee $3 - i32.const 1 - i32.and - if (result i32) - i32.const 0 - else - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.load - local.tee $2 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $2 - local.get $1 - call $~lib/string/String.__eq - end - 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 $3 - i32.const -2 - 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 - i32.const 0 ) (func $~lib/map/Map<~lib/string/String,u64>#has (param $0 i32) (param $1 i32) (result 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 - 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 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=12 local.get $0 local.get $1 local.get $1 @@ -3487,10 +3001,27 @@ call $~lib/map/Map<~lib/string/String,u64>#find i32.const 0 i32.ne - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer + ) + (func $~lib/process/process.hrtime (result i64) + (local $0 i32) + i32.const 1 + i64.const 0 + i32.const 1136 + call $~lib/bindings/wasi_snapshot_preview1/clock_time_get + local.tee $0 + i32.const 65535 + i32.and + if + local.get $0 + call $~lib/bindings/wasi_snapshot_preview1/errnoToString + i32.const 4160 + i32.const 59 + i32.const 14 + call $~lib/wasi/index/abort + unreachable + end + i32.const 1136 + i64.load ) (func $~lib/map/Map<~lib/string/String,u64>#rehash (param $0 i32) (param $1 i32) (local $2 i32) @@ -3501,7 +3032,7 @@ (local $7 i32) (local $8 i32) global.get $~lib/memory/__stack_pointer - i32.const 20 + i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check @@ -3509,11 +3040,8 @@ 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 0 - i32.store offset=16 + i32.store offset=8 global.get $~lib/memory/__stack_pointer local.get $1 i32.const 1 @@ -3570,12 +3098,6 @@ local.get $8 i64.load offset=8 i64.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=16 local.get $2 local.get $6 local.get $7 @@ -3620,136 +3142,328 @@ i32.load offset=20 i32.store offset=16 global.get $~lib/memory/__stack_pointer - i32.const 20 + i32.const 12 i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/map/Map<~lib/string/String,u64>#set (param $0 i32) (param $1 i32) (param $2 i64) - (local $3 i32) - (local $4 i32) - (local $5 i32) + (func $~lib/rt/__visit_members (param $0 i32) + (local $1 i32) + (local $2 i32) + block $invalid + block $~lib/map/Map<~lib/string/String,u64> + block $~lib/arraybuffer/ArrayBufferView + block $~lib/string/String + block $~lib/arraybuffer/ArrayBuffer + local.get $0 + i32.const 8 + i32.sub + i32.load + br_table $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $~lib/map/Map<~lib/string/String,u64> $invalid + 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 + i32.load + call $~lib/rt/itcms/__visit + local.get $0 + i32.load offset=8 + local.tee $2 + local.tee $1 + local.get $0 + i32.load offset=16 + i32.const 24 + i32.mul + i32.add + local.set $0 + loop $while-continue|0 + local.get $0 + local.get $1 + i32.gt_u + if + local.get $1 + i32.load offset=16 + i32.const 1 + i32.and + i32.eqz + if + local.get $1 + i32.load + call $~lib/rt/itcms/__visit + end + local.get $1 + i32.const 24 + i32.add + local.set $1 + br $while-continue|0 + end + end + local.get $2 + call $~lib/rt/itcms/__visit + return + end + unreachable + ) + (func $~start + global.get $~started + if + return + end + i32.const 1 + global.set $~started + call $start:std-wasi/console + ) + (func $~stack_check global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 6404 + i32.lt_s + if + i32.const 22816 + i32.const 22864 + i32.const 1 + i32.const 1 + call $~lib/wasi/index/abort + unreachable + end + ) + (func $~lib/console/console.assert (param $0 i32) (param $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 - i64.const 0 - i64.store + i32.const 0 + i32.store + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 1088 + i32.store + i32.const 2 + i32.const 1088 + call $~lib/process/writeString + i32.const 2 + local.get $1 + call $~lib/process/writeString + global.get $~lib/memory/__stack_pointer + i32.const 4352 + i32.store + i32.const 2 + i32.const 4352 + call $~lib/process/writeString + end + 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) + 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 offset=8 + i32.store + i32.const 1 + local.get $0 + call $~lib/process/writeString global.get $~lib/memory/__stack_pointer - local.get $1 + i32.const 4352 i32.store + i32.const 1 + i32.const 4352 + call $~lib/process/writeString global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $~lib/util/hash/hashStr - local.set $4 + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/map/Map<~lib/string/String,u64>#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) global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 + i32.const 0 + i32.store local.get $0 - local.get $1 - local.get $4 - call $~lib/map/Map<~lib/string/String,u64>#find - local.tee $3 - if - local.get $3 - local.get $2 - i64.store offset=8 - else - local.get $0 - i32.load offset=16 - local.get $0 - i32.load offset=12 - i32.eq + i32.load + local.get $2 + local.get $0 + i32.load offset=4 + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $5 + loop $while-continue|0 + local.get $5 if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - local.get $0 - i32.load offset=20 - local.get $0 - i32.load offset=12 - i32.const 3 - i32.mul - i32.const 4 - i32.div_s - i32.lt_s + local.get $5 + i32.load offset=16 + local.tee $6 + i32.const 1 + i32.and if (result i32) - local.get $0 - i32.load offset=4 + i32.const 0 else - local.get $0 - i32.load offset=4 - i32.const 1 - i32.shl - i32.const 1 - i32.or + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.load + local.tee $4 + i32.store + block $__inlined_func$~lib/string/String.__eq (result i32) + i32.const 1 + local.get $1 + local.get $4 + i32.eq + br_if $__inlined_func$~lib/string/String.__eq + drop + i32.const 0 + local.get $1 + i32.eqz + i32.const 1 + local.get $4 + select + br_if $__inlined_func$~lib/string/String.__eq + drop + i32.const 0 + local.get $4 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u + local.tee $3 + local.get $1 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u + i32.ne + br_if $__inlined_func$~lib/string/String.__eq + drop + block $__inlined_func$~lib/util/string/compareImpl (result i32) + local.get $4 + i32.const 7 + i32.and + local.get $1 + local.tee $2 + i32.const 7 + i32.and + i32.or + i32.eqz + i32.const 0 + local.get $3 + local.tee $0 + i32.const 4 + i32.ge_u + select + if + loop $do-continue|0 + local.get $4 + i64.load + local.get $2 + i64.load + i64.eq + if + local.get $4 + i32.const 8 + i32.add + local.set $4 + local.get $2 + i32.const 8 + i32.add + local.set $2 + local.get $0 + i32.const 4 + i32.sub + local.tee $0 + i32.const 4 + i32.ge_u + br_if $do-continue|0 + end + end + end + loop $while-continue|1 + local.get $0 + local.tee $3 + i32.const 1 + i32.sub + local.set $0 + local.get $3 + if + local.get $4 + i32.load16_u + local.tee $3 + local.get $2 + i32.load16_u + local.tee $7 + i32.ne + if + local.get $3 + local.get $7 + i32.sub + br $__inlined_func$~lib/util/string/compareImpl + end + local.get $4 + i32.const 2 + i32.add + local.set $4 + local.get $2 + i32.const 2 + i32.add + local.set $2 + br $while-continue|1 + end + end + i32.const 0 + end + i32.eqz + end end - call $~lib/map/Map<~lib/string/String,u64>#rehash + if + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $5 + return + end + local.get $6 + i32.const -2 + i32.and + local.set $5 + br $while-continue|0 end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.load offset=8 - local.tee $3 - i32.store - 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 24 - i32.mul - i32.add - local.tee $3 - local.get $1 - i32.store - local.get $0 - local.get $1 - i32.const 1 - call $~lib/rt/itcms/__link - local.get $3 - local.get $2 - i64.store offset=8 - local.get $0 - local.get $0 - i32.load offset=20 - i32.const 1 - i32.add - i32.store offset=20 - local.get $3 - local.get $0 - i32.load - 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=16 - local.get $0 - local.get $3 - i32.store 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/console/console.time (param $0 i32) (local $1 i32) @@ -3765,9 +3479,6 @@ global.get $~lib/console/timers local.tee $1 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<~lib/string/String,u64>#has @@ -3777,19 +3488,16 @@ i32.store offset=4 i32.const 1 i32.const 5264 - call $~lib/process/WritableStream#write<~lib/string/String> - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 + call $~lib/process/writeString i32.const 1 local.get $0 - call $~lib/process/WritableStream#write<~lib/string/String> + call $~lib/process/writeString global.get $~lib/memory/__stack_pointer i32.const 5328 i32.store offset=4 i32.const 1 i32.const 5328 - call $~lib/process/WritableStream#write<~lib/string/String> + call $~lib/process/writeString global.get $~lib/memory/__stack_pointer i32.const 8 i32.add @@ -3800,9 +3508,6 @@ global.get $~lib/console/timers local.tee $1 i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 local.get $1 local.get $0 call $~lib/process/process.hrtime @@ -3830,32 +3535,6 @@ global.get $~lib/console/timers local.tee $1 i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - 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 - 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 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=12 local.get $1 local.get $0 local.get $0 @@ -3874,10 +3553,6 @@ local.get $1 i64.load offset=8 local.set $2 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer call $~lib/process/process.hrtime local.get $2 i64.sub @@ -3888,184 +3563,74 @@ local.get $2 call $~lib/util/number/utoa64 local.tee $1 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 i32.store offset=4 i32.const 1 local.get $0 - call $~lib/process/WritableStream#write<~lib/string/String> + call $~lib/process/writeString global.get $~lib/memory/__stack_pointer i32.const 6016 - i32.store offset=4 + i32.store offset=8 i32.const 1 i32.const 6016 - call $~lib/process/WritableStream#write<~lib/string/String> - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 + call $~lib/process/writeString i32.const 1 local.get $1 - call $~lib/process/WritableStream#write<~lib/string/String> + call $~lib/process/writeString global.get $~lib/memory/__stack_pointer i32.const 6048 - i32.store offset=4 + i32.store offset=8 i32.const 1 i32.const 6048 - call $~lib/process/WritableStream#write<~lib/string/String> + call $~lib/process/writeString global.get $~lib/memory/__stack_pointer i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/console/console.timeLog (param $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 - call $~stack_check - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - global.get $~lib/console/timers - local.tee $1 - i32.store - local.get $1 - global.get $~lib/memory/__stack_pointer - local.get $0 - local.tee $1 - i32.store offset=4 - local.get $1 - call $~lib/map/Map<~lib/string/String,u64>#has - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 5424 - i32.store offset=4 - i32.const 1 - i32.const 5424 - call $~lib/process/WritableStream#write<~lib/string/String> - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - i32.const 1 - local.get $1 - call $~lib/process/WritableStream#write<~lib/string/String> - global.get $~lib/memory/__stack_pointer - i32.const 5504 - i32.store offset=4 - i32.const 1 - i32.const 5504 - call $~lib/process/WritableStream#write<~lib/string/String> - 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 $1 - i32.store - local.get $1 - call $~lib/console/timeLogImpl - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/map/Map<~lib/string/String,u64>#delete (param $0 i32) (param $1 i32) - (local $2 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 - 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 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=12 - local.get $0 - local.get $1 - local.get $1 - call $~lib/util/hash/hashStr - call $~lib/map/Map<~lib/string/String,u64>#find - local.tee $1 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer - return - end - local.get $1 - local.get $1 - i32.load offset=16 - i32.const 1 - i32.or - i32.store offset=16 - local.get $0 - local.get $0 - i32.load offset=20 - i32.const 1 - i32.sub - i32.store offset=20 - local.get $0 - i32.load offset=4 - i32.const 1 - i32.shr_u - local.tee $2 - i32.const 1 - i32.add - i32.const 4 - local.get $0 - i32.load offset=20 + i32.add + 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 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 + global.get $~lib/console/timers local.tee $1 + i32.store local.get $1 - i32.const 4 - i32.lt_u - select - i32.ge_u - if (result i32) - local.get $0 - i32.load offset=20 - 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 + local.get $0 + call $~lib/map/Map<~lib/string/String,u64>#has + i32.eqz if global.get $~lib/memory/__stack_pointer + i32.const 5424 + i32.store offset=4 + i32.const 1 + i32.const 5424 + call $~lib/process/writeString + i32.const 1 local.get $0 - i32.store - local.get $0 - local.get $2 - call $~lib/map/Map<~lib/string/String,u64>#rehash + call $~lib/process/writeString + global.get $~lib/memory/__stack_pointer + i32.const 5504 + i32.store offset=4 + i32.const 1 + i32.const 5504 + call $~lib/process/writeString + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + return end + local.get $0 + call $~lib/console/timeLogImpl global.get $~lib/memory/__stack_pointer - i32.const 16 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer ) @@ -4086,11 +3651,6 @@ i32.store local.get $1 local.get $0 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 call $~lib/map/Map<~lib/string/String,u64>#has i32.eqz if @@ -4099,40 +3659,82 @@ i32.store offset=4 i32.const 1 i32.const 5424 - call $~lib/process/WritableStream#write<~lib/string/String> - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 + call $~lib/process/writeString i32.const 1 local.get $0 - call $~lib/process/WritableStream#write<~lib/string/String> + call $~lib/process/writeString global.get $~lib/memory/__stack_pointer i32.const 6080 i32.store offset=4 i32.const 1 i32.const 6080 - call $~lib/process/WritableStream#write<~lib/string/String> + call $~lib/process/writeString 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 $1 - i32.store - local.get $1 + local.get $0 call $~lib/console/timeLogImpl global.get $~lib/memory/__stack_pointer global.get $~lib/console/timers local.tee $1 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<~lib/string/String,u64>#delete + local.get $0 + call $~lib/util/hash/hashStr + call $~lib/map/Map<~lib/string/String,u64>#find + local.tee $0 + if + local.get $0 + local.get $0 + i32.load offset=16 + i32.const 1 + i32.or + i32.store offset=16 + local.get $1 + local.get $1 + i32.load offset=20 + i32.const 1 + i32.sub + i32.store offset=20 + local.get $1 + i32.load offset=4 + i32.const 1 + i32.shr_u + local.tee $2 + i32.const 1 + i32.add + i32.const 4 + local.get $1 + i32.load offset=20 + local.tee $0 + local.get $0 + i32.const 4 + i32.lt_u + select + i32.ge_u + if (result i32) + local.get $1 + i32.load offset=20 + local.get $1 + 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 + local.get $2 + call $~lib/map/Map<~lib/string/String,u64>#rehash + end + end global.get $~lib/memory/__stack_pointer i32.const 8 i32.add @@ -4181,19 +3783,16 @@ i32.store i32.const 1 i32.const 4512 - call $~lib/process/WritableStream#write<~lib/string/String> - global.get $~lib/memory/__stack_pointer - i32.const 4464 - i32.store + call $~lib/process/writeString i32.const 1 i32.const 4464 - call $~lib/process/WritableStream#write<~lib/string/String> + call $~lib/process/writeString global.get $~lib/memory/__stack_pointer i32.const 4352 i32.store i32.const 1 i32.const 4352 - call $~lib/process/WritableStream#write<~lib/string/String> + call $~lib/process/writeString global.get $~lib/memory/__stack_pointer i32.const 4 i32.add @@ -4214,19 +3813,16 @@ i32.store i32.const 1 i32.const 4608 - call $~lib/process/WritableStream#write<~lib/string/String> - global.get $~lib/memory/__stack_pointer - i32.const 4560 - i32.store + call $~lib/process/writeString i32.const 1 i32.const 4560 - call $~lib/process/WritableStream#write<~lib/string/String> + call $~lib/process/writeString global.get $~lib/memory/__stack_pointer i32.const 4352 i32.store i32.const 1 i32.const 4352 - call $~lib/process/WritableStream#write<~lib/string/String> + call $~lib/process/writeString global.get $~lib/memory/__stack_pointer i32.const 4 i32.add @@ -4247,19 +3843,16 @@ i32.store i32.const 1 i32.const 4688 - call $~lib/process/WritableStream#write<~lib/string/String> - global.get $~lib/memory/__stack_pointer - i32.const 4640 - i32.store + call $~lib/process/writeString i32.const 1 i32.const 4640 - call $~lib/process/WritableStream#write<~lib/string/String> + call $~lib/process/writeString global.get $~lib/memory/__stack_pointer i32.const 4352 i32.store i32.const 1 i32.const 4352 - call $~lib/process/WritableStream#write<~lib/string/String> + call $~lib/process/writeString global.get $~lib/memory/__stack_pointer i32.const 4 i32.add @@ -4280,19 +3873,16 @@ i32.store i32.const 1 i32.const 4784 - call $~lib/process/WritableStream#write<~lib/string/String> - global.get $~lib/memory/__stack_pointer - i32.const 4736 - i32.store + call $~lib/process/writeString i32.const 1 i32.const 4736 - call $~lib/process/WritableStream#write<~lib/string/String> + call $~lib/process/writeString global.get $~lib/memory/__stack_pointer i32.const 4352 i32.store i32.const 1 i32.const 4352 - call $~lib/process/WritableStream#write<~lib/string/String> + call $~lib/process/writeString global.get $~lib/memory/__stack_pointer i32.const 4 i32.add @@ -4442,6 +4032,114 @@ global.set $~lib/memory/__stack_pointer local.get $1 ) + (func $~lib/map/Map<~lib/string/String,u64>#set (param $0 i32) (param $1 i32) (param $2 i64) + (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 + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + local.get $1 + local.get $1 + call $~lib/util/hash/hashStr + local.tee $4 + call $~lib/map/Map<~lib/string/String,u64>#find + local.tee $3 + if + local.get $3 + local.get $2 + i64.store offset=8 + else + local.get $0 + i32.load offset=16 + local.get $0 + i32.load offset=12 + i32.eq + if + local.get $0 + local.get $0 + i32.load offset=20 + 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 $0 + i32.load offset=4 + else + local.get $0 + i32.load offset=4 + i32.const 1 + i32.shl + i32.const 1 + i32.or + end + call $~lib/map/Map<~lib/string/String,u64>#rehash + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.load offset=8 + local.tee $3 + i32.store + 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 24 + i32.mul + i32.add + local.tee $3 + local.get $1 + i32.store + local.get $0 + local.get $1 + i32.const 1 + call $~lib/rt/itcms/__link + local.get $3 + local.get $2 + i64.store offset=8 + local.get $0 + local.get $0 + i32.load offset=20 + i32.const 1 + i32.add + i32.store offset=20 + local.get $3 + local.get $0 + i32.load + 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=16 + local.get $0 + local.get $3 + i32.store + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) (func $~lib/util/number/utoa64 (param $0 i64) (result i32) (local $1 i32) (local $2 i32) diff --git a/tests/compiler/std-wasi/console.untouched.wat b/tests/compiler/std-wasi/console.untouched.wat index a25988e8c7..fda62e635f 100644 --- a/tests/compiler/std-wasi/console.untouched.wat +++ b/tests/compiler/std-wasi/console.untouched.wat @@ -463,6 +463,162 @@ local.get $1 i32.store offset=4 ) + (func $~lib/wasi/index/abort (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) + i32.const 0 + i32.const 12 + call $~lib/bindings/wasi_snapshot_preview1/iovec#set:buf + i32.const 12 + local.set $4 + local.get $4 + i64.const 9071471065260641 + i64.store + local.get $4 + i32.const 7 + i32.add + local.set $4 + local.get $0 + i32.const 0 + i32.ne + if + local.get $4 + local.get $0 + local.get $0 + call $~lib/string/String#get:length + local.get $4 + i32.const 0 + call $~lib/string/String.UTF8.encodeUnsafe + i32.add + local.set $4 + end + local.get $4 + i32.const 544106784 + i32.store + local.get $4 + i32.const 4 + i32.add + local.set $4 + local.get $1 + i32.const 0 + i32.ne + if + local.get $4 + local.get $1 + local.get $1 + call $~lib/string/String#get:length + local.get $4 + i32.const 0 + call $~lib/string/String.UTF8.encodeUnsafe + i32.add + local.set $4 + end + local.get $4 + local.tee $5 + i32.const 1 + i32.add + local.set $4 + local.get $5 + i32.const 40 + i32.store8 + local.get $2 + call $~lib/util/number/decimalCount32 + local.set $6 + local.get $4 + local.get $6 + i32.add + local.set $4 + loop $do-continue|0 + local.get $2 + i32.const 10 + i32.div_u + local.set $5 + local.get $4 + i32.const 1 + i32.sub + local.tee $4 + i32.const 48 + local.get $2 + i32.const 10 + i32.rem_u + i32.add + i32.store8 + local.get $5 + local.set $2 + local.get $2 + local.set $7 + local.get $7 + br_if $do-continue|0 + end + local.get $4 + local.get $6 + i32.add + local.set $4 + local.get $4 + local.tee $7 + i32.const 1 + i32.add + local.set $4 + local.get $7 + i32.const 58 + i32.store8 + local.get $3 + call $~lib/util/number/decimalCount32 + local.set $6 + local.get $4 + local.get $6 + i32.add + local.set $4 + loop $do-continue|1 + local.get $3 + i32.const 10 + i32.div_u + local.set $7 + local.get $4 + i32.const 1 + i32.sub + local.tee $4 + i32.const 48 + local.get $3 + i32.const 10 + i32.rem_u + i32.add + i32.store8 + local.get $7 + local.set $3 + local.get $3 + local.set $8 + local.get $8 + br_if $do-continue|1 + end + local.get $4 + local.get $6 + i32.add + local.set $4 + local.get $4 + i32.const 2601 + i32.store16 + local.get $4 + i32.const 2 + i32.add + local.set $4 + i32.const 0 + local.get $4 + i32.const 12 + i32.sub + call $~lib/bindings/wasi_snapshot_preview1/iovec#set:buf_len + i32.const 2 + i32.const 0 + i32.const 1 + i32.const 8 + call $~lib/bindings/wasi_snapshot_preview1/fd_write + drop + i32.const 255 + call $~lib/bindings/wasi_snapshot_preview1/proc_exit + ) (func $~lib/bindings/wasi_snapshot_preview1/errnoToString (param $0 i32) (result i32) (local $1 i32) block $break|0 @@ -2649,192 +2805,401 @@ call $~lib/rt/tlsf/checkUsedBlock call $~lib/rt/tlsf/freeBlock ) - (func $~lib/rt/itcms/Object#set:nextWithColor (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - i32.store offset=4 - ) - (func $~lib/rt/itcms/Object#set:prev (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - i32.store offset=8 - ) - (func $~lib/rt/itcms/initLazy (param $0 i32) (result i32) - local.get $0 - local.get $0 - call $~lib/rt/itcms/Object#set:nextWithColor - local.get $0 - local.get $0 - call $~lib/rt/itcms/Object#set:prev - local.get $0 - ) - (func $~lib/rt/itcms/Object#get:next (param $0 i32) (result i32) - local.get $0 - i32.load offset=4 - i32.const 3 - i32.const -1 - i32.xor - i32.and - ) - (func $~lib/rt/itcms/Object#get:color (param $0 i32) (result i32) - local.get $0 - i32.load offset=4 - i32.const 3 - i32.and - ) - (func $~lib/rt/itcms/visitRoots (param $0 i32) - (local $1 i32) + (func $~lib/process/writeString (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) - local.get $0 - call $~lib/rt/__visit_globals - global.get $~lib/rt/itcms/pinSpace - local.set $1 - local.get $1 - call $~lib/rt/itcms/Object#get:next + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + i32.const -1 local.set $2 - loop $while-continue|0 - local.get $2 - local.get $1 - i32.ne - local.set $3 - local.get $3 - if - i32.const 1 - drop - local.get $2 - call $~lib/rt/itcms/Object#get:color - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 3856 - i32.const 159 - i32.const 16 - call $~lib/wasi/index/abort - unreachable - end - local.get $2 - i32.const 20 - i32.add - local.get $0 - call $~lib/rt/__visit_members - local.get $2 - call $~lib/rt/itcms/Object#get:next - local.set $2 - br $while-continue|0 - end - end - ) - (func $~lib/rt/itcms/Object#set:color (param $0 i32) (param $1 i32) - local.get $0 - local.get $0 - i32.load offset=4 - i32.const 3 i32.const -1 - i32.xor - i32.and - local.get $1 - i32.or - call $~lib/rt/itcms/Object#set:nextWithColor - ) - (func $~lib/rt/itcms/Object#set:next (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - local.get $0 - i32.load offset=4 - i32.const 3 - i32.and - i32.or - call $~lib/rt/itcms/Object#set:nextWithColor - ) - (func $~lib/rt/itcms/Object#unlink (param $0 i32) - (local $1 i32) - (local $2 i32) - local.get $0 - call $~lib/rt/itcms/Object#get:next - local.set $1 - local.get $1 - i32.const 0 - i32.eq - if - i32.const 1 - drop - local.get $0 - i32.load offset=8 - i32.const 0 - i32.eq - if (result i32) + local.set $3 + i32.const -1 + local.set $4 + block $break|0 + block $case4|0 + block $case3|0 + block $case2|0 + block $case1|0 + block $case0|0 + local.get $1 + call $~lib/string/String#get:length + local.set $5 + local.get $5 + i32.const 4 + i32.eq + br_if $case0|0 + local.get $5 + i32.const 3 + i32.eq + br_if $case1|0 + local.get $5 + i32.const 2 + i32.eq + br_if $case2|0 + local.get $5 + i32.const 1 + i32.eq + br_if $case3|0 + local.get $5 + i32.const 0 + i32.eq + br_if $case4|0 + br $break|0 + end + local.get $1 + i32.load16_u offset=6 + local.set $4 + local.get $4 + i32.const 128 + i32.ge_s + if + br $break|0 + end + end + local.get $1 + i32.load16_u offset=4 + local.set $3 + local.get $3 + i32.const 128 + i32.ge_s + if + br $break|0 + end + end + local.get $1 + i32.load16_u offset=2 + local.set $2 + local.get $2 + i32.const 128 + i32.ge_s + if + br $break|0 + end + end + local.get $1 + i32.load16_u + local.set $5 + local.get $5 + i32.const 128 + i32.ge_s + if + br $break|0 + end + global.get $~lib/process/iobuf + global.get $~lib/process/iobuf + i32.const 2 + i32.const 4 + i32.mul + i32.add + i32.store + global.get $~lib/process/iobuf + i32.const 1 + local.get $2 + i32.const -1 + i32.ne + i32.add + local.get $3 + i32.const -1 + i32.ne + i32.add + local.get $4 + i32.const -1 + i32.ne + i32.add + i32.store offset=4 + global.get $~lib/process/iobuf + local.get $5 + local.get $2 + i32.const 8 + i32.shl + i32.or + local.get $3 + i32.const 16 + i32.shl + i32.or + local.get $4 + i32.const 24 + i32.shl + i32.or + i32.store offset=8 local.get $0 - global.get $~lib/memory/__heap_base - i32.lt_u - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 3856 - i32.const 127 - i32.const 18 - call $~lib/wasi/index/abort - unreachable + global.get $~lib/process/iobuf + i32.const 1 + global.get $~lib/process/iobuf + i32.const 3 + i32.const 4 + i32.mul + i32.add + call $~lib/bindings/wasi_snapshot_preview1/fd_write + local.set $6 + local.get $6 + i32.const 65535 + i32.and + if + local.get $6 + call $~lib/bindings/wasi_snapshot_preview1/errnoToString + i32.const 3136 + i32.const 178 + i32.const 16 + call $~lib/wasi/index/abort + unreachable + end end return end - local.get $0 - i32.load offset=8 - local.set $2 - i32.const 1 - drop - local.get $2 + local.get $1 + i32.const 0 + call $~lib/string/String.UTF8.byteLength + local.set $7 + local.get $7 + call $~lib/rt/tlsf/__alloc + local.set $8 + local.get $1 + local.get $1 + call $~lib/string/String#get:length + local.get $8 + i32.const 0 + call $~lib/string/String.UTF8.encodeUnsafe + local.get $7 + i32.eq i32.eqz if i32.const 0 - i32.const 3856 - i32.const 131 - i32.const 16 + i32.const 3136 + i32.const 184 + i32.const 3 call $~lib/wasi/index/abort unreachable end - local.get $1 - local.get $2 - call $~lib/rt/itcms/Object#set:prev - local.get $2 - local.get $1 - call $~lib/rt/itcms/Object#set:next - ) - (func $~lib/rt/__typeinfo (param $0 i32) (result i32) - (local $1 i32) - global.get $~lib/rt/__rtti_base - local.set $1 + global.get $~lib/process/iobuf + local.get $8 + i32.store + global.get $~lib/process/iobuf + local.get $7 + i32.store offset=4 local.get $0 - local.get $1 - i32.load - i32.gt_u + global.get $~lib/process/iobuf + i32.const 1 + global.get $~lib/process/iobuf + i32.const 2 + i32.const 4 + i32.mul + i32.add + call $~lib/bindings/wasi_snapshot_preview1/fd_write + local.set $9 + local.get $8 + call $~lib/rt/tlsf/__free + local.get $9 + i32.const 65535 + i32.and if - i32.const 3984 - i32.const 4048 - i32.const 22 - i32.const 28 + local.get $9 + call $~lib/bindings/wasi_snapshot_preview1/errnoToString + i32.const 3136 + i32.const 189 + i32.const 12 call $~lib/wasi/index/abort unreachable end + ) + (func $~lib/process/WritableStream#write<~lib/string/String> (param $0 i32) (param $1 i32) + i32.const 1 + drop + local.get $0 local.get $1 - i32.const 4 - i32.add + call $~lib/process/writeString + ) + (func $~lib/rt/itcms/Object#set:nextWithColor (param $0 i32) (param $1 i32) local.get $0 - i32.const 8 - i32.mul - i32.add - i32.load + local.get $1 + i32.store offset=4 ) - (func $~lib/rt/itcms/Object#get:isPointerfree (param $0 i32) (result i32) - (local $1 i32) + (func $~lib/rt/itcms/Object#set:prev (param $0 i32) (param $1 i32) local.get $0 - i32.load offset=12 - local.set $1 + local.get $1 + i32.store offset=8 + ) + (func $~lib/rt/itcms/initLazy (param $0 i32) (result i32) + local.get $0 + local.get $0 + call $~lib/rt/itcms/Object#set:nextWithColor + local.get $0 + local.get $0 + call $~lib/rt/itcms/Object#set:prev + local.get $0 + ) + (func $~lib/rt/itcms/Object#get:next (param $0 i32) (result i32) + local.get $0 + i32.load offset=4 + i32.const 3 + i32.const -1 + i32.xor + i32.and + ) + (func $~lib/rt/itcms/Object#get:color (param $0 i32) (result i32) + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + ) + (func $~lib/rt/itcms/visitRoots (param $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + local.get $0 + call $~lib/rt/__visit_globals + global.get $~lib/rt/itcms/pinSpace + local.set $1 + local.get $1 + call $~lib/rt/itcms/Object#get:next + local.set $2 + loop $while-continue|0 + local.get $2 + local.get $1 + i32.ne + local.set $3 + local.get $3 + if + i32.const 1 + drop + local.get $2 + call $~lib/rt/itcms/Object#get:color + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 3856 + i32.const 159 + i32.const 16 + call $~lib/wasi/index/abort + unreachable + end + local.get $2 + i32.const 20 + i32.add + local.get $0 + call $~lib/rt/__visit_members + local.get $2 + call $~lib/rt/itcms/Object#get:next + local.set $2 + br $while-continue|0 + end + end + ) + (func $~lib/rt/itcms/Object#set:color (param $0 i32) (param $1 i32) + local.get $0 + local.get $0 + i32.load offset=4 + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.get $1 + i32.or + call $~lib/rt/itcms/Object#set:nextWithColor + ) + (func $~lib/rt/itcms/Object#set:next (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + i32.or + call $~lib/rt/itcms/Object#set:nextWithColor + ) + (func $~lib/rt/itcms/Object#unlink (param $0 i32) + (local $1 i32) + (local $2 i32) + local.get $0 + call $~lib/rt/itcms/Object#get:next + local.set $1 + local.get $1 + i32.const 0 + i32.eq + if + i32.const 1 + drop + local.get $0 + i32.load offset=8 + i32.const 0 + i32.eq + if (result i32) + local.get $0 + global.get $~lib/memory/__heap_base + i32.lt_u + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 3856 + i32.const 127 + i32.const 18 + call $~lib/wasi/index/abort + unreachable + end + return + end + local.get $0 + i32.load offset=8 + local.set $2 + i32.const 1 + drop + local.get $2 + i32.eqz + if + i32.const 0 + i32.const 3856 + i32.const 131 + i32.const 16 + call $~lib/wasi/index/abort + unreachable + end + local.get $1 + local.get $2 + call $~lib/rt/itcms/Object#set:prev + local.get $2 + local.get $1 + call $~lib/rt/itcms/Object#set:next + ) + (func $~lib/rt/__typeinfo (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/rt/__rtti_base + local.set $1 + local.get $0 + local.get $1 + i32.load + i32.gt_u + if + i32.const 3984 + i32.const 4048 + i32.const 22 + i32.const 28 + call $~lib/wasi/index/abort + unreachable + end + local.get $1 + i32.const 4 + i32.add + local.get $0 + i32.const 8 + i32.mul + i32.add + i32.load + ) + (func $~lib/rt/itcms/Object#get:isPointerfree (param $0 i32) (result i32) + (local $1 i32) + local.get $0 + i32.load offset=12 + local.set $1 local.get $1 i32.const 1 i32.le_u @@ -3613,6 +3978,50 @@ local.get $1 i32.store offset=20 ) + (func $~lib/util/hash/hashStr (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + i32.const -2128831035 + local.set $1 + local.get $0 + i32.const 0 + i32.ne + if + i32.const 0 + local.set $2 + local.get $0 + call $~lib/string/String#get:length + i32.const 1 + i32.shl + local.set $3 + loop $for-loop|0 + local.get $2 + local.get $3 + i32.lt_u + local.set $4 + local.get $4 + if + local.get $1 + local.get $0 + local.get $2 + i32.add + i32.load8_u + i32.xor + i32.const 16777619 + i32.mul + local.set $1 + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|0 + end + end + end + local.get $1 + ) (func $~lib/util/string/compareImpl (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) (result i32) (local $5 i32) (local $6 i32) @@ -3720,118 +4129,356 @@ end i32.const 0 ) - (func $~lib/process/process.hrtime (result i64) - (local $0 i32) - i32.const 1 - i64.const 0 - global.get $~lib/process/iobuf - call $~lib/bindings/wasi_snapshot_preview1/clock_time_get - local.set $0 + (func $~lib/string/String.__eq (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) local.get $0 - i32.const 65535 - i32.and + local.get $1 + i32.eq if - local.get $0 - call $~lib/bindings/wasi_snapshot_preview1/errnoToString - i32.const 3136 - i32.const 59 - i32.const 14 - call $~lib/wasi/index/abort - unreachable + i32.const 1 + return end - global.get $~lib/process/iobuf - i64.load - ) - (func $~lib/map/MapEntry<~lib/string/String,u64>#set:value (param $0 i32) (param $1 i64) - local.get $0 - local.get $1 - i64.store offset=8 - ) - (func $~lib/map/MapEntry<~lib/string/String,u64>#set:key (param $0 i32) (param $1 i32) local.get $0 - local.get $1 - i32.store + i32.const 0 + i32.eq + if (result i32) + i32.const 1 + else + local.get $1 + i32.const 0 + i32.eq + end + if + i32.const 0 + return + end + local.get $0 + call $~lib/string/String#get:length + local.set $2 + local.get $2 + local.get $1 + call $~lib/string/String#get:length + i32.ne + if + i32.const 0 + return + end + local.get $0 + i32.const 0 + local.get $1 + i32.const 0 + local.get $2 + call $~lib/util/string/compareImpl + i32.eqz + ) + (func $~lib/map/Map<~lib/string/String,u64>#has (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + local.get $0 + local.get $1 + block $~lib/util/hash/HASH<~lib/string/String>|inlined.0 (result i32) + local.get $1 + local.set $2 + i32.const 1 + drop + local.get $2 + call $~lib/util/hash/hashStr + br $~lib/util/hash/HASH<~lib/string/String>|inlined.0 + end + call $~lib/map/Map<~lib/string/String,u64>#find + i32.const 0 + i32.ne + ) + (func $~lib/process/process.hrtime (result i64) + (local $0 i32) + i32.const 1 + i64.const 0 + global.get $~lib/process/iobuf + call $~lib/bindings/wasi_snapshot_preview1/clock_time_get + local.set $0 + local.get $0 + i32.const 65535 + i32.and + if + local.get $0 + call $~lib/bindings/wasi_snapshot_preview1/errnoToString + i32.const 3136 + i32.const 59 + i32.const 14 + call $~lib/wasi/index/abort + unreachable + end + global.get $~lib/process/iobuf + i64.load + ) + (func $~lib/map/MapEntry<~lib/string/String,u64>#set:value (param $0 i32) (param $1 i64) + local.get $0 + local.get $1 + i64.store offset=8 + ) + (func $~lib/map/MapEntry<~lib/string/String,u64>#set:key (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store ) (func $~lib/map/MapEntry<~lib/string/String,u64>#set:taggedNext (param $0 i32) (param $1 i32) local.get $0 local.get $1 i32.store offset=16 ) - (func $~lib/util/number/utoa32_dec_lut (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/map/Map<~lib/string/String,u64>#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 i64) - (local $9 i64) + (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 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 $1 + i32.const 1 + i32.add + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 0 + local.get $2 + i32.const 4 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $3 + i32.store + local.get $2 + i32.const 8 + i32.mul + i32.const 3 + i32.div_s + local.set $4 + global.get $~lib/memory/__stack_pointer + i32.const 0 + local.get $4 + i32.const 24 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $5 + i32.store offset=4 + local.get $0 + i32.load offset=8 + local.set $6 + local.get $6 + local.get $0 + i32.load offset=16 + i32.const 24 + i32.mul + i32.add + local.set $7 + local.get $5 + local.set $8 loop $while-continue|0 - local.get $1 - i32.const 10000 - i32.ge_u - local.set $3 - local.get $3 + local.get $6 + local.get $7 + i32.ne + local.set $9 + local.get $9 if - local.get $1 - i32.const 10000 - i32.div_u - local.set $4 - local.get $1 - i32.const 10000 - i32.rem_u - local.set $5 - local.get $4 - local.set $1 - local.get $5 - i32.const 100 - i32.div_u - local.set $6 - local.get $5 - i32.const 100 - i32.rem_u - local.set $7 - i32.const 4876 local.get $6 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $8 - i32.const 4876 - local.get $7 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $9 - local.get $2 - i32.const 4 - i32.sub - local.set $2 - local.get $0 - local.get $2 + local.set $10 + local.get $10 + i32.load offset=16 i32.const 1 - i32.shl + i32.and + i32.eqz + if + local.get $8 + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $10 + i32.load + local.tee $12 + i32.store offset=8 + local.get $11 + local.get $12 + call $~lib/map/MapEntry<~lib/string/String,u64>#set:key + local.get $11 + local.get $10 + i64.load offset=8 + call $~lib/map/MapEntry<~lib/string/String,u64>#set:value + block $~lib/util/hash/HASH<~lib/string/String>|inlined.2 (result i32) + local.get $12 + local.set $13 + i32.const 1 + drop + local.get $13 + call $~lib/util/hash/hashStr + br $~lib/util/hash/HASH<~lib/string/String>|inlined.2 + end + local.get $1 + i32.and + local.set $13 + local.get $3 + local.get $13 + i32.const 4 + i32.mul + i32.add + local.set $14 + local.get $11 + local.get $14 + i32.load + call $~lib/map/MapEntry<~lib/string/String,u64>#set:taggedNext + local.get $14 + local.get $8 + i32.store + local.get $8 + i32.const 24 + i32.add + local.set $8 + end + local.get $6 + i32.const 24 i32.add - local.get $8 - local.get $9 - i64.const 32 - i64.shl - i64.or - i64.store + local.set $6 br $while-continue|0 end end + local.get $0 + local.get $3 + call $~lib/map/Map<~lib/string/String,u64>#set:buckets + local.get $0 local.get $1 - i32.const 100 - i32.ge_u - if - local.get $1 - i32.const 100 - i32.div_u - local.set $3 + call $~lib/map/Map<~lib/string/String,u64>#set:bucketsMask + local.get $0 + local.get $5 + call $~lib/map/Map<~lib/string/String,u64>#set:entries + local.get $0 + local.get $4 + call $~lib/map/Map<~lib/string/String,u64>#set:entriesCapacity + local.get $0 + local.get $0 + i32.load offset=20 + call $~lib/map/Map<~lib/string/String,u64>#set:entriesOffset + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/map/Map<~lib/string/String,u64>#get (param $0 i32) (param $1 i32) (result i64) + (local $2 i32) + (local $3 i32) + local.get $0 + local.get $1 + block $~lib/util/hash/HASH<~lib/string/String>|inlined.3 (result i32) + local.get $1 + local.set $2 + i32.const 1 + drop + local.get $2 + call $~lib/util/hash/hashStr + br $~lib/util/hash/HASH<~lib/string/String>|inlined.3 + end + call $~lib/map/Map<~lib/string/String,u64>#find + local.set $3 + local.get $3 + i32.eqz + if + i32.const 4560 + i32.const 4624 + i32.const 105 + i32.const 17 + call $~lib/wasi/index/abort + unreachable + end + local.get $3 + i64.load offset=8 + ) + (func $~lib/util/number/utoa32_dec_lut (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 i64) + (local $9 i64) + (local $10 i32) + (local $11 i32) + loop $while-continue|0 + local.get $1 + i32.const 10000 + i32.ge_u + local.set $3 + local.get $3 + if + local.get $1 + i32.const 10000 + i32.div_u + local.set $4 + local.get $1 + i32.const 10000 + i32.rem_u + local.set $5 + local.get $4 + local.set $1 + local.get $5 + i32.const 100 + i32.div_u + local.set $6 + local.get $5 + i32.const 100 + i32.rem_u + local.set $7 + i32.const 4876 + local.get $6 + i32.const 2 + i32.shl + i32.add + i64.load32_u + local.set $8 + i32.const 4876 + local.get $7 + i32.const 2 + i32.shl + i32.add + i64.load32_u + local.set $9 + local.get $2 + i32.const 4 + i32.sub + local.set $2 + local.get $0 + local.get $2 + i32.const 1 + i32.shl + i32.add + local.get $8 + local.get $9 + 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 $1 + i32.const 100 + i32.div_u + local.set $3 local.get $1 i32.const 100 i32.rem_u @@ -4306,1462 +4953,536 @@ local.get $1 call $~lib/util/number/utoa64 ) - (func $~lib/rt/__visit_globals (param $0 i32) - (local $1 i32) - global.get $~lib/console/timers - local.tee $1 - if - local.get $1 - local.get $0 - call $~lib/rt/itcms/__visit - end - i32.const 3984 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 4128 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 4560 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 3264 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 5296 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 6352 - 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 - i32.load - local.tee $2 - if - local.get $2 - local.get $1 - call $~lib/rt/itcms/__visit - end - ) - (func $~lib/map/Map<~lib/string/String,u64>#__visit (param $0 i32) (param $1 i32) + (func $~lib/map/Map<~lib/string/String,u64>#delete (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.load local.get $1 - call $~lib/rt/itcms/__visit - local.get $0 - i32.load offset=8 - local.set $2 - i32.const 1 - if (result i32) + block $~lib/util/hash/HASH<~lib/string/String>|inlined.4 (result i32) + local.get $1 + local.set $2 i32.const 1 - else - i32.const 0 + drop + local.get $2 + call $~lib/util/hash/hashStr + br $~lib/util/hash/HASH<~lib/string/String>|inlined.4 end - drop - local.get $2 + call $~lib/map/Map<~lib/string/String,u64>#find local.set $3 local.get $3 - local.get $0 + i32.eqz + if + i32.const 0 + return + end + local.get $3 + local.get $3 i32.load offset=16 - i32.const 24 - i32.mul - i32.add + i32.const 1 + i32.or + call $~lib/map/MapEntry<~lib/string/String,u64>#set:taggedNext + local.get $0 + local.get $0 + i32.load offset=20 + i32.const 1 + i32.sub + call $~lib/map/Map<~lib/string/String,u64>#set:entriesCount + local.get $0 + i32.load offset=4 + i32.const 1 + i32.shr_u local.set $4 - loop $while-continue|0 - local.get $3 - local.get $4 - i32.lt_u - local.set $5 - local.get $5 - if - local.get $3 - local.set $6 - local.get $6 - i32.load offset=16 - i32.const 1 - i32.and - i32.eqz - if - i32.const 1 - drop - local.get $6 - i32.load - local.set $7 - i32.const 0 - drop - local.get $7 - local.get $1 - call $~lib/rt/itcms/__visit - i32.const 0 - drop - end - local.get $3 - i32.const 24 - i32.add - local.set $3 - br $while-continue|0 - end - end - local.get $2 - local.get $1 - call $~lib/rt/itcms/__visit - ) - (func $~lib/map/Map<~lib/string/String,u64>~visit (param $0 i32) (param $1 i32) + local.get $4 + i32.const 1 + i32.add + i32.const 4 + local.tee $2 local.get $0 - local.get $1 - call $~lib/map/Map<~lib/string/String,u64>#__visit - ) - (func $~lib/rt/__visit_members (param $0 i32) (param $1 i32) - block $invalid - block $~lib/map/Map<~lib/string/String,u64> - block $~lib/arraybuffer/ArrayBufferView - block $~lib/string/String - block $~lib/arraybuffer/ArrayBuffer - local.get $0 - i32.const 8 - i32.sub - i32.load - br_table $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $~lib/map/Map<~lib/string/String,u64> $invalid - 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/map/Map<~lib/string/String,u64>~visit - return - end - unreachable - ) - (func $~start - global.get $~started - if - return - end - i32.const 1 - global.set $~started - call $start:std-wasi/console - ) - (func $~stack_check - global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__data_end - i32.lt_s - if - i32.const 23248 - i32.const 23296 - i32.const 1 - i32.const 1 - call $~lib/wasi/index/abort - unreachable - end - ) - (func $~lib/wasi/index/abort (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 $9 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 12 - call $~lib/bindings/wasi_snapshot_preview1/iovec#set:buf - i32.const 12 - local.set $4 - local.get $4 - i64.const 9071471065260641 - i64.store - local.get $4 - i32.const 7 - i32.add - local.set $4 - local.get $0 - i32.const 0 - i32.ne - if - local.get $4 + i32.load offset=20 + local.tee $5 + local.get $2 + local.get $5 + i32.gt_u + select + i32.ge_u + if (result i32) local.get $0 + i32.load offset=20 local.get $0 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store - local.get $9 - call $~lib/string/String#get:length - local.get $4 + i32.load offset=12 + i32.const 3 + i32.mul + i32.const 4 + i32.div_s + i32.lt_s + else i32.const 0 - call $~lib/string/String.UTF8.encodeUnsafe - i32.add - local.set $4 end - local.get $4 - i32.const 544106784 - i32.store - local.get $4 - i32.const 4 - i32.add - local.set $4 - local.get $1 - i32.const 0 - i32.ne if - local.get $4 - local.get $1 - local.get $1 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store - local.get $9 - call $~lib/string/String#get:length - local.get $4 - i32.const 0 - call $~lib/string/String.UTF8.encodeUnsafe - i32.add - local.set $4 - end - local.get $4 - local.tee $5 - i32.const 1 - i32.add - local.set $4 - local.get $5 - i32.const 40 - i32.store8 - local.get $2 - call $~lib/util/number/decimalCount32 - local.set $6 - local.get $4 - local.get $6 - i32.add - local.set $4 - loop $do-continue|0 - local.get $2 - i32.const 10 - i32.div_u - local.set $5 - local.get $4 - i32.const 1 - i32.sub - local.tee $4 - i32.const 48 - local.get $2 - i32.const 10 - i32.rem_u - i32.add - i32.store8 - local.get $5 - local.set $2 - local.get $2 - local.set $7 - local.get $7 - br_if $do-continue|0 - end - local.get $4 - local.get $6 - i32.add - local.set $4 - local.get $4 - local.tee $7 - i32.const 1 - i32.add - local.set $4 - local.get $7 - i32.const 58 - i32.store8 - local.get $3 - call $~lib/util/number/decimalCount32 - local.set $6 - local.get $4 - local.get $6 - i32.add - local.set $4 - loop $do-continue|1 - local.get $3 - i32.const 10 - i32.div_u - local.set $7 - local.get $4 - i32.const 1 - i32.sub - local.tee $4 - i32.const 48 - local.get $3 - i32.const 10 - i32.rem_u - i32.add - i32.store8 - local.get $7 - local.set $3 - local.get $3 - local.set $8 - local.get $8 - br_if $do-continue|1 - end - local.get $4 - local.get $6 - i32.add - local.set $4 - local.get $4 - i32.const 2601 - i32.store16 - local.get $4 - i32.const 2 - i32.add - local.set $4 - i32.const 0 - local.get $4 - i32.const 12 - i32.sub - call $~lib/bindings/wasi_snapshot_preview1/iovec#set:buf_len - i32.const 2 - i32.const 0 - i32.const 1 - i32.const 8 - call $~lib/bindings/wasi_snapshot_preview1/fd_write - drop - i32.const 255 - call $~lib/bindings/wasi_snapshot_preview1/proc_exit - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/process/writeString (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 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 - local.set $2 - i32.const -1 - local.set $3 - i32.const -1 - local.set $4 - block $break|0 - block $case4|0 - block $case3|0 - block $case2|0 - block $case1|0 - block $case0|0 - local.get $1 - 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 $5 - local.get $5 - i32.const 4 - i32.eq - br_if $case0|0 - local.get $5 - i32.const 3 - i32.eq - br_if $case1|0 - local.get $5 - i32.const 2 - i32.eq - br_if $case2|0 - local.get $5 - i32.const 1 - i32.eq - br_if $case3|0 - local.get $5 - i32.const 0 - i32.eq - br_if $case4|0 - br $break|0 - end - local.get $1 - i32.load16_u offset=6 - local.set $4 - local.get $4 - i32.const 128 - i32.ge_s - if - br $break|0 - end - end - local.get $1 - i32.load16_u offset=4 - local.set $3 - local.get $3 - i32.const 128 - i32.ge_s - if - br $break|0 - end - end - local.get $1 - i32.load16_u offset=2 - local.set $2 - local.get $2 - i32.const 128 - i32.ge_s - if - br $break|0 - end - end - local.get $1 - i32.load16_u - local.set $5 - local.get $5 - i32.const 128 - i32.ge_s - if - br $break|0 - end - global.get $~lib/process/iobuf - global.get $~lib/process/iobuf - i32.const 2 - i32.const 4 - i32.mul - i32.add - i32.store - global.get $~lib/process/iobuf - i32.const 1 - local.get $2 - i32.const -1 - i32.ne - i32.add - local.get $3 - i32.const -1 - i32.ne - i32.add - local.get $4 - i32.const -1 - i32.ne - i32.add - i32.store offset=4 - global.get $~lib/process/iobuf - local.get $5 - local.get $2 - i32.const 8 - i32.shl - i32.or - local.get $3 - i32.const 16 - i32.shl - i32.or - local.get $4 - i32.const 24 - i32.shl - i32.or - i32.store offset=8 - local.get $0 - global.get $~lib/process/iobuf - i32.const 1 - global.get $~lib/process/iobuf - i32.const 3 - i32.const 4 - i32.mul - i32.add - call $~lib/bindings/wasi_snapshot_preview1/fd_write - local.set $6 - local.get $6 - i32.const 65535 - i32.and - if - local.get $6 - call $~lib/bindings/wasi_snapshot_preview1/errnoToString - i32.const 3136 - i32.const 178 - i32.const 16 - call $~lib/wasi/index/abort - unreachable - end - end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - return - end - local.get $1 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store - local.get $10 - i32.const 0 - call $~lib/string/String.UTF8.byteLength - local.set $7 - local.get $7 - call $~lib/rt/tlsf/__alloc - local.set $8 - local.get $1 - local.get $1 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store - local.get $10 - call $~lib/string/String#get:length - local.get $8 - i32.const 0 - call $~lib/string/String.UTF8.encodeUnsafe - local.get $7 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 3136 - i32.const 184 - i32.const 3 - call $~lib/wasi/index/abort - unreachable - end - global.get $~lib/process/iobuf - local.get $8 - i32.store - global.get $~lib/process/iobuf - local.get $7 - i32.store offset=4 - local.get $0 - global.get $~lib/process/iobuf - i32.const 1 - global.get $~lib/process/iobuf - i32.const 2 - i32.const 4 - i32.mul - i32.add - call $~lib/bindings/wasi_snapshot_preview1/fd_write - local.set $9 - local.get $8 - call $~lib/rt/tlsf/__free - local.get $9 - i32.const 65535 - i32.and - if - local.get $9 - call $~lib/bindings/wasi_snapshot_preview1/errnoToString - i32.const 3136 - i32.const 189 - i32.const 12 - call $~lib/wasi/index/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/process/WritableStream#write<~lib/string/String> (param $0 i32) (param $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 - i32.const 1 - drop - local.get $0 - local.get $1 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $2 - call $~lib/process/writeString - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/console/console.assert (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 - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - local.get $0 - i32.eqz - if - global.get $~lib/process/process.stderr - local.set $2 - local.get $2 - i32.const 64 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store - local.get $3 - call $~lib/process/WritableStream#write<~lib/string/String> - local.get $2 - local.get $1 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store - local.get $3 - call $~lib/process/WritableStream#write<~lib/string/String> - local.get $2 - i32.const 3328 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store - local.get $3 - call $~lib/process/WritableStream#write<~lib/string/String> - end - 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) - (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 - global.get $~lib/process/process.stdout - local.set $1 - local.get $1 - local.get $0 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $2 - call $~lib/process/WritableStream#write<~lib/string/String> - local.get $1 - i32.const 3328 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $2 - call $~lib/process/WritableStream#write<~lib/string/String> - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/console/console.debug (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 - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/process/process.stdout - local.set $1 - local.get $1 - i32.const 3488 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $2 - call $~lib/process/WritableStream#write<~lib/string/String> - local.get $1 - local.get $0 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $2 - call $~lib/process/WritableStream#write<~lib/string/String> - local.get $1 - i32.const 3328 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $2 - call $~lib/process/WritableStream#write<~lib/string/String> - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/console/console.info (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 - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/process/process.stdout - local.set $1 - local.get $1 - i32.const 3584 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $2 - call $~lib/process/WritableStream#write<~lib/string/String> - local.get $1 - local.get $0 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $2 - call $~lib/process/WritableStream#write<~lib/string/String> - local.get $1 - i32.const 3328 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $2 - call $~lib/process/WritableStream#write<~lib/string/String> - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/console/console.warn (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 - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/process/process.stdout - local.set $1 - local.get $1 - i32.const 3664 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $2 - call $~lib/process/WritableStream#write<~lib/string/String> - local.get $1 - local.get $0 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $2 - call $~lib/process/WritableStream#write<~lib/string/String> - local.get $1 - i32.const 3328 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $2 - call $~lib/process/WritableStream#write<~lib/string/String> - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/console/console.error (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 - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/process/process.stdout - local.set $1 - local.get $1 - i32.const 3760 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $2 - call $~lib/process/WritableStream#write<~lib/string/String> - local.get $1 - local.get $0 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $2 - call $~lib/process/WritableStream#write<~lib/string/String> - local.get $1 - i32.const 3328 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $2 - call $~lib/process/WritableStream#write<~lib/string/String> - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer + local.get $0 + local.get $4 + call $~lib/map/Map<~lib/string/String,u64>#rehash + end + i32.const 1 ) - (func $~lib/util/hash/hashStr (param $0 i32) (result i32) + (func $~lib/rt/__visit_globals (param $0 i32) (local $1 i32) + global.get $~lib/console/timers + local.tee $1 + if + local.get $1 + local.get $0 + call $~lib/rt/itcms/__visit + end + i32.const 3984 + local.get $0 + call $~lib/rt/itcms/__visit + i32.const 4128 + local.get $0 + call $~lib/rt/itcms/__visit + i32.const 4560 + local.get $0 + call $~lib/rt/itcms/__visit + i32.const 3264 + local.get $0 + call $~lib/rt/itcms/__visit + i32.const 5296 + local.get $0 + call $~lib/rt/itcms/__visit + i32.const 6352 + 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 + i32.load + local.tee $2 + if + local.get $2 + local.get $1 + call $~lib/rt/itcms/__visit + end + ) + (func $~lib/map/Map<~lib/string/String,u64>#__visit (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 - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - i32.const -2128831035 - local.set $1 + (local $6 i32) + (local $7 i32) local.get $0 - i32.const 0 - i32.ne - if + i32.load + local.get $1 + call $~lib/rt/itcms/__visit + local.get $0 + i32.load offset=8 + local.set $2 + i32.const 1 + if (result i32) + i32.const 1 + else i32.const 0 - local.set $2 - local.get $0 + end + drop + local.get $2 + local.set $3 + local.get $3 + local.get $0 + i32.load offset=16 + i32.const 24 + i32.mul + i32.add + local.set $4 + loop $while-continue|0 + local.get $3 + local.get $4 + i32.lt_u local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store local.get $5 - call $~lib/string/String#get:length - i32.const 1 - i32.shl - local.set $3 - loop $for-loop|0 - local.get $2 + if local.get $3 - i32.lt_u - local.set $4 - local.get $4 + local.set $6 + local.get $6 + i32.load offset=16 + i32.const 1 + i32.and + i32.eqz if - local.get $1 - local.get $0 - local.get $2 - i32.add - i32.load8_u - i32.xor - i32.const 16777619 - i32.mul - local.set $1 - local.get $2 i32.const 1 - i32.add - local.set $2 - br $for-loop|0 + drop + local.get $6 + i32.load + local.set $7 + i32.const 0 + drop + local.get $7 + local.get $1 + call $~lib/rt/itcms/__visit + i32.const 0 + drop end + local.get $3 + i32.const 24 + i32.add + local.set $3 + br $while-continue|0 end end + local.get $2 local.get $1 - local.set $5 + call $~lib/rt/itcms/__visit + ) + (func $~lib/map/Map<~lib/string/String,u64>~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/map/Map<~lib/string/String,u64>#__visit + ) + (func $~lib/rt/__visit_members (param $0 i32) (param $1 i32) + block $invalid + block $~lib/map/Map<~lib/string/String,u64> + block $~lib/arraybuffer/ArrayBufferView + block $~lib/string/String + block $~lib/arraybuffer/ArrayBuffer + local.get $0 + i32.const 8 + i32.sub + i32.load + br_table $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $~lib/map/Map<~lib/string/String,u64> $invalid + 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/map/Map<~lib/string/String,u64>~visit + return + end + unreachable + ) + (func $~start + global.get $~started + if + return + end + i32.const 1 + global.set $~started + call $start:std-wasi/console + ) + (func $~stack_check global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $5 + global.get $~lib/memory/__data_end + i32.lt_s + if + i32.const 23248 + i32.const 23296 + i32.const 1 + i32.const 1 + call $~lib/wasi/index/abort + unreachable + end ) - (func $~lib/string/String.__eq (param $0 i32) (param $1 i32) (result i32) + (func $~lib/console/console.assert (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 call $~stack_check global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - local.get $0 - local.get $1 - 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 $0 i32.const 0 - i32.eq - if (result i32) - i32.const 1 - else - local.get $1 - i32.const 0 - i32.eq - end + i32.store + local.get $0 + i32.eqz if - i32.const 0 + global.get $~lib/process/process.stderr + local.set $2 + local.get $2 + i32.const 64 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 $0 - 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 $2 - local.get $2 - local.get $1 - 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.get $3 + i32.store + local.get $3 + call $~lib/process/WritableStream#write<~lib/string/String> + local.get $2 + local.get $1 + call $~lib/process/WritableStream#write<~lib/string/String> + local.get $2 + i32.const 3328 local.set $3 global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer local.get $3 - return + i32.store + local.get $3 + call $~lib/process/WritableStream#write<~lib/string/String> end - local.get $0 - local.set $3 global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store - local.get $3 + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/console/console.log (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 + call $~stack_check + global.get $~lib/memory/__stack_pointer i32.const 0 + i32.store + global.get $~lib/process/process.stdout + local.set $1 local.get $1 - local.set $3 + local.get $0 + call $~lib/process/WritableStream#write<~lib/string/String> + local.get $1 + i32.const 3328 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - i32.const 0 local.get $2 - call $~lib/util/string/compareImpl - i32.eqz - local.set $3 + i32.store + local.get $2 + call $~lib/process/WritableStream#write<~lib/string/String> 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/map/Map<~lib/string/String,u64>#find (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) + (func $~lib/console/console.debug (param $0 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 call $~stack_check global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - local.get $0 - i32.load + i32.const 0 + i32.store + global.get $~lib/process/process.stdout + local.set $1 + local.get $1 + i32.const 3488 + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store local.get $2 + call $~lib/process/WritableStream#write<~lib/string/String> + local.get $1 local.get $0 - i32.load offset=4 - i32.and - i32.const 4 - i32.mul - i32.add - i32.load - local.set $3 - loop $while-continue|0 - local.get $3 - local.set $4 - local.get $4 - if - local.get $3 - i32.load offset=16 - local.set $5 - local.get $5 - i32.const 1 - i32.and - i32.eqz - if (result i32) - local.get $3 - i32.load - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - local.get $1 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - call $~lib/string/String.__eq - else - i32.const 0 - end - if - local.get $3 - 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 - local.get $5 - i32.const 1 - i32.const -1 - i32.xor - i32.and - local.set $3 - br $while-continue|0 - end - end - i32.const 0 - local.set $6 + call $~lib/process/WritableStream#write<~lib/string/String> + local.get $1 + i32.const 3328 + local.set $2 global.get $~lib/memory/__stack_pointer - i32.const 8 + local.get $2 + i32.store + local.get $2 + call $~lib/process/WritableStream#write<~lib/string/String> + global.get $~lib/memory/__stack_pointer + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $6 ) - (func $~lib/map/Map<~lib/string/String,u64>#has (param $0 i32) (param $1 i32) (result i32) + (func $~lib/console/console.info (param $0 i32) + (local $1 i32) (local $2 i32) - (local $3 i32) global.get $~lib/memory/__stack_pointer - i32.const 16 + i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=8 - local.get $0 - local.set $3 + i32.const 0 + i32.store + global.get $~lib/process/process.stdout + local.set $1 + local.get $1 + i32.const 3584 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $2 i32.store - local.get $3 + local.get $2 + call $~lib/process/WritableStream#write<~lib/string/String> local.get $1 - local.set $3 + local.get $0 + call $~lib/process/WritableStream#write<~lib/string/String> + local.get $1 + i32.const 3328 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - block $~lib/util/hash/HASH<~lib/string/String>|inlined.0 (result i32) - global.get $~lib/memory/__stack_pointer - local.get $1 - local.tee $2 - i32.store offset=8 - i32.const 1 - drop - local.get $2 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=12 - local.get $3 - call $~lib/util/hash/hashStr - br $~lib/util/hash/HASH<~lib/string/String>|inlined.0 - end - call $~lib/map/Map<~lib/string/String,u64>#find - i32.const 0 - i32.ne - local.set $3 + local.get $2 + i32.store + local.get $2 + call $~lib/process/WritableStream#write<~lib/string/String> global.get $~lib/memory/__stack_pointer - i32.const 16 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $3 ) - (func $~lib/map/Map<~lib/string/String,u64>#rehash (param $0 i32) (param $1 i32) + (func $~lib/console/console.warn (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 + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/process/process.stdout + local.set $1 + local.get $1 + i32.const 3664 + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $2 + call $~lib/process/WritableStream#write<~lib/string/String> + local.get $1 + local.get $0 + call $~lib/process/WritableStream#write<~lib/string/String> + local.get $1 + i32.const 3328 + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $2 + call $~lib/process/WritableStream#write<~lib/string/String> + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/console/console.error (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) - (local $12 i32) - (local $13 i32) - (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 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 - global.get $~lib/memory/__stack_pointer i32.const 0 - i32.store offset=16 + i32.store + global.get $~lib/process/process.stdout + local.set $1 local.get $1 - i32.const 1 - i32.add + i32.const 3760 local.set $2 global.get $~lib/memory/__stack_pointer - i32.const 0 local.get $2 - i32.const 4 - i32.mul - call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $3 i32.store local.get $2 - i32.const 8 - i32.mul - i32.const 3 - i32.div_s - local.set $4 - global.get $~lib/memory/__stack_pointer - i32.const 0 - local.get $4 - i32.const 24 - i32.mul - call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $5 - i32.store offset=4 - local.get $0 - i32.load offset=8 - local.set $6 - local.get $6 - local.get $0 - i32.load offset=16 - i32.const 24 - i32.mul - i32.add - local.set $7 - local.get $5 - local.set $8 - loop $while-continue|0 - local.get $6 - local.get $7 - i32.ne - local.set $9 - local.get $9 - if - local.get $6 - local.set $10 - local.get $10 - i32.load offset=16 - i32.const 1 - i32.and - i32.eqz - if - local.get $8 - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.load - local.tee $12 - i32.store offset=8 - local.get $11 - local.get $12 - call $~lib/map/MapEntry<~lib/string/String,u64>#set:key - local.get $11 - local.get $10 - i64.load offset=8 - call $~lib/map/MapEntry<~lib/string/String,u64>#set:value - block $~lib/util/hash/HASH<~lib/string/String>|inlined.2 (result i32) - global.get $~lib/memory/__stack_pointer - local.get $12 - local.tee $13 - i32.store offset=12 - i32.const 1 - drop - local.get $13 - local.set $15 - global.get $~lib/memory/__stack_pointer - local.get $15 - i32.store offset=16 - local.get $15 - call $~lib/util/hash/hashStr - br $~lib/util/hash/HASH<~lib/string/String>|inlined.2 - end - local.get $1 - i32.and - local.set $13 - local.get $3 - local.get $13 - i32.const 4 - i32.mul - i32.add - local.set $14 - local.get $11 - local.get $14 - i32.load - call $~lib/map/MapEntry<~lib/string/String,u64>#set:taggedNext - local.get $14 - local.get $8 - i32.store - local.get $8 - i32.const 24 - i32.add - local.set $8 - end - local.get $6 - i32.const 24 - i32.add - local.set $6 - br $while-continue|0 - end - end - local.get $0 - local.get $3 - call $~lib/map/Map<~lib/string/String,u64>#set:buckets - local.get $0 + call $~lib/process/WritableStream#write<~lib/string/String> local.get $1 - call $~lib/map/Map<~lib/string/String,u64>#set:bucketsMask - local.get $0 - local.get $5 - call $~lib/map/Map<~lib/string/String,u64>#set:entries - local.get $0 - local.get $4 - call $~lib/map/Map<~lib/string/String,u64>#set:entriesCapacity - local.get $0 local.get $0 - i32.load offset=20 - call $~lib/map/Map<~lib/string/String,u64>#set:entriesOffset + call $~lib/process/WritableStream#write<~lib/string/String> + local.get $1 + i32.const 3328 + local.set $2 global.get $~lib/memory/__stack_pointer - i32.const 20 + local.get $2 + i32.store + local.get $2 + call $~lib/process/WritableStream#write<~lib/string/String> + global.get $~lib/memory/__stack_pointer + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/map/Map<~lib/string/String,u64>#set (param $0 i32) (param $1 i32) (param $2 i64) (result i32) + (func $~lib/map/Map<~lib/string/String,u64>#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) 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 - block $~lib/util/hash/HASH<~lib/string/String>|inlined.1 (result i32) - global.get $~lib/memory/__stack_pointer - local.get $1 - local.tee $3 - i32.store - i32.const 1 - drop - local.get $3 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - call $~lib/util/hash/hashStr - br $~lib/util/hash/HASH<~lib/string/String>|inlined.1 - end - local.set $4 + i32.store local.get $0 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - local.get $1 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=8 - local.get $7 - local.get $4 - call $~lib/map/Map<~lib/string/String,u64>#find - local.set $5 - local.get $5 - if - local.get $5 - local.get $2 - call $~lib/map/MapEntry<~lib/string/String,u64>#set:value - i32.const 0 - drop - else - local.get $0 - i32.load offset=16 - local.get $0 - i32.load offset=12 - i32.eq + i32.load + local.get $2 + local.get $0 + i32.load offset=4 + i32.and + i32.const 4 + i32.mul + i32.add + i32.load + local.set $3 + loop $while-continue|0 + local.get $3 + local.set $4 + local.get $4 if - local.get $0 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - local.get $0 - i32.load offset=20 - local.get $0 - i32.load offset=12 - i32.const 3 - i32.mul - i32.const 4 - i32.div_s - i32.lt_s + local.get $3 + i32.load offset=16 + local.set $5 + local.get $5 + i32.const 1 + i32.and + i32.eqz if (result i32) - local.get $0 - i32.load offset=4 + local.get $3 + i32.load + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store + local.get $6 + local.get $1 + call $~lib/string/String.__eq else - local.get $0 - i32.load offset=4 - i32.const 1 - i32.shl - i32.const 1 - i32.or + i32.const 0 + end + if + local.get $3 + local.set $6 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $6 + return end - call $~lib/map/Map<~lib/string/String,u64>#rehash + local.get $5 + i32.const 1 + i32.const -1 + i32.xor + i32.and + local.set $3 + br $while-continue|0 end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.load offset=8 - local.tee $3 - i32.store - local.get $3 - local.get $0 - local.get $0 - i32.load offset=16 - local.tee $6 - i32.const 1 - i32.add - call $~lib/map/Map<~lib/string/String,u64>#set:entriesOffset - local.get $6 - i32.const 24 - i32.mul - i32.add - local.set $5 - local.get $5 - local.get $1 - call $~lib/map/MapEntry<~lib/string/String,u64>#set:key - i32.const 1 - drop - local.get $0 - local.get $1 - i32.const 1 - call $~lib/rt/itcms/__link - local.get $5 - local.get $2 - call $~lib/map/MapEntry<~lib/string/String,u64>#set:value - i32.const 0 - drop - local.get $0 - local.get $0 - i32.load offset=20 - i32.const 1 - i32.add - call $~lib/map/Map<~lib/string/String,u64>#set:entriesCount - local.get $0 - i32.load - local.get $4 - local.get $0 - i32.load offset=4 - i32.and - i32.const 4 - i32.mul - i32.add - local.set $6 - local.get $5 - local.get $6 - i32.load - call $~lib/map/MapEntry<~lib/string/String,u64>#set:taggedNext - local.get $6 - local.get $5 - i32.store end - local.get $0 - local.set $7 + i32.const 0 + local.set $6 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $7 + local.get $6 ) (func $~lib/console/console.time (param $0 i32) (local $1 i32) @@ -5783,11 +5504,6 @@ i32.store local.get $2 local.get $0 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 call $~lib/map/Map<~lib/string/String,u64>#has if local.get $1 @@ -5800,11 +5516,6 @@ call $~lib/process/WritableStream#write<~lib/string/String> local.get $1 local.get $0 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 call $~lib/process/WritableStream#write<~lib/string/String> local.get $1 i32.const 4304 @@ -5827,11 +5538,6 @@ i32.store local.get $2 local.get $0 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 call $~lib/process/process.hrtime call $~lib/map/Map<~lib/string/String,u64>#set drop @@ -5840,71 +5546,6 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/map/Map<~lib/string/String,u64>#get (param $0 i32) (param $1 i32) (result i64) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i64) - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=8 - local.get $0 - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store - local.get $4 - local.get $1 - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - block $~lib/util/hash/HASH<~lib/string/String>|inlined.3 (result i32) - global.get $~lib/memory/__stack_pointer - local.get $1 - local.tee $2 - i32.store offset=8 - i32.const 1 - drop - local.get $2 - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=12 - local.get $4 - call $~lib/util/hash/hashStr - br $~lib/util/hash/HASH<~lib/string/String>|inlined.3 - end - call $~lib/map/Map<~lib/string/String,u64>#find - local.set $3 - local.get $3 - i32.eqz - if - i32.const 4560 - i32.const 4624 - i32.const 105 - i32.const 17 - call $~lib/wasi/index/abort - unreachable - end - local.get $3 - i64.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 $5 - ) (func $~lib/console/timeLogImpl (param $0 i32) (local $1 i64) (local $2 i64) @@ -5931,11 +5572,6 @@ i32.store local.get $7 local.get $0 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 call $~lib/map/Map<~lib/string/String,u64>#get local.set $1 call $~lib/process/process.hrtime @@ -5953,39 +5589,29 @@ i32.const 10 call $~lib/number/U64#toString local.tee $5 - i32.store offset=8 + i32.store offset=4 global.get $~lib/process/process.stdout local.set $6 local.get $6 local.get $0 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 call $~lib/process/WritableStream#write<~lib/string/String> local.get $6 i32.const 6448 local.set $7 global.get $~lib/memory/__stack_pointer local.get $7 - i32.store offset=4 + i32.store offset=8 local.get $7 call $~lib/process/WritableStream#write<~lib/string/String> local.get $6 local.get $5 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 call $~lib/process/WritableStream#write<~lib/string/String> local.get $6 i32.const 6480 local.set $7 global.get $~lib/memory/__stack_pointer local.get $7 - i32.store offset=4 + i32.store offset=8 local.get $7 call $~lib/process/WritableStream#write<~lib/string/String> global.get $~lib/memory/__stack_pointer @@ -6009,179 +5635,44 @@ global.get $~lib/console/timers local.set $2 global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $2 - local.get $0 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - call $~lib/map/Map<~lib/string/String,u64>#has - i32.eqz - if - local.get $1 - i32.const 4400 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - call $~lib/process/WritableStream#write<~lib/string/String> - local.get $1 - local.get $0 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - call $~lib/process/WritableStream#write<~lib/string/String> - local.get $1 - i32.const 4480 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - call $~lib/process/WritableStream#write<~lib/string/String> - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - return - end - local.get $0 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $2 - call $~lib/console/timeLogImpl - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/map/Map<~lib/string/String,u64>#delete (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 - call $~stack_check - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=8 - local.get $0 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - local.get $1 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - block $~lib/util/hash/HASH<~lib/string/String>|inlined.4 (result i32) - global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $2 + local.get $0 + call $~lib/map/Map<~lib/string/String,u64>#has + i32.eqz + if local.get $1 - local.tee $2 - i32.store offset=8 - i32.const 1 - drop + i32.const 4400 + local.set $2 + global.get $~lib/memory/__stack_pointer local.get $2 - local.set $6 + i32.store offset=4 + local.get $2 + call $~lib/process/WritableStream#write<~lib/string/String> + local.get $1 + local.get $0 + call $~lib/process/WritableStream#write<~lib/string/String> + local.get $1 + i32.const 4480 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=12 - local.get $6 - call $~lib/util/hash/hashStr - br $~lib/util/hash/HASH<~lib/string/String>|inlined.4 - end - call $~lib/map/Map<~lib/string/String,u64>#find - local.set $3 - local.get $3 - i32.eqz - if - i32.const 0 - local.set $6 + local.get $2 + i32.store offset=4 + local.get $2 + call $~lib/process/WritableStream#write<~lib/string/String> global.get $~lib/memory/__stack_pointer - i32.const 16 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $6 return end - local.get $3 - local.get $3 - i32.load offset=16 - i32.const 1 - i32.or - call $~lib/map/MapEntry<~lib/string/String,u64>#set:taggedNext - local.get $0 - local.get $0 - i32.load offset=20 - i32.const 1 - i32.sub - call $~lib/map/Map<~lib/string/String,u64>#set:entriesCount - local.get $0 - i32.load offset=4 - i32.const 1 - i32.shr_u - local.set $4 - local.get $4 - i32.const 1 - i32.add - i32.const 4 - local.tee $2 local.get $0 - i32.load offset=20 - local.tee $5 - local.get $2 - local.get $5 - i32.gt_u - select - i32.ge_u - if (result i32) - local.get $0 - i32.load offset=20 - 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 $0 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - local.get $4 - call $~lib/map/Map<~lib/string/String,u64>#rehash - end - i32.const 1 - local.set $6 + call $~lib/console/timeLogImpl global.get $~lib/memory/__stack_pointer - i32.const 16 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $6 ) (func $~lib/console/console.timeEnd (param $0 i32) (local $1 i32) @@ -6203,11 +5694,6 @@ i32.store local.get $2 local.get $0 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 call $~lib/map/Map<~lib/string/String,u64>#has i32.eqz if @@ -6221,11 +5707,6 @@ call $~lib/process/WritableStream#write<~lib/string/String> local.get $1 local.get $0 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 call $~lib/process/WritableStream#write<~lib/string/String> local.get $1 i32.const 6512 @@ -6242,11 +5723,6 @@ return end local.get $0 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $2 call $~lib/console/timeLogImpl global.get $~lib/console/timers local.set $2 @@ -6255,11 +5731,6 @@ i32.store local.get $2 local.get $0 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 call $~lib/map/Map<~lib/string/String,u64>#delete drop global.get $~lib/memory/__stack_pointer @@ -6518,6 +5989,136 @@ global.set $~lib/memory/__stack_pointer local.get $1 ) + (func $~lib/map/Map<~lib/string/String,u64>#set (param $0 i32) (param $1 i32) (param $2 i64) (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 + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + block $~lib/util/hash/HASH<~lib/string/String>|inlined.1 (result i32) + local.get $1 + local.set $3 + i32.const 1 + drop + local.get $3 + call $~lib/util/hash/hashStr + br $~lib/util/hash/HASH<~lib/string/String>|inlined.1 + end + local.set $4 + local.get $0 + local.get $1 + local.get $4 + call $~lib/map/Map<~lib/string/String,u64>#find + local.set $5 + local.get $5 + if + local.get $5 + local.get $2 + call $~lib/map/MapEntry<~lib/string/String,u64>#set:value + i32.const 0 + drop + else + local.get $0 + i32.load offset=16 + local.get $0 + i32.load offset=12 + i32.eq + if + local.get $0 + local.get $0 + i32.load offset=20 + 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 $0 + i32.load offset=4 + else + local.get $0 + i32.load offset=4 + i32.const 1 + i32.shl + i32.const 1 + i32.or + end + call $~lib/map/Map<~lib/string/String,u64>#rehash + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.load offset=8 + local.tee $3 + i32.store + local.get $3 + local.get $0 + local.get $0 + i32.load offset=16 + local.tee $6 + i32.const 1 + i32.add + call $~lib/map/Map<~lib/string/String,u64>#set:entriesOffset + local.get $6 + i32.const 24 + i32.mul + i32.add + local.set $5 + local.get $5 + local.get $1 + call $~lib/map/MapEntry<~lib/string/String,u64>#set:key + i32.const 1 + drop + local.get $0 + local.get $1 + i32.const 1 + call $~lib/rt/itcms/__link + local.get $5 + local.get $2 + call $~lib/map/MapEntry<~lib/string/String,u64>#set:value + i32.const 0 + drop + local.get $0 + local.get $0 + i32.load offset=20 + i32.const 1 + i32.add + call $~lib/map/Map<~lib/string/String,u64>#set:entriesCount + local.get $0 + i32.load + local.get $4 + local.get $0 + i32.load offset=4 + i32.and + i32.const 4 + i32.mul + i32.add + local.set $6 + local.get $5 + local.get $6 + i32.load + call $~lib/map/MapEntry<~lib/string/String,u64>#set:taggedNext + local.get $6 + local.get $5 + i32.store + end + local.get $0 + local.set $7 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $7 + ) (func $~lib/util/number/utoa64 (param $0 i64) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) diff --git a/tests/compiler/std-wasi/crypto.optimized.wat b/tests/compiler/std-wasi/crypto.optimized.wat index ab521cd2fc..7681b4e240 100644 --- a/tests/compiler/std-wasi/crypto.optimized.wat +++ b/tests/compiler/std-wasi/crypto.optimized.wat @@ -1,8 +1,8 @@ (module (type $i32_=>_none (func (param i32))) - (type $i32_=>_i32 (func (param i32) (result i32))) (type $i32_i32_=>_i32 (func (param i32 i32) (result i32))) (type $i32_i32_=>_none (func (param i32 i32))) + (type $i32_=>_i32 (func (param i32) (result i32))) (type $none_=>_none (func)) (type $i32_i32_i32_=>_none (func (param i32 i32 i32))) (type $i32_i32_i32_=>_i32 (func (param i32 i32 i32) (result i32))) @@ -443,6 +443,131 @@ i32.lt_u select ) + (func $~lib/wasi/index/abort (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) + (local $4 i32) + i32.const 0 + i32.const 12 + i32.store + i32.const 12 + i64.const 9071471065260641 + i64.store + local.get $0 + if (result i32) + local.get $0 + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u + i32.const 19 + call $~lib/string/String.UTF8.encodeUnsafe + i32.const 19 + i32.add + else + i32.const 19 + end + local.tee $4 + i32.const 544106784 + i32.store + local.get $4 + i32.const 4 + i32.add + local.set $4 + local.get $1 + if + local.get $1 + local.get $1 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u + local.get $4 + call $~lib/string/String.UTF8.encodeUnsafe + local.get $4 + i32.add + local.set $4 + end + local.get $4 + i32.const 40 + i32.store8 + local.get $2 + call $~lib/util/number/decimalCount32 + local.tee $0 + local.get $4 + i32.const 1 + i32.add + i32.add + local.set $4 + loop $do-continue|0 + local.get $4 + i32.const 1 + i32.sub + local.tee $4 + local.get $2 + i32.const 10 + i32.rem_u + i32.const 48 + i32.add + i32.store8 + local.get $2 + i32.const 10 + i32.div_u + local.tee $2 + br_if $do-continue|0 + end + local.get $0 + local.get $4 + i32.add + local.tee $0 + i32.const 58 + i32.store8 + local.get $3 + call $~lib/util/number/decimalCount32 + local.tee $1 + local.get $0 + i32.const 1 + i32.add + i32.add + local.set $4 + loop $do-continue|1 + local.get $4 + i32.const 1 + i32.sub + local.tee $4 + local.get $3 + i32.const 10 + i32.rem_u + i32.const 48 + i32.add + i32.store8 + local.get $3 + i32.const 10 + i32.div_u + local.tee $3 + br_if $do-continue|1 + end + local.get $1 + local.get $4 + i32.add + local.tee $0 + i32.const 2601 + i32.store16 + i32.const 4 + local.get $0 + i32.const 10 + i32.sub + i32.store + i32.const 2 + i32.const 0 + i32.const 1 + i32.const 8 + call $~lib/bindings/wasi_snapshot_preview1/fd_write + drop + i32.const 255 + call $~lib/bindings/wasi_snapshot_preview1/proc_exit + ) (func $~lib/rt/itcms/initLazy (param $0 i32) (result i32) local.get $0 local.get $0 @@ -2543,6 +2668,31 @@ end i32.const 4560 ) + (func $~lib/crypto/crypto.getRandomValues (param $0 i32) + local.get $0 + i32.load + local.get $0 + i32.load offset=4 + local.get $0 + i32.load + i32.sub + i32.add + local.get $0 + i32.load offset=8 + call $~lib/bindings/wasi_snapshot_preview1/random_get + local.tee $0 + i32.const 65535 + i32.and + if + local.get $0 + call $~lib/bindings/wasi_snapshot_preview1/errnoToString + i32.const 4608 + i32.const 9 + i32.const 14 + call $~lib/wasi/index/abort + unreachable + end + ) (func $~lib/util/number/utoa_dec_simple (param $0 i32) (param $1 i32) (param $2 i32) loop $do-continue|0 local.get $0 @@ -2769,684 +2919,331 @@ end end ) - (func $~lib/arraybuffer/ArrayBufferView#set:buffer (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - i32.store - local.get $0 - local.get $1 - call $~lib/rt/itcms/__link - ) - (func $~lib/typedarray/Uint8Array#__get (param $0 i32) (param $1 i32) (result i32) - local.get $1 - local.get $0 - i32.load offset=8 - i32.ge_u - if - i32.const 1360 - i32.const 1568 - i32.const 159 - i32.const 45 - call $~lib/wasi/index/abort - unreachable - end - local.get $1 - local.get $0 - i32.load offset=4 - i32.add - i32.load8_u - ) - (func $~lib/rt/__visit_members (param $0 i32) - block $folding-inner0 - block $invalid - block $~lib/string/String - block $~lib/arraybuffer/ArrayBuffer + (func $~lib/process/writeString (param $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + i32.const -1 + local.set $3 + i32.const -1 + local.set $4 + i32.const -1 + local.set $1 + block $break|0 + block $case4|0 + block $case3|0 + block $case2|0 + block $case1|0 + block $case0|0 + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u + br_table $case4|0 $case3|0 $case2|0 $case1|0 $case0|0 $break|0 + end + local.get $0 + i32.load16_u offset=6 + local.tee $1 + i32.const 128 + i32.ge_u + br_if $break|0 + end local.get $0 - i32.const 8 - i32.sub - i32.load - br_table $~lib/arraybuffer/ArrayBuffer $~lib/string/String $folding-inner0 $folding-inner0 $invalid + i32.load16_u offset=4 + local.tee $4 + i32.const 128 + i32.ge_u + br_if $break|0 end - return + local.get $0 + i32.load16_u offset=2 + local.tee $3 + i32.const 128 + i32.ge_u + br_if $break|0 end - return - end - unreachable - end - local.get $0 - i32.load - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end - ) - (func $~start - global.get $~started - if - return - end - i32.const 1 - global.set $~started - call $start:std-wasi/crypto - ) - (func $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 5364 - i32.lt_s - if - i32.const 21776 - i32.const 21824 - i32.const 1 - i32.const 1 - call $~lib/wasi/index/abort - unreachable - end - ) - (func $~lib/wasi/index/abort (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 - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - i32.const 0 - i32.const 12 - i32.store - i32.const 12 - i64.const 9071471065260641 - i64.store - local.get $0 - if (result i32) - 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 19 - call $~lib/string/String.UTF8.encodeUnsafe - i32.const 19 - i32.add - else - i32.const 19 - end - local.tee $4 - i32.const 544106784 - i32.store - local.get $4 - i32.const 4 - i32.add - local.set $4 - local.get $1 - if - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $1 - local.get $1 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 1 - i32.shr_u - local.get $4 - call $~lib/string/String.UTF8.encodeUnsafe - local.get $4 - i32.add - local.set $4 - end - local.get $4 - i32.const 40 - i32.store8 - local.get $2 - call $~lib/util/number/decimalCount32 - local.tee $0 - local.get $4 - i32.const 1 - i32.add - i32.add - local.set $4 - loop $do-continue|0 - local.get $4 - i32.const 1 - i32.sub - local.tee $4 - local.get $2 - i32.const 10 - i32.rem_u - i32.const 48 - i32.add - i32.store8 - local.get $2 - i32.const 10 - i32.div_u - local.tee $2 - br_if $do-continue|0 - end - local.get $0 - local.get $4 - i32.add - local.tee $0 - i32.const 58 - i32.store8 - local.get $3 - call $~lib/util/number/decimalCount32 - local.tee $1 - local.get $0 - i32.const 1 - i32.add - i32.add - local.set $4 - loop $do-continue|1 - local.get $4 - i32.const 1 - i32.sub - local.tee $4 - local.get $3 - i32.const 10 - i32.rem_u - i32.const 48 - i32.add - i32.store8 - local.get $3 - i32.const 10 - i32.div_u - local.tee $3 - br_if $do-continue|1 - end - local.get $1 - local.get $4 - i32.add - local.tee $0 - i32.const 2601 - i32.store16 - i32.const 4 - local.get $0 - i32.const 10 - i32.sub - i32.store - i32.const 2 - i32.const 0 - i32.const 1 - i32.const 8 - call $~lib/bindings/wasi_snapshot_preview1/fd_write - drop - i32.const 255 - call $~lib/bindings/wasi_snapshot_preview1/proc_exit - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/typedarray/Uint8Array.wrap (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 - 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 - global.get $~lib/memory/__stack_pointer - local.get $0 - local.tee $3 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - i32.const 20 - i32.sub - i32.load offset=16 - local.tee $4 - local.get $1 - i32.lt_u - if - i32.const 1360 - i32.const 1568 - i32.const 1826 - i32.const 5 - call $~lib/wasi/index/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 $0 + i32.load16_u + local.tee $2 + i32.const 128 + i32.ge_u + br_if $break|0 + i32.const 5136 + i32.const 5144 + i32.store + i32.const 5140 + local.get $3 + i32.const -1 + i32.ne + i32.const 1 + i32.add local.get $4 + i32.const -1 + i32.ne + i32.add local.get $1 - i32.sub - else - i32.const 1056 - i32.const 1568 - i32.const 1835 - i32.const 7 - call $~lib/wasi/index/abort - unreachable - end - local.set $0 - else - local.get $4 - local.get $1 - local.get $2 - local.tee $0 - i32.add - i32.lt_s - if - i32.const 1056 - i32.const 1568 - i32.const 1840 - i32.const 7 - call $~lib/wasi/index/abort - unreachable + i32.const -1 + i32.ne + i32.add + i32.store + i32.const 5144 + local.get $2 + local.get $3 + i32.const 8 + i32.shl + i32.or + local.get $4 + i32.const 16 + i32.shl + i32.or + local.get $1 + i32.const 24 + i32.shl + i32.or + i32.store + i32.const 1 + i32.const 5136 + i32.const 1 + i32.const 5148 + call $~lib/bindings/wasi_snapshot_preview1/fd_write + local.tee $0 + i32.const 65535 + i32.and + if + local.get $0 + call $~lib/bindings/wasi_snapshot_preview1/errnoToString + i32.const 5184 + i32.const 178 + i32.const 16 + call $~lib/wasi/index/abort + unreachable + end end + return end - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.const 3 - call $~lib/rt/itcms/__new - local.tee $2 - i32.store offset=8 - local.get $2 - local.get $3 - i32.store - local.get $2 - local.get $3 - call $~lib/rt/itcms/__link - local.get $2 local.get $0 - i32.store offset=8 - local.get $2 - local.get $1 - local.get $3 - i32.add - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $2 - ) - (func $~lib/crypto/crypto.getRandomValues (param $0 i32) - (local $1 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer + local.set $1 i32.const 0 - i32.store - local.get $0 - i32.load - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=4 - local.get $0 - i32.load - i32.sub - i32.add - local.get $0 - i32.load offset=8 - call $~lib/bindings/wasi_snapshot_preview1/random_get - local.tee $0 - i32.const 65535 - i32.and - if - local.get $0 - call $~lib/bindings/wasi_snapshot_preview1/errnoToString - i32.const 4608 - i32.const 9 - i32.const 14 - call $~lib/wasi/index/abort - unreachable - end - 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) (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 - call $~stack_check - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer + local.set $2 local.get $0 - i32.store - i32.const 0 local.get $0 i32.const 20 i32.sub i32.load offset=16 - i32.const 1 - i32.shr_u - local.tee $2 - local.get $2 - i32.const 0 - i32.gt_s - select - local.tee $3 - local.get $1 - i32.const 0 - local.get $1 - i32.const 0 - i32.gt_s - select - local.tee $1 - local.get $2 - local.get $1 + i32.add + local.set $3 + loop $while-continue|0 + local.get $1 + local.get $3 + i32.lt_u + if + local.get $1 + i32.load16_u + local.tee $4 + i32.const 128 + i32.lt_u + if (result i32) + local.get $2 + i32.const 1 + i32.add + else + local.get $4 + i32.const 2048 + i32.lt_u + if (result i32) + local.get $2 + i32.const 2 + i32.add + else + local.get $3 + local.get $1 + i32.const 2 + i32.add + i32.gt_u + i32.const 0 + local.get $4 + i32.const 64512 + i32.and + i32.const 55296 + i32.eq + select + if + local.get $1 + 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 $1 + i32.const 4 + i32.add + local.set $1 + br $while-continue|0 + end + end + local.get $2 + i32.const 3 + i32.add + end + end + local.set $2 + local.get $1 + i32.const 2 + i32.add + local.set $1 + br $while-continue|0 + end + end local.get $2 - i32.lt_s - select - local.tee $1 - local.get $1 - local.get $3 - i32.lt_s - select + call $~lib/rt/tlsf/__alloc + local.set $1 + local.get $0 + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 i32.const 1 - i32.shl - local.tee $4 - local.get $3 - local.get $1 + i32.shr_u local.get $1 - local.get $3 - i32.gt_s - select - i32.const 1 - i32.shl - local.tee $1 - i32.sub - local.tee $3 - i32.eqz + call $~lib/string/String.UTF8.encodeUnsafe + local.get $2 + i32.ne if - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 4736 - return + i32.const 0 + i32.const 5184 + i32.const 184 + i32.const 3 + call $~lib/wasi/index/abort + unreachable end - i32.const 0 - local.get $4 + i32.const 5136 + local.get $1 + i32.store + i32.const 5140 local.get $2 + i32.store i32.const 1 - i32.shl - i32.eq + i32.const 5136 + i32.const 1 + i32.const 5144 + call $~lib/bindings/wasi_snapshot_preview1/fd_write + local.set $0 local.get $1 - select + call $~lib/rt/tlsf/__free + local.get $0 + i32.const 65535 + i32.and if - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer local.get $0 - return + call $~lib/bindings/wasi_snapshot_preview1/errnoToString + i32.const 5184 + i32.const 189 + i32.const 12 + call $~lib/wasi/index/abort + unreachable end - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $2 - i32.store offset=4 - local.get $2 + ) + (func $~lib/arraybuffer/ArrayBufferView#set:buffer (param $0 i32) (param $1 i32) local.get $0 local.get $1 - i32.add - local.get $3 - call $~lib/memory/memory.copy - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $2 + i32.store + local.get $0 + local.get $1 + call $~lib/rt/itcms/__link ) - (func $~lib/util/string/joinIntegerArray (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 - call $~stack_check - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store + (func $~lib/typedarray/Uint8Array#__get (param $0 i32) (param $1 i32) (result i32) local.get $1 - i32.const 1 - i32.sub - local.tee $3 - i32.const 0 - i32.lt_s + local.get $0 + i32.load offset=8 + i32.ge_u if - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 4736 - return + i32.const 1360 + i32.const 1568 + i32.const 159 + i32.const 45 + call $~lib/wasi/index/abort + unreachable end + local.get $1 + local.get $0 + i32.load offset=4 + i32.add + i32.load8_u + ) + (func $~lib/rt/__visit_members (param $0 i32) block $folding-inner0 - local.get $3 - i32.eqz - if - local.get $0 - i32.load8_u - local.set $1 - 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 $__inlined_func$~lib/util/number/utoa32 - local.get $1 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 4960 - local.set $0 - br $__inlined_func$~lib/util/number/utoa32 - end - local.get $1 - call $~lib/util/number/decimalCount32 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.const 1 - i32.shl - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - local.get $0 - local.get $1 - local.get $2 - call $~lib/util/number/utoa_dec_simple - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - end - br $folding-inner0 - end - global.get $~lib/memory/__stack_pointer - i32.const 5088 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.const 5084 - i32.load - i32.const 1 - i32.shr_u - local.tee $4 - i32.const 10 - i32.add - i32.mul - i32.const 10 - i32.add - local.tee $6 - i32.const 1 - i32.shl - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $1 - i32.store offset=4 - loop $for-loop|0 - local.get $3 - local.get $5 - i32.gt_s - if - local.get $1 - local.get $2 - i32.const 1 - i32.shl - i32.add - local.get $0 - local.get $5 - i32.add - i32.load8_u - call $~lib/util/number/itoa_buffered - local.get $2 - i32.add - local.set $2 - local.get $4 - if - local.get $1 - local.get $2 - i32.const 1 - i32.shl - i32.add - i32.const 5088 - local.get $4 - i32.const 1 - i32.shl - call $~lib/memory/memory.copy - local.get $2 - local.get $4 - i32.add - local.set $2 - end - local.get $5 - i32.const 1 - i32.add - local.set $5 - br $for-loop|0 + block $invalid + block $~lib/string/String + block $~lib/arraybuffer/ArrayBuffer + local.get $0 + i32.const 8 + i32.sub + i32.load + br_table $~lib/arraybuffer/ArrayBuffer $~lib/string/String $folding-inner0 $folding-inner0 $invalid + end + return end + return end - local.get $6 - local.get $1 - local.get $2 - i32.const 1 - i32.shl - i32.add + unreachable + end + local.get $0 + i32.load + local.tee $0 + if local.get $0 - local.get $3 - i32.add - i32.load8_u - 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 $1 - i32.store - local.get $1 - local.get $0 - 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 - local.get $1 + call $~lib/rt/itcms/__visit + end + ) + (func $~start + global.get $~started + if return end + i32.const 1 + global.set $~started + call $start:std-wasi/crypto + ) + (func $~stack_check global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 + i32.const 5364 + i32.lt_s + if + i32.const 21776 + i32.const 21824 + i32.const 1 + i32.const 1 + call $~lib/wasi/index/abort + unreachable + end ) (func $~lib/typedarray/Uint8Array#toString (param $0 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 - global.get $~lib/memory/__stack_pointer - local.get $0 + i32.const 0 i32.store global.get $~lib/memory/__stack_pointer i32.const 5088 - i32.store offset=4 - 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.store 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=8 - global.get $~lib/memory/__stack_pointer - i32.const 5088 - i32.store call $~lib/util/string/joinIntegerArray 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 ) @@ -3455,55 +3252,34 @@ (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 call $~stack_check global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store + i32.const 0 + i32.store global.get $~lib/memory/__stack_pointer i32.const 4656 i32.store global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - 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 $0 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 5120 - i32.store - i32.const 5120 - local.set $0 - end - global.get $~lib/memory/__stack_pointer - i32.const 4656 - i32.store offset=4 - i32.const 4652 - i32.load - i32.const 1 - i32.shr_u - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 block $__inlined_func$~lib/string/String#concat - local.get $1 - i32.const 1 - i32.shl - local.tee $2 + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 5120 + i32.store + i32.const 5120 + local.set $0 + end local.get $0 i32.const 20 i32.sub @@ -3513,12 +3289,19 @@ i32.const 1 i32.shl local.tee $3 + i32.const 4652 + i32.load + i32.const 1 + i32.shr_u + i32.const 1 + i32.shl + local.tee $2 i32.add local.tee $1 i32.eqz if global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer i32.const 4736 @@ -3530,7 +3313,7 @@ i32.const 1 call $~lib/rt/itcms/__new local.tee $1 - i32.store offset=8 + i32.store offset=4 local.get $1 i32.const 4656 local.get $2 @@ -3542,293 +3325,354 @@ local.get $3 call $~lib/memory/memory.copy global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer end global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer local.get $1 ) - (func $~lib/process/writeString (param $0 i32) + (func $~lib/console/console.log (param $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 + local.get $0 + call $~lib/process/writeString + global.get $~lib/memory/__stack_pointer + i32.const 5248 + i32.store + i32.const 5248 + call $~lib/process/writeString + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $start:std-wasi/crypto + (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 + i32.const 1280 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/pinSpace + i32.const 1312 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/toSpace + i32.const 1456 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/fromSpace + 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 + i32.const 8 + i32.const 0 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + local.get $0 + i32.const 8 + call $~lib/memory/memory.fill + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + global.set $std-wasi/crypto/ab + global.get $~lib/memory/__stack_pointer + global.get $std-wasi/crypto/ab + local.tee $0 + i32.store + local.get $0 + i32.const 0 + i32.const 4 + call $~lib/typedarray/Uint8Array.wrap + global.set $std-wasi/crypto/buf + global.get $~lib/memory/__stack_pointer + global.get $std-wasi/crypto/buf + local.tee $0 + i32.store + local.get $0 + call $~lib/crypto/crypto.getRandomValues + global.get $~lib/memory/__stack_pointer + i32.const 4656 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + global.get $std-wasi/crypto/buf + local.tee $0 + i32.store offset=12 + local.get $0 + call $~lib/typedarray/Uint8Array#toString + 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 $~lib/console/console.log + global.get $~lib/memory/__stack_pointer + global.get $std-wasi/crypto/buf + local.tee $0 + i32.store + local.get $0 + call $~lib/typedarray/Uint8Array#slice + global.set $std-wasi/crypto/b1 + global.get $~lib/memory/__stack_pointer + global.get $std-wasi/crypto/ab + local.tee $0 + i32.store + local.get $0 i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check + i32.const 4 + call $~lib/typedarray/Uint8Array.wrap + global.set $std-wasi/crypto/buf global.get $~lib/memory/__stack_pointer - i32.const 0 + global.get $std-wasi/crypto/buf + local.tee $0 i32.store - i32.const -1 - local.set $3 - i32.const -1 - local.set $4 - i32.const -1 - local.set $1 + local.get $0 + call $~lib/crypto/crypto.getRandomValues + global.get $~lib/memory/__stack_pointer + i32.const 4656 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + global.get $std-wasi/crypto/buf + local.tee $0 + i32.store offset=12 + local.get $0 + call $~lib/typedarray/Uint8Array#toString + 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 - block $break|0 - block $case4|0 - block $case3|0 - block $case2|0 - block $case1|0 - block $case0|0 - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 1 - i32.shr_u - br_table $case4|0 $case3|0 $case2|0 $case1|0 $case0|0 $break|0 - end - local.get $0 - i32.load16_u offset=6 - local.tee $1 - i32.const 128 - i32.ge_u - br_if $break|0 - end - local.get $0 - i32.load16_u offset=4 - local.tee $4 - i32.const 128 - i32.ge_u - br_if $break|0 - end - local.get $0 - i32.load16_u offset=2 - local.tee $3 - i32.const 128 - i32.ge_u - br_if $break|0 - end - local.get $0 - i32.load16_u - local.tee $2 - i32.const 128 - i32.ge_u - br_if $break|0 - i32.const 5136 - i32.const 5144 + local.get $0 + call $~lib/console/console.log + global.get $~lib/memory/__stack_pointer + global.get $std-wasi/crypto/buf + local.tee $0 + i32.store + local.get $0 + call $~lib/typedarray/Uint8Array#slice + global.set $std-wasi/crypto/b2 + global.get $~lib/memory/__stack_pointer + global.get $std-wasi/crypto/ab + local.tee $0 + i32.store + local.get $0 + i32.const 0 + i32.const -1 + call $~lib/typedarray/Uint8Array.wrap + global.set $std-wasi/crypto/buf + loop $for-loop|0 + local.get $1 + i32.const 4 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + global.get $std-wasi/crypto/buf + local.tee $0 i32.store - i32.const 5140 - local.get $3 - i32.const -1 - i32.ne - i32.const 1 - i32.add - local.get $4 - i32.const -1 - i32.ne - i32.add + local.get $0 local.get $1 - i32.const -1 - i32.ne - i32.add + call $~lib/typedarray/Uint8Array#__get + local.set $2 + global.get $~lib/memory/__stack_pointer + global.get $std-wasi/crypto/b1 + local.tee $0 i32.store - i32.const 5144 - local.get $2 - local.get $3 - i32.const 8 - i32.shl - i32.or - local.get $4 - i32.const 16 - i32.shl - i32.or + local.get $0 local.get $1 - i32.const 24 - i32.shl - i32.or - i32.store - i32.const 1 - i32.const 5136 - i32.const 1 - i32.const 5148 - call $~lib/bindings/wasi_snapshot_preview1/fd_write - local.tee $0 - i32.const 65535 - i32.and + call $~lib/typedarray/Uint8Array#__get + local.get $2 + i32.ne if - local.get $0 - call $~lib/bindings/wasi_snapshot_preview1/errnoToString - i32.const 5184 - i32.const 178 - i32.const 16 + i32.const 0 + i32.const 5280 + i32.const 17 + i32.const 3 call $~lib/wasi/index/abort unreachable end + 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 - return end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - local.set $1 i32.const 0 - local.set $2 - local.get $0 - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.add - local.set $3 - loop $while-continue|0 + local.set $1 + loop $for-loop|1 local.get $1 - local.get $3 - i32.lt_u + i32.const 4 + i32.lt_s if + global.get $~lib/memory/__stack_pointer + global.get $std-wasi/crypto/buf + local.tee $0 + i32.store + local.get $0 local.get $1 - i32.load16_u - local.tee $4 - i32.const 128 - i32.lt_u - if (result i32) - local.get $2 - i32.const 1 - i32.add - else - local.get $4 - i32.const 2048 - i32.lt_u - if (result i32) - local.get $2 - i32.const 2 - i32.add - else - local.get $3 - local.get $1 - i32.const 2 - i32.add - i32.gt_u - i32.const 0 - local.get $4 - i32.const 64512 - i32.and - i32.const 55296 - i32.eq - select - if - local.get $1 - 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 $1 - i32.const 4 - i32.add - local.set $1 - br $while-continue|0 - end - end - local.get $2 - i32.const 3 - i32.add - end + i32.const 4 + i32.add + call $~lib/typedarray/Uint8Array#__get + local.set $2 + global.get $~lib/memory/__stack_pointer + global.get $std-wasi/crypto/b2 + local.tee $0 + i32.store + local.get $0 + local.get $1 + call $~lib/typedarray/Uint8Array#__get + local.get $2 + i32.ne + if + i32.const 0 + i32.const 5280 + i32.const 20 + i32.const 3 + call $~lib/wasi/index/abort + unreachable end - local.set $2 local.get $1 - i32.const 2 + i32.const 1 i32.add local.set $1 - br $while-continue|0 + br $for-loop|1 end end - local.get $2 - call $~lib/rt/tlsf/__alloc - local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/typedarray/Uint8Array.wrap (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 + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 i32.store local.get $0 - local.get $0 i32.const 20 i32.sub i32.load offset=16 - i32.const 1 - i32.shr_u + local.tee $4 local.get $1 - call $~lib/string/String.UTF8.encodeUnsafe - local.get $2 - i32.ne + i32.lt_u if - i32.const 0 - i32.const 5184 - i32.const 184 - i32.const 3 + i32.const 1360 + i32.const 1568 + i32.const 1826 + i32.const 5 call $~lib/wasi/index/abort unreachable end - i32.const 5136 - local.get $1 - i32.store - i32.const 5140 local.get $2 - i32.store - i32.const 1 - i32.const 5136 - i32.const 1 - i32.const 5144 - call $~lib/bindings/wasi_snapshot_preview1/fd_write - local.set $0 - local.get $1 - call $~lib/rt/tlsf/__free - local.get $0 - i32.const 65535 - i32.and + i32.const 0 + i32.lt_s if - local.get $0 - call $~lib/bindings/wasi_snapshot_preview1/errnoToString - i32.const 5184 - i32.const 189 - i32.const 12 - call $~lib/wasi/index/abort - unreachable + local.get $2 + i32.const -1 + i32.eq + if (result i32) + local.get $4 + local.get $1 + i32.sub + else + i32.const 1056 + i32.const 1568 + i32.const 1835 + i32.const 7 + call $~lib/wasi/index/abort + unreachable + end + local.set $3 + else + local.get $4 + local.get $2 + local.tee $3 + local.get $1 + i32.add + i32.lt_s + if + i32.const 1056 + i32.const 1568 + i32.const 1840 + i32.const 7 + call $~lib/wasi/index/abort + unreachable + end end global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/process/WritableStream#write<~lib/string/String> (param $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.const 12 + i32.const 3 + call $~lib/rt/itcms/__new + local.tee $2 i32.store - global.get $~lib/memory/__stack_pointer + local.get $2 local.get $0 i32.store + local.get $2 local.get $0 - call $~lib/process/writeString + call $~lib/rt/itcms/__link + local.get $2 + local.get $3 + i32.store offset=8 + local.get $2 + local.get $0 + local.get $1 + i32.add + i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer + local.get $2 ) - (func $~lib/console/console.log (param $0 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 4 i32.sub @@ -3837,193 +3681,286 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store + i32.const 0 local.get $0 - call $~lib/process/WritableStream#write<~lib/string/String> - global.get $~lib/memory/__stack_pointer - i32.const 5248 - i32.store - i32.const 5248 - call $~lib/process/WritableStream#write<~lib/string/String> - 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) - (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 - call $~stack_check - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.const 3 - call $~lib/rt/itcms/__new + i32.load offset=16 + i32.const 1 + i32.shr_u + local.tee $2 + local.get $2 + i32.const 0 + i32.gt_s + select + local.tee $3 + local.get $1 + i32.const 0 + local.get $1 + i32.const 0 + i32.gt_s + select local.tee $1 - i32.store - global.get $~lib/memory/__stack_pointer + local.get $2 local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - 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 $2 + i32.lt_s + select + local.tee $1 + local.get $1 + local.get $3 + i32.lt_s + select + i32.const 1 + i32.shl + local.tee $4 + local.get $3 local.get $1 + local.get $1 + local.get $3 + i32.gt_s + select + i32.const 1 + i32.shl + local.tee $1 + i32.sub + local.tee $3 i32.eqz if global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $1 - i32.store + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 4736 + return end - local.get $1 i32.const 0 - call $~lib/arraybuffer/ArrayBufferView#set:buffer - local.get $1 - i32.const 0 - i32.store offset=4 + local.get $4 + local.get $2 + i32.const 1 + i32.shl + i32.eq local.get $1 - i32.const 0 - i32.store offset=8 - local.get $0 - i32.const 1073741820 - i32.gt_u + select if - i32.const 1056 - i32.const 1104 - i32.const 18 - i32.const 57 - call $~lib/wasi/index/abort - unreachable + 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.const 0 + local.get $3 + i32.const 1 call $~lib/rt/itcms/__new local.tee $2 - i32.store offset=4 + i32.store local.get $2 local.get $0 - call $~lib/memory/memory.fill - local.get $1 - local.get $2 - call $~lib/arraybuffer/ArrayBufferView#set:buffer - local.get $1 - local.get $2 - i32.store offset=4 local.get $1 - local.get $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 8 i32.add - global.set $~lib/memory/__stack_pointer - local.get $1 - i32.store + local.get $3 + call $~lib/memory/memory.copy 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 $2 ) - (func $~lib/typedarray/Uint8Array#slice (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 $4 i32) + (local $5 i32) + (local $6 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 - 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 0 - local.get $0 - i32.load offset=8 - local.tee $1 - local.get $1 - i32.const 0 - i32.gt_s - select - local.set $2 - global.get $~lib/memory/__stack_pointer local.get $1 - local.get $2 + i32.const 1 i32.sub - local.tee $1 - i32.const 0 - local.get $1 - i32.const 0 - i32.gt_s - select local.tee $3 - call $~lib/typedarray/Uint8Array#constructor - local.tee $1 - i32.store offset=8 - local.get $1 - i32.load offset=4 - local.get $2 - local.get $0 - i32.load offset=4 - i32.add - local.get $3 - call $~lib/memory/memory.copy + i32.const 0 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 4736 + return + end + block $folding-inner0 + local.get $3 + i32.eqz + if + local.get $0 + i32.load8_u + local.set $1 + 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 $__inlined_func$~lib/util/number/utoa32 + local.get $1 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 4960 + local.set $0 + br $__inlined_func$~lib/util/number/utoa32 + end + local.get $1 + call $~lib/util/number/decimalCount32 + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + local.get $0 + local.get $1 + local.get $2 + call $~lib/util/number/utoa_dec_simple + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + end + br $folding-inner0 + end + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.const 5084 + i32.load + i32.const 1 + i32.shr_u + local.tee $4 + i32.const 10 + i32.add + i32.mul + i32.const 10 + i32.add + local.tee $6 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $1 + i32.store + loop $for-loop|0 + local.get $3 + local.get $5 + i32.gt_s + if + local.get $1 + local.get $2 + i32.const 1 + i32.shl + i32.add + local.get $0 + local.get $5 + i32.add + i32.load8_u + call $~lib/util/number/itoa_buffered + local.get $2 + i32.add + local.set $2 + local.get $4 + if + local.get $1 + local.get $2 + i32.const 1 + i32.shl + i32.add + i32.const 5088 + local.get $4 + i32.const 1 + i32.shl + call $~lib/memory/memory.copy + local.get $2 + local.get $4 + i32.add + local.set $2 + end + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|0 + end + end + local.get $6 + local.get $1 + local.get $2 + i32.const 1 + i32.shl + i32.add + local.get $0 + local.get $3 + i32.add + i32.load8_u + call $~lib/util/number/itoa_buffered + local.get $2 + i32.add + local.tee $0 + i32.gt_s + if + local.get $1 + local.get $0 + call $~lib/string/String#substring + local.set $0 + br $folding-inner0 + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + return + end global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 + local.get $0 ) - (func $start:std-wasi/crypto - (local $0 i32) + (func $~lib/typedarray/Uint8Array#slice (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 16 + i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=8 - i32.const 1280 - call $~lib/rt/itcms/initLazy - global.set $~lib/rt/itcms/pinSpace - i32.const 1312 - call $~lib/rt/itcms/initLazy - global.set $~lib/rt/itcms/toSpace - i32.const 1456 - call $~lib/rt/itcms/initLazy - global.set $~lib/rt/itcms/fromSpace + i32.const 0 + i32.store + local.get $0 + i32.load offset=8 + local.set $2 + global.get $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -4033,196 +3970,109 @@ i32.const 0 i32.store global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.const 0 + i32.const 12 + i32.const 3 call $~lib/rt/itcms/__new - local.tee $0 + local.tee $1 i32.store - local.get $0 - i32.const 8 - call $~lib/memory/memory.fill - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - global.set $std-wasi/crypto/ab global.get $~lib/memory/__stack_pointer - global.get $std-wasi/crypto/ab - local.tee $0 - i32.store - local.get $0 + local.get $2 i32.const 0 - i32.const 4 - call $~lib/typedarray/Uint8Array.wrap - global.set $std-wasi/crypto/buf + local.get $2 + local.get $2 + i32.const 0 + i32.gt_s + select + local.tee $7 + i32.sub + local.tee $2 + i32.const 0 + local.get $2 + i32.const 0 + i32.gt_s + select + local.tee $2 + local.set $3 global.get $~lib/memory/__stack_pointer - global.get $std-wasi/crypto/buf - local.tee $0 - i32.store - local.get $0 - call $~lib/crypto/crypto.getRandomValues + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check global.get $~lib/memory/__stack_pointer - i32.const 4656 + i64.const 0 + i64.store + local.get $1 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 2 + call $~lib/rt/itcms/__new + local.tee $1 + i32.store + end + local.get $1 + i32.const 0 + call $~lib/arraybuffer/ArrayBufferView#set:buffer + local.get $1 + i32.const 0 i32.store offset=4 - global.get $~lib/memory/__stack_pointer - global.get $std-wasi/crypto/buf - local.tee $0 - i32.store offset=12 - local.get $0 - call $~lib/typedarray/Uint8Array#toString - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 + i32.const 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 $~lib/console/console.log - global.get $~lib/memory/__stack_pointer - global.get $std-wasi/crypto/buf - local.tee $0 - i32.store - local.get $0 - call $~lib/typedarray/Uint8Array#slice - global.set $std-wasi/crypto/b1 - global.get $~lib/memory/__stack_pointer - global.get $std-wasi/crypto/ab - local.tee $0 - i32.store - local.get $0 - i32.const 4 - i32.const 4 - call $~lib/typedarray/Uint8Array.wrap - global.set $std-wasi/crypto/buf - global.get $~lib/memory/__stack_pointer - global.get $std-wasi/crypto/buf - local.tee $0 - i32.store - local.get $0 - call $~lib/crypto/crypto.getRandomValues + local.get $3 + i32.const 1073741820 + i32.gt_u + if + i32.const 1056 + i32.const 1104 + i32.const 18 + i32.const 57 + call $~lib/wasi/index/abort + unreachable + end global.get $~lib/memory/__stack_pointer - i32.const 4656 + local.get $3 + i32.const 0 + call $~lib/rt/itcms/__new + local.tee $4 i32.store offset=4 - global.get $~lib/memory/__stack_pointer - global.get $std-wasi/crypto/buf - local.tee $0 - i32.store offset=12 - local.get $0 - call $~lib/typedarray/Uint8Array#toString - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $4 + local.get $3 + call $~lib/memory/memory.fill + local.get $1 + local.get $4 + call $~lib/arraybuffer/ArrayBufferView#set:buffer + local.get $1 + local.get $4 + i32.store offset=4 + local.get $1 + local.get $3 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 $~lib/console/console.log global.get $~lib/memory/__stack_pointer - global.get $std-wasi/crypto/buf - local.tee $0 + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 i32.store - local.get $0 - call $~lib/typedarray/Uint8Array#slice - global.set $std-wasi/crypto/b2 global.get $~lib/memory/__stack_pointer - global.get $std-wasi/crypto/ab - local.tee $0 + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 i32.store + local.get $1 + i32.load offset=4 + local.get $7 local.get $0 - i32.const 0 - i32.const -1 - call $~lib/typedarray/Uint8Array.wrap - global.set $std-wasi/crypto/buf - loop $for-loop|0 - local.get $1 - i32.const 4 - i32.lt_s - if - global.get $~lib/memory/__stack_pointer - global.get $std-wasi/crypto/buf - local.tee $0 - i32.store - local.get $0 - local.get $1 - call $~lib/typedarray/Uint8Array#__get - local.set $2 - global.get $~lib/memory/__stack_pointer - global.get $std-wasi/crypto/b1 - local.tee $0 - i32.store - local.get $0 - local.get $1 - call $~lib/typedarray/Uint8Array#__get - local.get $2 - i32.ne - if - i32.const 0 - i32.const 5280 - i32.const 17 - i32.const 3 - call $~lib/wasi/index/abort - unreachable - end - local.get $1 - i32.const 1 - i32.add - local.set $1 - br $for-loop|0 - end - end - i32.const 0 - local.set $1 - loop $for-loop|1 - local.get $1 - i32.const 4 - i32.lt_s - if - global.get $~lib/memory/__stack_pointer - global.get $std-wasi/crypto/buf - local.tee $0 - i32.store - local.get $0 - local.get $1 - i32.const 4 - i32.add - call $~lib/typedarray/Uint8Array#__get - local.set $2 - global.get $~lib/memory/__stack_pointer - global.get $std-wasi/crypto/b2 - local.tee $0 - i32.store - local.get $0 - local.get $1 - call $~lib/typedarray/Uint8Array#__get - local.get $2 - i32.ne - if - i32.const 0 - i32.const 5280 - i32.const 20 - i32.const 3 - call $~lib/wasi/index/abort - unreachable - end - local.get $1 - i32.const 1 - i32.add - local.set $1 - br $for-loop|1 - end - end + i32.load offset=4 + i32.add + local.get $2 + call $~lib/memory/memory.copy global.get $~lib/memory/__stack_pointer - i32.const 16 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer + local.get $1 ) ) diff --git a/tests/compiler/std-wasi/crypto.untouched.wat b/tests/compiler/std-wasi/crypto.untouched.wat index 0aa27edb93..da648124ac 100644 --- a/tests/compiler/std-wasi/crypto.untouched.wat +++ b/tests/compiler/std-wasi/crypto.untouched.wat @@ -438,6 +438,162 @@ local.get $1 i32.store offset=4 ) + (func $~lib/wasi/index/abort (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) + i32.const 0 + i32.const 12 + call $~lib/bindings/wasi_snapshot_preview1/iovec#set:buf + i32.const 12 + local.set $4 + local.get $4 + i64.const 9071471065260641 + i64.store + local.get $4 + i32.const 7 + i32.add + local.set $4 + local.get $0 + i32.const 0 + i32.ne + if + local.get $4 + local.get $0 + local.get $0 + call $~lib/string/String#get:length + local.get $4 + i32.const 0 + call $~lib/string/String.UTF8.encodeUnsafe + i32.add + local.set $4 + end + local.get $4 + i32.const 544106784 + i32.store + local.get $4 + i32.const 4 + i32.add + local.set $4 + local.get $1 + i32.const 0 + i32.ne + if + local.get $4 + local.get $1 + local.get $1 + call $~lib/string/String#get:length + local.get $4 + i32.const 0 + call $~lib/string/String.UTF8.encodeUnsafe + i32.add + local.set $4 + end + local.get $4 + local.tee $5 + i32.const 1 + i32.add + local.set $4 + local.get $5 + i32.const 40 + i32.store8 + local.get $2 + call $~lib/util/number/decimalCount32 + local.set $6 + local.get $4 + local.get $6 + i32.add + local.set $4 + loop $do-continue|0 + local.get $2 + i32.const 10 + i32.div_u + local.set $5 + local.get $4 + i32.const 1 + i32.sub + local.tee $4 + i32.const 48 + local.get $2 + i32.const 10 + i32.rem_u + i32.add + i32.store8 + local.get $5 + local.set $2 + local.get $2 + local.set $7 + local.get $7 + br_if $do-continue|0 + end + local.get $4 + local.get $6 + i32.add + local.set $4 + local.get $4 + local.tee $7 + i32.const 1 + i32.add + local.set $4 + local.get $7 + i32.const 58 + i32.store8 + local.get $3 + call $~lib/util/number/decimalCount32 + local.set $6 + local.get $4 + local.get $6 + i32.add + local.set $4 + loop $do-continue|1 + local.get $3 + i32.const 10 + i32.div_u + local.set $7 + local.get $4 + i32.const 1 + i32.sub + local.tee $4 + i32.const 48 + local.get $3 + i32.const 10 + i32.rem_u + i32.add + i32.store8 + local.get $7 + local.set $3 + local.get $3 + local.set $8 + local.get $8 + br_if $do-continue|1 + end + local.get $4 + local.get $6 + i32.add + local.set $4 + local.get $4 + i32.const 2601 + i32.store16 + local.get $4 + i32.const 2 + i32.add + local.set $4 + i32.const 0 + local.get $4 + i32.const 12 + i32.sub + call $~lib/bindings/wasi_snapshot_preview1/iovec#set:buf_len + i32.const 2 + i32.const 0 + i32.const 1 + i32.const 8 + call $~lib/bindings/wasi_snapshot_preview1/fd_write + drop + i32.const 255 + call $~lib/bindings/wasi_snapshot_preview1/proc_exit + ) (func $~lib/rt/itcms/Object#set:nextWithColor (param $0 i32) (param $1 i32) local.get $0 local.get $1 @@ -3459,6 +3615,30 @@ end i32.const 3536 ) + (func $~lib/crypto/crypto.getRandomValues (param $0 i32) + (local $1 i32) + local.get $0 + i32.load + local.get $0 + call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + i32.add + local.get $0 + i32.load offset=8 + call $~lib/bindings/wasi_snapshot_preview1/random_get + local.set $1 + local.get $1 + i32.const 65535 + i32.and + if + local.get $1 + call $~lib/bindings/wasi_snapshot_preview1/errnoToString + i32.const 3584 + i32.const 9 + i32.const 14 + call $~lib/wasi/index/abort + unreachable + end + ) (func $~lib/typedarray/Uint8Array#get:length (param $0 i32) (result i32) local.get $0 i32.load offset=8 @@ -5141,6 +5321,14 @@ end end ) + (func $~lib/typedarray/Uint8Array#join (param $0 i32) (param $1 i32) (result i32) + local.get $0 + i32.load offset=4 + local.get $0 + call $~lib/typedarray/Uint8Array#get:length + local.get $1 + call $~lib/util/string/joinIntegerArray + ) (func $~lib/string/String.UTF8.byteLength (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) @@ -5245,1032 +5433,6 @@ end local.get $4 ) - (func $~lib/arraybuffer/ArrayBufferView#set:buffer (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - i32.store - local.get $0 - local.get $1 - i32.const 0 - call $~lib/rt/itcms/__link - ) - (func $~lib/arraybuffer/ArrayBufferView#set:dataStart (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - i32.store offset=4 - ) - (func $~lib/arraybuffer/ArrayBufferView#set:byteLength (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - i32.store offset=8 - ) - (func $~lib/typedarray/Uint8Array.wrap@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 0 - local.set $1 - end - i32.const -1 - local.set $2 - end - local.get $0 - local.get $1 - local.get $2 - call $~lib/typedarray/Uint8Array.wrap - ) - (func $~lib/typedarray/Uint8Array#__get (param $0 i32) (param $1 i32) (result i32) - local.get $1 - local.get $0 - i32.load offset=8 - i32.ge_u - if - i32.const 336 - i32.const 544 - i32.const 159 - i32.const 45 - call $~lib/wasi/index/abort - unreachable - end - local.get $0 - i32.load offset=4 - local.get $1 - i32.add - i32.load8_u - ) - (func $~lib/rt/__visit_globals (param $0 i32) - (local $1 i32) - global.get $std-wasi/crypto/ab - local.tee $1 - if - local.get $1 - local.get $0 - call $~lib/rt/itcms/__visit - end - global.get $std-wasi/crypto/buf - local.tee $1 - if - local.get $1 - local.get $0 - call $~lib/rt/itcms/__visit - end - global.get $std-wasi/crypto/b1 - local.tee $1 - if - local.get $1 - local.get $0 - call $~lib/rt/itcms/__visit - end - global.get $std-wasi/crypto/b2 - local.tee $1 - if - local.get $1 - local.get $0 - call $~lib/rt/itcms/__visit - end - i32.const 336 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 32 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 144 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 4368 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 5424 - 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 - i32.load - local.tee $2 - if - local.get $2 - local.get $1 - call $~lib/rt/itcms/__visit - end - ) - (func $~lib/typedarray/Uint8Array~visit (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - call $~lib/arraybuffer/ArrayBufferView~visit - ) - (func $~lib/rt/__visit_members (param $0 i32) (param $1 i32) - block $invalid - block $~lib/typedarray/Uint8Array - block $~lib/arraybuffer/ArrayBufferView - block $~lib/string/String - block $~lib/arraybuffer/ArrayBuffer - local.get $0 - i32.const 8 - i32.sub - i32.load - br_table $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $~lib/typedarray/Uint8Array $invalid - 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/typedarray/Uint8Array~visit - return - end - unreachable - ) - (func $~start - global.get $~started - if - return - end - i32.const 1 - global.set $~started - call $start:std-wasi/crypto - ) - (func $~stack_check - global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__data_end - i32.lt_s - if - i32.const 22208 - i32.const 22256 - i32.const 1 - i32.const 1 - call $~lib/wasi/index/abort - unreachable - end - ) - (func $~lib/wasi/index/abort (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 $9 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 12 - call $~lib/bindings/wasi_snapshot_preview1/iovec#set:buf - i32.const 12 - local.set $4 - local.get $4 - i64.const 9071471065260641 - i64.store - local.get $4 - i32.const 7 - i32.add - local.set $4 - local.get $0 - i32.const 0 - i32.ne - if - local.get $4 - local.get $0 - local.get $0 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store - local.get $9 - call $~lib/string/String#get:length - local.get $4 - i32.const 0 - call $~lib/string/String.UTF8.encodeUnsafe - i32.add - local.set $4 - end - local.get $4 - i32.const 544106784 - i32.store - local.get $4 - i32.const 4 - i32.add - local.set $4 - local.get $1 - i32.const 0 - i32.ne - if - local.get $4 - local.get $1 - local.get $1 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store - local.get $9 - call $~lib/string/String#get:length - local.get $4 - i32.const 0 - call $~lib/string/String.UTF8.encodeUnsafe - i32.add - local.set $4 - end - local.get $4 - local.tee $5 - i32.const 1 - i32.add - local.set $4 - local.get $5 - i32.const 40 - i32.store8 - local.get $2 - call $~lib/util/number/decimalCount32 - local.set $6 - local.get $4 - local.get $6 - i32.add - local.set $4 - loop $do-continue|0 - local.get $2 - i32.const 10 - i32.div_u - local.set $5 - local.get $4 - i32.const 1 - i32.sub - local.tee $4 - i32.const 48 - local.get $2 - i32.const 10 - i32.rem_u - i32.add - i32.store8 - local.get $5 - local.set $2 - local.get $2 - local.set $7 - local.get $7 - br_if $do-continue|0 - end - local.get $4 - local.get $6 - i32.add - local.set $4 - local.get $4 - local.tee $7 - i32.const 1 - i32.add - local.set $4 - local.get $7 - i32.const 58 - i32.store8 - local.get $3 - call $~lib/util/number/decimalCount32 - local.set $6 - local.get $4 - local.get $6 - i32.add - local.set $4 - loop $do-continue|1 - local.get $3 - i32.const 10 - i32.div_u - local.set $7 - local.get $4 - i32.const 1 - i32.sub - local.tee $4 - i32.const 48 - local.get $3 - i32.const 10 - i32.rem_u - i32.add - i32.store8 - local.get $7 - local.set $3 - local.get $3 - local.set $8 - local.get $8 - br_if $do-continue|1 - end - local.get $4 - local.get $6 - i32.add - local.set $4 - local.get $4 - i32.const 2601 - i32.store16 - local.get $4 - i32.const 2 - i32.add - local.set $4 - i32.const 0 - local.get $4 - i32.const 12 - i32.sub - call $~lib/bindings/wasi_snapshot_preview1/iovec#set:buf_len - i32.const 2 - i32.const 0 - i32.const 1 - i32.const 8 - call $~lib/bindings/wasi_snapshot_preview1/fd_write - drop - i32.const 255 - call $~lib/bindings/wasi_snapshot_preview1/proc_exit - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/typedarray/Uint8Array.wrap (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) - 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 - global.get $~lib/memory/__stack_pointer - local.get $0 - local.tee $5 - i32.store - local.get $1 - local.set $4 - local.get $2 - local.set $3 - local.get $5 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - call $~lib/arraybuffer/ArrayBuffer#get:byteLength - local.set $7 - local.get $4 - local.get $7 - i32.gt_u - local.get $4 - i32.const 0 - i32.and - i32.or - if - i32.const 336 - i32.const 544 - i32.const 1826 - i32.const 5 - call $~lib/wasi/index/abort - unreachable - end - local.get $3 - i32.const 0 - i32.lt_s - if - local.get $3 - i32.const -1 - i32.eq - if - local.get $7 - i32.const 0 - i32.and - if - i32.const 32 - i32.const 544 - i32.const 1831 - i32.const 9 - call $~lib/wasi/index/abort - unreachable - end - local.get $7 - local.get $4 - i32.sub - local.set $6 - else - i32.const 32 - i32.const 544 - i32.const 1835 - i32.const 7 - call $~lib/wasi/index/abort - unreachable - end - else - local.get $3 - i32.const 0 - i32.shl - local.set $6 - local.get $4 - local.get $6 - i32.add - local.get $7 - i32.gt_s - if - i32.const 32 - i32.const 544 - i32.const 1840 - i32.const 7 - call $~lib/wasi/index/abort - unreachable - end - end - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.const 3 - call $~lib/rt/itcms/__new - local.tee $8 - i32.store offset=8 - local.get $8 - local.get $5 - i32.store - local.get $8 - local.get $5 - i32.const 0 - call $~lib/rt/itcms/__link - local.get $8 - local.get $6 - i32.store offset=8 - local.get $8 - local.get $5 - local.get $4 - i32.add - i32.store offset=4 - local.get $8 - local.set $9 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $9 - ) - (func $~lib/crypto/crypto.getRandomValues (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 - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - local.get $0 - i32.load - local.get $0 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $2 - call $~lib/arraybuffer/ArrayBufferView#get:byteOffset - i32.add - local.get $0 - i32.load offset=8 - call $~lib/bindings/wasi_snapshot_preview1/random_get - local.set $1 - local.get $1 - i32.const 65535 - i32.and - if - local.get $1 - call $~lib/bindings/wasi_snapshot_preview1/errnoToString - i32.const 3584 - i32.const 9 - i32.const 14 - call $~lib/wasi/index/abort - unreachable - end - 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) - (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 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 $0 - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store - local.get $12 - call $~lib/string/String#get:length - local.set $3 - local.get $1 - local.tee $4 - i32.const 0 - local.tee $5 - local.get $4 - local.get $5 - i32.gt_s - select - local.tee $5 - local.get $3 - local.tee $4 - local.get $5 - local.get $4 - i32.lt_s - select - local.set $6 - local.get $2 - local.tee $4 - i32.const 0 - local.tee $5 - local.get $4 - local.get $5 - i32.gt_s - select - local.tee $5 - local.get $3 - local.tee $4 - local.get $5 - local.get $4 - i32.lt_s - select - local.set $7 - local.get $6 - local.tee $4 - local.get $7 - local.tee $5 - local.get $4 - local.get $5 - i32.lt_s - select - i32.const 1 - i32.shl - local.set $8 - local.get $6 - local.tee $5 - local.get $7 - local.tee $4 - local.get $5 - local.get $4 - i32.gt_s - select - i32.const 1 - i32.shl - local.set $9 - local.get $9 - local.get $8 - i32.sub - local.set $10 - local.get $10 - i32.eqz - if - i32.const 3712 - local.set $12 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $12 - return - end - local.get $8 - i32.eqz - if (result i32) - local.get $9 - local.get $3 - i32.const 1 - i32.shl - i32.eq - else - i32.const 0 - end - if - local.get $0 - local.set $12 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $12 - return - end - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $11 - i32.store offset=4 - local.get $11 - local.get $0 - local.get $8 - i32.add - local.get $10 - call $~lib/memory/memory.copy - local.get $11 - local.set $12 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $12 - ) - (func $~lib/util/string/joinIntegerArray (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) - (local $11 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 $1 - i32.const 1 - i32.sub - local.set $3 - local.get $3 - i32.const 0 - i32.lt_s - if - i32.const 3712 - 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 $3 - i32.eqz - if - local.get $0 - i32.load8_u - local.set $4 - i32.const 0 - drop - i32.const 1 - i32.const 4 - i32.le_u - drop - local.get $4 - i32.const 10 - call $~lib/util/number/utoa32 - 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 $2 - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store - local.get $11 - call $~lib/string/String#get:length - local.set $5 - i32.const 10 - local.get $5 - i32.add - local.get $3 - i32.mul - i32.const 10 - i32.add - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.const 1 - i32.shl - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $7 - i32.store offset=4 - i32.const 0 - local.set $8 - i32.const 0 - local.set $4 - loop $for-loop|0 - local.get $4 - local.get $3 - i32.lt_s - local.set $10 - local.get $10 - if - local.get $0 - local.get $4 - i32.const 0 - i32.shl - i32.add - i32.load8_u - local.set $9 - local.get $8 - local.get $7 - local.get $8 - i32.const 1 - i32.shl - i32.add - local.get $9 - call $~lib/util/number/itoa_buffered - i32.add - local.set $8 - local.get $5 - if - local.get $7 - local.get $8 - i32.const 1 - i32.shl - i32.add - local.get $2 - local.get $5 - i32.const 1 - i32.shl - call $~lib/memory/memory.copy - local.get $8 - local.get $5 - i32.add - local.set $8 - end - local.get $4 - i32.const 1 - i32.add - local.set $4 - br $for-loop|0 - end - end - local.get $0 - local.get $3 - i32.const 0 - i32.shl - i32.add - i32.load8_u - local.set $9 - local.get $8 - local.get $7 - local.get $8 - i32.const 1 - i32.shl - i32.add - local.get $9 - call $~lib/util/number/itoa_buffered - i32.add - local.set $8 - local.get $6 - local.get $8 - i32.gt_s - if - local.get $7 - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store - local.get $11 - i32.const 0 - local.get $8 - call $~lib/string/String#substring - 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 $7 - local.set $11 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $11 - ) - (func $~lib/typedarray/Uint8Array#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 - call $~stack_check - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - local.get $0 - i32.load offset=4 - local.get $0 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - call $~lib/typedarray/Uint8Array#get:length - local.get $1 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $2 - call $~lib/util/string/joinIntegerArray - local.set $2 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $2 - ) - (func $~lib/typedarray/Uint8Array#toString (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 - call $~stack_check - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - local.get $0 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $1 - i32.const 5520 - 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.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) - (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 - local.get $1 - i32.const 0 - i32.eq - if - global.get $~lib/memory/__stack_pointer - i32.const 5552 - local.tee $1 - i32.store - end - local.get $0 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - call $~lib/string/String#get:length - i32.const 1 - i32.shl - local.set $2 - local.get $1 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - call $~lib/string/String#get:length - i32.const 1 - i32.shl - local.set $3 - local.get $2 - local.get $3 - i32.add - local.set $4 - local.get $4 - i32.const 0 - i32.eq - if - i32.const 3712 - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - return - end - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $5 - i32.store offset=8 - local.get $5 - local.get $0 - local.get $2 - call $~lib/memory/memory.copy - local.get $5 - local.get $2 - i32.add - local.get $1 - local.get $3 - call $~lib/memory/memory.copy - local.get $5 - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - ) - (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 - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - local.get $0 - i32.const 5552 - local.get $0 - i32.const 0 - i32.ne - select - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $2 - local.get $1 - 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 - ) (func $~lib/process/writeString (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) @@ -6280,15 +5442,6 @@ (local $7 i32) (local $8 i32) (local $9 i32) - (local $10 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 local.set $2 i32.const -1 @@ -6302,11 +5455,6 @@ block $case1|0 block $case0|0 local.get $1 - 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 $5 local.get $5 @@ -6430,82 +5578,300 @@ unreachable end end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer return end - local.get $1 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store - local.get $10 - i32.const 0 - call $~lib/string/String.UTF8.byteLength - local.set $7 - local.get $7 - call $~lib/rt/tlsf/__alloc - local.set $8 - local.get $1 - local.get $1 - local.set $10 + local.get $1 + i32.const 0 + call $~lib/string/String.UTF8.byteLength + local.set $7 + local.get $7 + call $~lib/rt/tlsf/__alloc + local.set $8 + local.get $1 + local.get $1 + call $~lib/string/String#get:length + local.get $8 + i32.const 0 + call $~lib/string/String.UTF8.encodeUnsafe + local.get $7 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 5616 + i32.const 184 + i32.const 3 + call $~lib/wasi/index/abort + unreachable + end + global.get $~lib/process/iobuf + local.get $8 + i32.store + global.get $~lib/process/iobuf + local.get $7 + i32.store offset=4 + local.get $0 + global.get $~lib/process/iobuf + i32.const 1 + global.get $~lib/process/iobuf + i32.const 2 + i32.const 4 + i32.mul + i32.add + call $~lib/bindings/wasi_snapshot_preview1/fd_write + local.set $9 + local.get $8 + call $~lib/rt/tlsf/__free + local.get $9 + i32.const 65535 + i32.and + if + local.get $9 + call $~lib/bindings/wasi_snapshot_preview1/errnoToString + i32.const 5616 + i32.const 189 + i32.const 12 + call $~lib/wasi/index/abort + unreachable + end + ) + (func $~lib/process/WritableStream#write<~lib/string/String> (param $0 i32) (param $1 i32) + i32.const 1 + drop + local.get $0 + local.get $1 + call $~lib/process/writeString + ) + (func $~lib/arraybuffer/ArrayBufferView#set:buffer (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + local.get $0 + local.get $1 + i32.const 0 + call $~lib/rt/itcms/__link + ) + (func $~lib/arraybuffer/ArrayBufferView#set:dataStart (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=4 + ) + (func $~lib/arraybuffer/ArrayBufferView#set:byteLength (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=8 + ) + (func $~lib/typedarray/Uint8Array.wrap@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 0 + local.set $1 + end + i32.const -1 + local.set $2 + end + local.get $0 + local.get $1 + local.get $2 + call $~lib/typedarray/Uint8Array.wrap + ) + (func $~lib/typedarray/Uint8Array#__get (param $0 i32) (param $1 i32) (result i32) + local.get $1 + local.get $0 + i32.load offset=8 + i32.ge_u + if + i32.const 336 + i32.const 544 + i32.const 159 + i32.const 45 + call $~lib/wasi/index/abort + unreachable + end + local.get $0 + i32.load offset=4 + local.get $1 + i32.add + i32.load8_u + ) + (func $~lib/rt/__visit_globals (param $0 i32) + (local $1 i32) + global.get $std-wasi/crypto/ab + local.tee $1 + if + local.get $1 + local.get $0 + call $~lib/rt/itcms/__visit + end + global.get $std-wasi/crypto/buf + local.tee $1 + if + local.get $1 + local.get $0 + call $~lib/rt/itcms/__visit + end + global.get $std-wasi/crypto/b1 + local.tee $1 + if + local.get $1 + local.get $0 + call $~lib/rt/itcms/__visit + end + global.get $std-wasi/crypto/b2 + local.tee $1 + if + local.get $1 + local.get $0 + call $~lib/rt/itcms/__visit + end + i32.const 336 + local.get $0 + call $~lib/rt/itcms/__visit + i32.const 32 + local.get $0 + call $~lib/rt/itcms/__visit + i32.const 144 + local.get $0 + call $~lib/rt/itcms/__visit + i32.const 4368 + local.get $0 + call $~lib/rt/itcms/__visit + i32.const 5424 + 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 + i32.load + local.tee $2 + if + local.get $2 + local.get $1 + call $~lib/rt/itcms/__visit + end + ) + (func $~lib/typedarray/Uint8Array~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/arraybuffer/ArrayBufferView~visit + ) + (func $~lib/rt/__visit_members (param $0 i32) (param $1 i32) + block $invalid + block $~lib/typedarray/Uint8Array + block $~lib/arraybuffer/ArrayBufferView + block $~lib/string/String + block $~lib/arraybuffer/ArrayBuffer + local.get $0 + i32.const 8 + i32.sub + i32.load + br_table $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $~lib/typedarray/Uint8Array $invalid + 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/typedarray/Uint8Array~visit + return + end + unreachable + ) + (func $~start + global.get $~started + if + return + end + i32.const 1 + global.set $~started + call $start:std-wasi/crypto + ) + (func $~stack_check global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store - local.get $10 - call $~lib/string/String#get:length - local.get $8 - i32.const 0 - call $~lib/string/String.UTF8.encodeUnsafe - local.get $7 - i32.eq - i32.eqz + global.get $~lib/memory/__data_end + i32.lt_s if - i32.const 0 - i32.const 5616 - i32.const 184 - i32.const 3 + i32.const 22208 + i32.const 22256 + i32.const 1 + i32.const 1 call $~lib/wasi/index/abort unreachable end - global.get $~lib/process/iobuf - local.get $8 + ) + (func $~lib/typedarray/Uint8Array#toString (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 + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 i32.store - global.get $~lib/process/iobuf - local.get $7 - i32.store offset=4 local.get $0 - global.get $~lib/process/iobuf - i32.const 1 - global.get $~lib/process/iobuf - i32.const 2 + i32.const 5520 + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + call $~lib/typedarray/Uint8Array#join + local.set $1 + global.get $~lib/memory/__stack_pointer i32.const 4 - i32.mul i32.add - call $~lib/bindings/wasi_snapshot_preview1/fd_write - local.set $9 - local.get $8 - call $~lib/rt/tlsf/__free - local.get $9 - i32.const 65535 - i32.and - if - local.get $9 - call $~lib/bindings/wasi_snapshot_preview1/errnoToString - i32.const 5616 - i32.const 189 - i32.const 12 - call $~lib/wasi/index/abort - unreachable - end + 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) + 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 $0 + i32.const 5552 + local.get $0 + i32.const 0 + i32.ne + select + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $2 + local.get $1 + call $~lib/string/String#concat + 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/process/WritableStream#write<~lib/string/String> (param $0 i32) (param $1 i32) + (func $~lib/console/console.log (param $0 i32) + (local $1 i32) (local $2 i32) global.get $~lib/memory/__stack_pointer i32.const 4 @@ -6515,96 +5881,300 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - i32.const 1 - drop + global.get $~lib/process/process.stdout + local.set $1 + local.get $1 local.get $0 + call $~lib/process/WritableStream#write<~lib/string/String> local.get $1 + i32.const 5680 + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $2 + call $~lib/process/WritableStream#write<~lib/string/String> + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $start:std-wasi/crypto + (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 + 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 256 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/pinSpace + i32.const 288 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/toSpace + i32.const 432 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/fromSpace + i32.const 0 + i32.const 8 + call $~lib/arraybuffer/ArrayBuffer#constructor + global.set $std-wasi/crypto/ab + global.get $std-wasi/crypto/ab + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $2 + i32.const 0 + i32.const 4 + call $~lib/typedarray/Uint8Array.wrap + global.set $std-wasi/crypto/buf + global.get $std-wasi/crypto/buf + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $2 + call $~lib/crypto/crypto.getRandomValues + i32.const 3632 + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + global.get $std-wasi/crypto/buf + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=12 + local.get $2 + call $~lib/typedarray/Uint8Array#toString + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=8 + local.get $2 + call $~lib/string/String.__concat + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $2 + call $~lib/console/console.log + global.get $std-wasi/crypto/buf + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $2 + i32.const 0 + global.get $~lib/builtins/i32.MAX_VALUE + call $~lib/typedarray/Uint8Array#slice + global.set $std-wasi/crypto/b1 + global.get $std-wasi/crypto/ab + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $2 + i32.const 4 + i32.const 4 + call $~lib/typedarray/Uint8Array.wrap + global.set $std-wasi/crypto/buf + global.get $std-wasi/crypto/buf local.set $2 global.get $~lib/memory/__stack_pointer local.get $2 i32.store local.get $2 - call $~lib/process/writeString + call $~lib/crypto/crypto.getRandomValues + i32.const 3632 + local.set $2 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) - (local $1 i32) - (local $2 i32) + local.get $2 + i32.store offset=4 + local.get $2 + global.get $std-wasi/crypto/buf + local.set $2 global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check + local.get $2 + i32.store offset=12 + local.get $2 + call $~lib/typedarray/Uint8Array#toString + local.set $2 global.get $~lib/memory/__stack_pointer - i32.const 0 + local.get $2 + i32.store offset=8 + local.get $2 + call $~lib/string/String.__concat + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 i32.store - global.get $~lib/process/process.stdout - local.set $1 - local.get $1 - local.get $0 + local.get $2 + call $~lib/console/console.log + global.get $std-wasi/crypto/buf local.set $2 global.get $~lib/memory/__stack_pointer local.get $2 i32.store local.get $2 - call $~lib/process/WritableStream#write<~lib/string/String> - local.get $1 - i32.const 5680 + i32.const 0 + global.get $~lib/builtins/i32.MAX_VALUE + call $~lib/typedarray/Uint8Array#slice + global.set $std-wasi/crypto/b2 + global.get $std-wasi/crypto/ab local.set $2 global.get $~lib/memory/__stack_pointer local.get $2 i32.store local.get $2 - call $~lib/process/WritableStream#write<~lib/string/String> + i32.const 0 + i32.const 1 + global.set $~argumentsLength + i32.const 0 + call $~lib/typedarray/Uint8Array.wrap@varargs + global.set $std-wasi/crypto/buf + i32.const 0 + local.set $0 + loop $for-loop|0 + local.get $0 + i32.const 4 + i32.lt_s + local.set $1 + local.get $1 + if + global.get $std-wasi/crypto/buf + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $2 + local.get $0 + call $~lib/typedarray/Uint8Array#__get + global.get $std-wasi/crypto/b1 + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $2 + local.get $0 + call $~lib/typedarray/Uint8Array#__get + i32.eq + i32.eqz + if + i32.const 0 + i32.const 5712 + i32.const 17 + i32.const 3 + call $~lib/wasi/index/abort + unreachable + end + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|0 + end + end + i32.const 0 + local.set $0 + loop $for-loop|1 + local.get $0 + i32.const 4 + i32.lt_s + local.set $1 + local.get $1 + if + global.get $std-wasi/crypto/buf + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $2 + i32.const 4 + local.get $0 + i32.add + call $~lib/typedarray/Uint8Array#__get + global.get $std-wasi/crypto/b2 + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $2 + local.get $0 + call $~lib/typedarray/Uint8Array#__get + i32.eq + i32.eqz + if + i32.const 0 + i32.const 5712 + i32.const 20 + i32.const 3 + call $~lib/wasi/index/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 - i32.const 4 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/typedarray/Uint8Array#constructor (param $0 i32) (param $1 i32) (result i32) + (func $~lib/arraybuffer/ArrayBuffer#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.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 $0 - i32.eqz + i32.const 0 + i32.store + local.get $1 + i32.const 1073741820 + i32.gt_u if - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.const 3 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store + i32.const 32 + i32.const 80 + i32.const 49 + i32.const 43 + call $~lib/wasi/index/abort + unreachable end global.get $~lib/memory/__stack_pointer - local.get $0 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 local.get $1 i32.const 0 - call $~lib/arraybuffer/ArrayBufferView#constructor - local.tee $0 + call $~lib/rt/itcms/__new + local.tee $2 i32.store - local.get $0 - local.set $2 + local.get $2 + i32.const 0 + local.get $1 + call $~lib/memory/memory.fill + local.get $2 + local.set $3 global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 + local.get $3 ) - (func $~lib/typedarray/Uint8Array#slice (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/typedarray/Uint8Array.wrap (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -6613,357 +6183,400 @@ (local $8 i32) (local $9 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 - global.get $~lib/memory/__stack_pointer - local.get $0 - local.tee $5 i32.store + local.get $0 + local.set $5 local.get $1 local.set $4 local.get $2 local.set $3 local.get $5 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - call $~lib/typedarray/Uint8Array#get:length - local.set $6 + call $~lib/arraybuffer/ArrayBuffer#get:byteLength + local.set $7 + local.get $4 + local.get $7 + i32.gt_u local.get $4 i32.const 0 + i32.and + i32.or + if + i32.const 336 + i32.const 544 + i32.const 1826 + i32.const 5 + call $~lib/wasi/index/abort + unreachable + end + local.get $3 + i32.const 0 i32.lt_s - if (result i32) - local.get $4 - local.get $6 - i32.add - local.tee $7 - i32.const 0 - local.tee $8 - local.get $7 - local.get $8 - i32.gt_s - select + if + local.get $3 + i32.const -1 + i32.eq + if + local.get $7 + i32.const 0 + i32.and + if + i32.const 32 + i32.const 544 + i32.const 1831 + i32.const 9 + call $~lib/wasi/index/abort + unreachable + end + local.get $7 + local.get $4 + i32.sub + local.set $6 + else + i32.const 32 + i32.const 544 + i32.const 1835 + i32.const 7 + call $~lib/wasi/index/abort + unreachable + end else - local.get $4 - local.tee $8 - local.get $6 - local.tee $7 - local.get $8 - local.get $7 - i32.lt_s - select - end - local.set $4 - local.get $3 - i32.const 0 - i32.lt_s - if (result i32) local.get $3 + i32.const 0 + i32.shl + local.set $6 + local.get $4 local.get $6 i32.add - local.tee $7 - i32.const 0 - local.tee $8 local.get $7 - local.get $8 i32.gt_s - select - else - local.get $3 - local.tee $8 - local.get $6 - local.tee $7 - local.get $8 - local.get $7 - i32.lt_s - select + if + i32.const 32 + i32.const 544 + i32.const 1840 + i32.const 7 + call $~lib/wasi/index/abort + unreachable + end end - local.set $3 - local.get $3 - local.get $4 - i32.sub - local.tee $7 - i32.const 0 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 3 + call $~lib/rt/itcms/__new local.tee $8 - local.get $7 + i32.store local.get $8 - i32.gt_s - select - local.set $6 - global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store + local.get $8 + local.get $5 i32.const 0 + call $~lib/rt/itcms/__link + local.get $8 local.get $6 - call $~lib/typedarray/Uint8Array#constructor - local.tee $7 i32.store offset=8 - local.get $7 - i32.load offset=4 + local.get $8 local.get $5 - i32.load offset=4 local.get $4 - i32.const 0 - i32.shl i32.add - local.get $6 - i32.const 0 - i32.shl - call $~lib/memory/memory.copy - local.get $7 + i32.store offset=4 + local.get $8 local.set $9 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer local.get $9 ) - (func $start:std-wasi/crypto - (local $0 i32) - (local $1 i32) + (func $~lib/util/number/utoa32 (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.const 4 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=8 - i32.const 256 - call $~lib/rt/itcms/initLazy - global.set $~lib/rt/itcms/pinSpace - i32.const 288 - call $~lib/rt/itcms/initLazy - global.set $~lib/rt/itcms/toSpace - i32.const 432 - call $~lib/rt/itcms/initLazy - global.set $~lib/rt/itcms/fromSpace - i32.const 0 - i32.const 8 - call $~lib/arraybuffer/ArrayBuffer#constructor - global.set $std-wasi/crypto/ab - global.get $std-wasi/crypto/ab - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $2 - i32.const 0 - i32.const 4 - call $~lib/typedarray/Uint8Array.wrap - global.set $std-wasi/crypto/buf - global.get $std-wasi/crypto/buf - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $2 - call $~lib/crypto/crypto.getRandomValues - i32.const 3632 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - global.get $std-wasi/crypto/buf - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=12 - local.get $2 - call $~lib/typedarray/Uint8Array#toString - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=8 - local.get $2 - call $~lib/string/String.__concat - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $2 - call $~lib/console/console.log - global.get $std-wasi/crypto/buf - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $2 - i32.const 0 - global.get $~lib/builtins/i32.MAX_VALUE - call $~lib/typedarray/Uint8Array#slice - global.set $std-wasi/crypto/b1 - global.get $std-wasi/crypto/ab - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $2 - i32.const 4 - i32.const 4 - call $~lib/typedarray/Uint8Array.wrap - global.set $std-wasi/crypto/buf - global.get $std-wasi/crypto/buf - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $2 - call $~lib/crypto/crypto.getRandomValues - i32.const 3632 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - global.get $std-wasi/crypto/buf - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=12 - local.get $2 - call $~lib/typedarray/Uint8Array#toString - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=8 - local.get $2 - call $~lib/string/String.__concat - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $2 - call $~lib/console/console.log - global.get $std-wasi/crypto/buf - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $2 i32.const 0 - global.get $~lib/builtins/i32.MAX_VALUE - call $~lib/typedarray/Uint8Array#slice - global.set $std-wasi/crypto/b2 - global.get $std-wasi/crypto/ab - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 i32.store - local.get $2 - i32.const 0 - i32.const 1 - global.set $~argumentsLength - i32.const 0 - call $~lib/typedarray/Uint8Array.wrap@varargs - global.set $std-wasi/crypto/buf - i32.const 0 - local.set $0 - loop $for-loop|0 - local.get $0 + local.get $1 + i32.const 2 + i32.lt_s + if (result i32) + i32.const 1 + else + local.get $1 + i32.const 36 + i32.gt_s + end + if + i32.const 3744 + i32.const 3872 + i32.const 350 + i32.const 5 + call $~lib/wasi/index/abort + unreachable + end + local.get $0 + i32.eqz + if + i32.const 3936 + local.set $7 + global.get $~lib/memory/__stack_pointer i32.const 4 - i32.lt_s - local.set $1 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $7 + return + end + local.get $1 + i32.const 10 + i32.eq + if + local.get $0 + call $~lib/util/number/decimalCount32 + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $2 + i32.store + local.get $2 + local.set $6 + local.get $0 + local.set $5 + local.get $3 + local.set $4 + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $6 + local.get $5 + local.get $4 + call $~lib/util/number/utoa32_dec_lut + else local.get $1 + i32.const 16 + i32.eq if - global.get $std-wasi/crypto/buf - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $2 - local.get $0 - call $~lib/typedarray/Uint8Array#__get - global.get $std-wasi/crypto/b1 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $2 - local.get $0 - call $~lib/typedarray/Uint8Array#__get - i32.eq - i32.eqz - if - i32.const 0 - i32.const 5712 - i32.const 17 - i32.const 3 - call $~lib/wasi/index/abort - unreachable - end + i32.const 31 local.get $0 + i32.clz + i32.sub + i32.const 2 + i32.shr_s i32.const 1 i32.add - local.set $0 - br $for-loop|0 - end - end - i32.const 0 - local.set $0 - loop $for-loop|1 - local.get $0 - i32.const 4 - i32.lt_s - local.set $1 - local.get $1 - if - global.get $std-wasi/crypto/buf - local.set $2 + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $3 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $2 i32.store local.get $2 - i32.const 4 + local.set $6 local.get $0 - i32.add - call $~lib/typedarray/Uint8Array#__get - global.get $std-wasi/crypto/b2 - local.set $2 + local.set $5 + local.get $3 + local.set $4 + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $6 + local.get $5 + i64.extend_i32_u + local.get $4 + call $~lib/util/number/utoa_hex_lut + else + local.get $0 + i64.extend_i32_u + local.get $1 + call $~lib/util/number/ulog_base + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $3 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $2 i32.store local.get $2 local.get $0 - call $~lib/typedarray/Uint8Array#__get - i32.eq - i32.eqz - if - i32.const 0 - i32.const 5712 - i32.const 20 - i32.const 3 - call $~lib/wasi/index/abort - unreachable - end - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|1 + i64.extend_i32_u + local.get $3 + local.get $1 + call $~lib/util/number/utoa64_any_core end end + local.get $2 + local.set $7 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $7 + ) + (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) + (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 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 $0 + call $~lib/string/String#get:length + local.set $3 + local.get $1 + local.tee $4 + i32.const 0 + local.tee $5 + local.get $4 + local.get $5 + i32.gt_s + select + local.tee $5 + local.get $3 + local.tee $4 + local.get $5 + local.get $4 + i32.lt_s + select + local.set $6 + local.get $2 + local.tee $4 + i32.const 0 + local.tee $5 + local.get $4 + local.get $5 + i32.gt_s + select + local.tee $5 + local.get $3 + local.tee $4 + local.get $5 + local.get $4 + i32.lt_s + select + local.set $7 + local.get $6 + local.tee $4 + local.get $7 + local.tee $5 + local.get $4 + local.get $5 + i32.lt_s + select + i32.const 1 + i32.shl + local.set $8 + local.get $6 + local.tee $5 + local.get $7 + local.tee $4 + local.get $5 + local.get $4 + i32.gt_s + select + i32.const 1 + i32.shl + local.set $9 + local.get $9 + local.get $8 + i32.sub + local.set $10 + local.get $10 + i32.eqz + if + i32.const 3712 + local.set $12 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $12 + return + end + local.get $8 + i32.eqz + if (result i32) + local.get $9 + local.get $3 + i32.const 1 + i32.shl + i32.eq + else + i32.const 0 + end + if + local.get $0 + local.set $12 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $12 + return + end global.get $~lib/memory/__stack_pointer - i32.const 16 + local.get $10 + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $11 + i32.store + local.get $11 + local.get $0 + local.get $8 + i32.add + local.get $10 + call $~lib/memory/memory.copy + local.get $11 + local.set $12 + global.get $~lib/memory/__stack_pointer + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer + local.get $12 ) - (func $~lib/arraybuffer/ArrayBuffer#constructor (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) + (func $~lib/util/string/joinIntegerArray (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) + (local $11 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -6973,174 +6586,230 @@ i32.const 0 i32.store local.get $1 - i32.const 1073741820 - i32.gt_u + i32.const 1 + i32.sub + local.set $3 + local.get $3 + i32.const 0 + i32.lt_s if - i32.const 32 - i32.const 80 - i32.const 49 - i32.const 43 - call $~lib/wasi/index/abort - unreachable + i32.const 3712 + local.set $11 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $11 + return + end + local.get $3 + i32.eqz + if + local.get $0 + i32.load8_u + local.set $4 + i32.const 0 + drop + i32.const 1 + i32.const 4 + i32.le_u + drop + local.get $4 + i32.const 10 + call $~lib/util/number/utoa32 + local.set $11 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $11 + return end + local.get $2 + call $~lib/string/String#get:length + local.set $5 + i32.const 10 + local.get $5 + i32.add + local.get $3 + i32.mul + i32.const 10 + i32.add + local.set $6 global.get $~lib/memory/__stack_pointer - local.get $1 - i32.const 0 + local.get $6 + i32.const 1 + i32.shl + i32.const 1 call $~lib/rt/itcms/__new - local.tee $2 + local.tee $7 i32.store - local.get $2 i32.const 0 - local.get $1 - call $~lib/memory/memory.fill - local.get $2 - local.set $3 + local.set $8 + i32.const 0 + local.set $4 + loop $for-loop|0 + local.get $4 + local.get $3 + i32.lt_s + local.set $10 + local.get $10 + if + local.get $0 + local.get $4 + i32.const 0 + i32.shl + i32.add + i32.load8_u + local.set $9 + local.get $8 + local.get $7 + local.get $8 + i32.const 1 + i32.shl + i32.add + local.get $9 + call $~lib/util/number/itoa_buffered + i32.add + local.set $8 + local.get $5 + if + local.get $7 + local.get $8 + i32.const 1 + i32.shl + i32.add + local.get $2 + local.get $5 + i32.const 1 + i32.shl + call $~lib/memory/memory.copy + local.get $8 + local.get $5 + i32.add + local.set $8 + end + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $for-loop|0 + end + end + local.get $0 + local.get $3 + i32.const 0 + i32.shl + i32.add + i32.load8_u + local.set $9 + local.get $8 + local.get $7 + local.get $8 + i32.const 1 + i32.shl + i32.add + local.get $9 + call $~lib/util/number/itoa_buffered + i32.add + local.set $8 + local.get $6 + local.get $8 + i32.gt_s + if + local.get $7 + i32.const 0 + local.get $8 + call $~lib/string/String#substring + local.set $11 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $11 + return + end + local.get $7 + local.set $11 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $3 + local.get $11 ) - (func $~lib/util/number/utoa32 (param $0 i32) (param $1 i32) (result 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) 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 $1 - i32.const 2 - i32.lt_s - if (result i32) - i32.const 1 - else - local.get $1 - i32.const 36 - i32.gt_s - end - if - i32.const 3744 - i32.const 3872 - i32.const 350 - i32.const 5 - call $~lib/wasi/index/abort - unreachable - end - local.get $0 - i32.eqz + i32.const 0 + i32.eq if - i32.const 3936 - local.set $7 global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $7 - return + i32.const 5552 + local.tee $1 + i32.store end + local.get $0 + call $~lib/string/String#get:length + i32.const 1 + i32.shl + local.set $2 local.get $1 - i32.const 10 + call $~lib/string/String#get:length + i32.const 1 + i32.shl + local.set $3 + local.get $2 + local.get $3 + i32.add + local.set $4 + local.get $4 + i32.const 0 i32.eq if - local.get $0 - call $~lib/util/number/decimalCount32 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.const 1 - i32.shl - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $2 - i32.store - local.get $2 + i32.const 3712 local.set $6 - local.get $0 - local.set $5 - local.get $3 - local.set $4 - i32.const 0 - i32.const 1 - i32.ge_s - drop + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer local.get $6 - local.get $5 - local.get $4 - call $~lib/util/number/utoa32_dec_lut - else - local.get $1 - i32.const 16 - i32.eq - if - i32.const 31 - local.get $0 - i32.clz - i32.sub - i32.const 2 - i32.shr_s - i32.const 1 - i32.add - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.const 1 - i32.shl - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $2 - i32.store - local.get $2 - local.set $6 - local.get $0 - local.set $5 - local.get $3 - local.set $4 - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $6 - local.get $5 - i64.extend_i32_u - local.get $4 - call $~lib/util/number/utoa_hex_lut - else - local.get $0 - i64.extend_i32_u - local.get $1 - call $~lib/util/number/ulog_base - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.const 1 - i32.shl - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $2 - i32.store - local.get $2 - local.get $0 - i64.extend_i32_u - local.get $3 - local.get $1 - call $~lib/util/number/utoa64_any_core - end + return end + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $5 + i32.store offset=4 + local.get $5 + local.get $0 local.get $2 - local.set $7 + call $~lib/memory/memory.copy + local.get $5 + local.get $2 + i32.add + local.get $1 + local.get $3 + call $~lib/memory/memory.copy + local.get $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 $7 + local.get $6 ) (func $~lib/arraybuffer/ArrayBufferView#constructor (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) @@ -7215,4 +6884,151 @@ global.set $~lib/memory/__stack_pointer local.get $4 ) + (func $~lib/typedarray/Uint8Array#constructor (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 + call $~stack_check + 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 12 + i32.const 3 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + global.get $~lib/memory/__stack_pointer + local.get $0 + local.get $1 + i32.const 0 + call $~lib/arraybuffer/ArrayBufferView#constructor + local.tee $0 + i32.store + 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 $2 + ) + (func $~lib/typedarray/Uint8Array#slice (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) + 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 $0 + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + local.get $5 + call $~lib/typedarray/Uint8Array#get:length + local.set $6 + local.get $4 + i32.const 0 + i32.lt_s + if (result i32) + local.get $4 + local.get $6 + i32.add + local.tee $7 + i32.const 0 + local.tee $8 + local.get $7 + local.get $8 + i32.gt_s + select + else + local.get $4 + local.tee $8 + local.get $6 + local.tee $7 + local.get $8 + local.get $7 + i32.lt_s + select + end + local.set $4 + local.get $3 + i32.const 0 + i32.lt_s + if (result i32) + local.get $3 + local.get $6 + i32.add + local.tee $7 + i32.const 0 + local.tee $8 + local.get $7 + local.get $8 + i32.gt_s + select + else + local.get $3 + local.tee $8 + local.get $6 + local.tee $7 + local.get $8 + local.get $7 + i32.lt_s + select + end + local.set $3 + local.get $3 + local.get $4 + i32.sub + local.tee $7 + i32.const 0 + local.tee $8 + local.get $7 + local.get $8 + i32.gt_s + select + local.set $6 + global.get $~lib/memory/__stack_pointer + i32.const 0 + local.get $6 + call $~lib/typedarray/Uint8Array#constructor + local.tee $7 + i32.store + local.get $7 + i32.load offset=4 + local.get $5 + i32.load offset=4 + local.get $4 + i32.const 0 + i32.shl + i32.add + local.get $6 + i32.const 0 + i32.shl + call $~lib/memory/memory.copy + local.get $7 + local.set $9 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $9 + ) ) diff --git a/tests/compiler/std-wasi/process.optimized.wat b/tests/compiler/std-wasi/process.optimized.wat index da7395c88c..fea05cce6e 100644 --- a/tests/compiler/std-wasi/process.optimized.wat +++ b/tests/compiler/std-wasi/process.optimized.wat @@ -2,8 +2,8 @@ (type $i32_i32_=>_i32 (func (param i32 i32) (result i32))) (type $i32_i32_=>_none (func (param i32 i32))) (type $i32_=>_none (func (param i32))) - (type $i32_=>_i32 (func (param i32) (result i32))) (type $i32_i32_i32_=>_none (func (param i32 i32 i32))) + (type $i32_=>_i32 (func (param i32) (result i32))) (type $none_=>_none (func)) (type $none_=>_i32 (func (result i32))) (type $i32_i32_i32_=>_i32 (func (param i32 i32 i32) (result i32))) @@ -473,6 +473,131 @@ i32.lt_u select ) + (func $~lib/wasi/index/abort (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) + (local $4 i32) + i32.const 0 + i32.const 12 + i32.store + i32.const 12 + i64.const 9071471065260641 + i64.store + local.get $0 + if (result i32) + local.get $0 + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u + i32.const 19 + call $~lib/string/String.UTF8.encodeUnsafe + i32.const 19 + i32.add + else + i32.const 19 + end + local.tee $4 + i32.const 544106784 + i32.store + local.get $4 + i32.const 4 + i32.add + local.set $4 + local.get $1 + if + local.get $1 + local.get $1 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u + local.get $4 + call $~lib/string/String.UTF8.encodeUnsafe + local.get $4 + i32.add + local.set $4 + end + local.get $4 + i32.const 40 + i32.store8 + local.get $2 + call $~lib/util/number/decimalCount32 + local.tee $0 + local.get $4 + i32.const 1 + i32.add + i32.add + local.set $4 + loop $do-continue|0 + local.get $4 + i32.const 1 + i32.sub + local.tee $4 + local.get $2 + i32.const 10 + i32.rem_u + i32.const 48 + i32.add + i32.store8 + local.get $2 + i32.const 10 + i32.div_u + local.tee $2 + br_if $do-continue|0 + end + local.get $0 + local.get $4 + i32.add + local.tee $0 + i32.const 58 + i32.store8 + local.get $3 + call $~lib/util/number/decimalCount32 + local.tee $1 + local.get $0 + i32.const 1 + i32.add + i32.add + local.set $4 + loop $do-continue|1 + local.get $4 + i32.const 1 + i32.sub + local.tee $4 + local.get $3 + i32.const 10 + i32.rem_u + i32.const 48 + i32.add + i32.store8 + local.get $3 + i32.const 10 + i32.div_u + local.tee $3 + br_if $do-continue|1 + end + local.get $1 + local.get $4 + i32.add + local.tee $0 + i32.const 2601 + i32.store16 + i32.const 4 + local.get $0 + i32.const 10 + i32.sub + i32.store + i32.const 2 + i32.const 0 + i32.const 1 + i32.const 8 + call $~lib/bindings/wasi_snapshot_preview1/fd_write + drop + i32.const 255 + call $~lib/bindings/wasi_snapshot_preview1/proc_exit + ) (func $~lib/bindings/wasi_snapshot_preview1/errnoToString (param $0 i32) (result i32) block $break|0 block $case76|0 @@ -1809,2220 +1934,1440 @@ local.get $1 call $~lib/rt/tlsf/insertBlock ) - (func $~lib/rt/itcms/initLazy (param $0 i32) (result i32) - local.get $0 - local.get $0 - i32.store offset=4 - local.get $0 - local.get $0 - i32.store offset=8 - local.get $0 - ) - (func $~lib/rt/itcms/visitRoots - (local $0 i32) + (func $~lib/process/writeString (param $0 i32) (local $1 i32) - i32.const 4336 - call $~lib/rt/itcms/__visit - i32.const 4416 - call $~lib/rt/itcms/__visit - global.get $~lib/process/process.argv - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end - global.get $~lib/process/process.env - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end - global.get $std-wasi/process/argv - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end - global.get $std-wasi/process/env - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end - global.get $std-wasi/process/envKeys - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end - i32.const 4672 - call $~lib/rt/itcms/__visit - i32.const 4448 - call $~lib/rt/itcms/__visit - i32.const 4912 - call $~lib/rt/itcms/__visit - i32.const 5280 - call $~lib/rt/itcms/__visit - i32.const 4240 - call $~lib/rt/itcms/__visit - i32.const 5664 - 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 4544 - i32.const 159 - i32.const 16 - call $~lib/wasi/index/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#set:color (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - i32.or - i32.store offset=4 - ) - (func $~lib/rt/itcms/Object#set:next (param $0 i32) (param $1 i32) - 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#linkTo (param $0 i32) (param $1 i32) (param $2 i32) + (local $2 i32) (local $3 i32) - local.get $1 - i32.load offset=8 + (local $4 i32) + i32.const -1 local.set $3 - local.get $0 - local.get $1 - local.get $2 - i32.or - i32.store offset=4 - local.get $0 - local.get $3 - i32.store offset=8 - local.get $3 - local.get $0 - call $~lib/rt/itcms/Object#set:next - local.get $1 - local.get $0 - i32.store offset=8 - ) - (func $~lib/rt/itcms/Object#makeGray (param $0 i32) - (local $1 i32) - (local $2 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 4544 - i32.const 147 - i32.const 30 - call $~lib/wasi/index/abort - unreachable - end - local.get $1 - global.set $~lib/rt/itcms/iter - end - block $__inlined_func$~lib/rt/itcms/Object#unlink - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - local.tee $1 - i32.eqz - if - i32.const 0 - local.get $0 - i32.const 22268 - i32.lt_u - local.get $0 - i32.load offset=8 - select - i32.eqz - if - i32.const 0 - i32.const 4544 - i32.const 127 - i32.const 18 - call $~lib/wasi/index/abort - unreachable - end - br $__inlined_func$~lib/rt/itcms/Object#unlink - end - local.get $0 - i32.load offset=8 - local.tee $2 - i32.eqz - if - i32.const 0 - i32.const 4544 - i32.const 131 - i32.const 16 - call $~lib/wasi/index/abort - unreachable - end - local.get $1 - local.get $2 - i32.store offset=8 - local.get $2 - local.get $1 - call $~lib/rt/itcms/Object#set:next - end - local.get $0 - global.get $~lib/rt/itcms/toSpace - local.get $0 - i32.load offset=12 - local.tee $1 - i32.const 1 - i32.le_u - if (result i32) - i32.const 1 - else - local.get $1 - i32.const 5840 - i32.load - i32.gt_u - if - i32.const 4672 - i32.const 4736 - i32.const 22 - i32.const 28 - call $~lib/wasi/index/abort - unreachable - end - local.get $1 - i32.const 3 - i32.shl - i32.const 5844 - i32.add - i32.load - i32.const 32 - i32.and - end - 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 $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/itcms/step (result i32) - (local $0 i32) - (local $1 i32) - block $folding-inner0 - 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 - br $folding-inner0 - 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 - i32.const 3 - i32.and - i32.ne - if - local.get $0 - local.get $1 - call $~lib/rt/itcms/Object#set:color - i32.const 0 - global.set $~lib/rt/itcms/visitCount - local.get $0 - i32.const 20 - i32.add - call $~lib/rt/__visit_members - br $folding-inner0 - 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 22268 - 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.const 3 - i32.and - i32.ne - if - local.get $0 - local.get $1 - call $~lib/rt/itcms/Object#set:color - 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 - br $folding-inner0 - 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 - i32.const -4 - i32.and - global.set $~lib/rt/itcms/iter - global.get $~lib/rt/itcms/white - i32.eqz - local.get $0 - i32.load offset=4 - i32.const 3 - i32.and - i32.ne - if - i32.const 0 - i32.const 4544 - i32.const 228 - i32.const 20 - call $~lib/wasi/index/abort - unreachable - end - local.get $0 - i32.const 22268 - 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 - return - end - global.get $~lib/rt/itcms/visitCount - ) - (func $~lib/memory/memory.fill (param $0 i32) (param $1 i32) - (local $2 i32) - block $~lib/util/memory/memset|inlined.0 - local.get $1 - i32.eqz - br_if $~lib/util/memory/memset|inlined.0 - local.get $0 - i32.const 0 - i32.store8 - local.get $0 - local.get $1 - i32.add - i32.const 4 - i32.sub - local.tee $2 - i32.const 0 - i32.store8 offset=3 - local.get $1 - i32.const 2 - i32.le_u - br_if $~lib/util/memory/memset|inlined.0 - local.get $0 - i32.const 0 - i32.store8 offset=1 - local.get $0 - i32.const 0 - i32.store8 offset=2 - local.get $2 - i32.const 0 - i32.store8 offset=2 - local.get $2 - i32.const 0 - i32.store8 offset=1 - local.get $1 - i32.const 6 - i32.le_u - br_if $~lib/util/memory/memset|inlined.0 - local.get $0 - i32.const 0 - i32.store8 offset=3 - local.get $2 - i32.const 0 - i32.store8 - local.get $1 - i32.const 8 - i32.le_u - br_if $~lib/util/memory/memset|inlined.0 - local.get $0 - i32.const 0 - local.get $0 - i32.sub - i32.const 3 - i32.and - local.tee $2 - i32.add - local.tee $0 - i32.const 0 - i32.store - local.get $0 - local.get $1 - local.get $2 - i32.sub - i32.const -4 - i32.and - local.tee $2 - i32.add - i32.const 28 - i32.sub - local.tee $1 - i32.const 0 - i32.store offset=24 - local.get $2 - i32.const 8 - i32.le_u - br_if $~lib/util/memory/memset|inlined.0 - local.get $0 - i32.const 0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=8 - local.get $1 - i32.const 0 - i32.store offset=16 - local.get $1 - i32.const 0 - i32.store offset=20 - local.get $2 - i32.const 24 - i32.le_u - br_if $~lib/util/memory/memset|inlined.0 - local.get $0 - i32.const 0 - i32.store offset=12 - local.get $0 - i32.const 0 - i32.store offset=16 - local.get $0 - i32.const 0 - i32.store offset=20 - local.get $0 - i32.const 0 - i32.store offset=24 - local.get $1 - i32.const 0 - i32.store - local.get $1 - i32.const 0 - i32.store offset=4 - local.get $1 - i32.const 0 - i32.store offset=8 - local.get $1 - i32.const 0 - i32.store offset=12 - local.get $0 - local.get $0 - i32.const 4 - i32.and - i32.const 24 - i32.add - local.tee $1 - i32.add - local.set $0 - local.get $2 - local.get $1 - i32.sub - local.set $1 - loop $while-continue|0 - local.get $1 - i32.const 32 - i32.ge_u - if - local.get $0 - i64.const 0 - i64.store - local.get $0 - i64.const 0 - i64.store offset=8 - local.get $0 - i64.const 0 - i64.store offset=16 - local.get $0 - i64.const 0 - i64.store offset=24 - local.get $1 - i32.const 32 - i32.sub - local.set $1 - local.get $0 - i32.const 32 - i32.add - local.set $0 - br $while-continue|0 - end - end - end - ) - (func $~lib/rt/itcms/__new (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - local.get $0 - i32.const 1073741804 - i32.ge_u - if - i32.const 4240 - i32.const 4544 - i32.const 260 - i32.const 31 - call $~lib/wasi/index/abort - unreachable - end - global.get $~lib/rt/itcms/total - global.get $~lib/rt/itcms/threshold - i32.ge_u - if - block $__inlined_func$~lib/rt/itcms/interrupt - i32.const 2048 - local.set $2 - loop $do-continue|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 - end - local.get $2 - i32.const 0 - i32.gt_s - br_if $do-continue|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 $0 - i32.const 16 - i32.add - call $~lib/rt/tlsf/__alloc - i32.const 4 - i32.sub - local.tee $2 - local.get $1 - i32.store offset=12 - local.get $2 - local.get $0 - i32.store offset=16 - local.get $2 - 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 $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 $0 - call $~lib/memory/memory.fill - local.get $1 - ) - (func $~lib/rt/itcms/__link (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) - (local $4 i32) - local.get $1 - i32.eqz - if - return - end - local.get $0 - i32.eqz - if - i32.const 0 - i32.const 4544 - i32.const 294 - i32.const 14 - call $~lib/wasi/index/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 - local.set $4 - local.get $3 - global.get $~lib/rt/itcms/white - i32.eqz - i32.eq - if - local.get $2 - if - local.get $0 - call $~lib/rt/itcms/Object#makeGray - else - local.get $1 - call $~lib/rt/itcms/Object#makeGray - end - else - global.get $~lib/rt/itcms/state - i32.const 1 - i32.eq - i32.const 0 - local.get $4 - i32.const 3 - i32.eq - select - if - local.get $1 - call $~lib/rt/itcms/Object#makeGray - end - end - end - ) - (func $~lib/array/Array<~lib/string/String>#set:buffer (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - i32.store - local.get $0 - local.get $1 - i32.const 0 - call $~lib/rt/itcms/__link - ) - (func $~lib/memory/memory.copy (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) - (local $4 i32) - block $~lib/util/memory/memmove|inlined.0 - local.get $2 - local.set $4 - local.get $0 - local.get $1 - i32.eq - br_if $~lib/util/memory/memmove|inlined.0 - local.get $0 - local.get $1 - i32.lt_u - if - local.get $1 - i32.const 7 - i32.and - local.get $0 - i32.const 7 - i32.and - i32.eq - if - loop $while-continue|0 - local.get $0 - i32.const 7 - i32.and - if - local.get $4 - i32.eqz - br_if $~lib/util/memory/memmove|inlined.0 - local.get $4 - i32.const 1 - i32.sub - local.set $4 - local.get $0 - local.tee $2 - i32.const 1 - i32.add - local.set $0 - local.get $1 - local.tee $3 - i32.const 1 - i32.add - local.set $1 - local.get $2 - local.get $3 - i32.load8_u - i32.store8 - br $while-continue|0 - end - end - loop $while-continue|1 - local.get $4 - i32.const 8 - i32.ge_u - if - local.get $0 - local.get $1 - i64.load - i64.store - local.get $4 - i32.const 8 - i32.sub - local.set $4 - local.get $0 - i32.const 8 - i32.add - local.set $0 - local.get $1 - i32.const 8 - i32.add - local.set $1 - br $while-continue|1 - end - end - end - loop $while-continue|2 - local.get $4 - if - local.get $0 - local.tee $2 - i32.const 1 - i32.add - local.set $0 - local.get $1 - local.tee $3 - i32.const 1 - i32.add - local.set $1 - local.get $2 - local.get $3 - i32.load8_u - i32.store8 - local.get $4 - i32.const 1 - i32.sub - local.set $4 - br $while-continue|2 - end - end - else - local.get $1 - i32.const 7 - i32.and - local.get $0 - i32.const 7 - i32.and - i32.eq - if - loop $while-continue|3 - local.get $0 - local.get $4 - i32.add - i32.const 7 - i32.and - if - local.get $4 - i32.eqz - br_if $~lib/util/memory/memmove|inlined.0 - local.get $4 - i32.const 1 - i32.sub - local.tee $4 - local.get $0 - i32.add - local.get $1 - local.get $4 - i32.add - i32.load8_u - i32.store8 - br $while-continue|3 - end - end - loop $while-continue|4 - local.get $4 - i32.const 8 - i32.ge_u - if - local.get $4 - i32.const 8 - i32.sub - local.tee $4 - local.get $0 - i32.add - local.get $1 - local.get $4 - i32.add - i64.load - i64.store - br $while-continue|4 - end - end - end - loop $while-continue|5 - local.get $4 - if - local.get $4 - i32.const 1 - i32.sub - local.tee $4 - local.get $0 - i32.add - local.get $1 - local.get $4 - i32.add - i32.load8_u - i32.store8 - br $while-continue|5 - end - end - 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 $2 - i32.load - i32.const -4 - i32.and - i32.const 16 - i32.sub - i32.le_u - if - local.get $2 - local.get $1 - i32.store offset=16 - local.get $0 - return - end - local.get $1 - local.get $2 - i32.load offset=12 - call $~lib/rt/itcms/__new - local.tee $3 - local.get $0 - local.get $1 - local.get $2 - i32.load offset=16 - local.tee $0 - local.get $0 - local.get $1 - i32.gt_u - select - call $~lib/memory/memory.copy - local.get $3 - ) - (func $~lib/array/ensureSize (param $0 i32) (param $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - 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 4448 - i32.const 4496 - i32.const 14 - i32.const 48 - call $~lib/wasi/index/abort - unreachable - end - local.get $2 - local.get $0 - i32.load - local.tee $4 - local.get $1 - i32.const 2 - i32.shl - local.tee $3 - call $~lib/rt/itcms/__renew - local.tee $1 - i32.add - local.get $3 - local.get $2 - i32.sub - call $~lib/memory/memory.fill - local.get $1 - local.get $4 - 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 - ) - (func $~lib/map/Map<~lib/string/String,~lib/string/String>#set:entries (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - i32.store offset=8 - local.get $0 - local.get $1 - i32.const 0 - call $~lib/rt/itcms/__link - ) - (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.tee $1 - i32.const 7 - i32.and - local.get $2 - i32.const 7 - i32.and - i32.or - i32.eqz - i32.const 0 - local.get $3 - i32.const 4 - i32.ge_u - select - if - loop $do-continue|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 + i32.const -1 + local.set $4 + i32.const -1 + local.set $1 + block $break|0 + block $case4|0 + block $case3|0 + block $case2|0 + block $case1|0 + block $case0|0 + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u + br_table $case4|0 $case3|0 $case2|0 $case1|0 $case0|0 $break|0 + end + local.get $0 + i32.load16_u offset=6 + local.tee $1 + i32.const 128 + i32.ge_u + br_if $break|0 + end + local.get $0 + i32.load16_u offset=4 + local.tee $4 + i32.const 128 + i32.ge_u + br_if $break|0 + end + local.get $0 + i32.load16_u offset=2 local.tee $3 - i32.const 4 + i32.const 128 i32.ge_u - br_if $do-continue|0 + br_if $break|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 + local.get $0 i32.load16_u - local.tee $4 + local.tee $2 + i32.const 128 + i32.ge_u + br_if $break|0 + i32.const 1088 + i32.const 1096 + i32.store + i32.const 1092 + local.get $3 + i32.const -1 i32.ne - if - local.get $0 - local.get $4 - i32.sub - return - end + i32.const 1 + i32.add + local.get $4 + i32.const -1 + i32.ne + i32.add local.get $1 - i32.const 2 + i32.const -1 + i32.ne i32.add - local.set $1 + i32.store + i32.const 1096 local.get $2 - i32.const 2 - i32.add - local.set $2 - br $while-continue|1 + local.get $3 + i32.const 8 + i32.shl + i32.or + local.get $4 + i32.const 16 + i32.shl + i32.or + local.get $1 + i32.const 24 + i32.shl + i32.or + i32.store + i32.const 1 + i32.const 1088 + i32.const 1 + i32.const 1100 + call $~lib/bindings/wasi_snapshot_preview1/fd_write + local.tee $0 + i32.const 65535 + i32.and + if + local.get $0 + call $~lib/bindings/wasi_snapshot_preview1/errnoToString + i32.const 4112 + i32.const 178 + i32.const 16 + call $~lib/wasi/index/abort + unreachable + end end + return end - i32.const 0 - ) - (func $~lib/util/number/utoa_dec_simple (param $0 i32) (param $1 i32) (param $2 i32) - loop $do-continue|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 - i32.const 10 - i32.rem_u - i32.const 48 - i32.add - i32.store16 - local.get $1 - i32.const 10 - i32.div_u - local.tee $1 - br_if $do-continue|0 - end - ) - (func $~lib/util/number/decimalCount64High (param $0 i64) (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 - 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 - local.get $0 - i64.const 1000000000000 - i64.lt_u - select - local.get $0 - i64.const 10000000000000000 - i64.ge_u - i32.const 16 - i32.add - 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 - local.get $0 - i64.const 100000000000000000 - i64.lt_u - select local.get $0 - i64.const 1000000000000000 - i64.lt_u - select - ) - (func $~lib/util/number/utoa_dec_simple (param $0 i32) (param $1 i64) (param $2 i32) - loop $do-continue|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 - i64.const 10 - i64.rem_u - i32.wrap_i64 - i32.const 48 - i32.add - i32.store16 - local.get $1 - i64.const 10 - i64.div_u - local.tee $1 - i64.const 0 - i64.ne - br_if $do-continue|0 - end - ) - (func $~lib/rt/__visit_members (param $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - block $invalid - block $~lib/map/Map<~lib/string/String,~lib/string/String> - block $~lib/array/Array<~lib/string/String> - block $~lib/arraybuffer/ArrayBufferView - block $~lib/string/String - block $~lib/arraybuffer/ArrayBuffer - local.get $0 - i32.const 8 - i32.sub - i32.load - br_table $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $~lib/array/Array<~lib/string/String> $~lib/map/Map<~lib/string/String,~lib/string/String> $invalid - 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 - i32.load offset=4 - local.tee $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.set $1 + i32.const 0 + local.set $2 + local.get $0 + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 + i32.add + local.set $3 + loop $while-continue|0 + local.get $1 + local.get $3 + i32.lt_u + if + local.get $1 + i32.load16_u + local.tee $4 + i32.const 128 + i32.lt_u + if (result i32) local.get $2 + i32.const 1 + i32.add + else + local.get $4 + i32.const 2048 i32.lt_u - if + if (result i32) + local.get $2 + i32.const 2 + i32.add + else + local.get $3 local.get $1 - i32.load - local.tee $3 + i32.const 2 + i32.add + i32.gt_u + i32.const 0 + local.get $4 + i32.const 64512 + i32.and + i32.const 55296 + i32.eq + select if - local.get $3 - call $~lib/rt/itcms/__visit + local.get $1 + 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 $1 + i32.const 4 + i32.add + local.set $1 + br $while-continue|0 + end end - local.get $1 - i32.const 4 + local.get $2 + i32.const 3 i32.add - local.set $1 - br $while-continue|0 end end - local.get $0 - i32.load - call $~lib/rt/itcms/__visit - return + local.set $2 + local.get $1 + i32.const 2 + i32.add + local.set $1 + br $while-continue|0 end + end + local.get $2 + call $~lib/rt/tlsf/__alloc + local.set $1 + local.get $0 + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u + local.get $1 + call $~lib/string/String.UTF8.encodeUnsafe + local.get $2 + i32.ne + if + i32.const 0 + i32.const 4112 + i32.const 184 + i32.const 3 + call $~lib/wasi/index/abort + unreachable + end + i32.const 1088 + local.get $1 + i32.store + i32.const 1092 + local.get $2 + i32.store + i32.const 1 + i32.const 1088 + i32.const 1 + i32.const 1096 + call $~lib/bindings/wasi_snapshot_preview1/fd_write + local.set $0 + local.get $1 + call $~lib/rt/tlsf/__free + local.get $0 + i32.const 65535 + i32.and + if + local.get $0 + call $~lib/bindings/wasi_snapshot_preview1/errnoToString + i32.const 4112 + i32.const 189 + i32.const 12 + call $~lib/wasi/index/abort + unreachable + end + ) + (func $~lib/rt/itcms/initLazy (param $0 i32) (result i32) + local.get $0 + local.get $0 + i32.store offset=4 + local.get $0 + local.get $0 + i32.store offset=8 + local.get $0 + ) + (func $~lib/rt/itcms/visitRoots + (local $0 i32) + (local $1 i32) + i32.const 4336 + call $~lib/rt/itcms/__visit + i32.const 4416 + call $~lib/rt/itcms/__visit + global.get $~lib/process/process.argv + local.tee $0 + if local.get $0 - i32.load call $~lib/rt/itcms/__visit + end + global.get $~lib/process/process.env + local.tee $0 + if local.get $0 - i32.load offset=8 - local.tee $2 - local.tee $1 + call $~lib/rt/itcms/__visit + end + global.get $std-wasi/process/argv + local.tee $0 + if local.get $0 - i32.load offset=16 - i32.const 12 - i32.mul - i32.add - local.set $0 - loop $while-continue|00 - local.get $0 - local.get $1 - i32.gt_u - if - local.get $1 - i32.load offset=8 - i32.const 1 - i32.and - i32.eqz - if - local.get $1 - i32.load - call $~lib/rt/itcms/__visit - local.get $1 - i32.load offset=4 - call $~lib/rt/itcms/__visit - end - local.get $1 - i32.const 12 - i32.add - local.set $1 - br $while-continue|00 - end - end - local.get $2 call $~lib/rt/itcms/__visit - return end - unreachable - ) - (func $~start - global.get $~started + global.get $std-wasi/process/env + local.tee $0 if - return + local.get $0 + call $~lib/rt/itcms/__visit end - i32.const 1 - global.set $~started - call $start:std-wasi/process - ) - (func $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 5884 - i32.lt_s + global.get $std-wasi/process/envKeys + local.tee $0 if - i32.const 22288 - i32.const 22336 - i32.const 1 - i32.const 1 - call $~lib/wasi/index/abort - unreachable + local.get $0 + call $~lib/rt/itcms/__visit + end + i32.const 4672 + call $~lib/rt/itcms/__visit + i32.const 4448 + call $~lib/rt/itcms/__visit + i32.const 4912 + call $~lib/rt/itcms/__visit + i32.const 5280 + call $~lib/rt/itcms/__visit + i32.const 4240 + call $~lib/rt/itcms/__visit + i32.const 5664 + 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 4544 + i32.const 159 + i32.const 16 + call $~lib/wasi/index/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/wasi/index/abort (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 - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - i32.const 0 - i32.const 12 - i32.store - i32.const 12 - i64.const 9071471065260641 - i64.store + (func $~lib/rt/itcms/Object#set:color (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + i32.or + i32.store offset=4 + ) + (func $~lib/rt/itcms/Object#set:next (param $0 i32) (param $1 i32) + 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#linkTo (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + local.get $1 + i32.load offset=8 + local.set $3 local.get $0 - if (result i32) - 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 19 - call $~lib/string/String.UTF8.encodeUnsafe - i32.const 19 - i32.add - else - i32.const 19 - end - local.tee $4 - i32.const 544106784 - i32.store - local.get $4 - i32.const 4 - i32.add - local.set $4 local.get $1 - if - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $1 - local.get $1 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 1 - i32.shr_u - local.get $4 - call $~lib/string/String.UTF8.encodeUnsafe - local.get $4 - i32.add - local.set $4 - end - local.get $4 - i32.const 40 - i32.store8 local.get $2 - call $~lib/util/number/decimalCount32 - local.tee $0 - local.get $4 - i32.const 1 - i32.add - i32.add - local.set $4 - loop $do-continue|0 - local.get $4 - i32.const 1 - i32.sub - local.tee $4 - local.get $2 - i32.const 10 - i32.rem_u - i32.const 48 - i32.add - i32.store8 - local.get $2 - i32.const 10 - i32.div_u - local.tee $2 - br_if $do-continue|0 - end + i32.or + i32.store offset=4 local.get $0 - local.get $4 - i32.add - local.tee $0 - i32.const 58 - i32.store8 local.get $3 - call $~lib/util/number/decimalCount32 - local.tee $1 + i32.store offset=8 + local.get $3 local.get $0 - i32.const 1 - i32.add - i32.add - local.set $4 - loop $do-continue|1 - local.get $4 - i32.const 1 - i32.sub - local.tee $4 - local.get $3 - i32.const 10 - i32.rem_u - i32.const 48 - i32.add - i32.store8 - local.get $3 - i32.const 10 - i32.div_u - local.tee $3 - br_if $do-continue|1 - end + call $~lib/rt/itcms/Object#set:next local.get $1 - local.get $4 - i32.add - local.tee $0 - i32.const 2601 - i32.store16 - i32.const 4 local.get $0 - i32.const 10 - i32.sub - i32.store - i32.const 2 - i32.const 0 - i32.const 1 - i32.const 8 - call $~lib/bindings/wasi_snapshot_preview1/fd_write - drop - i32.const 255 - call $~lib/bindings/wasi_snapshot_preview1/proc_exit - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer + i32.store offset=8 ) - (func $~lib/process/writeString (param $0 i32) + (func $~lib/rt/itcms/Object#makeGray (param $0 i32) (local $1 i32) (local $2 i32) - (local $3 i32) - (local $4 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - i32.const -1 - local.set $3 - i32.const -1 - local.set $4 - i32.const -1 - local.set $1 - global.get $~lib/memory/__stack_pointer local.get $0 - i32.store - block $break|0 - block $case4|0 - block $case3|0 - block $case2|0 - block $case1|0 - block $case0|0 - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 1 - i32.shr_u - br_table $case4|0 $case3|0 $case2|0 $case1|0 $case0|0 $break|0 - end - local.get $0 - i32.load16_u offset=6 - local.tee $1 - i32.const 128 - i32.ge_u - br_if $break|0 - end - local.get $0 - i32.load16_u offset=4 - local.tee $4 - i32.const 128 - i32.ge_u - br_if $break|0 - end - local.get $0 - i32.load16_u offset=2 - local.tee $3 - i32.const 128 - i32.ge_u - br_if $break|0 - end + 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 4544 + i32.const 147 + i32.const 30 + call $~lib/wasi/index/abort + unreachable + end + local.get $1 + global.set $~lib/rt/itcms/iter + end + block $__inlined_func$~lib/rt/itcms/Object#unlink + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + local.tee $1 + i32.eqz + if + i32.const 0 local.get $0 - i32.load16_u - local.tee $2 - i32.const 128 - i32.ge_u - br_if $break|0 - i32.const 1088 - i32.const 1096 - i32.store - i32.const 1092 - local.get $3 - i32.const -1 - i32.ne - i32.const 1 - i32.add - local.get $4 - i32.const -1 - i32.ne - i32.add - local.get $1 - i32.const -1 - i32.ne - i32.add - i32.store - i32.const 1096 - local.get $2 - local.get $3 - i32.const 8 - i32.shl - i32.or - local.get $4 - i32.const 16 - i32.shl - i32.or - local.get $1 - i32.const 24 - i32.shl - i32.or - i32.store - i32.const 1 - i32.const 1088 - i32.const 1 - i32.const 1100 - call $~lib/bindings/wasi_snapshot_preview1/fd_write - local.tee $0 - i32.const 65535 - i32.and + i32.const 22268 + i32.lt_u + local.get $0 + i32.load offset=8 + select + i32.eqz if - local.get $0 - call $~lib/bindings/wasi_snapshot_preview1/errnoToString - i32.const 4112 - i32.const 178 - i32.const 16 + i32.const 0 + i32.const 4544 + i32.const 127 + i32.const 18 call $~lib/wasi/index/abort unreachable end + br $__inlined_func$~lib/rt/itcms/Object#unlink end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - return + local.get $0 + i32.load offset=8 + local.tee $2 + i32.eqz + if + i32.const 0 + i32.const 4544 + i32.const 131 + i32.const 16 + call $~lib/wasi/index/abort + unreachable + end + local.get $1 + local.get $2 + i32.store offset=8 + local.get $2 + local.get $1 + call $~lib/rt/itcms/Object#set:next end - global.get $~lib/memory/__stack_pointer local.get $0 - i32.store + global.get $~lib/rt/itcms/toSpace local.get $0 - local.set $1 - i32.const 0 - local.set $2 + i32.load offset=12 + local.tee $1 + i32.const 1 + i32.le_u + if (result i32) + i32.const 1 + else + local.get $1 + i32.const 5840 + i32.load + i32.gt_u + if + i32.const 4672 + i32.const 4736 + i32.const 22 + i32.const 28 + call $~lib/wasi/index/abort + unreachable + end + local.get $1 + i32.const 3 + i32.shl + i32.const 5844 + i32.add + i32.load + i32.const 32 + i32.and + end + 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 $0 i32) local.get $0 + i32.eqz + if + return + end + global.get $~lib/rt/itcms/white local.get $0 i32.const 20 i32.sub - i32.load offset=16 - i32.add - local.set $3 - loop $while-continue|0 - local.get $1 - local.get $3 - i32.lt_u - if - local.get $1 - i32.load16_u - local.tee $4 - i32.const 128 - i32.lt_u - if (result i32) - local.get $2 - i32.const 1 - i32.add - else - local.get $4 - i32.const 2048 - i32.lt_u - if (result i32) - local.get $2 - i32.const 2 - i32.add - else - local.get $3 - local.get $1 - i32.const 2 - i32.add - i32.gt_u + 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/itcms/step (result i32) + (local $0 i32) + (local $1 i32) + block $folding-inner0 + 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.get $4 - i32.const 64512 - i32.and - i32.const 55296 - i32.eq - select + global.set $~lib/rt/itcms/visitCount + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/iter + br $folding-inner0 + 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.load16_u offset=2 - i32.const 64512 + local.get $0 + i32.load offset=4 + i32.const 3 i32.and - i32.const 56320 - i32.eq + i32.ne + if + local.get $0 + local.get $1 + call $~lib/rt/itcms/Object#set:color + i32.const 0 + global.set $~lib/rt/itcms/visitCount + local.get $0 + i32.const 20 + i32.add + call $~lib/rt/__visit_members + br $folding-inner0 + 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 22268 + i32.lt_u if - local.get $2 - i32.const 4 - i32.add - local.set $2 - local.get $1 + local.get $0 + i32.load + call $~lib/rt/itcms/__visit + local.get $0 i32.const 4 i32.add - local.set $1 + local.set $0 br $while-continue|0 end end - local.get $2 - i32.const 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 + i32.const 3 + i32.and + i32.ne + if + local.get $0 + local.get $1 + call $~lib/rt/itcms/Object#set:color + 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 + br $folding-inner0 + 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 + i32.const -4 + i32.and + global.set $~lib/rt/itcms/iter + global.get $~lib/rt/itcms/white + i32.eqz + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + i32.ne + if + i32.const 0 + i32.const 4544 + i32.const 228 + i32.const 20 + call $~lib/wasi/index/abort + unreachable + end + local.get $0 + i32.const 22268 + 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 - local.set $2 - local.get $1 - i32.const 2 - i32.add - local.set $1 - br $while-continue|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 + global.set $~lib/rt/itcms/state end - end - local.get $2 - call $~lib/rt/tlsf/__alloc - local.set $1 - 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 - local.get $1 - call $~lib/string/String.UTF8.encodeUnsafe - local.get $2 - i32.ne - if i32.const 0 - i32.const 4112 - i32.const 184 - i32.const 3 - call $~lib/wasi/index/abort - unreachable - end - i32.const 1088 - local.get $1 - i32.store - i32.const 1092 - local.get $2 - i32.store - i32.const 1 - i32.const 1088 - i32.const 1 - i32.const 1096 - call $~lib/bindings/wasi_snapshot_preview1/fd_write - local.set $0 - local.get $1 - call $~lib/rt/tlsf/__free - local.get $0 - i32.const 65535 - i32.and - if - local.get $0 - call $~lib/bindings/wasi_snapshot_preview1/errnoToString - i32.const 4112 - i32.const 189 - i32.const 12 - call $~lib/wasi/index/abort - unreachable + return end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/process/WritableStream#write<~lib/string/String> (param $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 - local.get $0 - i32.store - local.get $0 - call $~lib/process/writeString - 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) - 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 - local.get $0 - i32.store - local.get $0 - call $~lib/process/WritableStream#write<~lib/string/String> - global.get $~lib/memory/__stack_pointer - i32.const 4304 - i32.store - i32.const 4304 - call $~lib/process/WritableStream#write<~lib/string/String> - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer + global.get $~lib/rt/itcms/visitCount ) - (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 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 $1 - local.get $0 - i32.load offset=12 - i32.ge_u - if + (func $~lib/memory/memory.fill (param $0 i32) (param $1 i32) + (local $2 i32) + block $~lib/util/memory/memset|inlined.0 + local.get $1 + i32.eqz + br_if $~lib/util/memory/memset|inlined.0 + local.get $0 + i32.const 0 + i32.store8 + local.get $0 local.get $1 + i32.add + i32.const 4 + i32.sub + local.tee $2 i32.const 0 - i32.lt_s - if - i32.const 4672 - i32.const 4496 - i32.const 108 - i32.const 22 - call $~lib/wasi/index/abort - unreachable - end + i32.store8 offset=3 + local.get $1 + i32.const 2 + i32.le_u + br_if $~lib/util/memory/memset|inlined.0 + local.get $0 + i32.const 0 + i32.store8 offset=1 local.get $0 + i32.const 0 + i32.store8 offset=2 + local.get $2 + i32.const 0 + i32.store8 offset=2 + local.get $2 + i32.const 0 + i32.store8 offset=1 local.get $1 - i32.const 1 + i32.const 6 + i32.le_u + br_if $~lib/util/memory/memset|inlined.0 + local.get $0 + i32.const 0 + i32.store8 offset=3 + local.get $2 + i32.const 0 + i32.store8 + local.get $1 + i32.const 8 + i32.le_u + br_if $~lib/util/memory/memset|inlined.0 + local.get $0 + i32.const 0 + local.get $0 + i32.sub + i32.const 3 + i32.and + local.tee $2 i32.add - local.tee $3 - call $~lib/array/ensureSize + local.tee $0 + i32.const 0 + i32.store local.get $0 - local.get $3 + local.get $1 + local.get $2 + i32.sub + i32.const -4 + i32.and + local.tee $2 + i32.add + i32.const 28 + i32.sub + local.tee $1 + i32.const 0 + i32.store offset=24 + local.get $2 + i32.const 8 + i32.le_u + br_if $~lib/util/memory/memset|inlined.0 + local.get $0 + i32.const 0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store offset=8 + local.get $1 + i32.const 0 + i32.store offset=16 + local.get $1 + i32.const 0 + i32.store offset=20 + local.get $2 + i32.const 24 + i32.le_u + br_if $~lib/util/memory/memset|inlined.0 + local.get $0 + i32.const 0 + i32.store offset=12 + local.get $0 + i32.const 0 + i32.store offset=16 + local.get $0 + i32.const 0 + i32.store offset=20 + local.get $0 + i32.const 0 + i32.store offset=24 + local.get $1 + i32.const 0 + i32.store + local.get $1 + i32.const 0 + i32.store offset=4 + local.get $1 + i32.const 0 + i32.store offset=8 + local.get $1 + i32.const 0 i32.store offset=12 + local.get $0 + local.get $0 + i32.const 4 + i32.and + i32.const 24 + i32.add + local.tee $1 + i32.add + local.set $0 + local.get $2 + local.get $1 + i32.sub + local.set $1 + loop $while-continue|0 + local.get $1 + i32.const 32 + i32.ge_u + if + local.get $0 + i64.const 0 + i64.store + local.get $0 + i64.const 0 + i64.store offset=8 + local.get $0 + i64.const 0 + i64.store offset=16 + local.get $0 + i64.const 0 + i64.store offset=24 + local.get $1 + i32.const 32 + i32.sub + local.set $1 + local.get $0 + i32.const 32 + i32.add + local.set $0 + br $while-continue|0 + end + end end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $2 - 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.store - local.get $0 - local.get $2 - i32.const 1 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer ) - (func $~lib/process/lazyArgv (result i32) - (local $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) - 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 - i32.const 1088 - i32.const 1092 - call $~lib/bindings/wasi_snapshot_preview1/args_sizes_get - local.tee $0 - i32.const 65535 - i32.and + local.get $0 + i32.const 1073741804 + i32.ge_u if - local.get $0 - call $~lib/bindings/wasi_snapshot_preview1/errnoToString - i32.const 4112 - i32.const 66 - i32.const 12 + i32.const 4240 + i32.const 4544 + i32.const 260 + i32.const 31 call $~lib/wasi/index/abort unreachable end - i32.const 1088 - i32.load - local.tee $0 - i32.const 2 - i32.shl - local.tee $1 - i32.const 1092 - i32.load + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/threshold + i32.ge_u + if + block $__inlined_func$~lib/rt/itcms/interrupt + i32.const 2048 + local.set $2 + loop $do-continue|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 + end + local.get $2 + i32.const 0 + i32.gt_s + br_if $do-continue|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 $0 + i32.const 16 i32.add - local.tee $5 call $~lib/rt/tlsf/__alloc + i32.const 4 + i32.sub local.tee $2 local.get $1 + i32.store offset=12 + local.get $2 + local.get $0 + i32.store offset=16 + local.get $2 + 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 $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 - call $~lib/bindings/wasi_snapshot_preview1/args_get local.tee $1 - i32.const 65535 - i32.and + local.get $0 + call $~lib/memory/memory.fill + local.get $1 + ) + (func $~lib/rt/itcms/__link (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + local.get $1 + i32.eqz if - local.get $1 - call $~lib/bindings/wasi_snapshot_preview1/errnoToString - i32.const 4112 - i32.const 73 - i32.const 12 + return + end + local.get $0 + i32.eqz + if + i32.const 0 + i32.const 4544 + i32.const 294 + i32.const 14 call $~lib/wasi/index/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.get $0 + global.get $~lib/rt/itcms/white + local.get $1 + i32.const 20 + i32.sub local.tee $1 - call $~lib/array/Array<~lib/string/String>#constructor - local.tee $0 - i32.store - loop $for-loop|0 - local.get $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 + local.set $4 local.get $3 - i32.gt_s + global.get $~lib/rt/itcms/white + i32.eqz + i32.eq if - global.get $~lib/memory/__stack_pointer local.get $2 - local.get $3 - i32.const 2 - i32.shl - i32.add - i32.load - local.tee $4 + if + local.get $0 + call $~lib/rt/itcms/Object#makeGray + else + local.get $1 + call $~lib/rt/itcms/Object#makeGray + end + else + global.get $~lib/rt/itcms/state + i32.const 1 + i32.eq + i32.const 0 local.get $4 - local.get $5 - i32.add - local.get $2 - i32.sub - call $~lib/string/String.UTF8.decodeUnsafe - local.tee $4 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer + i32.const 3 + i32.eq + select + if + local.get $1 + call $~lib/rt/itcms/Object#makeGray + end + end + end + ) + (func $~lib/array/Array<~lib/string/String>#set:buffer (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + local.get $0 + local.get $1 + i32.const 0 + call $~lib/rt/itcms/__link + ) + (func $~lib/memory/memory.copy (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + block $~lib/util/memory/memmove|inlined.0 + local.get $2 + local.set $4 + local.get $0 + local.get $1 + i32.eq + br_if $~lib/util/memory/memmove|inlined.0 + local.get $0 + local.get $1 + i32.lt_u + if + local.get $1 + i32.const 7 + i32.and local.get $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=12 + i32.const 7 + i32.and + i32.eq + if + loop $while-continue|0 + local.get $0 + i32.const 7 + i32.and + if + local.get $4 + i32.eqz + br_if $~lib/util/memory/memmove|inlined.0 + local.get $4 + i32.const 1 + i32.sub + local.set $4 + local.get $0 + local.tee $2 + i32.const 1 + i32.add + local.set $0 + local.get $1 + local.tee $3 + i32.const 1 + i32.add + local.set $1 + local.get $2 + local.get $3 + i32.load8_u + i32.store8 + br $while-continue|0 + end + end + loop $while-continue|1 + local.get $4 + i32.const 8 + i32.ge_u + if + local.get $0 + local.get $1 + i64.load + i64.store + local.get $4 + i32.const 8 + i32.sub + local.set $4 + local.get $0 + i32.const 8 + i32.add + local.set $0 + local.get $1 + i32.const 8 + i32.add + local.set $1 + br $while-continue|1 + end + end + end + loop $while-continue|2 + local.get $4 + if + local.get $0 + local.tee $2 + i32.const 1 + i32.add + local.set $0 + local.get $1 + local.tee $3 + i32.const 1 + i32.add + local.set $1 + local.get $2 + local.get $3 + i32.load8_u + i32.store8 + local.get $4 + i32.const 1 + i32.sub + local.set $4 + br $while-continue|2 + end + end + else + local.get $1 + i32.const 7 + i32.and local.get $0 - local.get $3 - local.get $4 - call $~lib/array/Array<~lib/string/String>#__set - local.get $3 - i32.const 1 - i32.add - local.set $3 - br $for-loop|0 + i32.const 7 + i32.and + i32.eq + if + loop $while-continue|3 + local.get $0 + local.get $4 + i32.add + i32.const 7 + i32.and + if + local.get $4 + i32.eqz + br_if $~lib/util/memory/memmove|inlined.0 + local.get $4 + i32.const 1 + i32.sub + local.tee $4 + local.get $0 + i32.add + local.get $1 + local.get $4 + i32.add + i32.load8_u + i32.store8 + br $while-continue|3 + end + end + loop $while-continue|4 + local.get $4 + i32.const 8 + i32.ge_u + if + local.get $4 + i32.const 8 + i32.sub + local.tee $4 + local.get $0 + i32.add + local.get $1 + local.get $4 + i32.add + i64.load + i64.store + br $while-continue|4 + end + end + end + loop $while-continue|5 + local.get $4 + if + local.get $4 + i32.const 1 + i32.sub + local.tee $4 + local.get $0 + i32.add + local.get $1 + local.get $4 + i32.add + i32.load8_u + i32.store8 + br $while-continue|5 + end + end end end - local.get $2 - call $~lib/rt/tlsf/__free - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 ) - (func $~lib/string/String#indexOf (param $0 i32) (result i32) - (local $1 i32) + (func $~lib/rt/itcms/__renew (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 - call $~stack_check - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 5104 - i32.store - i32.const 5100 - i32.load - 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 0 - return - end - 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 $1 - i32.eqz + local.tee $2 + i32.load + i32.const -4 + i32.and + i32.const 16 + i32.sub + i32.le_u if - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const -1 + local.get $2 + local.get $1 + i32.store offset=16 + local.get $0 return end - i32.const 0 local.get $1 + local.get $2 + i32.load offset=12 + call $~lib/rt/itcms/__new + local.tee $3 + local.get $0 + local.get $1 + local.get $2 + i32.load offset=16 + local.tee $0 + local.get $0 local.get $1 - i32.const 0 - i32.gt_s + i32.gt_u select - local.set $2 - local.get $1 + call $~lib/memory/memory.copy local.get $3 - i32.sub - local.set $1 - loop $for-loop|0 + ) + (func $~lib/array/ensureSize (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + 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 4448 + i32.const 4496 + i32.const 14 + i32.const 48 + call $~lib/wasi/index/abort + unreachable + end + local.get $2 + local.get $0 + i32.load + local.tee $4 local.get $1 + i32.const 2 + i32.shl + local.tee $3 + call $~lib/rt/itcms/__renew + local.tee $1 + i32.add + local.get $3 local.get $2 - i32.ge_s + i32.sub + call $~lib/memory/memory.fill + local.get $1 + local.get $4 + i32.ne if - global.get $~lib/memory/__stack_pointer local.get $0 + local.get $1 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 5104 + local.get $0 + local.get $1 i32.store offset=4 local.get $0 - local.get $2 - i32.const 5104 - 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 + 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 8 - i32.add - 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/array/Array<~lib/string/String>#__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.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 - 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 + i32.load offset=12 + i32.ge_u + if + local.get $1 + i32.const 0 + i32.lt_s + if + i32.const 4672 + i32.const 4496 + i32.const 108 + i32.const 22 + call $~lib/wasi/index/abort + unreachable + end + local.get $0 + local.get $1 + i32.const 1 + i32.add + local.tee $3 + call $~lib/array/ensureSize + local.get $0 + local.get $3 + i32.store offset=12 + end + local.get $0 + i32.load offset=4 local.get $1 - local.get $2 - i32.gt_s - select - local.tee $2 - local.get $2 - local.get $3 - i32.lt_s - select - i32.const 1 + i32.const 2 i32.shl - local.tee $4 - local.get $3 + i32.add local.get $2 + i32.store + local.get $0 local.get $2 - local.get $3 - i32.gt_s - select i32.const 1 - i32.shl - local.tee $2 - 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 5136 - return - end + call $~lib/rt/itcms/__link + ) + (func $~lib/map/Map<~lib/string/String,~lib/string/String>#set:entries (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=8 + local.get $0 + local.get $1 i32.const 0 - local.get $4 + call $~lib/rt/itcms/__link + ) + (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.eq + i32.add + local.tee $1 + i32.const 7 + i32.and local.get $2 + i32.const 7 + i32.and + i32.or + i32.eqz + i32.const 0 + local.get $3 + i32.const 4 + i32.ge_u select if - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer + loop $do-continue|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-continue|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 - return + 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 - local.get $3 - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $1 - i32.store offset=4 - local.get $1 - local.get $0 - local.get $2 - i32.add - local.get $3 - call $~lib/memory/memory.copy - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $1 + i32.const 0 ) (func $~lib/util/hash/hashStr (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 - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store i32.const -2128831035 local.set $1 local.get $0 if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store local.get $0 i32.const 20 i32.sub @@ -4047,426 +3392,480 @@ i32.mul local.set $1 local.get $2 - i32.const 1 + i32.const 1 + i32.add + local.set $2 + br $for-loop|0 + end + end + end + local.get $1 + ) + (func $~lib/map/Map<~lib/string/String,~lib/string/String>#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 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 + 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 + local.get $0 + i32.load offset=8 + local.tee $8 + 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 $8 + i32.ne + if + local.get $8 + i32.load offset=8 + i32.const 1 + i32.and + i32.eqz + if + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.load + local.tee $7 + i32.store offset=8 + local.get $2 + local.get $7 + i32.store + local.get $2 + local.get $8 + i32.load offset=4 + i32.store offset=4 + local.get $2 + local.get $6 + local.get $7 + call $~lib/util/hash/hashStr + local.get $1 + i32.and + i32.const 2 + i32.shl + i32.add + local.tee $7 + i32.load + i32.store offset=8 + local.get $7 + local.get $2 + i32.store + local.get $2 + i32.const 12 i32.add local.set $2 - br $for-loop|0 end + local.get $8 + i32.const 12 + i32.add + local.set $8 + br $while-continue|0 end end + local.get $0 + local.get $6 + call $~lib/array/Array<~lib/string/String>#set:buffer + local.get $0 + local.get $1 + i32.store offset=4 + local.get $0 + local.get $3 + call $~lib/map/Map<~lib/string/String,~lib/string/String>#set:entries + local.get $0 + local.get $5 + 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 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 ) - (func $~lib/map/Map<~lib/string/String,~lib/string/String>#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 8 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store + (func $~lib/util/number/utoa_dec_simple (param $0 i32) (param $1 i32) (param $2 i32) + loop $do-continue|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 + i32.const 10 + i32.rem_u + i32.const 48 + i32.add + i32.store16 + local.get $1 + i32.const 10 + i32.div_u + local.tee $1 + br_if $do-continue|0 + end + ) + (func $~lib/util/number/decimalCount64High (param $0 i64) (result i32) local.get $0 - i32.load - local.get $2 + i64.const 100000000000 + i64.ge_u + i32.const 10 + i32.add local.get $0 - i32.load offset=4 - i32.and - i32.const 2 - i32.shl + i64.const 10000000000 + i64.ge_u i32.add - i32.load - local.set $0 - loop $while-continue|0 + 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 + local.get $0 + i64.const 1000000000000 + i64.lt_u + select + local.get $0 + i64.const 10000000000000000 + i64.ge_u + i32.const 16 + i32.add + 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 + local.get $0 + i64.const 100000000000000000 + i64.lt_u + select + local.get $0 + i64.const 1000000000000000 + i64.lt_u + select + ) + (func $~lib/util/number/utoa_dec_simple (param $0 i32) (param $1 i64) (param $2 i32) + loop $do-continue|0 local.get $0 - if - local.get $0 - i32.load offset=8 - local.tee $4 - i32.const 1 - i32.and - if - i32.const 0 - local.set $2 - else - global.get $~lib/memory/__stack_pointer + local.get $2 + i32.const 1 + i32.sub + local.tee $2 + i32.const 1 + i32.shl + i32.add + local.get $1 + i64.const 10 + i64.rem_u + i32.wrap_i64 + i32.const 48 + i32.add + i32.store16 + local.get $1 + i64.const 10 + i64.div_u + local.tee $1 + i64.const 0 + i64.ne + br_if $do-continue|0 + end + ) + (func $~lib/rt/__visit_members (param $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + block $invalid + block $~lib/map/Map<~lib/string/String,~lib/string/String> + block $~lib/array/Array<~lib/string/String> + block $~lib/arraybuffer/ArrayBufferView + block $~lib/string/String + block $~lib/arraybuffer/ArrayBuffer + local.get $0 + i32.const 8 + i32.sub + i32.load + br_table $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $~lib/array/Array<~lib/string/String> $~lib/map/Map<~lib/string/String,~lib/string/String> $invalid + end + return + end + return + end local.get $0 i32.load - local.tee $2 - i32.store - global.get $~lib/memory/__stack_pointer + 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 + local.get $0 + i32.load offset=12 + i32.const 2 + i32.shl + i32.add + local.set $2 + loop $while-continue|0 local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - block $__inlined_func$~lib/string/String.__eq + local.get $2 + i32.lt_u + if local.get $1 - local.get $2 - i32.eq + i32.load + local.tee $3 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/string/String.__eq - end - block $folding-inner0 - local.get $1 - i32.eqz - i32.const 1 - local.get $2 - select - br_if $folding-inner0 - 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 $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 $2 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $2 - i32.const 0 - local.get $1 local.get $3 - call $~lib/util/string/compareImpl - i32.eqz - local.set $2 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - br $__inlined_func$~lib/string/String.__eq + call $~lib/rt/itcms/__visit end - global.get $~lib/memory/__stack_pointer - i32.const 8 + local.get $1 + i32.const 4 i32.add - global.set $~lib/memory/__stack_pointer - i32.const 0 - local.set $2 + local.set $1 + br $while-continue|0 end end - local.get $2 + local.get $0 + i32.load + call $~lib/rt/itcms/__visit + return + end + local.get $0 + i32.load + call $~lib/rt/itcms/__visit + local.get $0 + i32.load offset=8 + local.tee $2 + local.tee $1 + local.get $0 + i32.load offset=16 + i32.const 12 + i32.mul + i32.add + local.set $0 + loop $while-continue|00 + local.get $0 + local.get $1 + i32.gt_u if - global.get $~lib/memory/__stack_pointer - i32.const 8 + local.get $1 + i32.load offset=8 + i32.const 1 + i32.and + i32.eqz + if + local.get $1 + i32.load + call $~lib/rt/itcms/__visit + local.get $1 + i32.load offset=4 + call $~lib/rt/itcms/__visit + end + local.get $1 + i32.const 12 i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - return + local.set $1 + br $while-continue|00 end - local.get $4 - i32.const -2 - i32.and - local.set $0 - br $while-continue|0 end + local.get $2 + call $~lib/rt/itcms/__visit + return + end + unreachable + ) + (func $~start + global.get $~started + if + return end + i32.const 1 + global.set $~started + call $start:std-wasi/process + ) + (func $~stack_check global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 0 + i32.const 5884 + i32.lt_s + if + i32.const 22288 + i32.const 22336 + i32.const 1 + i32.const 1 + call $~lib/wasi/index/abort + unreachable + end ) - (func $~lib/map/Map<~lib/string/String,~lib/string/String>#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/console/console.log (param $0 i32) global.get $~lib/memory/__stack_pointer - i32.const 20 + i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=8 - global.get $~lib/memory/__stack_pointer i32.const 0 - i32.store offset=16 - 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 - local.get $0 - i32.load offset=8 - local.tee $8 - 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 $8 - i32.ne - if - local.get $8 - i32.load offset=8 - i32.const 1 - i32.and - i32.eqz - if - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.load - local.tee $7 - i32.store offset=8 - local.get $2 - local.get $7 - i32.store - local.get $2 - local.get $8 - i32.load offset=4 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=16 - local.get $2 - local.get $6 - local.get $7 - call $~lib/util/hash/hashStr - local.get $1 - i32.and - i32.const 2 - i32.shl - i32.add - local.tee $7 - i32.load - i32.store offset=8 - local.get $7 - local.get $2 - i32.store - local.get $2 - i32.const 12 - i32.add - local.set $2 - end - local.get $8 - i32.const 12 - i32.add - local.set $8 - br $while-continue|0 - end - end - local.get $0 - local.get $6 - call $~lib/array/Array<~lib/string/String>#set:buffer - local.get $0 - local.get $1 - i32.store offset=4 local.get $0 - local.get $3 - call $~lib/map/Map<~lib/string/String,~lib/string/String>#set:entries - local.get $0 - local.get $5 - i32.store offset=12 - local.get $0 - local.get $0 - i32.load offset=20 - i32.store offset=16 + call $~lib/process/writeString global.get $~lib/memory/__stack_pointer - i32.const 20 + i32.const 4304 + i32.store + i32.const 4304 + call $~lib/process/writeString + global.get $~lib/memory/__stack_pointer + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/map/Map<~lib/string/String,~lib/string/String>#set (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/map/Map<~lib/string/String,~lib/string/String>#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 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 - global.get $~lib/memory/__stack_pointer - local.get $1 i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $~lib/util/hash/hashStr - local.set $4 - 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 + i32.load + local.get $2 local.get $0 - local.get $1 - local.get $4 - call $~lib/map/Map<~lib/string/String,~lib/string/String>#find - local.tee $3 - if - local.get $3 - local.get $2 - i32.store offset=4 - local.get $0 + i32.load offset=4 + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $2 + loop $while-continue|0 local.get $2 - i32.const 1 - call $~lib/rt/itcms/__link - else - local.get $0 - i32.load offset=16 - local.get $0 - i32.load offset=12 - i32.eq if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - local.get $0 - i32.load offset=20 - local.get $0 - i32.load offset=12 - i32.const 3 - i32.mul - i32.const 4 - i32.div_s - i32.lt_s + local.get $2 + i32.load offset=8 + local.tee $3 + i32.const 1 + i32.and if (result i32) - local.get $0 - i32.load offset=4 + i32.const 0 else - local.get $0 - i32.load offset=4 - i32.const 1 - i32.shl - i32.const 1 - i32.or + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.load + local.tee $0 + i32.store + block $__inlined_func$~lib/string/String.__eq (result i32) + i32.const 1 + local.get $0 + local.get $1 + i32.eq + br_if $__inlined_func$~lib/string/String.__eq + drop + i32.const 0 + local.get $1 + i32.eqz + i32.const 1 + local.get $0 + select + br_if $__inlined_func$~lib/string/String.__eq + drop + i32.const 0 + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u + local.tee $4 + local.get $1 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u + i32.ne + br_if $__inlined_func$~lib/string/String.__eq + drop + local.get $0 + i32.const 0 + local.get $1 + local.get $4 + call $~lib/util/string/compareImpl + i32.eqz + end end - call $~lib/map/Map<~lib/string/String,~lib/string/String>#rehash + 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 $3 + i32.const -2 + i32.and + local.set $2 + br $while-continue|0 end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.load offset=8 - local.tee $3 - i32.store - 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 $0 - local.get $1 - i32.const 1 - call $~lib/rt/itcms/__link - local.get $3 - local.get $2 - i32.store offset=4 - local.get $0 - local.get $2 - i32.const 1 - call $~lib/rt/itcms/__link - local.get $0 - local.get $0 - i32.load offset=20 - i32.const 1 - i32.add - i32.store offset=20 - local.get $3 - local.get $0 - i32.load - 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.const 4 i32.add global.set $~lib/memory/__stack_pointer + i32.const 0 ) (func $~lib/process/lazyEnv (result i32) (local $0 i32) @@ -4477,8 +3876,9 @@ (local $5 i32) (local $6 i32) (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 call $~stack_check @@ -4488,9 +3888,6 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store offset=8 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=16 i32.const 1088 i32.const 1092 call $~lib/bindings/wasi_snapshot_preview1/environ_sizes_get @@ -4508,18 +3905,18 @@ end i32.const 1088 i32.load - local.tee $6 + local.tee $7 i32.const 2 i32.shl local.tee $0 i32.const 1092 i32.load i32.add - local.tee $7 + local.tee $8 call $~lib/rt/tlsf/__alloc - local.tee $2 + local.tee $4 local.get $0 - local.get $2 + local.get $4 i32.add call $~lib/bindings/wasi_snapshot_preview1/environ_get local.tee $0 @@ -4547,127 +3944,165 @@ i32.const 24 i32.const 4 call $~lib/rt/itcms/__new - local.tee $0 + local.tee $1 i32.store - local.get $0 + local.get $1 i32.const 16 call $~lib/arraybuffer/ArrayBuffer#constructor call $~lib/array/Array<~lib/string/String>#set:buffer - local.get $0 + local.get $1 i32.const 3 i32.store offset=4 - local.get $0 + local.get $1 i32.const 48 call $~lib/arraybuffer/ArrayBuffer#constructor call $~lib/map/Map<~lib/string/String,~lib/string/String>#set:entries - local.get $0 + local.get $1 i32.const 4 i32.store offset=12 - local.get $0 + local.get $1 i32.const 0 i32.store offset=16 - local.get $0 + local.get $1 i32.const 0 i32.store offset=20 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store loop $for-loop|0 - local.get $3 - local.get $6 + local.get $5 + local.get $7 i32.lt_u if global.get $~lib/memory/__stack_pointer - local.get $2 - local.get $3 + local.get $4 + local.get $5 i32.const 2 i32.shl i32.add i32.load - local.tee $1 - local.get $1 - local.get $7 + local.tee $0 + local.get $0 + local.get $8 i32.add - local.get $2 + local.get $4 i32.sub call $~lib/string/String.UTF8.decodeUnsafe - local.tee $1 + local.tee $3 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 5104 - i32.store offset=12 - local.get $1 - call $~lib/string/String#indexOf - local.tee $4 + i32.store offset=8 + block $__inlined_func$~lib/string/String#indexOf + i32.const 5100 + i32.load + i32.const 1 + i32.shr_u + local.tee $6 + i32.eqz + if + i32.const 0 + local.set $0 + br $__inlined_func$~lib/string/String#indexOf + end + local.get $3 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u + local.tee $2 + i32.eqz + if + i32.const -1 + local.set $0 + br $__inlined_func$~lib/string/String#indexOf + end + i32.const 0 + local.get $2 + local.get $2 + i32.const 0 + i32.gt_s + select + local.set $0 + local.get $2 + local.get $6 + i32.sub + local.set $2 + loop $for-loop|00 + local.get $0 + local.get $2 + i32.le_s + if + local.get $3 + local.get $0 + i32.const 5104 + local.get $6 + call $~lib/util/string/compareImpl + i32.eqz + br_if $__inlined_func$~lib/string/String#indexOf + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|00 + end + end + i32.const -1 + local.set $0 + end + local.get $0 i32.const -1 i32.xor if - 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=20 - local.get $1 + local.get $3 i32.const 0 - local.get $4 + local.get $0 call $~lib/string/String#substring - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=12 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=20 - local.get $1 - local.get $4 + local.get $2 + i32.store offset=8 + local.get $3 + local.get $0 i32.const 1 i32.add i32.const 2147483647 call $~lib/string/String#substring - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=16 local.get $0 - local.get $5 + i32.store offset=12 local.get $1 + local.get $2 + local.get $0 call $~lib/map/Map<~lib/string/String,~lib/string/String>#set else - 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 global.get $~lib/memory/__stack_pointer i32.const 5136 - i32.store offset=16 - local.get $0 + i32.store offset=12 local.get $1 + local.get $3 i32.const 5136 call $~lib/map/Map<~lib/string/String,~lib/string/String>#set end - local.get $3 + local.get $5 i32.const 1 i32.add - local.set $3 + local.set $5 br $for-loop|0 end end - local.get $2 + local.get $4 call $~lib/rt/tlsf/__free global.get $~lib/memory/__stack_pointer - i32.const 24 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 + local.get $1 ) (func $start:std-wasi/process (local $0 i32) @@ -4678,7 +4113,7 @@ (local $5 i32) (local $6 i32) global.get $~lib/memory/__stack_pointer - i32.const 16 + i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check @@ -4686,8 +4121,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 i32.const 1056 i32.store @@ -4728,33 +4163,33 @@ call $~lib/console/console.log global.get $~lib/memory/__stack_pointer global.get $std-wasi/process/argv - local.tee $0 + local.tee $1 i32.store - local.get $0 + local.get $1 i32.load offset=12 local.set $2 loop $for-loop|0 - local.get $1 + local.get $0 local.get $2 i32.lt_s if global.get $~lib/memory/__stack_pointer global.get $std-wasi/process/argv - local.tee $0 + local.tee $1 i32.store offset=4 - local.get $0 local.get $1 + local.get $0 call $~lib/array/Array<~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 - call $~lib/console/console.log local.get $1 + call $~lib/console/console.log + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|0 end end @@ -4764,40 +4199,37 @@ global.set $std-wasi/process/env global.get $~lib/memory/__stack_pointer global.get $std-wasi/process/env - local.tee $1 + local.tee $2 i32.store i32.const 0 local.set $0 i32.const 0 - local.set $2 + local.set $1 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 $1 + local.get $2 i32.load offset=8 local.set $4 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.load offset=16 local.tee $6 call $~lib/array/Array<~lib/string/String>#constructor - local.tee $1 + local.tee $2 i32.store loop $for-loop|00 - local.get $2 + local.get $1 local.get $6 i32.lt_s if local.get $4 - local.get $2 + local.get $1 i32.const 12 i32.mul i32.add @@ -4807,15 +4239,12 @@ i32.and i32.eqz if - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 global.get $~lib/memory/__stack_pointer local.get $5 i32.load local.tee $5 - i32.store offset=8 - local.get $1 + i32.store offset=4 + local.get $2 local.get $0 local.get $5 call $~lib/array/Array<~lib/string/String>#__set @@ -4824,27 +4253,24 @@ i32.add local.set $0 end - local.get $2 + local.get $1 i32.const 1 i32.add - local.set $2 + local.set $1 br $for-loop|00 end end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 + local.get $2 local.get $0 call $~lib/array/ensureSize - local.get $1 + local.get $2 local.get $0 i32.store offset=12 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 + local.get $2 global.set $std-wasi/process/envKeys global.get $~lib/memory/__stack_pointer i32.const 5168 @@ -4852,80 +4278,51 @@ i32.const 5168 call $~lib/console/console.log i32.const 0 - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer global.get $std-wasi/process/envKeys - local.tee $0 + local.tee $1 i32.store - local.get $0 + local.get $1 i32.load offset=12 - local.set $4 + local.set $2 loop $for-loop|1 - local.get $1 - local.get $4 + local.get $0 + local.get $2 i32.lt_s if global.get $~lib/memory/__stack_pointer global.get $std-wasi/process/envKeys - local.tee $0 + local.tee $1 i32.store global.get $~lib/memory/__stack_pointer - local.get $0 local.get $1 + local.get $0 call $~lib/array/Array<~lib/string/String>#__get - local.tee $0 + local.tee $1 i32.store offset=8 global.get $~lib/memory/__stack_pointer i32.const 5216 i32.store offset=4 i32.const 5216 - call $~lib/process/WritableStream#write<~lib/string/String> - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 + call $~lib/process/writeString + local.get $1 call $~lib/console/console.log global.get $~lib/memory/__stack_pointer i32.const 5248 i32.store offset=4 i32.const 5248 - call $~lib/process/WritableStream#write<~lib/string/String> + call $~lib/process/writeString global.get $~lib/memory/__stack_pointer global.get $std-wasi/process/env - local.tee $2 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=12 - 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 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 + local.tee $4 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 $0 - i32.store offset=12 - local.get $2 - local.get $0 - local.get $0 + local.get $4 + local.get $1 + local.get $1 call $~lib/util/hash/hashStr call $~lib/map/Map<~lib/string/String,~lib/string/String>#find - local.tee $0 + local.tee $1 i32.eqz if i32.const 5280 @@ -4935,22 +4332,17 @@ call $~lib/wasi/index/abort unreachable end - local.get $0 - i32.load offset=4 - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 + i32.load offset=4 + local.tee $1 i32.store - local.get $0 - call $~lib/console/console.log local.get $1 + call $~lib/console/console.log + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|1 end end @@ -4963,11 +4355,11 @@ i64.const 1000000 i32.const 1088 call $~lib/bindings/wasi_snapshot_preview1/clock_time_get - local.tee $1 + local.tee $0 i32.const 65535 i32.and if - local.get $1 + local.get $0 call $~lib/bindings/wasi_snapshot_preview1/errnoToString i32.const 4112 i32.const 53 @@ -4980,11 +4372,11 @@ i64.const 1000000 i64.div_u call $~lib/util/number/itoa64 - 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/console/console.log global.get $~lib/memory/__stack_pointer i32.const 5760 @@ -4995,11 +4387,11 @@ i64.const 0 i32.const 1088 call $~lib/bindings/wasi_snapshot_preview1/clock_time_get - local.tee $1 + local.tee $0 i32.const 65535 i32.and if - local.get $1 + local.get $0 call $~lib/bindings/wasi_snapshot_preview1/errnoToString i32.const 4112 i32.const 59 @@ -5027,7 +4419,7 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 5632 - local.set $1 + local.set $0 br $__inlined_func$~lib/util/number/utoa64 end local.get $3 @@ -5038,34 +4430,34 @@ i32.wrap_i64 local.tee $2 call $~lib/util/number/decimalCount32 - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.const 1 i32.shl i32.const 1 call $~lib/rt/itcms/__new - local.tee $1 + local.tee $0 i32.store - local.get $1 - local.get $2 local.get $0 + local.get $2 + local.get $1 call $~lib/util/number/utoa_dec_simple else local.get $3 call $~lib/util/number/decimalCount64High - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.const 1 i32.shl i32.const 1 call $~lib/rt/itcms/__new - local.tee $1 + local.tee $0 i32.store - local.get $1 - local.get $3 local.get $0 + local.get $3 + local.get $1 call $~lib/util/number/utoa_dec_simple end global.get $~lib/memory/__stack_pointer @@ -5074,9 +4466,9 @@ global.set $~lib/memory/__stack_pointer end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store - local.get $1 + local.get $0 call $~lib/console/console.log global.get $~lib/memory/__stack_pointer i32.const 5808 @@ -5086,7 +4478,7 @@ i32.const 42 call $~lib/bindings/wasi_snapshot_preview1/proc_exit global.get $~lib/memory/__stack_pointer - i32.const 16 + i32.const 12 i32.add global.set $~lib/memory/__stack_pointer ) @@ -5354,14 +4746,118 @@ end end local.get $2 - local.get $1 - local.get $2 - i32.sub - call $~lib/rt/itcms/__renew + local.get $1 + local.get $2 + i32.sub + call $~lib/rt/itcms/__renew + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/process/lazyArgv (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 + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + i32.const 1088 + i32.const 1092 + call $~lib/bindings/wasi_snapshot_preview1/args_sizes_get + local.tee $0 + i32.const 65535 + i32.and + if + local.get $0 + call $~lib/bindings/wasi_snapshot_preview1/errnoToString + i32.const 4112 + i32.const 66 + i32.const 12 + call $~lib/wasi/index/abort + unreachable + end + i32.const 1088 + i32.load + local.tee $0 + i32.const 2 + i32.shl + local.tee $1 + i32.const 1092 + i32.load + i32.add + local.tee $5 + call $~lib/rt/tlsf/__alloc + local.tee $2 + local.get $1 + local.get $2 + i32.add + call $~lib/bindings/wasi_snapshot_preview1/args_get + local.tee $1 + i32.const 65535 + i32.and + if + local.get $1 + call $~lib/bindings/wasi_snapshot_preview1/errnoToString + i32.const 4112 + i32.const 73 + i32.const 12 + call $~lib/wasi/index/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + local.tee $1 + call $~lib/array/Array<~lib/string/String>#constructor + local.tee $0 + i32.store + loop $for-loop|0 + local.get $1 + local.get $3 + i32.gt_s + if + global.get $~lib/memory/__stack_pointer + local.get $2 + local.get $3 + i32.const 2 + i32.shl + i32.add + i32.load + local.tee $4 + local.get $4 + local.get $5 + i32.add + local.get $2 + i32.sub + call $~lib/string/String.UTF8.decodeUnsafe + local.tee $4 + i32.store offset=4 + local.get $0 + local.get $3 + local.get $4 + call $~lib/array/Array<~lib/string/String>#__set + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $for-loop|0 + end + end + local.get $2 + 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 $0 ) (func $~lib/array/Array<~lib/string/String>#__get (param $0 i32) (param $1 i32) (result i32) global.get $~lib/memory/__stack_pointer @@ -5446,6 +4942,226 @@ global.set $~lib/memory/__stack_pointer local.get $1 ) + (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 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 $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.lt_s + select + i32.const 1 + i32.shl + local.tee $4 + local.get $3 + local.get $2 + local.get $2 + local.get $3 + i32.gt_s + select + i32.const 1 + i32.shl + local.tee $2 + i32.sub + 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 5136 + return + end + i32.const 0 + local.get $4 + local.get $1 + i32.const 1 + i32.shl + i32.eq + local.get $2 + select + if + 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 $3 + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $1 + i32.store + local.get $1 + local.get $0 + local.get $2 + i32.add + local.get $3 + call $~lib/memory/memory.copy + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $~lib/map/Map<~lib/string/String,~lib/string/String>#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.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + local.get $1 + local.get $1 + call $~lib/util/hash/hashStr + local.tee $4 + call $~lib/map/Map<~lib/string/String,~lib/string/String>#find + local.tee $3 + if + local.get $3 + local.get $2 + i32.store offset=4 + local.get $0 + local.get $2 + i32.const 1 + call $~lib/rt/itcms/__link + else + local.get $0 + i32.load offset=16 + local.get $0 + i32.load offset=12 + i32.eq + if + local.get $0 + local.get $0 + i32.load offset=20 + 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 $0 + i32.load offset=4 + else + local.get $0 + i32.load offset=4 + i32.const 1 + i32.shl + i32.const 1 + i32.or + end + call $~lib/map/Map<~lib/string/String,~lib/string/String>#rehash + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.load offset=8 + local.tee $3 + i32.store + 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 $0 + local.get $1 + i32.const 1 + call $~lib/rt/itcms/__link + local.get $3 + local.get $2 + i32.store offset=4 + local.get $0 + local.get $2 + i32.const 1 + call $~lib/rt/itcms/__link + local.get $0 + local.get $0 + i32.load offset=20 + i32.const 1 + i32.add + i32.store offset=20 + local.get $3 + local.get $0 + i32.load + 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.add + global.set $~lib/memory/__stack_pointer + ) (func $~lib/util/number/itoa64 (param $0 i64) (result i32) (local $1 i32) (local $2 i32) diff --git a/tests/compiler/std-wasi/process.untouched.wat b/tests/compiler/std-wasi/process.untouched.wat index 099856cd8f..24b23c1601 100644 --- a/tests/compiler/std-wasi/process.untouched.wat +++ b/tests/compiler/std-wasi/process.untouched.wat @@ -460,6 +460,162 @@ local.get $1 i32.store offset=4 ) + (func $~lib/wasi/index/abort (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) + i32.const 0 + i32.const 12 + call $~lib/bindings/wasi_snapshot_preview1/iovec#set:buf + i32.const 12 + local.set $4 + local.get $4 + i64.const 9071471065260641 + i64.store + local.get $4 + i32.const 7 + i32.add + local.set $4 + local.get $0 + i32.const 0 + i32.ne + if + local.get $4 + local.get $0 + local.get $0 + call $~lib/string/String#get:length + local.get $4 + i32.const 0 + call $~lib/string/String.UTF8.encodeUnsafe + i32.add + local.set $4 + end + local.get $4 + i32.const 544106784 + i32.store + local.get $4 + i32.const 4 + i32.add + local.set $4 + local.get $1 + i32.const 0 + i32.ne + if + local.get $4 + local.get $1 + local.get $1 + call $~lib/string/String#get:length + local.get $4 + i32.const 0 + call $~lib/string/String.UTF8.encodeUnsafe + i32.add + local.set $4 + end + local.get $4 + local.tee $5 + i32.const 1 + i32.add + local.set $4 + local.get $5 + i32.const 40 + i32.store8 + local.get $2 + call $~lib/util/number/decimalCount32 + local.set $6 + local.get $4 + local.get $6 + i32.add + local.set $4 + loop $do-continue|0 + local.get $2 + i32.const 10 + i32.div_u + local.set $5 + local.get $4 + i32.const 1 + i32.sub + local.tee $4 + i32.const 48 + local.get $2 + i32.const 10 + i32.rem_u + i32.add + i32.store8 + local.get $5 + local.set $2 + local.get $2 + local.set $7 + local.get $7 + br_if $do-continue|0 + end + local.get $4 + local.get $6 + i32.add + local.set $4 + local.get $4 + local.tee $7 + i32.const 1 + i32.add + local.set $4 + local.get $7 + i32.const 58 + i32.store8 + local.get $3 + call $~lib/util/number/decimalCount32 + local.set $6 + local.get $4 + local.get $6 + i32.add + local.set $4 + loop $do-continue|1 + local.get $3 + i32.const 10 + i32.div_u + local.set $7 + local.get $4 + i32.const 1 + i32.sub + local.tee $4 + i32.const 48 + local.get $3 + i32.const 10 + i32.rem_u + i32.add + i32.store8 + local.get $7 + local.set $3 + local.get $3 + local.set $8 + local.get $8 + br_if $do-continue|1 + end + local.get $4 + local.get $6 + i32.add + local.set $4 + local.get $4 + i32.const 2601 + i32.store16 + local.get $4 + i32.const 2 + i32.add + local.set $4 + i32.const 0 + local.get $4 + i32.const 12 + i32.sub + call $~lib/bindings/wasi_snapshot_preview1/iovec#set:buf_len + i32.const 2 + i32.const 0 + i32.const 1 + i32.const 8 + call $~lib/bindings/wasi_snapshot_preview1/fd_write + drop + i32.const 255 + call $~lib/bindings/wasi_snapshot_preview1/proc_exit + ) (func $~lib/bindings/wasi_snapshot_preview1/errnoToString (param $0 i32) (result i32) (local $1 i32) block $break|0 @@ -2646,192 +2802,401 @@ call $~lib/rt/tlsf/checkUsedBlock call $~lib/rt/tlsf/freeBlock ) - (func $~lib/rt/itcms/Object#set:nextWithColor (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - i32.store offset=4 - ) - (func $~lib/rt/itcms/Object#set:prev (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - i32.store offset=8 - ) - (func $~lib/rt/itcms/initLazy (param $0 i32) (result i32) - local.get $0 - local.get $0 - call $~lib/rt/itcms/Object#set:nextWithColor - local.get $0 - local.get $0 - call $~lib/rt/itcms/Object#set:prev - local.get $0 - ) - (func $~lib/rt/itcms/Object#get:next (param $0 i32) (result i32) - local.get $0 - i32.load offset=4 - i32.const 3 - i32.const -1 - i32.xor - i32.and - ) - (func $~lib/rt/itcms/Object#get:color (param $0 i32) (result i32) - local.get $0 - i32.load offset=4 - i32.const 3 - i32.and - ) - (func $~lib/rt/itcms/visitRoots (param $0 i32) - (local $1 i32) + (func $~lib/process/writeString (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) - local.get $0 - call $~lib/rt/__visit_globals - global.get $~lib/rt/itcms/pinSpace - local.set $1 - local.get $1 - call $~lib/rt/itcms/Object#get:next + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + i32.const -1 local.set $2 - loop $while-continue|0 - local.get $2 - local.get $1 - i32.ne - local.set $3 - local.get $3 - if - i32.const 1 - drop - local.get $2 - call $~lib/rt/itcms/Object#get:color - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 3520 - i32.const 159 - i32.const 16 - call $~lib/wasi/index/abort - unreachable - end - local.get $2 - i32.const 20 - i32.add - local.get $0 - call $~lib/rt/__visit_members - local.get $2 - call $~lib/rt/itcms/Object#get:next - local.set $2 - br $while-continue|0 - end - end - ) - (func $~lib/rt/itcms/Object#set:color (param $0 i32) (param $1 i32) - local.get $0 - local.get $0 - i32.load offset=4 - i32.const 3 i32.const -1 - i32.xor - i32.and - local.get $1 - i32.or - call $~lib/rt/itcms/Object#set:nextWithColor - ) - (func $~lib/rt/itcms/Object#set:next (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - local.get $0 - i32.load offset=4 - i32.const 3 - i32.and - i32.or - call $~lib/rt/itcms/Object#set:nextWithColor - ) - (func $~lib/rt/itcms/Object#unlink (param $0 i32) - (local $1 i32) - (local $2 i32) - local.get $0 - call $~lib/rt/itcms/Object#get:next - local.set $1 - local.get $1 - i32.const 0 - i32.eq - if - i32.const 1 - drop - local.get $0 - i32.load offset=8 - i32.const 0 - i32.eq - if (result i32) + local.set $3 + i32.const -1 + local.set $4 + block $break|0 + block $case4|0 + block $case3|0 + block $case2|0 + block $case1|0 + block $case0|0 + local.get $1 + call $~lib/string/String#get:length + local.set $5 + local.get $5 + i32.const 4 + i32.eq + br_if $case0|0 + local.get $5 + i32.const 3 + i32.eq + br_if $case1|0 + local.get $5 + i32.const 2 + i32.eq + br_if $case2|0 + local.get $5 + i32.const 1 + i32.eq + br_if $case3|0 + local.get $5 + i32.const 0 + i32.eq + br_if $case4|0 + br $break|0 + end + local.get $1 + i32.load16_u offset=6 + local.set $4 + local.get $4 + i32.const 128 + i32.ge_s + if + br $break|0 + end + end + local.get $1 + i32.load16_u offset=4 + local.set $3 + local.get $3 + i32.const 128 + i32.ge_s + if + br $break|0 + end + end + local.get $1 + i32.load16_u offset=2 + local.set $2 + local.get $2 + i32.const 128 + i32.ge_s + if + br $break|0 + end + end + local.get $1 + i32.load16_u + local.set $5 + local.get $5 + i32.const 128 + i32.ge_s + if + br $break|0 + end + global.get $~lib/process/iobuf + global.get $~lib/process/iobuf + i32.const 2 + i32.const 4 + i32.mul + i32.add + i32.store + global.get $~lib/process/iobuf + i32.const 1 + local.get $2 + i32.const -1 + i32.ne + i32.add + local.get $3 + i32.const -1 + i32.ne + i32.add + local.get $4 + i32.const -1 + i32.ne + i32.add + i32.store offset=4 + global.get $~lib/process/iobuf + local.get $5 + local.get $2 + i32.const 8 + i32.shl + i32.or + local.get $3 + i32.const 16 + i32.shl + i32.or + local.get $4 + i32.const 24 + i32.shl + i32.or + i32.store offset=8 local.get $0 - global.get $~lib/memory/__heap_base - i32.lt_u - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 3520 - i32.const 127 - i32.const 18 - call $~lib/wasi/index/abort - unreachable + global.get $~lib/process/iobuf + i32.const 1 + global.get $~lib/process/iobuf + i32.const 3 + i32.const 4 + i32.mul + i32.add + call $~lib/bindings/wasi_snapshot_preview1/fd_write + local.set $6 + local.get $6 + i32.const 65535 + i32.and + if + local.get $6 + call $~lib/bindings/wasi_snapshot_preview1/errnoToString + i32.const 3088 + i32.const 178 + i32.const 16 + call $~lib/wasi/index/abort + unreachable + end end return end - local.get $0 - i32.load offset=8 - local.set $2 - i32.const 1 - drop - local.get $2 + local.get $1 + i32.const 0 + call $~lib/string/String.UTF8.byteLength + local.set $7 + local.get $7 + call $~lib/rt/tlsf/__alloc + local.set $8 + local.get $1 + local.get $1 + call $~lib/string/String#get:length + local.get $8 + i32.const 0 + call $~lib/string/String.UTF8.encodeUnsafe + local.get $7 + i32.eq i32.eqz if i32.const 0 - i32.const 3520 - i32.const 131 - i32.const 16 + i32.const 3088 + i32.const 184 + i32.const 3 call $~lib/wasi/index/abort unreachable end - local.get $1 - local.get $2 - call $~lib/rt/itcms/Object#set:prev - local.get $2 - local.get $1 - call $~lib/rt/itcms/Object#set:next - ) - (func $~lib/rt/__typeinfo (param $0 i32) (result i32) - (local $1 i32) - global.get $~lib/rt/__rtti_base - local.set $1 + global.get $~lib/process/iobuf + local.get $8 + i32.store + global.get $~lib/process/iobuf + local.get $7 + i32.store offset=4 local.get $0 - local.get $1 - i32.load - i32.gt_u + global.get $~lib/process/iobuf + i32.const 1 + global.get $~lib/process/iobuf + i32.const 2 + i32.const 4 + i32.mul + i32.add + call $~lib/bindings/wasi_snapshot_preview1/fd_write + local.set $9 + local.get $8 + call $~lib/rt/tlsf/__free + local.get $9 + i32.const 65535 + i32.and if - i32.const 3648 - i32.const 3712 - i32.const 22 - i32.const 28 + local.get $9 + call $~lib/bindings/wasi_snapshot_preview1/errnoToString + i32.const 3088 + i32.const 189 + i32.const 12 call $~lib/wasi/index/abort unreachable end + ) + (func $~lib/process/WritableStream#write<~lib/string/String> (param $0 i32) (param $1 i32) + i32.const 1 + drop + local.get $0 local.get $1 - i32.const 4 - i32.add + call $~lib/process/writeString + ) + (func $~lib/rt/itcms/Object#set:nextWithColor (param $0 i32) (param $1 i32) local.get $0 - i32.const 8 - i32.mul - i32.add - i32.load + local.get $1 + i32.store offset=4 ) - (func $~lib/rt/itcms/Object#get:isPointerfree (param $0 i32) (result i32) - (local $1 i32) + (func $~lib/rt/itcms/Object#set:prev (param $0 i32) (param $1 i32) local.get $0 - i32.load offset=12 - local.set $1 + local.get $1 + i32.store offset=8 + ) + (func $~lib/rt/itcms/initLazy (param $0 i32) (result i32) + local.get $0 + local.get $0 + call $~lib/rt/itcms/Object#set:nextWithColor + local.get $0 + local.get $0 + call $~lib/rt/itcms/Object#set:prev + local.get $0 + ) + (func $~lib/rt/itcms/Object#get:next (param $0 i32) (result i32) + local.get $0 + i32.load offset=4 + i32.const 3 + i32.const -1 + i32.xor + i32.and + ) + (func $~lib/rt/itcms/Object#get:color (param $0 i32) (result i32) + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + ) + (func $~lib/rt/itcms/visitRoots (param $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + local.get $0 + call $~lib/rt/__visit_globals + global.get $~lib/rt/itcms/pinSpace + local.set $1 + local.get $1 + call $~lib/rt/itcms/Object#get:next + local.set $2 + loop $while-continue|0 + local.get $2 + local.get $1 + i32.ne + local.set $3 + local.get $3 + if + i32.const 1 + drop + local.get $2 + call $~lib/rt/itcms/Object#get:color + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 3520 + i32.const 159 + i32.const 16 + call $~lib/wasi/index/abort + unreachable + end + local.get $2 + i32.const 20 + i32.add + local.get $0 + call $~lib/rt/__visit_members + local.get $2 + call $~lib/rt/itcms/Object#get:next + local.set $2 + br $while-continue|0 + end + end + ) + (func $~lib/rt/itcms/Object#set:color (param $0 i32) (param $1 i32) + local.get $0 + local.get $0 + i32.load offset=4 + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.get $1 + i32.or + call $~lib/rt/itcms/Object#set:nextWithColor + ) + (func $~lib/rt/itcms/Object#set:next (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + i32.or + call $~lib/rt/itcms/Object#set:nextWithColor + ) + (func $~lib/rt/itcms/Object#unlink (param $0 i32) + (local $1 i32) + (local $2 i32) + local.get $0 + call $~lib/rt/itcms/Object#get:next + local.set $1 + local.get $1 + i32.const 0 + i32.eq + if + i32.const 1 + drop + local.get $0 + i32.load offset=8 + i32.const 0 + i32.eq + if (result i32) + local.get $0 + global.get $~lib/memory/__heap_base + i32.lt_u + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 3520 + i32.const 127 + i32.const 18 + call $~lib/wasi/index/abort + unreachable + end + return + end + local.get $0 + i32.load offset=8 + local.set $2 + i32.const 1 + drop + local.get $2 + i32.eqz + if + i32.const 0 + i32.const 3520 + i32.const 131 + i32.const 16 + call $~lib/wasi/index/abort + unreachable + end + local.get $1 + local.get $2 + call $~lib/rt/itcms/Object#set:prev + local.get $2 + local.get $1 + call $~lib/rt/itcms/Object#set:next + ) + (func $~lib/rt/__typeinfo (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/rt/__rtti_base + local.set $1 + local.get $0 + local.get $1 + i32.load + i32.gt_u + if + i32.const 3648 + i32.const 3712 + i32.const 22 + i32.const 28 + call $~lib/wasi/index/abort + unreachable + end + local.get $1 + i32.const 4 + i32.add + local.get $0 + i32.const 8 + i32.mul + i32.add + i32.load + ) + (func $~lib/rt/itcms/Object#get:isPointerfree (param $0 i32) (result i32) + (local $1 i32) + local.get $0 + i32.load offset=12 + local.set $1 local.get $1 i32.const 1 i32.le_u @@ -4976,6 +5341,40 @@ i32.const 1 call $~lib/rt/itcms/__link ) + (func $~lib/array/Array<~lib/string/String>#__set (param $0 i32) (param $1 i32) (param $2 i32) + 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 3648 + i32.const 3472 + i32.const 108 + i32.const 22 + call $~lib/wasi/index/abort + unreachable + end + local.get $0 + local.get $1 + i32.const 1 + i32.add + i32.const 2 + call $~lib/array/ensureSize + local.get $0 + local.get $1 + i32.const 1 + i32.add + call $~lib/array/Array<~lib/string/String>#set:length_ + end + local.get $0 + local.get $1 + local.get $2 + call $~lib/array/Array<~lib/string/String>#__uset + ) (func $~lib/array/Array<~lib/string/String>#get:length (param $0 i32) (result i32) local.get $0 i32.load offset=12 @@ -5125,1086 +5524,179 @@ end i32.const 0 ) - (func $~lib/map/MapEntry<~lib/string/String,~lib/string/String>#set:value (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - i32.store offset=4 - ) - (func $~lib/map/MapEntry<~lib/string/String,~lib/string/String>#set:key (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - i32.store - ) - (func $~lib/map/MapEntry<~lib/string/String,~lib/string/String>#set:taggedNext (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - i32.store offset=8 - ) - (func $~lib/array/Array<~lib/string/String>#set:length (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - i32.const 2 - call $~lib/array/ensureSize - local.get $0 + (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) + (local $6 i32) + (local $7 i32) local.get $1 - call $~lib/array/Array<~lib/string/String>#set:length_ - ) - (func $~lib/process/process.time (result i64) - (local $0 i32) - i32.const 0 - i64.const 1000000 - global.get $~lib/process/iobuf - call $~lib/bindings/wasi_snapshot_preview1/clock_time_get - local.set $0 - local.get $0 - i32.const 65535 - i32.and + call $~lib/string/String#get:length + local.set $3 + local.get $3 + i32.eqz if - local.get $0 - call $~lib/bindings/wasi_snapshot_preview1/errnoToString - i32.const 3088 - i32.const 53 - i32.const 14 - call $~lib/wasi/index/abort - unreachable + i32.const 0 + return end - global.get $~lib/process/iobuf - i64.load - i64.const 1000000 - i64.div_u - ) - (func $~lib/util/number/utoa32_dec_lut (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 i64) - (local $9 i64) - (local $10 i32) - (local $11 i32) - loop $while-continue|0 - local.get $1 - i32.const 10000 - i32.ge_u - local.set $3 - local.get $3 + local.get $0 + call $~lib/string/String#get:length + local.set $4 + local.get $4 + i32.eqz + if + i32.const -1 + return + end + local.get $2 + local.tee $5 + i32.const 0 + local.tee $6 + local.get $5 + local.get $6 + i32.gt_s + select + local.tee $6 + local.get $4 + local.tee $5 + local.get $6 + local.get $5 + i32.lt_s + select + local.set $7 + local.get $4 + local.get $3 + i32.sub + local.set $4 + loop $for-loop|0 + local.get $7 + local.get $4 + i32.le_s + local.set $6 + local.get $6 if + local.get $0 + local.get $7 local.get $1 - i32.const 10000 - i32.div_u - local.set $4 - local.get $1 - i32.const 10000 - i32.rem_u - local.set $5 - local.get $4 - local.set $1 - local.get $5 - i32.const 100 - i32.div_u - local.set $6 - local.get $5 - i32.const 100 - i32.rem_u - local.set $7 - i32.const 4620 - local.get $6 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $8 - i32.const 4620 + i32.const 0 + local.get $3 + call $~lib/util/string/compareImpl + i32.eqz + if + local.get $7 + return + end local.get $7 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $9 - local.get $2 - i32.const 4 - i32.sub - local.set $2 - local.get $0 - local.get $2 i32.const 1 - i32.shl i32.add - local.get $8 - local.get $9 - i64.const 32 - i64.shl - i64.or - i64.store - br $while-continue|0 + local.set $7 + br $for-loop|0 end end - local.get $1 - i32.const 100 - i32.ge_u + i32.const -1 + ) + (func $~lib/util/hash/hashStr (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + i32.const -2128831035 + local.set $1 + local.get $0 + i32.const 0 + i32.ne if - local.get $1 - i32.const 100 - i32.div_u - local.set $3 - local.get $1 - i32.const 100 - i32.rem_u - local.set $10 - local.get $3 - local.set $1 - local.get $2 - i32.const 2 - i32.sub + i32.const 0 local.set $2 - i32.const 4620 - local.get $10 - i32.const 2 - i32.shl - i32.add - i32.load - local.set $11 local.get $0 - local.get $2 + call $~lib/string/String#get:length i32.const 1 i32.shl - i32.add - local.get $11 - i32.store + local.set $3 + loop $for-loop|0 + local.get $2 + local.get $3 + i32.lt_u + local.set $4 + local.get $4 + if + local.get $1 + local.get $0 + local.get $2 + i32.add + i32.load8_u + i32.xor + i32.const 16777619 + i32.mul + local.set $1 + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|0 + end + end end local.get $1 - i32.const 10 - i32.ge_u + ) + (func $~lib/string/String.__eq (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + local.get $0 + local.get $1 + i32.eq if - local.get $2 - i32.const 2 - i32.sub - local.set $2 - i32.const 4620 - local.get $1 - i32.const 2 - i32.shl - i32.add - i32.load - local.set $11 - local.get $0 - local.get $2 i32.const 1 - i32.shl - i32.add - local.get $11 - i32.store - else - local.get $2 + return + end + local.get $0 + i32.const 0 + i32.eq + if (result i32) i32.const 1 - i32.sub - local.set $2 - i32.const 48 + else local.get $1 - i32.add - local.set $11 - local.get $0 - local.get $2 - i32.const 1 - i32.shl - i32.add - local.get $11 - i32.store16 + i32.const 0 + i32.eq + end + if + i32.const 0 + return end - ) - (func $~lib/util/number/decimalCount64High (param $0 i64) (result i32) local.get $0 - i64.const 1000000000000000 - i64.lt_u + call $~lib/string/String#get:length + local.set $2 + local.get $2 + local.get $1 + call $~lib/string/String#get:length + i32.ne if - local.get $0 - i64.const 1000000000000 - i64.lt_u - if - i32.const 10 - local.get $0 - i64.const 100000000000 - i64.ge_u - i32.add - local.get $0 - i64.const 10000000000 - i64.ge_u - i32.add - return - else - i32.const 13 - local.get $0 - i64.const 100000000000000 - i64.ge_u - i32.add - local.get $0 - i64.const 10000000000000 - i64.ge_u - i32.add - return - end - unreachable - else - local.get $0 - i64.const 100000000000000000 - i64.lt_u - if - i32.const 16 - local.get $0 - i64.const 10000000000000000 - i64.ge_u - i32.add - return - else - i32.const 18 - local.get $0 - i64.const -8446744073709551616 - i64.ge_u - i32.add - local.get $0 - i64.const 1000000000000000000 - i64.ge_u - i32.add - return - end - unreachable - end - unreachable - ) - (func $~lib/util/number/utoa64_dec_lut (param $0 i32) (param $1 i64) (param $2 i32) - (local $3 i32) - (local $4 i64) - (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 i64) - loop $while-continue|0 - local.get $1 - i64.const 100000000 - i64.ge_u - local.set $3 - local.get $3 - if - local.get $1 - i64.const 100000000 - i64.div_u - local.set $4 - local.get $1 - local.get $4 - i64.const 100000000 - i64.mul - i64.sub - i32.wrap_i64 - local.set $5 - local.get $4 - local.set $1 - local.get $5 - i32.const 10000 - i32.div_u - local.set $6 - local.get $5 - i32.const 10000 - i32.rem_u - local.set $7 - local.get $6 - i32.const 100 - i32.div_u - local.set $8 - local.get $6 - i32.const 100 - i32.rem_u - local.set $9 - local.get $7 - i32.const 100 - i32.div_u - local.set $10 - local.get $7 - i32.const 100 - i32.rem_u - local.set $11 - i32.const 4620 - local.get $10 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $12 - i32.const 4620 - local.get $11 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $13 - local.get $2 - i32.const 4 - i32.sub - local.set $2 - local.get $0 - local.get $2 - i32.const 1 - i32.shl - i32.add - local.get $12 - local.get $13 - i64.const 32 - i64.shl - i64.or - i64.store - i32.const 4620 - local.get $8 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $12 - i32.const 4620 - local.get $9 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $13 - local.get $2 - i32.const 4 - i32.sub - local.set $2 - local.get $0 - local.get $2 - i32.const 1 - i32.shl - i32.add - local.get $12 - local.get $13 - 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/utoa_hex_lut (param $0 i32) (param $1 i64) (param $2 i32) - (local $3 i32) - loop $while-continue|0 - local.get $2 - i32.const 2 - i32.ge_u - local.set $3 - local.get $3 - if - local.get $2 - i32.const 2 - i32.sub - local.set $2 - local.get $0 - local.get $2 - i32.const 1 - i32.shl - i32.add - i32.const 5040 - local.get $1 - i32.wrap_i64 - i32.const 255 - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - i32.store - local.get $1 - i64.const 8 - i64.shr_u - local.set $1 - br $while-continue|0 - end - end - local.get $2 - i32.const 1 - i32.and - if - local.get $0 - i32.const 5040 - local.get $1 - i32.wrap_i64 - i32.const 6 - i32.shl - i32.add - i32.load16_u - i32.store16 - end - ) - (func $~lib/util/number/ulog_base (param $0 i64) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i64) - (local $4 i64) - (local $5 i32) - local.get $1 - local.set $2 - local.get $2 - 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 - return - end - local.get $1 - i64.extend_i32_s - local.set $3 - local.get $3 - local.set $4 - i32.const 1 - local.set $5 - loop $while-continue|0 - local.get $0 - local.get $4 - i64.ge_u - local.set $2 - local.get $2 - if - local.get $0 - local.get $4 - i64.div_u - local.set $0 - local.get $4 - local.get $4 - i64.mul - local.set $4 - local.get $5 - i32.const 1 - i32.shl - local.set $5 - br $while-continue|0 - end - end - loop $while-continue|1 - local.get $0 - i64.const 1 - i64.ge_u - local.set $2 - local.get $2 - if - local.get $0 - local.get $3 - i64.div_u - local.set $0 - local.get $5 - i32.const 1 - i32.add - local.set $5 - br $while-continue|1 - end - end - local.get $5 - i32.const 1 - i32.sub - ) - (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 i64) - (local $7 i32) - local.get $3 - i64.extend_i32_s - local.set $4 - local.get $3 - local.get $3 - i32.const 1 - i32.sub - i32.and - i32.const 0 - i32.eq - if - local.get $3 - i32.ctz - i32.const 7 - i32.and - i64.extend_i32_s - local.set $5 - local.get $4 - i64.const 1 - i64.sub - local.set $6 - loop $do-continue|0 - local.get $2 - i32.const 1 - i32.sub - local.set $2 - local.get $0 - local.get $2 - i32.const 1 - i32.shl - i32.add - i32.const 6096 - local.get $1 - local.get $6 - i64.and - i32.wrap_i64 - i32.const 1 - i32.shl - i32.add - i32.load16_u - i32.store16 - local.get $1 - local.get $5 - i64.shr_u - local.set $1 - local.get $1 - i64.const 0 - i64.ne - local.set $7 - local.get $7 - br_if $do-continue|0 - end - else - loop $do-continue|1 - local.get $2 - i32.const 1 - i32.sub - local.set $2 - local.get $1 - local.get $4 - i64.div_u - local.set $6 - local.get $0 - local.get $2 - i32.const 1 - i32.shl - i32.add - i32.const 6096 - local.get $1 - local.get $6 - local.get $4 - i64.mul - i64.sub - i32.wrap_i64 - i32.const 1 - i32.shl - i32.add - i32.load16_u - i32.store16 - local.get $6 - local.set $1 - local.get $1 - i64.const 0 - i64.ne - local.set $7 - local.get $7 - br_if $do-continue|1 - end - end - ) - (func $~lib/number/I64#toString (param $0 i64) (param $1 i32) (result i32) - local.get $0 - local.get $1 - call $~lib/util/number/itoa64 - ) - (func $~lib/process/process.hrtime (result i64) - (local $0 i32) - i32.const 1 - i64.const 0 - global.get $~lib/process/iobuf - call $~lib/bindings/wasi_snapshot_preview1/clock_time_get - local.set $0 - local.get $0 - i32.const 65535 - i32.and - if - local.get $0 - call $~lib/bindings/wasi_snapshot_preview1/errnoToString - i32.const 3088 - i32.const 59 - i32.const 14 - call $~lib/wasi/index/abort - unreachable - end - global.get $~lib/process/iobuf - i64.load - ) - (func $~lib/number/U64#toString (param $0 i64) (param $1 i32) (result i32) - local.get $0 - local.get $1 - call $~lib/util/number/utoa64 - ) - (func $~lib/process/process.exit (param $0 i32) - local.get $0 - call $~lib/bindings/wasi_snapshot_preview1/proc_exit - ) - (func $~lib/rt/__visit_globals (param $0 i32) - (local $1 i32) - global.get $~lib/process/process.arch - local.tee $1 - if - local.get $1 - local.get $0 - call $~lib/rt/itcms/__visit - end - global.get $~lib/process/process.platform - local.tee $1 - if - local.get $1 - local.get $0 - call $~lib/rt/itcms/__visit - end - global.get $~lib/process/process.argv - local.tee $1 - if - local.get $1 - local.get $0 - call $~lib/rt/itcms/__visit - end - global.get $~lib/process/process.env - local.tee $1 - if - local.get $1 - local.get $0 - call $~lib/rt/itcms/__visit - end - global.get $std-wasi/process/argv - local.tee $1 - if - local.get $1 - local.get $0 - call $~lib/rt/itcms/__visit - end - global.get $std-wasi/process/env - local.tee $1 - if - local.get $1 - local.get $0 - call $~lib/rt/itcms/__visit - end - global.get $std-wasi/process/envKeys - local.tee $1 - if - local.get $1 - local.get $0 - call $~lib/rt/itcms/__visit - end - i32.const 3648 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 3424 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 3888 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 4256 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 3216 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 5040 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 6096 - 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 - 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>#__visit (param $0 i32) (param $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - i32.const 1 - drop - local.get $0 - i32.load offset=4 - local.set $2 - local.get $2 - local.get $0 - i32.load offset=12 - i32.const 2 - i32.shl - i32.add - local.set $3 - loop $while-continue|0 - local.get $2 - local.get $3 - i32.lt_u - local.set $4 - local.get $4 - if - local.get $2 - i32.load - local.set $5 - local.get $5 - if - local.get $5 - local.get $1 - call $~lib/rt/itcms/__visit - end - local.get $2 - i32.const 4 - i32.add - local.set $2 - br $while-continue|0 - end - end - local.get $0 - i32.load - local.get $1 - call $~lib/rt/itcms/__visit - ) - (func $~lib/array/Array<~lib/string/String>~visit (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - call $~lib/array/Array<~lib/string/String>#__visit - ) - (func $~lib/map/Map<~lib/string/String,~lib/string/String>#__visit (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.get $0 - i32.load - local.get $1 - call $~lib/rt/itcms/__visit - local.get $0 - i32.load offset=8 - local.set $2 - i32.const 1 - if (result i32) - i32.const 1 - else - i32.const 1 - end - drop - local.get $2 - local.set $3 - local.get $3 - local.get $0 - i32.load offset=16 - i32.const 12 - i32.mul - i32.add - local.set $4 - loop $while-continue|0 - local.get $3 - local.get $4 - i32.lt_u - local.set $5 - local.get $5 - if - local.get $3 - local.set $6 - local.get $6 - i32.load offset=8 - i32.const 1 - i32.and - i32.eqz - if - i32.const 1 - drop - local.get $6 - i32.load - local.set $7 - i32.const 0 - drop - local.get $7 - local.get $1 - call $~lib/rt/itcms/__visit - i32.const 1 - drop - local.get $6 - i32.load offset=4 - local.set $7 - i32.const 0 - drop - local.get $7 - local.get $1 - call $~lib/rt/itcms/__visit - end - local.get $3 - i32.const 12 - i32.add - local.set $3 - br $while-continue|0 - end - end - local.get $2 - local.get $1 - call $~lib/rt/itcms/__visit - ) - (func $~lib/map/Map<~lib/string/String,~lib/string/String>~visit (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - call $~lib/map/Map<~lib/string/String,~lib/string/String>#__visit - ) - (func $~lib/rt/__visit_members (param $0 i32) (param $1 i32) - block $invalid - block $~lib/map/Map<~lib/string/String,~lib/string/String> - block $~lib/array/Array<~lib/string/String> - block $~lib/arraybuffer/ArrayBufferView - block $~lib/string/String - block $~lib/arraybuffer/ArrayBuffer - local.get $0 - i32.const 8 - i32.sub - i32.load - br_table $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $~lib/array/Array<~lib/string/String> $~lib/map/Map<~lib/string/String,~lib/string/String> $invalid - 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<~lib/string/String>~visit - return - end - local.get $0 - local.get $1 - call $~lib/map/Map<~lib/string/String,~lib/string/String>~visit - return - end - unreachable - ) - (func $~start - global.get $~started - if - return - end - i32.const 1 - global.set $~started - call $start:std-wasi/process - ) - (func $~stack_check - global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__data_end - i32.lt_s - if - i32.const 22720 - i32.const 22768 - i32.const 1 - i32.const 1 - call $~lib/wasi/index/abort - unreachable - end - ) - (func $~lib/wasi/index/abort (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 $9 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 12 - call $~lib/bindings/wasi_snapshot_preview1/iovec#set:buf - i32.const 12 - local.set $4 - local.get $4 - i64.const 9071471065260641 - i64.store - local.get $4 - i32.const 7 - i32.add - local.set $4 - local.get $0 - i32.const 0 - i32.ne - if - local.get $4 - local.get $0 - local.get $0 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store - local.get $9 - call $~lib/string/String#get:length - local.get $4 - i32.const 0 - call $~lib/string/String.UTF8.encodeUnsafe - i32.add - local.set $4 - end - local.get $4 - i32.const 544106784 - i32.store - local.get $4 - i32.const 4 - i32.add - local.set $4 - local.get $1 - i32.const 0 - i32.ne - if - local.get $4 - local.get $1 - local.get $1 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store - local.get $9 - call $~lib/string/String#get:length - local.get $4 i32.const 0 - call $~lib/string/String.UTF8.encodeUnsafe - i32.add - local.set $4 - end - local.get $4 - local.tee $5 - i32.const 1 - i32.add - local.set $4 - local.get $5 - i32.const 40 - i32.store8 - local.get $2 - call $~lib/util/number/decimalCount32 - local.set $6 - local.get $4 - local.get $6 - i32.add - local.set $4 - loop $do-continue|0 - local.get $2 - i32.const 10 - i32.div_u - local.set $5 - local.get $4 - i32.const 1 - i32.sub - local.tee $4 - i32.const 48 - local.get $2 - i32.const 10 - i32.rem_u - i32.add - i32.store8 - local.get $5 - local.set $2 - local.get $2 - local.set $7 - local.get $7 - br_if $do-continue|0 - end - local.get $4 - local.get $6 - i32.add - local.set $4 - local.get $4 - local.tee $7 - i32.const 1 - i32.add - local.set $4 - local.get $7 - i32.const 58 - i32.store8 - local.get $3 - call $~lib/util/number/decimalCount32 - local.set $6 - local.get $4 - local.get $6 - i32.add - local.set $4 - loop $do-continue|1 - local.get $3 - i32.const 10 - i32.div_u - local.set $7 - local.get $4 - i32.const 1 - i32.sub - local.tee $4 - i32.const 48 - local.get $3 - i32.const 10 - i32.rem_u - i32.add - i32.store8 - local.get $7 - local.set $3 - local.get $3 - local.set $8 - local.get $8 - br_if $do-continue|1 - end - local.get $4 - local.get $6 - i32.add - local.set $4 - local.get $4 - i32.const 2601 - i32.store16 - local.get $4 - i32.const 2 - i32.add - local.set $4 - i32.const 0 - local.get $4 - i32.const 12 - i32.sub - call $~lib/bindings/wasi_snapshot_preview1/iovec#set:buf_len - i32.const 2 - i32.const 0 - i32.const 1 - i32.const 8 - call $~lib/bindings/wasi_snapshot_preview1/fd_write - drop - i32.const 255 - call $~lib/bindings/wasi_snapshot_preview1/proc_exit - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer + return + end + local.get $0 + i32.const 0 + local.get $1 + i32.const 0 + local.get $2 + call $~lib/util/string/compareImpl + i32.eqz ) - (func $~lib/process/writeString (param $0 i32) (param $1 i32) + (func $~lib/map/MapEntry<~lib/string/String,~lib/string/String>#set:value (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=4 + ) + (func $~lib/map/MapEntry<~lib/string/String,~lib/string/String>#set:key (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + ) + (func $~lib/map/MapEntry<~lib/string/String,~lib/string/String>#set:taggedNext (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=8 + ) + (func $~lib/map/Map<~lib/string/String,~lib/string/String>#rehash (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -6214,352 +5706,410 @@ (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 4 + 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 - i32.const -1 + i32.store offset=8 + local.get $1 + i32.const 1 + i32.add local.set $2 - i32.const -1 - local.set $3 - i32.const -1 + global.get $~lib/memory/__stack_pointer + i32.const 0 + local.get $2 + i32.const 4 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $3 + i32.store + local.get $2 + i32.const 8 + i32.mul + i32.const 3 + i32.div_s local.set $4 - block $break|0 - block $case4|0 - block $case3|0 - block $case2|0 - block $case1|0 - block $case0|0 - local.get $1 - 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 $5 - local.get $5 - i32.const 4 - i32.eq - br_if $case0|0 - local.get $5 - i32.const 3 - i32.eq - br_if $case1|0 - local.get $5 - i32.const 2 - i32.eq - br_if $case2|0 - local.get $5 - i32.const 1 - i32.eq - br_if $case3|0 - local.get $5 - i32.const 0 - i32.eq - br_if $case4|0 - br $break|0 - end - local.get $1 - i32.load16_u offset=6 - local.set $4 - local.get $4 - i32.const 128 - i32.ge_s - if - br $break|0 - end - end - local.get $1 - i32.load16_u offset=4 - local.set $3 - local.get $3 - i32.const 128 - i32.ge_s - if - br $break|0 - end - end - local.get $1 - i32.load16_u offset=2 - local.set $2 - local.get $2 - i32.const 128 - i32.ge_s - if - br $break|0 - end - end - local.get $1 - i32.load16_u - local.set $5 - local.get $5 - i32.const 128 - i32.ge_s - if - br $break|0 - end - global.get $~lib/process/iobuf - global.get $~lib/process/iobuf - i32.const 2 - i32.const 4 - i32.mul - i32.add - i32.store - global.get $~lib/process/iobuf - i32.const 1 - local.get $2 - i32.const -1 - i32.ne - i32.add - local.get $3 - i32.const -1 - i32.ne - i32.add - local.get $4 - i32.const -1 - i32.ne - i32.add - i32.store offset=4 - global.get $~lib/process/iobuf - local.get $5 - local.get $2 - i32.const 8 - i32.shl - i32.or - local.get $3 - i32.const 16 - i32.shl - i32.or - local.get $4 - i32.const 24 - i32.shl - i32.or - i32.store offset=8 - local.get $0 - global.get $~lib/process/iobuf - i32.const 1 - global.get $~lib/process/iobuf - i32.const 3 - i32.const 4 - i32.mul - i32.add - call $~lib/bindings/wasi_snapshot_preview1/fd_write - local.set $6 + global.get $~lib/memory/__stack_pointer + i32.const 0 + local.get $4 + i32.const 12 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $5 + i32.store offset=4 + local.get $0 + i32.load offset=8 + local.set $6 + local.get $6 + local.get $0 + i32.load offset=16 + i32.const 12 + i32.mul + i32.add + local.set $7 + local.get $5 + local.set $8 + loop $while-continue|0 + local.get $6 + local.get $7 + i32.ne + local.set $9 + local.get $9 + if local.get $6 - i32.const 65535 + local.set $10 + local.get $10 + i32.load offset=8 + i32.const 1 i32.and + i32.eqz if - local.get $6 - call $~lib/bindings/wasi_snapshot_preview1/errnoToString - i32.const 3088 - i32.const 178 - i32.const 16 - call $~lib/wasi/index/abort - unreachable + local.get $8 + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $10 + i32.load + local.tee $12 + i32.store offset=8 + local.get $11 + local.get $12 + call $~lib/map/MapEntry<~lib/string/String,~lib/string/String>#set:key + local.get $11 + local.get $10 + i32.load offset=4 + call $~lib/map/MapEntry<~lib/string/String,~lib/string/String>#set:value + block $~lib/util/hash/HASH<~lib/string/String>|inlined.1 (result i32) + local.get $12 + local.set $13 + i32.const 1 + drop + local.get $13 + call $~lib/util/hash/hashStr + br $~lib/util/hash/HASH<~lib/string/String>|inlined.1 + end + local.get $1 + i32.and + local.set $13 + local.get $3 + local.get $13 + i32.const 4 + i32.mul + i32.add + local.set $14 + local.get $11 + local.get $14 + i32.load + call $~lib/map/MapEntry<~lib/string/String,~lib/string/String>#set:taggedNext + local.get $14 + local.get $8 + i32.store + local.get $8 + i32.const 12 + i32.add + local.set $8 end + local.get $6 + i32.const 12 + i32.add + local.set $6 + br $while-continue|0 end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - return end + local.get $0 + local.get $3 + call $~lib/map/Map<~lib/string/String,~lib/string/String>#set:buckets + local.get $0 local.get $1 - local.set $10 + call $~lib/map/Map<~lib/string/String,~lib/string/String>#set:bucketsMask + local.get $0 + local.get $5 + call $~lib/map/Map<~lib/string/String,~lib/string/String>#set:entries + local.get $0 + local.get $4 + call $~lib/map/Map<~lib/string/String,~lib/string/String>#set:entriesCapacity + local.get $0 + local.get $0 + i32.load offset=20 + call $~lib/map/Map<~lib/string/String,~lib/string/String>#set:entriesOffset global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store - local.get $10 - i32.const 0 - call $~lib/string/String.UTF8.byteLength - local.set $7 - local.get $7 - call $~lib/rt/tlsf/__alloc - local.set $8 + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/array/Array<~lib/string/String>#set:length (param $0 i32) (param $1 i32) + local.get $0 local.get $1 + i32.const 2 + call $~lib/array/ensureSize + local.get $0 local.get $1 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store - local.get $10 - call $~lib/string/String#get:length - local.get $8 - i32.const 0 - call $~lib/string/String.UTF8.encodeUnsafe - local.get $7 - i32.eq + call $~lib/array/Array<~lib/string/String>#set:length_ + ) + (func $~lib/map/Map<~lib/string/String,~lib/string/String>#get (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + local.get $0 + local.get $1 + block $~lib/util/hash/HASH<~lib/string/String>|inlined.2 (result i32) + local.get $1 + local.set $2 + i32.const 1 + drop + local.get $2 + call $~lib/util/hash/hashStr + br $~lib/util/hash/HASH<~lib/string/String>|inlined.2 + end + call $~lib/map/Map<~lib/string/String,~lib/string/String>#find + local.set $3 + local.get $3 i32.eqz if - i32.const 0 - i32.const 3088 - i32.const 184 - i32.const 3 + i32.const 4256 + i32.const 4320 + i32.const 105 + i32.const 17 call $~lib/wasi/index/abort unreachable end + local.get $3 + i32.load offset=4 + ) + (func $~lib/process/process.time (result i64) + (local $0 i32) + i32.const 0 + i64.const 1000000 global.get $~lib/process/iobuf - local.get $8 - i32.store - global.get $~lib/process/iobuf - local.get $7 - i32.store offset=4 + call $~lib/bindings/wasi_snapshot_preview1/clock_time_get + local.set $0 local.get $0 - global.get $~lib/process/iobuf - i32.const 1 - global.get $~lib/process/iobuf - i32.const 2 - i32.const 4 - i32.mul - i32.add - call $~lib/bindings/wasi_snapshot_preview1/fd_write - local.set $9 - local.get $8 - call $~lib/rt/tlsf/__free - local.get $9 i32.const 65535 i32.and if - local.get $9 + local.get $0 call $~lib/bindings/wasi_snapshot_preview1/errnoToString i32.const 3088 - i32.const 189 - i32.const 12 + i32.const 53 + i32.const 14 call $~lib/wasi/index/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/process/WritableStream#write<~lib/string/String> (param $0 i32) (param $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 - i32.const 1 - drop - local.get $0 - local.get $1 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $2 - call $~lib/process/writeString - 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) - (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 - global.get $~lib/process/process.stdout - local.set $1 - local.get $1 - local.get $0 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $2 - call $~lib/process/WritableStream#write<~lib/string/String> - local.get $1 - i32.const 3280 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $2 - call $~lib/process/WritableStream#write<~lib/string/String> - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer + global.get $~lib/process/iobuf + i64.load + i64.const 1000000 + i64.div_u ) - (func $~lib/array/Array<~lib/string/String>#__set (param $0 i32) (param $1 i32) (param $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 - call $~stack_check - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i64) + (local $9 i64) + (local $10 i32) + (local $11 i32) + loop $while-continue|0 + local.get $1 + i32.const 10000 + i32.ge_u + local.set $3 + local.get $3 + if + local.get $1 + i32.const 10000 + i32.div_u + local.set $4 + local.get $1 + i32.const 10000 + i32.rem_u + local.set $5 + local.get $4 + local.set $1 + local.get $5 + i32.const 100 + i32.div_u + local.set $6 + local.get $5 + i32.const 100 + i32.rem_u + local.set $7 + i32.const 4620 + local.get $6 + i32.const 2 + i32.shl + i32.add + i64.load32_u + local.set $8 + i32.const 4620 + local.get $7 + i32.const 2 + i32.shl + i32.add + i64.load32_u + local.set $9 + local.get $2 + i32.const 4 + i32.sub + local.set $2 + local.get $0 + local.get $2 + i32.const 1 + i32.shl + i32.add + local.get $8 + local.get $9 + i64.const 32 + i64.shl + i64.or + i64.store + br $while-continue|0 + end + end local.get $1 - local.get $0 - i32.load offset=12 + i32.const 100 i32.ge_u if local.get $1 - i32.const 0 - i32.lt_s - if - i32.const 3648 - i32.const 3472 - i32.const 108 - i32.const 22 - call $~lib/wasi/index/abort - unreachable - end - local.get $0 + i32.const 100 + i32.div_u + local.set $3 local.get $1 + i32.const 100 + i32.rem_u + local.set $10 + local.get $3 + local.set $1 + local.get $2 + i32.const 2 + i32.sub + local.set $2 + i32.const 4620 + local.get $10 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $11 + local.get $0 + local.get $2 i32.const 1 + i32.shl i32.add + local.get $11 + i32.store + end + local.get $1 + i32.const 10 + i32.ge_u + if + local.get $2 i32.const 2 - call $~lib/array/ensureSize + i32.sub + local.set $2 + i32.const 4620 + local.get $1 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $11 local.get $0 + local.get $2 + i32.const 1 + i32.shl + i32.add + local.get $11 + i32.store + else + local.get $2 + i32.const 1 + i32.sub + local.set $2 + i32.const 48 local.get $1 + i32.add + local.set $11 + local.get $0 + local.get $2 i32.const 1 + i32.shl i32.add - call $~lib/array/Array<~lib/string/String>#set:length_ + local.get $11 + i32.store16 end + ) + (func $~lib/util/number/decimalCount64High (param $0 i64) (result i32) local.get $0 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store - local.get $3 - local.get $1 - local.get $2 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - call $~lib/array/Array<~lib/string/String>#__uset - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer + i64.const 1000000000000000 + i64.lt_u + if + local.get $0 + i64.const 1000000000000 + i64.lt_u + if + i32.const 10 + local.get $0 + i64.const 100000000000 + i64.ge_u + i32.add + local.get $0 + i64.const 10000000000 + i64.ge_u + i32.add + return + else + i32.const 13 + local.get $0 + i64.const 100000000000000 + i64.ge_u + i32.add + local.get $0 + i64.const 10000000000000 + i64.ge_u + i32.add + return + end + unreachable + else + local.get $0 + i64.const 100000000000000000 + i64.lt_u + if + i32.const 16 + local.get $0 + i64.const 10000000000000000 + i64.ge_u + i32.add + return + else + i32.const 18 + local.get $0 + i64.const -8446744073709551616 + i64.ge_u + i32.add + local.get $0 + i64.const 1000000000000000000 + i64.ge_u + i32.add + return + end + unreachable + end + unreachable ) - (func $~lib/process/lazyArgv (result i32) - (local $0 i32) - (local $1 i32) - (local $2 i32) + (func $~lib/util/number/utoa64_dec_lut (param $0 i32) (param $1 i64) (param $2 i32) (local $3 i32) - (local $4 i32) + (local $4 i64) (local $5 i32) (local $6 i32) (local $7 i32) @@ -6567,962 +6117,753 @@ (local $9 i32) (local $10 i32) (local $11 i32) - (local $12 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 - global.get $~lib/process/iobuf - global.get $~lib/process/iobuf - i32.const 4 - i32.add - call $~lib/bindings/wasi_snapshot_preview1/args_sizes_get - local.set $0 - local.get $0 - i32.const 65535 - i32.and - if - local.get $0 - call $~lib/bindings/wasi_snapshot_preview1/errnoToString - i32.const 3088 - i32.const 66 - i32.const 12 - call $~lib/wasi/index/abort - unreachable - end - global.get $~lib/process/iobuf - i32.load - local.set $1 - local.get $1 - i32.const 4 - i32.mul - local.set $2 - global.get $~lib/process/iobuf - i32.load offset=4 - local.set $3 - local.get $2 - local.get $3 - i32.add - local.set $4 - local.get $4 - call $~lib/rt/tlsf/__alloc - local.set $5 - local.get $5 - local.get $5 - local.get $2 - i32.add - call $~lib/bindings/wasi_snapshot_preview1/args_get - local.set $0 - local.get $0 - i32.const 65535 - i32.and - if - local.get $0 - call $~lib/bindings/wasi_snapshot_preview1/errnoToString - i32.const 3088 - i32.const 73 - i32.const 12 - call $~lib/wasi/index/abort - unreachable - end - local.get $1 - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 0 - local.get $6 - call $~lib/array/Array<~lib/string/String>#constructor - local.tee $7 - i32.store - i32.const 0 - local.set $8 - loop $for-loop|0 - local.get $8 - local.get $6 - i32.lt_s - local.set $9 - local.get $9 + (local $12 i64) + (local $13 i64) + loop $while-continue|0 + local.get $1 + i64.const 100000000 + i64.ge_u + local.set $3 + local.get $3 if + local.get $1 + i64.const 100000000 + i64.div_u + local.set $4 + local.get $1 + local.get $4 + i64.const 100000000 + i64.mul + i64.sub + i32.wrap_i64 + local.set $5 + local.get $4 + local.set $1 local.get $5 - local.get $8 - i32.const 4 - i32.mul - i32.add - i32.load + i32.const 10000 + i32.div_u + local.set $6 + local.get $5 + i32.const 10000 + i32.rem_u + local.set $7 + local.get $6 + i32.const 100 + i32.div_u + local.set $8 + local.get $6 + i32.const 100 + i32.rem_u + local.set $9 + local.get $7 + i32.const 100 + i32.div_u local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 + local.get $7 + i32.const 100 + i32.rem_u + local.set $11 + i32.const 4620 local.get $10 - local.get $4 + i32.const 2 + i32.shl i32.add - local.get $5 + i64.load32_u + local.set $12 + i32.const 4620 + local.get $11 + i32.const 2 + i32.shl + i32.add + i64.load32_u + local.set $13 + local.get $2 + i32.const 4 i32.sub + local.set $2 + local.get $0 + local.get $2 i32.const 1 - call $~lib/string/String.UTF8.decodeUnsafe - local.tee $11 - i32.store offset=4 - local.get $7 - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 + i32.shl + i32.add local.get $12 + local.get $13 + i64.const 32 + i64.shl + i64.or + i64.store + i32.const 4620 local.get $8 - local.get $11 + i32.const 2 + i32.shl + i32.add + i64.load32_u local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=12 - local.get $12 - call $~lib/array/Array<~lib/string/String>#__set - local.get $8 + i32.const 4620 + local.get $9 + i32.const 2 + i32.shl + i32.add + i64.load32_u + local.set $13 + local.get $2 + i32.const 4 + i32.sub + local.set $2 + local.get $0 + local.get $2 i32.const 1 + i32.shl i32.add - local.set $8 - br $for-loop|0 + local.get $12 + local.get $13 + i64.const 32 + i64.shl + i64.or + i64.store + br $while-continue|0 end end - local.get $5 - call $~lib/rt/tlsf/__free - local.get $7 - local.set $12 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $12 + local.get $0 + local.get $1 + i32.wrap_i64 + local.get $2 + call $~lib/util/number/utoa32_dec_lut ) - (func $~lib/string/String#indexOf (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/util/number/utoa_hex_lut (param $0 i32) (param $1 i64) (param $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 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 $1 - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store - local.get $8 - call $~lib/string/String#get:length - local.set $3 - local.get $3 - i32.eqz + loop $while-continue|0 + local.get $2 + i32.const 2 + i32.ge_u + local.set $3 + local.get $3 + if + local.get $2 + i32.const 2 + i32.sub + local.set $2 + local.get $0 + local.get $2 + i32.const 1 + i32.shl + i32.add + i32.const 5040 + local.get $1 + i32.wrap_i64 + i32.const 255 + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + i32.store + local.get $1 + i64.const 8 + i64.shr_u + local.set $1 + br $while-continue|0 + end + end + local.get $2 + i32.const 1 + i32.and if - i32.const 0 - local.set $8 - global.get $~lib/memory/__stack_pointer - i32.const 8 + local.get $0 + i32.const 5040 + local.get $1 + i32.wrap_i64 + i32.const 6 + i32.shl i32.add - global.set $~lib/memory/__stack_pointer - local.get $8 - return + i32.load16_u + i32.store16 end - local.get $0 - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store - local.get $8 - call $~lib/string/String#get:length - local.set $4 - local.get $4 - i32.eqz + ) + (func $~lib/util/number/ulog_base (param $0 i64) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i64) + (local $4 i64) + (local $5 i32) + local.get $1 + local.set $2 + local.get $2 + i32.popcnt + i32.const 1 + i32.eq if - i32.const -1 - local.set $8 - global.get $~lib/memory/__stack_pointer - i32.const 8 + 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 - global.set $~lib/memory/__stack_pointer - local.get $8 return end - local.get $2 - local.tee $5 - i32.const 0 - local.tee $6 - local.get $5 - local.get $6 - i32.gt_s - select - local.tee $6 - local.get $4 - local.tee $5 - local.get $6 - local.get $5 - i32.lt_s - select - local.set $7 - local.get $4 + local.get $1 + i64.extend_i32_s + local.set $3 local.get $3 - i32.sub local.set $4 - loop $for-loop|0 - local.get $7 + i32.const 1 + local.set $5 + loop $while-continue|0 + local.get $0 local.get $4 - i32.le_s - local.set $6 - local.get $6 + i64.ge_u + local.set $2 + local.get $2 + if + local.get $0 + local.get $4 + i64.div_u + local.set $0 + local.get $4 + local.get $4 + i64.mul + local.set $4 + local.get $5 + i32.const 1 + i32.shl + local.set $5 + br $while-continue|0 + end + end + loop $while-continue|1 + local.get $0 + i64.const 1 + i64.ge_u + local.set $2 + local.get $2 if local.get $0 - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store - local.get $8 - local.get $7 - local.get $1 - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 - i32.const 0 local.get $3 - call $~lib/util/string/compareImpl - i32.eqz - if - local.get $7 - local.set $8 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $8 - return - end - local.get $7 + i64.div_u + local.set $0 + local.get $5 i32.const 1 i32.add - local.set $7 - br $for-loop|0 + local.set $5 + br $while-continue|1 end end - i32.const -1 - local.set $8 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $8 + local.get $5 + i32.const 1 + i32.sub ) - (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) - (local $6 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 i64) (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 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 $0 - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store - local.get $12 - call $~lib/string/String#get:length - local.set $3 - local.get $1 - local.tee $4 - i32.const 0 - local.tee $5 - local.get $4 - local.get $5 - i32.gt_s - select - local.tee $5 local.get $3 - local.tee $4 - local.get $5 - local.get $4 - i32.lt_s - select - local.set $6 - local.get $2 - local.tee $4 - i32.const 0 - local.tee $5 - local.get $4 - local.get $5 - i32.gt_s - select - local.tee $5 + i64.extend_i32_s + local.set $4 + local.get $3 local.get $3 - local.tee $4 - local.get $5 - local.get $4 - i32.lt_s - select - local.set $7 - local.get $6 - local.tee $4 - local.get $7 - local.tee $5 - local.get $4 - local.get $5 - i32.lt_s - select - i32.const 1 - i32.shl - local.set $8 - local.get $6 - local.tee $5 - local.get $7 - local.tee $4 - local.get $5 - local.get $4 - i32.gt_s - select i32.const 1 - i32.shl - local.set $9 - local.get $9 - local.get $8 i32.sub - local.set $10 - local.get $10 - i32.eqz + i32.and + i32.const 0 + i32.eq if - i32.const 4112 - local.set $12 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $12 - return - end - local.get $8 - i32.eqz - if (result i32) - local.get $9 local.get $3 - i32.const 1 - i32.shl - i32.eq + i32.ctz + i32.const 7 + i32.and + i64.extend_i32_s + local.set $5 + local.get $4 + i64.const 1 + i64.sub + local.set $6 + loop $do-continue|0 + local.get $2 + i32.const 1 + i32.sub + local.set $2 + local.get $0 + local.get $2 + i32.const 1 + i32.shl + i32.add + i32.const 6096 + local.get $1 + local.get $6 + i64.and + i32.wrap_i64 + i32.const 1 + i32.shl + i32.add + i32.load16_u + i32.store16 + local.get $1 + local.get $5 + i64.shr_u + local.set $1 + local.get $1 + i64.const 0 + i64.ne + local.set $7 + local.get $7 + br_if $do-continue|0 + end else - i32.const 0 - end - if - local.get $0 - local.set $12 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $12 - return + loop $do-continue|1 + local.get $2 + i32.const 1 + i32.sub + local.set $2 + local.get $1 + local.get $4 + i64.div_u + local.set $6 + local.get $0 + local.get $2 + i32.const 1 + i32.shl + i32.add + i32.const 6096 + local.get $1 + local.get $6 + local.get $4 + i64.mul + i64.sub + i32.wrap_i64 + i32.const 1 + i32.shl + i32.add + i32.load16_u + i32.store16 + local.get $6 + local.set $1 + local.get $1 + i64.const 0 + i64.ne + local.set $7 + local.get $7 + br_if $do-continue|1 + end end - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $11 - i32.store offset=4 - local.get $11 + ) + (func $~lib/number/I64#toString (param $0 i64) (param $1 i32) (result i32) local.get $0 - local.get $8 - i32.add - local.get $10 - call $~lib/memory/memory.copy - local.get $11 - local.set $12 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $12 + local.get $1 + call $~lib/util/number/itoa64 ) - (func $~lib/util/hash/hashStr (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 - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - i32.const -2128831035 - local.set $1 + (func $~lib/process/process.hrtime (result i64) + (local $0 i32) + i32.const 1 + i64.const 0 + global.get $~lib/process/iobuf + call $~lib/bindings/wasi_snapshot_preview1/clock_time_get + local.set $0 local.get $0 - i32.const 0 - i32.ne + i32.const 65535 + i32.and if - i32.const 0 - local.set $2 local.get $0 - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - local.get $5 - call $~lib/string/String#get:length - i32.const 1 - i32.shl - local.set $3 - loop $for-loop|0 - local.get $2 - local.get $3 - i32.lt_u - local.set $4 - local.get $4 - if - local.get $1 - local.get $0 - local.get $2 - i32.add - i32.load8_u - i32.xor - i32.const 16777619 - i32.mul - local.set $1 - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $for-loop|0 - end - end + call $~lib/bindings/wasi_snapshot_preview1/errnoToString + i32.const 3088 + i32.const 59 + i32.const 14 + call $~lib/wasi/index/abort + unreachable end - local.get $1 - local.set $5 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $5 + global.get $~lib/process/iobuf + i64.load ) - (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 - call $~stack_check - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store + (func $~lib/number/U64#toString (param $0 i64) (param $1 i32) (result i32) local.get $0 local.get $1 - i32.eq + call $~lib/util/number/utoa64 + ) + (func $~lib/process/process.exit (param $0 i32) + local.get $0 + call $~lib/bindings/wasi_snapshot_preview1/proc_exit + ) + (func $~lib/rt/__visit_globals (param $0 i32) + (local $1 i32) + global.get $~lib/process/process.arch + local.tee $1 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 + local.get $1 + local.get $0 + call $~lib/rt/itcms/__visit end - local.get $0 - i32.const 0 - i32.eq - if (result i32) - i32.const 1 - else + global.get $~lib/process/process.platform + local.tee $1 + if local.get $1 - i32.const 0 - i32.eq + local.get $0 + call $~lib/rt/itcms/__visit end + global.get $~lib/process/process.argv + local.tee $1 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 + local.get $1 + local.get $0 + call $~lib/rt/itcms/__visit end - local.get $0 - 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 $2 - local.get $2 - local.get $1 - 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 + global.get $~lib/process/process.env + local.tee $1 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 + local.get $1 + local.get $0 + call $~lib/rt/itcms/__visit + end + global.get $std-wasi/process/argv + local.tee $1 + if + local.get $1 + local.get $0 + call $~lib/rt/itcms/__visit + end + global.get $std-wasi/process/env + local.tee $1 + if + local.get $1 + local.get $0 + call $~lib/rt/itcms/__visit + end + global.get $std-wasi/process/envKeys + local.tee $1 + if + local.get $1 + local.get $0 + call $~lib/rt/itcms/__visit end + i32.const 3648 local.get $0 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store - local.get $3 - i32.const 0 - local.get $1 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - i32.const 0 - local.get $2 - 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 + call $~lib/rt/itcms/__visit + i32.const 3424 + local.get $0 + call $~lib/rt/itcms/__visit + i32.const 3888 + local.get $0 + call $~lib/rt/itcms/__visit + i32.const 4256 + local.get $0 + call $~lib/rt/itcms/__visit + i32.const 3216 + local.get $0 + call $~lib/rt/itcms/__visit + i32.const 5040 + local.get $0 + call $~lib/rt/itcms/__visit + i32.const 6096 + local.get $0 + call $~lib/rt/itcms/__visit ) - (func $~lib/map/Map<~lib/string/String,~lib/string/String>#find (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/arraybuffer/ArrayBufferView~visit (param $0 i32) (param $1 i32) + (local $2 i32) + 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>#__visit (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.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store + i32.const 1 + drop local.get $0 - i32.load + i32.load offset=4 + local.set $2 local.get $2 local.get $0 - i32.load offset=4 - i32.and - i32.const 4 - i32.mul + i32.load offset=12 + i32.const 2 + i32.shl i32.add - i32.load local.set $3 loop $while-continue|0 + local.get $2 local.get $3 + i32.lt_u local.set $4 local.get $4 if - local.get $3 - i32.load offset=8 + local.get $2 + i32.load local.set $5 local.get $5 - i32.const 1 - i32.and - i32.eqz - if (result i32) - local.get $3 - i32.load - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - local.get $1 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - call $~lib/string/String.__eq - else - i32.const 0 - end if - local.get $3 - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - return + local.get $5 + local.get $1 + call $~lib/rt/itcms/__visit end - local.get $5 - i32.const 1 - i32.const -1 - i32.xor - i32.and - local.set $3 + local.get $2 + i32.const 4 + i32.add + local.set $2 br $while-continue|0 end end - i32.const 0 - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 + local.get $0 + i32.load + local.get $1 + call $~lib/rt/itcms/__visit ) - (func $~lib/map/Map<~lib/string/String,~lib/string/String>#rehash (param $0 i32) (param $1 i32) + (func $~lib/array/Array<~lib/string/String>~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/array/Array<~lib/string/String>#__visit + ) + (func $~lib/map/Map<~lib/string/String,~lib/string/String>#__visit (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 i32) - (local $13 i32) - (local $14 i32) - (local $15 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 - 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 0 - i32.store offset=16 + local.get $0 + i32.load local.get $1 - i32.const 1 - i32.add - local.set $2 - global.get $~lib/memory/__stack_pointer - i32.const 0 - local.get $2 - i32.const 4 - i32.mul - call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $3 - i32.store - local.get $2 - i32.const 8 - i32.mul - i32.const 3 - i32.div_s - local.set $4 - global.get $~lib/memory/__stack_pointer - i32.const 0 - local.get $4 - i32.const 12 - i32.mul - call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $5 - i32.store offset=4 + call $~lib/rt/itcms/__visit local.get $0 i32.load offset=8 - local.set $6 - local.get $6 + local.set $2 + i32.const 1 + if (result i32) + i32.const 1 + else + i32.const 1 + end + drop + local.get $2 + local.set $3 + local.get $3 local.get $0 i32.load offset=16 i32.const 12 i32.mul i32.add - local.set $7 - local.get $5 - local.set $8 + local.set $4 loop $while-continue|0 - local.get $6 - local.get $7 - i32.ne - local.set $9 - local.get $9 + local.get $3 + local.get $4 + i32.lt_u + local.set $5 + local.get $5 if + local.get $3 + local.set $6 local.get $6 - local.set $10 - local.get $10 i32.load offset=8 i32.const 1 i32.and i32.eqz if - local.get $8 - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $10 + i32.const 1 + drop + local.get $6 i32.load - local.tee $12 - i32.store offset=8 - local.get $11 - local.get $12 - call $~lib/map/MapEntry<~lib/string/String,~lib/string/String>#set:key - local.get $11 - local.get $10 + local.set $7 + i32.const 0 + drop + local.get $7 + local.get $1 + call $~lib/rt/itcms/__visit + i32.const 1 + drop + local.get $6 i32.load offset=4 - call $~lib/map/MapEntry<~lib/string/String,~lib/string/String>#set:value - block $~lib/util/hash/HASH<~lib/string/String>|inlined.1 (result i32) - global.get $~lib/memory/__stack_pointer - local.get $12 - local.tee $13 - i32.store offset=12 - i32.const 1 - drop - local.get $13 - local.set $15 - global.get $~lib/memory/__stack_pointer - local.get $15 - i32.store offset=16 - local.get $15 - call $~lib/util/hash/hashStr - br $~lib/util/hash/HASH<~lib/string/String>|inlined.1 + local.set $7 + i32.const 0 + drop + local.get $7 + local.get $1 + call $~lib/rt/itcms/__visit + end + local.get $3 + i32.const 12 + i32.add + local.set $3 + br $while-continue|0 + end + end + local.get $2 + local.get $1 + call $~lib/rt/itcms/__visit + ) + (func $~lib/map/Map<~lib/string/String,~lib/string/String>~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/map/Map<~lib/string/String,~lib/string/String>#__visit + ) + (func $~lib/rt/__visit_members (param $0 i32) (param $1 i32) + block $invalid + block $~lib/map/Map<~lib/string/String,~lib/string/String> + block $~lib/array/Array<~lib/string/String> + block $~lib/arraybuffer/ArrayBufferView + block $~lib/string/String + block $~lib/arraybuffer/ArrayBuffer + local.get $0 + i32.const 8 + i32.sub + i32.load + br_table $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $~lib/array/Array<~lib/string/String> $~lib/map/Map<~lib/string/String,~lib/string/String> $invalid + end + return + end + return end + local.get $0 local.get $1 - i32.and - local.set $13 - local.get $3 - local.get $13 - i32.const 4 - i32.mul - i32.add - local.set $14 - local.get $11 - local.get $14 - i32.load - call $~lib/map/MapEntry<~lib/string/String,~lib/string/String>#set:taggedNext - local.get $14 - local.get $8 - i32.store - local.get $8 - i32.const 12 - i32.add - local.set $8 + call $~lib/arraybuffer/ArrayBufferView~visit + return end - local.get $6 - i32.const 12 - i32.add - local.set $6 - br $while-continue|0 + local.get $0 + local.get $1 + call $~lib/array/Array<~lib/string/String>~visit + return end + local.get $0 + local.get $1 + call $~lib/map/Map<~lib/string/String,~lib/string/String>~visit + return end - local.get $0 - local.get $3 - call $~lib/map/Map<~lib/string/String,~lib/string/String>#set:buckets - local.get $0 + unreachable + ) + (func $~start + global.get $~started + if + return + end + i32.const 1 + global.set $~started + call $start:std-wasi/process + ) + (func $~stack_check + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__data_end + i32.lt_s + if + i32.const 22720 + i32.const 22768 + i32.const 1 + i32.const 1 + call $~lib/wasi/index/abort + unreachable + end + ) + (func $~lib/console/console.log (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 + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/process/process.stdout + local.set $1 local.get $1 - call $~lib/map/Map<~lib/string/String,~lib/string/String>#set:bucketsMask - local.get $0 - local.get $5 - call $~lib/map/Map<~lib/string/String,~lib/string/String>#set:entries - local.get $0 - local.get $4 - call $~lib/map/Map<~lib/string/String,~lib/string/String>#set:entriesCapacity - local.get $0 local.get $0 - i32.load offset=20 - call $~lib/map/Map<~lib/string/String,~lib/string/String>#set:entriesOffset + call $~lib/process/WritableStream#write<~lib/string/String> + local.get $1 + i32.const 3280 + local.set $2 global.get $~lib/memory/__stack_pointer - i32.const 20 + local.get $2 + i32.store + local.get $2 + call $~lib/process/WritableStream#write<~lib/string/String> + global.get $~lib/memory/__stack_pointer + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/map/Map<~lib/string/String,~lib/string/String>#set (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/map/Map<~lib/string/String,~lib/string/String>#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) 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 - block $~lib/util/hash/HASH<~lib/string/String>|inlined.0 (result i32) - global.get $~lib/memory/__stack_pointer - local.get $1 - local.tee $3 - i32.store - i32.const 1 - drop - local.get $3 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - call $~lib/util/hash/hashStr - br $~lib/util/hash/HASH<~lib/string/String>|inlined.0 - end - local.set $4 + i32.store local.get $0 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - local.get $1 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=8 - local.get $7 - local.get $4 - call $~lib/map/Map<~lib/string/String,~lib/string/String>#find - local.set $5 - local.get $5 - if - local.get $5 - local.get $2 - call $~lib/map/MapEntry<~lib/string/String,~lib/string/String>#set:value - i32.const 1 - drop - local.get $0 - local.get $2 - i32.const 1 - call $~lib/rt/itcms/__link - else - local.get $0 - i32.load offset=16 - local.get $0 - i32.load offset=12 - i32.eq - if - local.get $0 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - local.get $0 - i32.load offset=20 - 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 $0 - i32.load offset=4 - else - local.get $0 - i32.load offset=4 - i32.const 1 - i32.shl - i32.const 1 - i32.or - end - call $~lib/map/Map<~lib/string/String,~lib/string/String>#rehash - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.load offset=8 - local.tee $3 - i32.store - local.get $3 - local.get $0 - local.get $0 - i32.load offset=16 - local.tee $6 - i32.const 1 - i32.add - call $~lib/map/Map<~lib/string/String,~lib/string/String>#set:entriesOffset - local.get $6 - i32.const 12 - i32.mul - i32.add - local.set $5 - local.get $5 - local.get $1 - call $~lib/map/MapEntry<~lib/string/String,~lib/string/String>#set:key - i32.const 1 - drop - local.get $0 - local.get $1 - i32.const 1 - call $~lib/rt/itcms/__link - local.get $5 - local.get $2 - call $~lib/map/MapEntry<~lib/string/String,~lib/string/String>#set:value - i32.const 1 - drop - local.get $0 - local.get $2 - i32.const 1 - call $~lib/rt/itcms/__link - local.get $0 - local.get $0 - i32.load offset=20 - i32.const 1 - i32.add - call $~lib/map/Map<~lib/string/String,~lib/string/String>#set:entriesCount - local.get $0 - i32.load - local.get $4 - local.get $0 - i32.load offset=4 - i32.and - i32.const 4 - i32.mul - i32.add - local.set $6 - local.get $5 - local.get $6 - i32.load - call $~lib/map/MapEntry<~lib/string/String,~lib/string/String>#set:taggedNext - local.get $6 - local.get $5 - i32.store + i32.load + local.get $2 + local.get $0 + i32.load offset=4 + i32.and + i32.const 4 + i32.mul + i32.add + i32.load + local.set $3 + loop $while-continue|0 + local.get $3 + local.set $4 + local.get $4 + if + local.get $3 + i32.load offset=8 + local.set $5 + local.get $5 + i32.const 1 + i32.and + i32.eqz + if (result i32) + local.get $3 + i32.load + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store + local.get $6 + local.get $1 + call $~lib/string/String.__eq + else + i32.const 0 + end + if + local.get $3 + local.set $6 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $6 + return + end + local.get $5 + i32.const 1 + i32.const -1 + i32.xor + i32.and + local.set $3 + br $while-continue|0 + end end - local.get $0 - local.set $7 + i32.const 0 + local.set $6 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $7 + local.get $6 ) (func $~lib/process/lazyEnv (result i32) (local $0 i32) @@ -7539,7 +6880,7 @@ (local $11 i32) (local $12 i32) global.get $~lib/memory/__stack_pointer - i32.const 24 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check @@ -7549,9 +6890,6 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store offset=8 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=16 global.get $~lib/process/iobuf global.get $~lib/process/iobuf i32.const 4 @@ -7638,16 +6976,11 @@ local.tee $10 i32.store offset=4 local.get $10 - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 i32.const 4080 local.set $12 global.get $~lib/memory/__stack_pointer local.get $12 - i32.store offset=12 + i32.store offset=8 local.get $12 i32.const 0 call $~lib/string/String#indexOf @@ -7657,31 +6990,16 @@ i32.xor if local.get $6 - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 local.get $10 - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=20 - local.get $12 i32.const 0 local.get $11 call $~lib/string/String#substring local.set $12 global.get $~lib/memory/__stack_pointer local.get $12 - i32.store offset=12 + i32.store offset=8 local.get $12 local.get $10 - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=20 - local.get $12 local.get $11 i32.const 1 i32.add @@ -7690,28 +7008,18 @@ local.set $12 global.get $~lib/memory/__stack_pointer local.get $12 - i32.store offset=16 + i32.store offset=12 local.get $12 call $~lib/map/Map<~lib/string/String,~lib/string/String>#set drop else local.get $6 - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 local.get $10 - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=12 - local.get $12 i32.const 4112 local.set $12 global.get $~lib/memory/__stack_pointer local.get $12 - i32.store offset=16 + i32.store offset=12 local.get $12 call $~lib/map/Map<~lib/string/String,~lib/string/String>#set drop @@ -7728,7 +7036,7 @@ local.get $6 local.set $12 global.get $~lib/memory/__stack_pointer - i32.const 24 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer local.get $12 @@ -7744,16 +7052,13 @@ (local $8 i32) (local $9 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 $0 i32.load offset=8 local.set $1 @@ -7790,11 +7095,6 @@ i32.eqz if local.get $3 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 local.get $4 local.tee $8 i32.const 1 @@ -7806,7 +7106,7 @@ local.set $9 global.get $~lib/memory/__stack_pointer local.get $9 - i32.store offset=8 + i32.store offset=4 local.get $9 call $~lib/array/Array<~lib/string/String>#__set end @@ -7818,85 +7118,16 @@ end end local.get $3 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 local.get $4 call $~lib/array/Array<~lib/string/String>#set:length local.get $3 local.set $9 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer local.get $9 ) - (func $~lib/map/Map<~lib/string/String,~lib/string/String>#get (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 16 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=8 - local.get $0 - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store - local.get $4 - local.get $1 - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - block $~lib/util/hash/HASH<~lib/string/String>|inlined.2 (result i32) - global.get $~lib/memory/__stack_pointer - local.get $1 - local.tee $2 - i32.store offset=8 - i32.const 1 - drop - local.get $2 - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=12 - local.get $4 - call $~lib/util/hash/hashStr - br $~lib/util/hash/HASH<~lib/string/String>|inlined.2 - end - call $~lib/map/Map<~lib/string/String,~lib/string/String>#find - local.set $3 - local.get $3 - i32.eqz - if - i32.const 4256 - i32.const 4320 - i32.const 105 - i32.const 17 - call $~lib/wasi/index/abort - unreachable - end - local.get $3 - i32.load offset=4 - local.set $4 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $4 - ) (func $start:std-wasi/process (local $0 i32) (local $1 i32) @@ -7904,7 +7135,7 @@ (local $3 i32) (local $4 i32) global.get $~lib/memory/__stack_pointer - i32.const 16 + i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check @@ -7912,8 +7143,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 i32.const 32 local.set $4 global.get $~lib/memory/__stack_pointer @@ -8056,11 +7287,6 @@ local.get $4 call $~lib/process/WritableStream#write<~lib/string/String> local.get $3 - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store - local.get $4 call $~lib/console/console.log global.get $~lib/process/process.stdout i32.const 4224 @@ -8077,11 +7303,6 @@ i32.store offset=4 local.get $4 local.get $3 - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=12 - local.get $4 call $~lib/map/Map<~lib/string/String,~lib/string/String>#get local.set $4 global.get $~lib/memory/__stack_pointer @@ -8138,7 +7359,7 @@ i32.const 42 call $~lib/process/process.exit global.get $~lib/memory/__stack_pointer - i32.const 16 + i32.const 12 i32.add global.set $~lib/memory/__stack_pointer ) @@ -8446,14 +7667,145 @@ local.get $5 local.get $6 local.get $5 - i32.sub - call $~lib/rt/itcms/__renew - local.set $13 + i32.sub + call $~lib/rt/itcms/__renew + local.set $13 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $13 + ) + (func $~lib/process/lazyArgv (result i32) + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 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 + global.get $~lib/process/iobuf + global.get $~lib/process/iobuf + i32.const 4 + i32.add + call $~lib/bindings/wasi_snapshot_preview1/args_sizes_get + local.set $0 + local.get $0 + i32.const 65535 + i32.and + if + local.get $0 + call $~lib/bindings/wasi_snapshot_preview1/errnoToString + i32.const 3088 + i32.const 66 + i32.const 12 + call $~lib/wasi/index/abort + unreachable + end + global.get $~lib/process/iobuf + i32.load + local.set $1 + local.get $1 + i32.const 4 + i32.mul + local.set $2 + global.get $~lib/process/iobuf + i32.load offset=4 + local.set $3 + local.get $2 + local.get $3 + i32.add + local.set $4 + local.get $4 + call $~lib/rt/tlsf/__alloc + local.set $5 + local.get $5 + local.get $5 + local.get $2 + i32.add + call $~lib/bindings/wasi_snapshot_preview1/args_get + local.set $0 + local.get $0 + i32.const 65535 + i32.and + if + local.get $0 + call $~lib/bindings/wasi_snapshot_preview1/errnoToString + i32.const 3088 + i32.const 73 + i32.const 12 + call $~lib/wasi/index/abort + unreachable + end + local.get $1 + local.set $6 + global.get $~lib/memory/__stack_pointer + i32.const 0 + local.get $6 + call $~lib/array/Array<~lib/string/String>#constructor + local.tee $7 + i32.store + i32.const 0 + local.set $8 + loop $for-loop|0 + local.get $8 + local.get $6 + i32.lt_s + local.set $9 + local.get $9 + if + local.get $5 + local.get $8 + i32.const 4 + i32.mul + i32.add + i32.load + local.set $10 + global.get $~lib/memory/__stack_pointer + local.get $10 + local.get $10 + local.get $4 + i32.add + local.get $5 + i32.sub + i32.const 1 + call $~lib/string/String.UTF8.decodeUnsafe + local.tee $11 + i32.store offset=4 + local.get $7 + local.get $8 + local.get $11 + call $~lib/array/Array<~lib/string/String>#__set + local.get $8 + i32.const 1 + i32.add + local.set $8 + br $for-loop|0 + end + end + local.get $5 + call $~lib/rt/tlsf/__free + local.get $7 + local.set $12 global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $13 + local.get $12 ) (func $~lib/array/Array<~lib/string/String>#__get (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -8489,70 +7841,263 @@ local.tee $2 i32.store i32.const 1 - drop - i32.const 0 - i32.eqz - drop - local.get $2 + drop + i32.const 0 + i32.eqz + drop + local.get $2 + i32.eqz + if + i32.const 3888 + i32.const 3472 + i32.const 96 + i32.const 40 + call $~lib/wasi/index/abort + unreachable + end + local.get $2 + 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/arraybuffer/ArrayBuffer#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.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $1 + i32.const 1073741820 + i32.gt_u + if + i32.const 3424 + i32.const 4016 + i32.const 49 + i32.const 43 + call $~lib/wasi/index/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.const 0 + call $~lib/rt/itcms/__new + local.tee $2 + i32.store + local.get $2 + i32.const 0 + local.get $1 + call $~lib/memory/memory.fill + local.get $2 + local.set $3 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 + ) + (func $~lib/map/Map<~lib/string/String,~lib/string/String>#constructor (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 + call $~stack_check + 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 24 + i32.const 4 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + local.get $0 + i32.const 0 + i32.const 4 + i32.const 4 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + call $~lib/map/Map<~lib/string/String,~lib/string/String>#set:buckets + local.get $0 + i32.const 4 + i32.const 1 + i32.sub + call $~lib/map/Map<~lib/string/String,~lib/string/String>#set:bucketsMask + local.get $0 + i32.const 0 + i32.const 4 + i32.const 12 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + call $~lib/map/Map<~lib/string/String,~lib/string/String>#set:entries + local.get $0 + i32.const 4 + call $~lib/map/Map<~lib/string/String,~lib/string/String>#set:entriesCapacity + local.get $0 + i32.const 0 + call $~lib/map/Map<~lib/string/String,~lib/string/String>#set:entriesOffset + local.get $0 + i32.const 0 + call $~lib/map/Map<~lib/string/String,~lib/string/String>#set:entriesCount + local.get $0 + 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/string/String#substring (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) + (local $11 i32) + (local $12 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 $0 + call $~lib/string/String#get:length + local.set $3 + local.get $1 + local.tee $4 + i32.const 0 + local.tee $5 + local.get $4 + local.get $5 + i32.gt_s + select + local.tee $5 + local.get $3 + local.tee $4 + local.get $5 + local.get $4 + i32.lt_s + select + local.set $6 + local.get $2 + local.tee $4 + i32.const 0 + local.tee $5 + local.get $4 + local.get $5 + i32.gt_s + select + local.tee $5 + local.get $3 + local.tee $4 + local.get $5 + local.get $4 + i32.lt_s + select + local.set $7 + local.get $6 + local.tee $4 + local.get $7 + local.tee $5 + local.get $4 + local.get $5 + i32.lt_s + select + i32.const 1 + i32.shl + local.set $8 + local.get $6 + local.tee $5 + local.get $7 + local.tee $4 + local.get $5 + local.get $4 + i32.gt_s + select + i32.const 1 + i32.shl + local.set $9 + local.get $9 + local.get $8 + i32.sub + local.set $10 + local.get $10 i32.eqz if - i32.const 3888 - i32.const 3472 - i32.const 96 - i32.const 40 - call $~lib/wasi/index/abort - unreachable + i32.const 4112 + local.set $12 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $12 + return + end + local.get $8 + i32.eqz + if (result i32) + local.get $9 + local.get $3 + i32.const 1 + i32.shl + i32.eq + else + i32.const 0 end - local.get $2 - 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/arraybuffer/ArrayBuffer#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.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - local.get $1 - i32.const 1073741820 - i32.gt_u if - i32.const 3424 - i32.const 4016 - i32.const 49 - i32.const 43 - call $~lib/wasi/index/abort - unreachable + local.get $0 + local.set $12 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $12 + return end global.get $~lib/memory/__stack_pointer - local.get $1 - i32.const 0 + local.get $10 + i32.const 1 call $~lib/rt/itcms/__new - local.tee $2 + local.tee $11 i32.store - local.get $2 - i32.const 0 - local.get $1 - call $~lib/memory/memory.fill - local.get $2 - local.set $3 + local.get $11 + local.get $0 + local.get $8 + i32.add + local.get $10 + call $~lib/memory/memory.copy + local.get $11 + local.set $12 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $3 + local.get $12 ) - (func $~lib/map/Map<~lib/string/String,~lib/string/String>#constructor (param $0 i32) (result i32) - (local $1 i32) + (func $~lib/map/Map<~lib/string/String,~lib/string/String>#set (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 @@ -8561,51 +8106,129 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store + block $~lib/util/hash/HASH<~lib/string/String>|inlined.0 (result i32) + local.get $1 + local.set $3 + i32.const 1 + drop + local.get $3 + call $~lib/util/hash/hashStr + br $~lib/util/hash/HASH<~lib/string/String>|inlined.0 + end + local.set $4 local.get $0 - i32.eqz + local.get $1 + local.get $4 + call $~lib/map/Map<~lib/string/String,~lib/string/String>#find + local.set $5 + local.get $5 if + local.get $5 + local.get $2 + call $~lib/map/MapEntry<~lib/string/String,~lib/string/String>#set:value + i32.const 1 + drop + local.get $0 + local.get $2 + i32.const 1 + call $~lib/rt/itcms/__link + else + local.get $0 + i32.load offset=16 + local.get $0 + i32.load offset=12 + i32.eq + if + local.get $0 + local.get $0 + i32.load offset=20 + 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 $0 + i32.load offset=4 + else + local.get $0 + i32.load offset=4 + i32.const 1 + i32.shl + i32.const 1 + i32.or + end + call $~lib/map/Map<~lib/string/String,~lib/string/String>#rehash + end global.get $~lib/memory/__stack_pointer - i32.const 24 + local.get $0 + i32.load offset=8 + local.tee $3 + i32.store + local.get $3 + local.get $0 + local.get $0 + i32.load offset=16 + local.tee $6 + i32.const 1 + i32.add + call $~lib/map/Map<~lib/string/String,~lib/string/String>#set:entriesOffset + local.get $6 + i32.const 12 + i32.mul + i32.add + local.set $5 + local.get $5 + local.get $1 + call $~lib/map/MapEntry<~lib/string/String,~lib/string/String>#set:key + i32.const 1 + drop + local.get $0 + local.get $1 + i32.const 1 + call $~lib/rt/itcms/__link + local.get $5 + local.get $2 + call $~lib/map/MapEntry<~lib/string/String,~lib/string/String>#set:value + i32.const 1 + drop + local.get $0 + local.get $2 + i32.const 1 + call $~lib/rt/itcms/__link + local.get $0 + local.get $0 + i32.load offset=20 + i32.const 1 + i32.add + call $~lib/map/Map<~lib/string/String,~lib/string/String>#set:entriesCount + local.get $0 + i32.load + local.get $4 + local.get $0 + i32.load offset=4 + i32.and i32.const 4 - call $~lib/rt/itcms/__new - local.tee $0 + i32.mul + i32.add + local.set $6 + local.get $5 + local.get $6 + i32.load + call $~lib/map/MapEntry<~lib/string/String,~lib/string/String>#set:taggedNext + local.get $6 + local.get $5 i32.store end local.get $0 - i32.const 0 - i32.const 4 - i32.const 4 - i32.mul - call $~lib/arraybuffer/ArrayBuffer#constructor - call $~lib/map/Map<~lib/string/String,~lib/string/String>#set:buckets - local.get $0 - i32.const 4 - i32.const 1 - i32.sub - call $~lib/map/Map<~lib/string/String,~lib/string/String>#set:bucketsMask - local.get $0 - i32.const 0 - i32.const 4 - i32.const 12 - i32.mul - call $~lib/arraybuffer/ArrayBuffer#constructor - call $~lib/map/Map<~lib/string/String,~lib/string/String>#set:entries - local.get $0 - i32.const 4 - call $~lib/map/Map<~lib/string/String,~lib/string/String>#set:entriesCapacity - local.get $0 - i32.const 0 - call $~lib/map/Map<~lib/string/String,~lib/string/String>#set:entriesOffset - local.get $0 - i32.const 0 - call $~lib/map/Map<~lib/string/String,~lib/string/String>#set:entriesCount - local.get $0 - local.set $1 + local.set $7 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 + local.get $7 ) (func $~lib/util/number/itoa64 (param $0 i64) (param $1 i32) (result i32) (local $2 i32) diff --git a/tests/compiler/std/array-access.optimized.wat b/tests/compiler/std/array-access.optimized.wat index 5d7ec74a82..c1cf758185 100644 --- a/tests/compiler/std/array-access.optimized.wat +++ b/tests/compiler/std/array-access.optimized.wat @@ -35,98 +35,131 @@ unreachable end ) + (func $~lib/array/Array<~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 $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 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 92 + i32.const 42 + call $~lib/builtins/abort + unreachable + end + 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 + local.get $0 + i32.eqz + if + i32.const 1168 + i32.const 1120 + i32.const 96 + i32.const 40 + 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 $~lib/string/String#startsWith (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 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 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 + i32.store + i32.const 1292 + i32.load + i32.const 1 + i32.shr_u + local.tee $4 + local.set $1 + local.get $4 + i32.const 0 local.get $0 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 1296 - i32.store offset=4 - local.get $1 - i32.const 1292 - i32.load - i32.const 1 - i32.shr_u local.tee $2 - i32.const 0 - local.get $1 - local.get $1 + local.get $2 i32.const 0 i32.gt_s select - local.tee $1 + local.tee $3 i32.add - i32.lt_s + local.get $2 + i32.gt_s if global.get $~lib/memory/__stack_pointer - i32.const 12 + 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 offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 1296 - i32.store offset=8 block $__inlined_func$~lib/util/string/compareImpl (result i32) i32.const 1296 - local.set $3 + local.set $2 local.get $0 - local.get $1 + local.get $3 i32.const 1 i32.shl i32.add - local.tee $4 + local.tee $3 i32.const 7 i32.and i32.eqz i32.const 0 - local.get $2 + local.get $1 local.tee $0 i32.const 4 i32.ge_u select if loop $do-continue|0 - local.get $4 - i64.load local.get $3 i64.load + local.get $2 + i64.load i64.eq if - local.get $4 - i32.const 8 - i32.add - local.set $4 local.get $3 i32.const 8 i32.add local.set $3 + local.get $2 + i32.const 8 + i32.add + local.set $2 local.get $0 i32.const 4 i32.sub @@ -145,105 +178,55 @@ local.set $0 local.get $1 if - local.get $3 + local.get $2 i32.load16_u local.tee $1 - local.get $4 + local.get $3 i32.load16_u - local.tee $2 + local.tee $4 i32.ne if - local.get $2 + local.get $4 local.get $1 i32.sub br $__inlined_func$~lib/util/string/compareImpl end - local.get $4 - i32.const 2 - i32.add - local.set $4 local.get $3 i32.const 2 i32.add local.set $3 + local.get $2 + i32.const 2 + i32.add + local.set $2 br $while-continue|1 end end i32.const 0 end global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer i32.eqz ) - (func $~lib/array/Array<~lib/array/Array>#__get (param $0 i32) (param $1 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 global.set $~lib/memory/__stack_pointer call $~stack_check global.get $~lib/memory/__stack_pointer - i32.const 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 92 - i32.const 42 - call $~lib/builtins/abort - unreachable - end - 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 - local.get $0 - i32.eqz - if - i32.const 1168 - i32.const 1120 - i32.const 96 - i32.const 40 - 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 $export:std/array-access/i32ArrayArrayElementAccess (param $0 i32) (result i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check global.get $~lib/memory/__stack_pointer - local.get $0 + i32.const 0 i32.store - 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 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 local.get $0 i32.const 0 call $~lib/array/Array<~lib/array/Array>#__get @@ -267,7 +250,7 @@ i32.load offset=4 i32.load offset=4 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 @@ -285,16 +268,13 @@ local.get $0 i32.store 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 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 + i32.const 0 + i32.store local.get $0 i32.const 0 call $~lib/array/Array<~lib/array/Array>#__get @@ -309,7 +289,7 @@ i32.const 1 i32.shr_u 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 @@ -327,19 +307,13 @@ 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 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 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 local.get $0 i32.const 0 call $~lib/array/Array<~lib/array/Array>#__get @@ -353,7 +327,7 @@ 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 @@ -371,19 +345,13 @@ 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 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 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 local.get $0 i32.const 0 call $~lib/array/Array<~lib/array/Array>#__get @@ -405,7 +373,7 @@ i32.const 1 i32.shr_u 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 @@ -423,7 +391,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 call $~stack_check @@ -431,11 +399,8 @@ 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=12 + i32.const 0 + i32.store offset=8 local.get $0 i32.const 0 call $~lib/array/Array<~lib/array/Array>#__get @@ -456,7 +421,7 @@ 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-access.untouched.wat b/tests/compiler/std/array-access.untouched.wat index 8c93e5a777..b4a57d9610 100644 --- a/tests/compiler/std/array-access.untouched.wat +++ b/tests/compiler/std/array-access.untouched.wat @@ -180,19 +180,14 @@ (func $std/array-access/i32ArrayArrayElementAccess (param $0 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 $0 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 i32.const 0 call $~lib/array/Array<~lib/array/Array>#__get local.set $1 @@ -204,7 +199,7 @@ call $~lib/array/Array#__get 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 @@ -212,19 +207,14 @@ (func $std/array-access/stringArrayPropertyAccess (param $0 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 $0 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 i32.const 0 call $~lib/array/Array<~lib/string/String>#__get local.set $1 @@ -235,128 +225,22 @@ call $~lib/string/String#get:length 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 ) - (func $~lib/string/String#startsWith (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 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 $1 - i32.const 0 - i32.eq - if - global.get $~lib/memory/__stack_pointer - i32.const 304 - local.tee $1 - i32.store - end - local.get $0 - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 - call $~lib/string/String#get:length - local.set $3 - local.get $2 - local.tee $4 - i32.const 0 - local.tee $5 - local.get $4 - local.get $5 - i32.gt_s - select - local.tee $5 - local.get $3 - local.tee $4 - local.get $5 - local.get $4 - i32.lt_s - select - local.set $6 - local.get $1 - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 - call $~lib/string/String#get:length - local.set $7 - local.get $7 - local.get $6 - i32.add - local.get $3 - i32.gt_s - if - i32.const 0 - local.set $8 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $8 - return - end - local.get $0 - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 - local.get $6 - local.get $1 - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=8 - local.get $8 - i32.const 0 - local.get $7 - call $~lib/util/string/compareImpl - i32.eqz - local.set $8 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $8 - ) (func $std/array-access/stringArrayMethodCall (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 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 $0 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $1 i32.const 0 call $~lib/array/Array<~lib/string/String>#__get local.set $1 @@ -374,7 +258,7 @@ 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 @@ -382,22 +266,14 @@ (func $std/array-access/stringArrayArrayPropertyAccess (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 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 $0 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $1 i32.const 0 call $~lib/array/Array<~lib/array/Array<~lib/string/String>>#__get local.set $1 @@ -415,7 +291,7 @@ call $~lib/string/String#get:length 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 @@ -423,7 +299,7 @@ (func $std/array-access/stringArrayArrayMethodCall (param $0 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 @@ -431,14 +307,9 @@ 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 $0 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=12 - local.get $1 i32.const 0 call $~lib/array/Array<~lib/array/Array<~lib/string/String>>#__get local.set $1 @@ -463,7 +334,7 @@ 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 @@ -580,6 +451,81 @@ global.set $~lib/memory/__stack_pointer local.get $3 ) + (func $~lib/string/String#startsWith (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 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 $1 + i32.const 0 + i32.eq + if + global.get $~lib/memory/__stack_pointer + i32.const 304 + local.tee $1 + i32.store + end + local.get $0 + call $~lib/string/String#get:length + local.set $3 + local.get $2 + local.tee $4 + i32.const 0 + local.tee $5 + local.get $4 + local.get $5 + i32.gt_s + select + local.tee $5 + local.get $3 + local.tee $4 + local.get $5 + local.get $4 + i32.lt_s + select + local.set $6 + local.get $1 + call $~lib/string/String#get:length + local.set $7 + local.get $7 + local.get $6 + i32.add + local.get $3 + i32.gt_s + if + i32.const 0 + local.set $8 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $8 + return + end + local.get $0 + local.get $6 + local.get $1 + i32.const 0 + local.get $7 + call $~lib/util/string/compareImpl + i32.eqz + local.set $8 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $8 + ) (func $~lib/array/Array<~lib/array/Array<~lib/string/String>>#__get (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) diff --git a/tests/compiler/std/array.optimized.wat b/tests/compiler/std/array.optimized.wat index e11c61e8a0..3e6c8e8448 100644 --- a/tests/compiler/std/array.optimized.wat +++ b/tests/compiler/std/array.optimized.wat @@ -9,8 +9,8 @@ (type $none_=>_none (func)) (type $f32_f32_=>_i32 (func (param f32 f32) (result i32))) (type $f64_f64_=>_i32 (func (param f64 f64) (result i32))) - (type $none_=>_i32 (func (result i32))) (type $none_=>_f64 (func (result f64))) + (type $none_=>_i32 (func (result i32))) (type $i64_=>_i32 (func (param i64) (result i32))) (type $i32_i64_=>_i32 (func (param i32 i64) (result i32))) (type $i32_f64_=>_i32 (func (param i32 f64) (result i32))) @@ -2734,6 +2734,51 @@ i32.add i32.load8_u ) + (func $std/array/isArraysEqual (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + local.get $0 + i32.load offset=12 + local.tee $3 + local.get $1 + i32.load offset=12 + i32.ne + if + i32.const 0 + return + end + local.get $0 + local.get $1 + i32.eq + if + i32.const 1 + return + end + loop $for-loop|0 + local.get $2 + local.get $3 + i32.lt_s + if + local.get $0 + local.get $2 + call $~lib/array/Array#__get + local.get $1 + local.get $2 + call $~lib/array/Array#__get + i32.ne + if + i32.const 0 + return + end + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|0 + end + end + i32.const 1 + ) (func $~lib/array/Array#fill (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) (local $4 i32) (local $5 i32) @@ -2829,6 +2874,51 @@ i32.add i32.load ) + (func $std/array/isArraysEqual (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + local.get $0 + i32.load offset=12 + local.tee $3 + local.get $1 + i32.load offset=12 + i32.ne + if + i32.const 0 + return + end + local.get $0 + local.get $1 + i32.eq + if + i32.const 1 + return + end + loop $for-loop|0 + local.get $2 + local.get $3 + i32.lt_s + if + local.get $0 + local.get $2 + call $~lib/array/Array#__get + local.get $1 + local.get $2 + call $~lib/array/Array#__get + i32.ne + if + i32.const 0 + return + end + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|0 + end + end + i32.const 1 + ) (func $~lib/array/ensureSize (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) @@ -3161,6 +3251,54 @@ call $~lib/memory/memory.copy local.get $0 ) + (func $std/array/isArraysEqual (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + local.get $2 + i32.eqz + if + local.get $0 + i32.load offset=12 + local.tee $2 + local.get $1 + i32.load offset=12 + i32.ne + if + i32.const 0 + return + end + local.get $0 + local.get $1 + i32.eq + if + i32.const 1 + return + end + end + loop $for-loop|0 + local.get $2 + local.get $3 + i32.gt_s + if + local.get $0 + local.get $3 + call $~lib/array/Array#__get + local.get $1 + local.get $3 + call $~lib/array/Array#__get + i32.ne + if + i32.const 0 + return + end + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $for-loop|0 + end + end + i32.const 1 + ) (func $~lib/array/Array#unshift (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) @@ -3326,10 +3464,94 @@ local.get $2 call $~lib/array/Array#lastIndexOf ) + (func $~lib/array/Array#__set (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + 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 1344 + i32.const 1104 + i32.const 108 + 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/ensureSize + local.get $0 + local.get $3 + i32.store offset=12 + end + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 2 + i32.shl + i32.add + local.get $2 + i32.store + ) (func $start:std/array~anonymous|0 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $0 i32.eqz ) + (func $~lib/array/Array#findIndex (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + local.get $0 + i32.load offset=12 + local.set $4 + loop $for-loop|0 + local.get $2 + local.get $4 + local.get $0 + i32.load offset=12 + local.tee $3 + local.get $3 + local.get $4 + i32.gt_s + select + i32.lt_s + if + local.get $0 + i32.load offset=4 + local.get $2 + i32.const 2 + i32.shl + i32.add + i32.load + i32.const 3 + global.set $~argumentsLength + local.get $2 + local.get $0 + local.get $1 + i32.load + call_indirect (type $i32_i32_i32_=>_i32) + if + local.get $2 + return + end + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|0 + end + end + i32.const -1 + ) (func $start:std/array~anonymous|1 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $0 i32.const 1 @@ -3340,516 +3562,683 @@ i32.const 100 i32.eq ) - (func $start:std/array~anonymous|6 (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|7 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $start:std/array~anonymous|3 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + local.get $2 + i32.const 100 + call $~lib/array/Array#push + drop local.get $0 - i32.const 0 - i32.le_s + i32.const 100 + i32.eq ) - (func $start:std/array~anonymous|9 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $start:std/array~anonymous|5 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + local.get $2 + call $~lib/array/Array#pop + drop local.get $0 - i32.const 10 - i32.lt_s + i32.const 100 + i32.eq ) - (func $start:std/array~anonymous|11 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $start:std/array~anonymous|6 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $0 - i32.const 3 + i32.const 0 i32.ge_s ) - (func $start:std/array~anonymous|12 (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.get $0 - i32.const -1 - i32.le_s - ) - (func $start:std/array~anonymous|14 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + i32.load offset=12 + local.set $4 + loop $for-loop|0 + local.get $2 + local.get $4 + local.get $0 + i32.load offset=12 + local.tee $3 + local.get $3 + local.get $4 + i32.gt_s + select + i32.lt_s + if + local.get $0 + i32.load offset=4 + local.get $2 + i32.const 2 + i32.shl + i32.add + i32.load + i32.const 3 + global.set $~argumentsLength + local.get $2 + local.get $0 + local.get $1 + i32.load + call_indirect (type $i32_i32_i32_=>_i32) + i32.eqz + if + i32.const 0 + return + end + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|0 + end + end + i32.const 1 + ) + (func $start:std/array~anonymous|7 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + local.get $0 + i32.const 0 + i32.le_s + ) + (func $start:std/array~anonymous|8 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + local.get $2 + i32.const 100 + call $~lib/array/Array#push + drop local.get $0 i32.const 10 - i32.gt_s + i32.lt_s ) - (func $start:std/array~anonymous|16 (param $0 i32) (param $1 i32) (param $2 i32) + (func $start:std/array~anonymous|9 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $0 - global.get $std/array/i - i32.add - global.set $std/array/i + i32.const 10 + i32.lt_s ) - (func $start:std/array~anonymous|21 (param $0 i32) (param $1 i32) (param $2 i32) (result f32) + (func $start:std/array~anonymous|10 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + local.get $2 + call $~lib/array/Array#pop + drop local.get $0 - f32.convert_i32_s + i32.const 3 + i32.lt_s ) - (func $~lib/array/Array#__get (param $0 i32) (param $1 i32) (result f32) - local.get $1 + (func $start:std/array~anonymous|11 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + local.get $0 + i32.const 3 + i32.ge_s + ) + (func $~lib/array/Array#some (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) local.get $0 i32.load offset=12 - i32.ge_u - if - i32.const 1344 - i32.const 1104 - i32.const 92 - i32.const 42 - call $~lib/builtins/abort - unreachable + local.set $4 + loop $for-loop|0 + local.get $2 + local.get $4 + local.get $0 + i32.load offset=12 + local.tee $3 + local.get $3 + local.get $4 + i32.gt_s + select + i32.lt_s + if + local.get $0 + i32.load offset=4 + local.get $2 + i32.const 2 + i32.shl + i32.add + i32.load + i32.const 3 + global.set $~argumentsLength + local.get $2 + local.get $0 + local.get $1 + i32.load + call_indirect (type $i32_i32_i32_=>_i32) + if + i32.const 1 + return + end + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|0 + end end + i32.const 0 + ) + (func $start:std/array~anonymous|12 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $0 - i32.load offset=4 - local.get $1 - i32.const 2 - i32.shl - i32.add - f32.load + i32.const -1 + i32.le_s ) - (func $start:std/array~anonymous|23 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $start:std/array~anonymous|13 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + local.get $2 + i32.const 100 + call $~lib/array/Array#push + drop local.get $0 - global.get $std/array/i - i32.add - global.set $std/array/i + i32.const 10 + i32.gt_s + ) + (func $start:std/array~anonymous|14 (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|25 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $start:std/array~anonymous|15 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + local.get $2 + call $~lib/array/Array#pop + drop local.get $0 - i32.const 2 - i32.ge_s + i32.const 3 + i32.gt_s ) - (func $start:std/array~anonymous|27 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $start:std/array~anonymous|16 (param $0 i32) (param $1 i32) (param $2 i32) local.get $0 global.get $std/array/i i32.add global.set $std/array/i - local.get $0 - i32.const 2 - i32.ge_s - ) - (func $start:std/array~anonymous|29 (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) - local.get $0 - local.get $1 - i32.add ) - (func $start:std/array~anonymous|31 (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#forEach (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) local.get $0 - select + i32.load offset=12 + local.set $4 + loop $for-loop|0 + local.get $2 + local.get $4 + local.get $0 + i32.load offset=12 + local.tee $3 + local.get $3 + local.get $4 + i32.gt_s + select + i32.lt_s + if + local.get $0 + i32.load offset=4 + local.get $2 + i32.const 2 + i32.shl + i32.add + i32.load + i32.const 3 + global.set $~argumentsLength + local.get $2 + local.get $0 + local.get $1 + i32.load + call_indirect (type $i32_i32_i32_=>_none) + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|0 + end + end ) - (func $start:std/array~anonymous|32 (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) - i32.const 1 - local.get $1 + (func $start:std/array~anonymous|17 (param $0 i32) (param $1 i32) (param $2 i32) + local.get $2 i32.const 100 - i32.gt_s - local.get $0 - select - ) - (func $~lib/math/murmurHash3 (param $0 i64) (result i64) - local.get $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 + call $~lib/array/Array#push + drop local.get $0 - i64.const 33 - i64.shr_u - i64.xor + global.get $std/array/i + i32.add + global.set $std/array/i ) - (func $~lib/math/splitMix32 (param $0 i32) (result i32) + (func $start:std/array~anonymous|19 (param $0 i32) (param $1 i32) (param $2 i32) + local.get $2 + call $~lib/array/Array#pop + drop local.get $0 - i32.const 1831565813 + global.get $std/array/i i32.add - local.tee $0 - local.get $0 - i32.const 15 - i32.shr_u - i32.xor - local.get $0 - i32.const 1 - i32.or - i32.mul - local.tee $0 - local.get $0 - local.get $0 - i32.const 61 - i32.or - local.get $0 - local.get $0 - i32.const 7 - i32.shr_u - i32.xor - i32.mul - i32.add - i32.xor - local.tee $0 - local.get $0 - i32.const 14 - i32.shr_u - i32.xor - ) - (func $~lib/math/NativeMath.seedRandom (param $0 i64) - i32.const 1 - global.set $~lib/math/random_seeded - local.get $0 - call $~lib/math/murmurHash3 - global.set $~lib/math/random_state0_64 - global.get $~lib/math/random_state0_64 - i64.const -1 - i64.xor - call $~lib/math/murmurHash3 - global.set $~lib/math/random_state1_64 - local.get $0 - i32.wrap_i64 - call $~lib/math/splitMix32 - global.set $~lib/math/random_state0_32 - global.get $~lib/math/random_state0_32 - call $~lib/math/splitMix32 - global.set $~lib/math/random_state1_32 - global.get $~lib/math/random_state1_32 - i32.const 0 - i32.ne - i32.const 0 - global.get $~lib/math/random_state0_32 - i32.const 0 - global.get $~lib/math/random_state1_64 - i64.const 0 - i64.ne - i32.const 0 - global.get $~lib/math/random_state0_64 - i64.const 0 - i64.ne - select - select - select - i32.eqz - if - i32.const 0 - i32.const 7264 - i32.const 1399 - i32.const 5 - call $~lib/builtins/abort - unreachable - end + global.set $std/array/i ) - (func $~lib/util/sort/weakHeapSort (param $0 i32) (param $1 i32) (param $2 i32) + (func $start:std/array~anonymous|20 (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) - (local $4 i32) - (local $5 f32) - (local $6 i32) - (local $7 f32) - (local $8 i32) - local.get $1 - i32.const 31 - i32.add - i32.const 5 - i32.shr_u - i32.const 2 - i32.shl - local.tee $3 - call $~lib/rt/tlsf/__alloc - local.tee $6 - i32.const 0 - local.get $3 - call $~lib/memory/memory.fill local.get $1 - i32.const 1 - i32.sub - local.set $4 - loop $for-loop|0 - local.get $4 - i32.const 0 - i32.gt_s - if - local.get $4 - local.set $3 - loop $while-continue|1 + i32.eqz + if + loop $for-loop|0 + local.get $3 + i32.const 4 + i32.lt_s + if + local.get $2 + call $~lib/array/Array#pop + drop local.get $3 i32.const 1 - i32.and - local.get $6 + i32.add + local.set $3 + br $for-loop|0 + end + end + i32.const 0 + local.set $3 + loop $for-loop|1 + local.get $3 + i32.const 100 + i32.lt_s + if + local.get $2 local.get $3 - i32.const 6 - i32.shr_u - i32.const 2 - i32.shl + i32.const 100 i32.add - i32.load + call $~lib/array/Array#push + drop local.get $3 i32.const 1 - i32.shr_s - i32.shr_u - i32.const 1 - i32.and - i32.eq - if - local.get $3 - i32.const 1 - i32.shr_s - local.set $3 - br $while-continue|1 - end + i32.add + local.set $3 + br $for-loop|1 end - local.get $0 + end + i32.const 0 + local.set $3 + loop $for-loop|2 local.get $3 - i32.const 1 - i32.shr_s - local.tee $3 - i32.const 2 - i32.shl - i32.add - f32.load - local.set $5 - local.get $0 - local.get $4 - i32.const 2 - i32.shl - i32.add - f32.load - local.set $7 - i32.const 2 - global.set $~argumentsLength - local.get $5 - local.get $7 - local.get $2 - i32.load - call_indirect (type $f32_f32_=>_i32) - i32.const 0 + i32.const 100 i32.lt_s if - local.get $6 - local.get $4 - i32.const 5 - i32.shr_u - i32.const 2 - i32.shl - i32.add - local.tee $8 - local.get $8 - i32.load + local.get $2 + call $~lib/array/Array#pop + drop + local.get $3 i32.const 1 - local.get $4 - i32.shl - i32.xor - i32.store - local.get $0 - local.get $4 - i32.const 2 - i32.shl i32.add - local.get $5 - f32.store - local.get $0 + 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 + local.get $2 local.get $3 - i32.const 2 - i32.shl + i32.const 200 i32.add - local.get $7 - f32.store + call $~lib/array/Array#push + drop + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $for-loop|3 end - local.get $4 - i32.const 1 - i32.sub - local.set $4 - br $for-loop|0 end end local.get $1 - i32.const 1 - i32.sub - local.set $4 - loop $for-loop|2 - local.get $4 - i32.const 2 - i32.ge_s + i32.const 2 + i32.eq + if + local.get $0 + i32.const 202 + i32.ne if - local.get $0 - f32.load - local.set $5 - local.get $0 - local.get $0 - local.get $4 - i32.const 2 - i32.shl - i32.add - local.tee $1 - f32.load - f32.store - local.get $1 - local.get $5 - f32.store - i32.const 1 - local.set $1 - loop $while-continue|3 - local.get $4 - local.get $6 - local.get $1 - i32.const 5 - i32.shr_u - i32.const 2 - i32.shl - i32.add - i32.load - local.get $1 - i32.shr_u - i32.const 1 - i32.and - local.get $1 - i32.const 1 - i32.shl - i32.add - local.tee $3 - i32.gt_s - if - local.get $3 - local.set $1 - br $while-continue|3 - end - end - loop $while-continue|4 - local.get $1 - i32.const 0 - i32.gt_s - if - local.get $0 - f32.load - local.set $5 - local.get $0 - local.get $1 - i32.const 2 - i32.shl - i32.add - f32.load - local.set $7 - i32.const 2 - global.set $~argumentsLength - local.get $5 - local.get $7 - local.get $2 - i32.load - call_indirect (type $f32_f32_=>_i32) - i32.const 0 - i32.lt_s - if - local.get $6 - local.get $1 - i32.const 5 - i32.shr_u - i32.const 2 - i32.shl - i32.add - local.tee $3 - local.get $3 - i32.load - i32.const 1 - local.get $1 - i32.shl - i32.xor - i32.store - local.get $0 - local.get $1 - i32.const 2 - i32.shl - i32.add - local.get $5 - f32.store - local.get $0 - local.get $7 - f32.store - end - local.get $1 - i32.const 1 - i32.shr_s - local.set $1 - br $while-continue|4 - end - end - local.get $4 - i32.const 1 - i32.sub - local.set $4 - br $for-loop|2 + i32.const 0 + i32.const 1552 + i32.const 680 + i32.const 7 + call $~lib/builtins/abort + unreachable end end - local.get $6 - call $~lib/rt/tlsf/__free + ) + (func $start:std/array~anonymous|21 (param $0 i32) (param $1 i32) (param $2 i32) (result f32) local.get $0 - f32.load offset=4 - local.set $5 + f32.convert_i32_s + ) + (func $~lib/array/Array#__get (param $0 i32) (param $1 i32) (result f32) + local.get $1 local.get $0 + i32.load offset=12 + i32.ge_u + if + i32.const 1344 + i32.const 1104 + i32.const 92 + i32.const 42 + call $~lib/builtins/abort + unreachable + end local.get $0 + i32.load offset=4 + local.get $1 + i32.const 2 + i32.shl + i32.add f32.load - f32.store offset=4 + ) + (func $start:std/array~anonymous|22 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + local.get $2 + i32.const 100 + call $~lib/array/Array#push + drop + local.get $0 + global.get $std/array/i + i32.add + global.set $std/array/i local.get $0 - local.get $5 - f32.store ) - (func $~lib/util/sort/COMPARATOR~anonymous|0 (param $0 f32) (param $1 f32) (result i32) - (local $2 i32) - (local $3 i32) + (func $start:std/array~anonymous|23 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $0 - i32.reinterpret_f32 - local.tee $2 + global.get $std/array/i + i32.add + global.set $std/array/i + local.get $0 + ) + (func $start:std/array~anonymous|24 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $2 - i32.const 31 - i32.shr_s - i32.const 1 - i32.shr_u - i32.xor - local.tee $2 - local.get $1 - i32.reinterpret_f32 - local.tee $3 - local.get $3 - i32.const 31 - i32.shr_s - i32.const 1 - i32.shr_u - i32.xor - local.tee $3 - i32.gt_s + call $~lib/array/Array#pop + drop + local.get $0 + global.get $std/array/i + i32.add + global.set $std/array/i + local.get $0 + ) + (func $start:std/array~anonymous|25 (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|26 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $2 - local.get $3 - i32.lt_s - i32.sub + i32.const 100 + call $~lib/array/Array#push + drop + local.get $0 + global.get $std/array/i + i32.add + global.set $std/array/i + local.get $0 + i32.const 2 + i32.ge_s ) - (func $~lib/util/sort/weakHeapSort (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 f64) - (local $6 i32) - (local $7 f64) - (local $8 i32) - local.get $1 - i32.const 31 + (func $start:std/array~anonymous|27 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + local.get $0 + global.get $std/array/i i32.add - i32.const 5 - i32.shr_u + global.set $std/array/i + local.get $0 i32.const 2 - i32.shl - local.tee $3 - call $~lib/rt/tlsf/__alloc - local.tee $6 - i32.const 0 - local.get $3 - call $~lib/memory/memory.fill + i32.ge_s + ) + (func $start:std/array~anonymous|28 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + local.get $2 + call $~lib/array/Array#pop + drop + local.get $0 + global.get $std/array/i + i32.add + global.set $std/array/i + local.get $0 + i32.const 2 + i32.ge_s + ) + (func $start:std/array~anonymous|29 (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + local.get $0 local.get $1 - i32.const 1 - i32.sub - local.set $4 + i32.add + ) + (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) + local.get $0 + i32.load offset=12 + local.set $5 loop $for-loop|0 + local.get $3 + local.get $5 + local.get $0 + i32.load offset=12 + local.tee $4 local.get $4 - i32.const 0 + local.get $5 i32.gt_s - if + select + i32.lt_s + if + local.get $0 + i32.load offset=4 + local.get $3 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $4 + i32.const 4 + global.set $~argumentsLength + local.get $2 + local.get $4 + local.get $3 + local.get $0 + local.get $1 + i32.load + call_indirect (type $i32_i32_i32_i32_=>_i32) + local.set $2 + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $for-loop|0 + end + end + local.get $2 + ) + (func $start:std/array~anonymous|31 (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|32 (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|33 (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + local.get $3 + i32.const 1 + call $~lib/array/Array#push + drop + local.get $0 + local.get $1 + i32.add + ) + (func $start:std/array~anonymous|35 (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + local.get $3 + call $~lib/array/Array#pop + drop + 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) + 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 + local.get $0 + i32.load offset=4 + local.get $3 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $4 + i32.const 4 + global.set $~argumentsLength + local.get $2 + local.get $4 + local.get $3 + local.get $0 + local.get $1 + i32.load + call_indirect (type $i32_i32_i32_i32_=>_i32) + local.set $2 + local.get $3 + i32.const 1 + i32.sub + local.set $3 + br $for-loop|0 + end + end + local.get $2 + ) + (func $~lib/math/murmurHash3 (param $0 i64) (result i64) + local.get $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 + ) + (func $~lib/math/splitMix32 (param $0 i32) (result i32) + local.get $0 + i32.const 1831565813 + i32.add + local.tee $0 + local.get $0 + i32.const 15 + i32.shr_u + i32.xor + local.get $0 + i32.const 1 + i32.or + i32.mul + local.tee $0 + local.get $0 + local.get $0 + i32.const 61 + i32.or + local.get $0 + local.get $0 + i32.const 7 + i32.shr_u + i32.xor + i32.mul + i32.add + i32.xor + local.tee $0 + local.get $0 + i32.const 14 + i32.shr_u + i32.xor + ) + (func $~lib/math/NativeMath.seedRandom (param $0 i64) + i32.const 1 + global.set $~lib/math/random_seeded + local.get $0 + call $~lib/math/murmurHash3 + global.set $~lib/math/random_state0_64 + global.get $~lib/math/random_state0_64 + i64.const -1 + i64.xor + call $~lib/math/murmurHash3 + global.set $~lib/math/random_state1_64 + local.get $0 + i32.wrap_i64 + call $~lib/math/splitMix32 + global.set $~lib/math/random_state0_32 + global.get $~lib/math/random_state0_32 + call $~lib/math/splitMix32 + global.set $~lib/math/random_state1_32 + global.get $~lib/math/random_state1_32 + i32.const 0 + i32.ne + i32.const 0 + global.get $~lib/math/random_state0_32 + i32.const 0 + global.get $~lib/math/random_state1_64 + i64.const 0 + i64.ne + i32.const 0 + global.get $~lib/math/random_state0_64 + i64.const 0 + i64.ne + select + select + select + i32.eqz + if + i32.const 0 + i32.const 7264 + i32.const 1399 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + ) + (func $~lib/util/sort/weakHeapSort (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 f32) + (local $6 i32) + (local $7 f32) + (local $8 i32) + local.get $1 + i32.const 31 + i32.add + i32.const 5 + i32.shr_u + i32.const 2 + i32.shl + local.tee $3 + call $~lib/rt/tlsf/__alloc + local.tee $6 + i32.const 0 + local.get $3 + call $~lib/memory/memory.fill + local.get $1 + i32.const 1 + i32.sub + local.set $4 + loop $for-loop|0 + local.get $4 + i32.const 0 + i32.gt_s + if local.get $4 local.set $3 loop $while-continue|1 @@ -3884,17 +4273,17 @@ i32.const 1 i32.shr_s local.tee $3 - i32.const 3 + i32.const 2 i32.shl i32.add - f64.load + f32.load local.set $5 local.get $0 local.get $4 - i32.const 3 + i32.const 2 i32.shl i32.add - f64.load + f32.load local.set $7 i32.const 2 global.set $~argumentsLength @@ -3902,7 +4291,7 @@ local.get $7 local.get $2 i32.load - call_indirect (type $f64_f64_=>_i32) + call_indirect (type $f32_f32_=>_i32) i32.const 0 i32.lt_s if @@ -3923,18 +4312,18 @@ i32.store local.get $0 local.get $4 - i32.const 3 + i32.const 2 i32.shl i32.add local.get $5 - f64.store + f32.store local.get $0 local.get $3 - i32.const 3 + i32.const 2 i32.shl i32.add local.get $7 - f64.store + f32.store end local.get $4 i32.const 1 @@ -3953,20 +4342,20 @@ i32.ge_s if local.get $0 - f64.load + f32.load local.set $5 local.get $0 local.get $0 local.get $4 - i32.const 3 + i32.const 2 i32.shl i32.add local.tee $1 - f64.load - f64.store + f32.load + f32.store local.get $1 local.get $5 - f64.store + f32.store i32.const 1 local.set $1 loop $while-continue|3 @@ -4001,14 +4390,14 @@ i32.gt_s if local.get $0 - f64.load + f32.load local.set $5 local.get $0 local.get $1 - i32.const 3 + i32.const 2 i32.shl i32.add - f64.load + f32.load local.set $7 i32.const 2 global.set $~argumentsLength @@ -4016,7 +4405,7 @@ local.get $7 local.get $2 i32.load - call_indirect (type $f64_f64_=>_i32) + call_indirect (type $f32_f32_=>_i32) i32.const 0 i32.lt_s if @@ -4037,14 +4426,14 @@ i32.store local.get $0 local.get $1 - i32.const 3 + i32.const 2 i32.shl i32.add local.get $5 - f64.store + f32.store local.get $0 local.get $7 - f64.store + f32.store end local.get $1 i32.const 1 @@ -4063,72 +4452,184 @@ local.get $6 call $~lib/rt/tlsf/__free local.get $0 - f64.load offset=8 + f32.load offset=4 local.set $5 local.get $0 local.get $0 - f64.load - f64.store offset=8 + f32.load + f32.store offset=4 local.get $0 local.get $5 - f64.store + f32.store ) - (func $~lib/util/sort/COMPARATOR~anonymous|0 (param $0 f64) (param $1 f64) (result i32) - (local $2 i64) - (local $3 i64) + (func $~lib/array/Array#sort (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 f32) + (local $5 f32) + (local $6 i32) + (local $7 i32) local.get $0 - i64.reinterpret_f64 + i32.load offset=12 + local.tee $7 + i32.const 1 + i32.le_s + if + return + end + local.get $0 + i32.load offset=4 + local.set $3 + local.get $7 + i32.const 2 + i32.eq + if + local.get $3 + f32.load offset=4 + local.set $4 + local.get $3 + f32.load + local.set $5 + i32.const 2 + global.set $~argumentsLength + local.get $4 + local.get $5 + local.get $1 + i32.load + call_indirect (type $f32_f32_=>_i32) + i32.const 0 + i32.lt_s + if + local.get $3 + local.get $5 + f32.store offset=4 + local.get $3 + local.get $4 + f32.store + end + return + end + local.get $7 + i32.const 256 + i32.lt_s + if + local.get $1 + local.set $2 + loop $for-loop|0 + local.get $6 + local.get $7 + i32.lt_s + if + local.get $3 + local.get $6 + i32.const 2 + i32.shl + i32.add + f32.load + local.set $4 + local.get $6 + i32.const 1 + i32.sub + local.set $1 + loop $while-continue|1 + local.get $1 + i32.const 0 + i32.ge_s + if + block $while-break|1 + local.get $3 + local.get $1 + i32.const 2 + i32.shl + i32.add + f32.load + local.set $5 + i32.const 2 + global.set $~argumentsLength + local.get $4 + local.get $5 + local.get $2 + i32.load + call_indirect (type $f32_f32_=>_i32) + i32.const 0 + i32.ge_s + br_if $while-break|1 + local.get $1 + local.tee $0 + i32.const 1 + i32.sub + local.set $1 + local.get $3 + local.get $0 + i32.const 1 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $5 + f32.store + br $while-continue|1 + end + end + end + local.get $3 + local.get $1 + i32.const 1 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $4 + f32.store + local.get $6 + i32.const 1 + i32.add + local.set $6 + br $for-loop|0 + end + end + else + local.get $3 + local.get $7 + local.get $1 + call $~lib/util/sort/weakHeapSort + 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 local.get $2 - i64.const 63 - i64.shr_s - i64.const 1 - i64.shr_u - i64.xor + i32.const 31 + i32.shr_s + i32.const 1 + i32.shr_u + i32.xor local.tee $2 local.get $1 - i64.reinterpret_f64 + i32.reinterpret_f32 local.tee $3 local.get $3 - i64.const 63 - i64.shr_s - i64.const 1 - i64.shr_u - i64.xor + i32.const 31 + i32.shr_s + i32.const 1 + i32.shr_u + i32.xor local.tee $3 - i64.gt_s + i32.gt_s local.get $2 local.get $3 - i64.lt_s + i32.lt_s i32.sub ) - (func $~lib/array/Array#__get (param $0 i32) (param $1 i32) (result f64) - local.get $1 - local.get $0 - i32.load offset=12 - i32.ge_u - if - i32.const 1344 - i32.const 1104 - i32.const 92 - i32.const 42 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load offset=4 - local.get $1 - i32.const 3 - i32.shl - i32.add - f64.load - ) - (func $~lib/util/sort/weakHeapSort (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/util/sort/weakHeapSort (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) - (local $5 i32) + (local $5 f64) (local $6 i32) - (local $7 i32) + (local $7 f64) (local $8 i32) local.get $1 i32.const 31 @@ -4139,7 +4640,7 @@ i32.shl local.tee $3 call $~lib/rt/tlsf/__alloc - local.tee $5 + local.tee $6 i32.const 0 local.get $3 call $~lib/memory/memory.fill @@ -4158,7 +4659,7 @@ local.get $3 i32.const 1 i32.and - local.get $5 + local.get $6 local.get $3 i32.const 6 i32.shr_u @@ -4185,30 +4686,30 @@ local.get $3 i32.const 1 i32.shr_s - local.tee $7 - i32.const 2 + local.tee $3 + i32.const 3 i32.shl i32.add - i32.load - local.set $3 + f64.load + local.set $5 local.get $0 local.get $4 - i32.const 2 + i32.const 3 i32.shl i32.add - i32.load - local.set $6 + f64.load + local.set $7 i32.const 2 global.set $~argumentsLength - local.get $3 - local.get $6 + local.get $5 + local.get $7 local.get $2 i32.load - call_indirect (type $i32_i32_=>_i32) + call_indirect (type $f64_f64_=>_i32) i32.const 0 i32.lt_s if - local.get $5 + local.get $6 local.get $4 i32.const 5 i32.shr_u @@ -4225,18 +4726,18 @@ i32.store local.get $0 local.get $4 - i32.const 2 + i32.const 3 i32.shl i32.add - local.get $3 - i32.store + local.get $5 + f64.store local.get $0 - local.get $7 - i32.const 2 + local.get $3 + i32.const 3 i32.shl i32.add - local.get $6 - i32.store + local.get $7 + f64.store end local.get $4 i32.const 1 @@ -4255,25 +4756,25 @@ i32.ge_s if local.get $0 - i32.load - local.set $1 + f64.load + local.set $5 local.get $0 local.get $0 local.get $4 - i32.const 2 + i32.const 3 i32.shl i32.add - local.tee $3 - i32.load - i32.store - local.get $3 + local.tee $1 + f64.load + f64.store local.get $1 - i32.store + local.get $5 + f64.store i32.const 1 local.set $1 loop $while-continue|3 local.get $4 - local.get $5 + local.get $6 local.get $1 i32.const 5 i32.shr_u @@ -4303,34 +4804,34 @@ i32.gt_s if local.get $0 - i32.load - local.set $3 + f64.load + local.set $5 local.get $0 local.get $1 - i32.const 2 + i32.const 3 i32.shl i32.add - i32.load - local.set $6 + f64.load + local.set $7 i32.const 2 global.set $~argumentsLength - local.get $3 - local.get $6 + local.get $5 + local.get $7 local.get $2 i32.load - call_indirect (type $i32_i32_=>_i32) + call_indirect (type $f64_f64_=>_i32) i32.const 0 i32.lt_s if - local.get $5 + local.get $6 local.get $1 i32.const 5 i32.shr_u i32.const 2 i32.shl i32.add - local.tee $7 - local.get $7 + local.tee $3 + local.get $3 i32.load i32.const 1 local.get $1 @@ -4339,14 +4840,14 @@ i32.store local.get $0 local.get $1 - i32.const 2 + i32.const 3 i32.shl i32.add - local.get $3 - i32.store + local.get $5 + f64.store local.get $0 - local.get $6 - i32.store + local.get $7 + f64.store end local.get $1 i32.const 1 @@ -4362,25 +4863,203 @@ br $for-loop|2 end end - local.get $5 + local.get $6 call $~lib/rt/tlsf/__free local.get $0 - i32.load offset=4 - local.set $1 + f64.load offset=8 + local.set $5 local.get $0 local.get $0 - i32.load - i32.store offset=4 + f64.load + f64.store offset=8 local.get $0 - local.get $1 - i32.store + local.get $5 + f64.store ) - (func $~lib/util/sort/COMPARATOR~anonymous|0 (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#sort (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 f64) + (local $5 f64) + (local $6 i32) + (local $7 i32) + local.get $0 + i32.load offset=12 + local.tee $7 + i32.const 1 + i32.le_s + if + return + end + local.get $0 + i32.load offset=4 + local.set $3 + local.get $7 + i32.const 2 + i32.eq + if + local.get $3 + f64.load offset=8 + local.set $4 + local.get $3 + f64.load + local.set $5 + i32.const 2 + global.set $~argumentsLength + local.get $4 + local.get $5 + local.get $1 + i32.load + call_indirect (type $f64_f64_=>_i32) + i32.const 0 + i32.lt_s + if + local.get $3 + local.get $5 + f64.store offset=8 + local.get $3 + local.get $4 + f64.store + end + return + end + local.get $7 + i32.const 256 + i32.lt_s + if + local.get $1 + local.set $2 + loop $for-loop|0 + local.get $6 + local.get $7 + i32.lt_s + if + local.get $3 + local.get $6 + i32.const 3 + i32.shl + i32.add + f64.load + local.set $4 + local.get $6 + i32.const 1 + i32.sub + local.set $1 + loop $while-continue|1 + local.get $1 + i32.const 0 + i32.ge_s + if + block $while-break|1 + local.get $3 + local.get $1 + i32.const 3 + i32.shl + i32.add + f64.load + local.set $5 + i32.const 2 + global.set $~argumentsLength + local.get $4 + local.get $5 + local.get $2 + i32.load + call_indirect (type $f64_f64_=>_i32) + i32.const 0 + i32.ge_s + br_if $while-break|1 + local.get $1 + local.tee $0 + i32.const 1 + i32.sub + local.set $1 + local.get $3 + local.get $0 + i32.const 1 + i32.add + i32.const 3 + i32.shl + i32.add + local.get $5 + f64.store + br $while-continue|1 + end + end + end + local.get $3 + local.get $1 + i32.const 1 + i32.add + i32.const 3 + i32.shl + i32.add + local.get $4 + f64.store + local.get $6 + i32.const 1 + i32.add + local.set $6 + br $for-loop|0 + end + end + else + local.get $3 + local.get $7 + local.get $1 + call $~lib/util/sort/weakHeapSort + 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 + local.get $2 + i64.const 63 + i64.shr_s + i64.const 1 + i64.shr_u + i64.xor + local.tee $2 local.get $1 + i64.reinterpret_f64 + local.tee $3 + local.get $3 + i64.const 63 + i64.shr_s + i64.const 1 + i64.shr_u + i64.xor + local.tee $3 + i64.gt_s + local.get $2 + local.get $3 + i64.lt_s i32.sub ) - (func $~lib/util/sort/weakHeapSort (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/array/Array#__get (param $0 i32) (param $1 i32) (result f64) + local.get $1 + local.get $0 + i32.load offset=12 + i32.ge_u + if + i32.const 1344 + i32.const 1104 + i32.const 92 + i32.const 42 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 3 + i32.shl + i32.add + f64.load + ) + (func $~lib/util/sort/weakHeapSort (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -4632,1389 +5311,1097 @@ local.get $1 i32.store ) - (func $~lib/util/sort/COMPARATOR~anonymous|0 (param $0 i32) (param $1 i32) (result i32) - local.get $0 - local.get $1 - i32.gt_u + (func $~lib/array/Array#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) local.get $0 - local.get $1 - i32.lt_u - i32.sub - ) - (func $~lib/math/NativeMath.random (result f64) - (local $0 i64) - (local $1 i64) - global.get $~lib/math/random_seeded - i32.eqz + i32.load offset=12 + local.tee $2 + i32.const 1 + i32.le_s if - call $~lib/builtins/seed - i64.reinterpret_f64 - call $~lib/math/NativeMath.seedRandom + local.get $0 + return end - global.get $~lib/math/random_state0_64 - local.set $0 - global.get $~lib/math/random_state1_64 - local.tee $1 - global.set $~lib/math/random_state0_64 - local.get $1 local.get $0 - local.get $0 - i64.const 23 - i64.shl - i64.xor - local.tee $0 - local.get $0 - i64.const 17 - i64.shr_u - i64.xor - i64.xor - local.get $1 - i64.const 26 - i64.shr_u - i64.xor - global.set $~lib/math/random_state1_64 - local.get $1 - i64.const 12 - i64.shr_u - i64.const 4607182418800017408 - i64.or - f64.reinterpret_i64 - f64.const 1 - f64.sub - ) - (func $start:std/array~anonymous|44 (param $0 i32) (param $1 i32) (result i32) - local.get $1 - local.get $0 - i32.sub - ) - (func $start:std/array~anonymous|48 (param $0 i32) (param $1 i32) (result i32) - local.get $0 - i32.load - local.get $1 - i32.load - i32.sub - ) - (func $~lib/util/string/compareImpl (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (local $3 i32) - (local $4 i32) - local.get $0 - i32.const 7 - i32.and - local.get $1 - i32.const 7 - i32.and - i32.or - i32.eqz - i32.const 0 + i32.load offset=4 + local.set $5 local.get $2 - i32.const 4 - i32.ge_u - select + i32.const 2 + i32.eq if - loop $do-continue|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-continue|0 - end - end - end - loop $while-continue|1 - local.get $2 - local.tee $3 - i32.const 1 - i32.sub + local.get $5 + i32.load offset=4 local.set $2 + local.get $5 + i32.load + local.set $3 + i32.const 2 + global.set $~argumentsLength + local.get $2 local.get $3 + local.get $1 + i32.load + call_indirect (type $i32_i32_=>_i32) + i32.const 0 + i32.lt_s if - local.get $0 - i32.load16_u - local.tee $3 - local.get $1 - i32.load16_u - local.tee $4 - i32.ne - if - local.get $3 - local.get $4 - i32.sub - return - 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 + local.get $5 + local.get $3 + i32.store offset=4 + local.get $5 + local.get $2 + i32.store end - end - i32.const 0 - ) - (func $~lib/util/number/decimalCount32 (param $0 i32) (result i32) - local.get $0 - i32.const 10 - i32.ge_u - i32.const 1 - i32.add - 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 - local.get $0 - i32.const 100 - i32.lt_u - select - local.get $0 - i32.const 1000000 - i32.ge_u - i32.const 6 - i32.add - 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 - local.get $0 - i32.const 10000000 - i32.lt_u - select - local.get $0 - i32.const 100000 - i32.lt_u - select - ) - (func $~lib/util/number/utoa_dec_simple (param $0 i32) (param $1 i32) (param $2 i32) - loop $do-continue|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 - i32.const 10 - i32.rem_u - i32.const 48 - i32.add - i32.store16 - local.get $1 - i32.const 10 - i32.div_u - local.tee $1 - br_if $do-continue|0 + return end - ) - (func $~lib/util/number/itoa_buffered (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - local.get $1 - i32.const 0 + local.get $2 + i32.const 256 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 - local.get $1 - i32.const 10 - i32.lt_u if - local.get $0 local.get $2 - i32.const 1 - i32.shl - i32.add + local.set $3 local.get $1 - i32.const 48 - i32.or - i32.store16 + local.set $4 + loop $for-loop|0 + local.get $3 + local.get $6 + i32.gt_s + if + local.get $5 + local.get $6 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $7 + local.get $6 + i32.const 1 + i32.sub + local.set $1 + loop $while-continue|1 + local.get $1 + i32.const 0 + i32.ge_s + if + block $while-break|1 + local.get $5 + local.get $1 + 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 $4 + i32.load + call_indirect (type $i32_i32_=>_i32) + i32.const 0 + i32.ge_s + br_if $while-break|1 + local.get $1 + local.tee $2 + i32.const 1 + i32.sub + local.set $1 + local.get $5 + local.get $2 + i32.const 1 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $8 + i32.store + br $while-continue|1 + end + end + end + local.get $5 + local.get $1 + i32.const 1 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $7 + i32.store + local.get $6 + i32.const 1 + i32.add + local.set $6 + br $for-loop|0 + end + end + else + local.get $5 local.get $2 - i32.const 1 - i32.add - return + local.get $1 + call $~lib/util/sort/weakHeapSort end local.get $0 + ) + (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/weakHeapSort (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.get $1 - call $~lib/util/number/decimalCount32 - local.get $2 + i32.const 31 i32.add - local.tee $0 - call $~lib/util/number/utoa_dec_simple - 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 48 - i32.or - i32.store16 - i32.const 1 - return - end - local.get $0 - local.get $1 - local.get $1 - call $~lib/util/number/decimalCount32 - local.tee $0 - call $~lib/util/number/utoa_dec_simple - local.get $0 - ) - (func $~lib/util/number/genDigits (param $0 i32) (param $1 i64) (param $2 i32) (param $3 i64) (param $4 i32) (param $5 i64) (param $6 i32) (result i32) - (local $7 i64) - (local $8 i64) - (local $9 i32) - (local $10 i64) - (local $11 i32) - (local $12 i64) - (local $13 i64) + i32.const 5 + i32.shr_u + i32.const 2 + i32.shl + local.tee $3 + call $~lib/rt/tlsf/__alloc + local.tee $5 + i32.const 0 local.get $3 + call $~lib/memory/memory.fill local.get $1 - i64.sub - local.set $8 - local.get $3 - i64.const 1 - i32.const 0 - local.get $4 + i32.const 1 i32.sub - local.tee $11 - i64.extend_i32_s - i64.shl - local.tee $10 - i64.const 1 - i64.sub - local.tee $12 - i64.and - local.set $7 - local.get $3 - local.get $11 - i64.extend_i32_s - i64.shr_u - i32.wrap_i64 - local.tee $2 - call $~lib/util/number/decimalCount32 - local.set $9 - loop $while-continue|0 - local.get $9 + local.set $4 + loop $for-loop|0 + local.get $4 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 $9 - 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 $4 - 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 $4 - 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 $4 - 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 $4 - 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 $4 - 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 $4 - 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 $4 - 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 $4 - 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 $4 - local.get $2 - i32.const 10 - i32.rem_u - local.set $2 - br $break|1 - end - local.get $2 - local.set $4 - i32.const 0 - local.set $2 - br $break|1 - end - i32.const 0 - local.set $4 - end local.get $4 - local.get $6 - i32.or - if - local.get $0 - local.get $6 + local.set $3 + loop $while-continue|1 + local.get $3 i32.const 1 - i32.shl - i32.add - local.get $4 - i32.const 65535 i32.and - i32.const 48 - i32.add - i32.store16 - local.get $6 - i32.const 1 - i32.add - local.set $6 - end - local.get $9 - i32.const 1 - i32.sub - local.set $9 - local.get $5 - local.get $7 - local.get $2 - i64.extend_i32_u - local.get $11 - i64.extend_i32_s - i64.shl - i64.add - local.tee $1 - i64.ge_u - if - local.get $9 - global.get $~lib/util/number/_K - i32.add - global.set $~lib/util/number/_K - local.get $9 + local.get $5 + local.get $3 + i32.const 6 + i32.shr_u i32.const 2 i32.shl - i32.const 10928 i32.add - i64.load32_u - local.get $11 - i64.extend_i32_s - i64.shl - local.set $10 - local.get $0 - local.get $6 + i32.load + local.get $3 i32.const 1 - i32.sub + i32.shr_s + i32.shr_u i32.const 1 - i32.shl - i32.add - local.tee $0 - i32.load16_u - local.set $2 - loop $while-continue|3 + i32.and + i32.eq + if + local.get $3 i32.const 1 - local.get $8 - local.get $1 - i64.sub - local.get $1 - local.get $10 - i64.add - local.tee $3 - local.get $8 - i64.sub - i64.gt_u - local.get $3 - local.get $8 - i64.lt_u - select - i32.const 0 - local.get $10 - local.get $5 - local.get $1 - i64.sub - i64.le_u - i32.const 0 - local.get $1 - local.get $8 - i64.lt_u - select - select - if - local.get $2 - i32.const 1 - i32.sub - local.set $2 - local.get $1 - local.get $10 - i64.add - local.set $1 - br $while-continue|3 - end + i32.shr_s + local.set $3 + br $while-continue|1 end - local.get $0 - local.get $2 - i32.store16 - local.get $6 - return end - br $while-continue|0 - end - end - local.get $11 - i64.extend_i32_s - local.set $13 - loop $while-continue|4 (result i32) - local.get $5 - i64.const 10 - i64.mul - local.set $5 - local.get $7 - i64.const 10 - i64.mul - local.tee $3 - local.get $13 - i64.shr_u - local.tee $1 - local.get $6 - i64.extend_i32_s - i64.or - i64.const 0 - i64.ne - if local.get $0 - local.get $6 + local.get $3 i32.const 1 + i32.shr_s + local.tee $7 + i32.const 2 i32.shl i32.add - local.get $1 - i32.wrap_i64 - i32.const 65535 - i32.and - i32.const 48 - i32.add - i32.store16 - local.get $6 - i32.const 1 + i32.load + local.set $3 + local.get $0 + local.get $4 + i32.const 2 + i32.shl i32.add + i32.load local.set $6 - end - local.get $9 - i32.const 1 - i32.sub - local.set $9 - local.get $3 - local.get $12 - i64.and - local.tee $7 - local.get $5 - i64.ge_u - br_if $while-continue|4 - local.get $9 - global.get $~lib/util/number/_K - i32.add - global.set $~lib/util/number/_K - local.get $7 - local.set $1 - local.get $8 - i32.const 0 - local.get $9 - i32.sub - i32.const 2 - i32.shl - i32.const 10928 - i32.add - i64.load32_u - i64.mul - local.set $8 - local.get $0 - local.get $6 - i32.const 1 - i32.sub - i32.const 1 - i32.shl - i32.add - local.tee $0 - i32.load16_u - local.set $2 - loop $while-continue|6 - i32.const 1 - local.get $8 - local.get $1 - i64.sub - local.get $1 - local.get $10 - i64.add - local.tee $3 - local.get $8 - i64.sub - i64.gt_u + i32.const 2 + global.set $~argumentsLength local.get $3 - local.get $8 - i64.lt_u - select - i32.const 0 - local.get $10 - local.get $5 - local.get $1 - i64.sub - i64.le_u + local.get $6 + local.get $2 + i32.load + call_indirect (type $i32_i32_=>_i32) i32.const 0 - local.get $1 - local.get $8 - i64.lt_u - select - select - if - local.get $2 - i32.const 1 - i32.sub - local.set $2 - local.get $1 - local.get $10 - i64.add - local.set $1 - br $while-continue|6 - end - end - local.get $0 - local.get $2 - i32.store16 - local.get $6 - end - ) - (func $~lib/util/number/prettify (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (local $3 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 - i32.const 0 - local.get $1 - local.get $3 - i32.le_s - select - 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 + local.get $5 + local.get $4 + i32.const 5 + i32.shr_u + i32.const 2 i32.shl i32.add - i32.const 48 - i32.store16 - local.get $1 + local.tee $8 + local.get $8 + i32.load i32.const 1 + local.get $4 + i32.shl + i32.xor + i32.store + local.get $0 + local.get $4 + i32.const 2 + i32.shl i32.add - local.set $1 - br $for-loop|0 + local.get $3 + i32.store + local.get $0 + local.get $7 + i32.const 2 + i32.shl + i32.add + local.get $6 + i32.store end + local.get $4 + i32.const 1 + i32.sub + local.set $4 + 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 - i32.const 0 - local.get $3 - i32.const 0 - i32.gt_s - select - if (result i32) + end + local.get $1 + i32.const 1 + i32.sub + local.set $4 + loop $for-loop|2 + local.get $4 + i32.const 2 + i32.ge_s + if local.get $0 - local.get $3 - i32.const 1 - i32.shl - i32.add - local.tee $0 - i32.const 2 - i32.add + i32.load + local.set $1 local.get $0 - i32.const 0 - local.get $2 - i32.sub - i32.const 1 - i32.shl - call $~lib/memory/memory.copy local.get $0 - i32.const 46 - i32.store16 - local.get $1 - i32.const 1 + local.get $4 + i32.const 2 + i32.shl i32.add - else - local.get $3 - i32.const 0 - i32.le_s - i32.const 0 + local.tee $3 + i32.load + i32.store local.get $3 - i32.const -6 - i32.gt_s - select - if (result i32) - local.get $0 + local.get $1 + i32.store + i32.const 1 + local.set $1 + loop $while-continue|3 + local.get $4 + local.get $5 + local.get $1 + i32.const 5 + i32.shr_u i32.const 2 - local.get $3 - i32.sub - local.tee $3 - i32.const 1 i32.shl i32.add - local.get $0 + i32.load + local.get $1 + i32.shr_u + i32.const 1 + i32.and local.get $1 i32.const 1 i32.shl - call $~lib/memory/memory.copy - local.get $0 - i32.const 3014704 - i32.store - i32.const 2 - local.set $2 - loop $for-loop|1 - local.get $2 + i32.add + local.tee $3 + i32.gt_s + if 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 + local.set $1 + br $while-continue|3 end + end + loop $while-continue|4 local.get $1 - local.get $3 - i32.add - else - local.get $1 - i32.const 1 - i32.eq - if (result i32) - local.get $0 - i32.const 101 - i32.store16 offset=2 - local.get $0 - local.tee $1 - i32.const 4 - i32.add - 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 + i32.const 0 + i32.gt_s + if local.get $0 + i32.load + local.set $3 local.get $0 - call $~lib/util/number/decimalCount32 - i32.const 1 - i32.add - local.tee $0 - call $~lib/util/number/utoa_dec_simple local.get $1 - i32.const 45 - i32.const 43 - local.get $2 - select - i32.store16 offset=4 - local.get $0 - i32.const 2 - i32.add - 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 - call $~lib/memory/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 - local.tee $2 - i32.const 4 i32.add + i32.load + local.set $6 + i32.const 2 + global.set $~argumentsLength local.get $3 - i32.const 1 - i32.sub - local.tee $0 + local.get $6 + local.get $2 + i32.load + call_indirect (type $i32_i32_=>_i32) i32.const 0 i32.lt_s - local.tee $3 if - i32.const 0 + local.get $5 + local.get $1 + i32.const 5 + i32.shr_u + i32.const 2 + i32.shl + i32.add + local.tee $7 + local.get $7 + i32.load + i32.const 1 + local.get $1 + i32.shl + i32.xor + i32.store local.get $0 - i32.sub - local.set $0 + local.get $1 + i32.const 2 + i32.shl + i32.add + local.get $3 + i32.store + local.get $0 + local.get $6 + i32.store end - local.get $0 - local.get $0 - call $~lib/util/number/decimalCount32 - i32.const 1 - i32.add - local.tee $0 - call $~lib/util/number/utoa_dec_simple - local.get $2 - i32.const 45 - i32.const 43 - local.get $3 - select - i32.store16 offset=4 - local.get $0 local.get $1 - i32.add - i32.const 2 - i32.add + i32.const 1 + i32.shr_s + local.set $1 + br $while-continue|4 end end + local.get $4 + i32.const 1 + i32.sub + local.set $4 + br $for-loop|2 end end + local.get $5 + call $~lib/rt/tlsf/__free + local.get $0 + i32.load offset=4 + local.set $1 + local.get $0 + local.get $0 + i32.load + i32.store offset=4 + local.get $0 + local.get $1 + i32.store ) - (func $~lib/util/number/dtoa_core (param $0 i32) (param $1 f64) (result i32) - (local $2 i64) - (local $3 i64) - (local $4 i32) - (local $5 i64) - (local $6 i64) - (local $7 i64) + (func $~lib/array/Array#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) - (local $9 i32) - (local $10 i32) - local.get $1 - f64.const 0 - f64.lt - local.tee $9 - if (result f64) + local.get $0 + i32.load offset=12 + local.tee $2 + i32.const 1 + i32.le_s + if local.get $0 - i32.const 45 - i32.store16 + return + end + local.get $0 + i32.load offset=4 + local.set $5 + local.get $2 + i32.const 2 + i32.eq + if + local.get $5 + i32.load offset=4 + local.set $2 + local.get $5 + i32.load + local.set $3 + i32.const 2 + global.set $~argumentsLength + local.get $2 + local.get $3 local.get $1 - f64.neg + i32.load + call_indirect (type $i32_i32_=>_i32) + i32.const 0 + i32.lt_s + if + local.get $5 + local.get $3 + i32.store offset=4 + local.get $5 + local.get $2 + i32.store + end + local.get $0 + return + end + local.get $2 + i32.const 256 + i32.lt_s + if + local.get $2 + local.set $3 + local.get $1 + local.set $4 + loop $for-loop|0 + local.get $3 + local.get $6 + i32.gt_s + if + local.get $5 + local.get $6 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $7 + local.get $6 + i32.const 1 + i32.sub + local.set $1 + loop $while-continue|1 + local.get $1 + i32.const 0 + i32.ge_s + if + block $while-break|1 + local.get $5 + local.get $1 + 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 $4 + i32.load + call_indirect (type $i32_i32_=>_i32) + i32.const 0 + i32.ge_s + br_if $while-break|1 + local.get $1 + local.tee $2 + i32.const 1 + i32.sub + local.set $1 + local.get $5 + local.get $2 + i32.const 1 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $8 + i32.store + br $while-continue|1 + end + end + end + local.get $5 + local.get $1 + i32.const 1 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $7 + i32.store + local.get $6 + i32.const 1 + i32.add + local.set $6 + br $for-loop|0 + end + end else + local.get $5 + local.get $2 local.get $1 + call $~lib/util/sort/weakHeapSort end - i64.reinterpret_f64 - local.tee $2 - i64.const 9218868437227405312 - i64.and - i64.const 52 - i64.shr_u - i32.wrap_i64 - local.tee $8 - i32.const 0 - i32.ne - i64.extend_i32_u - i64.const 52 - i64.shl - local.get $2 - i64.const 4503599627370495 - i64.and - i64.add - local.tee $3 - i64.const 1 - i64.shl - i64.const 1 - i64.add - local.tee $2 - local.get $2 - i64.clz - i32.wrap_i64 - local.tee $4 - i64.extend_i32_s - i64.shl - global.set $~lib/util/number/_frc_plus - local.get $8 - i32.const 1 - local.get $8 - select - i32.const 1075 - i32.sub - local.tee $8 - i32.const 1 - i32.sub - local.get $4 - i32.sub - local.set $4 - local.get $3 - local.get $3 - 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 $8 - local.get $10 - 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 + local.get $0 + ) + (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 - f64.convert_i32_s - f64.const 0.30102999566398114 - f64.mul - f64.const 347 - f64.add + ) + (func $~lib/math/NativeMath.random (result f64) + (local $0 i64) + (local $1 i64) + global.get $~lib/math/random_seeded + i32.eqz + if + call $~lib/builtins/seed + i64.reinterpret_f64 + call $~lib/math/NativeMath.seedRandom + end + global.get $~lib/math/random_state0_64 + local.set $0 + global.get $~lib/math/random_state1_64 local.tee $1 - i32.trunc_f64_s - local.tee $4 + global.set $~lib/math/random_state0_64 local.get $1 - local.get $4 - f64.convert_i32_s - 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 $10 - i32.sub - global.set $~lib/util/number/_K - local.get $10 - i32.const 10056 - i32.add - i64.load - global.set $~lib/util/number/_frc_pow - local.get $4 - i32.const 1 - i32.shl - i32.const 10752 - i32.add - i32.load16_s - global.set $~lib/util/number/_exp_pow - global.get $~lib/util/number/_frc_pow - local.tee $6 - i64.const 4294967295 - i64.and - local.set $2 - local.get $6 - i64.const 32 + local.get $0 + local.get $0 + i64.const 23 + i64.shl + i64.xor + local.tee $0 + local.get $0 + i64.const 17 i64.shr_u - local.tee $6 - global.get $~lib/util/number/_frc_plus - local.tee $5 - i64.const 32 - i64.shr_u - local.tee $7 - i64.mul - local.get $2 - local.get $7 - i64.mul - local.get $2 - local.get $5 - i64.const 4294967295 - i64.and - local.tee $5 - i64.mul - i64.const 32 - i64.shr_u - i64.add - local.tee $7 - i64.const 32 - i64.shr_u - i64.add - local.get $5 - 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 - i64.const 1 - i64.sub - local.set $5 - local.get $0 - local.get $9 - i32.const 1 - i32.shl - i32.add - local.get $0 - local.get $6 - local.get $3 - local.get $3 - i64.clz - i32.wrap_i64 - local.tee $0 - i64.extend_i32_s - i64.shl - local.tee $3 - i64.const 32 - i64.shr_u - local.tee $7 - i64.mul - local.get $2 - local.get $7 - i64.mul - local.get $2 - local.get $3 - i64.const 4294967295 - i64.and - local.tee $3 - i64.mul - i64.const 32 - i64.shr_u - i64.add - local.tee $7 - i64.const 32 + i64.xor + i64.xor + local.get $1 + i64.const 26 i64.shr_u - i64.add - local.get $3 - local.get $6 - i64.mul - local.get $7 - i64.const 4294967295 - i64.and - i64.add - i64.const 2147483647 - i64.add - i64.const 32 + i64.xor + global.set $~lib/math/random_state1_64 + local.get $1 + i64.const 12 i64.shr_u - i64.add - global.get $~lib/util/number/_exp_pow - local.tee $4 - local.get $8 + i64.const 4607182418800017408 + i64.or + f64.reinterpret_i64 + f64.const 1 + f64.sub + ) + (func $start:std/array~anonymous|44 (param $0 i32) (param $1 i32) (result i32) + local.get $1 local.get $0 i32.sub - i32.add - i32.const -64 - i32.sub - local.get $5 - local.get $4 - global.get $~lib/util/number/_exp - i32.add - i32.const -64 - i32.sub - local.get $5 - local.get $6 - global.get $~lib/util/number/_frc_minus - local.tee $3 - i64.const 32 - i64.shr_u - local.tee $5 - i64.mul - local.get $2 - local.get $5 - i64.mul - local.get $2 - local.get $3 - i64.const 4294967295 - i64.and - local.tee $2 - i64.mul - i64.const 32 - i64.shr_u - i64.add - local.tee $3 - i64.const 32 - i64.shr_u - i64.add - local.get $2 - local.get $6 - i64.mul - local.get $3 - 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 $9 - call $~lib/util/number/genDigits - local.get $9 - i32.sub - global.get $~lib/util/number/_K - call $~lib/util/number/prettify - local.get $9 - 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 - local.get $0 - i32.const 48 - i32.store16 offset=4 - i32.const 3 - return - end - local.get $1 + (func $~lib/array/Array<~lib/array/Array>#__set (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) local.get $1 - f64.sub - f64.const 0 - f64.ne + local.get $0 + i32.load offset=12 + i32.ge_u if local.get $1 - local.get $1 - f64.ne + i32.const 0 + i32.lt_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 - return - 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 - return + i32.const 1344 + i32.const 1104 + i32.const 108 + i32.const 22 + call $~lib/builtins/abort + unreachable end - unreachable + local.get $0 + local.get $1 + i32.const 1 + i32.add + local.tee $3 + i32.const 2 + call $~lib/array/ensureSize + local.get $0 + local.get $3 + i32.store offset=12 end local.get $0 local.get $1 - call $~lib/util/number/dtoa_core + local.get $2 + call $~lib/array/Array#__uset ) - (func $~lib/util/number/itoa_buffered (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) + (func $start:std/array~anonymous|47 (param $0 i32) (param $1 i32) (result i32) + local.get $0 + i32.const 0 + call $~lib/array/Array#__get local.get $1 - i32.const 24 - i32.shl - i32.const 24 - i32.shr_s 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 - local.get $1 - i32.const 24 - i32.shl - i32.const 24 - i32.shr_s - i32.const 10 - i32.lt_u - if - local.get $0 - local.get $2 - i32.const 1 - i32.shl - i32.add + call $~lib/array/Array#__get + i32.sub + ) + (func $~lib/util/sort/insertionSort<~lib/array/Array> (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 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + loop $for-loop|0 local.get $1 - i32.const 24 - i32.shl - i32.const 24 - i32.shr_s - i32.const 48 - i32.or - i32.store16 - local.get $2 - i32.const 1 - i32.add - return + local.get $5 + i32.gt_s + if + global.get $~lib/memory/__stack_pointer + local.get $0 + local.get $5 + i32.const 2 + i32.shl + i32.add + i32.load + local.tee $6 + i32.store + local.get $5 + i32.const 1 + i32.sub + local.set $3 + loop $while-continue|1 + local.get $3 + i32.const 0 + i32.ge_s + if + block $while-break|1 + 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 + i32.const 2 + global.set $~argumentsLength + local.get $6 + local.get $7 + local.get $2 + i32.load + call_indirect (type $i32_i32_=>_i32) + i32.const 0 + i32.ge_s + br_if $while-break|1 + local.get $3 + local.tee $4 + i32.const 1 + i32.sub + local.set $3 + local.get $0 + local.get $4 + i32.const 1 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $7 + i32.store + br $while-continue|1 + end + end + end + local.get $0 + local.get $3 + i32.const 1 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $6 + i32.store + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|0 + end end - local.get $2 - local.get $1 - i32.const 24 - i32.shl - i32.const 24 - i32.shr_s - local.tee $2 - call $~lib/util/number/decimalCount32 + global.get $~lib/memory/__stack_pointer + i32.const 8 i32.add - local.set $1 + global.set $~lib/memory/__stack_pointer + ) + (func $start:std/array~anonymous|48 (param $0 i32) (param $1 i32) (result i32) local.get $0 - local.get $2 - local.get $1 - call $~lib/util/number/utoa_dec_simple + i32.load local.get $1 + i32.load + i32.sub ) - (func $~lib/util/number/itoa_buffered (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) + (func $~lib/util/string/compareImpl (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + local.get $0 + i32.const 7 + i32.and local.get $1 - i32.const 65535 + i32.const 7 i32.and - i32.const 10 - i32.lt_u + i32.or + i32.eqz + i32.const 0 + local.get $2 + i32.const 4 + i32.ge_u + select if - local.get $0 - local.get $1 - i32.const 65535 - i32.and - i32.const 48 - i32.or - i32.store16 + loop $do-continue|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-continue|0 + end + end + end + loop $while-continue|1 + local.get $2 + local.tee $3 i32.const 1 - return + 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 $4 + i32.ne + if + local.get $3 + local.get $4 + i32.sub + return + 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 + ) + (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) + i32.const 1 local.get $1 - i32.const 65535 - i32.and - local.tee $2 - call $~lib/util/number/decimalCount32 - local.set $1 + i32.eqz + i32.const 1 + local.get $0 + i32.eqz local.get $0 - local.get $2 local.get $1 - call $~lib/util/number/utoa_dec_simple + i32.eq + select + select + if + i32.const 0 + return + end local.get $1 - ) - (func $~lib/util/number/decimalCount64High (param $0 i64) (result i32) + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u + local.tee $2 local.get $0 - i64.const 100000000000 - i64.ge_u - i32.const 10 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u + local.tee $3 + i32.or + i32.eqz + if + i32.const 0 + return + end + local.get $3 + i32.eqz + if + i32.const -1 + return + end + local.get $2 + i32.eqz + if + i32.const 1 + return + end + local.get $0 + local.get $1 + local.get $3 + local.get $2 + local.get $2 + local.get $3 + i32.gt_s + select + call $~lib/util/string/compareImpl + local.tee $0 + local.get $3 + local.get $2 + i32.sub + local.get $0 + select + ) + (func $std/array/assertSorted<~lib/string/String|null>@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 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + 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 8880 + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 8880 + i32.store + end + 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 $0 + local.get $2 + call $~lib/array/Array<~lib/array/Array>#sort + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + block $__inlined_func$std/array/isSorted<~lib/string/String|null> (result 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 1 + local.set $0 + local.get $1 + i32.load offset=12 + local.set $5 + loop $for-loop|0 + local.get $0 + local.get $5 + i32.lt_s + if + local.get $1 + local.get $0 + i32.const 1 + i32.sub + call $~lib/array/Array#__get + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store + local.get $1 + local.get $0 + call $~lib/array/Array#__get + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + i32.const 2 + global.set $~argumentsLength + local.get $3 + local.get $4 + local.get $2 + i32.load + call_indirect (type $i32_i32_=>_i32) + i32.const 0 + i32.gt_s + if + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 0 + br $__inlined_func$std/array/isSorted<~lib/string/String|null> + 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 8 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 1 + end + i32.eqz + if + i32.const 0 + i32.const 1552 + i32.const 942 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 4 i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/string/String.__eq (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) local.get $0 - i64.const 10000000000 - i64.ge_u + local.get $1 + i32.eq + if + i32.const 1 + return + end + local.get $1 + i32.eqz + i32.const 1 + local.get $0 + select + if + i32.const 0 + return + end + 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.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u + i32.ne + if + i32.const 0 + return + end + local.get $0 + local.get $1 + local.get $2 + call $~lib/util/string/compareImpl + i32.eqz + ) + (func $~lib/util/number/decimalCount32 (param $0 i32) (result i32) + local.get $0 + i32.const 10 + i32.ge_u + i32.const 1 i32.add local.get $0 - i64.const 100000000000000 - i64.ge_u - i32.const 13 + i32.const 10000 + i32.ge_u + i32.const 3 i32.add local.get $0 - i64.const 10000000000000 - i64.ge_u + i32.const 1000 + i32.ge_u i32.add local.get $0 - i64.const 1000000000000 - i64.lt_u + i32.const 100 + i32.lt_u select local.get $0 - i64.const 10000000000000000 - i64.ge_u - i32.const 16 + i32.const 1000000 + i32.ge_u + i32.const 6 i32.add local.get $0 - i64.const -8446744073709551616 - i64.ge_u - i32.const 18 + i32.const 1000000000 + i32.ge_u + i32.const 8 i32.add local.get $0 - i64.const 1000000000000000000 - i64.ge_u + i32.const 100000000 + i32.ge_u i32.add local.get $0 - i64.const 100000000000000000 - i64.lt_u + i32.const 10000000 + i32.lt_u select local.get $0 - i64.const 1000000000000000 - i64.lt_u + i32.const 100000 + i32.lt_u select ) - (func $~lib/util/number/utoa_dec_simple (param $0 i32) (param $1 i64) (param $2 i32) + (func $~lib/util/number/utoa_dec_simple (param $0 i32) (param $1 i32) (param $2 i32) loop $do-continue|0 local.get $0 local.get $2 @@ -6025,78 +6412,36 @@ i32.shl i32.add local.get $1 - i64.const 10 - i64.rem_u - i32.wrap_i64 + i32.const 10 + i32.rem_u i32.const 48 i32.add i32.store16 local.get $1 - i64.const 10 - i64.div_u + i32.const 10 + i32.div_u local.tee $1 - i64.const 0 - i64.ne br_if $do-continue|0 end ) - (func $~lib/util/number/itoa_buffered (param $0 i32) (param $1 i64) (result i32) - (local $2 i32) - (local $3 i32) - local.get $1 - i64.const 10 - i64.lt_u - if - local.get $0 - local.get $1 - i64.const 48 - i64.or - i64.store16 - i32.const 1 - return - end - local.get $1 - i64.const 4294967295 - i64.le_u - if - local.get $1 - i32.wrap_i64 - local.tee $3 - call $~lib/util/number/decimalCount32 - local.set $2 - local.get $0 - local.get $3 - local.get $2 - call $~lib/util/number/utoa_dec_simple - else - local.get $0 - local.get $1 - local.get $1 - call $~lib/util/number/decimalCount64High - local.tee $2 - call $~lib/util/number/utoa_dec_simple - end - local.get $2 - ) - (func $~lib/util/number/itoa_buffered (param $0 i32) (param $1 i64) (result i32) + (func $~lib/util/number/itoa_buffered (param $0 i32) (param $1 i32) (result i32) (local $2 i32) - (local $3 i32) local.get $1 - i64.const 0 - i64.lt_s + i32.const 0 + i32.lt_s local.tee $2 if local.get $0 i32.const 45 i32.store16 - i64.const 0 + i32.const 0 local.get $1 - i64.sub + i32.sub local.set $1 end local.get $1 - i64.const 10 - i64.lt_u + i32.const 10 + i32.lt_u if local.get $0 local.get $2 @@ -6104,5225 +6449,1964 @@ i32.shl i32.add local.get $1 - i64.const 48 - i64.or - i64.store16 + i32.const 48 + i32.or + i32.store16 local.get $2 i32.const 1 i32.add return end + local.get $0 local.get $1 - i64.const 4294967295 - i64.le_u - if - local.get $1 - i32.wrap_i64 - local.tee $3 - call $~lib/util/number/decimalCount32 - local.get $2 - i32.add - local.set $2 - local.get $0 - local.get $3 - local.get $2 - call $~lib/util/number/utoa_dec_simple - else - local.get $0 - local.get $1 - local.get $1 - call $~lib/util/number/decimalCount64High - local.get $2 - i32.add - local.tee $2 - call $~lib/util/number/utoa_dec_simple - end + local.get $1 + call $~lib/util/number/decimalCount32 local.get $2 + i32.add + local.tee $0 + call $~lib/util/number/utoa_dec_simple + local.get $0 ) - (func $~lib/util/number/itoa_buffered (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) + (func $~lib/util/number/itoa_buffered (param $0 i32) (param $1 i32) (result i32) local.get $1 - i32.const 255 - i32.and i32.const 10 i32.lt_u if local.get $0 local.get $1 - i32.const 255 - i32.and i32.const 48 i32.or i32.store16 i32.const 1 return end - local.get $1 - i32.const 255 - i32.and - local.tee $2 - call $~lib/util/number/decimalCount32 - local.set $1 local.get $0 - local.get $2 local.get $1 - call $~lib/util/number/utoa_dec_simple local.get $1 - ) - (func $~lib/array/Array#indexOf (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (local $3 i32) - local.get $2 - local.get $0 - i32.load offset=12 - local.tee $3 - i32.ge_s - i32.const 1 - local.get $3 - select - if - 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 + call $~lib/util/number/decimalCount32 + local.tee $0 + call $~lib/util/number/utoa_dec_simple 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 $1 - local.get $0 - local.get $2 - i32.const 2 - i32.shl - i32.add - i32.load - i32.eq - if - local.get $2 - return - end - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $while-continue|0 - end - end - i32.const -1 ) - (func $~lib/array/Array#indexOf (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (local $3 i32) - local.get $2 - local.get $0 - i32.load offset=12 - local.tee $3 - i32.ge_s - i32.const 1 + (func $~lib/util/number/genDigits (param $0 i32) (param $1 i64) (param $2 i32) (param $3 i64) (param $4 i32) (param $5 i64) (param $6 i32) (result i32) + (local $7 i64) + (local $8 i64) + (local $9 i32) + (local $10 i64) + (local $11 i32) + (local $12 i64) + (local $13 i64) local.get $3 - select - if - i32.const -1 - return - end - local.get $2 + local.get $1 + i64.sub + local.set $8 + local.get $3 + i64.const 1 i32.const 0 - i32.lt_s - if - local.get $2 - local.get $3 - i32.add - local.tee $2 - i32.const 0 - local.get $2 + local.get $4 + i32.sub + local.tee $11 + i64.extend_i32_s + i64.shl + local.tee $10 + i64.const 1 + i64.sub + local.tee $12 + i64.and + local.set $7 + local.get $3 + local.get $11 + i64.extend_i32_s + i64.shr_u + i32.wrap_i64 + local.tee $2 + call $~lib/util/number/decimalCount32 + local.set $9 + loop $while-continue|0 + local.get $9 i32.const 0 i32.gt_s - select - local.set $2 - end - 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 $0 - local.get $2 - i32.add - i32.load8_u - local.get $1 - i32.const 255 - i32.and - i32.eq - if - local.get $2 - return - end - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $while-continue|0 - end - end - i32.const -1 - ) - (func $~lib/array/Array#push (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - local.get $0 - local.get $0 - i32.load offset=12 - local.tee $3 - i32.const 1 - i32.add - local.tee $2 - i32.const 0 - call $~lib/array/ensureSize - local.get $3 - local.get $0 - i32.load offset=4 - i32.add - local.get $1 - i32.store8 - local.get $0 - local.get $2 - i32.store offset=12 - local.get $2 - ) - (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) - local.get $3 - local.get $0 - i32.load offset=12 - local.tee $4 - local.get $3 - local.get $4 - i32.lt_s - select - local.set $3 - local.get $0 - i32.load offset=4 - local.tee $5 - 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.add - local.get $5 - 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 - i32.add - local.get $3 - i32.const 0 - i32.lt_s - if (result i32) - local.get $3 - local.get $4 - i32.add - local.tee $3 - i32.const 0 - local.get $3 - i32.const 0 - i32.gt_s - select - else - local.get $3 - local.get $4 - local.get $3 - local.get $4 - i32.lt_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 - call $~lib/memory/memory.copy - local.get $0 - ) - (func $~lib/util/sort/weakHeapSort (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.get $1 - i32.const 31 - i32.add - i32.const 5 - i32.shr_u - i32.const 2 - i32.shl - local.tee $3 - call $~lib/rt/tlsf/__alloc - local.tee $5 - i32.const 0 - local.get $3 - call $~lib/memory/memory.fill - local.get $1 - i32.const 1 - i32.sub - local.set $4 - loop $for-loop|0 - local.get $4 - i32.const 0 - i32.gt_s - if - local.get $4 - local.set $3 - loop $while-continue|1 - local.get $3 - i32.const 1 - i32.and - local.get $5 - local.get $3 - i32.const 6 - i32.shr_u - i32.const 2 - i32.shl - i32.add - i32.load - local.get $3 - i32.const 1 - i32.shr_s - i32.shr_u - i32.const 1 - i32.and - i32.eq - if - local.get $3 - i32.const 1 - i32.shr_s - local.set $3 - br $while-continue|1 - end - end - local.get $0 - local.get $3 - i32.const 1 - i32.shr_s - local.tee $7 - i32.add - i32.load8_u - local.set $3 - local.get $0 - local.get $4 - i32.add - i32.load8_u - local.set $6 - i32.const 2 - global.set $~argumentsLength - local.get $3 - local.get $6 - local.get $2 - i32.load - call_indirect (type $i32_i32_=>_i32) - i32.const 0 - i32.lt_s - if - local.get $5 - local.get $4 - i32.const 5 - i32.shr_u - i32.const 2 - i32.shl - i32.add - local.tee $8 - local.get $8 - i32.load - i32.const 1 - local.get $4 - i32.shl - i32.xor - i32.store - local.get $0 - local.get $4 - i32.add - local.get $3 - i32.store8 - local.get $0 - local.get $7 - i32.add - local.get $6 - i32.store8 - end - local.get $4 - i32.const 1 - i32.sub - local.set $4 - br $for-loop|0 - end - end - local.get $1 - i32.const 1 - i32.sub - local.set $4 - loop $for-loop|2 - local.get $4 - i32.const 2 - i32.ge_s - if - local.get $0 - i32.load8_u - local.set $1 - local.get $0 - local.get $0 - local.get $4 - i32.add - local.tee $3 - i32.load8_u - i32.store8 - local.get $3 - local.get $1 - i32.store8 - i32.const 1 - local.set $1 - loop $while-continue|3 - local.get $4 - local.get $5 - local.get $1 - i32.const 5 - i32.shr_u - i32.const 2 - i32.shl - i32.add - i32.load - local.get $1 - i32.shr_u - i32.const 1 - i32.and - local.get $1 - i32.const 1 - i32.shl - i32.add - local.tee $3 - i32.gt_s - if - local.get $3 - local.set $1 - br $while-continue|3 - end - end - loop $while-continue|4 - local.get $1 - i32.const 0 - i32.gt_s - if - local.get $0 - i32.load8_u - local.set $3 - local.get $0 - local.get $1 - i32.add - i32.load8_u - local.set $6 - i32.const 2 - global.set $~argumentsLength - local.get $3 - local.get $6 - local.get $2 - i32.load - call_indirect (type $i32_i32_=>_i32) - i32.const 0 - i32.lt_s - if - local.get $5 - local.get $1 - i32.const 5 - i32.shr_u - i32.const 2 - i32.shl - i32.add - local.tee $7 - local.get $7 - i32.load - i32.const 1 - local.get $1 - i32.shl - i32.xor - i32.store - local.get $0 - local.get $1 - i32.add - local.get $3 - i32.store8 - local.get $0 - local.get $6 - i32.store8 - end - local.get $1 - i32.const 1 - i32.shr_s - local.set $1 - br $while-continue|4 - end - end - local.get $4 - i32.const 1 - i32.sub - local.set $4 - br $for-loop|2 - end - end - local.get $5 - call $~lib/rt/tlsf/__free - local.get $0 - i32.load8_u offset=1 - local.set $1 - local.get $0 - local.get $0 - i32.load8_u - i32.store8 offset=1 - local.get $0 - local.get $1 - i32.store8 - ) - (func $~lib/array/Array<~lib/string/String>#push (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - local.get $0 - local.get $0 - i32.load offset=12 - local.tee $3 - i32.const 1 - i32.add - local.tee $2 - i32.const 2 - call $~lib/array/ensureSize - local.get $0 - i32.load offset=4 - local.get $3 - 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 - local.get $0 - local.get $2 - i32.store offset=12 - local.get $2 - ) - (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 $~lib/array/Array~visit (param $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - local.get $0 - i32.load offset=4 - local.tee $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 - local.get $0 - i32.load - call $~lib/rt/itcms/__visit - ) - (func $~lib/rt/__visit_members (param $0 i32) - block $folding-inner4 - block $folding-inner3 - block $folding-inner2 - block $folding-inner1 - block $folding-inner0 - block $invalid - block $std/array/ArrayStr - block $std/array/Proxy - block $std/array/Ref - block $~lib/string/String - block $~lib/arraybuffer/ArrayBuffer - local.get $0 - i32.const 8 - i32.sub - i32.load - br_table $~lib/arraybuffer/ArrayBuffer $~lib/string/String $folding-inner4 $folding-inner0 $std/array/Ref $folding-inner4 $folding-inner0 $folding-inner0 $folding-inner1 $folding-inner0 $folding-inner0 $folding-inner1 $folding-inner2 $folding-inner2 $folding-inner2 $folding-inner2 $folding-inner2 $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-inner1 $folding-inner2 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner3 $folding-inner3 $std/array/ArrayStr $folding-inner2 $invalid - end - return - end - return - end - return - end - return - end - local.get $0 - call $~lib/array/Array~visit - return - end - unreachable - 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.load offset=4 - call $~lib/rt/itcms/__visit - return - end - local.get $0 - i32.load - call $~lib/rt/itcms/__visit - return - end - local.get $0 - i32.load - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end - ) - (func $~setArgumentsLength (param $0 i32) - local.get $0 - global.set $~argumentsLength - ) - (func $~start - global.get $~started - if - return - end - i32.const 1 - global.set $~started - call $start:std/array - ) - (func $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 13620 - i32.lt_s - if - i32.const 30032 - i32.const 30080 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - ) - (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 - call $~stack_check - global.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 $3 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - block $folding-inner1 - block $folding-inner0 - local.get $3 - local.get $1 - i32.load offset=12 - 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 $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 - call $~stack_check - global.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 $3 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - block $folding-inner1 - block $folding-inner0 - local.get $3 - local.get $1 - i32.load offset=12 - 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 $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 - call $~stack_check - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.load - local.tee $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 - 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/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 - call $~stack_check - 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 - i32.load offset=12 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $2 - local.get $1 - i32.load offset=12 - 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/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1 - ) - (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 - call $~stack_check - global.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 $~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 - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 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 1344 - i32.const 1104 - i32.const 108 - 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/ensureSize - 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 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 $0 - i32.load offset=12 - local.set $4 - loop $for-loop|0 - local.get $2 - local.get $4 - local.get $0 - i32.load offset=12 - local.tee $3 - local.get $3 - local.get $4 - i32.gt_s - select - i32.lt_s - if - 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 $i32_i32_i32_=>_i32) - 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 $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 $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 - call $~stack_check - 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 - 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|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 - call $~stack_check - 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 $~lib/array/Array#every (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 - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - local.get $0 - i32.load offset=12 - local.set $4 - loop $for-loop|0 - local.get $2 - local.get $4 - local.get $0 - i32.load offset=12 - local.tee $3 - local.get $3 - local.get $4 - i32.gt_s - select - i32.lt_s - if - 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 $i32_i32_i32_=>_i32) - 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 - 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|8 (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 - call $~stack_check - 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 - drop - 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|10 (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 - call $~stack_check - 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 3 - i32.lt_s - ) - (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 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 $0 - i32.load offset=12 - local.set $4 - loop $for-loop|0 - local.get $2 - local.get $4 - local.get $0 - i32.load offset=12 - local.tee $3 - local.get $3 - local.get $4 - i32.gt_s - select - i32.lt_s - if - 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 $i32_i32_i32_=>_i32) - 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 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 - i32.const 0 - ) - (func $start:std/array~anonymous|13 (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 - call $~stack_check - 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 - drop - 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|15 (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 - call $~stack_check - 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 3 - 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 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 $0 - i32.load offset=12 - local.set $4 - loop $for-loop|0 - local.get $2 - local.get $4 - local.get $0 - i32.load offset=12 - local.tee $3 - local.get $3 - local.get $4 - i32.gt_s - select - i32.lt_s - if - 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 $i32_i32_i32_=>_none) - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $for-loop|0 - end - end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $start:std/array~anonymous|17 (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 - call $~stack_check - 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 - drop - local.get $0 - global.get $std/array/i - 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) - 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 - local.get $2 - i32.store - local.get $2 - call $~lib/array/Array#pop - drop - local.get $0 - global.get $std/array/i - 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|20 (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 - call $~stack_check - 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 - 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 - end - 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 $2 - i32.store - local.get $2 - local.get $3 - i32.const 100 - i32.add - call $~lib/array/Array#push - drop - local.get $3 - i32.const 1 - i32.add - local.set $3 - br $for-loop|1 - end - 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 $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 - drop - local.get $3 - i32.const 1 - i32.add - local.set $3 - br $for-loop|3 - end - end - end - local.get $1 - i32.const 2 - i32.eq - if - local.get $0 - i32.const 202 - i32.ne - if - i32.const 0 - i32.const 1552 - i32.const 680 - i32.const 7 - call $~lib/builtins/abort - unreachable - end - end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $start:std/array~anonymous|22 (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 - call $~stack_check - 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 - drop - local.get $0 - global.get $std/array/i - 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#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.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 - local.get $0 - i32.load offset=12 - local.tee $5 - i32.const 2 - i32.const 3 - i32.const 0 - call $~lib/rt/__newArray - local.tee $3 - i32.store - local.get $3 - i32.load offset=4 - local.set $3 - loop $for-loop|0 - local.get $2 - local.get $5 - local.get $0 - i32.load offset=12 - local.tee $4 - local.get $4 - local.get $5 - i32.gt_s - select - i32.lt_s - if - local.get $2 - i32.const 2 - i32.shl - local.tee $4 - 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 offset=4 - i32.const 3 - global.set $~argumentsLength - local.get $3 - local.get $4 - i32.add - local.get $6 - local.get $2 - local.get $0 - local.get $1 - i32.load - call_indirect (type $i32_i32_i32_=>_i32) - i32.store - 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|24 (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 - call $~stack_check - 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 - local.get $0 - global.get $std/array/i - 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#filter (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 - 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 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 2 - i32.const 3 - i32.const 0 - call $~lib/rt/__newArray - local.tee $4 - i32.store - local.get $0 - i32.load offset=12 - local.set $5 - loop $for-loop|0 - local.get $2 - local.get $5 - local.get $0 - i32.load offset=12 - local.tee $3 - local.get $3 - local.get $5 - i32.gt_s - select - i32.lt_s - if - local.get $0 - i32.load offset=4 - local.get $2 - i32.const 2 - i32.shl - i32.add - i32.load - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - i32.const 3 - global.set $~argumentsLength - local.get $3 - local.get $2 - local.get $0 - local.get $1 - i32.load - call_indirect (type $i32_i32_i32_=>_i32) - if - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=8 - local.get $4 - local.get $3 - call $~lib/array/Array#push - drop - 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 12 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $4 - ) - (func $start:std/array~anonymous|26 (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 - call $~stack_check - 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 - drop - local.get $0 - global.get $std/array/i - 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|28 (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 - call $~stack_check - 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 - local.get $0 - global.get $std/array/i - 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) - (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 - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - local.get $0 - i32.load offset=12 - local.set $5 - loop $for-loop|0 - local.get $3 - local.get $5 - local.get $0 - i32.load offset=12 - local.tee $4 - local.get $4 - local.get $5 - i32.gt_s - select - i32.lt_s - if - 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 - local.get $1 - i32.load - call_indirect (type $i32_i32_i32_i32_=>_i32) - local.set $2 - local.get $3 - i32.const 1 - i32.add - local.set $3 - 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 $2 - ) - (func $start:std/array~anonymous|33 (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 - call $~stack_check - 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 - 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|35 (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 - call $~stack_check - 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 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 $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 - 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 - local.get $1 - i32.load - call_indirect (type $i32_i32_i32_i32_=>_i32) - local.set $2 - local.get $3 - i32.const 1 - i32.sub - local.set $3 - 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 $2 - ) - (func $~lib/array/Array#sort (param $0 i32) (param $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 f32) - (local $5 f32) - (local $6 i32) - (local $7 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 $folding-inner0 - local.get $0 - i32.load offset=12 - local.tee $7 - i32.const 1 - i32.le_s - br_if $folding-inner0 - local.get $0 - i32.load offset=4 - local.set $3 - local.get $7 - i32.const 2 - i32.eq - if - local.get $3 - f32.load offset=4 - local.set $4 - local.get $3 - f32.load - local.set $5 - i32.const 2 - global.set $~argumentsLength - local.get $4 - local.get $5 - local.get $1 - i32.load - call_indirect (type $f32_f32_=>_i32) - i32.const 0 - i32.lt_s - if - local.get $3 - local.get $5 - f32.store offset=4 - local.get $3 - local.get $4 - f32.store - end - br $folding-inner0 - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $7 - i32.const 256 - i32.lt_s - if - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.set $2 - loop $for-loop|0 - local.get $6 - local.get $7 - i32.lt_s - if - local.get $3 - local.get $6 - i32.const 2 - i32.shl - i32.add - f32.load - local.set $4 - local.get $6 - i32.const 1 - i32.sub - local.set $1 - loop $while-continue|1 - local.get $1 - i32.const 0 - i32.ge_s - if - block $while-break|1 - local.get $3 - local.get $1 - i32.const 2 - i32.shl - i32.add - f32.load - local.set $5 - i32.const 2 - global.set $~argumentsLength - local.get $4 - local.get $5 - local.get $2 - i32.load - call_indirect (type $f32_f32_=>_i32) - i32.const 0 - i32.ge_s - br_if $while-break|1 - local.get $1 - local.tee $0 - i32.const 1 - i32.sub - local.set $1 - local.get $3 - local.get $0 - i32.const 1 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $5 - f32.store - br $while-continue|1 - end - end - end - local.get $3 - local.get $1 - i32.const 1 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $4 - f32.store - local.get $6 - i32.const 1 - i32.add - local.set $6 - br $for-loop|0 - end - end - else - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $3 - local.get $7 - local.get $1 - call $~lib/util/sort/weakHeapSort - end - 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 - ) - (func $std/array/isArraysEqual (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 f32) - (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 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=12 - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - block $folding-inner1 - block $folding-inner0 - local.get $4 - local.get $1 - i32.load offset=12 - 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 $4 - 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 - 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 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1 - ) - (func $~lib/array/Array#sort (param $0 i32) (param $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 8 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - block $folding-inner0 - local.get $0 - i32.load offset=12 - local.tee $7 - i32.const 1 - i32.le_s - br_if $folding-inner0 - local.get $0 - i32.load offset=4 - local.set $3 - local.get $7 - i32.const 2 - i32.eq - if - local.get $3 - f64.load offset=8 - local.set $4 - local.get $3 - f64.load - local.set $5 - i32.const 2 - global.set $~argumentsLength - local.get $4 - local.get $5 - local.get $1 - i32.load - call_indirect (type $f64_f64_=>_i32) - i32.const 0 - i32.lt_s - if - local.get $3 - local.get $5 - f64.store offset=8 - local.get $3 - local.get $4 - f64.store - end - br $folding-inner0 - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $7 - i32.const 256 - i32.lt_s - if - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.set $2 - loop $for-loop|0 - local.get $6 - local.get $7 - i32.lt_s - if - local.get $3 - local.get $6 - i32.const 3 - i32.shl - i32.add - f64.load - local.set $4 - local.get $6 - i32.const 1 - i32.sub - local.set $1 - loop $while-continue|1 - local.get $1 - i32.const 0 - i32.ge_s - if - block $while-break|1 - local.get $3 - local.get $1 - i32.const 3 - i32.shl - i32.add - f64.load - local.set $5 - i32.const 2 - global.set $~argumentsLength - local.get $4 - local.get $5 - local.get $2 - i32.load - call_indirect (type $f64_f64_=>_i32) - i32.const 0 - i32.ge_s - br_if $while-break|1 - local.get $1 - local.tee $0 - i32.const 1 - i32.sub - local.set $1 - local.get $3 - local.get $0 - i32.const 1 - i32.add - i32.const 3 - i32.shl - i32.add - local.get $5 - f64.store - br $while-continue|1 - end - end - end - local.get $3 - local.get $1 - i32.const 1 - i32.add - i32.const 3 - i32.shl - i32.add - local.get $4 - f64.store - local.get $6 - i32.const 1 - i32.add - local.set $6 - br $for-loop|0 - end - end - else - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $3 - local.get $7 - local.get $1 - call $~lib/util/sort/weakHeapSort - end - 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 - ) - (func $std/array/isArraysEqual (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 f64) - (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 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=12 - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - block $folding-inner1 - block $folding-inner0 - local.get $4 - local.get $1 - i32.load offset=12 - 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 $4 - 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 - f64.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 - f64.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 - 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 - f64.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 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1 - ) - (func $~lib/array/Array#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 8 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - block $folding-inner0 - local.get $0 - i32.load offset=12 - local.tee $2 - i32.const 1 - i32.le_s - br_if $folding-inner0 - local.get $0 - i32.load offset=4 - local.set $5 - local.get $2 - i32.const 2 - i32.eq - if - local.get $5 - i32.load offset=4 - local.set $2 - local.get $5 - i32.load - local.set $3 - i32.const 2 - global.set $~argumentsLength - local.get $2 - local.get $3 - local.get $1 - i32.load - call_indirect (type $i32_i32_=>_i32) - i32.const 0 - i32.lt_s - if - local.get $5 - local.get $3 - i32.store offset=4 - local.get $5 - local.get $2 - i32.store - end - br $folding-inner0 - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $2 - i32.const 256 - i32.lt_s - if - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $2 - local.set $3 - local.get $1 - local.set $4 - loop $for-loop|0 - local.get $3 - local.get $6 - i32.gt_s - if - local.get $5 - local.get $6 - i32.const 2 - i32.shl - i32.add - i32.load - local.set $7 - local.get $6 - i32.const 1 - i32.sub - local.set $1 - loop $while-continue|1 - local.get $1 - i32.const 0 - i32.ge_s - if - block $while-break|1 - local.get $5 - local.get $1 - 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 $4 - i32.load - call_indirect (type $i32_i32_=>_i32) - i32.const 0 - i32.ge_s - br_if $while-break|1 - local.get $1 - local.tee $2 - i32.const 1 - i32.sub - local.set $1 - local.get $5 - local.get $2 - i32.const 1 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $8 - i32.store - br $while-continue|1 - end - end - end - local.get $5 - local.get $1 - i32.const 1 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $7 - i32.store - local.get $6 - i32.const 1 - i32.add - local.set $6 - br $for-loop|0 - end - end - else - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $5 - local.get $2 - local.get $1 - call $~lib/util/sort/weakHeapSort - end - 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 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - ) - (func $~lib/array/Array#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 8 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - block $folding-inner0 - local.get $0 - i32.load offset=12 - local.tee $2 - i32.const 1 - i32.le_s - br_if $folding-inner0 - local.get $0 - i32.load offset=4 - local.set $5 - local.get $2 - i32.const 2 - i32.eq - if - local.get $5 - i32.load offset=4 - local.set $2 - local.get $5 - i32.load - local.set $3 - i32.const 2 - global.set $~argumentsLength - local.get $2 - local.get $3 - local.get $1 - i32.load - call_indirect (type $i32_i32_=>_i32) - i32.const 0 - i32.lt_s - if - local.get $5 - local.get $3 - i32.store offset=4 - local.get $5 - local.get $2 - i32.store - end - br $folding-inner0 - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $2 - i32.const 256 - i32.lt_s - if - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $2 - local.set $3 - local.get $1 - local.set $4 - loop $for-loop|0 - local.get $3 - local.get $6 - i32.gt_s - if - local.get $5 - local.get $6 - i32.const 2 - i32.shl - i32.add - i32.load - local.set $7 - local.get $6 - i32.const 1 - i32.sub - local.set $1 - loop $while-continue|1 - local.get $1 - i32.const 0 - i32.ge_s - if - block $while-break|1 - local.get $5 - local.get $1 - 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 $4 - i32.load - call_indirect (type $i32_i32_=>_i32) - i32.const 0 - i32.ge_s - br_if $while-break|1 - local.get $1 - local.tee $2 - i32.const 1 - i32.sub - local.set $1 - local.get $5 - local.get $2 - i32.const 1 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $8 - i32.store - br $while-continue|1 - end - end - end - local.get $5 - local.get $1 - i32.const 1 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $7 - i32.store - local.get $6 - i32.const 1 - i32.add - local.set $6 - br $for-loop|0 - end - end - else - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $5 - local.get $2 - local.get $1 - call $~lib/util/sort/weakHeapSort - end - 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 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - ) - (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.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 - local.get $0 - call $~lib/array/Array#constructor - 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 - i32.add - global.set $~lib/memory/__stack_pointer - 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 - 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 - 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_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 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $1 - ) - (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 - 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 - 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 $0 - 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$std/array/isSorted (result 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 - local.set $2 - 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 - 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 - i32.const 1 - i32.sub - call $~lib/array/Array#__get - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - local.get $2 - call $~lib/array/Array#__get - i32.const 2 - global.set $~argumentsLength - local.get $1 - i32.load - call_indirect (type $i32_i32_=>_i32) - 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 - 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 - i32.const 1 - end - i32.eqz - if - i32.const 0 - i32.const 1552 - i32.const 942 - 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 - ) - (func $std/array/assertSortedDefault (param $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 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 8336 - i32.store offset=4 - local.get $0 - i32.const 8336 - call $std/array/assertSorted - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/array/Array<~lib/array/Array>#__set (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 - call $~stack_check - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.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 1344 - i32.const 1104 - i32.const 108 - 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/ensureSize - local.get $0 - local.get $3 - i32.store offset=12 - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $0 - local.get $1 - local.get $2 - call $~lib/array/Array#__uset - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $std/array/createReverseOrderedNestedArray (result i32) - (local $0 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 - 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 - global.get $~lib/memory/__stack_pointer - 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 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.const 22 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - local.get $0 - i32.const 0 - call $~lib/array/Array#set:buffer - local.get $0 - i32.const 0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=8 - local.get $0 - i32.const 0 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.const 0 - call $~lib/rt/itcms/__new - local.tee $1 - i32.store offset=4 - local.get $1 - i32.const 0 - i32.const 8 - call $~lib/memory/memory.fill - local.get $0 - local.get $1 - call $~lib/array/Array#set:buffer - local.get $0 - local.get $1 - i32.store offset=4 - local.get $0 - i32.const 8 - i32.store offset=8 - local.get $0 - i32.const 2 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - i32.store - loop $for-loop|0 - local.get $2 - i32.const 2 - i32.lt_s - if - global.get $~lib/memory/__stack_pointer - i32.const 1 - call $~lib/array/Array#constructor - local.tee $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $1 - i32.const 0 + 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 $9 + 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 $4 + 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 $4 + 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 $4 + 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 $4 + 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 $4 + 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 $4 + 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 $4 + 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 $4 + 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 $4 + local.get $2 + i32.const 10 + i32.rem_u + local.set $2 + br $break|1 + end + local.get $2 + local.set $4 + i32.const 0 + local.set $2 + br $break|1 + end + i32.const 0 + local.set $4 + end + local.get $4 + local.get $6 + i32.or + if + local.get $0 + local.get $6 + i32.const 1 + i32.shl + i32.add + local.get $4 + i32.const 65535 + i32.and + i32.const 48 + i32.add + i32.store16 + local.get $6 + i32.const 1 + i32.add + local.set $6 + end + local.get $9 i32.const 1 - local.get $2 i32.sub - call $~lib/array/Array#__set - 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 $2 - local.get $1 - call $~lib/array/Array<~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 16 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - ) - (func $start:std/array~anonymous|47 (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 $~stack_check - global.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 $~lib/util/sort/insertionSort<~lib/array/Array> (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.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 - loop $for-loop|0 - local.get $1 - local.get $5 - i32.gt_s - if - global.get $~lib/memory/__stack_pointer - local.get $0 - local.get $5 - i32.const 2 - i32.shl - i32.add - i32.load - local.tee $6 - i32.store + local.set $9 local.get $5 - i32.const 1 - i32.sub - local.set $3 - loop $while-continue|1 - local.get $3 - i32.const 0 - i32.ge_s - if - block $while-break|1 - 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 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=12 - i32.const 2 - global.set $~argumentsLength - local.get $6 - local.get $7 + local.get $7 + local.get $2 + i64.extend_i32_u + local.get $11 + i64.extend_i32_s + i64.shl + i64.add + local.tee $1 + i64.ge_u + if + local.get $9 + global.get $~lib/util/number/_K + i32.add + global.set $~lib/util/number/_K + local.get $9 + i32.const 2 + i32.shl + i32.const 10928 + i32.add + i64.load32_u + local.get $11 + i64.extend_i32_s + i64.shl + local.set $10 + local.get $0 + local.get $6 + i32.const 1 + i32.sub + i32.const 1 + i32.shl + i32.add + local.tee $0 + i32.load16_u + local.set $2 + loop $while-continue|3 + i32.const 1 + local.get $8 + local.get $1 + i64.sub + local.get $1 + local.get $10 + i64.add + local.tee $3 + local.get $8 + i64.sub + i64.gt_u + local.get $3 + local.get $8 + i64.lt_u + select + i32.const 0 + local.get $10 + local.get $5 + local.get $1 + i64.sub + i64.le_u + i32.const 0 + local.get $1 + local.get $8 + i64.lt_u + select + select + if local.get $2 - i32.load - call_indirect (type $i32_i32_=>_i32) - i32.const 0 - i32.ge_s - br_if $while-break|1 - local.get $3 - local.tee $4 - i32.const 1 - i32.sub - local.set $3 - local.get $0 - local.get $4 i32.const 1 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $7 - i32.store - br $while-continue|1 + i32.sub + local.set $2 + local.get $1 + local.get $10 + i64.add + local.set $1 + br $while-continue|3 end end + local.get $0 + local.get $2 + i32.store16 + local.get $6 + return end + br $while-continue|0 + end + end + local.get $11 + i64.extend_i32_s + local.set $13 + loop $while-continue|4 (result i32) + local.get $5 + i64.const 10 + i64.mul + local.set $5 + local.get $7 + i64.const 10 + i64.mul + local.tee $3 + local.get $13 + i64.shr_u + local.tee $1 + local.get $6 + i64.extend_i32_s + i64.or + i64.const 0 + i64.ne + if local.get $0 - local.get $3 + local.get $6 i32.const 1 - i32.add - i32.const 2 i32.shl i32.add + local.get $1 + i32.wrap_i64 + i32.const 65535 + i32.and + i32.const 48 + i32.add + i32.store16 local.get $6 - i32.store - local.get $5 i32.const 1 i32.add - local.set $5 - br $for-loop|0 + local.set $6 end - end - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/array/Array<~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 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 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=16 - block $folding-inner0 - local.get $0 - i32.load offset=12 - local.tee $2 + local.get $9 i32.const 1 - i32.le_s - br_if $folding-inner0 - local.get $0 - i32.load offset=4 - local.set $3 - local.get $2 + i32.sub + local.set $9 + local.get $3 + local.get $12 + i64.and + local.tee $7 + local.get $5 + i64.ge_u + br_if $while-continue|4 + local.get $9 + global.get $~lib/util/number/_K + i32.add + global.set $~lib/util/number/_K + local.get $7 + local.set $1 + local.get $8 + i32.const 0 + local.get $9 + i32.sub i32.const 2 - i32.eq - if - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.load offset=4 - local.tee $2 - i32.store - global.get $~lib/memory/__stack_pointer + i32.shl + i32.const 10928 + i32.add + i64.load32_u + i64.mul + local.set $8 + local.get $0 + local.get $6 + i32.const 1 + i32.sub + i32.const 1 + i32.shl + i32.add + local.tee $0 + i32.load16_u + local.set $2 + loop $while-continue|6 + i32.const 1 + local.get $8 + local.get $1 + i64.sub + local.get $1 + local.get $10 + i64.add + local.tee $3 + local.get $8 + i64.sub + i64.gt_u local.get $3 - i32.load - local.tee $4 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=12 - i32.const 2 - global.set $~argumentsLength - local.get $2 - local.get $4 + local.get $8 + i64.lt_u + select + i32.const 0 + local.get $10 + local.get $5 local.get $1 - i32.load - call_indirect (type $i32_i32_=>_i32) + i64.sub + i64.le_u i32.const 0 - i32.lt_s + local.get $1 + local.get $8 + i64.lt_u + select + select if - local.get $3 - local.get $4 - i32.store offset=4 - local.get $3 local.get $2 - i32.store + i32.const 1 + i32.sub + local.set $2 + local.get $1 + local.get $10 + i64.add + local.set $1 + br $while-continue|6 end - br $folding-inner0 end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=16 - local.get $3 - local.get $2 - local.get $1 - call $~lib/util/sort/insertionSort<~lib/array/Array> - 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 - i32.const 20 - 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) - (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 - 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 - 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<~lib/array/Array>#sort - local.set $0 - 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$std/array/isSorted<~lib/array/Array> (result 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 - i32.const 1 - local.set $2 - global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store16 + local.get $6 + end + ) + (func $~lib/util/number/prettify (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 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.load offset=12 - local.set $5 + 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 + i32.const 0 + local.get $1 + local.get $3 + i32.le_s + select + if (result i32) loop $for-loop|0 - local.get $2 - local.get $5 + local.get $1 + local.get $3 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 i32.const 1 - i32.sub - call $~lib/array/Array#__get - local.set $3 - global.get $~lib/memory/__stack_pointer + 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 + i32.const 0 + local.get $3 + i32.const 0 + i32.gt_s + select + 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 + call $~lib/memory/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 + i32.const 0 + local.get $3 + i32.const -6 + i32.gt_s + select + if (result i32) + local.get $0 + i32.const 2 local.get $3 - i32.store - global.get $~lib/memory/__stack_pointer + i32.sub + local.tee $3 + i32.const 1 + i32.shl + i32.add local.get $0 - i32.store offset=8 + local.get $1 + i32.const 1 + i32.shl + call $~lib/memory/memory.copy local.get $0 - local.get $2 - call $~lib/array/Array#__get - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 + i32.const 3014704 + i32.store i32.const 2 - global.set $~argumentsLength + 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 - local.get $4 + i32.add + else local.get $1 - i32.load - call_indirect (type $i32_i32_=>_i32) - i32.const 0 - i32.gt_s - if - global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 1 + i32.eq + if (result i32) + local.get $0 + i32.const 101 + i32.store16 offset=2 + local.get $0 + local.tee $1 + i32.const 4 + i32.add + 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 + call $~lib/util/number/decimalCount32 + i32.const 1 + i32.add + local.tee $0 + call $~lib/util/number/utoa_dec_simple + local.get $1 + i32.const 45 + i32.const 43 + local.get $2 + select + i32.store16 offset=4 + local.get $0 + i32.const 2 + i32.add + 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 + call $~lib/memory/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 + local.tee $2 + i32.const 4 + i32.add + 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 + call $~lib/util/number/decimalCount32 + i32.const 1 + i32.add + local.tee $0 + call $~lib/util/number/utoa_dec_simple + local.get $2 + i32.const 45 + i32.const 43 + local.get $3 + select + i32.store16 offset=4 + local.get $0 + local.get $1 + i32.add + i32.const 2 i32.add - global.set $~lib/memory/__stack_pointer - i32.const 0 - br $__inlined_func$std/array/isSorted<~lib/array/Array> 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 12 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1 end - i32.eqz - if - i32.const 0 - i32.const 1552 - i32.const 942 - i32.const 3 - call $~lib/builtins/abort - unreachable + ) + (func $~lib/util/number/dtoa_core (param $0 i32) (param $1 f64) (result i32) + (local $2 i64) + (local $3 i64) + (local $4 i32) + (local $5 i64) + (local $6 i64) + (local $7 i64) + (local $8 i32) + (local $9 i32) + (local $10 i32) + local.get $1 + f64.const 0 + f64.lt + local.tee $9 + 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 - i32.const 16 + i64.reinterpret_f64 + local.tee $2 + i64.const 9218868437227405312 + i64.and + i64.const 52 + i64.shr_u + i32.wrap_i64 + local.tee $8 + i32.const 0 + i32.ne + i64.extend_i32_u + i64.const 52 + i64.shl + local.get $2 + i64.const 4503599627370495 + i64.and + i64.add + local.tee $3 + i64.const 1 + i64.shl + i64.const 1 + i64.add + local.tee $2 + local.get $2 + i64.clz + i32.wrap_i64 + local.tee $4 + i64.extend_i32_s + i64.shl + global.set $~lib/util/number/_frc_plus + local.get $8 + i32.const 1 + local.get $8 + select + i32.const 1075 + i32.sub + local.tee $8 + i32.const 1 + i32.sub + local.get $4 + i32.sub + local.set $4 + local.get $3 + local.get $3 + i64.const 4503599627370496 + i64.eq + i32.const 1 i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $std/array/createReverseOrderedElementsArray (result i32) - (local $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - global.get $~lib/memory/__stack_pointer - i32.const 12 + local.tee $10 + i64.extend_i32_s + i64.shl + i64.const 1 + i64.sub + local.get $8 + local.get $10 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 - global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 8 + local.get $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 16 - i32.const 25 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - local.get $0 - i32.const 0 - call $~lib/array/Array#set:buffer - local.get $0 - i32.const 0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=8 - local.get $0 - i32.const 0 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 2048 - i32.const 0 - call $~lib/rt/itcms/__new + 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 $1 - i32.store offset=4 - local.get $1 - i32.const 0 - i32.const 2048 - call $~lib/memory/memory.fill - local.get $0 - local.get $1 - call $~lib/array/Array#set:buffer - local.get $0 + i32.trunc_f64_s + local.tee $4 local.get $1 - i32.store offset=4 - local.get $0 - i32.const 2048 - i32.store offset=8 + local.get $4 + f64.convert_i32_s + 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 $10 + i32.sub + global.set $~lib/util/number/_K + local.get $10 + i32.const 10056 + i32.add + i64.load + global.set $~lib/util/number/_frc_pow + local.get $4 + i32.const 1 + i32.shl + i32.const 10752 + i32.add + i32.load16_s + global.set $~lib/util/number/_exp_pow + global.get $~lib/util/number/_frc_pow + local.tee $6 + i64.const 4294967295 + i64.and + local.set $2 + local.get $6 + i64.const 32 + i64.shr_u + local.tee $6 + global.get $~lib/util/number/_frc_plus + local.tee $5 + i64.const 32 + i64.shr_u + local.tee $7 + i64.mul + local.get $2 + local.get $7 + i64.mul + local.get $2 + local.get $5 + i64.const 4294967295 + i64.and + local.tee $5 + i64.mul + i64.const 32 + i64.shr_u + i64.add + local.tee $7 + i64.const 32 + i64.shr_u + i64.add + local.get $5 + 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 + i64.const 1 + i64.sub + local.set $5 local.get $0 - i32.const 512 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 8 + local.get $9 + i32.const 1 + i32.shl i32.add - global.set $~lib/memory/__stack_pointer local.get $0 - i32.store - loop $for-loop|0 - local.get $2 - i32.const 512 - i32.lt_s - if - 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 - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.const 24 - call $~lib/rt/itcms/__new - local.tee $1 - i32.store - local.get $1 - i32.const 511 - local.get $2 - i32.sub - 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 - local.get $1 - i32.store offset=8 - local.get $0 - local.get $2 - local.get $1 - call $~lib/array/Array<~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 12 - i32.add - global.set $~lib/memory/__stack_pointer + local.get $6 + local.get $3 + local.get $3 + i64.clz + i32.wrap_i64 + local.tee $0 + i64.extend_i32_s + i64.shl + local.tee $3 + i64.const 32 + i64.shr_u + local.tee $7 + i64.mul + local.get $2 + local.get $7 + i64.mul + local.get $2 + local.get $3 + i64.const 4294967295 + i64.and + local.tee $3 + i64.mul + i64.const 32 + i64.shr_u + i64.add + local.tee $7 + i64.const 32 + i64.shr_u + i64.add + local.get $3 + 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 + global.get $~lib/util/number/_exp_pow + local.tee $4 + local.get $8 local.get $0 - ) - (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) - 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 $folding-inner0 - i32.const 1 - local.get $1 - i32.eqz - i32.const 1 - local.get $0 - i32.eqz - local.get $0 - local.get $1 - i32.eq - select - select - 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 - local.tee $3 - i32.or - i32.eqz - br_if $folding-inner0 - local.get $2 - 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 $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 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $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 - local.get $2 - local.get $3 - i32.sub - 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.__eq (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const -64 i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - local.get $0 + local.get $5 + local.get $4 + global.get $~lib/util/number/_exp + i32.add + i32.const -64 + i32.sub + local.get $5 + local.get $6 + global.get $~lib/util/number/_frc_minus + local.tee $3 + i64.const 32 + i64.shr_u + local.tee $5 + i64.mul + local.get $2 + local.get $5 + i64.mul + local.get $2 + local.get $3 + i64.const 4294967295 + i64.and + local.tee $2 + i64.mul + i64.const 32 + i64.shr_u + i64.add + local.tee $3 + i64.const 32 + i64.shr_u + i64.add + local.get $2 + local.get $6 + i64.mul + local.get $3 + 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 $9 + call $~lib/util/number/genDigits + local.get $9 + i32.sub + global.get $~lib/util/number/_K + call $~lib/util/number/prettify + local.get $9 + i32.add + ) + (func $~lib/util/number/dtoa_buffered (param $0 i32) (param $1 f64) (result i32) + (local $2 i32) local.get $1 - i32.eq + f64.const 0 + f64.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 - i32.const 1 - local.get $0 - select - 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 + i32.const 48 + i32.store16 local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 + i32.const 46 + i32.store16 offset=2 local.get $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 + i32.const 48 + i32.store16 offset=4 + i32.const 3 return end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 0 - ) - (func $std/array/isArraysEqual<~lib/string/String|null> (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 - 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 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=12 - local.set $5 - global.get $~lib/memory/__stack_pointer local.get $1 - i32.store - block $folding-inner1 - block $folding-inner0 - local.get $5 - local.get $1 - i32.load offset=12 - i32.ne - br_if $folding-inner0 + 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 + return + else local.get $1 - i32.eq - br_if $folding-inner1 - loop $for-loop|0 - local.get $3 - local.get $5 - i32.lt_s - if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - local.get $3 - 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 $1 - i32.store offset=8 - local.get $1 - local.get $3 - call $~lib/array/Array#__get - 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 - call $~stack_check - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $2 - local.get $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 - br_if $folding-inner0 - local.get $3 - i32.const 1 - i32.add - local.set $3 - br $for-loop|0 - end + 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 - br $folding-inner1 + 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 end - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 0 - return + unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1 + local.get $0 + local.get $1 + call $~lib/util/number/dtoa_core ) - (func $~lib/string/String.__concat (param $0 i32) (param $1 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) - 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 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.const 8912 - local.get $0 - select - local.tee $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 - call $~stack_check - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer + i32.const 24 + i32.shl + i32.const 24 + i32.shr_s i32.const 0 - i32.store offset=8 - local.get $1 - i32.eqz + i32.lt_s + local.tee $2 if - global.get $~lib/memory/__stack_pointer - i32.const 8912 - i32.store - i32.const 8912 + 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 - 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 $2 - global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=4 - block $__inlined_func$~lib/string/String#concat + i32.const 24 + i32.shl + i32.const 24 + i32.shr_s + i32.const 10 + i32.lt_u + if + local.get $0 local.get $2 i32.const 1 i32.shl - local.tee $3 + i32.add local.get $1 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 1 - i32.shr_u - i32.const 1 + i32.const 24 i32.shl - local.tee $4 - i32.add - local.tee $2 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 8752 - local.set $2 - br $__inlined_func$~lib/string/String#concat - end - global.get $~lib/memory/__stack_pointer + i32.const 24 + i32.shr_s + i32.const 48 + i32.or + i32.store16 local.get $2 i32.const 1 - call $~lib/rt/itcms/__new - local.tee $2 - i32.store offset=8 - local.get $2 - local.get $0 - local.get $3 - call $~lib/memory/memory.copy - local.get $2 - local.get $3 - i32.add - local.get $1 - local.get $4 - call $~lib/memory/memory.copy - 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 - i32.const 8 + local.get $2 + local.get $1 + i32.const 24 + i32.shl + i32.const 24 + i32.shr_s + local.tee $2 + call $~lib/util/number/decimalCount32 i32.add - global.set $~lib/memory/__stack_pointer + local.set $1 + local.get $0 local.get $2 + local.get $1 + call $~lib/util/number/utoa_dec_simple + local.get $1 ) - (func $std/array/createRandomString (param $0 i32) (result 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 f64) - 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 - 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 0 - i32.store offset=16 - i32.const 8752 + local.get $1 + i32.const 65535 + i32.and + i32.const 10 + i32.lt_u + if + local.get $0 + local.get $1 + i32.const 65535 + i32.and + i32.const 48 + i32.or + i32.store16 + i32.const 1 + return + end + local.get $1 + i32.const 65535 + i32.and + local.tee $2 + call $~lib/util/number/decimalCount32 local.set $1 - global.get $~lib/memory/__stack_pointer - i32.const 8752 - i32.store - loop $for-loop|0 + local.get $0 + local.get $2 + local.get $1 + call $~lib/util/number/utoa_dec_simple + local.get $1 + ) + (func $~lib/util/number/decimalCount64High (param $0 i64) (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 + 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 + local.get $0 + i64.const 1000000000000 + i64.lt_u + select + local.get $0 + i64.const 10000000000000000 + i64.ge_u + i32.const 16 + i32.add + 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 + local.get $0 + i64.const 100000000000000000 + i64.lt_u + select + local.get $0 + i64.const 1000000000000000 + i64.lt_u + select + ) + (func $~lib/util/number/utoa_dec_simple (param $0 i32) (param $1 i64) (param $2 i32) + loop $do-continue|0 local.get $0 - local.get $3 - i32.gt_s - if - 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 7312 - i32.store offset=12 - call $~lib/math/NativeMath.random - global.get $~lib/memory/__stack_pointer - i32.const 7312 - i32.store offset=16 - i32.const 7308 - i32.load - i32.const 1 - i32.shr_u - f64.convert_i32_s - f64.mul - f64.floor - i32.trunc_f64_s - local.set $4 - 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 - global.get $~lib/memory/__stack_pointer - i32.const 7312 - i32.store - block $__inlined_func$~lib/string/String#charAt - local.get $4 - i32.const 7308 - i32.load - i32.const 1 - i32.shr_u - i32.ge_u - if - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 8752 - local.set $2 - br $__inlined_func$~lib/string/String#charAt - end - global.get $~lib/memory/__stack_pointer - i32.const 2 - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $2 - i32.store offset=4 - local.get $2 - local.get $4 - i32.const 1 - i32.shl - i32.const 7312 - i32.add - i32.load16_u - i32.store16 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - end - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=8 - local.get $1 - local.get $2 - call $~lib/string/String.__concat - local.tee $1 - i32.store - local.get $3 - i32.const 1 - i32.add - local.set $3 - br $for-loop|0 - end + local.get $2 + i32.const 1 + i32.sub + local.tee $2 + i32.const 1 + i32.shl + i32.add + local.get $1 + i64.const 10 + i64.rem_u + i32.wrap_i64 + i32.const 48 + i32.add + i32.store16 + local.get $1 + i64.const 10 + i64.div_u + local.tee $1 + i64.const 0 + i64.ne + br_if $do-continue|0 end - global.get $~lib/memory/__stack_pointer - i32.const 20 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $1 ) - (func $~lib/string/String#substring (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) - 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 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - i32.const 0 - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 1 - i32.shr_u - local.tee $2 - local.get $2 - i32.const 0 - i32.gt_s - select - local.tee $3 - local.get $1 - i32.const 0 - local.get $1 - i32.const 0 - i32.gt_s - select - local.tee $1 - local.get $2 - local.get $1 - local.get $2 - i32.lt_s - select - local.tee $1 - local.get $1 - local.get $3 - i32.lt_s - select - i32.const 1 - i32.shl - local.tee $4 - local.get $3 - local.get $1 local.get $1 - local.get $3 - i32.gt_s - select - i32.const 1 - i32.shl - local.tee $1 - i32.sub - local.tee $3 - i32.eqz + i64.const 10 + i64.lt_u if - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 8752 + local.get $0 + local.get $1 + i64.const 48 + i64.or + i64.store16 + i32.const 1 return end - i32.const 0 - local.get $4 - local.get $2 - i32.const 1 - i32.shl - i32.eq local.get $1 - select + i64.const 4294967295 + i64.le_u if - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer + local.get $1 + i32.wrap_i64 + local.tee $3 + call $~lib/util/number/decimalCount32 + local.set $2 local.get $0 - return + local.get $3 + local.get $2 + call $~lib/util/number/utoa_dec_simple + else + local.get $0 + local.get $1 + local.get $1 + call $~lib/util/number/decimalCount64High + local.tee $2 + call $~lib/util/number/utoa_dec_simple end - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $2 - i32.store offset=4 - local.get $2 - local.get $0 - local.get $1 - i32.add - local.get $3 - call $~lib/memory/memory.copy - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer local.get $2 ) - (func $~lib/util/string/joinBooleanArray (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) - (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 - call $~stack_check - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store local.get $1 - i32.const 1 - i32.sub - local.tee $3 - i32.const 0 - i32.lt_s + i64.const 0 + i64.lt_s + local.tee $2 + if + local.get $0 + i32.const 45 + i32.store16 + i64.const 0 + local.get $1 + i64.sub + local.set $1 + end + local.get $1 + i64.const 10 + i64.lt_u if - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 8752 - return - end - block $folding-inner0 - local.get $3 - i32.eqz - if - i32.const 9008 - i32.const 9040 - local.get $0 - i32.load8_u - select - local.set $0 - br $folding-inner0 - end - global.get $~lib/memory/__stack_pointer - i32.const 9072 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.const 9068 - i32.load - i32.const 1 - i32.shr_u - local.tee $4 - i32.const 5 - i32.add - i32.mul - i32.const 5 - i32.add - local.tee $7 - i32.const 1 - i32.shl - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $1 - i32.store offset=4 - loop $for-loop|1 - local.get $3 - local.get $5 - i32.gt_s - if - local.get $0 - local.get $5 - i32.add - i32.load8_u - local.tee $8 - i32.eqz - i32.const 4 - i32.add - local.set $6 - local.get $1 - local.get $2 - i32.const 1 - i32.shl - i32.add - i32.const 9008 - i32.const 9040 - local.get $8 - select - local.get $6 - i32.const 1 - i32.shl - call $~lib/memory/memory.copy - local.get $2 - local.get $6 - i32.add - local.set $2 - local.get $4 - if - local.get $1 - local.get $2 - i32.const 1 - i32.shl - i32.add - i32.const 9072 - local.get $4 - i32.const 1 - i32.shl - call $~lib/memory/memory.copy - local.get $2 - local.get $4 - i32.add - local.set $2 - end - local.get $5 - i32.const 1 - i32.add - local.set $5 - br $for-loop|1 - end - end local.get $0 - local.get $3 - i32.add - i32.load8_u - local.tee $3 - i32.eqz - i32.const 4 + local.get $2 + i32.const 1 + i32.shl i32.add - local.set $0 local.get $1 + i64.const 48 + i64.or + i64.store16 local.get $2 i32.const 1 - i32.shl i32.add - i32.const 9008 - i32.const 9040 - local.get $3 - select + return + end + local.get $1 + i64.const 4294967295 + i64.le_u + if + local.get $1 + i32.wrap_i64 + local.tee $3 + call $~lib/util/number/decimalCount32 + local.get $2 + i32.add + local.set $2 local.get $0 - i32.const 1 - i32.shl - call $~lib/memory/memory.copy - local.get $7 + local.get $3 + local.get $2 + call $~lib/util/number/utoa_dec_simple + else local.get $0 + local.get $1 + local.get $1 + call $~lib/util/number/decimalCount64High local.get $2 i32.add - local.tee $0 - i32.gt_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 $0 - br $folding-inner0 - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer + local.tee $2 + call $~lib/util/number/utoa_dec_simple + end + 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 255 + i32.and + i32.const 10 + i32.lt_u + if + local.get $0 local.get $1 + i32.const 255 + i32.and + i32.const 48 + i32.or + i32.store16 + i32.const 1 return end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer + local.get $1 + i32.const 255 + i32.and + local.tee $2 + call $~lib/util/number/decimalCount32 + local.set $1 local.get $0 + local.get $2 + local.get $1 + call $~lib/util/number/utoa_dec_simple + local.get $1 ) - (func $~lib/util/string/joinIntegerArray (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/array/Array#indexOf (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 - call $~stack_check - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - local.get $1 + local.get $2 + local.get $0 + i32.load offset=12 + local.tee $3 + i32.ge_s i32.const 1 - i32.sub - local.tee $4 + local.get $3 + select + if + i32.const -1 + return + end + local.get $2 i32.const 0 i32.lt_s if - global.get $~lib/memory/__stack_pointer - i32.const 8 + local.get $2 + local.get $3 i32.add - global.set $~lib/memory/__stack_pointer - i32.const 8752 - return + local.tee $2 + i32.const 0 + local.get $2 + i32.const 0 + i32.gt_s + select + local.set $2 end - block $folding-inner0 - local.get $4 - i32.eqz + 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 $1 local.get $0 + local.get $2 + i32.const 2 + i32.shl + i32.add i32.load - call $~lib/util/number/itoa32 - local.set $0 - br $folding-inner0 - end - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $4 - local.get $2 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 1 - i32.shr_u - local.tee $5 - i32.const 11 - i32.add - i32.mul - i32.const 11 - i32.add - local.tee $7 - i32.const 1 - i32.shl - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $1 - i32.store offset=4 - loop $for-loop|0 - local.get $4 - local.get $6 - i32.gt_s + i32.eq if - local.get $1 - local.get $3 - i32.const 1 - i32.shl - i32.add - local.get $0 - local.get $6 - i32.const 2 - i32.shl - i32.add - i32.load - call $~lib/util/number/itoa_buffered - local.get $3 - i32.add - local.set $3 - local.get $5 - if - local.get $1 - local.get $3 - i32.const 1 - i32.shl - i32.add - local.get $2 - local.get $5 - i32.const 1 - i32.shl - call $~lib/memory/memory.copy - local.get $3 - local.get $5 - i32.add - local.set $3 - end - local.get $6 - i32.const 1 - i32.add - local.set $6 - br $for-loop|0 + local.get $2 + return end + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $while-continue|0 end - local.get $7 - local.get $1 - local.get $3 - i32.const 1 - i32.shl - i32.add - local.get $0 - local.get $4 - i32.const 2 - i32.shl - i32.add - i32.load - call $~lib/util/number/itoa_buffered + end + i32.const -1 + ) + (func $~lib/array/Array#indexOf (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + local.get $2 + local.get $0 + i32.load offset=12 + local.tee $3 + i32.ge_s + i32.const 1 + local.get $3 + select + if + 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 $0 + local.tee $2 + i32.const 0 + local.get $2 + i32.const 0 i32.gt_s + select + local.set $2 + end + local.get $0 + i32.load offset=4 + local.set $0 + loop $while-continue|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 $0 - call $~lib/string/String#substring - local.set $0 - br $folding-inner0 + local.get $2 + i32.add + i32.load8_u + local.get $1 + i32.const 255 + i32.and + i32.eq + if + local.get $2 + return + end + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $while-continue|0 end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $1 - return end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 + i32.const -1 ) - (func $~lib/array/Array#join (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#push (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 - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store + (local $3 i32) local.get $0 - i32.load 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/string/joinIntegerArray - global.get $~lib/memory/__stack_pointer - i32.const 4 + local.tee $3 + i32.const 1 i32.add - global.set $~lib/memory/__stack_pointer + local.tee $2 + i32.const 0 + call $~lib/array/ensureSize + local.get $3 + local.get $0 + i32.load offset=4 + i32.add + local.get $1 + i32.store8 + local.get $0 + local.get $2 + i32.store offset=12 + local.get $2 ) - (func $~lib/util/string/joinIntegerArray (param $0 i32) (param $1 i32) (param $2 i32) (result 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) - (local $6 i32) - (local $7 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 $1 - i32.const 1 - i32.sub + local.get $3 + local.get $0 + i32.load offset=12 local.tee $4 + local.get $3 + local.get $4 + i32.lt_s + select + local.set $3 + local.get $0 + i32.load offset=4 + local.tee $5 + local.get $1 i32.const 0 i32.lt_s - if - global.get $~lib/memory/__stack_pointer - i32.const 8 + if (result i32) + local.get $1 + local.get $4 i32.add - global.set $~lib/memory/__stack_pointer - i32.const 8752 - return + 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 - block $folding-inner0 + local.tee $1 + i32.add + local.get $5 + local.get $2 + i32.const 0 + i32.lt_s + if (result i32) + local.get $2 local.get $4 - i32.eqz - if - local.get $0 - i32.load - call $~lib/util/number/utoa32 - local.set $0 - br $folding-inner0 - end - global.get $~lib/memory/__stack_pointer + i32.add + local.tee $2 + i32.const 0 + local.get $2 + i32.const 0 + i32.gt_s + select + else local.get $2 - i32.store - global.get $~lib/memory/__stack_pointer local.get $4 local.get $2 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 1 - i32.shr_u - local.tee $5 - i32.const 10 - i32.add - i32.mul - i32.const 10 - i32.add - local.tee $7 - i32.const 1 - i32.shl - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $1 - i32.store offset=4 - loop $for-loop|0 - local.get $4 - local.get $6 - i32.gt_s - if - local.get $1 - local.get $3 - i32.const 1 - i32.shl - i32.add - local.get $0 - local.get $6 - i32.const 2 - i32.shl - i32.add - i32.load - call $~lib/util/number/itoa_buffered - local.get $3 - i32.add - local.set $3 - local.get $5 - if - local.get $1 - local.get $3 - i32.const 1 - i32.shl - i32.add - local.get $2 - local.get $5 - i32.const 1 - i32.shl - call $~lib/memory/memory.copy - local.get $3 - local.get $5 - i32.add - local.set $3 - end - local.get $6 - i32.const 1 - i32.add - local.set $6 - br $for-loop|0 - end - end - local.get $7 - local.get $1 - local.get $3 - i32.const 1 - i32.shl - i32.add - local.get $0 local.get $4 - i32.const 2 - i32.shl + i32.lt_s + select + end + local.tee $2 + i32.add + local.get $3 + i32.const 0 + i32.lt_s + if (result i32) + local.get $3 + local.get $4 i32.add - i32.load - call $~lib/util/number/itoa_buffered + local.tee $3 + i32.const 0 local.get $3 - i32.add - local.tee $0 + i32.const 0 i32.gt_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 $0 - br $folding-inner0 - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $1 - return + select + else + local.get $3 + local.get $4 + local.get $3 + local.get $4 + i32.lt_s + select 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#join (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 + local.get $2 i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - local.get $0 - i32.load offset=4 - local.get $0 - i32.load offset=12 - global.get $~lib/memory/__stack_pointer + local.tee $2 + local.get $4 local.get $1 - i32.store + i32.sub + local.tee $1 local.get $1 - call $~lib/util/string/joinIntegerArray - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer + local.get $2 + i32.gt_s + select + call $~lib/memory/memory.copy + local.get $0 ) - (func $~lib/util/string/joinFloatArray (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 f64) + (func $~lib/util/sort/weakHeapSort (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 8 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store + (local $8 i32) + local.get $1 + i32.const 31 + i32.add + i32.const 5 + i32.shr_u + i32.const 2 + i32.shl + local.tee $3 + call $~lib/rt/tlsf/__alloc + local.tee $5 + i32.const 0 + local.get $3 + call $~lib/memory/memory.fill 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 8752 - return - end - block $folding-inner0 + local.set $4 + loop $for-loop|0 local.get $4 - i32.eqz + i32.const 0 + i32.gt_s if - local.get $0 - f64.load + local.get $4 local.set $3 - 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 $__inlined_func$~lib/util/number/dtoa + loop $while-continue|1 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 9856 - local.set $0 - br $__inlined_func$~lib/util/number/dtoa - end + i32.const 1 + i32.and + local.get $5 local.get $3 + i32.const 6 + i32.shr_u + i32.const 2 + i32.shl + i32.add + i32.load local.get $3 - f64.sub - f64.const 0 - f64.ne + i32.const 1 + i32.shr_s + i32.shr_u + i32.const 1 + i32.and + i32.eq if local.get $3 - local.get $3 - f64.ne - if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 9888 - local.set $0 - br $__inlined_func$~lib/util/number/dtoa - end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 9920 - i32.const 9968 - local.get $3 - f64.const 0 - f64.lt - select - local.set $0 - br $__inlined_func$~lib/util/number/dtoa + i32.const 1 + i32.shr_s + local.set $3 + br $while-continue|1 end - i32.const 10000 - 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 1 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - local.get $0 - i32.const 10000 - local.get $1 - call $~lib/memory/memory.copy - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer end - br $folding-inner0 - end - global.get $~lib/memory/__stack_pointer - i32.const 9824 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.const 9820 - i32.load - i32.const 1 - i32.shr_u - local.tee $5 - i32.const 28 - i32.add - i32.mul - i32.const 28 - i32.add - local.tee $7 - i32.const 1 - i32.shl - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $1 - i32.store offset=4 - loop $for-loop|0 + local.get $0 + local.get $3 + i32.const 1 + i32.shr_s + local.tee $7 + i32.add + i32.load8_u + local.set $3 + local.get $0 local.get $4 + i32.add + i32.load8_u + local.set $6 + i32.const 2 + global.set $~argumentsLength + local.get $3 local.get $6 - i32.gt_s + local.get $2 + i32.load + call_indirect (type $i32_i32_=>_i32) + i32.const 0 + i32.lt_s if - local.get $1 - local.get $2 + local.get $5 + local.get $4 + i32.const 5 + i32.shr_u + i32.const 2 + i32.shl + i32.add + local.tee $8 + local.get $8 + i32.load i32.const 1 + local.get $4 i32.shl + i32.xor + i32.store + local.get $0 + local.get $4 i32.add + local.get $3 + i32.store8 local.get $0 + local.get $7 + i32.add local.get $6 - i32.const 3 + i32.store8 + end + local.get $4 + i32.const 1 + i32.sub + local.set $4 + br $for-loop|0 + end + end + local.get $1 + i32.const 1 + i32.sub + local.set $4 + loop $for-loop|2 + local.get $4 + i32.const 2 + i32.ge_s + if + local.get $0 + i32.load8_u + local.set $1 + local.get $0 + local.get $0 + local.get $4 + i32.add + local.tee $3 + i32.load8_u + i32.store8 + local.get $3 + local.get $1 + i32.store8 + i32.const 1 + local.set $1 + loop $while-continue|3 + local.get $4 + local.get $5 + local.get $1 + i32.const 5 + i32.shr_u + i32.const 2 i32.shl i32.add - f64.load - call $~lib/util/number/dtoa_buffered - local.get $2 + i32.load + local.get $1 + i32.shr_u + i32.const 1 + i32.and + local.get $1 + i32.const 1 + i32.shl i32.add - local.set $2 - local.get $5 + local.tee $3 + i32.gt_s + if + local.get $3 + local.set $1 + br $while-continue|3 + end + end + loop $while-continue|4 + local.get $1 + i32.const 0 + i32.gt_s if + local.get $0 + i32.load8_u + local.set $3 + local.get $0 local.get $1 - local.get $2 - i32.const 1 - i32.shl i32.add - i32.const 9824 - local.get $5 - i32.const 1 - i32.shl - call $~lib/memory/memory.copy + i32.load8_u + local.set $6 + i32.const 2 + global.set $~argumentsLength + local.get $3 + local.get $6 local.get $2 - local.get $5 - i32.add - local.set $2 + i32.load + call_indirect (type $i32_i32_=>_i32) + i32.const 0 + i32.lt_s + if + local.get $5 + local.get $1 + i32.const 5 + i32.shr_u + i32.const 2 + i32.shl + i32.add + local.tee $7 + local.get $7 + i32.load + i32.const 1 + local.get $1 + i32.shl + i32.xor + i32.store + local.get $0 + local.get $1 + i32.add + local.get $3 + i32.store8 + local.get $0 + local.get $6 + i32.store8 + end + local.get $1 + i32.const 1 + i32.shr_s + local.set $1 + br $while-continue|4 end - local.get $6 - i32.const 1 - i32.add - local.set $6 - br $for-loop|0 end + local.get $4 + i32.const 1 + i32.sub + local.set $4 + br $for-loop|2 end - local.get $7 - local.get $1 - 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.tee $0 - i32.gt_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 $0 - br $folding-inner0 - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $1 - return end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer + local.get $5 + call $~lib/rt/tlsf/__free + local.get $0 + i32.load8_u offset=1 + local.set $1 + local.get $0 + local.get $0 + i32.load8_u + i32.store8 offset=1 local.get $0 + local.get $1 + i32.store8 ) - (func $~lib/util/string/joinReferenceArray<~lib/string/String|null> (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/array/Array#sort (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 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 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=16 - local.get $1 + (local $7 i32) + (local $8 i32) + local.get $0 + i32.load offset=12 + local.tee $2 i32.const 1 - i32.sub - local.tee $4 - i32.const 0 - i32.lt_s + i32.le_s if - global.get $~lib/memory/__stack_pointer - i32.const 20 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 8752 + local.get $0 return end - local.get $4 - i32.eqz + local.get $0 + i32.load offset=4 + local.set $5 + local.get $2 + i32.const 2 + i32.eq if - global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $5 + i32.load8_u offset=1 + local.set $2 + local.get $5 + i32.load8_u + local.set $3 + i32.const 2 + global.set $~argumentsLength + local.get $2 + local.get $3 + local.get $1 i32.load - local.tee $0 - i32.store - local.get $0 + call_indirect (type $i32_i32_=>_i32) + i32.const 0 + i32.lt_s if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - else - i32.const 8752 - local.set $0 + local.get $5 + local.get $3 + i32.store8 offset=1 + local.get $5 + local.get $2 + i32.store8 end - global.get $~lib/memory/__stack_pointer - i32.const 20 - i32.add - global.set $~lib/memory/__stack_pointer local.get $0 return end - i32.const 8752 - local.set $1 - global.get $~lib/memory/__stack_pointer - i32.const 8752 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 local.get $2 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 1 - i32.shr_u - local.set $6 - loop $for-loop|0 - local.get $4 - local.get $5 - i32.gt_s - if - global.get $~lib/memory/__stack_pointer - local.get $0 - local.get $5 - i32.const 2 - i32.shl - i32.add - i32.load - local.tee $3 - i32.store + i32.const 256 + i32.lt_s + if + local.get $2 + local.set $3 + local.get $1 + local.set $4 + loop $for-loop|0 local.get $3 - if - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $1 - local.get $3 - call $~lib/string/String.__concat - local.tee $1 - i32.store offset=8 - end local.get $6 + 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 $2 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer + local.get $5 + local.get $6 + i32.add + i32.load8_u + local.set $7 + local.get $6 + i32.const 1 + i32.sub + local.set $1 + loop $while-continue|1 + local.get $1 + i32.const 0 + i32.ge_s + if + block $while-break|1 + local.get $1 + local.get $5 + i32.add + i32.load8_u + local.set $8 + i32.const 2 + global.set $~argumentsLength + local.get $7 + local.get $8 + local.get $4 + i32.load + call_indirect (type $i32_i32_=>_i32) + i32.const 0 + i32.ge_s + br_if $while-break|1 + local.get $1 + local.tee $2 + i32.const 1 + i32.sub + local.set $1 + local.get $5 + local.get $2 + i32.const 1 + i32.add + i32.add + local.get $8 + i32.store8 + br $while-continue|1 + end + end + end + local.get $5 local.get $1 - local.get $2 - call $~lib/string/String.__concat - local.tee $1 - i32.store offset=8 + i32.const 1 + i32.add + i32.add + local.get $7 + i32.store8 + local.get $6 + i32.const 1 + i32.add + local.set $6 + br $for-loop|0 end - local.get $5 - i32.const 1 - i32.add - local.set $5 - br $for-loop|0 end + else + local.get $5 + local.get $2 + local.get $1 + call $~lib/util/sort/weakHeapSort end - global.get $~lib/memory/__stack_pointer local.get $0 - local.get $4 + ) + (func $~lib/array/Array<~lib/string/String>#push (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + local.get $0 + local.get $0 + i32.load offset=12 + local.tee $3 + i32.const 1 + i32.add + local.tee $2 + i32.const 2 + call $~lib/array/ensureSize + local.get $0 + i32.load offset=4 + local.get $3 i32.const 2 i32.shl i32.add - i32.load - local.tee $0 + local.get $1 i32.store local.get $0 - if - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $1 - local.get $0 - call $~lib/string/String.__concat - local.tee $1 - i32.store offset=8 - end - global.get $~lib/memory/__stack_pointer - i32.const 20 - i32.add - global.set $~lib/memory/__stack_pointer local.get $1 + i32.const 1 + call $~lib/rt/itcms/__link + local.get $0 + local.get $2 + i32.store offset=12 + local.get $2 ) - (func $~lib/array/Array<~lib/string/String|null>#join (param $0 i32) (param $1 i32) (result i32) + (func $std/array/ArrayU32#constructor@varargs (param $0 i32) (param $1 i32) (result i32) (local $2 i32) + (local $3 i32) + (local $4 i32) + block $1of1 + block $0of1 + block $outOfRange + global.get $~argumentsLength + br_table $0of1 $1of1 $outOfRange + end + unreachable + end + i32.const 0 + local.set $1 + end global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -11332,177 +8416,343 @@ i32.const 0 i32.store local.get $0 - i32.load offset=4 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.const 40 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + global.get $~lib/memory/__stack_pointer + 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 $0 - i32.load offset=12 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.const 7 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + local.get $0 + i32.const 0 + call $~lib/array/Array#set:buffer + local.get $0 + i32.const 0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store offset=8 + local.get $0 + i32.const 0 + i32.store offset=12 + local.get $1 + i32.const 268435455 + i32.gt_u + if + i32.const 1056 + i32.const 1104 + i32.const 58 + i32.const 60 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer local.get $1 + i32.const 2 + i32.shl + local.tee $3 + i32.const 0 + call $~lib/rt/itcms/__new + local.tee $2 + i32.store offset=4 + local.get $2 + i32.const 0 + local.get $3 + call $~lib/memory/memory.fill + local.get $0 + local.get $2 + call $~lib/array/Array#set:buffer + local.get $0 + local.get $2 + i32.store offset=4 + local.get $0 + local.get $3 + i32.store offset=8 + local.get $0 + local.get $1 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 i32.store - local.get $1 - call $~lib/util/string/joinReferenceArray<~lib/string/String|null> global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer + local.get $0 ) - (func $~lib/util/string/joinReferenceArray (param $0 i32) (param $1 i32) (result i32) + (func $std/array/ArrayU8#constructor@varargs (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) - (local $4 i32) - (local $5 i32) + block $1of1 + block $0of1 + block $outOfRange + global.get $~argumentsLength + br_table $0of1 $1of1 $outOfRange + end + unreachable + end + i32.const 0 + local.set $1 + end global.get $~lib/memory/__stack_pointer - i32.const 20 + i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=16 - local.get $1 - i32.const 1 - i32.sub - local.tee $2 i32.const 0 - i32.lt_s + i32.store + local.get $0 + i32.eqz if global.get $~lib/memory/__stack_pointer - i32.const 20 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 8752 - return + i32.const 16 + i32.const 41 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store end - local.get $2 + global.get $~lib/memory/__stack_pointer + 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 $0 i32.eqz if global.get $~lib/memory/__stack_pointer - local.get $0 - i32.load + i32.const 16 + i32.const 6 + call $~lib/rt/itcms/__new local.tee $0 i32.store - local.get $0 - if (result i32) - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - i32.const 11168 - else - i32.const 8752 - end - global.get $~lib/memory/__stack_pointer - i32.const 20 - i32.add - global.set $~lib/memory/__stack_pointer - return end - i32.const 8752 - local.set $1 - global.get $~lib/memory/__stack_pointer - i32.const 8752 + local.get $0 + i32.const 0 + call $~lib/array/Array#set:buffer + local.get $0 + i32.const 0 + i32.store offset=4 + local.get $0 + i32.const 0 i32.store offset=8 + local.get $0 + i32.const 0 + i32.store offset=12 + local.get $1 + i32.const 1073741820 + i32.gt_u + if + i32.const 1056 + i32.const 1104 + i32.const 58 + i32.const 60 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer - i32.const 9072 + local.get $1 + i32.const 0 + call $~lib/rt/itcms/__new + local.tee $2 i32.store offset=4 - i32.const 9068 - i32.load - i32.const 1 - i32.shr_u - local.set $5 - loop $for-loop|0 + local.get $2 + i32.const 0 + local.get $1 + call $~lib/memory/memory.fill + local.get $0 + local.get $2 + call $~lib/array/Array#set:buffer + local.get $0 + local.get $2 + i32.store offset=4 + local.get $0 + local.get $1 + i32.store offset=8 + local.get $0 + local.get $1 + i32.store offset=12 + 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 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + ) + (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 $~lib/array/Array~visit (param $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + local.get $0 + i32.load offset=4 + local.tee $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 - local.get $3 - i32.gt_s + i32.lt_u if - global.get $~lib/memory/__stack_pointer - local.get $0 - local.get $3 - i32.const 2 - i32.shl - i32.add + local.get $1 i32.load - local.tee $4 - i32.store - local.get $4 + local.tee $3 if - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - i32.const 11168 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.const 11168 - call $~lib/string/String.__concat - local.tee $1 - i32.store offset=8 + local.get $3 + call $~lib/rt/itcms/__visit end - local.get $5 - if - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 9072 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.const 9072 - call $~lib/string/String.__concat - local.tee $1 - i32.store offset=8 + local.get $1 + i32.const 4 + i32.add + local.set $1 + br $while-continue|0 + end + end + local.get $0 + i32.load + call $~lib/rt/itcms/__visit + ) + (func $~lib/rt/__visit_members (param $0 i32) + block $folding-inner4 + block $folding-inner3 + block $folding-inner2 + block $folding-inner1 + block $folding-inner0 + block $invalid + block $std/array/ArrayStr + block $std/array/Proxy + block $std/array/Ref + block $~lib/string/String + block $~lib/arraybuffer/ArrayBuffer + local.get $0 + i32.const 8 + i32.sub + i32.load + br_table $~lib/arraybuffer/ArrayBuffer $~lib/string/String $folding-inner4 $folding-inner0 $std/array/Ref $folding-inner4 $folding-inner0 $folding-inner0 $folding-inner1 $folding-inner0 $folding-inner0 $folding-inner1 $folding-inner2 $folding-inner2 $folding-inner2 $folding-inner2 $folding-inner2 $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-inner1 $folding-inner2 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner3 $folding-inner3 $std/array/ArrayStr $folding-inner2 $invalid + end + return + end + return + end + return + end + return + end + local.get $0 + call $~lib/array/Array~visit + return + end + unreachable + 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 $3 - i32.const 1 - i32.add - local.set $3 - br $for-loop|0 + local.get $0 + i32.load offset=4 + 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 local.get $0 - local.get $2 - i32.const 2 - i32.shl - i32.add i32.load local.tee $0 - i32.store - local.get $0 if - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - i32.const 11168 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.const 11168 - call $~lib/string/String.__concat - local.tee $1 - i32.store offset=8 + call $~lib/rt/itcms/__visit + end + ) + (func $~setArgumentsLength (param $0 i32) + local.get $0 + global.set $~argumentsLength + ) + (func $~start + global.get $~started + if + return end + i32.const 1 + global.set $~started + call $start:std/array + ) + (func $~stack_check global.get $~lib/memory/__stack_pointer - i32.const 20 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $1 + i32.const 13620 + i32.lt_s + if + i32.const 30032 + i32.const 30080 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end ) - (func $~lib/array/Array#join (param $0 i32) (result i32) - (local $1 i32) + (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 4 i32.sub @@ -11512,187 +8762,192 @@ i32.const 0 i32.store local.get $0 - i32.load offset=4 - local.get $0 - i32.load offset=12 + local.get $1 + call $~lib/array/Array#sort + local.set $0 global.get $~lib/memory/__stack_pointer - i32.const 9072 + local.get $0 i32.store - call $~lib/util/string/joinReferenceArray + block $__inlined_func$std/array/isSorted (result i32) + i32.const 1 + local.set $2 + local.get $0 + i32.load offset=12 + 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 1 + i32.sub + call $~lib/array/Array#__get + local.set $4 + local.get $0 + local.get $2 + call $~lib/array/Array#__get + local.set $5 + i32.const 2 + global.set $~argumentsLength + i32.const 0 + local.get $4 + local.get $5 + local.get $1 + i32.load + call_indirect (type $i32_i32_=>_i32) + i32.const 0 + i32.gt_s + br_if $__inlined_func$std/array/isSorted + drop + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|0 + end + end + i32.const 1 + end + i32.eqz + if + i32.const 0 + i32.const 1552 + i32.const 942 + 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 $~lib/array/Array#toString (param $0 i32) (result i32) + (func $std/array/assertSortedDefault (param $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 - global.get $~lib/memory/__stack_pointer - local.get $0 + i32.const 0 i32.store global.get $~lib/memory/__stack_pointer - i32.const 9072 - i32.store offset=4 + i32.const 8336 + i32.store local.get $0 - i32.const 9072 - call $~lib/array/Array#join + i32.const 8336 + call $std/array/assertSorted global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/util/string/joinIntegerArray (param $0 i32) (param $1 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) - (local $6 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 $1 - i32.const 1 - i32.sub - local.tee $3 i32.const 0 - i32.lt_s - if + i32.store + local.get $0 + local.get $1 + call $~lib/array/Array<~lib/array/Array>#sort + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + block $__inlined_func$std/array/isSorted<~lib/array/Array> (result i32) global.get $~lib/memory/__stack_pointer i32.const 8 - i32.add + i32.sub global.set $~lib/memory/__stack_pointer - i32.const 8752 - return - end - block $folding-inner0 - local.get $3 - i32.eqz - if - local.get $0 - i32.load8_s - call $~lib/util/number/itoa32 - local.set $0 - br $folding-inner0 - end - global.get $~lib/memory/__stack_pointer - i32.const 9072 - i32.store + call $~stack_check global.get $~lib/memory/__stack_pointer - local.get $3 - i32.const 9068 - i32.load - i32.const 1 - i32.shr_u - local.tee $4 - i32.const 11 - i32.add - i32.mul - i32.const 11 - i32.add - local.tee $6 - i32.const 1 - i32.shl + i64.const 0 + i64.store i32.const 1 - call $~lib/rt/itcms/__new - local.tee $1 - i32.store offset=4 + local.set $2 + local.get $0 + i32.load offset=12 + local.set $5 loop $for-loop|0 - local.get $3 + local.get $2 local.get $5 - i32.gt_s + i32.lt_s if - local.get $1 + local.get $0 local.get $2 i32.const 1 - i32.shl - i32.add + i32.sub + call $~lib/array/Array#__get + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store local.get $0 - local.get $5 - i32.add - i32.load8_s - call $~lib/util/number/itoa_buffered local.get $2 - i32.add - local.set $2 + call $~lib/array/Array#__get + local.set $4 + global.get $~lib/memory/__stack_pointer local.get $4 - if - local.get $1 - local.get $2 - i32.const 1 - i32.shl - i32.add - i32.const 9072 - local.get $4 - i32.const 1 - i32.shl - call $~lib/memory/memory.copy - local.get $2 - local.get $4 + i32.store offset=4 + i32.const 2 + global.set $~argumentsLength + local.get $3 + local.get $4 + local.get $1 + i32.load + call_indirect (type $i32_i32_=>_i32) + i32.const 0 + i32.gt_s + if + global.get $~lib/memory/__stack_pointer + i32.const 8 i32.add - local.set $2 + global.set $~lib/memory/__stack_pointer + i32.const 0 + br $__inlined_func$std/array/isSorted<~lib/array/Array> end - local.get $5 + local.get $2 i32.const 1 i32.add - local.set $5 + local.set $2 br $for-loop|0 end end - local.get $6 - local.get $1 - local.get $2 - i32.const 1 - i32.shl - i32.add - local.get $0 - local.get $3 - i32.add - i32.load8_s - 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 $1 - i32.store - local.get $1 - local.get $0 - 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 - local.get $1 - return + i32.const 1 + end + i32.eqz + if + i32.const 0 + i32.const 1552 + i32.const 942 + i32.const 3 + call $~lib/builtins/abort + unreachable end 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/string/joinIntegerArray (param $0 i32) (param $1 i32) (result i32) + (func $std/array/createReverseOrderedElementsArray (result i32) + (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 8 i32.sub @@ -11701,172 +8956,248 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - local.get $1 - i32.const 1 + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 8 i32.sub - local.tee $3 + 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 16 + i32.const 25 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + local.get $0 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 8752 - return - end - block $folding-inner0 - local.get $3 - i32.eqz + call $~lib/array/Array#set:buffer + local.get $0 + i32.const 0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store offset=8 + local.get $0 + i32.const 0 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 2048 + i32.const 0 + call $~lib/rt/itcms/__new + local.tee $1 + i32.store offset=4 + local.get $1 + i32.const 0 + i32.const 2048 + call $~lib/memory/memory.fill + local.get $0 + local.get $1 + call $~lib/array/Array#set:buffer + local.get $0 + local.get $1 + i32.store offset=4 + local.get $0 + i32.const 2048 + i32.store offset=8 + local.get $0 + i32.const 512 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + i32.store + loop $for-loop|0 + local.get $2 + i32.const 512 + i32.lt_s if + 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 + i32.const 4 + i32.const 24 + call $~lib/rt/itcms/__new + local.tee $1 + i32.store + local.get $1 + i32.const 511 + local.get $2 + i32.sub + 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 + local.get $1 + i32.store offset=4 local.get $0 - i32.load16_u - call $~lib/util/number/utoa32 - local.set $0 - br $folding-inner0 + local.get $2 + local.get $1 + call $~lib/array/Array<~lib/array/Array>#__set + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|0 end - global.get $~lib/memory/__stack_pointer - i32.const 9072 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.const 9068 - i32.load - i32.const 1 - i32.shr_u - local.tee $4 - i32.const 10 - i32.add - i32.mul - i32.const 10 - i32.add - local.tee $6 - i32.const 1 - i32.shl - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $1 - i32.store offset=4 - loop $for-loop|0 - local.get $3 - local.get $5 - i32.gt_s - if - local.get $1 - local.get $2 - i32.const 1 - i32.shl - i32.add - local.get $0 - local.get $5 - i32.const 1 - i32.shl - i32.add - i32.load16_u - call $~lib/util/number/itoa_buffered - local.get $2 - i32.add - local.set $2 - local.get $4 - if - local.get $1 - local.get $2 - i32.const 1 - i32.shl - i32.add - i32.const 9072 - local.get $4 - i32.const 1 - i32.shl - call $~lib/memory/memory.copy - local.get $2 - local.get $4 - i32.add - local.set $2 - end - local.get $5 - i32.const 1 - i32.add - local.set $5 - 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 $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 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 + local.get $0 + i32.const 8912 + local.get $0 + select + local.tee $2 + i32.store + 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 $__inlined_func$~lib/string/String#concat + local.get $1 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 8912 + i32.store + i32.const 8912 + local.set $1 end - local.get $6 local.get $1 - local.get $2 + i32.const 20 + i32.sub + i32.load offset=16 i32.const 1 - i32.shl - i32.add - local.get $0 - local.get $3 + i32.shr_u i32.const 1 i32.shl - i32.add - i32.load16_u - call $~lib/util/number/itoa_buffered + local.tee $4 local.get $2 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u + i32.const 1 + i32.shl + local.tee $3 i32.add local.tee $0 - i32.gt_s + i32.eqz if global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $1 - local.get $0 - call $~lib/string/String#substring + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 8752 local.set $0 - br $folding-inner0 + br $__inlined_func$~lib/string/String#concat end global.get $~lib/memory/__stack_pointer + local.get $0 + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store offset=4 + local.get $0 + local.get $2 + local.get $3 + call $~lib/memory/memory.copy + local.get $0 + local.get $3 + i32.add + local.get $1 + local.get $4 + call $~lib/memory/memory.copy + global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 - return end global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer local.get $0 ) - (func $~lib/util/string/joinIntegerArray (param $0 i32) (param $1 i32) (result i32) + (func $std/array/createRandomString (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) + (local $6 f64) 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 - local.get $1 - i32.const 1 - i32.sub - local.tee $4 + 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 8752 - return - end - block $folding-inner0 - local.get $4 - i32.eqz + i32.store offset=8 + i32.const 8752 + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 8752 + i32.store + loop $for-loop|0 + local.get $0 + local.get $3 + i32.gt_s if - local.get $0 - i64.load - local.set $3 + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 7312 + i32.store offset=4 + call $~lib/math/NativeMath.random + global.get $~lib/memory/__stack_pointer + i32.const 7312 + i32.store offset=8 + i32.const 7308 + i32.load + i32.const 1 + i32.shr_u + f64.convert_i32_s + f64.mul + f64.floor + i32.trunc_f64_s + local.set $4 global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -11875,183 +9206,78 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - block $__inlined_func$~lib/util/number/utoa64 - 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 9376 - local.set $0 - br $__inlined_func$~lib/util/number/utoa64 - end - local.get $3 - i64.const 4294967295 - i64.le_u - if - local.get $3 - i32.wrap_i64 - local.tee $2 - call $~lib/util/number/decimalCount32 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.const 1 - i32.shl - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - local.get $0 - local.get $2 - local.get $1 - call $~lib/util/number/utoa_dec_simple - else - local.get $3 - call $~lib/util/number/decimalCount64High - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.const 1 - i32.shl - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - local.get $0 - local.get $3 - local.get $1 - call $~lib/util/number/utoa_dec_simple - end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - end - br $folding-inner0 - end - global.get $~lib/memory/__stack_pointer - i32.const 9072 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.const 9068 - i32.load - i32.const 1 - i32.shr_u - local.tee $5 - i32.const 20 - i32.add - i32.mul - i32.const 20 - i32.add - local.tee $7 - i32.const 1 - i32.shl - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $1 - i32.store offset=4 - loop $for-loop|0 - local.get $4 - local.get $6 - i32.gt_s - if - local.get $1 - local.get $2 + block $__inlined_func$~lib/string/String#charAt + local.get $4 + i32.const 7308 + i32.load i32.const 1 - i32.shl - i32.add - local.get $0 - local.get $6 - 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 $5 + i32.shr_u + i32.ge_u if - local.get $1 - local.get $2 - i32.const 1 - i32.shl - i32.add - i32.const 9072 - local.get $5 - i32.const 1 - i32.shl - call $~lib/memory/memory.copy - local.get $2 - local.get $5 + global.get $~lib/memory/__stack_pointer + i32.const 4 i32.add - local.set $2 + global.set $~lib/memory/__stack_pointer + i32.const 8752 + local.set $1 + br $__inlined_func$~lib/string/String#charAt end - local.get $6 + global.get $~lib/memory/__stack_pointer + i32.const 2 + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $1 + i32.store + local.get $1 + local.get $4 i32.const 1 + i32.shl + i32.const 7312 i32.add - local.set $6 - br $for-loop|0 + i32.load16_u + i32.store16 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer end - end - local.get $7 - local.get $1 - 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.tee $0 - i32.gt_s - if global.get $~lib/memory/__stack_pointer local.get $1 - i32.store + i32.store offset=4 + local.get $2 local.get $1 - local.get $0 - call $~lib/string/String#substring - local.set $0 - br $folding-inner0 + call $~lib/string/String.__concat + local.tee $2 + 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 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $1 - return end global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 + local.get $2 ) - (func $~lib/util/string/joinIntegerArray (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) + (func $~lib/util/string/joinReferenceArray<~lib/string/String|null> (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.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 $1 i32.const 1 i32.sub @@ -12060,161 +9286,118 @@ i32.lt_s if global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 12 i32.add global.set $~lib/memory/__stack_pointer i32.const 8752 return end - block $folding-inner0 - local.get $3 - i32.eqz - if - local.get $0 - i64.load - i32.wrap_i64 - i64.extend_i32_s - call $~lib/util/number/itoa64 - local.set $0 - br $folding-inner0 - end + local.get $3 + i32.eqz + if global.get $~lib/memory/__stack_pointer - i32.const 9072 + local.get $0 + i32.load + local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - local.get $3 - i32.const 9068 - i32.load - i32.const 1 - i32.shr_u - local.tee $4 - i32.const 21 - i32.add - i32.mul - i32.const 21 - i32.add - local.tee $6 - i32.const 1 - i32.shl - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $1 - i32.store offset=4 - loop $for-loop|0 - local.get $3 - local.get $5 - i32.gt_s - if - local.get $1 - local.get $2 - i32.const 1 - i32.shl - i32.add - local.get $0 - local.get $5 - 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 $4 - if - local.get $1 - local.get $2 - i32.const 1 - i32.shl - i32.add - i32.const 9072 - local.get $4 - i32.const 1 - i32.shl - call $~lib/memory/memory.copy - local.get $2 - local.get $4 - i32.add - local.set $2 - end - local.get $5 - i32.const 1 - i32.add - local.set $5 - br $for-loop|0 - end - end - local.get $6 - local.get $1 - local.get $2 - i32.const 1 - i32.shl + i32.const 12 i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + i32.const 8752 local.get $0 + select + return + end + i32.const 8752 + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 8752 + i32.store offset=4 + local.get $2 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u + local.set $6 + loop $for-loop|0 local.get $3 - 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 $4 i32.gt_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 $0 - br $folding-inner0 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load + local.tee $5 + i32.store + local.get $5 + if + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $1 + local.get $5 + call $~lib/string/String.__concat + local.tee $1 + i32.store offset=4 + end + local.get $6 + if + global.get $~lib/memory/__stack_pointer + local.get $1 + local.get $2 + call $~lib/string/String.__concat + local.tee $1 + i32.store offset=4 + end + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $for-loop|0 end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $1 - return end global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - ) - (func $~lib/array/Array<~lib/string/String|null>#toString (param $0 i32) (result 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 - global.get $~lib/memory/__stack_pointer local.get $0 + local.get $3 + i32.const 2 + i32.shl + i32.add + i32.load + local.tee $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 9072 - i32.store offset=4 local.get $0 - i32.const 9072 - call $~lib/array/Array<~lib/string/String|null>#join + if + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $1 + local.get $0 + call $~lib/string/String.__concat + local.tee $1 + i32.store offset=4 + end global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 12 i32.add global.set $~lib/memory/__stack_pointer + local.get $1 ) - (func $~lib/util/string/joinReferenceArray<~lib/array/Array> (param $0 i32) (param $1 i32) (result i32) + (func $~lib/util/string/joinReferenceArray (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 20 + i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check @@ -12222,26 +9405,23 @@ 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 0 - i32.store offset=16 + i32.store offset=8 local.get $1 i32.const 1 i32.sub - local.tee $3 + local.tee $2 i32.const 0 i32.lt_s if global.get $~lib/memory/__stack_pointer - i32.const 20 + i32.const 12 i32.add global.set $~lib/memory/__stack_pointer i32.const 8752 return end - local.get $3 + local.get $2 i32.eqz if global.get $~lib/memory/__stack_pointer @@ -12249,95 +9429,71 @@ 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 8752 - end global.get $~lib/memory/__stack_pointer - i32.const 20 + i32.const 12 i32.add global.set $~lib/memory/__stack_pointer + i32.const 11168 + i32.const 8752 + local.get $0 + select return end i32.const 8752 local.set $1 global.get $~lib/memory/__stack_pointer i32.const 8752 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 9072 i32.store offset=4 i32.const 9068 i32.load i32.const 1 i32.shr_u - local.set $5 + local.set $4 loop $for-loop|0 + local.get $2 local.get $3 - local.get $4 i32.gt_s if global.get $~lib/memory/__stack_pointer local.get $0 - local.get $4 + local.get $3 i32.const 2 i32.shl i32.add i32.load - local.tee $2 + local.tee $5 i32.store - local.get $2 + local.get $5 if global.get $~lib/memory/__stack_pointer + i32.const 11168 + 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=16 - local.get $2 - call $~lib/array/Array#toString - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=12 - local.get $1 - local.get $2 + i32.const 11168 call $~lib/string/String.__concat local.tee $1 - i32.store offset=8 + i32.store offset=4 end - local.get $5 + local.get $4 if - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 9072 - i32.store offset=12 global.get $~lib/memory/__stack_pointer local.get $1 i32.const 9072 call $~lib/string/String.__concat local.tee $1 - i32.store offset=8 + i32.store offset=4 end - local.get $4 + local.get $3 i32.const 1 i32.add - local.set $4 + local.set $3 br $for-loop|0 end end global.get $~lib/memory/__stack_pointer local.get $0 - local.get $3 + local.get $2 i32.const 2 i32.shl i32.add @@ -12347,174 +9503,45 @@ local.get $0 if global.get $~lib/memory/__stack_pointer + i32.const 11168 + 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 $0 - i32.store offset=16 - local.get $0 - call $~lib/array/Array#toString - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=12 - local.get $1 - local.get $0 + i32.const 11168 call $~lib/string/String.__concat local.tee $1 - i32.store offset=8 + i32.store offset=4 end global.get $~lib/memory/__stack_pointer - i32.const 20 + i32.const 12 i32.add global.set $~lib/memory/__stack_pointer local.get $1 ) - (func $~lib/util/string/joinIntegerArray (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) + (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 call $~stack_check global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - 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 8752 - return - end - block $folding-inner0 - local.get $4 - i32.eqz - if - local.get $0 - i32.load8_u - call $~lib/util/number/utoa32 - local.set $0 - br $folding-inner0 - end - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $4 - local.get $2 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 1 - i32.shr_u - local.tee $5 - i32.const 10 - i32.add - i32.mul - i32.const 10 - i32.add - local.tee $7 - i32.const 1 - i32.shl - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $1 - i32.store offset=4 - loop $for-loop|0 - local.get $4 - local.get $6 - i32.gt_s - if - local.get $1 - local.get $3 - i32.const 1 - i32.shl - i32.add - local.get $0 - local.get $6 - i32.add - i32.load8_u - call $~lib/util/number/itoa_buffered - local.get $3 - i32.add - local.set $3 - local.get $5 - if - local.get $1 - local.get $3 - i32.const 1 - i32.shl - i32.add - local.get $2 - local.get $5 - i32.const 1 - i32.shl - call $~lib/memory/memory.copy - local.get $3 - local.get $5 - i32.add - local.set $3 - end - local.get $6 - i32.const 1 - i32.add - local.set $6 - br $for-loop|0 - end - end - local.get $7 - local.get $1 - local.get $3 - i32.const 1 - i32.shl - i32.add - local.get $0 - local.get $4 - i32.add - i32.load8_u - call $~lib/util/number/itoa_buffered - local.get $3 - i32.add - local.tee $0 - i32.gt_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 $0 - br $folding-inner0 - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $1 - return - end + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 9072 + i32.store + local.get $0 + i32.load offset=4 + local.get $0 + i32.load offset=12 + i32.const 9072 + call $~lib/util/string/joinIntegerArray 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/array/Array#join (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) + (func $~lib/array/Array<~lib/string/String|null>#toString (param $0 i32) (result i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -12523,23 +9550,28 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store + global.get $~lib/memory/__stack_pointer + i32.const 9072 + i32.store local.get $0 i32.load 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/string/joinIntegerArray + i32.const 9072 + call $~lib/util/string/joinReferenceArray<~lib/string/String|null> 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/string/joinReferenceArray<~lib/array/Array> (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.const 12 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check @@ -12547,16 +9579,148 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + local.get $1 + i32.const 1 + i32.sub + local.tee $2 + i32.const 0 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 8752 + return + end + local.get $2 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.load + local.tee $0 + i32.store + local.get $0 + if (result i32) + local.get $0 + call $~lib/array/Array#toString + else + i32.const 8752 + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + return + end + i32.const 8752 + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 8752 + i32.store offset=4 + i32.const 9068 + i32.load + i32.const 1 + i32.shr_u + local.set $5 + loop $for-loop|0 + local.get $2 + 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 $3 + i32.store + local.get $3 + if + global.get $~lib/memory/__stack_pointer + local.get $3 + call $~lib/array/Array#toString + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=8 + local.get $1 + local.get $3 + call $~lib/string/String.__concat + local.tee $1 + i32.store offset=4 + end + local.get $5 + if + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.const 9072 + call $~lib/string/String.__concat + local.tee $1 + i32.store offset=4 + end + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $for-loop|0 + end + end + global.get $~lib/memory/__stack_pointer + local.get $0 + local.get $2 + i32.const 2 + i32.shl + i32.add + i32.load + local.tee $0 + i32.store local.get $0 + if + global.get $~lib/memory/__stack_pointer + local.get $0 + call $~lib/array/Array#toString + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $1 + local.get $0 + call $~lib/string/String.__concat + local.tee $1 + i32.store offset=4 + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (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 + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 i32.store global.get $~lib/memory/__stack_pointer i32.const 9072 - i32.store offset=4 + i32.store + local.get $0 + i32.load offset=4 local.get $0 + i32.load offset=12 i32.const 9072 - call $~lib/array/Array#join + call $~lib/util/string/joinIntegerArray global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer ) @@ -12567,7 +9731,7 @@ (local $5 i32) (local $6 i32) global.get $~lib/memory/__stack_pointer - i32.const 20 + i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check @@ -12575,26 +9739,23 @@ 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 0 - i32.store offset=16 + i32.store offset=8 local.get $1 i32.const 1 i32.sub - local.tee $3 + local.tee $2 i32.const 0 i32.lt_s if global.get $~lib/memory/__stack_pointer - i32.const 20 + i32.const 12 i32.add global.set $~lib/memory/__stack_pointer i32.const 8752 return end - local.get $3 + local.get $2 i32.eqz if global.get $~lib/memory/__stack_pointer @@ -12604,16 +9765,13 @@ 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 8752 end global.get $~lib/memory/__stack_pointer - i32.const 20 + i32.const 12 i32.add global.set $~lib/memory/__stack_pointer return @@ -12622,9 +9780,6 @@ local.set $1 global.get $~lib/memory/__stack_pointer i32.const 8752 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 9072 i32.store offset=4 i32.const 9068 i32.load @@ -12632,7 +9787,7 @@ i32.shr_u local.set $5 loop $for-loop|0 - local.get $3 + local.get $2 local.get $4 i32.gt_s if @@ -12643,43 +9798,31 @@ i32.shl i32.add i32.load - local.tee $2 + local.tee $3 i32.store - local.get $2 + local.get $3 if 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 - local.get $2 - i32.store offset=16 - local.get $2 + local.get $3 call $~lib/array/Array#toString - local.set $2 + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=12 + local.get $3 + i32.store offset=8 local.get $1 - local.get $2 + local.get $3 call $~lib/string/String.__concat local.tee $1 - i32.store offset=8 + i32.store offset=4 end local.get $5 if - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 9072 - i32.store offset=12 global.get $~lib/memory/__stack_pointer local.get $1 i32.const 9072 call $~lib/string/String.__concat local.tee $1 - i32.store offset=8 + i32.store offset=4 end local.get $4 i32.const 1 @@ -12690,7 +9833,7 @@ end global.get $~lib/memory/__stack_pointer local.get $0 - local.get $3 + local.get $2 i32.const 2 i32.shl i32.add @@ -12700,50 +9843,44 @@ local.get $0 if 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 - local.get $0 - i32.store offset=16 local.get $0 call $~lib/array/Array#toString local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=12 + i32.store offset=8 local.get $1 local.get $0 call $~lib/string/String.__concat local.tee $1 - i32.store offset=8 + i32.store offset=4 end global.get $~lib/memory/__stack_pointer - i32.const 20 + i32.const 12 i32.add global.set $~lib/memory/__stack_pointer local.get $1 ) (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 call $~stack_check 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 i32.const 9072 - i32.store offset=4 + i32.store + local.get $0 + i32.load offset=4 local.get $0 + i32.load offset=12 i32.const 9072 - call $~lib/array/Array#join + call $~lib/util/string/joinIntegerArray global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer ) @@ -12754,7 +9891,7 @@ (local $5 i32) (local $6 i32) global.get $~lib/memory/__stack_pointer - i32.const 20 + i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check @@ -12762,26 +9899,23 @@ 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 0 - i32.store offset=16 + i32.store offset=8 local.get $1 i32.const 1 i32.sub - local.tee $3 + local.tee $2 i32.const 0 i32.lt_s if global.get $~lib/memory/__stack_pointer - i32.const 20 + i32.const 12 i32.add global.set $~lib/memory/__stack_pointer i32.const 8752 return end - local.get $3 + local.get $2 i32.eqz if global.get $~lib/memory/__stack_pointer @@ -12791,16 +9925,13 @@ 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 8752 end global.get $~lib/memory/__stack_pointer - i32.const 20 + i32.const 12 i32.add global.set $~lib/memory/__stack_pointer return @@ -12809,9 +9940,6 @@ local.set $1 global.get $~lib/memory/__stack_pointer i32.const 8752 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 9072 i32.store offset=4 i32.const 9068 i32.load @@ -12819,7 +9947,7 @@ i32.shr_u local.set $5 loop $for-loop|0 - local.get $3 + local.get $2 local.get $4 i32.gt_s if @@ -12830,43 +9958,31 @@ i32.shl i32.add i32.load - local.tee $2 + local.tee $3 i32.store - local.get $2 + local.get $3 if 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 - local.get $2 - i32.store offset=16 - local.get $2 + local.get $3 call $~lib/array/Array#toString - local.set $2 + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=12 + local.get $3 + i32.store offset=8 local.get $1 - local.get $2 + local.get $3 call $~lib/string/String.__concat local.tee $1 - i32.store offset=8 + i32.store offset=4 end local.get $5 if - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 9072 - i32.store offset=12 global.get $~lib/memory/__stack_pointer local.get $1 i32.const 9072 call $~lib/string/String.__concat local.tee $1 - i32.store offset=8 + i32.store offset=4 end local.get $4 i32.const 1 @@ -12877,7 +9993,7 @@ end global.get $~lib/memory/__stack_pointer local.get $0 - local.get $3 + local.get $2 i32.const 2 i32.shl i32.add @@ -12887,70 +10003,45 @@ local.get $0 if 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 - local.get $0 - i32.store offset=16 local.get $0 call $~lib/array/Array#toString local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=12 + i32.store offset=8 local.get $1 local.get $0 call $~lib/string/String.__concat local.tee $1 - i32.store offset=8 + i32.store offset=4 end global.get $~lib/memory/__stack_pointer - i32.const 20 + i32.const 12 i32.add global.set $~lib/memory/__stack_pointer local.get $1 ) (func $~lib/array/Array<~lib/array/Array>#toString (param $0 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 - global.get $~lib/memory/__stack_pointer - local.get $0 + i32.const 0 i32.store global.get $~lib/memory/__stack_pointer i32.const 9072 - i32.store offset=4 - 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 $0 i32.load offset=4 local.get $0 i32.load offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 9072 - i32.store call $~lib/util/string/joinReferenceArray<~lib/array/Array> 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 ) (func $~lib/util/string/joinReferenceArray<~lib/array/Array<~lib/array/Array>> (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -12959,7 +10050,7 @@ (local $5 i32) (local $6 i32) global.get $~lib/memory/__stack_pointer - i32.const 20 + i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check @@ -12967,26 +10058,23 @@ 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 0 - i32.store offset=16 + i32.store offset=8 local.get $1 i32.const 1 i32.sub - local.tee $3 + local.tee $2 i32.const 0 i32.lt_s if global.get $~lib/memory/__stack_pointer - i32.const 20 + i32.const 12 i32.add global.set $~lib/memory/__stack_pointer i32.const 8752 return end - local.get $3 + local.get $2 i32.eqz if global.get $~lib/memory/__stack_pointer @@ -12996,16 +10084,13 @@ 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<~lib/array/Array>#toString else i32.const 8752 end global.get $~lib/memory/__stack_pointer - i32.const 20 + i32.const 12 i32.add global.set $~lib/memory/__stack_pointer return @@ -13014,9 +10099,6 @@ local.set $1 global.get $~lib/memory/__stack_pointer i32.const 8752 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 9072 i32.store offset=4 i32.const 9068 i32.load @@ -13024,7 +10106,7 @@ i32.shr_u local.set $5 loop $for-loop|0 - local.get $3 + local.get $2 local.get $4 i32.gt_s if @@ -13035,43 +10117,31 @@ i32.shl i32.add i32.load - local.tee $2 + local.tee $3 i32.store - local.get $2 + local.get $3 if 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 - local.get $2 - i32.store offset=16 - local.get $2 + local.get $3 call $~lib/array/Array<~lib/array/Array>#toString - local.set $2 + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=12 + local.get $3 + i32.store offset=8 local.get $1 - local.get $2 + local.get $3 call $~lib/string/String.__concat local.tee $1 - i32.store offset=8 + i32.store offset=4 end local.get $5 if - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 9072 - i32.store offset=12 global.get $~lib/memory/__stack_pointer local.get $1 i32.const 9072 call $~lib/string/String.__concat local.tee $1 - i32.store offset=8 + i32.store offset=4 end local.get $4 i32.const 1 @@ -13082,7 +10152,7 @@ end global.get $~lib/memory/__stack_pointer local.get $0 - local.get $3 + local.get $2 i32.const 2 i32.shl i32.add @@ -13092,26 +10162,20 @@ local.get $0 if 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 - local.get $0 - i32.store offset=16 local.get $0 call $~lib/array/Array<~lib/array/Array>#toString local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=12 + i32.store offset=8 local.get $1 local.get $0 call $~lib/string/String.__concat local.tee $1 - i32.store offset=8 + i32.store offset=4 end global.get $~lib/memory/__stack_pointer - i32.const 20 + i32.const 12 i32.add global.set $~lib/memory/__stack_pointer local.get $1 @@ -13122,12 +10186,12 @@ (local $2 i32) (local $3 i32) (local $4 i32) - (local $5 i32) - (local $6 i32) + (local $5 f32) + (local $6 f64) (local $7 i32) (local $8 i32) - (local $9 f32) - (local $10 f64) + (local $9 i32) + (local $10 i32) (local $11 i32) global.get $~lib/memory/__stack_pointer i32.const 72 @@ -13180,23 +10244,20 @@ local.get $0 i32.store 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 global.get $~lib/memory/__stack_pointer i32.const 12 i32.const 5 call $~lib/rt/itcms/__new - local.tee $0 + local.tee $1 i32.store 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 i32.const 8 i32.sub @@ -13205,56 +10266,56 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - local.get $0 + local.get $1 i32.eqz if global.get $~lib/memory/__stack_pointer i32.const 12 i32.const 2 call $~lib/rt/itcms/__new - local.tee $0 + local.tee $1 i32.store end - local.get $0 + local.get $1 i32.const 0 call $~lib/array/Array#set:buffer - local.get $0 + 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/memory/__stack_pointer i32.const 1 i32.const 0 call $~lib/rt/itcms/__new - local.tee $1 + local.tee $0 i32.store offset=4 - local.get $1 + local.get $0 i32.const 0 i32.const 1 call $~lib/memory/memory.fill - local.get $0 local.get $1 - call $~lib/array/Array#set:buffer local.get $0 + call $~lib/array/Array#set:buffer local.get $1 - i32.store offset=4 local.get $0 + i32.store offset=4 + local.get $1 i32.const 1 i32.store offset=8 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store 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 + local.get $1 i32.store global.get $~lib/memory/__stack_pointer i32.const 1664 @@ -13281,18 +10342,12 @@ call $~lib/rt/__newArray local.tee $0 i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store local.get $0 i32.const 1 i32.const 1 i32.const 3 call $~lib/array/Array#fill drop - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store i32.const 5 i32.const 0 i32.const 6 @@ -13314,18 +10369,12 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store local.get $0 i32.const 0 i32.const 0 i32.const 2147483647 call $~lib/array/Array#fill drop - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store i32.const 5 i32.const 0 i32.const 6 @@ -13347,18 +10396,12 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store local.get $0 i32.const 1 i32.const 0 i32.const -3 call $~lib/array/Array#fill drop - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store i32.const 5 i32.const 0 i32.const 6 @@ -13380,18 +10423,12 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store local.get $0 i32.const 2 i32.const -2 i32.const 2147483647 call $~lib/array/Array#fill drop - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store i32.const 5 i32.const 0 i32.const 6 @@ -13413,18 +10450,12 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store local.get $0 i32.const 0 i32.const 1 i32.const 0 call $~lib/array/Array#fill drop - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store i32.const 5 i32.const 0 i32.const 6 @@ -13454,18 +10485,12 @@ call $~lib/rt/__newArray local.tee $0 i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store local.get $0 i32.const 1 i32.const 1 i32.const 3 call $~lib/array/Array#fill drop - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store i32.const 5 i32.const 2 i32.const 7 @@ -13487,18 +10512,12 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store local.get $0 i32.const 0 i32.const 0 i32.const 2147483647 call $~lib/array/Array#fill drop - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store i32.const 5 i32.const 2 i32.const 7 @@ -13520,18 +10539,12 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store local.get $0 i32.const 1 i32.const 0 i32.const -3 call $~lib/array/Array#fill drop - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store i32.const 5 i32.const 2 i32.const 7 @@ -13553,18 +10566,12 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store local.get $0 i32.const 2 i32.const -2 i32.const 2147483647 call $~lib/array/Array#fill drop - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store i32.const 5 i32.const 2 i32.const 7 @@ -13586,18 +10593,12 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store local.get $0 i32.const 0 i32.const 1 i32.const 0 call $~lib/array/Array#fill drop - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store i32.const 5 i32.const 2 i32.const 7 @@ -13997,15 +10998,9 @@ call $~lib/array/Array#__uset local.get $0 i32.store offset=16 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store local.get $0 i32.const 0 call $~lib/array/Array#set:length - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store local.get $0 i32.load offset=12 if @@ -14024,9 +11019,6 @@ call $~lib/rt/__newArray local.tee $0 i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store local.get $0 i32.const 0 call $~lib/array/Array#at @@ -14040,9 +11032,6 @@ 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#at @@ -14056,9 +11045,6 @@ 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#at @@ -14072,9 +11058,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store local.get $0 i32.const -4 call $~lib/array/Array#at @@ -14098,9 +11081,6 @@ local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer local.get $0 local.get $1 call $~lib/array/Array#concat @@ -14138,9 +11118,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store local.get $0 i32.load offset=12 i32.const 3 @@ -14153,9 +11130,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store i32.const 0 i32.const 2 i32.const 3 @@ -14185,9 +11159,6 @@ 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 @@ -14201,9 +11172,6 @@ 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 @@ -14217,9 +11185,6 @@ 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 @@ -14233,16 +11198,10 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store local.get $1 i32.const 46 call $~lib/array/Array#push drop - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store local.get $1 i32.const 47 call $~lib/array/Array#push @@ -14252,9 +11211,6 @@ local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer local.get $0 local.get $1 call $~lib/array/Array#concat @@ -14276,9 +11232,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store local.get $1 i32.load offset=12 i32.const 2 @@ -14291,9 +11244,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store local.get $0 i32.load offset=12 i32.const 5 @@ -14306,9 +11256,6 @@ 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 @@ -14322,9 +11269,6 @@ 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 @@ -14338,9 +11282,6 @@ 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 @@ -14354,9 +11295,6 @@ 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 @@ -14370,9 +11308,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store local.get $0 i32.const 4 call $~lib/array/Array#__get @@ -14386,15 +11321,9 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store local.get $0 call $~lib/array/Array#pop drop - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store local.get $0 i32.load offset=12 i32.const 4 @@ -14415,9 +11344,6 @@ call $~lib/rt/__newArray local.tee $0 i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store local.get $0 i32.load offset=12 if @@ -14429,9 +11355,6 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer global.get $std/array/arr local.tee $1 i32.store offset=8 @@ -14441,9 +11364,6 @@ call $~lib/array/Array#concat local.tee $1 i32.store offset=16 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store local.get $1 i32.load offset=12 i32.const 3 @@ -14456,9 +11376,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store local.get $0 i32.load offset=12 if @@ -14477,9 +11394,6 @@ call $~lib/rt/__newArray local.tee $0 i32.store offset=16 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=20 local.get $0 i32.const 0 i32.const 3 @@ -14519,9 +11433,6 @@ call $~lib/rt/__newArray local.tee $0 i32.store offset=16 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=20 local.get $0 i32.const 1 i32.const 3 @@ -14561,9 +11472,6 @@ call $~lib/rt/__newArray local.tee $0 i32.store offset=16 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=20 local.get $0 i32.const 1 i32.const 2 @@ -14603,9 +11511,6 @@ call $~lib/rt/__newArray local.tee $0 i32.store offset=16 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=20 local.get $0 i32.const 2 i32.const 2 @@ -14645,9 +11550,6 @@ call $~lib/rt/__newArray local.tee $0 i32.store offset=16 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=20 local.get $0 i32.const 0 i32.const 3 @@ -14687,9 +11589,6 @@ call $~lib/rt/__newArray local.tee $0 i32.store offset=16 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=20 local.get $0 i32.const 1 i32.const 3 @@ -14729,9 +11628,6 @@ call $~lib/rt/__newArray local.tee $0 i32.store offset=16 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=20 local.get $0 i32.const 1 i32.const 2 @@ -14771,9 +11667,6 @@ call $~lib/rt/__newArray local.tee $0 i32.store offset=16 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=20 local.get $0 i32.const 0 i32.const -2 @@ -14813,9 +11706,6 @@ call $~lib/rt/__newArray local.tee $0 i32.store offset=16 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=20 local.get $0 i32.const 0 i32.const -2 @@ -14855,9 +11745,6 @@ call $~lib/rt/__newArray local.tee $0 i32.store offset=16 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=20 local.get $0 i32.const -4 i32.const -3 @@ -14897,9 +11784,6 @@ call $~lib/rt/__newArray local.tee $0 i32.store offset=16 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=20 local.get $0 i32.const -4 i32.const -3 @@ -14939,9 +11823,6 @@ call $~lib/rt/__newArray local.tee $0 i32.store offset=16 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=20 local.get $0 i32.const -4 i32.const -3 @@ -15237,10 +12118,10 @@ local.tee $2 i32.const 2 i32.shl - local.tee $5 + local.tee $4 call $~lib/memory/memory.copy local.get $1 - local.get $5 + local.get $4 i32.add i32.const 0 i32.store @@ -15470,28 +12351,22 @@ 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.const 2 i32.const 2147483647 call $~lib/array/Array#slice - local.tee $1 + local.tee $2 i32.store offset=16 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store i32.const 3 i32.const 2 i32.const 3 i32.const 3536 call $~lib/rt/__newArray - local.set $2 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=8 local.get $1 + i32.store offset=8 local.get $2 + local.get $1 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -15505,28 +12380,22 @@ end 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 4 call $~lib/array/Array#slice - local.tee $1 + local.tee $2 i32.store offset=16 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store i32.const 2 i32.const 2 i32.const 3 i32.const 3568 call $~lib/rt/__newArray - local.set $2 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=8 local.get $1 + i32.store offset=8 local.get $2 + local.get $1 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -15540,28 +12409,22 @@ end global.get $~lib/memory/__stack_pointer local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 i32.const 1 i32.const 5 call $~lib/array/Array#slice - local.tee $1 + local.tee $2 i32.store offset=16 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store i32.const 4 i32.const 2 i32.const 3 i32.const 3600 call $~lib/rt/__newArray - local.set $2 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=8 local.get $1 + i32.store offset=8 local.get $2 + local.get $1 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -15575,20 +12438,11 @@ end global.get $~lib/memory/__stack_pointer local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 i32.const 0 i32.const 2147483647 call $~lib/array/Array#slice local.tee $1 i32.store offset=16 - 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 0 @@ -15604,28 +12458,22 @@ end 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 2147483647 call $~lib/array/Array#slice - local.tee $1 + local.tee $2 i32.store offset=16 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store i32.const 2 i32.const 2 i32.const 3 i32.const 3648 call $~lib/rt/__newArray - local.set $2 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=8 local.get $1 + i32.store offset=8 local.get $2 + local.get $1 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -15639,28 +12487,22 @@ end 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#slice - local.tee $1 + local.tee $2 i32.store offset=16 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store i32.const 2 i32.const 2 i32.const 3 i32.const 3680 call $~lib/rt/__newArray - local.set $2 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=8 local.get $1 + i32.store offset=8 local.get $2 + local.get $1 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -15674,28 +12516,22 @@ end global.get $~lib/memory/__stack_pointer local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 i32.const -3 i32.const -1 call $~lib/array/Array#slice - local.tee $1 + local.tee $2 i32.store offset=16 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store i32.const 2 i32.const 2 i32.const 3 i32.const 3712 call $~lib/rt/__newArray - local.set $2 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=8 local.get $1 + i32.store offset=8 local.get $2 + local.get $1 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -15707,9 +12543,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 local.get $0 i32.const -1 i32.const -3 @@ -15728,9 +12561,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 local.get $0 i32.const 10 i32.const 2147483647 @@ -15751,18 +12581,18 @@ 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.load offset=12 - local.tee $2 + local.tee $1 if - local.get $1 + local.get $0 i32.load offset=4 - local.set $0 - local.get $1 + local.set $2 + local.get $0 i32.load offset=4 - local.get $2 + local.get $1 i32.const 1 i32.sub i32.const 2 @@ -15770,24 +12600,24 @@ i32.add local.set $1 loop $while-continue|0 - local.get $0 local.get $1 - i32.lt_u + local.get $2 + i32.gt_u if - local.get $0 + local.get $2 i32.load - local.set $2 - local.get $0 + local.set $0 + local.get $2 local.get $1 i32.load i32.store local.get $1 - local.get $2 - i32.store local.get $0 + i32.store + local.get $2 i32.const 4 i32.add - local.set $0 + local.set $2 local.get $1 i32.const 4 i32.sub @@ -16227,9 +13057,6 @@ call $~lib/rt/__newArray local.tee $0 i32.store offset=16 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store i32.const 1 global.set $~argumentsLength local.get $0 @@ -16245,9 +13072,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store i32.const 1 global.set $~argumentsLength local.get $0 @@ -16263,9 +13087,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store local.get $0 i32.const 2 i32.const 3 @@ -16280,9 +13101,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store local.get $0 i32.const 2 i32.const 2 @@ -16295,9 +13113,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store local.get $0 i32.const 2 i32.const -2 @@ -16310,9 +13125,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store local.get $0 i32.const 2 i32.const -1 @@ -16334,9 +13146,9 @@ local.get $0 i32.const 44 i32.const 0 - call $~lib/array/Array#includes - i32.const 1 - i32.ne + call $~lib/array/Array#indexOf + i32.const 0 + i32.lt_s if i32.const 0 i32.const 1552 @@ -16352,9 +13164,9 @@ local.get $0 i32.const 42 i32.const 0 - call $~lib/array/Array#includes - i32.const 1 - i32.ne + call $~lib/array/Array#indexOf + i32.const 0 + i32.lt_s if i32.const 0 i32.const 1552 @@ -16370,7 +13182,9 @@ local.get $0 i32.const 45 i32.const 0 - call $~lib/array/Array#includes + call $~lib/array/Array#indexOf + i32.const 0 + i32.ge_s if i32.const 0 i32.const 1552 @@ -16386,7 +13200,9 @@ local.get $0 i32.const 43 i32.const 100 - call $~lib/array/Array#includes + call $~lib/array/Array#indexOf + i32.const 0 + i32.ge_s if i32.const 0 i32.const 1552 @@ -16402,9 +13218,9 @@ local.get $0 i32.const 43 i32.const -100 - call $~lib/array/Array#includes - i32.const 1 - i32.ne + call $~lib/array/Array#indexOf + i32.const 0 + i32.lt_s if i32.const 0 i32.const 1552 @@ -16420,9 +13236,9 @@ local.get $0 i32.const 43 i32.const -2 - call $~lib/array/Array#includes - i32.const 1 - i32.ne + call $~lib/array/Array#indexOf + i32.const 0 + i32.lt_s if i32.const 0 i32.const 1552 @@ -16438,9 +13254,9 @@ local.get $0 i32.const 43 i32.const -4 - call $~lib/array/Array#includes - i32.const 1 - i32.ne + call $~lib/array/Array#indexOf + i32.const 0 + i32.lt_s if i32.const 0 i32.const 1552 @@ -16456,9 +13272,9 @@ local.get $0 i32.const 43 i32.const 0 - call $~lib/array/Array#includes - i32.const 1 - i32.ne + call $~lib/array/Array#indexOf + i32.const 0 + i32.lt_s if i32.const 0 i32.const 1552 @@ -16474,9 +13290,9 @@ local.get $0 i32.const 43 i32.const 1 - call $~lib/array/Array#includes - i32.const 1 - i32.ne + call $~lib/array/Array#indexOf + i32.const 0 + i32.lt_s if i32.const 0 i32.const 1552 @@ -16492,9 +13308,9 @@ local.get $0 i32.const 43 i32.const 2 - call $~lib/array/Array#includes - i32.const 1 - i32.ne + call $~lib/array/Array#indexOf + i32.const 0 + i32.lt_s if i32.const 0 i32.const 1552 @@ -16508,54 +13324,54 @@ i32.const 9 i32.const 3856 call $~lib/rt/__newArray - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store block $__inlined_func$~lib/array/Array#includes (result i32) i32.const 0 - local.set $0 + local.set $2 i32.const 0 - local.get $1 + local.get $0 i32.load offset=12 - local.tee $4 + local.tee $3 i32.const 0 i32.le_s i32.const 1 - local.get $4 + local.get $3 select br_if $__inlined_func$~lib/array/Array#includes drop - local.get $1 + local.get $0 i32.load offset=4 - local.set $1 - loop $while-continue|024 - local.get $0 - local.get $4 + local.set $0 + loop $while-continue|033 + local.get $2 + local.get $3 i32.lt_s if i32.const 1 i32.const 1 - local.get $1 local.get $0 + local.get $2 i32.const 2 i32.shl i32.add f32.load - local.tee $9 - local.get $9 + local.tee $5 + local.get $5 f32.ne - local.get $9 + local.get $5 f32.const nan:0x400000 f32.eq select br_if $__inlined_func$~lib/array/Array#includes drop - local.get $0 + local.get $2 i32.const 1 i32.add - local.set $0 - br $while-continue|024 + local.set $2 + br $while-continue|033 end end i32.const 0 @@ -16574,54 +13390,54 @@ i32.const 10 i32.const 3888 call $~lib/rt/__newArray - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store block $__inlined_func$~lib/array/Array#includes (result i32) i32.const 0 - local.set $0 + local.set $2 i32.const 0 - local.get $1 + local.get $0 i32.load offset=12 - local.tee $4 + local.tee $3 i32.const 0 i32.le_s i32.const 1 - local.get $4 + local.get $3 select br_if $__inlined_func$~lib/array/Array#includes drop - local.get $1 + local.get $0 i32.load offset=4 - local.set $1 - loop $while-continue|025 - local.get $0 - local.get $4 + local.set $0 + loop $while-continue|034 + local.get $2 + local.get $3 i32.lt_s if i32.const 1 i32.const 1 - local.get $1 local.get $0 + local.get $2 i32.const 3 i32.shl i32.add f64.load - local.tee $10 - local.get $10 + local.tee $6 + local.get $6 f64.ne - local.get $10 + local.get $6 f64.const nan:0x8000000000000 f64.eq select br_if $__inlined_func$~lib/array/Array#includes drop - local.get $0 + local.get $2 i32.const 1 i32.add - local.set $0 - br $while-continue|025 + local.set $2 + br $while-continue|034 end end i32.const 0 @@ -16718,9 +13534,6 @@ call $~lib/rt/__newArray local.tee $0 i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=20 local.get $0 i32.const 0 i32.const 2147483647 @@ -16751,9 +13564,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store i32.const 0 i32.const 2 i32.const 3 @@ -16784,9 +13594,6 @@ call $~lib/rt/__newArray local.tee $0 i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=20 local.get $0 i32.const 0 i32.const 0 @@ -16817,9 +13624,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store i32.const 5 i32.const 2 i32.const 3 @@ -16850,9 +13654,6 @@ call $~lib/rt/__newArray local.tee $0 i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=20 local.get $0 i32.const 2 i32.const 2147483647 @@ -16883,9 +13684,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store i32.const 2 i32.const 2 i32.const 3 @@ -16916,9 +13714,6 @@ call $~lib/rt/__newArray local.tee $0 i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=20 local.get $0 i32.const 2 i32.const 2 @@ -16949,9 +13744,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store i32.const 3 i32.const 2 i32.const 3 @@ -16982,9 +13774,6 @@ call $~lib/rt/__newArray local.tee $0 i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=20 local.get $0 i32.const 0 i32.const 1 @@ -17015,9 +13804,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store i32.const 4 i32.const 2 i32.const 3 @@ -17048,9 +13834,6 @@ call $~lib/rt/__newArray local.tee $0 i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=20 local.get $0 i32.const -1 i32.const 2147483647 @@ -17081,9 +13864,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store i32.const 4 i32.const 2 i32.const 3 @@ -17114,9 +13894,6 @@ call $~lib/rt/__newArray local.tee $0 i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=20 local.get $0 i32.const -2 i32.const 2147483647 @@ -17147,9 +13924,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store i32.const 3 i32.const 2 i32.const 3 @@ -17180,9 +13954,6 @@ call $~lib/rt/__newArray local.tee $0 i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=20 local.get $0 i32.const -2 i32.const 1 @@ -17213,9 +13984,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store i32.const 4 i32.const 2 i32.const 3 @@ -17246,9 +14014,6 @@ call $~lib/rt/__newArray local.tee $0 i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=20 local.get $0 i32.const -7 i32.const 1 @@ -17279,9 +14044,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store i32.const 4 i32.const 2 i32.const 3 @@ -17312,9 +14074,6 @@ call $~lib/rt/__newArray local.tee $0 i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=20 local.get $0 i32.const -2 i32.const -1 @@ -17345,9 +14104,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store i32.const 5 i32.const 2 i32.const 3 @@ -17378,9 +14134,6 @@ call $~lib/rt/__newArray local.tee $0 i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=20 local.get $0 i32.const 1 i32.const -2 @@ -17411,9 +14164,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store i32.const 5 i32.const 2 i32.const 3 @@ -17444,9 +14194,6 @@ call $~lib/rt/__newArray local.tee $0 i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=20 local.get $0 i32.const 4 i32.const 0 @@ -17477,9 +14224,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store i32.const 5 i32.const 2 i32.const 3 @@ -17510,9 +14254,6 @@ call $~lib/rt/__newArray local.tee $0 i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=20 local.get $0 i32.const 7 i32.const 0 @@ -17543,9 +14284,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store i32.const 5 i32.const 2 i32.const 3 @@ -17576,9 +14314,6 @@ call $~lib/rt/__newArray local.tee $0 i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=20 local.get $0 i32.const 7 i32.const 5 @@ -17609,9 +14344,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store i32.const 5 i32.const 2 i32.const 3 @@ -17644,16 +14376,10 @@ i32.store offset=16 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#splice local.tee $1 i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store local.get $1 i32.load offset=12 if @@ -17664,9 +14390,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store local.get $0 i32.load offset=12 if @@ -17685,11 +14408,11 @@ i32.const 0 call $~lib/rt/__newArray local.tee $0 - i32.store offset=24 + i32.store offset=20 global.get $~lib/memory/__stack_pointer local.get $0 i32.load offset=4 - i32.store offset=28 + i32.store offset=24 local.get $0 i32.const 0 i32.const 1 @@ -17719,16 +14442,10 @@ i32.store offset=16 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#splice local.tee $1 i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store local.get $1 i32.load offset=12 i32.const 2 @@ -17741,9 +14458,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store local.get $1 i32.const 0 call $~lib/array/Array#__get @@ -17758,9 +14472,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store local.get $1 i32.const 1 call $~lib/array/Array#__get @@ -17775,9 +14486,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store local.get $0 i32.load offset=12 i32.const 3 @@ -17790,9 +14498,6 @@ 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 @@ -17807,9 +14512,6 @@ 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 @@ -17824,9 +14526,6 @@ 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 @@ -17849,11 +14548,11 @@ i32.const 0 call $~lib/rt/__newArray local.tee $0 - i32.store offset=28 + i32.store offset=24 global.get $~lib/memory/__stack_pointer local.get $0 i32.load offset=4 - i32.store offset=24 + i32.store offset=20 local.get $0 i32.const 0 i32.const 1 @@ -17869,18 +14568,12 @@ call $std/array/Ref#constructor call $~lib/array/Array#__uset local.get $0 - i32.store offset=24 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store + i32.store offset=20 global.get $~lib/memory/__stack_pointer local.get $0 call $~lib/array/Array#splice local.tee $1 - i32.store offset=28 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store + i32.store offset=24 local.get $1 i32.load offset=12 i32.const 1 @@ -17895,13 +14588,10 @@ end global.get $~lib/memory/__stack_pointer local.get $1 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 i32.const 0 call $~lib/array/Array#__get local.tee $1 - i32.store offset=32 + i32.store offset=28 local.get $1 i32.eqz if @@ -17924,9 +14614,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store local.get $0 i32.load offset=12 i32.const 2 @@ -17939,9 +14626,6 @@ 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 @@ -17955,13 +14639,10 @@ end 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#__get local.tee $0 - i32.store offset=32 + i32.store offset=28 local.get $0 i32.eqz if @@ -18759,23 +15440,23 @@ unreachable end i32.const 0 - local.set $0 + local.set $1 loop $for-loop|0 - local.get $0 + local.get $1 i32.const 100 i32.lt_s if global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 call $~lib/array/Array#pop drop - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|0 end end @@ -18819,80 +15500,76 @@ i32.const 6560 i32.store offset=8 global.get $~lib/memory/__stack_pointer + i32.const 0 + local.set $0 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 global.get $~lib/memory/__stack_pointer local.get $1 i32.load offset=12 - local.tee $2 + local.tee $3 i32.const 2 i32.const 9 i32.const 0 call $~lib/rt/__newArray - local.tee $0 + local.tee $2 i32.store - local.get $0 + local.get $2 i32.load offset=4 - local.set $5 - loop $for-loop|042 + local.set $7 + loop $for-loop|051 + local.get $0 local.get $3 - local.get $2 local.get $1 i32.load offset=12 - local.tee $6 - local.get $2 - local.get $6 + local.tee $8 + local.get $3 + local.get $8 i32.lt_s select i32.lt_s if - local.get $3 + local.get $0 i32.const 2 i32.shl - local.tee $6 + local.tee $8 local.get $1 i32.load offset=4 i32.add i32.load - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 + local.set $9 i32.const 3 global.set $~argumentsLength - local.get $5 - local.get $6 - i32.add local.get $7 - local.get $3 + local.get $8 + i32.add + local.get $9 + local.get $0 local.get $1 i32.const 6560 i32.load call_indirect (type $i32_i32_i32_=>_f32) f32.store - local.get $3 + local.get $0 i32.const 1 i32.add - local.set $3 - br $for-loop|042 + local.set $0 + br $for-loop|051 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.store offset=28 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 + local.get $2 + i32.store offset=24 + local.get $2 i32.load offset=12 i32.const 4 i32.ne @@ -18904,10 +15581,7 @@ 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 0 call $~lib/array/Array#__get global.get $~lib/memory/__stack_pointer @@ -19084,10 +15758,7 @@ i32.const 6688 call $~lib/array/Array#filter local.tee $0 - i32.store offset=28 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store + i32.store offset=24 local.get $0 i32.load offset=12 i32.const 2 @@ -19483,10 +16154,185 @@ local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - i32.const 7040 + i32.const 7040 + i32.store offset=8 + local.get $0 + i32.const 7040 + i32.const 0 + call $~lib/array/Array#reduceRight + global.set $std/array/i + global.get $std/array/i + i32.const 6 + i32.ne + if + i32.const 0 + i32.const 1552 + i32.const 829 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + global.get $std/array/arr + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 7072 + i32.store offset=8 + local.get $0 + i32.const 7072 + i32.const 4 + call $~lib/array/Array#reduceRight + global.set $std/array/i + global.get $std/array/i + i32.const 10 + i32.ne + if + i32.const 0 + i32.const 1552 + i32.const 833 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + global.get $std/array/arr + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 7104 + i32.store offset=8 + local.get $0 + i32.const 7104 + i32.const 0 + call $~lib/array/Array#reduceRight + i32.eqz + if + i32.const 0 + i32.const 1552 + i32.const 836 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + global.get $std/array/arr + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 7136 + i32.store offset=8 + local.get $0 + i32.const 7136 + i32.const 0 + call $~lib/array/Array#reduceRight + if + i32.const 0 + i32.const 1552 + i32.const 839 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + global.get $std/array/arr + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 7168 + i32.store offset=8 + local.get $0 + i32.const 7168 + i32.const 0 + call $~lib/array/Array#reduceRight + global.set $std/array/i + global.get $std/array/i + i32.const 6 + i32.ne + if + i32.const 0 + i32.const 1552 + i32.const 847 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + global.get $std/array/arr + local.tee $0 + i32.store + local.get $0 + i32.load offset=12 + i32.const 8 + i32.ne + if + i32.const 0 + i32.const 1552 + i32.const 848 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + global.get $std/array/arr + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 7200 + i32.store offset=8 + local.get $0 + i32.const 7200 + i32.const 0 + call $~lib/array/Array#reduceRight + global.set $std/array/i + global.get $std/array/i + i32.const 10 + i32.ne + if + i32.const 0 + i32.const 1552 + i32.const 850 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + global.get $std/array/arr + local.tee $0 + i32.store + local.get $0 + call $~lib/array/Array#pop + drop + global.get $~lib/memory/__stack_pointer + global.get $std/array/arr + local.tee $0 + i32.store + local.get $0 + call $~lib/array/Array#pop + drop + global.get $~lib/memory/__stack_pointer + global.get $std/array/arr + local.tee $0 + i32.store + local.get $0 + call $~lib/array/Array#pop + drop + global.get $~lib/memory/__stack_pointer + global.get $std/array/arr + local.tee $0 + i32.store + local.get $0 + call $~lib/array/Array#pop + drop + global.get $~lib/memory/__stack_pointer + global.get $std/array/arr + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 7232 i32.store offset=8 local.get $0 - i32.const 7040 + i32.const 7232 i32.const 0 call $~lib/array/Array#reduceRight global.set $std/array/i @@ -19496,7 +16342,7 @@ if i32.const 0 i32.const 1552 - i32.const 829 + i32.const 863 i32.const 3 call $~lib/builtins/abort unreachable @@ -19505,21 +16351,12 @@ global.get $std/array/arr local.tee $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 7072 - i32.store offset=8 local.get $0 - i32.const 7072 - i32.const 4 - call $~lib/array/Array#reduceRight - global.set $std/array/i - global.get $std/array/i - i32.const 10 - i32.ne + i32.load offset=12 if i32.const 0 i32.const 1552 - i32.const 833 + i32.const 864 i32.const 3 call $~lib/builtins/abort unreachable @@ -19528,1067 +16365,1352 @@ global.get $std/array/arr local.tee $0 i32.store + local.get $0 + i32.const 0 + call $~lib/array/Array#push + drop global.get $~lib/memory/__stack_pointer - i32.const 7104 - i32.store offset=8 + global.get $std/array/arr + local.tee $0 + i32.store local.get $0 - i32.const 7104 + i32.const 1 + call $~lib/array/Array#push + drop + global.get $~lib/memory/__stack_pointer + global.get $std/array/arr + local.tee $0 + i32.store + local.get $0 + i32.const 2 + call $~lib/array/Array#push + drop + global.get $~lib/memory/__stack_pointer + global.get $std/array/arr + local.tee $0 + i32.store + local.get $0 + i32.const 3 + call $~lib/array/Array#push + drop + call $~lib/bindings/Math/random + i64.reinterpret_f64 + call $~lib/math/NativeMath.seedRandom + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.const 2 + i32.const 9 + i32.const 7504 + call $~lib/rt/__newArray + local.tee $0 + i32.store offset=20 i32.const 0 - call $~lib/array/Array#reduceRight + global.set $~argumentsLength + i32.const 0 + local.set $2 + 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 $1of1 + block $0of1 + block $outOfRange + global.get $~argumentsLength + br_table $0of1 $1of1 $outOfRange + end + unreachable + end + i32.const 7568 + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 7568 + i32.store + end + local.get $0 + local.get $2 + call $~lib/array/Array#sort + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 8 + i32.const 2 + i32.const 9 + i32.const 7600 + call $~lib/rt/__newArray + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + block $__inlined_func$std/array/isArraysEqual (result i32) + i32.const 0 + local.set $2 + i32.const 0 + local.get $0 + i32.load offset=12 + local.tee $4 + local.get $1 + i32.load offset=12 + i32.ne + br_if $__inlined_func$std/array/isArraysEqual + drop + i32.const 1 + local.get $0 + local.get $1 + i32.eq + br_if $__inlined_func$std/array/isArraysEqual + drop + loop $for-loop|02 + local.get $2 + local.get $4 + i32.lt_s + if + local.get $0 + local.get $2 + call $~lib/array/Array#__get + local.tee $5 + local.get $5 + f32.ne + if (result i32) + local.get $1 + local.get $2 + call $~lib/array/Array#__get + local.tee $5 + local.get $5 + f32.ne + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + local.get $0 + local.get $2 + call $~lib/array/Array#__get + local.get $1 + local.get $2 + call $~lib/array/Array#__get + f32.ne + br_if $__inlined_func$std/array/isArraysEqual + drop + end + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|02 + end + end + i32.const 1 + end i32.eqz if i32.const 0 i32.const 1552 - i32.const 836 + i32.const 953 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - global.get $std/array/arr + i32.const 8 + i32.const 3 + i32.const 10 + i32.const 7664 + call $~lib/rt/__newArray local.tee $0 + i32.store offset=24 + i32.const 0 + global.set $~argumentsLength + i32.const 0 + local.set $2 + 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 $1of12 + block $0of13 + block $outOfRange4 + global.get $~argumentsLength + br_table $0of13 $1of12 $outOfRange4 + end + unreachable + end + i32.const 7760 + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 7760 + i32.store + end + local.get $0 + local.get $2 + call $~lib/array/Array#sort global.get $~lib/memory/__stack_pointer - i32.const 7136 + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 8 + i32.const 3 + i32.const 10 + i32.const 7792 + call $~lib/rt/__newArray + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 i32.store offset=8 - local.get $0 - i32.const 7136 - i32.const 0 - call $~lib/array/Array#reduceRight + block $__inlined_func$std/array/isArraysEqual (result i32) + i32.const 0 + local.set $2 + i32.const 0 + local.get $0 + i32.load offset=12 + local.tee $4 + local.get $1 + i32.load offset=12 + i32.ne + br_if $__inlined_func$std/array/isArraysEqual + drop + i32.const 1 + local.get $0 + local.get $1 + i32.eq + br_if $__inlined_func$std/array/isArraysEqual + drop + loop $for-loop|03 + local.get $2 + local.get $4 + i32.lt_s + if + local.get $0 + local.get $2 + call $~lib/array/Array#__get + local.tee $6 + local.get $6 + f64.ne + if (result i32) + local.get $1 + local.get $2 + call $~lib/array/Array#__get + local.tee $6 + local.get $6 + f64.ne + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + local.get $0 + local.get $2 + call $~lib/array/Array#__get + local.get $1 + local.get $2 + call $~lib/array/Array#__get + f64.ne + br_if $__inlined_func$std/array/isArraysEqual + drop + end + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|03 + end + end + i32.const 1 + end + i32.eqz if i32.const 0 i32.const 1552 - i32.const 839 + i32.const 957 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - global.get $std/array/arr + i32.const 5 + i32.const 2 + i32.const 3 + i32.const 7888 + call $~lib/rt/__newArray local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 7168 - i32.store offset=8 - local.get $0 - i32.const 7168 + i32.store offset=12 i32.const 0 - call $~lib/array/Array#reduceRight - global.set $std/array/i - global.get $std/array/i - i32.const 6 - i32.ne - if - i32.const 0 - i32.const 1552 - i32.const 847 - i32.const 3 - call $~lib/builtins/abort - unreachable - end + global.set $~argumentsLength + i32.const 0 + local.set $2 global.get $~lib/memory/__stack_pointer - global.get $std/array/arr - local.tee $0 + 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 $0 - i32.load offset=12 - i32.const 8 - i32.ne - if - i32.const 0 - i32.const 1552 - i32.const 848 - i32.const 3 - call $~lib/builtins/abort - unreachable + block $1of15 + block $0of16 + block $outOfRange7 + global.get $~argumentsLength + br_table $0of16 $1of15 $outOfRange7 + end + unreachable + end + i32.const 7936 + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 7936 + i32.store end + local.get $0 + local.get $2 + call $~lib/array/Array#sort + drop global.get $~lib/memory/__stack_pointer - global.get $std/array/arr - local.tee $0 - i32.store + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 5 + i32.const 2 + i32.const 3 + i32.const 7968 + call $~lib/rt/__newArray + local.set $1 global.get $~lib/memory/__stack_pointer - i32.const 7200 + local.get $1 i32.store offset=8 local.get $0 - i32.const 7200 + local.get $1 i32.const 0 - call $~lib/array/Array#reduceRight - global.set $std/array/i - global.get $std/array/i - i32.const 10 - i32.ne + call $std/array/isArraysEqual + i32.eqz if i32.const 0 i32.const 1552 - i32.const 850 + i32.const 961 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - global.get $std/array/arr - local.tee $0 - i32.store - local.get $0 - call $~lib/array/Array#pop - drop - global.get $~lib/memory/__stack_pointer - global.get $std/array/arr - local.tee $0 - i32.store - local.get $0 - call $~lib/array/Array#pop - drop - global.get $~lib/memory/__stack_pointer - global.get $std/array/arr - local.tee $0 - i32.store - local.get $0 - call $~lib/array/Array#pop - drop - global.get $~lib/memory/__stack_pointer - global.get $std/array/arr + i32.const 5 + i32.const 2 + i32.const 7 + i32.const 8016 + call $~lib/rt/__newArray local.tee $0 - i32.store + i32.store offset=16 + i32.const 0 + global.set $~argumentsLength local.get $0 - call $~lib/array/Array#pop + i32.const 0 + call $~lib/array/Array#sort@varargs drop + i32.const 5 + i32.const 2 + i32.const 7 + i32.const 8096 + call $~lib/rt/__newArray + local.set $1 global.get $~lib/memory/__stack_pointer - global.get $std/array/arr - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 7232 + local.get $1 i32.store offset=8 local.get $0 - i32.const 7232 - i32.const 0 - call $~lib/array/Array#reduceRight - global.set $std/array/i - global.get $std/array/i - i32.const 6 - i32.ne - if - i32.const 0 - i32.const 1552 - i32.const 863 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - global.get $std/array/arr - local.tee $0 - i32.store - local.get $0 - i32.load offset=12 + local.get $1 + call $std/array/isArraysEqual + i32.eqz if i32.const 0 i32.const 1552 - i32.const 864 + i32.const 965 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - global.get $std/array/arr - local.tee $0 - i32.store - local.get $0 i32.const 0 - call $~lib/array/Array#push - drop - global.get $~lib/memory/__stack_pointer - global.get $std/array/arr - local.tee $0 - i32.store - local.get $0 - i32.const 1 - call $~lib/array/Array#push - drop - global.get $~lib/memory/__stack_pointer - global.get $std/array/arr - local.tee $0 - i32.store - local.get $0 i32.const 2 - call $~lib/array/Array#push - drop - global.get $~lib/memory/__stack_pointer - global.get $std/array/arr - local.tee $0 - i32.store - local.get $0 i32.const 3 - call $~lib/array/Array#push - drop - call $~lib/bindings/Math/random - i64.reinterpret_f64 - call $~lib/math/NativeMath.seedRandom + i32.const 8144 + call $~lib/rt/__newArray + local.tee $10 + i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 1 i32.const 2 - i32.const 9 - i32.const 7504 + i32.const 3 + i32.const 8176 call $~lib/rt/__newArray local.tee $1 - i32.store offset=24 + i32.store offset=32 global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - i32.const 0 - global.set $~argumentsLength - i32.const 0 - local.set $0 + i32.const 2 + i32.const 2 + i32.const 3 + i32.const 8208 + call $~lib/rt/__newArray + local.tee $2 + i32.store offset=36 global.get $~lib/memory/__stack_pointer i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check + i32.const 2 + i32.const 3 + i32.const 8240 + call $~lib/rt/__newArray + local.tee $3 + i32.store offset=40 global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - block $1of1 - block $0of1 - block $outOfRange - global.get $~argumentsLength - br_table $0of1 $1of1 $outOfRange - end - unreachable - end - i32.const 7568 - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 7568 - i32.store - end - local.get $1 - local.get $0 - call $~lib/array/Array#sort + i32.const 4 + i32.const 2 + i32.const 3 + i32.const 8288 + call $~lib/rt/__newArray + local.tee $0 + i32.store offset=44 global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer + i32.const 64 + call $std/array/createReverseOrderedArray + local.tee $4 + i32.store offset=28 + global.get $~lib/memory/__stack_pointer + i32.const 128 + call $std/array/createReverseOrderedArray + local.tee $7 + i32.store offset=48 + global.get $~lib/memory/__stack_pointer + i32.const 1024 + call $std/array/createReverseOrderedArray + local.tee $8 + i32.store offset=52 + global.get $~lib/memory/__stack_pointer + i32.const 10000 + call $std/array/createReverseOrderedArray + local.tee $9 + i32.store offset=56 global.get $~lib/memory/__stack_pointer + i32.const 512 + call $std/array/createRandomOrderedArray + local.tee $11 + i32.store offset=60 + local.get $10 + call $std/array/assertSortedDefault local.get $1 - i32.store - i32.const 8 + call $std/array/assertSortedDefault + i32.const 1 i32.const 2 - i32.const 9 - i32.const 7600 + i32.const 3 + i32.const 8368 call $~lib/rt/__newArray - local.set $0 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $10 i32.store offset=8 local.get $1 - local.get $0 - call $std/array/isArraysEqual + local.get $10 + i32.const 0 + call $std/array/isArraysEqual i32.eqz if i32.const 0 i32.const 1552 - i32.const 953 + i32.const 985 i32.const 3 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 8 + local.get $2 + call $std/array/assertSortedDefault + i32.const 2 + i32.const 2 i32.const 3 - i32.const 10 - i32.const 7664 + i32.const 8400 call $~lib/rt/__newArray - local.tee $1 - i32.store offset=28 + local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store + i32.store offset=8 + local.get $2 + local.get $1 i32.const 0 - global.set $~argumentsLength + call $std/array/isArraysEqual + i32.eqz + if + i32.const 0 + i32.const 1552 + i32.const 988 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $3 + call $std/array/assertSortedDefault + local.get $3 + local.get $0 i32.const 0 - local.set $0 - global.get $~lib/memory/__stack_pointer + call $std/array/isArraysEqual + i32.eqz + if + i32.const 0 + i32.const 1552 + i32.const 991 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $4 + call $std/array/assertSortedDefault + local.get $4 + local.get $0 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 $1of12 - block $0of13 - block $outOfRange4 - global.get $~argumentsLength - br_table $0of13 $1of12 $outOfRange4 - end - unreachable - end - i32.const 7760 - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 7760 - i32.store + call $std/array/isArraysEqual + i32.eqz + if + i32.const 0 + i32.const 1552 + i32.const 994 + i32.const 3 + call $~lib/builtins/abort + unreachable end - local.get $1 + local.get $7 + call $std/array/assertSortedDefault + local.get $7 local.get $0 - call $~lib/array/Array#sort - 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 - i32.const 8 - i32.const 3 - i32.const 10 - i32.const 7792 - call $~lib/rt/__newArray - local.set $0 - global.get $~lib/memory/__stack_pointer + call $std/array/isArraysEqual + i32.eqz + if + i32.const 0 + i32.const 1552 + i32.const 997 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $8 + call $std/array/assertSortedDefault + local.get $8 local.get $0 - i32.store offset=8 - local.get $1 + i32.const 4 + call $std/array/isArraysEqual + i32.eqz + if + i32.const 0 + i32.const 1552 + i32.const 1000 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $9 + call $std/array/assertSortedDefault + local.get $9 local.get $0 - call $std/array/isArraysEqual + i32.const 4 + call $std/array/isArraysEqual i32.eqz if i32.const 0 i32.const 1552 - i32.const 957 + i32.const 1003 i32.const 3 call $~lib/builtins/abort unreachable end + local.get $11 + call $std/array/assertSortedDefault global.get $~lib/memory/__stack_pointer - i32.const 5 - i32.const 2 - i32.const 3 - i32.const 7888 - call $~lib/rt/__newArray + i32.const 64 + call $std/array/createRandomOrderedArray + local.tee $0 + i32.store offset=60 + global.get $~lib/memory/__stack_pointer + i32.const 257 + call $std/array/createRandomOrderedArray local.tee $1 - i32.store offset=12 + i32.store offset=56 + global.get $~lib/memory/__stack_pointer + i32.const 8432 + i32.store offset=8 + local.get $0 + i32.const 8432 + call $std/array/assertSorted + global.get $~lib/memory/__stack_pointer + i32.const 8464 + i32.store offset=8 + local.get $0 + i32.const 8464 + call $std/array/assertSorted global.get $~lib/memory/__stack_pointer + i32.const 8496 + i32.store offset=8 local.get $1 - i32.store - i32.const 0 - global.set $~argumentsLength + i32.const 8496 + call $std/array/assertSorted + global.get $~lib/memory/__stack_pointer + i32.const 8528 + i32.store offset=8 + local.get $1 + i32.const 8528 + call $std/array/assertSorted + global.get $~lib/memory/__stack_pointer i32.const 0 - local.set $0 + local.set $1 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 - block $1of15 - block $0of16 - block $outOfRange7 - global.get $~argumentsLength - br_table $0of16 $1of15 $outOfRange7 - end - unreachable - end - i32.const 7936 - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 7936 - i32.store - end - local.get $1 - local.get $0 - call $~lib/array/Array#sort - drop + i64.const 0 + i64.store 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 - i32.const 5 - i32.const 2 - i32.const 3 - i32.const 7968 - call $~lib/rt/__newArray - local.set $0 + 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 16 + i32.const 22 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store local.get $0 - i32.store offset=8 - local.get $1 + i32.const 0 + call $~lib/array/Array#set:buffer local.get $0 i32.const 0 - call $std/array/isArraysEqual - i32.eqz - if - i32.const 0 - i32.const 1552 - i32.const 961 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 5 - i32.const 2 - i32.const 7 - i32.const 8016 - call $~lib/rt/__newArray - local.tee $0 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer + i32.store offset=4 local.get $0 - i32.store i32.const 0 - global.set $~argumentsLength + i32.store offset=8 local.get $0 i32.const 0 - call $~lib/array/Array#sort@varargs - drop + i32.store offset=12 global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.const 0 + call $~lib/rt/itcms/__new + local.tee $2 + i32.store offset=4 + local.get $2 + i32.const 0 + i32.const 8 + call $~lib/memory/memory.fill + local.get $0 + local.get $2 + call $~lib/array/Array#set:buffer + local.get $0 + local.get $2 + i32.store offset=4 + local.get $0 + i32.const 8 + i32.store offset=8 local.get $0 - i32.store - i32.const 5 i32.const 2 - i32.const 7 - i32.const 8096 - call $~lib/rt/__newArray - local.set $1 + i32.store offset=12 global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer local.get $0 - local.get $1 - call $std/array/isArraysEqual - i32.eqz - if - i32.const 0 - i32.const 1552 - i32.const 965 - i32.const 3 - call $~lib/builtins/abort - unreachable + i32.store + loop $for-loop|062 + local.get $1 + i32.const 2 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + i32.const 1 + call $~lib/array/Array#constructor + local.tee $2 + i32.store offset=4 + local.get $2 + i32.const 0 + i32.const 1 + local.get $1 + i32.sub + call $~lib/array/Array#__set + local.get $0 + local.get $1 + local.get $2 + call $~lib/array/Array<~lib/array/Array>#__set + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|062 + end end global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 2 - i32.const 3 - i32.const 8144 - call $~lib/rt/__newArray - local.tee $8 - i32.store offset=4 + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=56 global.get $~lib/memory/__stack_pointer - i32.const 1 - i32.const 2 - i32.const 3 - i32.const 8176 - call $~lib/rt/__newArray - local.tee $1 - i32.store offset=36 + i32.const 8560 + i32.store offset=8 + local.get $0 + i32.const 8560 + call $std/array/assertSorted<~lib/array/Array> global.get $~lib/memory/__stack_pointer - i32.const 2 - i32.const 2 - i32.const 3 - i32.const 8208 - call $~lib/rt/__newArray - local.tee $3 - i32.store offset=40 + call $std/array/createReverseOrderedElementsArray + local.tee $0 + i32.store offset=56 global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.const 2 - i32.const 3 - i32.const 8240 - call $~lib/rt/__newArray - local.tee $2 - i32.store offset=44 + i32.const 8592 + i32.store offset=8 + local.get $0 + i32.const 8592 + call $std/array/assertSorted<~lib/array/Array> global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 7 i32.const 2 - i32.const 3 - i32.const 8288 + i32.const 27 + i32.const 8784 call $~lib/rt/__newArray local.tee $0 - i32.store offset=48 - global.get $~lib/memory/__stack_pointer - i32.const 64 - call $std/array/createReverseOrderedArray - local.tee $4 - i32.store offset=32 - global.get $~lib/memory/__stack_pointer - i32.const 128 - call $std/array/createReverseOrderedArray - local.tee $5 - i32.store offset=52 - global.get $~lib/memory/__stack_pointer - i32.const 1024 - call $std/array/createReverseOrderedArray - local.tee $6 - i32.store offset=56 - global.get $~lib/memory/__stack_pointer - i32.const 10000 - call $std/array/createReverseOrderedArray - local.tee $7 i32.store offset=60 global.get $~lib/memory/__stack_pointer - i32.const 512 - call $std/array/createRandomOrderedArray - local.tee $11 - i32.store offset=64 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store - local.get $8 - call $std/array/assertSortedDefault - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $1 - call $std/array/assertSortedDefault - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - i32.const 1 + i32.const 7 i32.const 2 - i32.const 3 - i32.const 8368 + i32.const 27 + i32.const 8832 call $~lib/rt/__newArray - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=8 - local.get $1 - local.get $8 - i32.const 0 - call $std/array/isArraysEqual + local.tee $1 + i32.store offset=52 + i32.const 1 + global.set $~argumentsLength + local.get $0 + call $std/array/assertSorted<~lib/string/String|null>@varargs + block $__inlined_func$std/array/isArraysEqual<~lib/string/String|null> (result i32) + i32.const 0 + local.set $2 + 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 $folding-inner1 + block $folding-inner0 + local.get $0 + i32.load offset=12 + local.tee $7 + local.get $1 + i32.load offset=12 + i32.ne + br_if $folding-inner0 + local.get $0 + local.get $1 + i32.eq + br_if $folding-inner1 + loop $for-loop|04 + local.get $2 + local.get $7 + i32.lt_s + if + 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 + local.get $1 + local.get $2 + call $~lib/array/Array#__get + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $3 + local.get $4 + call $~lib/string/String.__eq + i32.eqz + br_if $folding-inner0 + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|04 + end + end + br $folding-inner1 + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 0 + br $__inlined_func$std/array/isArraysEqual<~lib/string/String|null> + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 1 + end i32.eqz if i32.const 0 i32.const 1552 - i32.const 985 + i32.const 1040 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store - local.get $3 - call $std/array/assertSortedDefault + i32.const 0 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store - i32.const 2 - i32.const 2 - i32.const 3 - i32.const 8400 - call $~lib/rt/__newArray - local.set $1 + 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 - local.get $1 - i32.store offset=8 - local.get $3 - local.get $1 i32.const 0 - call $std/array/isArraysEqual - i32.eqz - if - i32.const 0 - i32.const 1552 - i32.const 988 - i32.const 3 - call $~lib/builtins/abort - unreachable + i32.const 400 + call $~lib/array/Array<~lib/string/String>#constructor + local.tee $0 + i32.store + loop $for-loop|063 + local.get $2 + i32.const 400 + i32.lt_s + if + call $~lib/math/NativeMath.random + f64.const 32 + f64.mul + i32.trunc_f64_s + call $std/array/createRandomString + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $0 + local.get $2 + local.get $1 + call $~lib/array/Array<~lib/array/Array>#__set + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|063 + end end global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $2 - call $std/array/assertSortedDefault + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=56 + i32.const 1 + global.set $~argumentsLength + i32.const 0 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $2 - local.get $0 i32.const 0 - call $std/array/isArraysEqual - i32.eqz - if - i32.const 0 - i32.const 1552 - i32.const 991 - i32.const 3 - call $~lib/builtins/abort - unreachable + i32.store + block $1of18 + block $0of19 + block $outOfRange10 + global.get $~argumentsLength + i32.const 1 + i32.sub + br_table $0of19 $1of18 $outOfRange10 + end + unreachable + end + i32.const 8944 + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 8944 + i32.store end + local.get $0 + local.get $2 + call $std/array/assertSorted<~lib/array/Array> global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store - local.get $4 - call $std/array/assertSortedDefault + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 2 + i32.const 0 + i32.const 31 + i32.const 8976 + call $~lib/rt/__newArray + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store + local.get $0 + i32.store offset=64 global.get $~lib/memory/__stack_pointer + i32.const 9072 + i32.store offset=68 local.get $0 - i32.store offset=8 - local.get $4 + i32.load offset=4 local.get $0 - i32.const 4 - call $std/array/isArraysEqual - i32.eqz - if - i32.const 0 - i32.const 1552 - i32.const 994 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - local.get $5 - call $std/array/assertSortedDefault + i32.load offset=12 + call $~lib/util/string/joinBooleanArray + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $0 i32.store global.get $~lib/memory/__stack_pointer - local.get $0 + i32.const 9104 i32.store offset=8 - local.get $5 local.get $0 - i32.const 4 - call $std/array/isArraysEqual + i32.const 9104 + call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1552 - i32.const 997 + i32.const 1049 i32.const 3 call $~lib/builtins/abort unreachable end + i32.const 3 + i32.const 2 + i32.const 3 + i32.const 9152 + call $~lib/rt/__newArray + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - call $std/array/assertSortedDefault - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store + local.get $0 + i32.store offset=64 global.get $~lib/memory/__stack_pointer + i32.const 8752 + i32.store offset=68 local.get $0 - i32.store offset=8 - local.get $6 + i32.load offset=4 local.get $0 - i32.const 4 - call $std/array/isArraysEqual - i32.eqz - if - i32.const 0 - i32.const 1552 - i32.const 1000 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store - local.get $7 - call $std/array/assertSortedDefault + i32.load offset=12 + i32.const 8752 + call $~lib/util/string/joinIntegerArray + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $0 i32.store global.get $~lib/memory/__stack_pointer - local.get $0 + i32.const 9504 i32.store offset=8 - local.get $7 local.get $0 - i32.const 4 - call $std/array/isArraysEqual + i32.const 9504 + call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1552 - i32.const 1003 + i32.const 1050 i32.const 3 call $~lib/builtins/abort unreachable end + i32.const 3 + i32.const 2 + i32.const 7 + i32.const 9536 + call $~lib/rt/__newArray + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store - local.get $11 - call $std/array/assertSortedDefault - global.get $~lib/memory/__stack_pointer - i32.const 64 - call $std/array/createRandomOrderedArray - local.tee $0 + local.get $0 i32.store offset=64 global.get $~lib/memory/__stack_pointer - i32.const 257 - call $std/array/createRandomOrderedArray - local.tee $1 - i32.store offset=60 + i32.const 9568 + i32.store offset=68 + local.get $0 + i32.load offset=4 + local.get $0 + i32.load offset=12 + i32.const 9568 + call $~lib/util/string/joinIntegerArray + local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store global.get $~lib/memory/__stack_pointer - i32.const 8432 + i32.const 9504 i32.store offset=8 local.get $0 - i32.const 8432 - call $std/array/assertSorted + i32.const 9504 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1552 + i32.const 1051 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 2 + i32.const 2 + i32.const 3 + i32.const 9600 + call $~lib/rt/__newArray + local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store + i32.store offset=64 global.get $~lib/memory/__stack_pointer - i32.const 8464 - i32.store offset=8 + i32.const 9632 + i32.store offset=68 local.get $0 - i32.const 8464 - call $std/array/assertSorted - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 8496 - i32.store offset=8 - local.get $1 - i32.const 8496 - call $std/array/assertSorted + i32.load offset=4 + local.get $0 + i32.load offset=12 + i32.const 9632 + call $~lib/util/string/joinIntegerArray + 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 8528 + i32.const 9664 i32.store offset=8 - local.get $1 - i32.const 8528 - call $std/array/assertSorted - global.get $~lib/memory/__stack_pointer - call $std/array/createReverseOrderedNestedArray - local.tee $0 - i32.store offset=60 - global.get $~lib/memory/__stack_pointer local.get $0 - i32.store + i32.const 9664 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1552 + i32.const 1052 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 6 + i32.const 3 + i32.const 10 + i32.const 9744 + call $~lib/rt/__newArray + local.set $0 global.get $~lib/memory/__stack_pointer - i32.const 8560 - i32.store offset=8 local.get $0 - i32.const 8560 - call $std/array/assertSorted<~lib/array/Array> + i32.store offset=64 global.get $~lib/memory/__stack_pointer - call $std/array/createReverseOrderedElementsArray - local.tee $0 - i32.store offset=60 + i32.const 9824 + i32.store offset=68 + local.get $0 + i32.load offset=4 + local.get $0 + i32.load offset=12 + call $~lib/util/string/joinFloatArray + local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store global.get $~lib/memory/__stack_pointer - i32.const 8592 + i32.const 10992 i32.store offset=8 local.get $0 - i32.const 8592 - call $std/array/assertSorted<~lib/array/Array> - global.get $~lib/memory/__stack_pointer - i32.const 7 - i32.const 2 - i32.const 27 - i32.const 8784 - call $~lib/rt/__newArray - local.tee $3 - i32.store offset=64 - global.get $~lib/memory/__stack_pointer - i32.const 7 + i32.const 10992 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1552 + i32.const 1053 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 3 i32.const 2 i32.const 27 - i32.const 8832 + i32.const 11136 call $~lib/rt/__newArray - local.tee $4 - i32.store offset=56 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store - i32.const 1 - global.set $~argumentsLength - i32.const 0 local.set $0 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 $1of18 - block $0of19 - block $outOfRange10 - global.get $~argumentsLength - i32.const 1 - i32.sub - br_table $0of19 $1of18 $outOfRange10 - end - unreachable - end - i32.const 8880 - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 8880 - i32.store - end - 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 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=8 + local.get $0 + i32.store offset=64 global.get $~lib/memory/__stack_pointer + i32.const 8752 + i32.store offset=68 local.get $0 - i32.store offset=12 - local.get $3 + i32.load offset=4 local.get $0 - call $~lib/array/Array<~lib/array/Array>#sort - local.set $1 + i32.load offset=12 + i32.const 8752 + call $~lib/util/string/joinReferenceArray<~lib/string/String|null> + 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 11104 + i32.store offset=8 local.get $0 - i32.store offset=4 - block $__inlined_func$std/array/isSorted<~lib/string/String|null> (result 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 - i32.const 1 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $1 - i32.load offset=12 - local.set $7 - loop $for-loop|00 - local.get $2 - local.get $7 - i32.lt_s - if - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $1 - local.get $2 - i32.const 1 - i32.sub - call $~lib/array/Array#__get - 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=8 - local.get $1 - local.get $2 - call $~lib/array/Array#__get - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - i32.const 2 - global.set $~argumentsLength - local.get $5 - local.get $6 - local.get $0 - i32.load - call_indirect (type $i32_i32_=>_i32) - 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/string/String|null> - end - 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 - i32.const 1 - end + i32.const 11104 + call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1552 - i32.const 942 + i32.const 1054 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 4 - i32.add - global.set $~lib/memory/__stack_pointer + i32.const 3 + i32.const 2 + i32.const 11 + i32.const 0 + call $~lib/rt/__newArray + local.tee $0 + i32.store offset=56 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $0 + i32.load offset=4 + i32.store offset=52 + local.get $0 + i32.const 0 + i32.const 0 + call $std/array/Ref#constructor + call $~lib/array/Array#__uset + local.get $0 + i32.const 1 + i32.const 0 + call $~lib/array/Array#__uset + local.get $0 + i32.const 2 + i32.const 0 + call $std/array/Ref#constructor + call $~lib/array/Array#__uset + local.get $0 + i32.store offset=52 + global.get $~lib/memory/__stack_pointer + i32.const 9072 + i32.store offset=68 + local.get $0 + i32.load offset=4 + local.get $0 + i32.load offset=12 + call $~lib/util/string/joinReferenceArray + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 i32.store global.get $~lib/memory/__stack_pointer - local.get $4 + i32.const 11232 i32.store offset=8 - local.get $3 - local.get $4 - call $std/array/isArraysEqual<~lib/string/String|null> + local.get $0 + i32.const 11232 + call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1552 - i32.const 1040 + i32.const 1056 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 2 + i32.const 2 + i32.const 8 i32.const 0 - local.set $0 + call $~lib/rt/__newArray + local.tee $0 + i32.store offset=56 global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check + local.get $0 + i32.load offset=4 + i32.store offset=60 + local.get $0 + i32.const 0 + i32.const 0 + call $std/array/Ref#constructor + call $~lib/array/Array#__uset + local.get $0 + i32.const 1 + i32.const 0 + call $std/array/Ref#constructor + call $~lib/array/Array#__uset + local.get $0 + i32.store offset=60 global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store + i32.const 9072 + i32.store offset=68 + local.get $0 + i32.load offset=4 + local.get $0 + i32.load offset=12 + call $~lib/util/string/joinReferenceArray + local.set $0 global.get $~lib/memory/__stack_pointer - i32.const 0 + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 11328 i32.store offset=8 + local.get $0 + i32.const 11328 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1552 + i32.const 1059 + i32.const 3 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 400 - call $~lib/array/Array<~lib/string/String>#constructor + i32.const 2 + i32.const 3 + i32.const 11424 + call $~lib/rt/__newArray + local.tee $0 + i32.store offset=52 + global.get $~lib/memory/__stack_pointer + i32.const 1 + i32.const 2 + i32.const 3 + i32.const 11456 + call $~lib/rt/__newArray local.tee $1 + i32.store offset=56 + global.get $~lib/memory/__stack_pointer + i32.const 2 + i32.const 2 + i32.const 3 + i32.const 11488 + call $~lib/rt/__newArray + local.tee $2 + i32.store offset=48 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.const 2 + i32.const 3 + i32.const 11520 + call $~lib/rt/__newArray + local.tee $3 + i32.store offset=28 + local.get $0 + call $~lib/array/Array#toString + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 i32.store - loop $for-loop|053 - local.get $0 - i32.const 400 - i32.lt_s - if - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - call $~lib/math/NativeMath.random - f64.const 32 - f64.mul - i32.trunc_f64_s - call $std/array/createRandomString - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=8 - local.get $1 - local.get $0 - local.get $3 - call $~lib/array/Array<~lib/array/Array>#__set - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|053 - end - end global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer + i32.const 8752 + i32.store offset=8 + local.get $0 + i32.const 8752 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1552 + i32.const 1069 + i32.const 3 + call $~lib/builtins/abort + unreachable + end local.get $1 - i32.store offset=60 + call $~lib/array/Array#toString + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store - i32.const 1 - global.set $~argumentsLength - i32.const 0 - local.set $0 global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check + i32.const 11104 + i32.store offset=8 + local.get $0 + i32.const 11104 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1552 + i32.const 1070 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + call $~lib/array/Array#toString + local.set $0 global.get $~lib/memory/__stack_pointer - i32.const 0 + local.get $0 i32.store - block $1of111 - block $0of112 - block $outOfRange13 - global.get $~argumentsLength - i32.const 1 - i32.sub - br_table $0of112 $1of111 $outOfRange13 - end - unreachable - end - i32.const 8944 - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 8944 - 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 1071 + i32.const 3 + call $~lib/builtins/abort + unreachable end - local.get $1 + local.get $3 + 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 11600 + i32.store offset=8 local.get $0 - call $std/array/assertSorted<~lib/array/Array> - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 2 + i32.const 11600 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1552 + i32.const 1072 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 3 i32.const 0 - i32.const 31 - i32.const 8976 + i32.const 32 + i32.const 11648 call $~lib/rt/__newArray local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=20 - global.get $~lib/memory/__stack_pointer - i32.const 9072 - i32.store offset=68 + i32.store offset=64 global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -20597,14 +17719,14 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store + global.get $~lib/memory/__stack_pointer + i32.const 9072 + i32.store local.get $0 i32.load offset=4 local.get $0 i32.load offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 9072 - i32.store - call $~lib/util/string/joinBooleanArray + call $~lib/util/string/joinIntegerArray local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 @@ -20614,134 +17736,125 @@ local.get $0 i32.store global.get $~lib/memory/__stack_pointer - i32.const 9104 + i32.const 11680 i32.store offset=8 local.get $0 - i32.const 9104 + i32.const 11680 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1552 - i32.const 1049 + i32.const 1074 i32.const 3 call $~lib/builtins/abort unreachable end i32.const 3 - i32.const 2 - i32.const 3 - i32.const 9152 + i32.const 1 + i32.const 33 + i32.const 11712 call $~lib/rt/__newArray local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=20 + i32.store offset=64 global.get $~lib/memory/__stack_pointer - i32.const 8752 - i32.store offset=68 - local.get $0 - i32.const 8752 - call $~lib/array/Array#join - local.set $0 + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check global.get $~lib/memory/__stack_pointer - local.get $0 + i32.const 0 i32.store global.get $~lib/memory/__stack_pointer - i32.const 9504 - i32.store offset=8 - local.get $0 - i32.const 9504 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 1552 - i32.const 1050 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 3 - i32.const 2 - i32.const 7 - i32.const 9536 - call $~lib/rt/__newArray - local.set $0 - global.get $~lib/memory/__stack_pointer + i32.const 9072 + i32.store local.get $0 - i32.store offset=20 - global.get $~lib/memory/__stack_pointer - i32.const 9568 - i32.store offset=68 + i32.load offset=4 local.get $0 - i32.const 9568 - call $~lib/array/Array#join + i32.load offset=12 + call $~lib/util/string/joinIntegerArray local.set $0 global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer local.get $0 i32.store global.get $~lib/memory/__stack_pointer - i32.const 9504 + i32.const 11744 i32.store offset=8 local.get $0 - i32.const 9504 + i32.const 11744 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1552 - i32.const 1051 + i32.const 1075 i32.const 3 call $~lib/builtins/abort unreachable end - i32.const 2 - i32.const 2 i32.const 3 - i32.const 9600 + i32.const 3 + i32.const 34 + i32.const 11792 call $~lib/rt/__newArray local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=20 + i32.store offset=64 global.get $~lib/memory/__stack_pointer - i32.const 9632 - i32.store offset=68 + 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 + i32.const 9072 + i32.store local.get $0 - i32.const 9632 - call $~lib/array/Array#join + i32.load offset=4 + local.get $0 + i32.load offset=12 + call $~lib/util/string/joinIntegerArray local.set $0 global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer local.get $0 i32.store global.get $~lib/memory/__stack_pointer - i32.const 9664 + i32.const 11840 i32.store offset=8 local.get $0 - i32.const 9664 + i32.const 11840 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1552 - i32.const 1052 + i32.const 1076 i32.const 3 call $~lib/builtins/abort unreachable end - i32.const 6 + i32.const 4 i32.const 3 - i32.const 10 - i32.const 9744 + i32.const 35 + i32.const 11920 call $~lib/rt/__newArray local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=20 - global.get $~lib/memory/__stack_pointer - i32.const 9824 - i32.store offset=68 + i32.store offset=64 global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -20750,14 +17863,14 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store + global.get $~lib/memory/__stack_pointer + i32.const 9072 + i32.store local.get $0 i32.load offset=4 local.get $0 i32.load offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 9824 - i32.store - call $~lib/util/string/joinFloatArray + call $~lib/util/string/joinIntegerArray local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 @@ -20767,106 +17880,145 @@ local.get $0 i32.store global.get $~lib/memory/__stack_pointer - i32.const 10992 + i32.const 11984 i32.store offset=8 local.get $0 - i32.const 10992 + i32.const 11984 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1552 - i32.const 1053 + i32.const 1077 i32.const 3 call $~lib/builtins/abort unreachable end - i32.const 3 + global.get $~lib/memory/__stack_pointer + i32.const 7 i32.const 2 i32.const 27 - i32.const 11136 + i32.const 12096 call $~lib/rt/__newArray + local.tee $0 + i32.store offset=44 + 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 offset=20 + i32.store global.get $~lib/memory/__stack_pointer - i32.const 8752 - i32.store offset=68 + i32.const 12144 + i32.store offset=8 local.get $0 - i32.const 8752 - call $~lib/array/Array<~lib/string/String|null>#join + i32.const 12144 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1552 + i32.const 1081 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 4 + i32.const 2 + i32.const 27 + i32.const 12256 + call $~lib/rt/__newArray + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=64 + 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 11104 + i32.const 12304 i32.store offset=8 local.get $0 - i32.const 11104 + i32.const 12304 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1552 - i32.const 1054 + i32.const 1082 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3 i32.const 2 - i32.const 11 + i32.const 2 + i32.const 22 i32.const 0 call $~lib/rt/__newArray local.tee $0 - i32.store offset=60 + i32.store offset=40 global.get $~lib/memory/__stack_pointer local.get $0 i32.load offset=4 - i32.store offset=56 + i32.store offset=60 local.get $0 i32.const 0 - i32.const 0 - call $std/array/Ref#constructor + i32.const 2 + i32.const 2 + i32.const 3 + i32.const 12336 + call $~lib/rt/__newArray call $~lib/array/Array#__uset local.get $0 i32.const 1 - i32.const 0 - call $~lib/array/Array#__uset - local.get $0 i32.const 2 - i32.const 0 - call $std/array/Ref#constructor + i32.const 2 + i32.const 3 + i32.const 12368 + call $~lib/rt/__newArray call $~lib/array/Array#__uset local.get $0 - i32.store offset=56 + i32.store offset=60 global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=20 + 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 i32.const 9072 - i32.store offset=68 + i32.store + local.get $0 + i32.load offset=4 local.get $0 - call $~lib/array/Array#join + i32.load offset=12 + call $~lib/util/string/joinReferenceArray<~lib/array/Array> local.set $0 global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer local.get $0 i32.store global.get $~lib/memory/__stack_pointer - i32.const 11232 + i32.const 12400 i32.store offset=8 local.get $0 - i32.const 11232 + i32.const 12400 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1552 - i32.const 1056 + i32.const 1085 i32.const 3 call $~lib/builtins/abort unreachable @@ -20875,117 +18027,133 @@ global.get $~lib/memory/__stack_pointer i32.const 2 i32.const 2 - i32.const 8 + i32.const 36 i32.const 0 call $~lib/rt/__newArray local.tee $0 - i32.store offset=60 + i32.store offset=40 global.get $~lib/memory/__stack_pointer local.get $0 i32.load offset=4 - i32.store offset=64 + i32.store offset=36 local.get $0 i32.const 0 + i32.const 2 i32.const 0 - call $std/array/Ref#constructor + i32.const 6 + i32.const 12448 + call $~lib/rt/__newArray call $~lib/array/Array#__uset local.get $0 i32.const 1 + i32.const 2 i32.const 0 - call $std/array/Ref#constructor + i32.const 6 + i32.const 12480 + call $~lib/rt/__newArray call $~lib/array/Array#__uset local.get $0 - i32.store offset=64 + i32.store offset=36 global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=20 + 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 i32.const 9072 - i32.store offset=68 + i32.store + local.get $0 + i32.load offset=4 local.get $0 - call $~lib/array/Array#join + i32.load offset=12 + call $~lib/util/string/joinReferenceArray<~lib/array/Array> local.set $0 global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer local.get $0 i32.store global.get $~lib/memory/__stack_pointer - i32.const 11328 + i32.const 12400 i32.store offset=8 local.get $0 - i32.const 11328 + i32.const 12400 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1552 - i32.const 1059 + i32.const 1088 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 0 + global.get $~lib/memory/__stack_pointer + i32.const 1 i32.const 2 - i32.const 3 - i32.const 11424 + i32.const 38 + i32.const 0 call $~lib/rt/__newArray local.tee $0 - i32.store offset=56 + i32.store offset=40 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.load offset=4 + i32.store offset=32 global.get $~lib/memory/__stack_pointer i32.const 1 i32.const 2 - i32.const 3 - i32.const 11456 + i32.const 37 + i32.const 0 call $~lib/rt/__newArray local.tee $1 - i32.store offset=60 - global.get $~lib/memory/__stack_pointer - i32.const 2 - i32.const 2 - i32.const 3 - i32.const 11488 - call $~lib/rt/__newArray - local.tee $3 - i32.store offset=52 + i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 4 + local.get $1 + i32.load offset=4 + i32.store offset=16 + local.get $1 + i32.const 0 + i32.const 1 i32.const 2 - i32.const 3 - i32.const 11520 + i32.const 7 + i32.const 12512 call $~lib/rt/__newArray - local.tee $2 - i32.store offset=32 - global.get $~lib/memory/__stack_pointer + call $~lib/array/Array#__uset local.get $0 - i32.store offset=20 + i32.const 0 + local.get $1 + call $~lib/array/Array#__uset local.get $0 - call $~lib/array/Array#toString - local.set $0 + i32.store offset=32 global.get $~lib/memory/__stack_pointer - local.get $0 + 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 - i32.const 8752 - i32.store offset=8 + i32.const 9072 + i32.store local.get $0 - i32.const 8752 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 1552 - i32.const 1069 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=20 - local.get $1 - call $~lib/array/Array#toString + i32.load offset=4 + local.get $0 + i32.load offset=12 + call $~lib/util/string/joinReferenceArray<~lib/array/Array<~lib/array/Array>> local.set $0 global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer local.get $0 i32.store global.get $~lib/memory/__stack_pointer @@ -20998,280 +18166,307 @@ if i32.const 0 i32.const 1552 - i32.const 1070 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=20 - local.get $3 - 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 1071 + i32.const 1091 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 $~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 11600 - i32.store offset=8 - local.get $0 - i32.const 11600 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 1552 - i32.const 1072 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 3 + i32.const 4 + i32.const 2 + i32.const 22 i32.const 0 - i32.const 32 - i32.const 11648 call $~lib/rt/__newArray - local.set $0 + local.tee $0 + i32.store offset=32 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=20 - 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 - global.get $~lib/memory/__stack_pointer + i32.load offset=4 + i32.store offset=36 local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 9072 - i32.store offset=4 - 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 + i32.const 2 + i32.const 3 + i32.const 12544 + call $~lib/rt/__newArray + call $~lib/array/Array#__uset local.get $0 - i32.load offset=4 + i32.const 1 + i32.const 3 + i32.const 2 + i32.const 3 + i32.const 12576 + call $~lib/rt/__newArray + call $~lib/array/Array#__uset local.get $0 - i32.load offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 9072 - i32.store - call $~lib/util/string/joinIntegerArray - 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 - global.get $~lib/memory/__stack_pointer + i32.const 2 + i32.const 3 + i32.const 2 + i32.const 3 + i32.const 12608 + call $~lib/rt/__newArray + call $~lib/array/Array#__uset local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 11680 - i32.store offset=8 + i32.const 3 + i32.const 3 + i32.const 2 + i32.const 3 + i32.const 12640 + call $~lib/rt/__newArray + call $~lib/array/Array#__uset + local.get $0 + i32.store offset=36 + global.get $~lib/memory/__stack_pointer local.get $0 - i32.const 11680 - call $~lib/string/String.__eq - i32.eqz + call $~lib/array/Array<~lib/array/Array>#flat + local.tee $0 + i32.store offset=32 + local.get $0 + i32.load offset=12 + i32.const 10 + i32.ne if i32.const 0 i32.const 1552 - i32.const 1074 + i32.const 1098 i32.const 3 call $~lib/builtins/abort unreachable end - i32.const 3 - i32.const 1 - i32.const 33 - i32.const 11712 - call $~lib/rt/__newArray - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=20 - 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 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store + i32.const 0 + local.set $1 + loop $for-loop|1 + local.get $1 + i32.const 10 + i32.lt_s + if + local.get $0 + local.get $1 + call $~lib/array/Array#__get + local.get $1 + i32.ne + if + i32.const 0 + i32.const 1552 + i32.const 1100 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|1 + end + end global.get $~lib/memory/__stack_pointer - i32.const 9072 - i32.store offset=4 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 2 + i32.const 39 i32.const 0 - i32.store + call $~lib/rt/__newArray + local.tee $0 + i32.store offset=60 + global.get $~lib/memory/__stack_pointer local.get $0 i32.load offset=4 + i32.store offset=44 local.get $0 - i32.load offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 9072 - i32.store - call $~lib/util/string/joinIntegerArray - 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 + i32.const 0 + i32.const 1 + i32.const 2 + i32.const 27 + i32.const 12704 + call $~lib/rt/__newArray + call $~lib/array/Array#__uset + local.get $0 + i32.const 1 + i32.const 3 + i32.const 2 + i32.const 27 + i32.const 12800 + call $~lib/rt/__newArray + call $~lib/array/Array#__uset + local.get $0 + i32.const 2 + i32.const 3 + i32.const 2 + i32.const 27 + i32.const 12928 + call $~lib/rt/__newArray + call $~lib/array/Array#__uset + local.get $0 + i32.const 3 + i32.const 1 + i32.const 2 + i32.const 27 + i32.const 12992 + call $~lib/rt/__newArray + call $~lib/array/Array#__uset + local.get $0 + i32.store offset=44 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store + call $~lib/array/Array<~lib/array/Array<~lib/string/String|null>>#flat + local.tee $0 + i32.store offset=60 global.get $~lib/memory/__stack_pointer - i32.const 11744 - i32.store offset=8 + i32.const 8 + i32.const 2 + i32.const 27 + i32.const 13024 + call $~lib/rt/__newArray + local.tee $2 + i32.store offset=48 local.get $0 - i32.const 11744 - call $~lib/string/String.__eq - i32.eqz + i32.load offset=12 + i32.const 8 + i32.ne if i32.const 0 i32.const 1552 - i32.const 1075 + i32.const 1106 i32.const 3 call $~lib/builtins/abort unreachable end - i32.const 3 - i32.const 3 - i32.const 34 - i32.const 11792 - call $~lib/rt/__newArray - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=20 + i32.const 0 + local.set $1 + loop $for-loop|2 + local.get $1 + local.get $2 + i32.load offset=12 + i32.lt_s + if + local.get $0 + local.get $1 + call $~lib/array/Array#__get + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store + local.get $2 + local.get $1 + call $~lib/array/Array#__get + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=8 + local.get $3 + local.get $4 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1552 + i32.const 1108 + i32.const 5 + call $~lib/builtins/abort + unreachable + 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.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store + i32.const 2 + i32.const 2 + i32.const 22 + i32.const 0 + call $~lib/rt/__newArray + local.tee $0 + i32.store offset=28 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 9072 - i32.store offset=4 - 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.load offset=4 + i32.store offset=56 + local.get $0 i32.const 0 - i32.store + i32.const 0 + i32.const 2 + i32.const 3 + i32.const 13088 + call $~lib/rt/__newArray + call $~lib/array/Array#__uset local.get $0 - i32.load offset=4 + i32.const 1 + i32.const 0 + i32.const 2 + i32.const 3 + i32.const 13120 + call $~lib/rt/__newArray + call $~lib/array/Array#__uset local.get $0 - i32.load offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 9072 - i32.store - call $~lib/util/string/joinIntegerArray + i32.store offset=56 + local.get $0 + call $~lib/array/Array<~lib/array/Array>#flat 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 - global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 11840 - i32.store offset=8 local.get $0 - i32.const 11840 - call $~lib/string/String.__eq - i32.eqz + i32.load offset=12 if i32.const 0 i32.const 1552 - i32.const 1076 + i32.const 1112 i32.const 3 call $~lib/builtins/abort unreachable end - i32.const 4 - i32.const 3 - i32.const 35 - i32.const 11920 - call $~lib/rt/__newArray - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=20 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub + i32.const 0 + global.set $std/array/arr + i32.const 30004 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 - local.get $0 - i32.store + global.get $~lib/rt/itcms/state + i32.const 0 + i32.gt_s + if + loop $while-continue|070 + global.get $~lib/rt/itcms/state + if + call $~lib/rt/itcms/step + drop + br $while-continue|070 + 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 9072 - i32.store offset=4 + i32.const 72 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/array/Array<~lib/string/String>#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 @@ -21280,151 +18475,178 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - local.get $0 - i32.load offset=4 + local.get $2 local.get $0 i32.load offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 9072 - i32.store - call $~lib/util/string/joinIntegerArray + local.tee $3 + i32.ge_s + i32.const 1 + local.get $3 + select + 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 + local.get $0 + i32.load offset=4 local.set $0 + 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 + local.get $4 + local.get $1 + call $~lib/string/String.__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/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 8 - i32.add + i32.sub global.set $~lib/memory/__stack_pointer + call $~stack_check global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 11984 - i32.store offset=8 - local.get $0 - i32.const 11984 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 1552 - i32.const 1077 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 7 - i32.const 2 - i32.const 27 - i32.const 12096 - call $~lib/rt/__newArray - local.tee $0 - i32.store offset=48 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=20 - 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 12144 - i32.store offset=8 - local.get $0 - i32.const 12144 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 1552 - i32.const 1081 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 4 - i32.const 2 - i32.const 27 - i32.const 12256 - call $~lib/rt/__newArray - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=20 - local.get $0 - call $~lib/array/Array<~lib/string/String|null>#toString - local.set $0 + i64.const 0 + i64.store global.get $~lib/memory/__stack_pointer - local.get $0 + i32.const 16 + i32.const 3 + call $~lib/rt/itcms/__new + local.tee $1 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 12304 + local.get $1 + i32.const 0 + call $~lib/array/Array#set:buffer + 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 0 + i32.store offset=12 local.get $0 - i32.const 12304 - call $~lib/string/String.__eq - i32.eqz + i32.const 268435455 + i32.gt_u if - i32.const 0 - i32.const 1552 - i32.const 1082 - i32.const 3 + i32.const 1056 + i32.const 1104 + i32.const 58 + i32.const 60 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 2 - i32.const 2 - i32.const 22 - i32.const 0 - call $~lib/rt/__newArray - local.tee $0 - i32.store offset=44 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.load offset=4 - i32.store offset=64 - local.get $0 - i32.const 0 - i32.const 2 - i32.const 2 - i32.const 3 - i32.const 12336 - call $~lib/rt/__newArray - call $~lib/array/Array#__uset local.get $0 - i32.const 1 - i32.const 2 i32.const 2 - i32.const 3 - i32.const 12368 - call $~lib/rt/__newArray - call $~lib/array/Array#__uset - local.get $0 - i32.store offset=64 - global.get $~lib/memory/__stack_pointer + i32.shl + local.tee $3 + i32.const 0 + call $~lib/rt/itcms/__new + local.tee $2 + i32.store offset=4 + local.get $2 + i32.const 0 + local.get $3 + call $~lib/memory/memory.fill + local.get $1 + local.get $2 + call $~lib/array/Array#set:buffer + 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=20 + 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 $std/array/Ref#constructor (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 call $~stack_check global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store + i32.const 0 + i32.store global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.const 4 + call $~lib/rt/itcms/__new + local.tee $1 + i32.store + local.get $1 local.get $0 i32.store global.get $~lib/memory/__stack_pointer - i32.const 9072 - i32.store offset=4 + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (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 @@ -21433,188 +18655,443 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - local.get $0 - i32.load offset=4 - local.get $0 - i32.load offset=12 global.get $~lib/memory/__stack_pointer - i32.const 9072 + local.get $0 + local.get $1 + i32.shl + local.tee $4 + local.set $5 + local.get $4 + i32.const 0 + call $~lib/rt/itcms/__new + local.set $1 + local.get $3 + if + local.get $1 + local.get $3 + local.get $5 + call $~lib/memory/memory.copy + end + local.get $1 + local.tee $3 i32.store - call $~lib/util/string/joinReferenceArray<~lib/array/Array> - local.set $0 + i32.const 16 + local.get $2 + 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 $std/array/internalCapacity (param $0 i32) (result i32) global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add + 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 local.get $0 + i32.load + local.tee $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 12400 - i32.store offset=8 + 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) + (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 + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store local.get $0 - i32.const 12400 - call $~lib/string/String.__eq - i32.eqz + i32.load offset=12 + local.tee $3 + local.get $1 + i32.load offset=12 + i32.const 0 + local.get $1 + select + local.tee $4 + i32.add + local.tee $2 + i32.const 268435455 + i32.gt_u if - i32.const 0 - i32.const 1552 - i32.const 1085 - i32.const 3 + i32.const 1056 + i32.const 1104 + i32.const 222 + i32.const 60 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 2 + local.get $2 i32.const 2 - i32.const 36 + i32.const 3 i32.const 0 call $~lib/rt/__newArray + local.tee $2 + i32.store + local.get $2 + i32.load offset=4 + local.tee $5 + local.get $0 + i32.load offset=4 + local.get $3 + i32.const 2 + i32.shl local.tee $0 - i32.store offset=44 - global.get $~lib/memory/__stack_pointer + call $~lib/memory/memory.copy local.get $0 + local.get $5 + i32.add + local.get $1 i32.load offset=4 - i32.store offset=40 + local.get $4 + i32.const 2 + i32.shl + call $~lib/memory/memory.copy + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + ) + (func $~lib/array/Array#slice (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 + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 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 $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 $3 i32.const 2 + i32.const 3 i32.const 0 - i32.const 6 - i32.const 12448 call $~lib/rt/__newArray - call $~lib/array/Array#__uset + local.tee $2 + i32.store + local.get $2 + i32.load offset=4 local.get $0 - i32.const 1 + i32.load offset=4 + local.get $1 i32.const 2 - i32.const 0 - i32.const 6 - i32.const 12480 - call $~lib/rt/__newArray - call $~lib/array/Array#__uset - local.get $0 - i32.store offset=40 + i32.shl + i32.add + local.get $3 + i32.const 2 + i32.shl + call $~lib/memory/memory.copy global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=20 + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + ) + (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.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 - local.get $0 + i32.const 0 i32.store global.get $~lib/memory/__stack_pointer - i32.const 9072 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 4 + 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 $1 i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer + local.tee $4 + local.get $2 + local.get $4 + i32.lt_s + select + local.tee $2 + i32.const 0 + local.get $2 i32.const 0 + i32.gt_s + select + local.tee $2 + i32.const 2 + i32.const 3 + i32.const 0 + call $~lib/rt/__newArray + local.tee $4 i32.store + local.get $4 + i32.load offset=4 local.get $0 i32.load offset=4 + local.tee $5 + local.get $1 + i32.const 2 + i32.shl + i32.add + local.tee $6 + local.get $2 + i32.const 2 + i32.shl + call $~lib/memory/memory.copy + local.get $3 + local.get $1 + local.get $2 + i32.add + local.tee $1 + i32.ne + if + local.get $6 + local.get $5 + local.get $1 + i32.const 2 + i32.shl + i32.add + local.get $3 + local.get $1 + i32.sub + i32.const 2 + i32.shl + call $~lib/memory/memory.copy + end local.get $0 - i32.load offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 9072 - i32.store - call $~lib/util/string/joinReferenceArray<~lib/array/Array> - local.set $0 + local.get $3 + local.get $2 + i32.sub + i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer + local.get $4 + ) + (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.add + i32.const 4 + i32.sub global.set $~lib/memory/__stack_pointer + call $~stack_check global.get $~lib/memory/__stack_pointer - local.get $0 + i32.const 0 i32.store global.get $~lib/memory/__stack_pointer - i32.const 12400 - i32.store offset=8 + i32.const 2 local.get $0 - i32.const 12400 - call $~lib/string/String.__eq - i32.eqz - if + 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 - i32.const 1552 - i32.const 1088 - i32.const 3 - call $~lib/builtins/abort - unreachable + 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 - global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1 + local.tee $1 + i32.sub + local.tee $2 + local.get $2 i32.const 2 - i32.const 38 + i32.gt_s + select + local.tee $2 i32.const 0 - call $~lib/rt/__newArray - local.tee $0 - i32.store offset=44 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.load offset=4 - i32.store offset=36 - global.get $~lib/memory/__stack_pointer - i32.const 1 + local.get $2 + i32.const 0 + i32.gt_s + select + local.tee $2 i32.const 2 - i32.const 37 + i32.const 8 i32.const 0 call $~lib/rt/__newArray - local.tee $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $1 + local.tee $4 + i32.store + local.get $4 i32.load offset=4 - i32.store offset=16 + local.get $0 + i32.load offset=4 + local.tee $5 local.get $1 - i32.const 0 - i32.const 1 i32.const 2 - i32.const 7 - i32.const 12512 - call $~lib/rt/__newArray - call $~lib/array/Array#__uset - local.get $0 - i32.const 0 + i32.shl + i32.add + local.tee $6 + local.get $2 + i32.const 2 + i32.shl + call $~lib/memory/memory.copy + local.get $3 local.get $1 - call $~lib/array/Array#__uset - local.get $0 - i32.store offset=36 - global.get $~lib/memory/__stack_pointer + local.get $2 + i32.add + local.tee $1 + i32.ne + if + local.get $6 + local.get $5 + local.get $1 + i32.const 2 + i32.shl + i32.add + local.get $3 + local.get $1 + i32.sub + i32.const 2 + i32.shl + call $~lib/memory/memory.copy + end local.get $0 - i32.store offset=20 - global.get $~lib/memory/__stack_pointer - i32.const 8 + local.get $3 + local.get $2 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 - local.get $0 - i32.store + i32.store offset=12 global.get $~lib/memory/__stack_pointer - i32.const 9072 - i32.store offset=4 + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $4 + ) + (func $~lib/array/Array#__get (param $0 i32) (param $1 i32) (result i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -21623,468 +19100,435 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - local.get $0 - i32.load offset=4 + local.get $1 local.get $0 i32.load offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 9072 - i32.store - call $~lib/util/string/joinReferenceArray<~lib/array/Array<~lib/array/Array>> - 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 + i32.ge_u + if + i32.const 1344 + i32.const 1104 + i32.const 92 + i32.const 42 + call $~lib/builtins/abort + unreachable + end 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 - global.get $~lib/memory/__stack_pointer - i32.const 11104 - i32.store offset=8 local.get $0 - i32.const 11104 - call $~lib/string/String.__eq i32.eqz if - i32.const 0 - i32.const 1552 - i32.const 1091 - i32.const 3 + i32.const 5696 + i32.const 1104 + i32.const 96 + i32.const 40 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 $~lib/array/Array#splice (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 2 - i32.const 22 - i32.const 0 - call $~lib/rt/__newArray - local.tee $0 - i32.store offset=36 + 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 local.get $0 - i32.load offset=4 - i32.store offset=40 - local.get $0 + i32.load offset=12 + local.tee $3 + local.get $3 i32.const 0 + i32.gt_s + select + local.set $2 + global.get $~lib/memory/__stack_pointer i32.const 1 - i32.const 2 - i32.const 3 - i32.const 12544 - call $~lib/rt/__newArray - call $~lib/array/Array#__uset - local.get $0 + local.get $3 + local.get $2 + i32.sub + local.tee $1 + local.get $1 i32.const 1 - i32.const 3 - i32.const 2 - i32.const 3 - i32.const 12576 - call $~lib/rt/__newArray - call $~lib/array/Array#__uset - local.get $0 - i32.const 2 - i32.const 3 - i32.const 2 - i32.const 3 - i32.const 12608 - call $~lib/rt/__newArray - call $~lib/array/Array#__uset - local.get $0 - i32.const 3 - i32.const 3 + 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 3 - i32.const 12640 + i32.const 11 + i32.const 0 call $~lib/rt/__newArray - call $~lib/array/Array#__uset - local.get $0 - i32.store offset=40 - global.get $~lib/memory/__stack_pointer - local.get $0 + local.tee $4 i32.store - global.get $~lib/memory/__stack_pointer + local.get $4 + i32.load offset=4 local.get $0 - call $~lib/array/Array<~lib/array/Array>#flat - local.tee $1 - i32.store offset=36 - global.get $~lib/memory/__stack_pointer + i32.load offset=4 + local.tee $5 + local.get $2 + i32.const 2 + i32.shl + i32.add + local.tee $6 local.get $1 - i32.store + i32.const 2 + i32.shl + call $~lib/memory/memory.copy + local.get $3 local.get $1 - i32.load offset=12 - i32.const 10 + local.get $2 + i32.add + local.tee $2 i32.ne if - i32.const 0 - i32.const 1552 - i32.const 1098 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 0 - local.set $0 - loop $for-loop|1 - local.get $0 - i32.const 10 - i32.lt_s - if - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $1 - local.get $0 - call $~lib/array/Array#__get - local.get $0 - i32.ne - if - i32.const 0 - i32.const 1552 - i32.const 1100 - 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 $6 + local.get $5 + local.get $2 + i32.const 2 + i32.shl + i32.add + local.get $3 + local.get $2 + i32.sub + i32.const 2 + i32.shl + call $~lib/memory/memory.copy end + local.get $0 + local.get $3 + local.get $1 + i32.sub + i32.store offset=12 global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $4 + ) + (func $~lib/array/Array#__get (param $0 i32) (param $1 i32) (result i32) global.get $~lib/memory/__stack_pointer i32.const 4 - i32.const 2 - i32.const 39 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer i32.const 0 - call $~lib/rt/__newArray - local.tee $0 - i32.store offset=64 + i32.store + local.get $1 + local.get $0 + i32.load offset=12 + i32.ge_u + if + i32.const 1344 + i32.const 1104 + i32.const 92 + i32.const 42 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer local.get $0 i32.load offset=4 - i32.store offset=48 - local.get $0 - i32.const 0 - i32.const 1 - i32.const 2 - i32.const 27 - i32.const 12704 - call $~lib/rt/__newArray - call $~lib/array/Array#__uset - local.get $0 - i32.const 1 - i32.const 3 - i32.const 2 - i32.const 27 - i32.const 12800 - call $~lib/rt/__newArray - call $~lib/array/Array#__uset - local.get $0 - i32.const 2 - i32.const 3 - i32.const 2 - i32.const 27 - i32.const 12928 - call $~lib/rt/__newArray - call $~lib/array/Array#__uset - local.get $0 - i32.const 3 - i32.const 1 + local.get $1 i32.const 2 - i32.const 27 - i32.const 12992 - call $~lib/rt/__newArray - call $~lib/array/Array#__uset - local.get $0 - i32.store offset=48 - global.get $~lib/memory/__stack_pointer - local.get $0 + i32.shl + i32.add + i32.load + 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 - call $~lib/array/Array<~lib/array/Array<~lib/string/String|null>>#flat - local.tee $0 - i32.store offset=64 + ) + (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 2 - i32.const 27 - i32.const 13024 - call $~lib/rt/__newArray - local.tee $3 - i32.store offset=52 + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check global.get $~lib/memory/__stack_pointer - local.get $0 + i32.const 0 i32.store + global.get $~lib/memory/__stack_pointer local.get $0 i32.load offset=12 - i32.const 8 - i32.ne - if - i32.const 0 - i32.const 1552 - i32.const 1106 - i32.const 3 - call $~lib/builtins/abort - unreachable - end + local.tee $5 + i32.const 2 + i32.const 3 i32.const 0 - local.set $1 - loop $for-loop|2 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store - local.get $1 - local.get $3 + call $~lib/rt/__newArray + local.tee $3 + i32.store + local.get $3 + i32.load offset=4 + local.set $3 + loop $for-loop|0 + local.get $2 + local.get $5 + local.get $0 i32.load offset=12 + local.tee $4 + local.get $4 + local.get $5 + i32.gt_s + select i32.lt_s if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=20 - local.get $0 - local.get $1 - 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 $3 - i32.store offset=20 + i32.const 2 + i32.shl + local.tee $4 + local.get $0 + i32.load offset=4 + i32.add + i32.load + local.set $6 + i32.const 3 + global.set $~argumentsLength local.get $3 - local.get $1 - call $~lib/array/Array#__get - local.set $4 - global.get $~lib/memory/__stack_pointer local.get $4 - i32.store offset=8 + i32.add + local.get $6 local.get $2 - local.get $4 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 1552 - i32.const 1108 - i32.const 5 - call $~lib/builtins/abort - unreachable - end + local.get $0 local.get $1 + i32.load + call_indirect (type $i32_i32_i32_=>_i32) + i32.store + 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/array/Array#filter (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 + call $~stack_check global.get $~lib/memory/__stack_pointer - i32.const 2 - i32.const 2 - i32.const 22 i32.const 0 - call $~lib/rt/__newArray - local.tee $0 - i32.store offset=32 + i32.store global.get $~lib/memory/__stack_pointer - local.get $0 - i32.load offset=4 - i32.store offset=60 - local.get $0 - i32.const 0 i32.const 0 i32.const 2 i32.const 3 - i32.const 13088 - call $~lib/rt/__newArray - call $~lib/array/Array#__uset - local.get $0 - i32.const 1 i32.const 0 - i32.const 2 - i32.const 3 - i32.const 13120 call $~lib/rt/__newArray - call $~lib/array/Array#__uset - local.get $0 - i32.store offset=60 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - call $~lib/array/Array<~lib/array/Array>#flat - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 + local.tee $4 i32.store local.get $0 i32.load offset=12 - if - i32.const 0 - i32.const 1552 - i32.const 1112 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 0 - global.set $std/array/arr - i32.const 30004 - global.set $~lib/memory/__stack_pointer - global.get $~lib/rt/itcms/state - i32.const 0 - i32.gt_s - if - loop $while-continue|058 - global.get $~lib/rt/itcms/state - if - call $~lib/rt/itcms/step - drop - br $while-continue|058 - end - end - end - call $~lib/rt/itcms/step - drop - loop $while-continue|1 - global.get $~lib/rt/itcms/state + local.set $5 + loop $for-loop|0 + local.get $2 + local.get $5 + local.get $0 + i32.load offset=12 + local.tee $3 + local.get $3 + local.get $5 + i32.gt_s + select + i32.lt_s if - call $~lib/rt/itcms/step - drop - br $while-continue|1 + local.get $0 + i32.load offset=4 + local.get $2 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $3 + i32.const 3 + global.set $~argumentsLength + local.get $3 + local.get $2 + local.get $0 + local.get $1 + i32.load + call_indirect (type $i32_i32_i32_=>_i32) + if + local.get $4 + local.get $3 + call $~lib/array/Array#push + drop + end + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|0 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 72 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer + local.get $4 ) - (func $std/array/ArrayU32#constructor (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) + (func $~lib/array/Array#sort@varargs (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 call $~stack_check global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - local.get $0 - i32.eqz - if + i32.const 0 + i32.store + block $1of1 + block $0of1 + block $outOfRange + global.get $~argumentsLength + br_table $0of1 $1of1 $outOfRange + end + unreachable + end + i32.const 8064 + local.set $1 global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.const 40 - call $~lib/rt/itcms/__new - local.tee $0 + i32.const 8064 i32.store end - global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=4 + local.get $1 + call $~lib/array/Array#sort global.get $~lib/memory/__stack_pointer + i32.const 4 + 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 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 $0 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.const 7 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - end - local.get $0 - i32.const 0 - call $~lib/array/Array#set:buffer - local.get $0 - i32.const 0 - i32.store offset=4 - local.get $0 i32.const 0 - i32.store offset=8 + i32.store + global.get $~lib/memory/__stack_pointer local.get $0 - i32.const 0 - i32.store offset=12 - local.get $1 - i32.const 268435455 - i32.gt_u - if - i32.const 1056 - i32.const 1104 - i32.const 58 - i32.const 60 - call $~lib/builtins/abort - unreachable + call $~lib/array/Array#constructor + local.tee $2 + i32.store + loop $for-loop|0 + local.get $0 + local.get $1 + i32.gt_s + if + 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 - local.get $1 - i32.const 2 - i32.shl - local.tee $3 - i32.const 0 - call $~lib/rt/itcms/__new - local.tee $2 - i32.store offset=4 - local.get $2 - i32.const 0 - local.get $3 - call $~lib/memory/memory.fill - local.get $0 - local.get $2 - call $~lib/array/Array#set:buffer - local.get $0 + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer local.get $2 - i32.store offset=4 - local.get $0 - local.get $3 - i32.store offset=8 - local.get $0 - local.get $1 - i32.store offset=12 + ) + (func $std/array/createRandomOrderedArray (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add + 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 local.get $0 + call $~lib/array/Array#constructor + local.tee $2 i32.store + loop $for-loop|0 + local.get $0 + local.get $1 + i32.gt_s + if + local.get $2 + local.get $1 + call $~lib/math/NativeMath.random + local.get $0 + f64.convert_i32_s + f64.mul + i32.trunc_f64_s + 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 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 + local.get $2 ) - (func $std/array/ArrayU8#constructor (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array<~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 @@ -22093,20 +19537,69 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - local.get $0 - i32.eqz - if + block $folding-inner0 + local.get $0 + i32.load offset=12 + local.tee $2 + i32.const 1 + i32.le_s + br_if $folding-inner0 + local.get $0 + i32.load offset=4 + local.set $3 + local.get $2 + i32.const 2 + i32.eq + if + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.load offset=4 + local.tee $2 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.load + local.tee $4 + i32.store offset=4 + i32.const 2 + global.set $~argumentsLength + local.get $2 + local.get $4 + local.get $1 + i32.load + call_indirect (type $i32_i32_=>_i32) + i32.const 0 + i32.lt_s + if + local.get $3 + local.get $4 + i32.store offset=4 + local.get $3 + local.get $2 + i32.store + end + br $folding-inner0 + end + local.get $3 + local.get $2 + local.get $1 + call $~lib/util/sort/insertionSort<~lib/array/Array> global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.const 41 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + return 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 - global.get $~lib/memory/__stack_pointer + ) + (func $~lib/array/Array<~lib/string/String>#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 @@ -22120,7 +19613,7 @@ if global.get $~lib/memory/__stack_pointer i32.const 16 - i32.const 6 + i32.const 29 call $~lib/rt/itcms/__new local.tee $0 i32.store @@ -22138,7 +19631,7 @@ i32.const 0 i32.store offset=12 local.get $1 - i32.const 1073741820 + i32.const 268435455 i32.gt_u if i32.const 1056 @@ -22150,13 +19643,16 @@ end global.get $~lib/memory/__stack_pointer local.get $1 + i32.const 2 + i32.shl + local.tee $3 i32.const 0 call $~lib/rt/itcms/__new local.tee $2 i32.store offset=4 local.get $2 i32.const 0 - local.get $1 + local.get $3 call $~lib/memory/memory.fill local.get $0 local.get $2 @@ -22165,7 +19661,7 @@ local.get $2 i32.store offset=4 local.get $0 - local.get $1 + local.get $3 i32.store offset=8 local.get $0 local.get $1 @@ -22175,420 +19671,274 @@ 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 ) - (func $~lib/array/Array#sort (param $0 i32) (param $1 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) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 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 - block $folding-inner0 - local.get $0 - i32.load offset=12 - local.tee $2 - i32.const 1 - i32.le_s - br_if $folding-inner0 - local.get $0 - i32.load offset=4 - local.set $5 - local.get $2 - i32.const 2 - i32.eq - if - local.get $5 - i32.load8_u offset=1 - local.set $2 - local.get $5 - i32.load8_u - local.set $3 - i32.const 2 - global.set $~argumentsLength - local.get $2 - local.get $3 - local.get $1 - i32.load - call_indirect (type $i32_i32_=>_i32) - i32.const 0 - i32.lt_s - if - local.get $5 - local.get $3 - i32.store8 offset=1 - local.get $5 - local.get $2 - i32.store8 - end - br $folding-inner0 - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $2 - i32.const 256 - i32.lt_s - if - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $2 - local.set $3 - local.get $1 - local.set $4 - loop $for-loop|0 - local.get $3 - local.get $6 - i32.gt_s - if - local.get $5 - local.get $6 - i32.add - i32.load8_u - local.set $7 - local.get $6 - i32.const 1 - i32.sub - local.set $1 - loop $while-continue|1 - local.get $1 - i32.const 0 - i32.ge_s - if - block $while-break|1 - local.get $1 - local.get $5 - i32.add - i32.load8_u - local.set $8 - i32.const 2 - global.set $~argumentsLength - local.get $7 - local.get $8 - local.get $4 - i32.load - call_indirect (type $i32_i32_=>_i32) - i32.const 0 - i32.ge_s - br_if $while-break|1 - local.get $1 - local.tee $2 - i32.const 1 - i32.sub - local.set $1 - local.get $5 - local.get $2 - i32.const 1 - i32.add - i32.add - local.get $8 - i32.store8 - br $while-continue|1 - end - end - end - local.get $5 - local.get $1 - i32.const 1 - i32.add - i32.add - local.get $7 - i32.store8 - local.get $6 - i32.const 1 - i32.add - local.set $6 - br $for-loop|0 - end - end - else - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $5 - local.get $2 - local.get $1 - call $~lib/util/sort/weakHeapSort - end - 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 8 - i32.add - global.set $~lib/memory/__stack_pointer + i32.const 0 + i32.store + i32.const 0 local.get $0 - ) - (func $~lib/array/Array<~lib/string/String>#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 8 + 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 + i32.load offset=16 + i32.const 1 + i32.shr_u + local.tee $2 local.get $2 - local.get $0 - i32.load offset=12 + i32.const 0 + i32.gt_s + select local.tee $3 - i32.ge_s + local.get $1 + i32.const 0 + local.get $1 + i32.const 0 + i32.gt_s + select + local.tee $1 + local.get $2 + local.get $1 + local.get $2 + i32.lt_s + select + local.tee $1 + local.get $1 + local.get $3 + i32.lt_s + select i32.const 1 + i32.shl + local.tee $4 + local.get $3 + local.get $1 + local.get $1 local.get $3 + i32.gt_s select + i32.const 1 + i32.shl + local.tee $1 + i32.sub + local.tee $3 + i32.eqz if global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - i32.const -1 + i32.const 8752 return end - local.get $2 i32.const 0 - i32.lt_s + local.get $4 + local.get $2 + i32.const 1 + i32.shl + i32.eq + local.get $1 + select if - local.get $2 - local.get $3 + global.get $~lib/memory/__stack_pointer + i32.const 4 i32.add - local.tee $2 - i32.const 0 - local.get $2 - i32.const 0 - i32.gt_s - select - local.set $2 - end - local.get $0 - i32.load offset=4 - local.set $0 - 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 - local.get $2 - return - end - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $while-continue|0 - end + global.set $~lib/memory/__stack_pointer + local.get $0 + return end global.get $~lib/memory/__stack_pointer - i32.const 8 + local.get $3 + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $2 + i32.store + local.get $2 + local.get $0 + local.get $1 + i32.add + local.get $3 + call $~lib/memory/memory.copy + global.get $~lib/memory/__stack_pointer + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - i32.const -1 + local.get $2 ) - (func $~lib/array/Array<~lib/string/String>#filter (param $0 i32) (param $1 i32) (result i32) + (func $~lib/util/string/joinBooleanArray (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 20 + i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 2 - i32.const 29 - i32.const 0 - call $~lib/rt/__newArray - local.tee $4 i32.store - local.get $0 - i32.load offset=12 - local.set $5 - loop $for-loop|0 + local.get $1 + i32.const 1 + i32.sub + local.tee $3 + i32.const 0 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 8752 + return + end + block $folding-inner0 local.get $3 - local.get $5 - local.get $0 - i32.load offset=12 - local.tee $2 - local.get $2 - local.get $5 - i32.gt_s - select - i32.lt_s + i32.eqz if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.load offset=4 - local.get $3 - i32.const 2 - i32.shl - i32.add - i32.load - local.tee $2 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer + i32.const 9008 + i32.const 9040 local.get $0 - i32.store offset=12 - i32.const 3 - global.set $~argumentsLength - local.get $2 + i32.load8_u + select + local.set $0 + br $folding-inner0 + end + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.const 9068 + i32.load + i32.const 1 + i32.shr_u + local.tee $4 + i32.const 5 + i32.add + i32.mul + i32.const 5 + i32.add + local.tee $7 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $1 + i32.store + loop $for-loop|1 local.get $3 - local.get $0 - local.get $1 - i32.load - call_indirect (type $i32_i32_i32_=>_i32) + local.get $5 + i32.gt_s if - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer + local.get $0 + local.get $5 + i32.add + i32.load8_u + local.tee $8 + i32.eqz + i32.const 4 + i32.add + local.set $6 + local.get $1 local.get $2 - i32.store offset=16 - local.get $4 + i32.const 1 + i32.shl + i32.add + i32.const 9008 + i32.const 9040 + local.get $8 + select + local.get $6 + i32.const 1 + i32.shl + call $~lib/memory/memory.copy local.get $2 - call $~lib/array/Array<~lib/string/String>#push - drop + local.get $6 + i32.add + local.set $2 + local.get $4 + if + local.get $1 + local.get $2 + i32.const 1 + i32.shl + i32.add + i32.const 9072 + local.get $4 + i32.const 1 + i32.shl + call $~lib/memory/memory.copy + local.get $2 + local.get $4 + i32.add + local.set $2 + end + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|1 end - local.get $3 - i32.const 1 - i32.add - local.set $3 - br $for-loop|0 end + local.get $0 + local.get $3 + i32.add + i32.load8_u + local.tee $3 + i32.eqz + i32.const 4 + i32.add + local.set $0 + local.get $1 + local.get $2 + i32.const 1 + i32.shl + i32.add + i32.const 9008 + i32.const 9040 + local.get $3 + select + local.get $0 + i32.const 1 + i32.shl + call $~lib/memory/memory.copy + local.get $7 + local.get $0 + local.get $2 + i32.add + local.tee $0 + i32.gt_s + if + local.get $1 + local.get $0 + call $~lib/string/String#substring + local.set $0 + br $folding-inner0 + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + return end global.get $~lib/memory/__stack_pointer - i32.const 20 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $4 - ) - (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 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 16 - i32.const 3 - call $~lib/rt/itcms/__new - local.tee $1 - i32.store - local.get $1 - i32.const 0 - call $~lib/array/Array#set:buffer - 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 0 - i32.store offset=12 - local.get $0 - i32.const 268435455 - i32.gt_u - if - i32.const 1056 - i32.const 1104 - i32.const 58 - i32.const 60 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.const 2 - i32.shl - local.tee $3 - i32.const 0 - call $~lib/rt/itcms/__new - local.tee $2 - i32.store offset=4 - local.get $2 - i32.const 0 - local.get $3 - call $~lib/memory/memory.fill - local.get $1 - local.get $2 - call $~lib/array/Array#set:buffer - 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 8 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 + local.get $0 ) - (func $std/array/Ref#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 4 i32.sub @@ -22597,24 +19947,60 @@ 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 9376 + return + end + i32.const 0 + local.get $0 + i32.sub + local.get $0 + local.get $0 + i32.const 31 + i32.shr_u + local.tee $1 + select + local.tee $2 + call $~lib/util/number/decimalCount32 + local.get $1 + i32.add + local.set $3 global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.const 4 + local.get $3 + i32.const 1 + i32.shl + i32.const 1 call $~lib/rt/itcms/__new - local.tee $1 + local.tee $0 i32.store - local.get $1 local.get $0 - i32.store + local.get $2 + local.get $3 + call $~lib/util/number/utoa_dec_simple + 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 - local.get $1 + local.get $0 ) - (func $~lib/rt/__newArray (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (func $~lib/util/string/joinIntegerArray (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 @@ -22623,56 +20009,180 @@ 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 + i32.const 1 + i32.sub local.tee $4 - local.set $5 - local.get $4 i32.const 0 - call $~lib/rt/itcms/__new - local.set $1 - local.get $3 + i32.lt_s if + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 8752 + return + end + block $folding-inner0 + local.get $4 + i32.eqz + if + local.get $0 + i32.load + call $~lib/util/number/itoa32 + local.set $0 + br $folding-inner0 + end + global.get $~lib/memory/__stack_pointer + local.get $4 + local.get $2 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u + local.tee $5 + i32.const 11 + i32.add + i32.mul + i32.const 11 + i32.add + local.tee $7 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $1 + i32.store + loop $for-loop|0 + local.get $4 + local.get $6 + i32.gt_s + if + local.get $1 + local.get $3 + i32.const 1 + i32.shl + i32.add + local.get $0 + local.get $6 + i32.const 2 + i32.shl + i32.add + i32.load + call $~lib/util/number/itoa_buffered + local.get $3 + i32.add + local.set $3 + local.get $5 + if + local.get $1 + local.get $3 + i32.const 1 + i32.shl + i32.add + local.get $2 + local.get $5 + i32.const 1 + i32.shl + call $~lib/memory/memory.copy + local.get $3 + local.get $5 + i32.add + local.set $3 + end + local.get $6 + i32.const 1 + i32.add + local.set $6 + br $for-loop|0 + end + end + local.get $7 local.get $1 local.get $3 - local.get $5 - call $~lib/memory/memory.copy + i32.const 1 + i32.shl + i32.add + local.get $0 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load + call $~lib/util/number/itoa_buffered + local.get $3 + i32.add + local.tee $0 + i32.gt_s + if + local.get $1 + local.get $0 + call $~lib/string/String#substring + local.set $0 + br $folding-inner0 + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + return end - local.get $1 - local.tee $3 - i32.store - i32.const 16 - local.get $2 - call $~lib/rt/itcms/__new - local.tee $1 - local.get $3 - i32.store - local.get $1 - local.get $3 + 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) (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 - 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 + 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 9376 + return + end + local.get $0 + call $~lib/util/number/decimalCount32 + local.set $1 + global.get $~lib/memory/__stack_pointer local.get $1 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $2 + i32.store + local.get $2 local.get $0 - i32.store offset=12 + local.get $1 + call $~lib/util/number/utoa_dec_simple 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/array/Array#concat (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) + (func $~lib/util/string/joinIntegerArray (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 @@ -22681,62 +20191,139 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - local.get $0 - i32.load offset=12 - local.tee $3 - local.get $1 - i32.load offset=12 - i32.const 0 local.get $1 - select + i32.const 1 + i32.sub local.tee $4 - i32.add - local.tee $2 - i32.const 268435455 - i32.gt_u + i32.const 0 + i32.lt_s if - i32.const 1056 - i32.const 1104 - i32.const 222 - i32.const 60 - call $~lib/builtins/abort - unreachable + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 8752 + return + end + block $folding-inner0 + local.get $4 + i32.eqz + if + local.get $0 + i32.load + call $~lib/util/number/utoa32 + local.set $0 + br $folding-inner0 + end + global.get $~lib/memory/__stack_pointer + local.get $4 + local.get $2 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u + local.tee $5 + i32.const 10 + i32.add + i32.mul + i32.const 10 + i32.add + local.tee $7 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $1 + i32.store + loop $for-loop|0 + local.get $4 + local.get $6 + i32.gt_s + if + local.get $1 + local.get $3 + i32.const 1 + i32.shl + i32.add + local.get $0 + local.get $6 + i32.const 2 + i32.shl + i32.add + i32.load + call $~lib/util/number/itoa_buffered + local.get $3 + i32.add + local.set $3 + local.get $5 + if + local.get $1 + local.get $3 + i32.const 1 + i32.shl + i32.add + local.get $2 + local.get $5 + i32.const 1 + i32.shl + call $~lib/memory/memory.copy + local.get $3 + local.get $5 + i32.add + local.set $3 + end + local.get $6 + i32.const 1 + i32.add + local.set $6 + br $for-loop|0 + end + end + local.get $7 + local.get $1 + local.get $3 + i32.const 1 + i32.shl + i32.add + local.get $0 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load + call $~lib/util/number/itoa_buffered + local.get $3 + i32.add + local.tee $0 + i32.gt_s + if + local.get $1 + local.get $0 + call $~lib/string/String#substring + local.set $0 + br $folding-inner0 + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + return end - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.const 2 - i32.const 3 - i32.const 0 - call $~lib/rt/__newArray - local.tee $2 - i32.store - local.get $2 - i32.load offset=4 - local.tee $5 - local.get $0 - i32.load offset=4 - local.get $3 - i32.const 2 - i32.shl - local.tee $0 - call $~lib/memory/memory.copy - local.get $0 - local.get $5 - i32.add - local.get $1 - i32.load offset=4 - local.get $4 - i32.const 2 - i32.shl - call $~lib/memory/memory.copy global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 + local.get $0 ) - (func $~lib/array/Array#slice (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (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 4 i32.sub @@ -22745,87 +20332,204 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - local.get $0 - i32.load offset=12 - local.set $3 local.get $1 + i32.const 1 + i32.sub + local.tee $4 i32.const 0 i32.lt_s - if (result i32) - local.get $1 - local.get $3 + if + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 8752 + return + end + block $folding-inner0 + local.get $4 + 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 + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + block $__inlined_func$~lib/util/number/dtoa + 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 9856 + local.set $0 + br $__inlined_func$~lib/util/number/dtoa + end + local.get $3 + local.get $3 + f64.sub + f64.const 0 + f64.ne + if + local.get $3 + local.get $3 + f64.ne + if + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 9888 + local.set $0 + br $__inlined_func$~lib/util/number/dtoa + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 9920 + i32.const 9968 + local.get $3 + f64.const 0 + f64.lt + select + local.set $0 + br $__inlined_func$~lib/util/number/dtoa + end + i32.const 10000 + 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 1 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + local.get $0 + i32.const 10000 + local.get $1 + call $~lib/memory/memory.copy + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + end + br $folding-inner0 + end + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.const 9820 + i32.load + i32.const 1 + i32.shr_u + local.tee $5 + i32.const 28 i32.add + i32.mul + i32.const 28 + i32.add + local.tee $7 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new local.tee $1 - i32.const 0 - local.get $1 - i32.const 0 - i32.gt_s - select - else - local.get $1 - local.get $3 + i32.store + loop $for-loop|0 + local.get $4 + local.get $6 + i32.gt_s + if + local.get $1 + local.get $2 + i32.const 1 + i32.shl + i32.add + local.get $0 + local.get $6 + 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 $5 + if + local.get $1 + local.get $2 + i32.const 1 + i32.shl + i32.add + i32.const 9824 + local.get $5 + i32.const 1 + i32.shl + call $~lib/memory/memory.copy + local.get $2 + local.get $5 + i32.add + local.set $2 + end + local.get $6 + i32.const 1 + i32.add + local.set $6 + br $for-loop|0 + end + end + local.get $7 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.const 1 + i32.shl i32.add - local.tee $2 - i32.const 0 + 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.const 0 + i32.add + local.tee $0 i32.gt_s - select - else - local.get $2 - local.get $3 - local.get $2 - local.get $3 - i32.lt_s - select + if + local.get $1 + local.get $0 + call $~lib/string/String#substring + local.set $0 + br $folding-inner0 + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + return end - local.get $1 - i32.sub - local.tee $2 - i32.const 0 - local.get $2 - i32.const 0 - i32.gt_s - select - local.tee $3 - i32.const 2 - i32.const 3 - i32.const 0 - call $~lib/rt/__newArray - local.tee $2 - i32.store - local.get $2 - i32.load offset=4 - local.get $0 - i32.load offset=4 - local.get $1 - i32.const 2 - i32.shl - i32.add - local.get $3 - i32.const 2 - i32.shl - call $~lib/memory/memory.copy global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 + local.get $0 ) - (func $~lib/array/Array#splice (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/util/string/joinIntegerArray (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -22838,98 +20542,127 @@ global.get $~lib/memory/__stack_pointer i32.const 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 1 + i32.sub + local.tee $3 i32.const 0 i32.lt_s - if (result i32) - local.get $1 - local.get $3 + if + global.get $~lib/memory/__stack_pointer + 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 - local.get $3 - local.get $1 - local.get $3 - i32.lt_s - select + global.set $~lib/memory/__stack_pointer + i32.const 8752 + return end - local.tee $1 - i32.sub - local.tee $4 - local.get $2 - local.get $4 - i32.lt_s - select - local.tee $2 - i32.const 0 - local.get $2 - i32.const 0 - i32.gt_s - select - local.tee $2 - i32.const 2 - i32.const 3 - i32.const 0 - call $~lib/rt/__newArray - local.tee $4 - i32.store - local.get $4 - i32.load offset=4 - local.get $0 - i32.load offset=4 - local.tee $5 - local.get $1 - i32.const 2 - i32.shl - i32.add - local.tee $6 - local.get $2 - i32.const 2 - i32.shl - call $~lib/memory/memory.copy - local.get $3 - local.get $1 - local.get $2 - i32.add - local.tee $1 - i32.ne - if + block $folding-inner0 + local.get $3 + i32.eqz + if + local.get $0 + i32.load8_s + call $~lib/util/number/itoa32 + local.set $0 + br $folding-inner0 + end + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.const 9068 + i32.load + i32.const 1 + i32.shr_u + local.tee $4 + i32.const 11 + i32.add + i32.mul + i32.const 11 + i32.add + local.tee $6 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $1 + i32.store + loop $for-loop|0 + local.get $3 + local.get $5 + i32.gt_s + if + local.get $1 + local.get $2 + i32.const 1 + i32.shl + i32.add + local.get $0 + local.get $5 + i32.add + i32.load8_s + call $~lib/util/number/itoa_buffered + local.get $2 + i32.add + local.set $2 + local.get $4 + if + local.get $1 + local.get $2 + i32.const 1 + i32.shl + i32.add + i32.const 9072 + local.get $4 + i32.const 1 + i32.shl + call $~lib/memory/memory.copy + local.get $2 + local.get $4 + i32.add + local.set $2 + end + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|0 + end + end local.get $6 - local.get $5 local.get $1 - i32.const 2 + local.get $2 + i32.const 1 i32.shl i32.add + local.get $0 local.get $3 + i32.add + i32.load8_s + call $~lib/util/number/itoa_buffered + local.get $2 + i32.add + local.tee $0 + i32.gt_s + if + local.get $1 + local.get $0 + call $~lib/string/String#substring + local.set $0 + br $folding-inner0 + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer local.get $1 - i32.sub - i32.const 2 - i32.shl - call $~lib/memory/memory.copy + return end - local.get $0 - local.get $3 - local.get $2 - i32.sub - i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $4 + local.get $0 ) - (func $~lib/array/Array#splice (param $0 i32) (param $1 i32) (result i32) + (func $~lib/util/string/joinIntegerArray (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -22943,137 +20676,123 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 2 - local.get $0 - i32.load offset=12 - local.tee $3 local.get $1 + i32.const 1 + i32.sub + local.tee $3 i32.const 0 i32.lt_s - if (result i32) - local.get $1 - local.get $3 + if + global.get $~lib/memory/__stack_pointer + 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 + global.set $~lib/memory/__stack_pointer + i32.const 8752 + return + end + block $folding-inner0 local.get $3 - local.get $1 + i32.eqz + if + local.get $0 + i32.load16_u + call $~lib/util/number/utoa32 + local.set $0 + br $folding-inner0 + end + global.get $~lib/memory/__stack_pointer local.get $3 - i32.lt_s - select - end - local.tee $1 - i32.sub - local.tee $2 - local.get $2 - i32.const 2 - i32.gt_s - select - local.tee $2 - i32.const 0 - local.get $2 - i32.const 0 - i32.gt_s - select - local.tee $2 - i32.const 2 - i32.const 8 - i32.const 0 - call $~lib/rt/__newArray - local.tee $4 - i32.store - local.get $4 - i32.load offset=4 - local.get $0 - i32.load offset=4 - local.tee $5 - local.get $1 - i32.const 2 - i32.shl - i32.add - local.tee $6 - local.get $2 - i32.const 2 - i32.shl - call $~lib/memory/memory.copy - local.get $3 - local.get $1 - local.get $2 - i32.add - local.tee $1 - i32.ne - if + i32.const 9068 + i32.load + i32.const 1 + i32.shr_u + local.tee $4 + i32.const 10 + i32.add + i32.mul + i32.const 10 + i32.add + local.tee $6 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $1 + i32.store + loop $for-loop|0 + local.get $3 + local.get $5 + i32.gt_s + if + local.get $1 + local.get $2 + i32.const 1 + i32.shl + i32.add + local.get $0 + local.get $5 + i32.const 1 + i32.shl + i32.add + i32.load16_u + call $~lib/util/number/itoa_buffered + local.get $2 + i32.add + local.set $2 + local.get $4 + if + local.get $1 + local.get $2 + i32.const 1 + i32.shl + i32.add + i32.const 9072 + local.get $4 + i32.const 1 + i32.shl + call $~lib/memory/memory.copy + local.get $2 + local.get $4 + i32.add + local.set $2 + end + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|0 + end + end local.get $6 - local.get $5 local.get $1 - i32.const 2 + local.get $2 + i32.const 1 + i32.shl + i32.add + local.get $0 + local.get $3 + i32.const 1 i32.shl i32.add - local.get $3 + i32.load16_u + call $~lib/util/number/itoa_buffered + local.get $2 + i32.add + local.tee $0 + i32.gt_s + if + local.get $1 + local.get $0 + call $~lib/string/String#substring + local.set $0 + br $folding-inner0 + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer local.get $1 - i32.sub - i32.const 2 - i32.shl - call $~lib/memory/memory.copy - end - local.get $0 - local.get $3 - local.get $2 - i32.sub - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $4 - ) - (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 $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 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 92 - i32.const 42 - call $~lib/builtins/abort - unreachable - end - 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 - local.get $0 - i32.eqz - if - i32.const 5696 - i32.const 1104 - i32.const 96 - i32.const 40 - call $~lib/builtins/abort - unreachable + return end global.get $~lib/memory/__stack_pointer i32.const 4 @@ -23081,13 +20800,13 @@ global.set $~lib/memory/__stack_pointer local.get $0 ) - (func $~lib/array/Array#splice (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 4 i32.sub @@ -23096,230 +20815,197 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - i32.const 0 - local.get $0 - i32.load offset=12 - local.tee $3 - local.get $3 - i32.const 0 - i32.gt_s - select - local.set $2 - global.get $~lib/memory/__stack_pointer - i32.const 1 - local.get $3 - local.get $2 - i32.sub - local.tee $1 local.get $1 i32.const 1 - 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 11 - i32.const 0 - call $~lib/rt/__newArray + i32.sub local.tee $4 - i32.store - local.get $4 - i32.load offset=4 - local.get $0 - i32.load offset=4 - local.tee $5 - local.get $2 - i32.const 2 - i32.shl - i32.add - local.tee $6 - local.get $1 - i32.const 2 - i32.shl - call $~lib/memory/memory.copy - local.get $3 - local.get $1 - local.get $2 - i32.add - local.tee $2 - i32.ne + i32.const 0 + i32.lt_s if - local.get $6 - local.get $5 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 8752 + return + end + block $folding-inner0 + local.get $4 + 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 + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + block $__inlined_func$~lib/util/number/utoa64 + 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 9376 + local.set $0 + br $__inlined_func$~lib/util/number/utoa64 + end + local.get $3 + i64.const 4294967295 + i64.le_u + if + local.get $3 + i32.wrap_i64 + local.tee $2 + call $~lib/util/number/decimalCount32 + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + local.get $0 + local.get $2 + local.get $1 + call $~lib/util/number/utoa_dec_simple + else + local.get $3 + call $~lib/util/number/decimalCount64High + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + local.get $0 + local.get $3 + local.get $1 + call $~lib/util/number/utoa_dec_simple + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + end + br $folding-inner0 + end + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.const 9068 + i32.load + i32.const 1 + i32.shr_u + local.tee $5 + i32.const 20 + i32.add + i32.mul + i32.const 20 + i32.add + local.tee $7 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $1 + i32.store + loop $for-loop|0 + local.get $4 + local.get $6 + i32.gt_s + if + local.get $1 + local.get $2 + i32.const 1 + i32.shl + i32.add + local.get $0 + local.get $6 + 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 $5 + if + local.get $1 + local.get $2 + i32.const 1 + i32.shl + i32.add + i32.const 9072 + local.get $5 + i32.const 1 + i32.shl + call $~lib/memory/memory.copy + local.get $2 + local.get $5 + i32.add + local.set $2 + end + local.get $6 + i32.const 1 + i32.add + local.set $6 + br $for-loop|0 + end + end + local.get $7 + local.get $1 local.get $2 - i32.const 2 + i32.const 1 i32.shl i32.add - local.get $3 - local.get $2 - i32.sub - i32.const 2 + local.get $0 + local.get $4 + i32.const 3 i32.shl - call $~lib/memory/memory.copy - end - local.get $0 - local.get $3 - local.get $1 - i32.sub - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $4 - ) - (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 $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 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 92 - i32.const 42 - call $~lib/builtins/abort - unreachable - end - 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 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - ) - (func $~lib/array/Array#sort@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 - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - block $1of1 - block $0of1 - block $outOfRange - global.get $~argumentsLength - br_table $0of1 $1of1 $outOfRange - end - unreachable + i32.add + i64.load + call $~lib/util/number/itoa_buffered + local.get $2 + i32.add + local.tee $0 + i32.gt_s + if + local.get $1 + local.get $0 + call $~lib/string/String#substring + local.set $0 + br $folding-inner0 end - i32.const 8064 - local.set $1 global.get $~lib/memory/__stack_pointer - i32.const 8064 - i32.store + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + return end - local.get $0 - local.get $1 - call $~lib/array/Array#sort global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - ) - (func $~lib/array/Array<~lib/string/String>#constructor (param $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 - call $~stack_check - 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 - i32.const 29 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - end - local.get $0 - i32.const 0 - call $~lib/array/Array#set:buffer - local.get $0 - i32.const 0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=8 - local.get $0 - i32.const 0 - i32.store offset=12 - local.get $1 - i32.const 268435455 - i32.gt_u - if - i32.const 1056 - i32.const 1104 - i32.const 58 - i32.const 60 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.const 2 - i32.shl - local.tee $3 - i32.const 0 - call $~lib/rt/itcms/__new - local.tee $2 - i32.store offset=4 - local.get $2 - i32.const 0 - local.get $3 - call $~lib/memory/memory.fill - local.get $0 - local.get $2 - call $~lib/array/Array#set:buffer - local.get $0 - local.get $2 - i32.store offset=4 - local.get $0 - local.get $3 - i32.store offset=8 - local.get $0 - local.get $1 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer local.get $0 ) - (func $~lib/util/number/itoa32 (param $0 i32) (result i32) + (func $~lib/util/number/itoa64 (param $0 i64) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) + (local $4 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -23329,7 +21015,7 @@ i32.const 0 i32.store local.get $0 - i32.eqz + i64.eqz if global.get $~lib/memory/__stack_pointer i32.const 4 @@ -23338,35 +21024,61 @@ i32.const 9376 return end - i32.const 0 - local.get $0 - i32.sub - local.get $0 - local.get $0 - i32.const 31 - i32.shr_u - local.tee $1 - select - local.tee $2 - call $~lib/util/number/decimalCount32 - local.get $1 - i32.add - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.const 1 - i32.shl - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - local.get $0 - local.get $2 + 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 $3 + select + local.tee $0 + i64.const 4294967295 + i64.le_u + if + local.get $0 + i32.wrap_i64 + local.tee $4 + call $~lib/util/number/decimalCount32 + local.get $3 + i32.add + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $2 + i32.store + local.get $2 + local.get $4 + local.get $1 + call $~lib/util/number/utoa_dec_simple + else + local.get $0 + call $~lib/util/number/decimalCount64High + local.get $3 + i32.add + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $2 + i32.store + local.get $2 + local.get $0 + local.get $1 + call $~lib/util/number/utoa_dec_simple + end local.get $3 - call $~lib/util/number/utoa_dec_simple - local.get $1 if - local.get $0 + local.get $2 i32.const 45 i32.store16 end @@ -23374,11 +21086,14 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 + local.get $2 ) - (func $~lib/util/number/utoa32 (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 $4 i32) + (local $5 i32) + (local $6 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -23387,42 +21102,138 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - local.get $0 - i32.eqz + local.get $1 + i32.const 1 + i32.sub + local.tee $3 + i32.const 0 + i32.lt_s if global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - i32.const 9376 + i32.const 8752 + return + end + block $folding-inner0 + local.get $3 + i32.eqz + if + local.get $0 + i64.load + i32.wrap_i64 + i64.extend_i32_s + call $~lib/util/number/itoa64 + local.set $0 + br $folding-inner0 + end + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.const 9068 + i32.load + i32.const 1 + i32.shr_u + local.tee $4 + i32.const 21 + i32.add + i32.mul + i32.const 21 + i32.add + local.tee $6 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $1 + i32.store + loop $for-loop|0 + local.get $3 + local.get $5 + i32.gt_s + if + local.get $1 + local.get $2 + i32.const 1 + i32.shl + i32.add + local.get $0 + local.get $5 + 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 $4 + if + local.get $1 + local.get $2 + i32.const 1 + i32.shl + i32.add + i32.const 9072 + local.get $4 + i32.const 1 + i32.shl + call $~lib/memory/memory.copy + local.get $2 + local.get $4 + i32.add + local.set $2 + end + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|0 + end + end + local.get $6 + local.get $1 + local.get $2 + i32.const 1 + i32.shl + i32.add + local.get $0 + local.get $3 + 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 + local.get $1 + local.get $0 + call $~lib/string/String#substring + local.set $0 + br $folding-inner0 + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 return end - local.get $0 - call $~lib/util/number/decimalCount32 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.const 1 - i32.shl - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $2 - i32.store - local.get $2 - local.get $0 - local.get $1 - call $~lib/util/number/utoa_dec_simple global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 + local.get $0 ) - (func $~lib/util/number/itoa64 (param $0 i64) (result i32) - (local $1 i32) - (local $2 i32) + (func $~lib/util/string/joinIntegerArray (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 @@ -23431,79 +21242,127 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - local.get $0 - i64.eqz + 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 4 i32.add global.set $~lib/memory/__stack_pointer - i32.const 9376 + i32.const 8752 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 $3 - select - local.tee $0 - i64.const 4294967295 - i64.le_u - if - local.get $0 - i32.wrap_i64 - local.tee $4 - call $~lib/util/number/decimalCount32 - local.get $3 - i32.add - local.set $1 + block $folding-inner0 + local.get $4 + i32.eqz + if + local.get $0 + i32.load8_u + call $~lib/util/number/utoa32 + local.set $0 + br $folding-inner0 + end global.get $~lib/memory/__stack_pointer + local.get $4 + local.get $2 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u + local.tee $5 + i32.const 10 + i32.add + i32.mul + i32.const 10 + i32.add + local.tee $7 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $1 + i32.store + loop $for-loop|0 + local.get $4 + local.get $6 + i32.gt_s + if + local.get $1 + local.get $3 + i32.const 1 + i32.shl + i32.add + local.get $0 + local.get $6 + i32.add + i32.load8_u + call $~lib/util/number/itoa_buffered + local.get $3 + i32.add + local.set $3 + local.get $5 + if + local.get $1 + local.get $3 + i32.const 1 + i32.shl + i32.add + local.get $2 + local.get $5 + i32.const 1 + i32.shl + call $~lib/memory/memory.copy + local.get $3 + local.get $5 + i32.add + local.set $3 + end + local.get $6 + i32.const 1 + i32.add + local.set $6 + br $for-loop|0 + end + end + local.get $7 local.get $1 + local.get $3 i32.const 1 i32.shl - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $2 - i32.store - local.get $2 - local.get $4 - local.get $1 - call $~lib/util/number/utoa_dec_simple - else + i32.add local.get $0 - call $~lib/util/number/decimalCount64High + local.get $4 + i32.add + i32.load8_u + call $~lib/util/number/itoa_buffered local.get $3 i32.add - local.set $1 + local.tee $0 + i32.gt_s + if + local.get $1 + local.get $0 + call $~lib/string/String#substring + local.set $0 + br $folding-inner0 + end global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer local.get $1 - i32.const 1 - i32.shl - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $2 - i32.store - local.get $2 - local.get $0 - local.get $1 - call $~lib/util/number/utoa_dec_simple - end - local.get $3 - if - local.get $2 - i32.const 45 - i32.store16 + return end global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 + local.get $0 ) (func $~lib/array/Array<~lib/array/Array>#flat (param $0 i32) (result i32) (local $1 i32) @@ -24420,20 +22279,9 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - block $1of1 - block $0of1 - block $outOfRange - global.get $~argumentsLength - br_table $0of1 $1of1 $outOfRange - end - unreachable - end - i32.const 0 - local.set $1 - end local.get $0 local.get $1 - call $std/array/ArrayU32#constructor + call $std/array/ArrayU32#constructor@varargs global.get $~lib/memory/__stack_pointer i32.const 4 i32.add @@ -24488,14 +22336,6 @@ local.get $1 i32.store offset=4 block $__inlined_func$~lib/array/Array#every (result 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 $0 i32.load offset=12 local.set $4 @@ -24518,25 +22358,19 @@ i32.shl i32.add i32.load - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store + local.set $3 i32.const 3 global.set $~argumentsLength + i32.const 0 + local.get $3 local.get $2 local.get $0 local.get $1 i32.load call_indirect (type $i32_i32_i32_=>_i32) i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 0 - br $__inlined_func$~lib/array/Array#every - end + br_if $__inlined_func$~lib/array/Array#every + drop local.get $2 i32.const 1 i32.add @@ -24544,10 +22378,6 @@ 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 global.get $~lib/memory/__stack_pointer @@ -24574,14 +22404,6 @@ local.set $2 i32.const 0 local.set $1 - 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 $0 i32.load offset=12 local.set $4 @@ -24605,9 +22427,6 @@ 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 @@ -24615,13 +22434,7 @@ local.get $2 i32.load call_indirect (type $i32_i32_i32_=>_i32) - if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - br $__inlined_func$~lib/array/Array#findIndex - end + br_if $__inlined_func$~lib/array/Array#findIndex local.get $1 i32.const 1 i32.add @@ -24629,10 +22442,6 @@ 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 local.set $1 end @@ -24745,17 +22554,6 @@ i32.const 0 local.set $2 end - 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 - local.get $0 - i32.store local.get $0 local.get $1 local.get $2 @@ -24766,10 +22564,6 @@ 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 ) (func $export:~lib/array/Array#indexOf@varargs (param $0 i32) (param $1 i32) (param $2 i32) (result i32) global.get $~lib/memory/__stack_pointer @@ -25074,14 +22868,6 @@ 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 - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store local.get $0 i32.load offset=12 local.set $4 @@ -25104,9 +22890,6 @@ 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 @@ -25122,10 +22905,6 @@ end 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 @@ -25147,16 +22926,13 @@ local.get $1 i32.store offset=4 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 global.get $~lib/memory/__stack_pointer i32.const 0 i32.const 2 @@ -25188,9 +22964,6 @@ i32.add i32.load local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 i32.const 3 global.set $~argumentsLength local.get $3 @@ -25200,9 +22973,6 @@ i32.load call_indirect (type $i32_i32_i32_=>_i32) if - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=8 local.get $4 local.get $3 call $~lib/array/Array#push @@ -25216,7 +22986,7 @@ end 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 @@ -25296,14 +23066,6 @@ local.get $1 i32.store offset=4 block $__inlined_func$~lib/array/Array#some (result 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 $0 i32.load offset=12 local.set $4 @@ -25326,24 +23088,18 @@ i32.shl i32.add i32.load - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store + local.set $3 i32.const 3 global.set $~argumentsLength + i32.const 1 + local.get $3 local.get $2 local.get $0 local.get $1 i32.load call_indirect (type $i32_i32_i32_=>_i32) - if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1 - br $__inlined_func$~lib/array/Array#some - end + br_if $__inlined_func$~lib/array/Array#some + drop local.get $2 i32.const 1 i32.add @@ -25351,10 +23107,6 @@ 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 0 end global.get $~lib/memory/__stack_pointer @@ -25559,8 +23311,11 @@ i32.store end local.get $0 + i32.load offset=4 + local.get $0 + i32.load offset=12 local.get $1 - call $~lib/array/Array#join + call $~lib/util/string/joinIntegerArray global.get $~lib/memory/__stack_pointer i32.const 4 i32.add @@ -25611,20 +23366,9 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - block $1of1 - block $0of1 - block $outOfRange - global.get $~argumentsLength - br_table $0of1 $1of1 $outOfRange - end - unreachable - end - i32.const 0 - local.set $1 - end local.get $0 local.get $1 - call $std/array/ArrayU8#constructor + call $std/array/ArrayU8#constructor@varargs global.get $~lib/memory/__stack_pointer i32.const 4 i32.add @@ -25667,14 +23411,6 @@ local.get $1 i32.store offset=4 block $__inlined_func$~lib/array/Array#every (result 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 $0 i32.load offset=12 local.set $4 @@ -25695,25 +23431,19 @@ i32.load offset=4 i32.add i32.load8_u - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store + local.set $3 i32.const 3 global.set $~argumentsLength + i32.const 0 + local.get $3 local.get $2 local.get $0 local.get $1 i32.load call_indirect (type $i32_i32_i32_=>_i32) i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 0 - br $__inlined_func$~lib/array/Array#every - end + br_if $__inlined_func$~lib/array/Array#every + drop local.get $2 i32.const 1 i32.add @@ -25721,10 +23451,6 @@ 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 global.get $~lib/memory/__stack_pointer @@ -25751,14 +23477,6 @@ local.set $2 i32.const 0 local.set $1 - 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 $0 i32.load offset=12 local.set $4 @@ -25778,11 +23496,8 @@ local.get $1 local.get $0 i32.load offset=4 - i32.add - i32.load8_u - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store + i32.add + i32.load8_u i32.const 3 global.set $~argumentsLength local.get $1 @@ -25790,13 +23505,7 @@ local.get $2 i32.load call_indirect (type $i32_i32_i32_=>_i32) - if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - br $__inlined_func$~lib/array/Array#findIndex - end + br_if $__inlined_func$~lib/array/Array#findIndex local.get $1 i32.const 1 i32.add @@ -25804,10 +23513,6 @@ 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 local.set $1 end @@ -25918,17 +23623,6 @@ i32.const 0 local.set $2 end - 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 - local.get $0 - i32.store local.get $0 local.get $1 local.get $2 @@ -25939,10 +23633,6 @@ 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 ) (func $export:~lib/array/Array#indexOf@varargs (param $0 i32) (param $1 i32) (param $2 i32) (result i32) global.get $~lib/memory/__stack_pointer @@ -26240,14 +23930,6 @@ 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 - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store local.get $0 i32.load offset=12 local.set $4 @@ -26268,9 +23950,6 @@ i32.load offset=4 i32.add i32.load8_u - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store i32.const 3 global.set $~argumentsLength local.get $2 @@ -26286,10 +23965,6 @@ end 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 @@ -26311,16 +23986,13 @@ local.get $1 i32.store offset=4 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 global.get $~lib/memory/__stack_pointer i32.const 0 i32.const 0 @@ -26350,9 +24022,6 @@ i32.add i32.load8_u local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 i32.const 3 global.set $~argumentsLength local.get $3 @@ -26362,9 +24031,6 @@ i32.load call_indirect (type $i32_i32_i32_=>_i32) if - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=8 local.get $4 local.get $3 call $~lib/array/Array#push @@ -26378,7 +24044,7 @@ end 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 @@ -26454,14 +24120,6 @@ local.get $1 i32.store offset=4 block $__inlined_func$~lib/array/Array#some (result 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 $0 i32.load offset=12 local.set $4 @@ -26482,24 +24140,18 @@ i32.load offset=4 i32.add i32.load8_u - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store + local.set $3 i32.const 3 global.set $~argumentsLength + i32.const 1 + local.get $3 local.get $2 local.get $0 local.get $1 i32.load call_indirect (type $i32_i32_i32_=>_i32) - if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1 - br $__inlined_func$~lib/array/Array#some - end + br_if $__inlined_func$~lib/array/Array#some + drop local.get $2 i32.const 1 i32.add @@ -26507,10 +24159,6 @@ 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 0 end global.get $~lib/memory/__stack_pointer @@ -26843,8 +24491,11 @@ i32.store end local.get $0 + i32.load offset=4 + local.get $0 + i32.load offset=12 local.get $1 - call $~lib/array/Array#join + call $~lib/util/string/joinIntegerArray global.get $~lib/memory/__stack_pointer i32.const 4 i32.add @@ -26891,13 +24542,13 @@ local.set $1 end 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 $0 i32.eqz if @@ -26910,15 +24561,12 @@ end global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 local.get $1 call $~lib/array/Array<~lib/string/String>#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 global.get $~lib/memory/__stack_pointer @@ -26944,13 +24592,13 @@ i32.store offset=4 block $__inlined_func$~lib/array/Array<~lib/string/String>#every (result 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 $0 i32.load offset=12 local.set $4 @@ -26976,9 +24624,6 @@ i32.load local.tee $3 i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 i32.const 3 global.set $~argumentsLength local.get $3 @@ -26990,7 +24635,7 @@ i32.eqz if global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer i32.const 0 @@ -27004,7 +24649,7 @@ end end global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer i32.const 1 @@ -27034,13 +24679,13 @@ i32.const 0 local.set $1 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 $0 i32.load offset=12 local.set $4 @@ -27067,9 +24712,6 @@ i32.load local.tee $3 i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 i32.const 3 global.set $~argumentsLength local.get $3 @@ -27080,7 +24722,7 @@ call_indirect (type $i32_i32_i32_=>_i32) if global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer br $__inlined_func$~lib/array/Array<~lib/string/String>#findIndex @@ -27093,7 +24735,7 @@ end end global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer i32.const -1 @@ -27311,20 +24953,6 @@ i32.const 0 local.set $2 end - 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 - 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 @@ -27335,10 +24963,6 @@ 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 ) (func $export:~lib/array/Array<~lib/string/String>#indexOf@varargs (param $0 i32) (param $1 i32) (param $2 i32) (result i32) global.get $~lib/memory/__stack_pointer @@ -27402,13 +25026,13 @@ local.set $2 end 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 block $__inlined_func$~lib/array/Array<~lib/string/String>#lastIndexOf local.get $0 local.tee $3 @@ -27417,7 +25041,7 @@ i32.eqz if global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer i32.const -1 @@ -27457,15 +25081,12 @@ i32.load local.tee $3 i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 local.get $3 local.get $1 call $~lib/string/String.__eq if global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer br $__inlined_func$~lib/array/Array<~lib/string/String>#lastIndexOf @@ -27478,7 +25099,7 @@ end end global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer i32.const -1 @@ -27604,13 +25225,13 @@ local.get $1 i32.store offset=4 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 $0 i32.load offset=12 local.set $4 @@ -27636,9 +25257,6 @@ i32.load local.tee $3 i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 i32.const 3 global.set $~argumentsLength local.get $3 @@ -27655,7 +25273,7 @@ end end 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 @@ -27664,6 +25282,10 @@ global.set $~lib/memory/__stack_pointer ) (func $export:~lib/array/Array<~lib/string/String>#filter (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 @@ -27675,13 +25297,77 @@ 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 + 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 2 + i32.const 29 + i32.const 0 + call $~lib/rt/__newArray + local.tee $4 + i32.store local.get $0 - local.get $1 - call $~lib/array/Array<~lib/string/String>#filter + i32.load offset=12 + local.set $5 + loop $for-loop|0 + local.get $2 + local.get $5 + local.get $0 + i32.load offset=12 + local.tee $3 + local.get $3 + local.get $5 + i32.gt_s + select + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.load offset=4 + local.get $2 + i32.const 2 + i32.shl + i32.add + i32.load + local.tee $3 + i32.store offset=4 + i32.const 3 + global.set $~argumentsLength + local.get $3 + local.get $2 + local.get $0 + local.get $1 + i32.load + call_indirect (type $i32_i32_i32_=>_i32) + if + local.get $4 + local.get $3 + call $~lib/array/Array<~lib/string/String>#push + drop + 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 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 $4 ) (func $export:~lib/array/Array<~lib/string/String>#shift (param $0 i32) (result i32) (local $1 i32) @@ -27771,13 +25457,13 @@ i32.store offset=4 block $__inlined_func$~lib/array/Array<~lib/string/String>#some (result 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 $0 i32.load offset=12 local.set $4 @@ -27803,9 +25489,6 @@ i32.load local.tee $3 i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 i32.const 3 global.set $~argumentsLength local.get $3 @@ -27816,7 +25499,7 @@ call_indirect (type $i32_i32_i32_=>_i32) if global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer i32.const 1 @@ -27830,7 +25513,7 @@ 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 @@ -28110,8 +25793,11 @@ i32.store end local.get $0 + i32.load offset=4 + local.get $0 + i32.load offset=12 local.get $1 - call $~lib/array/Array<~lib/string/String|null>#join + call $~lib/util/string/joinReferenceArray<~lib/string/String|null> global.get $~lib/memory/__stack_pointer i32.const 4 i32.add diff --git a/tests/compiler/std/array.untouched.wat b/tests/compiler/std/array.untouched.wat index 0a4c0ba7a7..6be0d7b96f 100644 --- a/tests/compiler/std/array.untouched.wat +++ b/tests/compiler/std/array.untouched.wat @@ -4292,6 +4292,62 @@ drop local.get $2 ) + (func $std/array/isArraysEqual (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 + call $~lib/array/Array#get:length + local.set $2 + local.get $2 + local.get $1 + call $~lib/array/Array#get:length + i32.ne + if + i32.const 0 + return + end + local.get $0 + local.get $1 + i32.eq + if + i32.const 1 + return + end + end + i32.const 0 + local.set $3 + loop $for-loop|0 + local.get $3 + local.get $2 + i32.lt_s + local.set $4 + local.get $4 + if + i32.const 0 + drop + local.get $0 + local.get $3 + call $~lib/array/Array#__get + local.get $1 + local.get $3 + call $~lib/array/Array#__get + i32.ne + if + i32.const 0 + return + end + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $for-loop|0 + end + end + i32.const 1 + ) (func $~lib/array/Array#fill (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) (local $4 i32) (local $5 i32) @@ -4412,6 +4468,62 @@ drop local.get $2 ) + (func $std/array/isArraysEqual (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 + call $~lib/array/Array#get:length + local.set $2 + local.get $2 + local.get $1 + call $~lib/array/Array#get:length + i32.ne + if + i32.const 0 + return + end + local.get $0 + local.get $1 + i32.eq + if + i32.const 1 + return + end + end + i32.const 0 + local.set $3 + loop $for-loop|0 + local.get $3 + local.get $2 + i32.lt_s + local.set $4 + local.get $4 + if + i32.const 0 + drop + local.get $0 + local.get $3 + call $~lib/array/Array#__get + local.get $1 + local.get $3 + call $~lib/array/Array#__get + i32.ne + if + i32.const 0 + return + end + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $for-loop|0 + end + end + i32.const 1 + ) (func $~lib/array/Array#get:length (param $0 i32) (result i32) local.get $0 i32.load offset=12 @@ -4821,6 +4933,62 @@ call $~lib/memory/memory.copy local.get $0 ) + (func $std/array/isArraysEqual (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 + call $~lib/array/Array#get:length + local.set $2 + local.get $2 + local.get $1 + call $~lib/array/Array#get:length + i32.ne + if + i32.const 0 + return + end + local.get $0 + local.get $1 + i32.eq + if + i32.const 1 + return + end + end + i32.const 0 + local.set $3 + loop $for-loop|0 + local.get $3 + local.get $2 + i32.lt_s + local.set $4 + local.get $4 + if + i32.const 0 + drop + local.get $0 + local.get $3 + call $~lib/array/Array#__get + local.get $1 + local.get $3 + call $~lib/array/Array#__get + i32.ne + if + i32.const 0 + return + end + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $for-loop|0 + end + end + i32.const 1 + ) (func $~lib/array/Array#unshift (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) @@ -5252,6 +5420,17 @@ local.get $2 call $~lib/array/Array#lastIndexOf ) + (func $~lib/array/Array#includes (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + i32.const 0 + drop + local.get $0 + local.get $1 + local.get $2 + call $~lib/array/Array#indexOf + i32.const 0 + i32.ge_s + return + ) (func $~lib/array/Array#includes (param $0 i32) (param $1 f32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) @@ -5459,1174 +5638,1004 @@ i32.const 0 drop ) - (func $start:std/array~anonymous|0 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - local.get $0 - i32.const 0 - i32.eq - ) - (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) + (func $~lib/array/Array#__set (param $0 i32) (param $1 i32) (param $2 i32) + local.get $1 local.get $0 - i32.const 100 - i32.eq - ) - (func $start:std/array~anonymous|4 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + i32.load offset=12 + i32.ge_u + if + local.get $1 + i32.const 0 + i32.lt_s + if + i32.const 320 + i32.const 80 + i32.const 108 + i32.const 22 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $1 + i32.const 1 + i32.add + i32.const 2 + call $~lib/array/ensureSize + local.get $0 + local.get $1 + i32.const 1 + i32.add + call $~lib/array/Array#set:length_ + end local.get $0 - i32.const 100 - i32.eq + local.get $1 + local.get $2 + call $~lib/array/Array#__uset ) - (func $start:std/array~anonymous|6 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $start:std/array~anonymous|0 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $0 i32.const 0 - i32.ge_s + i32.eq ) - (func $start:std/array~anonymous|7 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - local.get $0 + (func $~lib/array/Array#findIndex (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) i32.const 0 - i32.le_s - ) - (func $start:std/array~anonymous|9 (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|11 (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|12 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - local.get $0 - i32.const -1 - i32.le_s - ) - (func $start:std/array~anonymous|14 (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|16 (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|18 (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|21 (param $0 i32) (param $1 i32) (param $2 i32) (result f32) - local.get $0 - f32.convert_i32_s - ) - (func $~lib/array/Array#get:length (param $0 i32) (result i32) - local.get $0 - i32.load offset=12 - ) - (func $~lib/array/Array#__get (param $0 i32) (param $1 i32) (result f32) - (local $2 f32) - local.get $1 + local.set $2 local.get $0 i32.load offset=12 - i32.ge_u - if - i32.const 320 - i32.const 80 - i32.const 92 - i32.const 42 - call $~lib/builtins/abort - unreachable + local.set $3 + loop $for-loop|0 + local.get $2 + local.get $3 + local.tee $4 + local.get $0 + i32.load offset=12 + local.tee $5 + local.get $4 + local.get $5 + i32.lt_s + select + i32.lt_s + local.set $4 + local.get $4 + if + local.get $0 + i32.load offset=4 + local.get $2 + i32.const 2 + i32.shl + i32.add + i32.load + local.get $2 + local.get $0 + i32.const 3 + global.set $~argumentsLength + local.get $1 + i32.load + call_indirect (type $i32_i32_i32_=>_i32) + if + 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 - i32.load offset=4 - local.get $1 - i32.const 2 - i32.shl - i32.add - f32.load - local.set $2 - i32.const 0 - drop - local.get $2 + i32.const -1 ) - (func $start:std/array~anonymous|23 (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 + (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|25 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $start:std/array~anonymous|2 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $0 - i32.const 2 - i32.ge_s + i32.const 100 + i32.eq ) - (func $start:std/array~anonymous|27 (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 + (func $start:std/array~anonymous|3 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + local.get $2 + i32.const 100 + call $~lib/array/Array#push + drop local.get $0 - i32.const 2 - i32.ge_s + i32.const 100 + i32.eq ) - (func $start:std/array~anonymous|29 (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (func $start:std/array~anonymous|4 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $0 - local.get $1 - i32.add + i32.const 100 + i32.eq ) - (func $start:std/array~anonymous|30 (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (func $start:std/array~anonymous|5 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + local.get $2 + call $~lib/array/Array#pop + drop local.get $0 - local.get $1 - i32.add + i32.const 100 + i32.eq ) - (func $start:std/array~anonymous|31 (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (func $start:std/array~anonymous|6 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $0 - if (result i32) - i32.const 1 - else - local.get $1 - i32.const 2 - i32.gt_s - end + i32.const 0 + i32.ge_s ) - (func $start:std/array~anonymous|32 (param $0 i32) (param $1 i32) (param $2 i32) (param $3 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) + i32.const 0 + local.set $2 local.get $0 - if (result i32) - i32.const 1 - else - local.get $1 - i32.const 100 - i32.gt_s + i32.load offset=12 + local.set $3 + loop $for-loop|0 + local.get $2 + local.get $3 + local.tee $4 + local.get $0 + i32.load offset=12 + local.tee $5 + local.get $4 + local.get $5 + i32.lt_s + select + i32.lt_s + local.set $4 + local.get $4 + if + local.get $0 + i32.load offset=4 + local.get $2 + i32.const 2 + i32.shl + i32.add + i32.load + local.get $2 + local.get $0 + i32.const 3 + global.set $~argumentsLength + local.get $1 + i32.load + call_indirect (type $i32_i32_i32_=>_i32) + i32.eqz + if + i32.const 0 + return + end + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|0 + end end + i32.const 1 ) - (func $start:std/array~anonymous|34 (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (func $start:std/array~anonymous|7 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $0 - local.get $1 - i32.add + i32.const 0 + i32.le_s ) - (func $start:std/array~anonymous|36 (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (func $start:std/array~anonymous|8 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + local.get $2 + i32.const 100 + call $~lib/array/Array#push + drop local.get $0 - local.get $1 - i32.add + i32.const 10 + i32.lt_s ) - (func $start:std/array~anonymous|37 (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (func $start:std/array~anonymous|9 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $0 - local.get $1 - i32.add + i32.const 10 + i32.lt_s ) - (func $start:std/array~anonymous|38 (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (func $start:std/array~anonymous|10 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + local.get $2 + call $~lib/array/Array#pop + drop local.get $0 - if (result i32) - i32.const 1 - else - local.get $1 - i32.const 2 - i32.gt_s - end + i32.const 3 + i32.lt_s ) - (func $start:std/array~anonymous|39 (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (func $start:std/array~anonymous|11 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $0 - if (result i32) - i32.const 1 - else - local.get $1 - i32.const 100 - i32.gt_s - end + i32.const 3 + i32.ge_s ) - (func $start:std/array~anonymous|41 (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (func $~lib/array/Array#some (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + i32.const 0 + local.set $2 local.get $0 - local.get $1 - i32.add + i32.load offset=12 + local.set $3 + loop $for-loop|0 + local.get $2 + local.get $3 + local.tee $4 + local.get $0 + i32.load offset=12 + local.tee $5 + local.get $4 + local.get $5 + i32.lt_s + select + i32.lt_s + local.set $4 + local.get $4 + if + local.get $0 + i32.load offset=4 + local.get $2 + i32.const 2 + i32.shl + i32.add + i32.load + local.get $2 + local.get $0 + i32.const 3 + global.set $~argumentsLength + local.get $1 + i32.load + call_indirect (type $i32_i32_i32_=>_i32) + if + i32.const 1 + return + end + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|0 + end + end + i32.const 0 ) - (func $~lib/math/murmurHash3 (param $0 i64) (result i64) - local.get $0 - local.get $0 - i64.const 33 - i64.shr_u - i64.xor - local.set $0 - local.get $0 - i64.const -49064778989728563 - i64.mul - local.set $0 - local.get $0 - local.get $0 - i64.const 33 - i64.shr_u - i64.xor - local.set $0 - local.get $0 - i64.const -4265267296055464877 - i64.mul - local.set $0 - local.get $0 - local.get $0 - i64.const 33 - i64.shr_u - i64.xor - local.set $0 + (func $start:std/array~anonymous|12 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $0 + i32.const -1 + i32.le_s ) - (func $~lib/math/splitMix32 (param $0 i32) (result i32) - local.get $0 - i32.const 1831565813 - i32.add - local.set $0 - local.get $0 - local.get $0 - i32.const 15 - i32.shr_u - i32.xor - local.get $0 - i32.const 1 - i32.or - i32.mul - local.set $0 - local.get $0 - local.get $0 - local.get $0 - local.get $0 - i32.const 7 - i32.shr_u - i32.xor - local.get $0 - i32.const 61 - i32.or - i32.mul - i32.add - i32.xor - local.set $0 + (func $start:std/array~anonymous|13 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + local.get $2 + i32.const 100 + call $~lib/array/Array#push + drop local.get $0 + i32.const 10 + i32.gt_s + ) + (func $start:std/array~anonymous|14 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $0 - i32.const 14 - i32.shr_u - i32.xor + i32.const 10 + i32.gt_s ) - (func $~lib/math/NativeMath.seedRandom (param $0 i64) - i32.const 1 - global.set $~lib/math/random_seeded + (func $start:std/array~anonymous|15 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + local.get $2 + call $~lib/array/Array#pop + drop local.get $0 - call $~lib/math/murmurHash3 - global.set $~lib/math/random_state0_64 - global.get $~lib/math/random_state0_64 - i64.const -1 - i64.xor - call $~lib/math/murmurHash3 - global.set $~lib/math/random_state1_64 + i32.const 3 + i32.gt_s + ) + (func $start:std/array~anonymous|16 (param $0 i32) (param $1 i32) (param $2 i32) + global.get $std/array/i local.get $0 - i32.wrap_i64 - call $~lib/math/splitMix32 - global.set $~lib/math/random_state0_32 - global.get $~lib/math/random_state0_32 - call $~lib/math/splitMix32 - global.set $~lib/math/random_state1_32 - global.get $~lib/math/random_state0_64 - i64.const 0 - i64.ne - if (result i32) - global.get $~lib/math/random_state1_64 - i64.const 0 - i64.ne - else - i32.const 0 - end - if (result i32) - global.get $~lib/math/random_state0_32 - i32.const 0 - i32.ne - else - i32.const 0 - end - if (result i32) - global.get $~lib/math/random_state1_32 - i32.const 0 - i32.ne - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 6240 - i32.const 1399 - i32.const 5 - call $~lib/builtins/abort - unreachable - end + i32.add + global.set $std/array/i ) - (func $~lib/util/sort/insertionSort (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/array/Array#forEach (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 f32) - (local $9 i32) + (local $5 i32) i32.const 0 + local.set $2 + local.get $0 + i32.load offset=12 local.set $3 loop $for-loop|0 + local.get $2 local.get $3 - local.get $1 + local.tee $4 + local.get $0 + i32.load offset=12 + local.tee $5 + local.get $4 + local.get $5 + i32.lt_s + select i32.lt_s local.set $4 local.get $4 if local.get $0 - local.get $3 + i32.load offset=4 + local.get $2 i32.const 2 i32.shl i32.add - f32.load - local.set $5 - local.get $3 - i32.const 1 - i32.sub - local.set $6 - block $while-break|1 - loop $while-continue|1 - local.get $6 - i32.const 0 - i32.ge_s - local.set $7 - local.get $7 - if - local.get $0 - local.get $6 - i32.const 2 - i32.shl - i32.add - f32.load - local.set $8 - local.get $5 - local.get $8 - i32.const 2 - global.set $~argumentsLength - local.get $2 - i32.load - call_indirect (type $f32_f32_=>_i32) - i32.const 0 - i32.lt_s - if - local.get $0 - local.get $6 - local.tee $9 - i32.const 1 - i32.sub - local.set $6 - local.get $9 - i32.const 1 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $8 - f32.store - else - br $while-break|1 - end - br $while-continue|1 - end - end - end + i32.load + local.get $2 local.get $0 - local.get $6 - i32.const 1 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $5 - f32.store - local.get $3 + i32.const 3 + global.set $~argumentsLength + local.get $1 + i32.load + call_indirect (type $i32_i32_i32_=>_none) + local.get $2 i32.const 1 i32.add - local.set $3 + local.set $2 br $for-loop|0 end end ) - (func $~lib/util/sort/weakHeapSort (param $0 i32) (param $1 i32) (param $2 i32) + (func $start:std/array~anonymous|17 (param $0 i32) (param $1 i32) (param $2 i32) + local.get $2 + i32.const 100 + call $~lib/array/Array#push + drop + global.get $std/array/i + local.get $0 + i32.add + global.set $std/array/i + ) + (func $start:std/array~anonymous|18 (param $0 i32) (param $1 i32) (param $2 i32) + global.get $std/array/i + local.get $0 + i32.add + global.set $std/array/i + ) + (func $start:std/array~anonymous|19 (param $0 i32) (param $1 i32) (param $2 i32) + local.get $2 + call $~lib/array/Array#pop + drop + global.get $std/array/i + local.get $0 + i32.add + global.set $std/array/i + ) + (func $start:std/array~anonymous|20 (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 f32) - (local $11 i32) - (local $12 f32) local.get $1 - i32.const 31 - i32.add - i32.const 5 - i32.shr_u - i32.const 2 - i32.shl - local.set $3 - local.get $3 - call $~lib/rt/tlsf/__alloc - local.set $4 - local.get $4 i32.const 0 - local.get $3 - call $~lib/memory/memory.fill - local.get $1 - i32.const 1 - i32.sub - local.set $5 - loop $for-loop|0 - local.get $5 + i32.eq + if i32.const 0 - i32.gt_s - local.set $6 - local.get $6 - if - local.get $5 - local.set $7 - loop $while-continue|1 - local.get $7 + local.set $3 + loop $for-loop|0 + local.get $3 + i32.const 4 + i32.lt_s + local.set $4 + local.get $4 + if + local.get $2 + call $~lib/array/Array#pop + drop + local.get $3 i32.const 1 - i32.and - local.get $4 - local.get $7 - i32.const 6 - i32.shr_u - i32.const 2 - i32.shl i32.add - i32.load - local.get $7 - i32.const 1 - i32.shr_s - i32.const 31 - i32.and - i32.shr_u - i32.const 1 - i32.and - i32.eq - local.set $8 - local.get $8 - if - local.get $7 - i32.const 1 - i32.shr_s - local.set $7 - br $while-continue|1 - end + local.set $3 + br $for-loop|0 end - local.get $7 - i32.const 1 - i32.shr_s - local.set $8 - local.get $0 - local.get $8 - i32.const 2 - i32.shl - i32.add - f32.load - local.set $9 - local.get $0 - local.get $5 - i32.const 2 - i32.shl - i32.add - f32.load - local.set $10 - local.get $9 - local.get $10 - i32.const 2 - global.set $~argumentsLength - local.get $2 - i32.load - call_indirect (type $f32_f32_=>_i32) - i32.const 0 + end + i32.const 0 + local.set $3 + loop $for-loop|1 + local.get $3 + i32.const 100 i32.lt_s + local.set $4 + local.get $4 if - local.get $4 - local.get $5 - i32.const 5 - i32.shr_u - i32.const 2 - i32.shl + local.get $2 + i32.const 100 + local.get $3 i32.add - local.get $4 - local.get $5 - i32.const 5 - i32.shr_u - i32.const 2 - i32.shl + call $~lib/array/Array#push + drop + local.get $3 + i32.const 1 i32.add - i32.load + local.set $3 + br $for-loop|1 + end + end + i32.const 0 + local.set $3 + loop $for-loop|2 + local.get $3 + i32.const 100 + i32.lt_s + local.set $4 + local.get $4 + if + local.get $2 + call $~lib/array/Array#pop + drop + local.get $3 i32.const 1 - local.get $5 - i32.const 31 - i32.and - i32.shl - i32.xor - i32.store - local.get $0 - local.get $5 - i32.const 2 - i32.shl i32.add - local.get $9 - f32.store - local.get $0 - local.get $8 - i32.const 2 - i32.shl + 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 + local.set $4 + local.get $4 + if + local.get $2 + local.get $3 + i32.const 200 i32.add - local.get $10 - f32.store + call $~lib/array/Array#push + drop + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $for-loop|3 end - local.get $5 - i32.const 1 - i32.sub - local.set $5 - br $for-loop|0 end end local.get $1 - i32.const 1 - i32.sub - local.set $5 - loop $for-loop|2 - local.get $5 - i32.const 2 - i32.ge_s - local.set $6 - local.get $6 + i32.const 2 + i32.eq + if + local.get $0 + i32.const 202 + i32.eq + i32.eqz if - local.get $0 - f32.load - local.set $10 - local.get $0 - local.get $0 - local.get $5 - i32.const 2 - i32.shl - i32.add - f32.load - f32.store - local.get $0 - local.get $5 - i32.const 2 - i32.shl - i32.add - local.get $10 - f32.store - i32.const 1 - local.set $8 - loop $while-continue|3 - local.get $8 - i32.const 1 - i32.shl - local.get $4 - local.get $8 - i32.const 5 - i32.shr_u - i32.const 2 - i32.shl - i32.add - i32.load - local.get $8 - i32.const 31 - i32.and - i32.shr_u - i32.const 1 - i32.and - i32.add - local.tee $7 - local.get $5 - i32.lt_s - local.set $11 - local.get $11 - if - local.get $7 - local.set $8 - br $while-continue|3 - end - end - loop $while-continue|4 - local.get $8 - i32.const 0 - i32.gt_s - local.set $11 - local.get $11 - if - local.get $0 - f32.load - local.set $10 - local.get $0 - local.get $8 - i32.const 2 - i32.shl - i32.add - f32.load - local.set $9 - local.get $10 - local.get $9 - i32.const 2 - global.set $~argumentsLength - local.get $2 - i32.load - call_indirect (type $f32_f32_=>_i32) - i32.const 0 - i32.lt_s - if - local.get $4 - local.get $8 - i32.const 5 - i32.shr_u - i32.const 2 - i32.shl - i32.add - local.get $4 - local.get $8 - i32.const 5 - i32.shr_u - i32.const 2 - i32.shl - i32.add - i32.load - i32.const 1 - local.get $8 - i32.const 31 - i32.and - i32.shl - i32.xor - i32.store - local.get $0 - local.get $8 - i32.const 2 - i32.shl - i32.add - local.get $10 - f32.store - local.get $0 - local.get $9 - f32.store - end - local.get $8 - i32.const 1 - i32.shr_s - local.set $8 - br $while-continue|4 - end - end - local.get $5 - i32.const 1 - i32.sub - local.set $5 - br $for-loop|2 + i32.const 0 + i32.const 528 + i32.const 680 + i32.const 7 + call $~lib/builtins/abort + unreachable end end - local.get $4 - call $~lib/rt/tlsf/__free + ) + (func $start:std/array~anonymous|21 (param $0 i32) (param $1 i32) (param $2 i32) (result f32) local.get $0 - f32.load offset=4 - local.set $12 + f32.convert_i32_s + ) + (func $~lib/array/Array#get:length (param $0 i32) (result i32) + local.get $0 + i32.load offset=12 + ) + (func $~lib/array/Array#__get (param $0 i32) (param $1 i32) (result f32) + (local $2 f32) + local.get $1 local.get $0 + i32.load offset=12 + i32.ge_u + if + i32.const 320 + i32.const 80 + i32.const 92 + i32.const 42 + call $~lib/builtins/abort + unreachable + end local.get $0 + i32.load offset=4 + local.get $1 + i32.const 2 + i32.shl + i32.add f32.load - f32.store offset=4 + local.set $2 + i32.const 0 + drop + local.get $2 + ) + (func $start:std/array~anonymous|22 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + local.get $2 + i32.const 100 + call $~lib/array/Array#push + drop + global.get $std/array/i + local.get $0 + i32.add + global.set $std/array/i local.get $0 - local.get $12 - f32.store ) - (func $~lib/util/sort/COMPARATOR~anonymous|0 (param $0 f32) (param $1 f32) (result i32) - (local $2 i32) - (local $3 i32) + (func $start:std/array~anonymous|23 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + global.get $std/array/i local.get $0 - i32.reinterpret_f32 - local.set $2 - local.get $1 - i32.reinterpret_f32 - local.set $3 - local.get $2 + i32.add + global.set $std/array/i + local.get $0 + ) + (func $start:std/array~anonymous|24 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $2 - i32.const 31 - i32.shr_s - i32.const 1 - i32.shr_u - i32.xor - local.set $2 - local.get $3 - local.get $3 - i32.const 31 - i32.shr_s - i32.const 1 - i32.shr_u - i32.xor - local.set $3 + call $~lib/array/Array#pop + drop + global.get $std/array/i + local.get $0 + i32.add + global.set $std/array/i + local.get $0 + ) + (func $start:std/array~anonymous|25 (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|26 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $2 - local.get $3 - i32.gt_s + i32.const 100 + call $~lib/array/Array#push + drop + 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|27 (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|28 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $2 - local.get $3 - i32.lt_s - i32.sub + call $~lib/array/Array#pop + drop + 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 $~lib/util/sort/insertionSort (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 f64) - (local $6 i32) + (func $start:std/array~anonymous|29 (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + local.get $0 + local.get $1 + i32.add + ) + (func $~lib/array/Array#reduce (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 f64) - (local $9 i32) - i32.const 0 + local.get $2 local.set $3 + i32.const 0 + local.set $4 + local.get $0 + i32.load offset=12 + local.set $5 loop $for-loop|0 - local.get $3 - local.get $1 - i32.lt_s - local.set $4 local.get $4 + local.get $5 + local.tee $6 + local.get $0 + i32.load offset=12 + local.tee $7 + local.get $6 + local.get $7 + i32.lt_s + select + i32.lt_s + local.set $6 + local.get $6 if - local.get $0 - local.get $3 - i32.const 3 - i32.shl - i32.add - f64.load - local.set $5 local.get $3 - i32.const 1 - i32.sub - local.set $6 - block $while-break|1 - loop $while-continue|1 - local.get $6 - i32.const 0 - i32.ge_s - local.set $7 - local.get $7 - if - local.get $0 - local.get $6 - i32.const 3 - i32.shl - i32.add - f64.load - local.set $8 - local.get $5 - local.get $8 - i32.const 2 - global.set $~argumentsLength - local.get $2 - i32.load - call_indirect (type $f64_f64_=>_i32) - i32.const 0 - i32.lt_s - if - local.get $0 - local.get $6 - local.tee $9 - i32.const 1 - i32.sub - local.set $6 - local.get $9 - i32.const 1 - i32.add - i32.const 3 - i32.shl - i32.add - local.get $8 - f64.store - else - br $while-break|1 - end - br $while-continue|1 - end - end - end local.get $0 - local.get $6 - i32.const 1 - i32.add - i32.const 3 + i32.load offset=4 + local.get $4 + i32.const 2 i32.shl i32.add - local.get $5 - f64.store - local.get $3 + i32.load + local.get $4 + local.get $0 + i32.const 4 + global.set $~argumentsLength + local.get $1 + i32.load + call_indirect (type $i32_i32_i32_i32_=>_i32) + local.set $3 + local.get $4 i32.const 1 i32.add - local.set $3 + local.set $4 br $for-loop|0 end end + local.get $3 ) - (func $~lib/util/sort/weakHeapSort (param $0 i32) (param $1 i32) (param $2 i32) + (func $start:std/array~anonymous|30 (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + local.get $0 + local.get $1 + i32.add + ) + (func $start:std/array~anonymous|31 (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + local.get $0 + if (result i32) + i32.const 1 + else + local.get $1 + i32.const 2 + i32.gt_s + end + ) + (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) (local $6 i32) (local $7 i32) - (local $8 i32) - (local $9 f64) - (local $10 f64) - (local $11 i32) - (local $12 f64) - local.get $1 - i32.const 31 - i32.add - i32.const 5 - i32.shr_u - i32.const 2 - i32.shl + local.get $2 local.set $3 - local.get $3 - call $~lib/rt/tlsf/__alloc - local.set $4 - local.get $4 i32.const 0 - local.get $3 - call $~lib/memory/memory.fill - local.get $1 - i32.const 1 - i32.sub + local.set $4 + local.get $0 + i32.load offset=12 local.set $5 loop $for-loop|0 + local.get $4 local.get $5 - i32.const 0 - i32.gt_s + local.tee $6 + local.get $0 + i32.load offset=12 + local.tee $7 + local.get $6 + local.get $7 + i32.lt_s + select + i32.lt_s local.set $6 local.get $6 if - local.get $5 - local.set $7 - loop $while-continue|1 - local.get $7 - i32.const 1 - i32.and - local.get $4 - local.get $7 - i32.const 6 - i32.shr_u - i32.const 2 - i32.shl - i32.add - i32.load - local.get $7 - i32.const 1 - i32.shr_s - i32.const 31 - i32.and - i32.shr_u - i32.const 1 - i32.and - i32.eq - local.set $8 - local.get $8 - if - local.get $7 - i32.const 1 - i32.shr_s - local.set $7 - br $while-continue|1 - end - end - local.get $7 - i32.const 1 - i32.shr_s - local.set $8 + local.get $3 local.get $0 - local.get $8 - i32.const 3 + i32.load offset=4 + local.get $4 + i32.const 2 i32.shl i32.add - f64.load - local.set $9 + i32.load + local.get $4 local.get $0 - local.get $5 - i32.const 3 - i32.shl - i32.add - f64.load - local.set $10 - local.get $9 - local.get $10 - i32.const 2 + i32.const 4 global.set $~argumentsLength - local.get $2 + local.get $1 i32.load - call_indirect (type $f64_f64_=>_i32) - i32.const 0 - i32.lt_s - if - local.get $4 - local.get $5 - i32.const 5 - i32.shr_u - i32.const 2 - i32.shl - i32.add - local.get $4 - local.get $5 - i32.const 5 - i32.shr_u - i32.const 2 - i32.shl - i32.add - i32.load - i32.const 1 - local.get $5 - i32.const 31 - i32.and - i32.shl - i32.xor - i32.store - local.get $0 - local.get $5 - i32.const 3 - i32.shl - i32.add - local.get $9 - f64.store - local.get $0 - local.get $8 - i32.const 3 - i32.shl - i32.add - local.get $10 - f64.store - end - local.get $5 + call_indirect (type $i32_i32_i32_i32_=>_i32) + local.set $3 + local.get $4 i32.const 1 - i32.sub - local.set $5 + i32.add + local.set $4 br $for-loop|0 end end + local.get $3 + ) + (func $start:std/array~anonymous|32 (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + local.get $0 + if (result i32) + i32.const 1 + else + local.get $1 + i32.const 100 + i32.gt_s + end + ) + (func $start:std/array~anonymous|33 (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + local.get $3 + i32.const 1 + call $~lib/array/Array#push + drop + local.get $0 + local.get $1 + i32.add + ) + (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 $start:std/array~anonymous|35 (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + local.get $3 + call $~lib/array/Array#pop + drop + local.get $0 + local.get $1 + i32.add + ) + (func $start:std/array~anonymous|36 (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + local.get $0 local.get $1 + i32.add + ) + (func $~lib/array/Array#reduceRight (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $2 + local.set $3 + local.get $0 + i32.load offset=12 i32.const 1 i32.sub - local.set $5 - loop $for-loop|2 - local.get $5 - i32.const 2 + local.set $4 + loop $for-loop|0 + local.get $4 + i32.const 0 i32.ge_s - local.set $6 - local.get $6 + local.set $5 + local.get $5 if + local.get $3 local.get $0 - f64.load - local.set $10 - local.get $0 - local.get $0 - local.get $5 - i32.const 3 + i32.load offset=4 + local.get $4 + i32.const 2 i32.shl i32.add - f64.load - f64.store + i32.load + local.get $4 local.get $0 - local.get $5 - i32.const 3 - i32.shl - i32.add - local.get $10 - f64.store - i32.const 1 - local.set $8 - loop $while-continue|3 - local.get $8 - i32.const 1 - i32.shl - local.get $4 - local.get $8 - i32.const 5 - i32.shr_u - i32.const 2 - i32.shl - i32.add - i32.load - local.get $8 - i32.const 31 - i32.and - i32.shr_u - i32.const 1 - i32.and - i32.add - local.tee $7 - local.get $5 - i32.lt_s - local.set $11 - local.get $11 - if - local.get $7 - local.set $8 - br $while-continue|3 - end - end - loop $while-continue|4 - local.get $8 - i32.const 0 - i32.gt_s - local.set $11 - local.get $11 - if - local.get $0 - f64.load - local.set $10 - local.get $0 - local.get $8 - i32.const 3 - i32.shl - i32.add - f64.load - local.set $9 - local.get $10 - local.get $9 - i32.const 2 - global.set $~argumentsLength - local.get $2 - i32.load - call_indirect (type $f64_f64_=>_i32) - i32.const 0 - i32.lt_s - if - local.get $4 - local.get $8 - i32.const 5 - i32.shr_u - i32.const 2 - i32.shl - i32.add - local.get $4 - local.get $8 - i32.const 5 - i32.shr_u - i32.const 2 - i32.shl - i32.add - i32.load - i32.const 1 - local.get $8 - i32.const 31 - i32.and - i32.shl - i32.xor - i32.store - local.get $0 - local.get $8 - i32.const 3 - i32.shl - i32.add - local.get $10 - f64.store - local.get $0 - local.get $9 - f64.store - end - local.get $8 - i32.const 1 - i32.shr_s - local.set $8 - br $while-continue|4 - end - end - local.get $5 + i32.const 4 + global.set $~argumentsLength + local.get $1 + i32.load + call_indirect (type $i32_i32_i32_i32_=>_i32) + local.set $3 + local.get $4 i32.const 1 i32.sub - local.set $5 - br $for-loop|2 + local.set $4 + br $for-loop|0 end end - local.get $4 - call $~lib/rt/tlsf/__free - local.get $0 - f64.load offset=8 - local.set $12 - local.get $0 - local.get $0 - f64.load - f64.store offset=8 - local.get $0 - local.get $12 - f64.store + local.get $3 ) - (func $~lib/util/sort/COMPARATOR~anonymous|0 (param $0 f64) (param $1 f64) (result i32) - (local $2 i64) - (local $3 i64) + (func $start:std/array~anonymous|37 (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) local.get $0 - i64.reinterpret_f64 - local.set $2 local.get $1 - i64.reinterpret_f64 - local.set $3 - local.get $2 - local.get $2 - i64.const 63 - i64.shr_s - i64.const 1 - i64.shr_u - i64.xor - local.set $2 - local.get $3 - local.get $3 - i64.const 63 - i64.shr_s - i64.const 1 - i64.shr_u - i64.xor - local.set $3 - local.get $2 - local.get $3 - i64.gt_s - local.get $2 - local.get $3 - i64.lt_s - i32.sub + i32.add ) - (func $~lib/array/Array#get:length (param $0 i32) (result i32) + (func $start:std/array~anonymous|38 (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) local.get $0 - i32.load offset=12 + if (result i32) + i32.const 1 + else + local.get $1 + i32.const 2 + i32.gt_s + end ) - (func $~lib/array/Array#__get (param $0 i32) (param $1 i32) (result f64) - (local $2 f64) - local.get $1 + (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) + local.get $2 + local.set $3 local.get $0 i32.load offset=12 - i32.ge_u - if - i32.const 320 - i32.const 80 - i32.const 92 - i32.const 42 - call $~lib/builtins/abort - unreachable + i32.const 1 + i32.sub + local.set $4 + loop $for-loop|0 + local.get $4 + i32.const 0 + i32.ge_s + local.set $5 + local.get $5 + if + local.get $3 + local.get $0 + i32.load offset=4 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load + local.get $4 + local.get $0 + i32.const 4 + global.set $~argumentsLength + local.get $1 + i32.load + call_indirect (type $i32_i32_i32_i32_=>_i32) + local.set $3 + local.get $4 + i32.const 1 + i32.sub + local.set $4 + br $for-loop|0 + end end + local.get $3 + ) + (func $start:std/array~anonymous|39 (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + local.get $0 + if (result i32) + i32.const 1 + else + local.get $1 + i32.const 100 + i32.gt_s + end + ) + (func $start:std/array~anonymous|40 (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + local.get $3 + i32.const 1 + call $~lib/array/Array#push + drop local.get $0 - i32.load offset=4 local.get $1 - i32.const 3 - i32.shl i32.add - f64.load - local.set $2 - i32.const 0 + ) + (func $start:std/array~anonymous|41 (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + local.get $0 + local.get $1 + i32.add + ) + (func $start:std/array~anonymous|42 (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + local.get $3 + call $~lib/array/Array#pop drop - local.get $2 + local.get $0 + local.get $1 + i32.add ) - (func $~lib/util/sort/insertionSort (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/math/murmurHash3 (param $0 i64) (result i64) + local.get $0 + local.get $0 + i64.const 33 + i64.shr_u + i64.xor + local.set $0 + local.get $0 + i64.const -49064778989728563 + i64.mul + local.set $0 + local.get $0 + local.get $0 + i64.const 33 + i64.shr_u + i64.xor + local.set $0 + local.get $0 + i64.const -4265267296055464877 + i64.mul + local.set $0 + local.get $0 + local.get $0 + i64.const 33 + i64.shr_u + i64.xor + local.set $0 + local.get $0 + ) + (func $~lib/math/splitMix32 (param $0 i32) (result i32) + local.get $0 + i32.const 1831565813 + i32.add + local.set $0 + local.get $0 + local.get $0 + i32.const 15 + i32.shr_u + i32.xor + local.get $0 + i32.const 1 + i32.or + i32.mul + local.set $0 + local.get $0 + local.get $0 + local.get $0 + local.get $0 + i32.const 7 + i32.shr_u + i32.xor + local.get $0 + i32.const 61 + i32.or + i32.mul + i32.add + i32.xor + local.set $0 + local.get $0 + local.get $0 + i32.const 14 + i32.shr_u + i32.xor + ) + (func $~lib/math/NativeMath.seedRandom (param $0 i64) + i32.const 1 + global.set $~lib/math/random_seeded + local.get $0 + call $~lib/math/murmurHash3 + global.set $~lib/math/random_state0_64 + global.get $~lib/math/random_state0_64 + i64.const -1 + i64.xor + call $~lib/math/murmurHash3 + global.set $~lib/math/random_state1_64 + local.get $0 + i32.wrap_i64 + call $~lib/math/splitMix32 + global.set $~lib/math/random_state0_32 + global.get $~lib/math/random_state0_32 + call $~lib/math/splitMix32 + global.set $~lib/math/random_state1_32 + global.get $~lib/math/random_state0_64 + i64.const 0 + i64.ne + if (result i32) + global.get $~lib/math/random_state1_64 + i64.const 0 + i64.ne + else + i32.const 0 + end + if (result i32) + global.get $~lib/math/random_state0_32 + i32.const 0 + i32.ne + else + i32.const 0 + end + if (result i32) + global.get $~lib/math/random_state1_32 + i32.const 0 + i32.ne + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 6240 + i32.const 1399 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + ) + (func $~lib/util/sort/insertionSort (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) - (local $5 i32) + (local $5 f32) (local $6 i32) (local $7 i32) - (local $8 i32) + (local $8 f32) (local $9 i32) i32.const 0 local.set $3 @@ -6642,7 +6651,7 @@ i32.const 2 i32.shl i32.add - i32.load + f32.load local.set $5 local.get $3 i32.const 1 @@ -6661,7 +6670,7 @@ i32.const 2 i32.shl i32.add - i32.load + f32.load local.set $8 local.get $5 local.get $8 @@ -6669,7 +6678,7 @@ global.set $~argumentsLength local.get $2 i32.load - call_indirect (type $i32_i32_=>_i32) + call_indirect (type $f32_f32_=>_i32) i32.const 0 i32.lt_s if @@ -6686,7 +6695,7 @@ i32.shl i32.add local.get $8 - i32.store + f32.store else br $while-break|1 end @@ -6702,7 +6711,7 @@ i32.shl i32.add local.get $5 - i32.store + f32.store local.get $3 i32.const 1 i32.add @@ -6711,17 +6720,17 @@ end end ) - (func $~lib/util/sort/weakHeapSort (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/util/sort/weakHeapSort (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 $9 f32) + (local $10 f32) (local $11 i32) - (local $12 i32) + (local $12 f32) local.get $1 i32.const 31 i32.add @@ -6790,14 +6799,14 @@ i32.const 2 i32.shl i32.add - i32.load + f32.load local.set $9 local.get $0 local.get $5 i32.const 2 i32.shl i32.add - i32.load + f32.load local.set $10 local.get $9 local.get $10 @@ -6805,7 +6814,7 @@ global.set $~argumentsLength local.get $2 i32.load - call_indirect (type $i32_i32_=>_i32) + call_indirect (type $f32_f32_=>_i32) i32.const 0 i32.lt_s if @@ -6837,14 +6846,14 @@ i32.shl i32.add local.get $9 - i32.store + f32.store local.get $0 local.get $8 i32.const 2 i32.shl i32.add local.get $10 - i32.store + f32.store end local.get $5 i32.const 1 @@ -6865,7 +6874,7 @@ local.get $6 if local.get $0 - i32.load + f32.load local.set $10 local.get $0 local.get $0 @@ -6873,83 +6882,83 @@ i32.const 2 i32.shl i32.add - i32.load - i32.store + f32.load + f32.store local.get $0 local.get $5 i32.const 2 i32.shl i32.add local.get $10 - i32.store + f32.store i32.const 1 - local.set $9 + local.set $8 loop $while-continue|3 - local.get $9 + local.get $8 i32.const 1 i32.shl local.get $4 - local.get $9 + local.get $8 i32.const 5 i32.shr_u i32.const 2 i32.shl i32.add i32.load - local.get $9 + local.get $8 i32.const 31 i32.and i32.shr_u i32.const 1 i32.and i32.add - local.tee $8 + local.tee $7 local.get $5 i32.lt_s - local.set $7 - local.get $7 + local.set $11 + local.get $11 if - local.get $8 - local.set $9 + local.get $7 + local.set $8 br $while-continue|3 end end loop $while-continue|4 - local.get $9 + local.get $8 i32.const 0 i32.gt_s - local.set $7 - local.get $7 + local.set $11 + local.get $11 if local.get $0 - i32.load + f32.load local.set $10 local.get $0 - local.get $9 + local.get $8 i32.const 2 i32.shl i32.add - i32.load - local.set $11 + f32.load + local.set $9 local.get $10 - local.get $11 + local.get $9 i32.const 2 global.set $~argumentsLength local.get $2 i32.load - call_indirect (type $i32_i32_=>_i32) + call_indirect (type $f32_f32_=>_i32) i32.const 0 i32.lt_s if local.get $4 - local.get $9 + local.get $8 i32.const 5 i32.shr_u i32.const 2 i32.shl i32.add local.get $4 - local.get $9 + local.get $8 i32.const 5 i32.shr_u i32.const 2 @@ -6957,27 +6966,27 @@ i32.add i32.load i32.const 1 - local.get $9 + local.get $8 i32.const 31 i32.and i32.shl i32.xor i32.store local.get $0 - local.get $9 + local.get $8 i32.const 2 i32.shl i32.add local.get $10 - i32.store + f32.store local.get $0 - local.get $11 - i32.store + local.get $9 + f32.store end - local.get $9 + local.get $8 i32.const 1 i32.shr_s - local.set $9 + local.set $8 br $while-continue|4 end end @@ -6991,28 +7000,209 @@ local.get $4 call $~lib/rt/tlsf/__free local.get $0 - i32.load offset=4 + f32.load offset=4 local.set $12 local.get $0 local.get $0 - i32.load - i32.store offset=4 + f32.load + f32.store offset=4 local.get $0 local.get $12 - i32.store + f32.store ) - (func $~lib/util/sort/COMPARATOR~anonymous|0 (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) + (local $4 f32) + (local $5 f32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + local.get $0 + i32.load offset=12 + local.set $2 + local.get $2 + i32.const 1 + i32.le_s + if + local.get $0 + return + end + local.get $0 + i32.load offset=4 + local.set $3 + local.get $2 + i32.const 2 + i32.eq + if + local.get $3 + f32.load offset=4 + local.set $4 + local.get $3 + f32.load + local.set $5 + local.get $4 + local.get $5 + i32.const 2 + global.set $~argumentsLength + local.get $1 + i32.load + call_indirect (type $f32_f32_=>_i32) + i32.const 0 + i32.lt_s + if + local.get $3 + local.get $5 + f32.store offset=4 + local.get $3 + local.get $4 + f32.store + end + local.get $0 + return + end + local.get $3 + local.set $8 + local.get $2 + local.set $7 + local.get $1 + local.set $6 + i32.const 0 + drop + local.get $7 + i32.const 256 + i32.lt_s + if + local.get $8 + local.get $7 + local.get $6 + call $~lib/util/sort/insertionSort + else + local.get $8 + local.get $7 + local.get $6 + call $~lib/util/sort/weakHeapSort + end + local.get $0 + ) + (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.set $2 local.get $1 + i32.reinterpret_f32 + local.set $3 + local.get $2 + local.get $2 + i32.const 31 + i32.shr_s + i32.const 1 + i32.shr_u + i32.xor + local.set $2 + local.get $3 + local.get $3 + i32.const 31 + i32.shr_s + i32.const 1 + i32.shr_u + i32.xor + local.set $3 + local.get $2 + local.get $3 + i32.gt_s + local.get $2 + local.get $3 + i32.lt_s i32.sub ) - (func $~lib/util/sort/insertionSort (param $0 i32) (param $1 i32) (param $2 i32) + (func $std/array/isArraysEqual (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) - (local $5 i32) + (local $5 f32) + local.get $2 + i32.eqz + if + local.get $0 + call $~lib/array/Array#get:length + local.set $2 + local.get $2 + local.get $1 + call $~lib/array/Array#get:length + i32.ne + if + i32.const 0 + return + end + local.get $0 + local.get $1 + i32.eq + if + i32.const 1 + return + end + end + i32.const 0 + local.set $3 + loop $for-loop|0 + local.get $3 + local.get $2 + i32.lt_s + local.set $4 + local.get $4 + if + block $for-continue|0 + i32.const 1 + drop + local.get $0 + local.get $3 + call $~lib/array/Array#__get + local.tee $5 + local.get $5 + f32.ne + if (result i32) + local.get $1 + local.get $3 + call $~lib/array/Array#__get + local.tee $5 + local.get $5 + f32.ne + else + i32.const 0 + end + if + br $for-continue|0 + end + local.get $0 + local.get $3 + call $~lib/array/Array#__get + local.get $1 + local.get $3 + call $~lib/array/Array#__get + f32.ne + if + i32.const 0 + return + end + end + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $for-loop|0 + end + end + i32.const 1 + ) + (func $~lib/util/sort/insertionSort (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 f64) (local $6 i32) (local $7 i32) - (local $8 i32) + (local $8 f64) (local $9 i32) i32.const 0 local.set $3 @@ -7025,10 +7215,10 @@ if local.get $0 local.get $3 - i32.const 2 + i32.const 3 i32.shl i32.add - i32.load + f64.load local.set $5 local.get $3 i32.const 1 @@ -7044,10 +7234,10 @@ if local.get $0 local.get $6 - i32.const 2 + i32.const 3 i32.shl i32.add - i32.load + f64.load local.set $8 local.get $5 local.get $8 @@ -7055,7 +7245,7 @@ global.set $~argumentsLength local.get $2 i32.load - call_indirect (type $i32_i32_=>_i32) + call_indirect (type $f64_f64_=>_i32) i32.const 0 i32.lt_s if @@ -7068,11 +7258,11 @@ local.get $9 i32.const 1 i32.add - i32.const 2 + i32.const 3 i32.shl i32.add local.get $8 - i32.store + f64.store else br $while-break|1 end @@ -7084,11 +7274,11 @@ local.get $6 i32.const 1 i32.add - i32.const 2 + i32.const 3 i32.shl i32.add local.get $5 - i32.store + f64.store local.get $3 i32.const 1 i32.add @@ -7097,17 +7287,17 @@ end end ) - (func $~lib/util/sort/weakHeapSort (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/util/sort/weakHeapSort (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 $9 f64) + (local $10 f64) (local $11 i32) - (local $12 i32) + (local $12 f64) local.get $1 i32.const 31 i32.add @@ -7173,17 +7363,17 @@ local.set $8 local.get $0 local.get $8 - i32.const 2 + i32.const 3 i32.shl i32.add - i32.load + f64.load local.set $9 local.get $0 local.get $5 - i32.const 2 + i32.const 3 i32.shl i32.add - i32.load + f64.load local.set $10 local.get $9 local.get $10 @@ -7191,7 +7381,7 @@ global.set $~argumentsLength local.get $2 i32.load - call_indirect (type $i32_i32_=>_i32) + call_indirect (type $f64_f64_=>_i32) i32.const 0 i32.lt_s if @@ -7219,18 +7409,18 @@ i32.store local.get $0 local.get $5 - i32.const 2 + i32.const 3 i32.shl i32.add local.get $9 - i32.store + f64.store local.get $0 local.get $8 - i32.const 2 + i32.const 3 i32.shl i32.add local.get $10 - i32.store + f64.store end local.get $5 i32.const 1 @@ -7251,91 +7441,91 @@ local.get $6 if local.get $0 - i32.load + f64.load local.set $10 local.get $0 local.get $0 local.get $5 - i32.const 2 + i32.const 3 i32.shl i32.add - i32.load - i32.store + f64.load + f64.store local.get $0 local.get $5 - i32.const 2 + i32.const 3 i32.shl i32.add local.get $10 - i32.store + f64.store i32.const 1 - local.set $9 + local.set $8 loop $while-continue|3 - local.get $9 + local.get $8 i32.const 1 i32.shl local.get $4 - local.get $9 + local.get $8 i32.const 5 i32.shr_u i32.const 2 i32.shl i32.add i32.load - local.get $9 + local.get $8 i32.const 31 i32.and i32.shr_u i32.const 1 i32.and i32.add - local.tee $8 + local.tee $7 local.get $5 i32.lt_s - local.set $7 - local.get $7 + local.set $11 + local.get $11 if - local.get $8 - local.set $9 + local.get $7 + local.set $8 br $while-continue|3 end end loop $while-continue|4 - local.get $9 + local.get $8 i32.const 0 i32.gt_s - local.set $7 - local.get $7 + local.set $11 + local.get $11 if local.get $0 - i32.load + f64.load local.set $10 local.get $0 - local.get $9 - i32.const 2 + local.get $8 + i32.const 3 i32.shl i32.add - i32.load - local.set $11 + f64.load + local.set $9 local.get $10 - local.get $11 + local.get $9 i32.const 2 global.set $~argumentsLength local.get $2 i32.load - call_indirect (type $i32_i32_=>_i32) + call_indirect (type $f64_f64_=>_i32) i32.const 0 i32.lt_s if local.get $4 - local.get $9 + local.get $8 i32.const 5 i32.shr_u i32.const 2 i32.shl i32.add local.get $4 - local.get $9 + local.get $8 i32.const 5 i32.shr_u i32.const 2 @@ -7343,27 +7533,27 @@ i32.add i32.load i32.const 1 - local.get $9 + local.get $8 i32.const 31 i32.and i32.shl i32.xor i32.store local.get $0 - local.get $9 - i32.const 2 + local.get $8 + i32.const 3 i32.shl i32.add local.get $10 - i32.store + f64.store local.get $0 - local.get $11 - i32.store + local.get $9 + f64.store end - local.get $9 + local.get $8 i32.const 1 i32.shr_s - local.set $9 + local.set $8 br $while-continue|4 end end @@ -7377,2538 +7567,2422 @@ local.get $4 call $~lib/rt/tlsf/__free local.get $0 - i32.load offset=4 + f64.load offset=8 local.set $12 local.get $0 local.get $0 - i32.load - i32.store offset=4 + f64.load + f64.store offset=8 local.get $0 local.get $12 - i32.store + f64.store ) - (func $~lib/util/sort/COMPARATOR~anonymous|0 (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) + (local $4 f64) + (local $5 f64) + (local $6 i32) + (local $7 i32) + (local $8 i32) local.get $0 - local.get $1 - i32.gt_u + i32.load offset=12 + local.set $2 + local.get $2 + i32.const 1 + i32.le_s + if + local.get $0 + return + end local.get $0 - local.get $1 - i32.lt_u - i32.sub - ) - (func $~lib/math/NativeMath.random (result f64) - (local $0 i64) - (local $1 i64) - (local $2 i64) - global.get $~lib/math/random_seeded - i32.eqz + i32.load offset=4 + local.set $3 + local.get $2 + i32.const 2 + i32.eq if - call $~lib/builtins/seed - i64.reinterpret_f64 - call $~lib/math/NativeMath.seedRandom + local.get $3 + f64.load offset=8 + local.set $4 + local.get $3 + f64.load + local.set $5 + local.get $4 + local.get $5 + i32.const 2 + global.set $~argumentsLength + local.get $1 + i32.load + call_indirect (type $f64_f64_=>_i32) + i32.const 0 + i32.lt_s + if + local.get $3 + local.get $5 + f64.store offset=8 + local.get $3 + local.get $4 + f64.store + end + local.get $0 + return end - global.get $~lib/math/random_state0_64 - local.set $0 - global.get $~lib/math/random_state1_64 - local.set $1 + local.get $3 + local.set $8 + local.get $2 + local.set $7 local.get $1 - global.set $~lib/math/random_state0_64 - local.get $0 - local.get $0 - i64.const 23 - i64.shl - i64.xor - local.set $0 - local.get $0 - local.get $0 - i64.const 17 - i64.shr_u - i64.xor - local.set $0 + local.set $6 + i32.const 0 + drop + local.get $7 + i32.const 256 + i32.lt_s + if + local.get $8 + local.get $7 + local.get $6 + call $~lib/util/sort/insertionSort + else + local.get $8 + local.get $7 + local.get $6 + call $~lib/util/sort/weakHeapSort + end local.get $0 - local.get $1 - i64.xor - local.set $0 + ) + (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.set $2 local.get $1 - i64.const 26 + i64.reinterpret_f64 + local.set $3 + local.get $2 + local.get $2 + i64.const 63 + i64.shr_s + i64.const 1 i64.shr_u i64.xor - local.set $0 - local.get $0 - global.set $~lib/math/random_state1_64 - local.get $1 - i64.const 12 - i64.shr_u - i64.const 4607182418800017408 - i64.or local.set $2 + local.get $3 + local.get $3 + i64.const 63 + i64.shr_s + i64.const 1 + i64.shr_u + i64.xor + local.set $3 local.get $2 - f64.reinterpret_i64 - f64.const 1 - f64.sub + local.get $3 + i64.gt_s + local.get $2 + local.get $3 + i64.lt_s + i32.sub ) - (func $~lib/util/sort/COMPARATOR~anonymous|1 (param $0 i32) (param $1 i32) (result i32) - local.get $0 - local.get $1 - i32.sub - ) - (func $start:std/array~anonymous|43 (param $0 i32) (param $1 i32) (result i32) - local.get $0 - local.get $1 - i32.sub - ) - (func $start:std/array~anonymous|44 (param $0 i32) (param $1 i32) (result i32) - local.get $1 - local.get $0 - i32.sub - ) - (func $start:std/array~anonymous|45 (param $0 i32) (param $1 i32) (result i32) - local.get $0 - local.get $1 - i32.sub - ) - (func $start:std/array~anonymous|46 (param $0 i32) (param $1 i32) (result i32) - local.get $1 - local.get $0 - i32.sub - ) - (func $~lib/array/Array<~lib/array/Array>#set:buffer (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - i32.store - local.get $0 - local.get $1 - i32.const 0 - call $~lib/rt/itcms/__link - ) - (func $~lib/array/Array<~lib/array/Array>#set:dataStart (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - i32.store offset=4 - ) - (func $~lib/array/Array<~lib/array/Array>#set:byteLength (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - i32.store offset=8 - ) - (func $~lib/array/Array<~lib/array/Array>#set:length_ (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - i32.store offset=12 - ) - (func $~lib/array/Array<~lib/array/Array>#__uset (param $0 i32) (param $1 i32) (param $2 i32) - local.get $0 - i32.load offset=4 - local.get $1 - i32.const 2 - i32.shl - i32.add - local.get $2 - i32.store - i32.const 1 - drop - local.get $0 - local.get $2 - i32.const 1 - call $~lib/rt/itcms/__link - ) - (func $~lib/array/Array<~lib/array/Array>#get:length (param $0 i32) (result i32) + (func $~lib/array/Array#get:length (param $0 i32) (result i32) local.get $0 i32.load offset=12 ) - (func $~lib/array/Array>#set:buffer (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - i32.store - local.get $0 - local.get $1 - i32.const 0 - call $~lib/rt/itcms/__link - ) - (func $~lib/array/Array>#set:dataStart (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - i32.store offset=4 - ) - (func $~lib/array/Array>#set:byteLength (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - i32.store offset=8 - ) - (func $~lib/array/Array>#set:length_ (param $0 i32) (param $1 i32) - local.get $0 + (func $~lib/array/Array#__get (param $0 i32) (param $1 i32) (result f64) + (local $2 f64) local.get $1 - i32.store offset=12 - ) - (func $std/array/Proxy#set:x (param $0 i32) (param $1 i32) local.get $0 - local.get $1 - i32.store - ) - (func $~lib/array/Array>#__uset (param $0 i32) (param $1 i32) (param $2 i32) + i32.load offset=12 + i32.ge_u + if + i32.const 320 + i32.const 80 + i32.const 92 + i32.const 42 + call $~lib/builtins/abort + unreachable + end local.get $0 i32.load offset=4 local.get $1 - i32.const 2 + i32.const 3 i32.shl i32.add - local.get $2 - i32.store - i32.const 1 + f64.load + local.set $2 + i32.const 0 drop - local.get $0 local.get $2 - i32.const 1 - call $~lib/rt/itcms/__link - ) - (func $start:std/array~anonymous|48 (param $0 i32) (param $1 i32) (result i32) - local.get $0 - i32.load - local.get $1 - i32.load - i32.sub - ) - (func $~lib/array/Array>#get:length (param $0 i32) (result i32) - local.get $0 - i32.load offset=12 ) - (func $~lib/array/Array<~lib/string/String|null>#get:length (param $0 i32) (result i32) - local.get $0 - i32.load offset=12 - ) - (func $~lib/string/String#get:length (param $0 i32) (result i32) - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 + (func $std/array/isArraysEqual (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 f64) + local.get $2 + i32.eqz + if + local.get $0 + call $~lib/array/Array#get:length + local.set $2 + local.get $2 + local.get $1 + call $~lib/array/Array#get:length + i32.ne + if + i32.const 0 + return + end + local.get $0 + local.get $1 + i32.eq + if + i32.const 1 + return + end + end + i32.const 0 + local.set $3 + loop $for-loop|0 + local.get $3 + local.get $2 + i32.lt_s + local.set $4 + local.get $4 + if + block $for-continue|0 + i32.const 1 + drop + local.get $0 + local.get $3 + call $~lib/array/Array#__get + local.tee $5 + local.get $5 + f64.ne + if (result i32) + local.get $1 + local.get $3 + call $~lib/array/Array#__get + local.tee $5 + local.get $5 + f64.ne + else + i32.const 0 + end + if + br $for-continue|0 + end + local.get $0 + local.get $3 + call $~lib/array/Array#__get + local.get $1 + local.get $3 + call $~lib/array/Array#__get + f64.ne + if + i32.const 0 + return + end + end + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $for-loop|0 + end + end i32.const 1 - i32.shr_u ) - (func $~lib/util/string/compareImpl (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) (result i32) + (func $~lib/util/sort/insertionSort (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.get $0 - local.get $1 - i32.const 1 - i32.shl - i32.add - local.set $5 - local.get $2 - local.get $3 - i32.const 1 - i32.shl - i32.add - local.set $6 i32.const 0 - i32.const 2 - i32.lt_s - drop - local.get $4 - i32.const 4 - i32.ge_u - if (result i32) - local.get $5 - i32.const 7 - i32.and - local.get $6 - i32.const 7 - i32.and - i32.or - i32.eqz - else - i32.const 0 - end - if - block $do-break|0 - loop $do-continue|0 - local.get $5 - i64.load - local.get $6 - i64.load - i64.ne - if - br $do-break|0 - end - local.get $5 - i32.const 8 - i32.add - local.set $5 - local.get $6 - i32.const 8 - i32.add - local.set $6 - local.get $4 - i32.const 4 - i32.sub - local.set $4 - local.get $4 - i32.const 4 - i32.ge_u - local.set $7 - local.get $7 - br_if $do-continue|0 - end - end - end - loop $while-continue|1 - local.get $4 - local.tee $7 - i32.const 1 - i32.sub + local.set $3 + loop $for-loop|0 + local.get $3 + local.get $1 + i32.lt_s local.set $4 - local.get $7 - local.set $7 - local.get $7 + local.get $4 if - local.get $5 - i32.load16_u - local.set $8 - local.get $6 - i32.load16_u - local.set $9 - local.get $8 - local.get $9 - i32.ne - if - local.get $8 - local.get $9 - i32.sub - return - end - local.get $5 + local.get $0 + local.get $3 i32.const 2 + i32.shl i32.add + i32.load local.set $5 + local.get $3 + i32.const 1 + i32.sub + local.set $6 + block $while-break|1 + loop $while-continue|1 + local.get $6 + i32.const 0 + i32.ge_s + local.set $7 + local.get $7 + if + local.get $0 + local.get $6 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $8 + local.get $5 + local.get $8 + i32.const 2 + global.set $~argumentsLength + local.get $2 + i32.load + call_indirect (type $i32_i32_=>_i32) + i32.const 0 + i32.lt_s + if + local.get $0 + local.get $6 + local.tee $9 + i32.const 1 + i32.sub + local.set $6 + local.get $9 + i32.const 1 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $8 + i32.store + else + br $while-break|1 + end + br $while-continue|1 + end + end + end + local.get $0 local.get $6 + i32.const 1 + i32.add i32.const 2 + i32.shl i32.add - local.set $6 - br $while-continue|1 - end - end - i32.const 0 - ) - (func $std/array/assertSorted<~lib/string/String|null>@varargs (param $0 i32) (param $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 - 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 - block $~lib/util/sort/COMPARATOR<~lib/string/String|null>|inlined.0 (result i32) - i32.const 0 - drop - i32.const 0 - drop + local.get $5 + i32.store + local.get $3 i32.const 1 - drop - i32.const 7856 - br $~lib/util/sort/COMPARATOR<~lib/string/String|null>|inlined.0 + i32.add + local.set $3 + br $for-loop|0 end - local.tee $1 - i32.store end - local.get $0 - local.get $1 - call $std/array/assertSorted<~lib/string/String|null> - 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:buffer (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - i32.store - local.get $0 - local.get $1 - i32.const 0 - call $~lib/rt/itcms/__link - ) - (func $~lib/array/Array<~lib/string/String>#set:dataStart (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - i32.store offset=4 - ) - (func $~lib/array/Array<~lib/string/String>#set:byteLength (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - i32.store offset=8 - ) - (func $~lib/array/Array<~lib/string/String>#set:length_ (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - i32.store offset=12 ) - (func $~lib/array/Array<~lib/string/String>#__uset (param $0 i32) (param $1 i32) (param $2 i32) - local.get $0 - i32.load offset=4 + (func $~lib/util/sort/weakHeapSort (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.get $1 + i32.const 31 + i32.add + i32.const 5 + i32.shr_u i32.const 2 i32.shl - i32.add - local.get $2 - i32.store - i32.const 1 - drop - local.get $0 - local.get $2 + local.set $3 + local.get $3 + call $~lib/rt/tlsf/__alloc + local.set $4 + local.get $4 + i32.const 0 + local.get $3 + call $~lib/memory/memory.fill + local.get $1 i32.const 1 - call $~lib/rt/itcms/__link - ) - (func $~lib/array/Array<~lib/string/String>#get:length (param $0 i32) (result i32) - local.get $0 - i32.load offset=12 - ) - (func $std/array/assertSorted<~lib/string/String>@varargs (param $0 i32) (param $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 - block $1of1 - block $0of1 - block $outOfRange - global.get $~argumentsLength + local.set $5 + loop $for-loop|0 + local.get $5 + i32.const 0 + i32.gt_s + local.set $6 + local.get $6 + if + local.get $5 + local.set $7 + loop $while-continue|1 + local.get $7 i32.const 1 - i32.sub - br_table $0of1 $1of1 $outOfRange - end - unreachable - end - global.get $~lib/memory/__stack_pointer - block $~lib/util/sort/COMPARATOR<~lib/string/String>|inlined.0 (result i32) - i32.const 0 - drop - i32.const 0 - drop - i32.const 1 - drop - i32.const 7920 - br $~lib/util/sort/COMPARATOR<~lib/string/String>|inlined.0 - end - local.tee $1 - i32.store - end - local.get $0 - local.get $1 - call $std/array/assertSorted<~lib/string/String> - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/util/number/decimalCount32 (param $0 i32) (result i32) - local.get $0 - i32.const 100000 - i32.lt_u - if - local.get $0 - i32.const 100 - i32.lt_u - if + i32.and + local.get $4 + local.get $7 + i32.const 6 + i32.shr_u + i32.const 2 + i32.shl + i32.add + i32.load + local.get $7 + i32.const 1 + i32.shr_s + i32.const 31 + i32.and + i32.shr_u + i32.const 1 + i32.and + i32.eq + local.set $8 + local.get $8 + if + local.get $7 + i32.const 1 + i32.shr_s + local.set $7 + br $while-continue|1 + end + end + local.get $7 i32.const 1 + i32.shr_s + local.set $8 local.get $0 - i32.const 10 - i32.ge_u - i32.add - return - else - i32.const 3 - local.get $0 - i32.const 10000 - i32.ge_u + local.get $8 + i32.const 2 + i32.shl i32.add + i32.load + local.set $9 local.get $0 - i32.const 1000 - i32.ge_u + local.get $5 + i32.const 2 + i32.shl i32.add - return + i32.load + local.set $10 + local.get $9 + local.get $10 + i32.const 2 + global.set $~argumentsLength + local.get $2 + i32.load + call_indirect (type $i32_i32_=>_i32) + i32.const 0 + i32.lt_s + if + local.get $4 + local.get $5 + i32.const 5 + i32.shr_u + i32.const 2 + i32.shl + i32.add + local.get $4 + local.get $5 + i32.const 5 + i32.shr_u + i32.const 2 + i32.shl + i32.add + i32.load + i32.const 1 + local.get $5 + i32.const 31 + i32.and + i32.shl + i32.xor + i32.store + local.get $0 + local.get $5 + i32.const 2 + i32.shl + i32.add + local.get $9 + i32.store + local.get $0 + local.get $8 + i32.const 2 + i32.shl + i32.add + local.get $10 + i32.store + end + local.get $5 + i32.const 1 + i32.sub + local.set $5 + br $for-loop|0 end - unreachable - else - local.get $0 - i32.const 10000000 - i32.lt_u + end + local.get $1 + i32.const 1 + i32.sub + local.set $5 + loop $for-loop|2 + local.get $5 + i32.const 2 + i32.ge_s + local.set $6 + local.get $6 if - i32.const 6 local.get $0 - i32.const 1000000 - i32.ge_u - i32.add - return - else - i32.const 8 + i32.load + local.set $10 local.get $0 - i32.const 1000000000 - i32.ge_u - i32.add local.get $0 - i32.const 100000000 - i32.ge_u - i32.add - return - end - unreachable - end - unreachable - ) - (func $~lib/util/number/utoa32_dec_lut (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 i64) - (local $9 i64) - (local $10 i32) - (local $11 i32) - loop $while-continue|0 - local.get $1 - i32.const 10000 - i32.ge_u - local.set $3 - local.get $3 - if - local.get $1 - i32.const 10000 - i32.div_u - local.set $4 - local.get $1 - i32.const 10000 - i32.rem_u - local.set $5 - local.get $4 - local.set $1 - local.get $5 - i32.const 100 - i32.div_u - local.set $6 local.get $5 - i32.const 100 - i32.rem_u - local.set $7 - i32.const 8364 - local.get $6 i32.const 2 i32.shl i32.add - i64.load32_u - local.set $8 - i32.const 8364 - local.get $7 + i32.load + i32.store + local.get $0 + local.get $5 i32.const 2 i32.shl i32.add - i64.load32_u - local.set $9 - local.get $2 - i32.const 4 - i32.sub - local.set $2 - local.get $0 - local.get $2 + local.get $10 + i32.store i32.const 1 - i32.shl - i32.add - local.get $8 - local.get $9 - 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 $1 - i32.const 100 - i32.div_u - local.set $3 - local.get $1 - i32.const 100 - i32.rem_u - local.set $10 - local.get $3 - local.set $1 - local.get $2 - i32.const 2 - i32.sub - local.set $2 - i32.const 8364 - local.get $10 - i32.const 2 - i32.shl - i32.add - i32.load - local.set $11 - local.get $0 - local.get $2 - i32.const 1 - i32.shl - i32.add - local.get $11 - i32.store - end - local.get $1 - i32.const 10 - i32.ge_u - if - local.get $2 - i32.const 2 - i32.sub - local.set $2 - i32.const 8364 - local.get $1 - i32.const 2 - i32.shl - i32.add - i32.load - local.set $11 - local.get $0 - local.get $2 - i32.const 1 - i32.shl - i32.add - local.get $11 - i32.store - else - local.get $2 - i32.const 1 - i32.sub - local.set $2 - i32.const 48 - local.get $1 - i32.add - local.set $11 - local.get $0 - local.get $2 - i32.const 1 - i32.shl - i32.add - local.get $11 - i32.store16 - end - ) - (func $~lib/util/number/utoa_hex_lut (param $0 i32) (param $1 i64) (param $2 i32) - (local $3 i32) - loop $while-continue|0 - local.get $2 - i32.const 2 - i32.ge_u - local.set $3 - local.get $3 - if - local.get $2 - i32.const 2 - i32.sub - local.set $2 - local.get $0 - local.get $2 + local.set $9 + loop $while-continue|3 + local.get $9 + i32.const 1 + i32.shl + local.get $4 + local.get $9 + i32.const 5 + i32.shr_u + i32.const 2 + i32.shl + i32.add + i32.load + local.get $9 + i32.const 31 + i32.and + i32.shr_u + i32.const 1 + i32.and + i32.add + local.tee $8 + local.get $5 + i32.lt_s + local.set $7 + local.get $7 + if + local.get $8 + local.set $9 + br $while-continue|3 + end + end + loop $while-continue|4 + local.get $9 + i32.const 0 + i32.gt_s + local.set $7 + local.get $7 + if + local.get $0 + i32.load + local.set $10 + local.get $0 + local.get $9 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $11 + local.get $10 + local.get $11 + i32.const 2 + global.set $~argumentsLength + local.get $2 + i32.load + call_indirect (type $i32_i32_=>_i32) + i32.const 0 + i32.lt_s + if + local.get $4 + local.get $9 + i32.const 5 + i32.shr_u + i32.const 2 + i32.shl + i32.add + local.get $4 + local.get $9 + i32.const 5 + i32.shr_u + i32.const 2 + i32.shl + i32.add + i32.load + i32.const 1 + local.get $9 + i32.const 31 + i32.and + i32.shl + i32.xor + i32.store + local.get $0 + local.get $9 + i32.const 2 + i32.shl + i32.add + local.get $10 + i32.store + local.get $0 + local.get $11 + i32.store + end + local.get $9 + i32.const 1 + i32.shr_s + local.set $9 + br $while-continue|4 + end + end + local.get $5 i32.const 1 - i32.shl - i32.add - i32.const 8784 - local.get $1 - i32.wrap_i64 - i32.const 255 - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - i32.store - local.get $1 - i64.const 8 - i64.shr_u - local.set $1 - br $while-continue|0 + i32.sub + local.set $5 + br $for-loop|2 end end - local.get $2 - i32.const 1 - i32.and - if - local.get $0 - i32.const 8784 - local.get $1 - i32.wrap_i64 - i32.const 6 - i32.shl - i32.add - i32.load16_u - i32.store16 - end + local.get $4 + call $~lib/rt/tlsf/__free + local.get $0 + i32.load offset=4 + local.set $12 + local.get $0 + local.get $0 + i32.load + i32.store offset=4 + local.get $0 + local.get $12 + i32.store ) - (func $~lib/util/number/ulog_base (param $0 i64) (param $1 i32) (result i32) + (func $~lib/array/Array#sort (param $0 i32) (param $1 i32) (result i32) (local $2 i32) - (local $3 i64) - (local $4 i64) + (local $3 i32) + (local $4 i32) (local $5 i32) - local.get $1 + (local $6 i32) + local.get $0 + i32.load offset=12 local.set $2 local.get $2 - i32.popcnt i32.const 1 - i32.eq + i32.le_s 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 return end - local.get $1 - i64.extend_i32_s + local.get $0 + i32.load offset=4 local.set $3 - local.get $3 - local.set $4 - i32.const 1 - local.set $5 - loop $while-continue|0 - local.get $0 - local.get $4 - i64.ge_u - local.set $2 - local.get $2 - if - local.get $0 - local.get $4 - i64.div_u - local.set $0 - local.get $4 - local.get $4 - i64.mul - local.set $4 - local.get $5 - i32.const 1 - i32.shl - local.set $5 - br $while-continue|0 - end - end - loop $while-continue|1 - local.get $0 - i64.const 1 - i64.ge_u - local.set $2 - local.get $2 + local.get $2 + i32.const 2 + i32.eq + if + local.get $3 + i32.load offset=4 + local.set $4 + local.get $3 + i32.load + local.set $5 + local.get $4 + local.get $5 + i32.const 2 + global.set $~argumentsLength + local.get $1 + i32.load + call_indirect (type $i32_i32_=>_i32) + i32.const 0 + i32.lt_s if - local.get $0 local.get $3 - i64.div_u - local.set $0 local.get $5 - i32.const 1 - i32.add - local.set $5 - br $while-continue|1 + i32.store offset=4 + local.get $3 + local.get $4 + i32.store end + local.get $0 + return end + local.get $3 + local.set $6 + local.get $2 + local.set $5 + local.get $1 + local.set $4 + i32.const 0 + drop local.get $5 - i32.const 1 + i32.const 256 + i32.lt_s + if + local.get $6 + local.get $5 + local.get $4 + call $~lib/util/sort/insertionSort + else + local.get $6 + local.get $5 + local.get $4 + call $~lib/util/sort/weakHeapSort + end + local.get $0 + ) + (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_any_core (param $0 i32) (param $1 i64) (param $2 i32) (param $3 i32) - (local $4 i64) - (local $5 i64) - (local $6 i64) + (func $~lib/util/sort/insertionSort (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.get $3 - i64.extend_i32_s - local.set $4 - local.get $3 - local.get $3 - i32.const 1 - i32.sub - i32.and + (local $8 i32) + (local $9 i32) i32.const 0 - i32.eq - if + local.set $3 + loop $for-loop|0 local.get $3 - i32.ctz - i32.const 7 - i32.and - i64.extend_i32_s - local.set $5 + local.get $1 + i32.lt_s + local.set $4 local.get $4 - i64.const 1 - i64.sub - local.set $6 - loop $do-continue|0 - local.get $2 - i32.const 1 - i32.sub - local.set $2 + if local.get $0 - local.get $2 - i32.const 1 - i32.shl - i32.add - i32.const 9840 - local.get $1 - local.get $6 - i64.and - i32.wrap_i64 - i32.const 1 + local.get $3 + i32.const 2 i32.shl i32.add - i32.load16_u - i32.store16 - local.get $1 - local.get $5 - i64.shr_u - local.set $1 - local.get $1 - i64.const 0 - i64.ne - local.set $7 - local.get $7 - br_if $do-continue|0 - end - else - loop $do-continue|1 - local.get $2 + i32.load + local.set $5 + local.get $3 i32.const 1 i32.sub - local.set $2 - local.get $1 - local.get $4 - i64.div_u local.set $6 + block $while-break|1 + loop $while-continue|1 + local.get $6 + i32.const 0 + i32.ge_s + local.set $7 + local.get $7 + if + local.get $0 + local.get $6 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $8 + local.get $5 + local.get $8 + i32.const 2 + global.set $~argumentsLength + local.get $2 + i32.load + call_indirect (type $i32_i32_=>_i32) + i32.const 0 + i32.lt_s + if + local.get $0 + local.get $6 + local.tee $9 + i32.const 1 + i32.sub + local.set $6 + local.get $9 + i32.const 1 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $8 + i32.store + else + br $while-break|1 + end + br $while-continue|1 + end + end + end local.get $0 - local.get $2 + local.get $6 i32.const 1 + i32.add + i32.const 2 i32.shl i32.add - i32.const 9840 - local.get $1 - local.get $6 - local.get $4 - i64.mul - i64.sub - i32.wrap_i64 + local.get $5 + i32.store + local.get $3 i32.const 1 - i32.shl i32.add - i32.load16_u - i32.store16 - local.get $6 - local.set $1 - local.get $1 - i64.const 0 - i64.ne - local.set $7 - local.get $7 - br_if $do-continue|1 + local.set $3 + br $for-loop|0 end end ) - (func $~lib/util/number/itoa_buffered (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) + (func $~lib/util/sort/weakHeapSort (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) (local $6 i32) - i32.const 0 - local.set $2 - i32.const 1 - drop + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) local.get $1 + i32.const 31 + i32.add + i32.const 5 + i32.shr_u + i32.const 2 + i32.shl + local.set $3 + local.get $3 + call $~lib/rt/tlsf/__alloc + local.set $4 + local.get $4 i32.const 0 - i32.lt_s - local.set $2 - local.get $2 - if - i32.const 0 - local.get $1 - i32.sub - local.set $1 - local.get $0 - i32.const 45 - i32.store16 - end - i32.const 0 - i32.const 1 - i32.le_s - drop - i32.const 1 - drop - i32.const 4 - i32.const 4 - i32.le_u - drop - local.get $1 - i32.const 10 - i32.lt_u - if - local.get $0 - local.get $2 - i32.const 1 - i32.shl - i32.add - local.get $1 - i32.const 48 - i32.or - i32.store16 - i32.const 1 - local.get $2 - i32.add - return - end - local.get $2 - local.set $3 - i32.const 4 - i32.const 4 - i32.le_u - drop - local.get $3 - local.get $1 - call $~lib/util/number/decimalCount32 - i32.add - local.set $3 - local.get $0 - local.set $6 - local.get $1 - local.set $5 - local.get $3 - local.set $4 - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $6 - local.get $5 - local.get $4 - call $~lib/util/number/utoa32_dec_lut - local.get $3 - ) - (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) - i32.const 0 - local.set $2 - i32.const 0 - drop - i32.const 0 - i32.const 1 - i32.le_s - drop - i32.const 0 - drop - local.get $1 - i32.const 10 - i32.lt_u - if - local.get $0 - local.get $1 - i32.const 48 - i32.or - i32.store16 - i32.const 1 - return - end - local.get $2 - local.set $3 - i32.const 4 - i32.const 4 - i32.le_u - drop local.get $3 + call $~lib/memory/memory.fill local.get $1 - call $~lib/util/number/decimalCount32 - i32.add - local.set $3 - local.get $0 - local.set $6 - local.get $1 - local.set $5 - local.get $3 - local.set $4 - i32.const 0 i32.const 1 - i32.ge_s - drop - local.get $6 - local.get $5 - local.get $4 - call $~lib/util/number/utoa32_dec_lut - local.get $3 - ) - (func $~lib/util/number/genDigits (param $0 i32) (param $1 i64) (param $2 i32) (param $3 i64) (param $4 i32) (param $5 i64) (param $6 i32) (result i32) - (local $7 i32) - (local $8 i64) - (local $9 i64) - (local $10 i64) - (local $11 i32) - (local $12 i64) - (local $13 i32) - (local $14 i32) - (local $15 i32) - (local $16 i32) - (local $17 i32) - (local $18 i64) - (local $19 i64) - (local $20 i64) - (local $21 i64) - (local $22 i64) - (local $23 i32) - (local $24 i32) - (local $25 i32) - (local $26 i32) - (local $27 i64) - i32.const 0 - local.get $4 i32.sub - local.set $7 - i64.const 1 - local.get $7 - i64.extend_i32_s - i64.shl - local.set $8 - local.get $8 - i64.const 1 - i64.sub - local.set $9 - local.get $3 - local.get $1 - i64.sub - local.set $10 - local.get $3 - local.get $7 - i64.extend_i32_s - i64.shr_u - i32.wrap_i64 - local.set $11 - local.get $3 - local.get $9 - i64.and - local.set $12 - local.get $11 - call $~lib/util/number/decimalCount32 - local.set $13 - local.get $6 - local.set $14 - loop $while-continue|0 - local.get $13 + local.set $5 + loop $for-loop|0 + local.get $5 i32.const 0 i32.gt_s - local.set $15 - local.get $15 + local.set $6 + local.get $6 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 $13 - local.set $17 - local.get $17 - i32.const 10 - i32.eq - br_if $case0|1 - local.get $17 - i32.const 9 - i32.eq - br_if $case1|1 - local.get $17 - i32.const 8 - i32.eq - br_if $case2|1 - local.get $17 - i32.const 7 - i32.eq - br_if $case3|1 - local.get $17 - i32.const 6 - i32.eq - br_if $case4|1 - local.get $17 - i32.const 5 - i32.eq - br_if $case5|1 - local.get $17 - i32.const 4 - i32.eq - br_if $case6|1 - local.get $17 - i32.const 3 - i32.eq - br_if $case7|1 - local.get $17 - i32.const 2 - i32.eq - br_if $case8|1 - local.get $17 - i32.const 1 - i32.eq - br_if $case9|1 - br $case10|1 - end - local.get $11 - i32.const 1000000000 - i32.div_u - local.set $16 - local.get $11 - i32.const 1000000000 - i32.rem_u - local.set $11 - br $break|1 - end - local.get $11 - i32.const 100000000 - i32.div_u - local.set $16 - local.get $11 - i32.const 100000000 - i32.rem_u - local.set $11 - br $break|1 - end - local.get $11 - i32.const 10000000 - i32.div_u - local.set $16 - local.get $11 - i32.const 10000000 - i32.rem_u - local.set $11 - br $break|1 - end - local.get $11 - i32.const 1000000 - i32.div_u - local.set $16 - local.get $11 - i32.const 1000000 - i32.rem_u - local.set $11 - br $break|1 - end - local.get $11 - i32.const 100000 - i32.div_u - local.set $16 - local.get $11 - i32.const 100000 - i32.rem_u - local.set $11 - br $break|1 - end - local.get $11 - i32.const 10000 - i32.div_u - local.set $16 - local.get $11 - i32.const 10000 - i32.rem_u - local.set $11 - br $break|1 - end - local.get $11 - i32.const 1000 - i32.div_u - local.set $16 - local.get $11 - i32.const 1000 - i32.rem_u - local.set $11 - br $break|1 - end - local.get $11 - i32.const 100 - i32.div_u - local.set $16 - local.get $11 - i32.const 100 - i32.rem_u - local.set $11 - br $break|1 - end - local.get $11 - i32.const 10 - i32.div_u - local.set $16 - local.get $11 - i32.const 10 - i32.rem_u - local.set $11 - br $break|1 - end - local.get $11 - local.set $16 - i32.const 0 - local.set $11 - br $break|1 - end - i32.const 0 - local.set $16 - br $break|1 - end - local.get $16 - local.get $14 - i32.or - if - local.get $0 - local.get $14 - local.tee $17 - i32.const 1 - i32.add - local.set $14 - local.get $17 + local.get $5 + local.set $7 + loop $while-continue|1 + local.get $7 i32.const 1 + i32.and + local.get $4 + local.get $7 + i32.const 6 + i32.shr_u + i32.const 2 i32.shl i32.add - i32.const 48 - local.get $16 - i32.const 65535 + i32.load + local.get $7 + i32.const 1 + i32.shr_s + i32.const 31 i32.and - i32.add - i32.store16 + i32.shr_u + i32.const 1 + i32.and + i32.eq + local.set $8 + local.get $8 + if + local.get $7 + i32.const 1 + i32.shr_s + local.set $7 + br $while-continue|1 + end end - local.get $13 - i32.const 1 - i32.sub - local.set $13 - local.get $11 - i64.extend_i32_u local.get $7 - i64.extend_i32_s - i64.shl - local.get $12 - i64.add - local.set $18 - local.get $18 + i32.const 1 + i32.shr_s + local.set $8 + local.get $0 + local.get $8 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $9 + local.get $0 local.get $5 - i64.le_u + i32.const 2 + i32.shl + i32.add + i32.load + local.set $10 + local.get $9 + local.get $10 + i32.const 2 + global.set $~argumentsLength + local.get $2 + i32.load + call_indirect (type $i32_i32_=>_i32) + i32.const 0 + i32.lt_s if - global.get $~lib/util/number/_K - local.get $13 + local.get $4 + local.get $5 + i32.const 5 + i32.shr_u + i32.const 2 + i32.shl i32.add - global.set $~lib/util/number/_K + local.get $4 + local.get $5 + i32.const 5 + i32.shr_u + i32.const 2 + i32.shl + i32.add + i32.load + i32.const 1 + local.get $5 + i32.const 31 + i32.and + i32.shl + i32.xor + i32.store local.get $0 - local.set $23 - local.get $14 - local.set $17 local.get $5 - local.set $22 - local.get $18 - local.set $21 - i32.const 11360 - local.get $13 i32.const 2 i32.shl i32.add - i64.load32_u - local.get $7 - i64.extend_i32_s - i64.shl - local.set $20 + local.get $9 + i32.store + local.get $0 + local.get $8 + i32.const 2 + i32.shl + i32.add local.get $10 - local.set $19 - local.get $23 - local.get $17 - i32.const 1 - i32.sub + i32.store + end + local.get $5 + i32.const 1 + i32.sub + local.set $5 + br $for-loop|0 + end + end + local.get $1 + i32.const 1 + i32.sub + local.set $5 + loop $for-loop|2 + local.get $5 + i32.const 2 + i32.ge_s + local.set $6 + local.get $6 + if + local.get $0 + i32.load + local.set $10 + local.get $0 + local.get $0 + local.get $5 + i32.const 2 + i32.shl + i32.add + i32.load + i32.store + local.get $0 + local.get $5 + i32.const 2 + i32.shl + i32.add + local.get $10 + i32.store + i32.const 1 + local.set $9 + loop $while-continue|3 + local.get $9 i32.const 1 i32.shl + local.get $4 + local.get $9 + i32.const 5 + i32.shr_u + i32.const 2 + i32.shl i32.add - local.set $24 - local.get $24 - i32.load16_u - local.set $25 - loop $while-continue|3 - local.get $21 - local.get $19 - i64.lt_u - if (result i32) - local.get $22 - local.get $21 - i64.sub - local.get $20 - i64.ge_u - else - i32.const 0 - end - if (result i32) - local.get $21 - local.get $20 - i64.add - local.get $19 - i64.lt_u - if (result i32) - i32.const 1 - else - local.get $19 - local.get $21 - i64.sub - local.get $21 - local.get $20 - i64.add - local.get $19 - i64.sub - i64.gt_u - end - else - i32.const 0 - end - local.set $26 - local.get $26 + i32.load + local.get $9 + i32.const 31 + i32.and + i32.shr_u + i32.const 1 + i32.and + i32.add + local.tee $8 + local.get $5 + i32.lt_s + local.set $7 + local.get $7 + if + local.get $8 + local.set $9 + br $while-continue|3 + end + end + loop $while-continue|4 + local.get $9 + i32.const 0 + i32.gt_s + local.set $7 + local.get $7 + if + local.get $0 + i32.load + local.set $10 + local.get $0 + local.get $9 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $11 + local.get $10 + local.get $11 + i32.const 2 + global.set $~argumentsLength + local.get $2 + i32.load + call_indirect (type $i32_i32_=>_i32) + i32.const 0 + i32.lt_s if - local.get $25 + local.get $4 + local.get $9 + i32.const 5 + i32.shr_u + i32.const 2 + i32.shl + i32.add + local.get $4 + local.get $9 + i32.const 5 + i32.shr_u + i32.const 2 + i32.shl + i32.add + i32.load i32.const 1 - i32.sub - local.set $25 - local.get $21 - local.get $20 - i64.add - local.set $21 - br $while-continue|3 + local.get $9 + i32.const 31 + i32.and + i32.shl + i32.xor + i32.store + local.get $0 + local.get $9 + i32.const 2 + i32.shl + i32.add + local.get $10 + i32.store + local.get $0 + local.get $11 + i32.store end + local.get $9 + i32.const 1 + i32.shr_s + local.set $9 + br $while-continue|4 end - local.get $24 - local.get $25 - i32.store16 - local.get $14 - return end - br $while-continue|0 - end - end - loop $while-continue|4 - i32.const 1 - local.set $15 - local.get $15 - if - local.get $12 - i64.const 10 - i64.mul - local.set $12 local.get $5 - i64.const 10 - i64.mul - local.set $5 - local.get $12 - local.get $7 - i64.extend_i32_s - i64.shr_u - local.set $22 - local.get $22 - local.get $14 - i64.extend_i32_s - i64.or - i64.const 0 - i64.ne - if - local.get $0 - local.get $14 - local.tee $25 - i32.const 1 - i32.add - local.set $14 - local.get $25 - i32.const 1 - i32.shl - i32.add - i32.const 48 - local.get $22 - i32.wrap_i64 - i32.const 65535 - i32.and - i32.add - i32.store16 - end - local.get $12 - local.get $9 - i64.and - local.set $12 - local.get $13 i32.const 1 i32.sub - local.set $13 - local.get $12 + local.set $5 + br $for-loop|2 + end + end + local.get $4 + call $~lib/rt/tlsf/__free + local.get $0 + i32.load offset=4 + local.set $12 + local.get $0 + local.get $0 + i32.load + i32.store offset=4 + local.get $0 + local.get $12 + i32.store + ) + (func $~lib/array/Array#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.get $0 + i32.load offset=12 + local.set $2 + local.get $2 + i32.const 1 + i32.le_s + if + local.get $0 + return + end + local.get $0 + i32.load offset=4 + local.set $3 + local.get $2 + i32.const 2 + i32.eq + if + local.get $3 + i32.load offset=4 + local.set $4 + local.get $3 + i32.load + local.set $5 + local.get $4 + local.get $5 + i32.const 2 + global.set $~argumentsLength + local.get $1 + i32.load + call_indirect (type $i32_i32_=>_i32) + i32.const 0 + i32.lt_s + if + local.get $3 local.get $5 - i64.lt_u - if - global.get $~lib/util/number/_K - local.get $13 - i32.add - global.set $~lib/util/number/_K - local.get $10 - i32.const 11360 - i32.const 0 - local.get $13 - i32.sub - i32.const 2 - i32.shl - i32.add - i64.load32_u - i64.mul - local.set $10 - local.get $0 - local.set $17 - local.get $14 - local.set $26 - local.get $5 - local.set $27 - local.get $12 - local.set $21 - local.get $8 - local.set $20 - local.get $10 - local.set $19 - local.get $17 - local.get $26 - i32.const 1 - i32.sub - i32.const 1 - i32.shl - i32.add - local.set $25 - local.get $25 - i32.load16_u - local.set $24 - loop $while-continue|6 - local.get $21 - local.get $19 - i64.lt_u - if (result i32) - local.get $27 - local.get $21 - i64.sub - local.get $20 - i64.ge_u - else - i32.const 0 - end - if (result i32) - local.get $21 - local.get $20 - i64.add - local.get $19 - i64.lt_u - if (result i32) - i32.const 1 - else - local.get $19 - local.get $21 - i64.sub - local.get $21 - local.get $20 - i64.add - local.get $19 - i64.sub - i64.gt_u - end - else - i32.const 0 - end - local.set $23 - local.get $23 - if - local.get $24 - i32.const 1 - i32.sub - local.set $24 - local.get $21 - local.get $20 - i64.add - local.set $21 - br $while-continue|6 - end - end - local.get $25 - local.get $24 - i32.store16 - local.get $14 - return - end - br $while-continue|4 + i32.store offset=4 + local.get $3 + local.get $4 + i32.store end + local.get $0 + return end - unreachable - ) - (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) - (local $8 i32) - (local $9 i32) - (local $10 i32) - (local $11 i32) + local.get $3 + local.set $6 local.get $2 + local.set $5 + local.get $1 + local.set $4 + i32.const 0 + drop + local.get $5 + i32.const 256 + i32.lt_s + if + local.get $6 + local.get $5 + local.get $4 + call $~lib/util/sort/insertionSort + else + local.get $6 + local.get $5 + local.get $4 + call $~lib/util/sort/weakHeapSort + end + local.get $0 + ) + (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/math/NativeMath.random (result f64) + (local $0 i64) + (local $1 i64) + (local $2 i64) + global.get $~lib/math/random_seeded i32.eqz if - local.get $0 - local.get $1 - i32.const 1 - i32.shl - i32.add - i32.const 46 - i32.const 48 - i32.const 16 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 2 - i32.add - return + call $~lib/builtins/seed + i64.reinterpret_f64 + call $~lib/math/NativeMath.seedRandom end + global.get $~lib/math/random_state0_64 + local.set $0 + global.get $~lib/math/random_state1_64 + local.set $1 + local.get $1 + global.set $~lib/math/random_state0_64 + local.get $0 + local.get $0 + i64.const 23 + i64.shl + i64.xor + local.set $0 + local.get $0 + local.get $0 + i64.const 17 + i64.shr_u + i64.xor + local.set $0 + local.get $0 + local.get $1 + i64.xor + local.set $0 + local.get $0 + local.get $1 + i64.const 26 + i64.shr_u + i64.xor + local.set $0 + local.get $0 + global.set $~lib/math/random_state1_64 local.get $1 + i64.const 12 + i64.shr_u + i64.const 4607182418800017408 + i64.or + local.set $2 local.get $2 - i32.add - local.set $3 + f64.reinterpret_i64 + f64.const 1 + f64.sub + ) + (func $~lib/util/sort/COMPARATOR~anonymous|1 (param $0 i32) (param $1 i32) (result i32) + local.get $0 local.get $1 - local.get $3 - i32.le_s - if (result i32) + i32.sub + ) + (func $std/array/isSorted (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + i32.const 1 + local.set $2 + local.get $0 + call $~lib/array/Array#get:length + local.set $3 + loop $for-loop|0 + local.get $2 local.get $3 - i32.const 21 - i32.le_s - else - i32.const 0 - end - if - local.get $1 + i32.lt_s local.set $4 - loop $for-loop|0 - local.get $4 - local.get $3 - i32.lt_s - local.set $5 - local.get $5 + local.get $4 + if + local.get $0 + local.get $2 + i32.const 1 + i32.sub + call $~lib/array/Array#__get + local.get $0 + local.get $2 + call $~lib/array/Array#__get + i32.const 2 + global.set $~argumentsLength + local.get $1 + i32.load + call_indirect (type $i32_i32_=>_i32) + i32.const 0 + i32.gt_s if - local.get $0 - local.get $4 - i32.const 1 - i32.shl - i32.add - i32.const 48 - i32.store16 - local.get $4 - i32.const 1 - i32.add - local.set $4 - br $for-loop|0 + i32.const 0 + return end + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|0 + end + end + i32.const 1 + ) + (func $start:std/array~anonymous|43 (param $0 i32) (param $1 i32) (result i32) + local.get $0 + local.get $1 + i32.sub + ) + (func $start:std/array~anonymous|44 (param $0 i32) (param $1 i32) (result i32) + local.get $1 + local.get $0 + i32.sub + ) + (func $start:std/array~anonymous|45 (param $0 i32) (param $1 i32) (result i32) + local.get $0 + local.get $1 + i32.sub + ) + (func $start:std/array~anonymous|46 (param $0 i32) (param $1 i32) (result i32) + local.get $1 + local.get $0 + i32.sub + ) + (func $~lib/array/Array<~lib/array/Array>#set:buffer (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + local.get $0 + local.get $1 + i32.const 0 + call $~lib/rt/itcms/__link + ) + (func $~lib/array/Array<~lib/array/Array>#set:dataStart (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=4 + ) + (func $~lib/array/Array<~lib/array/Array>#set:byteLength (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=8 + ) + (func $~lib/array/Array<~lib/array/Array>#set:length_ (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=12 + ) + (func $~lib/array/Array<~lib/array/Array>#__uset (param $0 i32) (param $1 i32) (param $2 i32) + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 2 + i32.shl + i32.add + local.get $2 + i32.store + i32.const 1 + drop + local.get $0 + local.get $2 + i32.const 1 + call $~lib/rt/itcms/__link + ) + (func $~lib/array/Array<~lib/array/Array>#__set (param $0 i32) (param $1 i32) (param $2 i32) + 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 320 + i32.const 80 + i32.const 108 + i32.const 22 + call $~lib/builtins/abort + unreachable end local.get $0 - local.get $3 + local.get $1 i32.const 1 - i32.shl i32.add - i32.const 46 - i32.const 48 - i32.const 16 - i32.shl - i32.or - i32.store - local.get $3 i32.const 2 + call $~lib/array/ensureSize + local.get $0 + local.get $1 + i32.const 1 i32.add - return - else + call $~lib/array/Array<~lib/array/Array>#set:length_ + end + local.get $0 + local.get $1 + local.get $2 + call $~lib/array/Array<~lib/array/Array>#__uset + ) + (func $start:std/array~anonymous|47 (param $0 i32) (param $1 i32) (result i32) + local.get $0 + i32.const 0 + call $~lib/array/Array#__get + local.get $1 + i32.const 0 + call $~lib/array/Array#__get + i32.sub + ) + (func $~lib/util/sort/insertionSort<~lib/array/Array> (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) + 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 $3 + loop $for-loop|0 local.get $3 - i32.const 0 - i32.gt_s - if (result i32) - local.get $3 - i32.const 21 - i32.le_s - else - i32.const 0 - end + local.get $1 + i32.lt_s + local.set $4 + local.get $4 if + global.get $~lib/memory/__stack_pointer local.get $0 local.get $3 - i32.const 1 - i32.shl - i32.add - local.set $4 - local.get $4 i32.const 2 - i32.add - local.get $4 - i32.const 0 - local.get $2 - i32.sub - i32.const 1 - i32.shl - call $~lib/memory/memory.copy - local.get $0 - local.get $3 - i32.const 1 i32.shl i32.add - i32.const 46 - i32.store16 - local.get $1 - i32.const 1 - i32.add - return - else - i32.const -6 + i32.load + local.tee $5 + i32.store local.get $3 - i32.lt_s - if (result i32) - local.get $3 - i32.const 0 - i32.le_s - else - i32.const 0 - end - if - i32.const 2 - local.get $3 - i32.sub - local.set $4 - local.get $0 - local.get $4 - i32.const 1 - i32.shl - i32.add - local.get $0 - local.get $1 - i32.const 1 - i32.shl - call $~lib/memory/memory.copy - local.get $0 - i32.const 48 - i32.const 46 - i32.const 16 - i32.shl - i32.or - i32.store - i32.const 2 - local.set $5 - loop $for-loop|1 - local.get $5 - local.get $4 - i32.lt_s - local.set $6 + i32.const 1 + i32.sub + local.set $6 + block $while-break|1 + loop $while-continue|1 local.get $6 + i32.const 0 + i32.ge_s + local.set $7 + local.get $7 if + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $5 - i32.const 1 + local.get $6 + i32.const 2 i32.shl i32.add - i32.const 48 - i32.store16 + i32.load + local.tee $8 + i32.store offset=4 local.get $5 - i32.const 1 - i32.add - local.set $5 - br $for-loop|1 - end - end - local.get $1 - local.get $4 - i32.add - return - 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.set $5 - local.get $3 - i32.const 1 - i32.sub - local.set $6 - local.get $6 - i32.const 0 - i32.lt_s - local.set $4 - local.get $4 - if - i32.const 0 - local.get $6 - i32.sub - local.set $6 - end - local.get $6 - call $~lib/util/number/decimalCount32 - i32.const 1 - i32.add - local.set $7 - local.get $5 - local.set $10 - local.get $6 - local.set $9 - local.get $7 - local.set $8 - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $10 - local.get $9 - local.get $8 - call $~lib/util/number/utoa32_dec_lut - local.get $5 - i32.const 45 - i32.const 43 - local.get $4 - select - i32.store16 - local.get $7 - local.set $1 - local.get $1 - i32.const 2 - i32.add - return - else - local.get $1 - i32.const 1 - i32.shl - local.set $7 - local.get $0 - i32.const 4 - i32.add - local.get $0 - i32.const 2 - i32.add - local.get $7 - i32.const 2 - i32.sub - call $~lib/memory/memory.copy - local.get $0 - i32.const 46 - i32.store16 offset=2 - local.get $0 - local.get $7 - i32.add - i32.const 101 - i32.store16 offset=2 - local.get $1 - local.get $0 - local.get $7 - i32.add - i32.const 4 - i32.add - local.set $9 - local.get $3 - i32.const 1 - i32.sub - local.set $8 - local.get $8 - i32.const 0 - i32.lt_s - local.set $4 - local.get $4 - if - i32.const 0 local.get $8 - i32.sub - local.set $8 + i32.const 2 + global.set $~argumentsLength + local.get $2 + i32.load + call_indirect (type $i32_i32_=>_i32) + i32.const 0 + i32.lt_s + if + local.get $0 + local.get $6 + local.tee $9 + i32.const 1 + i32.sub + local.set $6 + local.get $9 + i32.const 1 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $8 + i32.store + else + br $while-break|1 + end + br $while-continue|1 end - local.get $8 - call $~lib/util/number/decimalCount32 - i32.const 1 - i32.add - local.set $5 - local.get $9 - local.set $11 - local.get $8 - local.set $6 - local.get $5 - local.set $10 - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $11 - local.get $6 - local.get $10 - call $~lib/util/number/utoa32_dec_lut - local.get $9 - i32.const 45 - i32.const 43 - local.get $4 - select - i32.store16 - local.get $5 - i32.add - local.set $1 - local.get $1 - i32.const 2 - i32.add - return end - unreachable end - unreachable + local.get $0 + local.get $6 + i32.const 1 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $5 + i32.store + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $for-loop|0 end - unreachable end - unreachable + 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) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 f64) - (local $6 i64) - (local $7 i32) - (local $8 i64) - (local $9 i64) - (local $10 i32) - (local $11 i64) - (local $12 i64) - (local $13 i32) - (local $14 i32) - (local $15 i32) - (local $16 f64) - (local $17 i64) - (local $18 i64) - (local $19 i64) - (local $20 i64) - (local $21 i64) - (local $22 i64) - (local $23 i64) - (local $24 i64) - (local $25 i64) - (local $26 i32) - (local $27 i64) - (local $28 i32) + (func $~lib/array/Array<~lib/array/Array>#get:length (param $0 i32) (result i32) + local.get $0 + i32.load offset=12 + ) + (func $~lib/array/Array>#set:buffer (param $0 i32) (param $1 i32) + local.get $0 local.get $1 - f64.const 0 - f64.lt - local.set $2 - local.get $2 - if - local.get $1 - f64.neg - local.set $1 - local.get $0 - i32.const 45 - i32.store16 - end + i32.store + local.get $0 local.get $1 - local.set $5 + i32.const 0 + call $~lib/rt/itcms/__link + ) + (func $~lib/array/Array>#set:dataStart (param $0 i32) (param $1 i32) local.get $0 - local.set $4 + local.get $1 + i32.store offset=4 + ) + (func $~lib/array/Array>#set:byteLength (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=8 + ) + (func $~lib/array/Array>#set:length_ (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=12 + ) + (func $std/array/Proxy#set:x (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + ) + (func $~lib/array/Array>#__uset (param $0 i32) (param $1 i32) (param $2 i32) + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 2 + i32.shl + i32.add local.get $2 - local.set $3 - local.get $5 - i64.reinterpret_f64 - local.set $6 - local.get $6 - i64.const 9218868437227405312 - i64.and - i64.const 52 - i64.shr_u - i32.wrap_i64 - local.set $7 - local.get $6 - i64.const 4503599627370495 - i64.and - local.set $8 - local.get $7 - i32.const 0 - i32.ne - i64.extend_i32_u - i64.const 52 - i64.shl - local.get $8 - i64.add - local.set $9 - local.get $7 + i32.store i32.const 1 - local.get $7 - select - i32.const 1023 - i32.const 52 - i32.add - i32.sub - local.set $7 - local.get $9 - local.set $11 - local.get $7 - local.set $10 - local.get $11 - i64.const 1 - i64.shl - i64.const 1 - i64.add - local.set $12 - local.get $10 + drop + local.get $0 + local.get $2 i32.const 1 + call $~lib/rt/itcms/__link + ) + (func $~lib/array/Array>#__set (param $0 i32) (param $1 i32) (param $2 i32) + 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 320 + i32.const 80 + i32.const 108 + i32.const 22 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $1 + i32.const 1 + i32.add + i32.const 2 + call $~lib/array/ensureSize + local.get $0 + local.get $1 + i32.const 1 + i32.add + call $~lib/array/Array>#set:length_ + end + local.get $0 + local.get $1 + local.get $2 + call $~lib/array/Array>#__uset + ) + (func $start:std/array~anonymous|48 (param $0 i32) (param $1 i32) (result i32) + local.get $0 + i32.load + local.get $1 + i32.load i32.sub - local.set $13 - local.get $12 - i64.clz - i32.wrap_i64 - local.set $14 - local.get $12 - local.get $14 - i64.extend_i32_s - i64.shl - local.set $12 - local.get $13 - local.get $14 + ) + (func $~lib/util/sort/insertionSort> (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) + global.get $~lib/memory/__stack_pointer + i32.const 8 i32.sub - local.set $13 - i32.const 1 - local.get $11 - i64.const 4503599627370496 - i64.eq + 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 $3 + loop $for-loop|0 + local.get $3 + local.get $1 + i32.lt_s + local.set $4 + local.get $4 + 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 + local.get $3 + i32.const 1 + i32.sub + local.set $6 + block $while-break|1 + loop $while-continue|1 + local.get $6 + i32.const 0 + i32.ge_s + local.set $7 + local.get $7 + if + global.get $~lib/memory/__stack_pointer + local.get $0 + local.get $6 + i32.const 2 + i32.shl + i32.add + i32.load + local.tee $8 + i32.store offset=4 + local.get $5 + local.get $8 + i32.const 2 + global.set $~argumentsLength + local.get $2 + i32.load + call_indirect (type $i32_i32_=>_i32) + i32.const 0 + i32.lt_s + if + local.get $0 + local.get $6 + local.tee $9 + i32.const 1 + i32.sub + local.set $6 + local.get $9 + i32.const 1 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $8 + i32.store + else + br $while-break|1 + end + br $while-continue|1 + end + end + end + local.get $0 + local.get $6 + i32.const 1 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $5 + i32.store + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $for-loop|0 + end + end + global.get $~lib/memory/__stack_pointer + i32.const 8 i32.add - local.set $15 - local.get $12 - global.set $~lib/util/number/_frc_plus - local.get $11 - local.get $15 - i64.extend_i32_s - i64.shl - i64.const 1 - i64.sub - local.get $10 - local.get $15 - i32.sub - local.get $13 - i32.sub - i64.extend_i32_s - i64.shl - global.set $~lib/util/number/_frc_minus - local.get $13 - global.set $~lib/util/number/_exp - global.get $~lib/util/number/_exp - local.set $10 - i32.const -61 - local.get $10 + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/array/Array>#get:length (param $0 i32) (result i32) + local.get $0 + i32.load offset=12 + ) + (func $~lib/util/sort/insertionSort<~lib/string/String|null> (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) + 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.set $16 - local.get $16 - i32.trunc_f64_s - local.set $15 - local.get $15 - local.get $15 - f64.convert_i32_s - local.get $16 - f64.ne - i32.add - local.set $15 - local.get $15 - i32.const 3 - i32.shr_s - i32.const 1 + 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 $3 + loop $for-loop|0 + local.get $3 + local.get $1 + i32.lt_s + local.set $4 + local.get $4 + 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 + local.get $3 + i32.const 1 + i32.sub + local.set $6 + block $while-break|1 + loop $while-continue|1 + local.get $6 + i32.const 0 + i32.ge_s + local.set $7 + local.get $7 + if + global.get $~lib/memory/__stack_pointer + local.get $0 + local.get $6 + i32.const 2 + i32.shl + i32.add + i32.load + local.tee $8 + i32.store offset=4 + local.get $5 + local.get $8 + i32.const 2 + global.set $~argumentsLength + local.get $2 + i32.load + call_indirect (type $i32_i32_=>_i32) + i32.const 0 + i32.lt_s + if + local.get $0 + local.get $6 + local.tee $9 + i32.const 1 + i32.sub + local.set $6 + local.get $9 + i32.const 1 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $8 + i32.store + else + br $while-break|1 + end + br $while-continue|1 + end + end + end + local.get $0 + local.get $6 + i32.const 1 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $5 + i32.store + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $for-loop|0 + end + end + global.get $~lib/memory/__stack_pointer + i32.const 8 i32.add - local.set $14 - i32.const 348 - local.get $14 - i32.const 3 - i32.shl + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/array/Array<~lib/string/String|null>#get:length (param $0 i32) (result i32) + local.get $0 + i32.load offset=12 + ) + (func $~lib/string/String#get:length (param $0 i32) (result i32) + local.get $0 + i32.const 20 i32.sub - global.set $~lib/util/number/_K - i32.const 10488 - local.get $14 - i32.const 3 + i32.load offset=16 + i32.const 1 + i32.shr_u + ) + (func $~lib/util/string/compareImpl (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) (result i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + local.get $0 + local.get $1 + i32.const 1 i32.shl i32.add - i64.load - global.set $~lib/util/number/_frc_pow - i32.const 11184 - local.get $14 + local.set $5 + local.get $2 + local.get $3 i32.const 1 i32.shl i32.add - i32.load16_s - global.set $~lib/util/number/_exp_pow - local.get $9 - i64.clz - i32.wrap_i64 - local.set $14 - local.get $9 - local.get $14 - i64.extend_i32_s - i64.shl - local.set $9 - local.get $7 - local.get $14 - i32.sub - local.set $7 - global.get $~lib/util/number/_frc_pow - local.set $12 - global.get $~lib/util/number/_exp_pow - local.set $15 - local.get $9 - local.set $17 - local.get $12 - local.set $11 - local.get $17 - i64.const 4294967295 - i64.and - local.set $18 - local.get $11 - i64.const 4294967295 - i64.and - local.set $19 - local.get $17 - i64.const 32 - i64.shr_u - local.set $20 - local.get $11 - i64.const 32 - i64.shr_u - local.set $21 - local.get $18 - local.get $19 - i64.mul - local.set $22 - local.get $20 - local.get $19 - i64.mul - local.get $22 - i64.const 32 - i64.shr_u - i64.add - local.set $23 - local.get $18 - local.get $21 - i64.mul - local.get $23 - i64.const 4294967295 - i64.and - i64.add - local.set $24 - local.get $24 - i64.const 2147483647 - i64.add - local.set $24 - local.get $23 - i64.const 32 - i64.shr_u - local.set $23 - local.get $24 - i64.const 32 - i64.shr_u - local.set $24 - local.get $20 - local.get $21 - i64.mul - local.get $23 - i64.add - local.get $24 - i64.add - local.set $24 - local.get $7 - local.set $10 - local.get $15 - local.set $13 - local.get $10 - local.get $13 - i32.add - i32.const 64 - i32.add - local.set $10 - global.get $~lib/util/number/_frc_plus - local.set $17 - local.get $12 - local.set $11 - local.get $17 - i64.const 4294967295 - i64.and - local.set $23 - local.get $11 - i64.const 4294967295 - i64.and - local.set $22 - local.get $17 - i64.const 32 - i64.shr_u - local.set $21 - local.get $11 - i64.const 32 - i64.shr_u - local.set $20 - local.get $23 - local.get $22 - i64.mul - local.set $19 - local.get $21 - local.get $22 - i64.mul - local.get $19 - i64.const 32 - i64.shr_u - i64.add - local.set $18 - local.get $23 - local.get $20 - i64.mul - local.get $18 - i64.const 4294967295 - i64.and - i64.add - local.set $25 - local.get $25 - i64.const 2147483647 - i64.add - local.set $25 - local.get $18 - i64.const 32 - i64.shr_u - local.set $18 - local.get $25 - i64.const 32 - i64.shr_u - local.set $25 - local.get $21 - local.get $20 - i64.mul - local.get $18 - i64.add - local.get $25 - i64.add - i64.const 1 - i64.sub - local.set $25 - global.get $~lib/util/number/_exp - local.set $26 - local.get $15 - local.set $13 - local.get $26 - local.get $13 - i32.add - i32.const 64 - i32.add - local.set $26 - global.get $~lib/util/number/_frc_minus - local.set $17 - local.get $12 - local.set $11 - local.get $17 - i64.const 4294967295 - i64.and - local.set $18 - local.get $11 - i64.const 4294967295 - i64.and - local.set $19 - local.get $17 - i64.const 32 - i64.shr_u - local.set $20 - local.get $11 - i64.const 32 - i64.shr_u - local.set $21 - local.get $18 - local.get $19 - i64.mul - local.set $22 - local.get $20 - local.get $19 - i64.mul - local.get $22 - i64.const 32 - i64.shr_u - i64.add - local.set $23 - local.get $18 - local.get $21 - i64.mul - local.get $23 - i64.const 4294967295 - i64.and - i64.add - local.set $27 - local.get $27 - i64.const 2147483647 - i64.add - local.set $27 - local.get $23 - i64.const 32 - i64.shr_u - local.set $23 - local.get $27 - i64.const 32 - i64.shr_u - local.set $27 - local.get $20 - local.get $21 - i64.mul - local.get $23 - i64.add - local.get $27 - i64.add - i64.const 1 - i64.add - local.set $27 - local.get $25 - local.get $27 - i64.sub - local.set $23 + local.set $6 + i32.const 0 + i32.const 2 + i32.lt_s + drop local.get $4 - local.get $24 - local.get $10 - local.get $25 - local.get $26 - local.get $23 - local.get $3 - call $~lib/util/number/genDigits - local.set $28 - local.get $0 - local.get $2 - i32.const 1 - i32.shl - i32.add - local.get $28 - local.get $2 - i32.sub - global.get $~lib/util/number/_K - call $~lib/util/number/prettify - local.set $28 - local.get $28 - local.get $2 - i32.add + i32.const 4 + i32.ge_u + if (result i32) + local.get $5 + i32.const 7 + i32.and + local.get $6 + i32.const 7 + i32.and + i32.or + i32.eqz + else + i32.const 0 + end + if + block $do-break|0 + loop $do-continue|0 + local.get $5 + i64.load + local.get $6 + i64.load + i64.ne + if + br $do-break|0 + end + local.get $5 + i32.const 8 + i32.add + local.set $5 + local.get $6 + i32.const 8 + i32.add + local.set $6 + local.get $4 + i32.const 4 + i32.sub + local.set $4 + local.get $4 + i32.const 4 + i32.ge_u + local.set $7 + local.get $7 + br_if $do-continue|0 + end + end + end + loop $while-continue|1 + local.get $4 + local.tee $7 + i32.const 1 + i32.sub + local.set $4 + local.get $7 + local.set $7 + local.get $7 + if + local.get $5 + i32.load16_u + local.set $8 + local.get $6 + i32.load16_u + local.set $9 + local.get $8 + local.get $9 + i32.ne + if + local.get $8 + local.get $9 + i32.sub + return + end + local.get $5 + i32.const 2 + i32.add + local.set $5 + local.get $6 + i32.const 2 + i32.add + local.set $6 + br $while-continue|1 + end + end + i32.const 0 ) - (func $~lib/util/number/dtoa_buffered (param $0 i32) (param $1 f64) (result 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.get $0 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.eq + if (result i32) + i32.const 1 + else local.get $0 - i32.const 48 - i32.store16 offset=4 - i32.const 3 + i32.const 0 + i32.eq + end + if (result i32) + i32.const 1 + else + local.get $1 + i32.const 0 + i32.eq + end + if + i32.const 0 return end + local.get $0 + call $~lib/string/String#get:length + local.set $2 local.get $1 - local.get $1 - f64.sub - f64.const 0 - f64.eq + call $~lib/string/String#get:length + local.set $3 + local.get $2 + local.get $3 + i32.or i32.eqz 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 - return - else - local.get $1 - f64.const 0 - f64.lt - local.set $2 - local.get $2 - if - local.get $0 - i32.const 45 - i32.store16 - local.get $0 - i32.const 2 - i32.add - local.set $0 + i32.const 0 + return + end + local.get $2 + i32.eqz + if + i32.const -1 + return + end + local.get $3 + i32.eqz + if + i32.const 1 + return + end + local.get $0 + i32.const 0 + local.get $1 + i32.const 0 + local.get $2 + local.tee $4 + local.get $3 + local.tee $5 + local.get $4 + local.get $5 + i32.lt_s + select + call $~lib/util/string/compareImpl + local.set $4 + local.get $4 + if (result i32) + local.get $4 + else + local.get $2 + local.get $3 + i32.sub + end + ) + (func $std/array/assertSorted<~lib/string/String|null>@varargs (param $0 i32) (param $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 + block $1of1 + block $0of1 + block $outOfRange + global.get $~argumentsLength + i32.const 1 + i32.sub + br_table $0of1 $1of1 $outOfRange end - local.get $0 - i64.const 29555310648492105 - i64.store - local.get $0 - i64.const 34058970405077102 - i64.store offset=8 - i32.const 8 - local.get $2 - i32.add - return + unreachable end - unreachable + global.get $~lib/memory/__stack_pointer + block $~lib/util/sort/COMPARATOR<~lib/string/String|null>|inlined.0 (result i32) + i32.const 0 + drop + i32.const 0 + drop + i32.const 1 + drop + i32.const 7856 + br $~lib/util/sort/COMPARATOR<~lib/string/String|null>|inlined.0 + end + local.tee $1 + i32.store end local.get $0 local.get $1 - call $~lib/util/number/dtoa_core - ) - (func $std/array/Ref#toString (param $0 i32) (result i32) - i32.const 11600 + call $std/array/assertSorted<~lib/string/String|null> + 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 $~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 $6 i32) - i32.const 0 - local.set $2 - i32.const 1 - drop + local.get $0 local.get $1 - i32.const 24 - i32.shl - i32.const 24 - i32.shr_s + i32.eq + if + i32.const 1 + return + end + local.get $0 i32.const 0 - i32.lt_s + i32.eq + if (result i32) + i32.const 1 + else + local.get $1 + i32.const 0 + i32.eq + end + if + i32.const 0 + return + end + local.get $0 + call $~lib/string/String#get:length local.set $2 local.get $2 + local.get $1 + call $~lib/string/String#get:length + i32.ne if i32.const 0 - local.get $1 - i32.sub - local.set $1 - local.get $0 - i32.const 45 - i32.store16 + return end + local.get $0 i32.const 0 - i32.const 1 - i32.le_s - drop + local.get $1 + i32.const 0 + local.get $2 + call $~lib/util/string/compareImpl + i32.eqz + ) + (func $~lib/string/String.__ne (param $0 i32) (param $1 i32) (result i32) + local.get $0 + local.get $1 + call $~lib/string/String.__eq + i32.eqz + ) + (func $~lib/array/Array<~lib/string/String>#set:buffer (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + local.get $0 + local.get $1 + i32.const 0 + call $~lib/rt/itcms/__link + ) + (func $~lib/array/Array<~lib/string/String>#set:dataStart (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=4 + ) + (func $~lib/array/Array<~lib/string/String>#set:byteLength (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=8 + ) + (func $~lib/array/Array<~lib/string/String>#set:length_ (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=12 + ) + (func $~lib/array/Array<~lib/string/String>#__uset (param $0 i32) (param $1 i32) (param $2 i32) + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 2 + i32.shl + i32.add + local.get $2 + i32.store i32.const 1 drop + local.get $0 + local.get $2 i32.const 1 - i32.const 4 - i32.le_u - drop + call $~lib/rt/itcms/__link + ) + (func $~lib/array/Array<~lib/string/String>#__set (param $0 i32) (param $1 i32) (param $2 i32) local.get $1 - i32.const 24 - i32.shl - i32.const 24 - i32.shr_s - i32.const 10 - i32.lt_u + local.get $0 + i32.load offset=12 + i32.ge_u if + local.get $1 + i32.const 0 + i32.lt_s + if + i32.const 320 + i32.const 80 + i32.const 108 + i32.const 22 + call $~lib/builtins/abort + unreachable + end local.get $0 - local.get $2 + local.get $1 i32.const 1 - i32.shl i32.add + i32.const 2 + call $~lib/array/ensureSize + local.get $0 local.get $1 - i32.const 24 - i32.shl - i32.const 24 - i32.shr_s - i32.const 48 - i32.or - i32.store16 i32.const 1 - local.get $2 i32.add - return + call $~lib/array/Array<~lib/string/String>#set:length_ end + local.get $0 + local.get $1 local.get $2 + call $~lib/array/Array<~lib/string/String>#__uset + ) + (func $~lib/util/sort/insertionSort<~lib/string/String> (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) + 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 $3 - i32.const 1 - i32.const 4 - i32.le_u - drop - local.get $3 - local.get $1 - i32.const 24 - i32.shl - i32.const 24 - i32.shr_s - call $~lib/util/number/decimalCount32 + loop $for-loop|0 + local.get $3 + local.get $1 + i32.lt_s + local.set $4 + local.get $4 + 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 + local.get $3 + i32.const 1 + i32.sub + local.set $6 + block $while-break|1 + loop $while-continue|1 + local.get $6 + i32.const 0 + i32.ge_s + local.set $7 + local.get $7 + if + global.get $~lib/memory/__stack_pointer + local.get $0 + local.get $6 + i32.const 2 + i32.shl + i32.add + i32.load + local.tee $8 + i32.store offset=4 + local.get $5 + local.get $8 + i32.const 2 + global.set $~argumentsLength + local.get $2 + i32.load + call_indirect (type $i32_i32_=>_i32) + i32.const 0 + i32.lt_s + if + local.get $0 + local.get $6 + local.tee $9 + i32.const 1 + i32.sub + local.set $6 + local.get $9 + i32.const 1 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $8 + i32.store + else + br $while-break|1 + end + br $while-continue|1 + end + end + end + local.get $0 + local.get $6 + i32.const 1 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $5 + i32.store + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $for-loop|0 + end + end + global.get $~lib/memory/__stack_pointer + i32.const 8 i32.add - local.set $3 + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/array/Array<~lib/string/String>#get:length (param $0 i32) (result i32) local.get $0 - local.set $6 - local.get $1 - i32.const 24 - i32.shl - i32.const 24 - i32.shr_s - local.set $5 - local.get $3 - local.set $4 - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $6 - local.get $5 - local.get $4 - call $~lib/util/number/utoa32_dec_lut - local.get $3 + i32.load offset=12 ) - (func $~lib/util/number/itoa_buffered (param $0 i32) (param $1 i32) (result i32) + (func $~lib/util/sort/COMPARATOR<~lib/string/String>~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) - i32.const 0 - local.set $2 - i32.const 0 - drop - i32.const 0 - i32.const 1 - i32.le_s - drop - i32.const 0 - drop + local.get $0 local.get $1 - i32.const 65535 - i32.and - i32.const 10 - i32.lt_u - if + i32.eq + if (result i32) + i32.const 1 + else local.get $0 - local.get $1 - i32.const 65535 - i32.and - i32.const 48 - i32.or - i32.store16 + i32.const 0 + i32.eq + end + if (result i32) i32.const 1 + else + local.get $1 + i32.const 0 + i32.eq + end + if + i32.const 0 return end - local.get $2 - local.set $3 - i32.const 2 - i32.const 4 - i32.le_u - drop - local.get $3 + local.get $0 + call $~lib/string/String#get:length + local.set $2 local.get $1 - i32.const 65535 - i32.and - call $~lib/util/number/decimalCount32 - i32.add + call $~lib/string/String#get:length local.set $3 + local.get $2 + local.get $3 + i32.or + i32.eqz + if + i32.const 0 + return + end + local.get $2 + i32.eqz + if + i32.const -1 + return + end + local.get $3 + i32.eqz + if + i32.const 1 + return + end local.get $0 - local.set $6 + i32.const 0 local.get $1 - i32.const 65535 - i32.and - local.set $5 - local.get $3 - local.set $4 i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $6 + local.get $2 + local.tee $4 + local.get $3 + local.tee $5 + local.get $4 local.get $5 + i32.lt_s + select + call $~lib/util/string/compareImpl + local.set $4 local.get $4 - call $~lib/util/number/utoa32_dec_lut - local.get $3 + if (result i32) + local.get $4 + else + local.get $2 + local.get $3 + i32.sub + end ) - (func $~lib/util/number/decimalCount64High (param $0 i64) (result i32) - local.get $0 - i64.const 1000000000000000 - i64.lt_u + (func $std/array/assertSorted<~lib/string/String>@varargs (param $0 i32) (param $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 + 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 + block $~lib/util/sort/COMPARATOR<~lib/string/String>|inlined.0 (result i32) + i32.const 0 + drop + i32.const 0 + drop + i32.const 1 + drop + i32.const 7920 + br $~lib/util/sort/COMPARATOR<~lib/string/String>|inlined.0 + end + local.tee $1 + i32.store + end + local.get $0 + local.get $1 + call $std/array/assertSorted<~lib/string/String> + 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) + (local $3 i32) + local.get $0 + i32.load offset=4 + local.set $2 + local.get $0 + i32.load offset=12 + local.set $3 + i32.const 1 + drop + local.get $2 + local.get $3 + local.get $1 + call $~lib/util/string/joinBooleanArray + return + ) + (func $~lib/util/number/decimalCount32 (param $0 i32) (result i32) + local.get $0 + i32.const 100000 + i32.lt_u if local.get $0 - i64.const 1000000000000 - i64.lt_u + i32.const 100 + i32.lt_u if - i32.const 10 - local.get $0 - i64.const 100000000000 - i64.ge_u - i32.add + i32.const 1 local.get $0 - i64.const 10000000000 - i64.ge_u + i32.const 10 + i32.ge_u i32.add return else - i32.const 13 + i32.const 3 local.get $0 - i64.const 100000000000000 - i64.ge_u + i32.const 10000 + i32.ge_u i32.add local.get $0 - i64.const 10000000000000 - i64.ge_u + i32.const 1000 + i32.ge_u i32.add return end unreachable else local.get $0 - i64.const 100000000000000000 - i64.lt_u + i32.const 10000000 + i32.lt_u if - i32.const 16 + i32.const 6 local.get $0 - i64.const 10000000000000000 - i64.ge_u + i32.const 1000000 + i32.ge_u i32.add return else - i32.const 18 + i32.const 8 local.get $0 - i64.const -8446744073709551616 - i64.ge_u + i32.const 1000000000 + i32.ge_u i32.add local.get $0 - i64.const 1000000000000000000 - i64.ge_u + i32.const 100000000 + i32.ge_u i32.add return end @@ -9916,76 +9990,55 @@ end unreachable ) - (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 i64) + (local $4 i32) (local $5 i32) (local $6 i32) (local $7 i32) - (local $8 i32) - (local $9 i32) + (local $8 i64) + (local $9 i64) (local $10 i32) (local $11 i32) - (local $12 i64) - (local $13 i64) loop $while-continue|0 local.get $1 - i64.const 100000000 - i64.ge_u + i32.const 10000 + i32.ge_u local.set $3 local.get $3 if local.get $1 - i64.const 100000000 - i64.div_u + i32.const 10000 + i32.div_u local.set $4 local.get $1 - local.get $4 - i64.const 100000000 - i64.mul - i64.sub - i32.wrap_i64 + i32.const 10000 + i32.rem_u local.set $5 local.get $4 local.set $1 local.get $5 - i32.const 10000 + i32.const 100 i32.div_u local.set $6 local.get $5 - i32.const 10000 - i32.rem_u - local.set $7 - local.get $6 - i32.const 100 - i32.div_u - local.set $8 - local.get $6 - i32.const 100 - i32.rem_u - local.set $9 - local.get $7 - i32.const 100 - i32.div_u - local.set $10 - local.get $7 i32.const 100 i32.rem_u - local.set $11 + local.set $7 i32.const 8364 - local.get $10 + local.get $6 i32.const 2 i32.shl i32.add i64.load32_u - local.set $12 + local.set $8 i32.const 8364 - local.get $11 + local.get $7 i32.const 2 i32.shl i32.add i64.load32_u - local.set $13 + local.set $9 local.get $2 i32.const 4 i32.sub @@ -9995,37 +10048,8 @@ i32.const 1 i32.shl i32.add - local.get $12 - local.get $13 - i64.const 32 - i64.shl - i64.or - i64.store - i32.const 8364 local.get $8 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $12 - i32.const 8364 local.get $9 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $13 - local.get $2 - i32.const 4 - i32.sub - local.set $2 - local.get $0 - local.get $2 - i32.const 1 - i32.shl - i32.add - local.get $12 - local.get $13 i64.const 32 i64.shl i64.or @@ -10033,274 +10057,367 @@ 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 $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i64) - i32.const 0 - local.set $2 - i32.const 0 - drop - i32.const 0 - i32.const 1 - i32.le_s - drop - i32.const 0 - drop local.get $1 - i64.const 10 - i64.lt_u + i32.const 100 + i32.ge_u if - local.get $0 local.get $1 - i64.const 48 - i64.or - i64.store16 - i32.const 1 - return - end - local.get $2 - local.set $3 - i32.const 8 - i32.const 4 - i32.le_u - drop - local.get $1 - global.get $~lib/builtins/u32.MAX_VALUE - i64.extend_i32_u - i64.le_u - if + i32.const 100 + i32.div_u + local.set $3 local.get $1 - i32.wrap_i64 - local.set $4 + i32.const 100 + i32.rem_u + local.set $10 local.get $3 - local.get $4 - call $~lib/util/number/decimalCount32 + local.set $1 + local.get $2 + i32.const 2 + i32.sub + local.set $2 + i32.const 8364 + local.get $10 + i32.const 2 + i32.shl i32.add - local.set $3 + i32.load + local.set $11 local.get $0 - local.set $7 - local.get $4 - local.set $6 - local.get $3 - local.set $5 - i32.const 0 + local.get $2 i32.const 1 - i32.ge_s - drop - local.get $7 - local.get $6 - local.get $5 - call $~lib/util/number/utoa32_dec_lut - else - local.get $3 - local.get $1 - call $~lib/util/number/decimalCount64High + i32.shl i32.add - local.set $3 - local.get $0 - local.set $6 - local.get $1 - local.set $8 - local.get $3 - local.set $5 - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $6 - local.get $8 - local.get $5 - call $~lib/util/number/utoa64_dec_lut + local.get $11 + i32.store end - local.get $3 - ) - (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 i64) - i32.const 0 - local.set $2 - i32.const 1 - drop local.get $1 - i64.const 0 - i64.lt_s - local.set $2 - local.get $2 + i32.const 10 + i32.ge_u if - i64.const 0 + local.get $2 + i32.const 2 + i32.sub + local.set $2 + i32.const 8364 local.get $1 - i64.sub - local.set $1 - local.get $0 - i32.const 45 - i32.store16 - end - i32.const 0 - i32.const 1 - i32.le_s - drop - i32.const 1 - drop - i32.const 8 - i32.const 4 - i32.le_u - drop - local.get $1 - i64.const 10 - i64.lt_u - if + i32.const 2 + i32.shl + i32.add + i32.load + local.set $11 local.get $0 local.get $2 i32.const 1 i32.shl i32.add - local.get $1 - i64.const 48 - i64.or - i64.store16 - i32.const 1 + local.get $11 + i32.store + else local.get $2 - i32.add - return - end - local.get $2 - local.set $3 - i32.const 8 - i32.const 4 - i32.le_u - drop - local.get $1 - global.get $~lib/builtins/u32.MAX_VALUE - i64.extend_i32_u - i64.le_u - if + i32.const 1 + i32.sub + local.set $2 + i32.const 48 local.get $1 - i32.wrap_i64 - local.set $4 - local.get $3 - local.get $4 - call $~lib/util/number/decimalCount32 i32.add - local.set $3 + local.set $11 local.get $0 - local.set $7 - local.get $4 - local.set $6 - local.get $3 - local.set $5 - i32.const 0 + local.get $2 i32.const 1 - i32.ge_s - drop - local.get $7 - local.get $6 - local.get $5 - call $~lib/util/number/utoa32_dec_lut - else - local.get $3 - local.get $1 - call $~lib/util/number/decimalCount64High + i32.shl i32.add + local.get $11 + i32.store16 + end + ) + (func $~lib/util/number/utoa_hex_lut (param $0 i32) (param $1 i64) (param $2 i32) + (local $3 i32) + loop $while-continue|0 + local.get $2 + i32.const 2 + i32.ge_u local.set $3 - local.get $0 - local.set $6 - local.get $1 - local.set $8 local.get $3 - local.set $5 - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $6 - local.get $8 - local.get $5 - call $~lib/util/number/utoa64_dec_lut + if + local.get $2 + i32.const 2 + i32.sub + local.set $2 + local.get $0 + local.get $2 + i32.const 1 + i32.shl + i32.add + i32.const 8784 + local.get $1 + i32.wrap_i64 + i32.const 255 + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + i32.store + local.get $1 + i64.const 8 + i64.shr_u + local.set $1 + br $while-continue|0 + end end - local.get $3 - ) - (func $~lib/array/Array<~lib/array/Array>#__uset (param $0 i32) (param $1 i32) (param $2 i32) - local.get $0 - i32.load offset=4 - local.get $1 - i32.const 2 - i32.shl - i32.add - local.get $2 - i32.store - i32.const 1 - drop - local.get $0 local.get $2 i32.const 1 - call $~lib/rt/itcms/__link + i32.and + if + local.get $0 + i32.const 8784 + local.get $1 + i32.wrap_i64 + i32.const 6 + i32.shl + i32.add + i32.load16_u + i32.store16 + end ) - (func $~lib/util/number/itoa_buffered (param $0 i32) (param $1 i32) (result i32) + (func $~lib/util/number/ulog_base (param $0 i64) (param $1 i32) (result i32) (local $2 i32) - (local $3 i32) - (local $4 i32) + (local $3 i64) + (local $4 i64) (local $5 i32) - (local $6 i32) - i32.const 0 + local.get $1 local.set $2 - i32.const 0 - drop - i32.const 0 + local.get $2 + i32.popcnt i32.const 1 - i32.le_s - drop - i32.const 0 - drop - local.get $1 - i32.const 255 - i32.and - i32.const 10 - i32.lt_u + i32.eq if + i32.const 63 local.get $0 + i64.clz + i32.wrap_i64 + i32.sub + i32.const 31 local.get $1 - i32.const 255 - i32.and - i32.const 48 - i32.or - i32.store16 + i32.clz + i32.sub + i32.div_u i32.const 1 + i32.add return end - local.get $2 + local.get $1 + i64.extend_i32_s local.set $3 + local.get $3 + local.set $4 i32.const 1 + local.set $5 + loop $while-continue|0 + local.get $0 + local.get $4 + i64.ge_u + local.set $2 + local.get $2 + if + local.get $0 + local.get $4 + i64.div_u + local.set $0 + local.get $4 + local.get $4 + i64.mul + local.set $4 + local.get $5 + i32.const 1 + i32.shl + local.set $5 + br $while-continue|0 + end + end + loop $while-continue|1 + local.get $0 + i64.const 1 + i64.ge_u + local.set $2 + local.get $2 + if + local.get $0 + local.get $3 + i64.div_u + local.set $0 + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $while-continue|1 + end + end + local.get $5 + i32.const 1 + i32.sub + ) + (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 i64) + (local $7 i32) + local.get $3 + i64.extend_i32_s + local.set $4 + local.get $3 + local.get $3 + i32.const 1 + i32.sub + i32.and + i32.const 0 + i32.eq + if + local.get $3 + i32.ctz + i32.const 7 + i32.and + i64.extend_i32_s + local.set $5 + local.get $4 + i64.const 1 + i64.sub + local.set $6 + loop $do-continue|0 + local.get $2 + i32.const 1 + i32.sub + local.set $2 + local.get $0 + local.get $2 + i32.const 1 + i32.shl + i32.add + i32.const 9840 + local.get $1 + local.get $6 + i64.and + i32.wrap_i64 + i32.const 1 + i32.shl + i32.add + i32.load16_u + i32.store16 + local.get $1 + local.get $5 + i64.shr_u + local.set $1 + local.get $1 + i64.const 0 + i64.ne + local.set $7 + local.get $7 + br_if $do-continue|0 + end + else + loop $do-continue|1 + local.get $2 + i32.const 1 + i32.sub + local.set $2 + local.get $1 + local.get $4 + i64.div_u + local.set $6 + local.get $0 + local.get $2 + i32.const 1 + i32.shl + i32.add + i32.const 9840 + local.get $1 + local.get $6 + local.get $4 + i64.mul + i64.sub + i32.wrap_i64 + i32.const 1 + i32.shl + i32.add + i32.load16_u + i32.store16 + local.get $6 + local.set $1 + local.get $1 + i64.const 0 + i64.ne + local.set $7 + local.get $7 + br_if $do-continue|1 + end + end + ) + (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) + i32.const 0 + local.set $2 + i32.const 1 + drop + local.get $1 + i32.const 0 + i32.lt_s + local.set $2 + local.get $2 + if + i32.const 0 + local.get $1 + i32.sub + local.set $1 + local.get $0 + i32.const 45 + i32.store16 + end + i32.const 0 + i32.const 1 + i32.le_s + drop + i32.const 1 + drop + i32.const 4 + i32.const 4 + i32.le_u + drop + local.get $1 + i32.const 10 + i32.lt_u + if + local.get $0 + local.get $2 + i32.const 1 + i32.shl + i32.add + local.get $1 + i32.const 48 + i32.or + i32.store16 + i32.const 1 + local.get $2 + i32.add + return + end + local.get $2 + local.set $3 + i32.const 4 i32.const 4 i32.le_u drop local.get $3 local.get $1 - i32.const 255 - i32.and call $~lib/util/number/decimalCount32 i32.add local.set $3 local.get $0 local.set $6 local.get $1 - i32.const 255 - i32.and local.set $5 local.get $3 local.set $4 @@ -10314,7081 +10431,2607 @@ call $~lib/util/number/utoa32_dec_lut local.get $3 ) - (func $~lib/array/Array<~lib/array/Array>#__uset (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/array/Array#join (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) local.get $0 i32.load offset=4 - local.get $1 - i32.const 2 - i32.shl - i32.add - local.get $2 - i32.store + local.set $2 + local.get $0 + i32.load offset=12 + local.set $3 + i32.const 0 + drop i32.const 1 drop - local.get $0 local.get $2 - i32.const 1 - call $~lib/rt/itcms/__link - ) - (func $~lib/array/Array<~lib/array/Array<~lib/array/Array>>#__uset (param $0 i32) (param $1 i32) (param $2 i32) - local.get $0 - i32.load offset=4 + local.get $3 local.get $1 - i32.const 2 - i32.shl - i32.add - local.get $2 - i32.store - i32.const 1 + call $~lib/util/string/joinIntegerArray + return + ) + (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) + i32.const 0 + local.set $2 + i32.const 0 drop - local.get $0 - local.get $2 + i32.const 0 i32.const 1 - call $~lib/rt/itcms/__link - ) - (func $~lib/array/Array<~lib/array/Array<~lib/string/String|null>>#__uset (param $0 i32) (param $1 i32) (param $2 i32) - local.get $0 - i32.load offset=4 + i32.le_s + drop + i32.const 0 + drop local.get $1 - i32.const 2 - i32.shl - i32.add - local.get $2 - i32.store - i32.const 1 - drop - local.get $0 - local.get $2 - i32.const 1 - call $~lib/rt/itcms/__link - ) - (func $~lib/rt/itcms/__collect - (local $0 i32) - i32.const 0 - drop - global.get $~lib/rt/itcms/state - i32.const 0 - i32.gt_s + i32.const 10 + i32.lt_u if - loop $while-continue|0 - global.get $~lib/rt/itcms/state - i32.const 0 - i32.ne - local.set $0 - local.get $0 - 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 - local.set $0 local.get $0 - 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.const 0 - drop - i32.const 0 - if (result i32) + local.get $1 + i32.const 48 + i32.or + i32.store16 i32.const 1 - else - i32.const 0 + return end + local.get $2 + local.set $3 + i32.const 4 + i32.const 4 + i32.le_u drop - ) - (func $~lib/array/Array#set:buffer (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - i32.store - local.get $0 - local.get $1 - i32.const 0 - call $~lib/rt/itcms/__link - ) - (func $~lib/array/Array#set:dataStart (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - i32.store offset=4 - ) - (func $~lib/array/Array#set:byteLength (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - i32.store offset=8 - ) - (func $~lib/array/Array#set:length_ (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - i32.store offset=12 - ) - (func $~lib/array/Array#get:buffer (param $0 i32) (result i32) - local.get $0 - i32.load - ) - (func $~lib/array/Array#get:dataStart (param $0 i32) (result i32) - local.get $0 - i32.load offset=4 - ) - (func $~lib/array/Array#get:byteLength (param $0 i32) (result i32) - local.get $0 - i32.load offset=8 - ) - (func $~lib/array/Array#get:length_ (param $0 i32) (result i32) - local.get $0 - i32.load offset=12 - ) - (func $~lib/array/Array#set:length (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - i32.const 2 - call $~lib/array/ensureSize - local.get $0 - local.get $1 - call $~lib/array/Array#set:length_ - ) - (func $~lib/array/Array#__uget (param $0 i32) (param $1 i32) (result i32) - local.get $0 - i32.load offset=4 + local.get $3 local.get $1 - i32.const 2 - i32.shl + call $~lib/util/number/decimalCount32 i32.add - i32.load - ) - (func $~lib/array/Array#__uset (param $0 i32) (param $1 i32) (param $2 i32) + local.set $3 local.get $0 - i32.load offset=4 + local.set $6 local.get $1 - i32.const 2 - i32.shl - i32.add - local.get $2 - i32.store + local.set $5 + local.get $3 + local.set $4 i32.const 0 + i32.const 1 + i32.ge_s drop + local.get $6 + local.get $5 + local.get $4 + call $~lib/util/number/utoa32_dec_lut + local.get $3 ) - (func $~lib/array/Array#at (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#join (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) local.get $0 - i32.load offset=12 + i32.load offset=4 local.set $2 - local.get $1 - i32.const 0 - local.get $2 - local.get $1 - i32.const 0 - i32.ge_s - select - i32.add - local.set $1 - local.get $1 - local.get $2 - i32.ge_u - if - i32.const 320 - i32.const 80 - i32.const 125 - i32.const 33 - call $~lib/builtins/abort - unreachable - end local.get $0 - i32.load offset=4 - local.get $1 - i32.const 2 - i32.shl - i32.add - i32.load + i32.load offset=12 local.set $3 i32.const 0 drop + i32.const 1 + drop + local.get $2 local.get $3 + local.get $1 + call $~lib/util/string/joinIntegerArray + return ) - (func $~lib/array/Array#indexOf (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.load offset=12 - local.set $3 - local.get $3 - i32.const 0 - i32.eq - if (result i32) - i32.const 1 - else - local.get $2 - local.get $3 - i32.ge_s - end - if - i32.const -1 - return - end - local.get $2 + (func $~lib/util/number/genDigits (param $0 i32) (param $1 i64) (param $2 i32) (param $3 i64) (param $4 i32) (param $5 i64) (param $6 i32) (result i32) + (local $7 i32) + (local $8 i64) + (local $9 i64) + (local $10 i64) + (local $11 i32) + (local $12 i64) + (local $13 i32) + (local $14 i32) + (local $15 i32) + (local $16 i32) + (local $17 i32) + (local $18 i64) + (local $19 i64) + (local $20 i64) + (local $21 i64) + (local $22 i64) + (local $23 i32) + (local $24 i32) + (local $25 i32) + (local $26 i32) + (local $27 i64) i32.const 0 - i32.lt_s - if - local.get $3 - local.get $2 - i32.add - local.tee $4 - i32.const 0 - local.tee $5 - local.get $4 - local.get $5 - i32.gt_s - select - local.set $2 - end - local.get $0 - i32.load offset=4 - local.set $6 - loop $while-continue|0 - local.get $2 - local.get $3 - i32.lt_s - local.set $4 - local.get $4 - if - local.get $6 - local.get $2 - i32.const 2 - i32.shl - i32.add - i32.load - local.get $1 - i32.eq - if - local.get $2 - return - end - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $while-continue|0 - end - end - i32.const -1 - ) - (func $~lib/array/Array#lastIndexOf (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - local.get $0 - i32.load offset=12 - local.set $3 - local.get $3 - i32.const 0 - i32.eq - if - i32.const -1 - return - end - local.get $2 - i32.const 0 - i32.lt_s - if - local.get $3 - local.get $2 - i32.add - local.set $2 - else - local.get $2 - local.get $3 - i32.ge_s - if - local.get $3 - i32.const 1 - i32.sub - local.set $2 - end - end - local.get $0 - i32.load offset=4 - local.set $4 - loop $while-continue|0 - local.get $2 - i32.const 0 - i32.ge_s - local.set $5 - local.get $5 - if - local.get $4 - local.get $2 - i32.const 2 - i32.shl - i32.add - i32.load - local.get $1 - i32.eq - if - local.get $2 - return - end - local.get $2 - i32.const 1 - i32.sub - local.set $2 - br $while-continue|0 - end - end - i32.const -1 - ) - (func $~lib/array/Array#push (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - local.get $0 - i32.load offset=12 - local.set $2 - local.get $2 - i32.const 1 - i32.add - local.set $3 - local.get $0 - local.get $3 - i32.const 2 - call $~lib/array/ensureSize - i32.const 0 - drop - 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 $3 - call $~lib/array/Array#set:length_ - local.get $3 - ) - (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) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - (local $10 i32) - (local $11 i32) - local.get $0 - i32.load offset=4 - local.set $4 - local.get $0 - i32.load offset=12 - local.set $5 - local.get $3 - local.tee $6 - local.get $5 - local.tee $7 - local.get $6 + local.get $4 + i32.sub + local.set $7 + i64.const 1 local.get $7 - i32.lt_s - select - local.set $3 - local.get $1 - i32.const 0 - i32.lt_s - if (result i32) - local.get $5 - local.get $1 - i32.add - local.tee $7 - i32.const 0 - local.tee $6 - local.get $7 - local.get $6 - i32.gt_s - select - else - local.get $1 - local.tee $6 - local.get $5 - local.tee $7 - local.get $6 - local.get $7 - i32.lt_s - select - end + i64.extend_i32_s + i64.shl local.set $8 - local.get $2 - i32.const 0 - i32.lt_s - if (result i32) - local.get $5 - local.get $2 - i32.add - local.tee $7 - i32.const 0 - local.tee $6 - local.get $7 - local.get $6 - i32.gt_s - select - else - local.get $2 - local.tee $6 - local.get $5 - local.tee $7 - local.get $6 - local.get $7 - i32.lt_s - select - end + local.get $8 + i64.const 1 + i64.sub local.set $9 local.get $3 - i32.const 0 - i32.lt_s - if (result i32) - local.get $5 - local.get $3 - i32.add - local.tee $7 - i32.const 0 - local.tee $6 - local.get $7 - local.get $6 - i32.gt_s - select - else - local.get $3 - local.tee $6 - local.get $5 - local.tee $7 - local.get $6 - local.get $7 - i32.lt_s - select - end + local.get $1 + i64.sub local.set $10 - local.get $10 - local.get $9 - i32.sub - local.tee $7 - local.get $5 - local.get $8 - i32.sub - local.tee $6 + local.get $3 local.get $7 - local.get $6 - i32.lt_s - select + i64.extend_i32_s + i64.shr_u + i32.wrap_i64 local.set $11 - local.get $4 - local.get $8 - i32.const 2 - i32.shl - i32.add - local.get $4 + local.get $3 local.get $9 - i32.const 2 - i32.shl - i32.add + i64.and + local.set $12 local.get $11 - i32.const 2 - i32.shl - call $~lib/memory/memory.copy - local.get $0 - ) - (func $~lib/array/Array#pop (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) - local.get $0 - i32.load offset=12 - local.set $1 - local.get $1 - i32.const 1 - i32.lt_s - if - i32.const 1152 - i32.const 80 - i32.const 269 - i32.const 21 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load offset=4 - local.get $1 - i32.const 1 - i32.sub - local.tee $1 - i32.const 2 - i32.shl - i32.add - i32.load - local.set $2 - local.get $0 - local.get $1 - call $~lib/array/Array#set:length_ - local.get $2 - ) - (func $~lib/array/Array#shift (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - local.get $0 - i32.load offset=12 - local.set $1 - local.get $1 - i32.const 1 - i32.lt_s - if - i32.const 1152 - i32.const 80 - i32.const 328 - i32.const 21 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load offset=4 - local.set $2 - local.get $2 - i32.load - local.set $3 - local.get $1 - i32.const 1 - i32.sub - local.set $4 - local.get $2 - local.get $2 - i32.const 4 - i32.add - local.get $4 - i32.const 2 - i32.shl - call $~lib/memory/memory.copy - i32.const 0 - drop - local.get $2 - local.get $4 - i32.const 2 - i32.shl - i32.add - i32.const 0 - i32.store - local.get $0 - local.get $4 - call $~lib/array/Array#set:length_ - local.get $3 - ) - (func $~lib/array/Array#unshift (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - local.get $0 - i32.load offset=12 - i32.const 1 - i32.add - local.set $2 - local.get $0 - local.get $2 - i32.const 2 - call $~lib/array/ensureSize - local.get $0 - i32.load offset=4 - local.set $3 - local.get $3 - i32.const 4 - i32.add - local.get $3 - local.get $2 - i32.const 1 - i32.sub - i32.const 2 - i32.shl - call $~lib/memory/memory.copy - local.get $3 - local.get $1 - i32.store - i32.const 0 - drop - local.get $0 - local.get $2 - call $~lib/array/Array#set:length_ - local.get $2 - ) - (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.get $0 - i32.load offset=12 - local.set $1 - local.get $1 - if - local.get $0 - i32.load offset=4 - local.set $2 - local.get $0 - i32.load offset=4 - local.get $1 - i32.const 1 - i32.sub - i32.const 2 - i32.shl - i32.add - local.set $3 - loop $while-continue|0 - local.get $2 - local.get $3 - i32.lt_u - local.set $4 - local.get $4 - if - local.get $2 - i32.load - local.set $5 - local.get $2 - local.get $3 - i32.load - i32.store - local.get $3 - local.get $5 - i32.store - local.get $2 - i32.const 4 - i32.add - local.set $2 - local.get $3 - i32.const 4 - i32.sub - local.set $3 - br $while-continue|0 - end - end - end - local.get $0 - ) - (func $~lib/array/Array#flat (param $0 i32) (result i32) - i32.const 0 - i32.eqz - drop - i32.const 13584 - i32.const 80 - i32.const 470 - i32.const 7 - call $~lib/builtins/abort - unreachable - ) - (func $~lib/array/Array#__visit (param $0 i32) (param $1 i32) - i32.const 0 - drop - local.get $0 - i32.load - local.get $1 - call $~lib/rt/itcms/__visit - ) - (func $~lib/array/Array#set:buffer (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - i32.store - local.get $0 - local.get $1 - i32.const 0 - call $~lib/rt/itcms/__link - ) - (func $~lib/array/Array#set:dataStart (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - i32.store offset=4 - ) - (func $~lib/array/Array#set:byteLength (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - i32.store offset=8 - ) - (func $~lib/array/Array#set:length_ (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - i32.store offset=12 - ) - (func $~lib/array/Array#get:buffer (param $0 i32) (result i32) - local.get $0 - i32.load - ) - (func $~lib/array/Array#get:dataStart (param $0 i32) (result i32) - local.get $0 - i32.load offset=4 - ) - (func $~lib/array/Array#get:byteLength (param $0 i32) (result i32) - local.get $0 - i32.load offset=8 - ) - (func $~lib/array/Array#get:length_ (param $0 i32) (result i32) - local.get $0 - i32.load offset=12 - ) - (func $~lib/array/Array#set:length (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - i32.const 0 - call $~lib/array/ensureSize - local.get $0 - local.get $1 - call $~lib/array/Array#set:length_ - ) - (func $~lib/array/Array#__uget (param $0 i32) (param $1 i32) (result i32) - local.get $0 - i32.load offset=4 - local.get $1 - i32.const 0 - i32.shl - i32.add - i32.load8_u - ) - (func $~lib/array/Array#__uset (param $0 i32) (param $1 i32) (param $2 i32) - local.get $0 - i32.load offset=4 - local.get $1 - i32.const 0 - i32.shl - i32.add - local.get $2 - i32.store8 - i32.const 0 - drop - ) - (func $~lib/array/Array#at (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - local.get $0 - i32.load offset=12 - local.set $2 - local.get $1 - i32.const 0 - local.get $2 - local.get $1 - i32.const 0 - i32.ge_s - select - i32.add - local.set $1 - local.get $1 - local.get $2 - i32.ge_u - if - i32.const 320 - i32.const 80 - i32.const 125 - i32.const 33 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load offset=4 - local.get $1 - i32.const 0 - i32.shl - i32.add - i32.load8_u - local.set $3 - i32.const 0 - drop - local.get $3 - ) - (func $~lib/array/Array#indexOf (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.load offset=12 - local.set $3 - local.get $3 - i32.const 0 - i32.eq - if (result i32) - i32.const 1 - else - local.get $2 - local.get $3 - i32.ge_s - end - if - i32.const -1 - return - end - local.get $2 - i32.const 0 - i32.lt_s - if - local.get $3 - local.get $2 - i32.add - local.tee $4 - i32.const 0 - local.tee $5 - local.get $4 - local.get $5 - i32.gt_s - select - local.set $2 - end - local.get $0 - i32.load offset=4 - local.set $6 - loop $while-continue|0 - local.get $2 - local.get $3 - i32.lt_s - local.set $4 - local.get $4 - if - local.get $6 - local.get $2 - i32.const 0 - i32.shl - i32.add - i32.load8_u - local.get $1 - i32.const 255 - i32.and - i32.eq - if - local.get $2 - return - end - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $while-continue|0 - end - end - i32.const -1 - ) - (func $~lib/array/Array#lastIndexOf (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - local.get $0 - i32.load offset=12 - local.set $3 - local.get $3 - i32.const 0 - i32.eq - if - i32.const -1 - return - end - local.get $2 - i32.const 0 - i32.lt_s - if - local.get $3 - local.get $2 - i32.add - local.set $2 - else - local.get $2 - local.get $3 - i32.ge_s - if - local.get $3 - i32.const 1 - i32.sub - local.set $2 - end - end - local.get $0 - i32.load offset=4 - local.set $4 - loop $while-continue|0 - local.get $2 - i32.const 0 - i32.ge_s - local.set $5 - local.get $5 - if - local.get $4 - local.get $2 - i32.const 0 - i32.shl - i32.add - i32.load8_u - local.get $1 - i32.const 255 - i32.and - i32.eq - if - local.get $2 - return - end - local.get $2 - i32.const 1 - i32.sub - local.set $2 - br $while-continue|0 - end - end - i32.const -1 - ) - (func $~lib/array/Array#push (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - local.get $0 - i32.load offset=12 - local.set $2 - local.get $2 - i32.const 1 - i32.add - local.set $3 - local.get $0 - local.get $3 - i32.const 0 - call $~lib/array/ensureSize - i32.const 0 - drop - local.get $0 - i32.load offset=4 - local.get $2 - i32.const 0 - i32.shl - i32.add - local.get $1 - i32.store8 - local.get $0 - local.get $3 - call $~lib/array/Array#set:length_ - local.get $3 - ) - (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) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - (local $10 i32) - (local $11 i32) - local.get $0 - i32.load offset=4 - local.set $4 - local.get $0 - i32.load offset=12 - local.set $5 - local.get $3 - local.tee $6 - local.get $5 - local.tee $7 - local.get $6 - local.get $7 - i32.lt_s - select - local.set $3 - local.get $1 - i32.const 0 - i32.lt_s - if (result i32) - local.get $5 - local.get $1 - i32.add - local.tee $7 - i32.const 0 - local.tee $6 - local.get $7 - local.get $6 - i32.gt_s - select - else - local.get $1 - local.tee $6 - local.get $5 - local.tee $7 - local.get $6 - local.get $7 - i32.lt_s - select - end - local.set $8 - local.get $2 - i32.const 0 - i32.lt_s - if (result i32) - local.get $5 - local.get $2 - i32.add - local.tee $7 - i32.const 0 - local.tee $6 - local.get $7 - local.get $6 - i32.gt_s - select - else - local.get $2 - local.tee $6 - local.get $5 - local.tee $7 - local.get $6 - local.get $7 - i32.lt_s - select - end - local.set $9 - local.get $3 - i32.const 0 - i32.lt_s - if (result i32) - local.get $5 - local.get $3 - i32.add - local.tee $7 - i32.const 0 - local.tee $6 - local.get $7 - local.get $6 - i32.gt_s - select - else - local.get $3 - local.tee $6 - local.get $5 - local.tee $7 - local.get $6 - local.get $7 - i32.lt_s - select - end - local.set $10 - local.get $10 - local.get $9 - i32.sub - local.tee $7 - local.get $5 - local.get $8 - i32.sub - local.tee $6 - local.get $7 - local.get $6 - i32.lt_s - select - local.set $11 - local.get $4 - local.get $8 - i32.const 0 - i32.shl - i32.add - local.get $4 - local.get $9 - i32.const 0 - i32.shl - i32.add - local.get $11 - i32.const 0 - i32.shl - call $~lib/memory/memory.copy - local.get $0 - ) - (func $~lib/array/Array#pop (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) - local.get $0 - i32.load offset=12 - local.set $1 - local.get $1 - i32.const 1 - i32.lt_s - if - i32.const 1152 - i32.const 80 - i32.const 269 - i32.const 21 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load offset=4 - local.get $1 - i32.const 1 - i32.sub - local.tee $1 - i32.const 0 - i32.shl - i32.add - i32.load8_u - local.set $2 - local.get $0 - local.get $1 - call $~lib/array/Array#set:length_ - local.get $2 - ) - (func $~lib/array/Array#shift (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - local.get $0 - i32.load offset=12 - local.set $1 - local.get $1 - i32.const 1 - i32.lt_s - if - i32.const 1152 - i32.const 80 - i32.const 328 - i32.const 21 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load offset=4 - local.set $2 - local.get $2 - i32.load8_u - local.set $3 - local.get $1 - i32.const 1 - i32.sub - local.set $4 - local.get $2 - local.get $2 - i32.const 1 - i32.add - local.get $4 - i32.const 0 - i32.shl - call $~lib/memory/memory.copy - i32.const 0 - drop - local.get $2 - local.get $4 - i32.const 0 - i32.shl - i32.add - i32.const 0 - i32.store8 - local.get $0 - local.get $4 - call $~lib/array/Array#set:length_ - local.get $3 - ) - (func $~lib/array/Array#unshift (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - local.get $0 - i32.load offset=12 - i32.const 1 - i32.add - local.set $2 - local.get $0 - local.get $2 - i32.const 0 - call $~lib/array/ensureSize - local.get $0 - i32.load offset=4 - local.set $3 - local.get $3 - i32.const 1 - i32.add - local.get $3 - local.get $2 - i32.const 1 - i32.sub - i32.const 0 - i32.shl - call $~lib/memory/memory.copy - local.get $3 - local.get $1 - i32.store8 - i32.const 0 - drop - local.get $0 - local.get $2 - call $~lib/array/Array#set:length_ - local.get $2 - ) - (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.get $0 - i32.load offset=12 - local.set $1 - local.get $1 - if - local.get $0 - i32.load offset=4 - local.set $2 - local.get $0 - i32.load offset=4 - local.get $1 - i32.const 1 - i32.sub - i32.const 0 - i32.shl - i32.add - local.set $3 - loop $while-continue|0 - local.get $2 - local.get $3 - i32.lt_u - local.set $4 - local.get $4 - if - local.get $2 - i32.load8_u - local.set $5 - local.get $2 - local.get $3 - i32.load8_u - i32.store8 - local.get $3 - local.get $5 - i32.store8 - local.get $2 - i32.const 1 - i32.add - local.set $2 - local.get $3 - i32.const 1 - i32.sub - local.set $3 - br $while-continue|0 - end - end - end - local.get $0 - ) - (func $~lib/util/sort/insertionSort (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) - i32.const 0 - local.set $3 - loop $for-loop|0 - local.get $3 - local.get $1 - i32.lt_s - local.set $4 - local.get $4 - if - local.get $0 - local.get $3 - i32.const 0 - i32.shl - i32.add - i32.load8_u - local.set $5 - local.get $3 - i32.const 1 - i32.sub - local.set $6 - block $while-break|1 - loop $while-continue|1 - local.get $6 - i32.const 0 - i32.ge_s - local.set $7 - local.get $7 - if - local.get $0 - local.get $6 - i32.const 0 - i32.shl - i32.add - i32.load8_u - local.set $8 - local.get $5 - local.get $8 - i32.const 2 - global.set $~argumentsLength - local.get $2 - i32.load - call_indirect (type $i32_i32_=>_i32) - i32.const 0 - i32.lt_s - if - local.get $0 - local.get $6 - local.tee $9 - i32.const 1 - i32.sub - local.set $6 - local.get $9 - i32.const 1 - i32.add - i32.const 0 - i32.shl - i32.add - local.get $8 - i32.store8 - else - br $while-break|1 - end - br $while-continue|1 - end - end - end - local.get $0 - local.get $6 - i32.const 1 - i32.add - i32.const 0 - i32.shl - i32.add - local.get $5 - i32.store8 - local.get $3 - i32.const 1 - i32.add - local.set $3 - br $for-loop|0 - end - end - ) - (func $~lib/util/sort/weakHeapSort (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.get $1 - i32.const 31 - i32.add - i32.const 5 - i32.shr_u - i32.const 2 - i32.shl - local.set $3 - local.get $3 - call $~lib/rt/tlsf/__alloc - local.set $4 - local.get $4 - i32.const 0 - local.get $3 - call $~lib/memory/memory.fill - local.get $1 - i32.const 1 - i32.sub - local.set $5 - loop $for-loop|0 - local.get $5 - i32.const 0 - i32.gt_s - local.set $6 - local.get $6 - if - local.get $5 - local.set $7 - loop $while-continue|1 - local.get $7 - i32.const 1 - i32.and - local.get $4 - local.get $7 - i32.const 6 - i32.shr_u - i32.const 2 - i32.shl - i32.add - i32.load - local.get $7 - i32.const 1 - i32.shr_s - i32.const 31 - i32.and - i32.shr_u - i32.const 1 - i32.and - i32.eq - local.set $8 - local.get $8 - if - local.get $7 - i32.const 1 - i32.shr_s - local.set $7 - br $while-continue|1 - end - end - local.get $7 - i32.const 1 - i32.shr_s - local.set $8 - local.get $0 - local.get $8 - i32.const 0 - i32.shl - i32.add - i32.load8_u - local.set $9 - local.get $0 - local.get $5 - i32.const 0 - i32.shl - i32.add - i32.load8_u - local.set $10 - local.get $9 - local.get $10 - i32.const 2 - global.set $~argumentsLength - local.get $2 - i32.load - call_indirect (type $i32_i32_=>_i32) - i32.const 0 - i32.lt_s - if - local.get $4 - local.get $5 - i32.const 5 - i32.shr_u - i32.const 2 - i32.shl - i32.add - local.get $4 - local.get $5 - i32.const 5 - i32.shr_u - i32.const 2 - i32.shl - i32.add - i32.load - i32.const 1 - local.get $5 - i32.const 31 - i32.and - i32.shl - i32.xor - i32.store - local.get $0 - local.get $5 - i32.const 0 - i32.shl - i32.add - local.get $9 - i32.store8 - local.get $0 - local.get $8 - i32.const 0 - i32.shl - i32.add - local.get $10 - i32.store8 - end - local.get $5 - i32.const 1 - i32.sub - local.set $5 - br $for-loop|0 - end - end - local.get $1 - i32.const 1 - i32.sub - local.set $5 - loop $for-loop|2 - local.get $5 - i32.const 2 - i32.ge_s - local.set $6 - local.get $6 - if - local.get $0 - i32.load8_u - local.set $10 - local.get $0 - local.get $0 - local.get $5 - i32.const 0 - i32.shl - i32.add - i32.load8_u - i32.store8 - local.get $0 - local.get $5 - i32.const 0 - i32.shl - i32.add - local.get $10 - i32.store8 - i32.const 1 - local.set $9 - loop $while-continue|3 - local.get $9 - i32.const 1 - i32.shl - local.get $4 - local.get $9 - i32.const 5 - i32.shr_u - i32.const 2 - i32.shl - i32.add - i32.load - local.get $9 - i32.const 31 - i32.and - i32.shr_u - i32.const 1 - i32.and - i32.add - local.tee $8 - local.get $5 - i32.lt_s - local.set $7 - local.get $7 - if - local.get $8 - local.set $9 - br $while-continue|3 - end - end - loop $while-continue|4 - local.get $9 - i32.const 0 - i32.gt_s - local.set $7 - local.get $7 - if - local.get $0 - i32.load8_u - local.set $10 - local.get $0 - local.get $9 - i32.const 0 - i32.shl - i32.add - i32.load8_u - local.set $11 - local.get $10 - local.get $11 - i32.const 2 - global.set $~argumentsLength - local.get $2 - i32.load - call_indirect (type $i32_i32_=>_i32) - i32.const 0 - i32.lt_s - if - local.get $4 - local.get $9 - i32.const 5 - i32.shr_u - i32.const 2 - i32.shl - i32.add - local.get $4 - local.get $9 - i32.const 5 - i32.shr_u - i32.const 2 - i32.shl - i32.add - i32.load - i32.const 1 - local.get $9 - i32.const 31 - i32.and - i32.shl - i32.xor - i32.store - local.get $0 - local.get $9 - i32.const 0 - i32.shl - i32.add - local.get $10 - i32.store8 - local.get $0 - local.get $11 - i32.store8 - end - local.get $9 - i32.const 1 - i32.shr_s - local.set $9 - br $while-continue|4 - end - end - local.get $5 - i32.const 1 - i32.sub - local.set $5 - br $for-loop|2 - end - end - local.get $4 - call $~lib/rt/tlsf/__free - local.get $0 - i32.load8_u offset=1 - local.set $12 - local.get $0 - local.get $0 - i32.load8_u - i32.store8 offset=1 - local.get $0 - local.get $12 - i32.store8 - ) - (func $~lib/array/Array#flat (param $0 i32) (result i32) - i32.const 0 - i32.eqz - drop - i32.const 13584 - i32.const 80 - i32.const 470 - i32.const 7 - call $~lib/builtins/abort - unreachable - ) - (func $~lib/array/Array#__visit (param $0 i32) (param $1 i32) - i32.const 0 - drop - local.get $0 - i32.load - local.get $1 - call $~lib/rt/itcms/__visit - ) - (func $~lib/array/Array<~lib/string/String>#get:buffer (param $0 i32) (result i32) - local.get $0 - i32.load - ) - (func $~lib/array/Array<~lib/string/String>#get:dataStart (param $0 i32) (result i32) - local.get $0 - i32.load offset=4 - ) - (func $~lib/array/Array<~lib/string/String>#get:byteLength (param $0 i32) (result i32) - local.get $0 - i32.load offset=8 - ) - (func $~lib/array/Array<~lib/string/String>#get:length_ (param $0 i32) (result i32) - local.get $0 - i32.load offset=12 - ) - (func $~lib/array/Array<~lib/string/String>#set:length (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - i32.const 2 - call $~lib/array/ensureSize - local.get $0 - local.get $1 - call $~lib/array/Array<~lib/string/String>#set:length_ - ) - (func $~lib/array/Array<~lib/string/String>#__uget (param $0 i32) (param $1 i32) (result i32) - local.get $0 - i32.load offset=4 - local.get $1 - i32.const 2 - i32.shl - i32.add - i32.load - ) - (func $~lib/array/Array<~lib/string/String>#fill (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - local.get $0 - i32.load offset=4 - local.set $4 - local.get $0 - i32.load offset=12 - local.set $5 - local.get $2 - i32.const 0 - i32.lt_s - if (result i32) - local.get $5 - local.get $2 - i32.add - local.tee $6 - i32.const 0 - local.tee $7 - local.get $6 - local.get $7 - i32.gt_s - select - else - local.get $2 - local.tee $7 - local.get $5 - local.tee $6 - local.get $7 - local.get $6 - i32.lt_s - select - end - local.set $2 - local.get $3 - i32.const 0 - i32.lt_s - if (result i32) - local.get $5 - local.get $3 - i32.add - local.tee $6 - i32.const 0 - local.tee $7 - local.get $6 - local.get $7 - i32.gt_s - select - else - local.get $3 - local.tee $7 - local.get $5 - local.tee $6 - local.get $7 - local.get $6 - i32.lt_s - select - end - local.set $3 - i32.const 1 - drop - loop $for-loop|0 - local.get $2 - local.get $3 - i32.lt_s - local.set $7 - local.get $7 - if - local.get $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 - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $for-loop|0 - end - end - local.get $0 - ) - (func $~lib/array/Array<~lib/string/String>#push (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - local.get $0 - i32.load offset=12 - local.set $2 - local.get $2 - i32.const 1 - i32.add - local.set $3 - local.get $0 - local.get $3 - i32.const 2 - call $~lib/array/ensureSize - i32.const 1 - drop - 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 - local.get $0 - local.get $3 - call $~lib/array/Array<~lib/string/String>#set:length_ - local.get $3 - ) - (func $~lib/array/Array<~lib/string/String>#copyWithin (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result 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.get $0 - i32.load offset=4 - local.set $4 - local.get $0 - i32.load offset=12 - local.set $5 - local.get $3 - local.tee $6 - local.get $5 - local.tee $7 - local.get $6 - local.get $7 - i32.lt_s - select - local.set $3 - local.get $1 - i32.const 0 - i32.lt_s - if (result i32) - local.get $5 - local.get $1 - i32.add - local.tee $7 - i32.const 0 - local.tee $6 - local.get $7 - local.get $6 - i32.gt_s - select - else - local.get $1 - local.tee $6 - local.get $5 - local.tee $7 - local.get $6 - local.get $7 - i32.lt_s - select - end - local.set $8 - local.get $2 - i32.const 0 - i32.lt_s - if (result i32) - local.get $5 - local.get $2 - i32.add - local.tee $7 - i32.const 0 - local.tee $6 - local.get $7 - local.get $6 - i32.gt_s - select - else - local.get $2 - local.tee $6 - local.get $5 - local.tee $7 - local.get $6 - local.get $7 - i32.lt_s - select - end - local.set $9 - local.get $3 - i32.const 0 - i32.lt_s - if (result i32) - local.get $5 - local.get $3 - i32.add - local.tee $7 - i32.const 0 - local.tee $6 - local.get $7 - local.get $6 - i32.gt_s - select - else - local.get $3 - local.tee $6 - local.get $5 - local.tee $7 - local.get $6 - local.get $7 - i32.lt_s - select - end - local.set $10 - local.get $10 - local.get $9 - i32.sub - local.tee $7 - local.get $5 - local.get $8 - i32.sub - local.tee $6 - local.get $7 - local.get $6 - i32.lt_s - select - local.set $11 - local.get $4 - local.get $8 - i32.const 2 - i32.shl - i32.add - local.get $4 - local.get $9 - i32.const 2 - i32.shl - i32.add - local.get $11 - i32.const 2 - i32.shl - call $~lib/memory/memory.copy - local.get $0 - ) - (func $~lib/array/Array<~lib/string/String>#unshift (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - local.get $0 - i32.load offset=12 - i32.const 1 - i32.add - local.set $2 - local.get $0 - local.get $2 - i32.const 2 - call $~lib/array/ensureSize - local.get $0 - i32.load offset=4 - local.set $3 - local.get $3 - i32.const 4 - i32.add - local.get $3 - local.get $2 - i32.const 1 - i32.sub - i32.const 2 - i32.shl - call $~lib/memory/memory.copy - local.get $3 - local.get $1 - i32.store - i32.const 1 - drop - local.get $0 - local.get $1 - i32.const 1 - call $~lib/rt/itcms/__link - local.get $0 - local.get $2 - call $~lib/array/Array<~lib/string/String>#set:length_ - local.get $2 - ) - (func $~lib/array/Array<~lib/string/String>#flat (param $0 i32) (result i32) - i32.const 0 - i32.eqz - drop - i32.const 13584 - i32.const 80 - i32.const 470 - i32.const 7 - call $~lib/builtins/abort - unreachable - ) - (func $~lib/array/Array<~lib/string/String>#__visit (param $0 i32) (param $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - i32.const 1 - drop - local.get $0 - i32.load offset=4 - local.set $2 - local.get $2 - local.get $0 - i32.load offset=12 - i32.const 2 - i32.shl - i32.add - local.set $3 - loop $while-continue|0 - local.get $2 - local.get $3 - i32.lt_u - local.set $4 - local.get $4 - if - local.get $2 - i32.load - local.set $5 - local.get $5 - if - local.get $5 - local.get $1 - call $~lib/rt/itcms/__visit - end - local.get $2 - i32.const 4 - i32.add - local.set $2 - br $while-continue|0 - end - end - local.get $0 - i32.load - local.get $1 - call $~lib/rt/itcms/__visit - ) - (func $std/array/ArrayU32#constructor@varargs (param $0 i32) (param $1 i32) (result i32) - block $1of1 - block $0of1 - block $outOfRange - global.get $~argumentsLength - br_table $0of1 $1of1 $outOfRange - end - unreachable - end - i32.const 0 - local.set $1 - end - local.get $0 - local.get $1 - call $std/array/ArrayU32#constructor - ) - (func $~lib/array/Array#fill@varargs (param $0 i32) (param $1 i32) (param $2 i32) (param $3 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 0 - local.set $2 - end - global.get $~lib/builtins/i32.MAX_VALUE - local.set $3 - end - local.get $0 - local.get $1 - local.get $2 - local.get $3 - call $~lib/array/Array#fill - ) - (func $~lib/array/Array#includes@varargs (param $0 i32) (param $1 i32) (param $2 i32) (result 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 0 - local.set $2 - end - local.get $0 - local.get $1 - local.get $2 - call $~lib/array/Array#includes - ) - (func $~lib/array/Array#indexOf@varargs (param $0 i32) (param $1 i32) (param $2 i32) (result 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 0 - local.set $2 - end - local.get $0 - local.get $1 - local.get $2 - call $~lib/array/Array#indexOf - ) - (func $~lib/array/Array#lastIndexOf@varargs (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - block $1of1 - block $0of1 - block $outOfRange - global.get $~argumentsLength - i32.const 1 - i32.sub - br_table $0of1 $1of1 $outOfRange - end - unreachable - end - local.get $0 - i32.load offset=12 - local.set $2 - end - local.get $0 - local.get $1 - local.get $2 - call $~lib/array/Array#lastIndexOf - ) - (func $~lib/array/Array#copyWithin@varargs (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) - block $1of1 - block $0of1 - block $outOfRange - global.get $~argumentsLength - i32.const 2 - i32.sub - br_table $0of1 $1of1 $outOfRange - end - unreachable - end - global.get $~lib/builtins/i32.MAX_VALUE - local.set $3 - end - local.get $0 - local.get $1 - local.get $2 - local.get $3 - call $~lib/array/Array#copyWithin - ) - (func $~lib/array/Array#slice@varargs (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - 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 - global.get $~lib/builtins/i32.MAX_VALUE - local.set $2 - end - local.get $0 - local.get $1 - local.get $2 - call $~lib/array/Array#slice - ) - (func $~lib/array/Array#splice@varargs (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - 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/builtins/i32.MAX_VALUE - local.set $2 - end - local.get $0 - local.get $1 - local.get $2 - call $~lib/array/Array#splice - ) - (func $std/array/ArrayU8#constructor@varargs (param $0 i32) (param $1 i32) (result i32) - block $1of1 - block $0of1 - block $outOfRange - global.get $~argumentsLength - br_table $0of1 $1of1 $outOfRange - end - unreachable - end - i32.const 0 - local.set $1 - end - local.get $0 - local.get $1 - call $std/array/ArrayU8#constructor - ) - (func $~lib/array/Array#fill@varargs (param $0 i32) (param $1 i32) (param $2 i32) (param $3 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 0 - local.set $2 - end - global.get $~lib/builtins/i32.MAX_VALUE - local.set $3 - end - local.get $0 - local.get $1 - local.get $2 - local.get $3 - call $~lib/array/Array#fill - ) - (func $~lib/array/Array#includes@varargs (param $0 i32) (param $1 i32) (param $2 i32) (result 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 0 - local.set $2 - end - local.get $0 - local.get $1 - local.get $2 - call $~lib/array/Array#includes - ) - (func $~lib/array/Array#indexOf@varargs (param $0 i32) (param $1 i32) (param $2 i32) (result 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 0 - local.set $2 - end - local.get $0 - local.get $1 - local.get $2 - call $~lib/array/Array#indexOf - ) - (func $~lib/array/Array#lastIndexOf@varargs (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - block $1of1 - block $0of1 - block $outOfRange - global.get $~argumentsLength - i32.const 1 - i32.sub - br_table $0of1 $1of1 $outOfRange - end - unreachable - end - local.get $0 - i32.load offset=12 - local.set $2 - end - local.get $0 - local.get $1 - local.get $2 - call $~lib/array/Array#lastIndexOf - ) - (func $~lib/array/Array#copyWithin@varargs (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) - block $1of1 - block $0of1 - block $outOfRange - global.get $~argumentsLength - i32.const 2 - i32.sub - br_table $0of1 $1of1 $outOfRange - end - unreachable - end - global.get $~lib/builtins/i32.MAX_VALUE - local.set $3 - end - local.get $0 - local.get $1 - local.get $2 - local.get $3 - call $~lib/array/Array#copyWithin - ) - (func $~lib/array/Array#slice@varargs (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - 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 - global.get $~lib/builtins/i32.MAX_VALUE - local.set $2 - end - local.get $0 - local.get $1 - local.get $2 - call $~lib/array/Array#slice - ) - (func $~lib/array/Array#splice@varargs (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - 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/builtins/i32.MAX_VALUE - local.set $2 - end - local.get $0 - local.get $1 - local.get $2 - call $~lib/array/Array#splice - ) - (func $~lib/util/sort/COMPARATOR~anonymous|0 (param $0 i32) (param $1 i32) (result i32) - local.get $0 - i32.const 255 - i32.and - local.get $1 - i32.const 255 - i32.and - i32.gt_u - local.get $0 - i32.const 255 - i32.and - local.get $1 - i32.const 255 - i32.and - i32.lt_u - i32.sub - ) - (func $std/array/ArrayStr#constructor@varargs (param $0 i32) (param $1 i32) (result i32) - block $1of1 - block $0of1 - block $outOfRange - global.get $~argumentsLength - br_table $0of1 $1of1 $outOfRange - end - unreachable - end - i32.const 0 - local.set $1 - end - local.get $0 - local.get $1 - call $std/array/ArrayStr#constructor - ) - (func $~lib/array/Array<~lib/string/String>#fill@varargs (param $0 i32) (param $1 i32) (param $2 i32) (param $3 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 0 - local.set $2 - end - global.get $~lib/builtins/i32.MAX_VALUE - local.set $3 - end - local.get $0 - local.get $1 - local.get $2 - local.get $3 - call $~lib/array/Array<~lib/string/String>#fill - ) - (func $~lib/array/Array<~lib/string/String>#includes@varargs (param $0 i32) (param $1 i32) (param $2 i32) (result 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 0 - local.set $2 - end - local.get $0 - local.get $1 - local.get $2 - call $~lib/array/Array<~lib/string/String>#includes - ) - (func $~lib/array/Array<~lib/string/String>#indexOf@varargs (param $0 i32) (param $1 i32) (param $2 i32) (result 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 0 - local.set $2 - end - local.get $0 - local.get $1 - local.get $2 - call $~lib/array/Array<~lib/string/String>#indexOf - ) - (func $~lib/array/Array<~lib/string/String>#lastIndexOf@varargs (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - block $1of1 - block $0of1 - block $outOfRange - global.get $~argumentsLength - i32.const 1 - i32.sub - br_table $0of1 $1of1 $outOfRange - end - unreachable - end - local.get $0 - i32.load offset=12 - local.set $2 - end - local.get $0 - local.get $1 - local.get $2 - call $~lib/array/Array<~lib/string/String>#lastIndexOf - ) - (func $~lib/array/Array<~lib/string/String>#copyWithin@varargs (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) - block $1of1 - block $0of1 - block $outOfRange - global.get $~argumentsLength - i32.const 2 - i32.sub - br_table $0of1 $1of1 $outOfRange - end - unreachable - end - global.get $~lib/builtins/i32.MAX_VALUE - local.set $3 - end - local.get $0 - local.get $1 - local.get $2 - local.get $3 - call $~lib/array/Array<~lib/string/String>#copyWithin - ) - (func $~lib/array/Array<~lib/string/String>#slice@varargs (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - 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 - global.get $~lib/builtins/i32.MAX_VALUE - local.set $2 - end - local.get $0 - local.get $1 - local.get $2 - call $~lib/array/Array<~lib/string/String>#slice - ) - (func $~lib/array/Array<~lib/string/String>#splice@varargs (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - 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/builtins/i32.MAX_VALUE - local.set $2 - end - local.get $0 - local.get $1 - local.get $2 - call $~lib/array/Array<~lib/string/String>#splice - ) - (func $~lib/rt/__visit_globals (param $0 i32) - (local $1 i32) - global.get $std/array/arr - local.tee $1 - if - local.get $1 - local.get $0 - call $~lib/rt/itcms/__visit - end - global.get $std/array/charset - local.tee $1 - if - local.get $1 - local.get $0 - call $~lib/rt/itcms/__visit - end - i32.const 320 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 32 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 13584 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 1152 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 4672 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 128 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 8784 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 9840 - 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 - i32.load - local.tee $2 - if - local.get $2 - local.get $1 - call $~lib/rt/itcms/__visit - end - ) - (func $~lib/array/Array#__visit (param $0 i32) (param $1 i32) - i32.const 0 - drop - local.get $0 - i32.load - local.get $1 - call $~lib/rt/itcms/__visit - ) - (func $~lib/array/Array~visit (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - call $~lib/array/Array#__visit - ) - (func $~lib/typedarray/Uint8Array~visit (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - call $~lib/arraybuffer/ArrayBufferView~visit - ) - (func $~lib/array/Array~visit (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - call $~lib/array/Array#__visit - ) - (func $~lib/array/Array~visit (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - call $~lib/array/Array#__visit - ) - (func $~lib/array/Array#__visit (param $0 i32) (param $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - i32.const 1 - drop - local.get $0 - i32.load offset=4 - local.set $2 - local.get $2 - local.get $0 - i32.load offset=12 - i32.const 2 - i32.shl - i32.add - local.set $3 - loop $while-continue|0 - local.get $2 - local.get $3 - i32.lt_u - local.set $4 - local.get $4 - if - local.get $2 - i32.load - local.set $5 - local.get $5 - if - local.get $5 - local.get $1 - call $~lib/rt/itcms/__visit - end - local.get $2 - i32.const 4 - i32.add - local.set $2 - br $while-continue|0 - end - end - local.get $0 - i32.load - local.get $1 - call $~lib/rt/itcms/__visit - ) - (func $~lib/array/Array~visit (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - call $~lib/array/Array#__visit - ) - (func $~lib/array/Array#__visit (param $0 i32) (param $1 i32) - i32.const 0 - drop - local.get $0 - i32.load - local.get $1 - call $~lib/rt/itcms/__visit - ) - (func $~lib/array/Array~visit (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - call $~lib/array/Array#__visit - ) - (func $~lib/array/Array#__visit (param $0 i32) (param $1 i32) - i32.const 0 - drop - local.get $0 - i32.load - local.get $1 - call $~lib/rt/itcms/__visit - ) - (func $~lib/array/Array~visit (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - call $~lib/array/Array#__visit - ) - (func $~lib/array/Array#__visit (param $0 i32) (param $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - i32.const 1 - drop - local.get $0 - i32.load offset=4 - local.set $2 - local.get $2 - local.get $0 - i32.load offset=12 - i32.const 2 - i32.shl - i32.add - local.set $3 - loop $while-continue|0 - local.get $2 - local.get $3 - i32.lt_u - local.set $4 - local.get $4 - if - local.get $2 - i32.load - local.set $5 - local.get $5 - if - local.get $5 - local.get $1 - call $~lib/rt/itcms/__visit - end - local.get $2 - i32.const 4 - i32.add - local.set $2 - br $while-continue|0 - end - end - local.get $0 - i32.load - local.get $1 - call $~lib/rt/itcms/__visit - ) - (func $~lib/array/Array~visit (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - call $~lib/array/Array#__visit - ) - (func $~lib/function/Function<%28i32%2Ci32%2C~lib/array/Array%29=>bool>#__visit (param $0 i32) (param $1 i32) - local.get $0 - i32.load offset=4 - local.get $1 - call $~lib/rt/itcms/__visit - ) - (func $~lib/function/Function<%28i32%2Ci32%2C~lib/array/Array%29=>bool>~visit (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - call $~lib/function/Function<%28i32%2Ci32%2C~lib/array/Array%29=>bool>#__visit - ) - (func $~lib/function/Function<%28i32%2Ci32%2C~lib/array/Array%29=>void>#__visit (param $0 i32) (param $1 i32) - local.get $0 - i32.load offset=4 - local.get $1 - call $~lib/rt/itcms/__visit - ) - (func $~lib/function/Function<%28i32%2Ci32%2C~lib/array/Array%29=>void>~visit (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - call $~lib/function/Function<%28i32%2Ci32%2C~lib/array/Array%29=>void>#__visit - ) - (func $~lib/function/Function<%28i32%2Ci32%2C~lib/array/Array%29=>f32>#__visit (param $0 i32) (param $1 i32) - local.get $0 - i32.load offset=4 - local.get $1 - call $~lib/rt/itcms/__visit - ) - (func $~lib/function/Function<%28i32%2Ci32%2C~lib/array/Array%29=>f32>~visit (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - call $~lib/function/Function<%28i32%2Ci32%2C~lib/array/Array%29=>f32>#__visit - ) - (func $~lib/function/Function<%28i32%2Ci32%2C~lib/array/Array%29=>i32>#__visit (param $0 i32) (param $1 i32) - local.get $0 - i32.load offset=4 - local.get $1 - call $~lib/rt/itcms/__visit - ) - (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/function/Function<%28i32%2Ci32%2C~lib/array/Array%29=>i32>#__visit - ) - (func $~lib/function/Function<%28i32%2Ci32%2Ci32%2C~lib/array/Array%29=>i32>#__visit (param $0 i32) (param $1 i32) - local.get $0 - i32.load offset=4 - local.get $1 - call $~lib/rt/itcms/__visit - ) - (func $~lib/function/Function<%28i32%2Ci32%2Ci32%2C~lib/array/Array%29=>i32>~visit (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - call $~lib/function/Function<%28i32%2Ci32%2Ci32%2C~lib/array/Array%29=>i32>#__visit - ) - (func $~lib/function/Function<%28bool%2Ci32%2Ci32%2C~lib/array/Array%29=>bool>#__visit (param $0 i32) (param $1 i32) - local.get $0 - i32.load offset=4 - local.get $1 - call $~lib/rt/itcms/__visit - ) - (func $~lib/function/Function<%28bool%2Ci32%2Ci32%2C~lib/array/Array%29=>bool>~visit (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - call $~lib/function/Function<%28bool%2Ci32%2Ci32%2C~lib/array/Array%29=>bool>#__visit - ) - (func $~lib/function/Function<%28f32%2Cf32%29=>i32>#__visit (param $0 i32) (param $1 i32) - local.get $0 - i32.load offset=4 - local.get $1 - call $~lib/rt/itcms/__visit - ) - (func $~lib/function/Function<%28f32%2Cf32%29=>i32>~visit (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - call $~lib/function/Function<%28f32%2Cf32%29=>i32>#__visit - ) - (func $~lib/function/Function<%28f64%2Cf64%29=>i32>#__visit (param $0 i32) (param $1 i32) - local.get $0 - i32.load offset=4 - local.get $1 - call $~lib/rt/itcms/__visit - ) - (func $~lib/function/Function<%28f64%2Cf64%29=>i32>~visit (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - call $~lib/function/Function<%28f64%2Cf64%29=>i32>#__visit - ) - (func $~lib/function/Function<%28i32%2Ci32%29=>i32>#__visit (param $0 i32) (param $1 i32) - local.get $0 - i32.load offset=4 - local.get $1 - call $~lib/rt/itcms/__visit - ) - (func $~lib/function/Function<%28i32%2Ci32%29=>i32>~visit (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - call $~lib/function/Function<%28i32%2Ci32%29=>i32>#__visit - ) - (func $~lib/function/Function<%28u32%2Cu32%29=>i32>#__visit (param $0 i32) (param $1 i32) - local.get $0 - i32.load offset=4 - local.get $1 - call $~lib/rt/itcms/__visit - ) - (func $~lib/function/Function<%28u32%2Cu32%29=>i32>~visit (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - call $~lib/function/Function<%28u32%2Cu32%29=>i32>#__visit - ) - (func $~lib/array/Array<~lib/array/Array>#__visit (param $0 i32) (param $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - i32.const 1 - drop - local.get $0 - i32.load offset=4 - local.set $2 - local.get $2 - local.get $0 - i32.load offset=12 - i32.const 2 - i32.shl - i32.add - local.set $3 - loop $while-continue|0 - local.get $2 - local.get $3 - i32.lt_u - local.set $4 - local.get $4 - if - local.get $2 - i32.load - local.set $5 - local.get $5 - if - local.get $5 - local.get $1 - call $~lib/rt/itcms/__visit - end - local.get $2 - i32.const 4 - i32.add - local.set $2 - br $while-continue|0 - end - end - local.get $0 - i32.load - local.get $1 - call $~lib/rt/itcms/__visit - ) - (func $~lib/array/Array<~lib/array/Array>~visit (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - call $~lib/array/Array<~lib/array/Array>#__visit - ) - (func $~lib/function/Function<%28~lib/array/Array%2C~lib/array/Array%29=>i32>#__visit (param $0 i32) (param $1 i32) - local.get $0 - i32.load offset=4 - local.get $1 - call $~lib/rt/itcms/__visit - ) - (func $~lib/function/Function<%28~lib/array/Array%2C~lib/array/Array%29=>i32>~visit (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - call $~lib/function/Function<%28~lib/array/Array%2C~lib/array/Array%29=>i32>#__visit - ) - (func $~lib/array/Array>#__visit (param $0 i32) (param $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - i32.const 1 - drop - local.get $0 - i32.load offset=4 - local.set $2 - local.get $2 - local.get $0 - i32.load offset=12 - i32.const 2 - i32.shl - i32.add - local.set $3 - loop $while-continue|0 - local.get $2 - local.get $3 - i32.lt_u - local.set $4 - local.get $4 - if - local.get $2 - i32.load - local.set $5 - local.get $5 - if - local.get $5 - local.get $1 - call $~lib/rt/itcms/__visit - end - local.get $2 - i32.const 4 - i32.add - local.set $2 - br $while-continue|0 - end - end - local.get $0 - i32.load - local.get $1 - call $~lib/rt/itcms/__visit - ) - (func $~lib/array/Array>~visit (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - call $~lib/array/Array>#__visit - ) - (func $~lib/function/Function<%28std/array/Proxy%2Cstd/array/Proxy%29=>i32>#__visit (param $0 i32) (param $1 i32) - local.get $0 - i32.load offset=4 - local.get $1 - call $~lib/rt/itcms/__visit - ) - (func $~lib/function/Function<%28std/array/Proxy%2Cstd/array/Proxy%29=>i32>~visit (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - call $~lib/function/Function<%28std/array/Proxy%2Cstd/array/Proxy%29=>i32>#__visit - ) - (func $~lib/array/Array<~lib/string/String|null>#__visit (param $0 i32) (param $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - i32.const 1 - drop - local.get $0 - i32.load offset=4 - local.set $2 - local.get $2 - local.get $0 - i32.load offset=12 - i32.const 2 - i32.shl - i32.add - local.set $3 - loop $while-continue|0 - local.get $2 - local.get $3 - i32.lt_u - local.set $4 - local.get $4 - if - local.get $2 - i32.load - local.set $5 - local.get $5 - if - local.get $5 - local.get $1 - call $~lib/rt/itcms/__visit - end - local.get $2 - i32.const 4 - i32.add - local.set $2 - br $while-continue|0 - end - end - local.get $0 - i32.load - local.get $1 - call $~lib/rt/itcms/__visit - ) - (func $~lib/array/Array<~lib/string/String|null>~visit (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - call $~lib/array/Array<~lib/string/String|null>#__visit - ) - (func $~lib/function/Function<%28~lib/string/String|null%2C~lib/string/String|null%29=>i32>#__visit (param $0 i32) (param $1 i32) - local.get $0 - i32.load offset=4 - local.get $1 - call $~lib/rt/itcms/__visit - ) - (func $~lib/function/Function<%28~lib/string/String|null%2C~lib/string/String|null%29=>i32>~visit (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - call $~lib/function/Function<%28~lib/string/String|null%2C~lib/string/String|null%29=>i32>#__visit - ) - (func $~lib/array/Array<~lib/string/String>~visit (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - call $~lib/array/Array<~lib/string/String>#__visit - ) - (func $~lib/function/Function<%28~lib/string/String%2C~lib/string/String%29=>i32>#__visit (param $0 i32) (param $1 i32) - local.get $0 - i32.load offset=4 - local.get $1 - call $~lib/rt/itcms/__visit - ) - (func $~lib/function/Function<%28~lib/string/String%2C~lib/string/String%29=>i32>~visit (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - call $~lib/function/Function<%28~lib/string/String%2C~lib/string/String%29=>i32>#__visit - ) - (func $~lib/array/Array#__visit (param $0 i32) (param $1 i32) - i32.const 0 - drop - local.get $0 - i32.load - local.get $1 - call $~lib/rt/itcms/__visit - ) - (func $~lib/array/Array~visit (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - call $~lib/array/Array#__visit - ) - (func $~lib/array/Array#__visit (param $0 i32) (param $1 i32) - i32.const 0 - drop - local.get $0 - i32.load - local.get $1 - call $~lib/rt/itcms/__visit - ) - (func $~lib/array/Array~visit (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - call $~lib/array/Array#__visit - ) - (func $~lib/array/Array#__visit (param $0 i32) (param $1 i32) - i32.const 0 - drop - local.get $0 - i32.load - local.get $1 - call $~lib/rt/itcms/__visit - ) - (func $~lib/array/Array~visit (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - call $~lib/array/Array#__visit - ) - (func $~lib/array/Array#__visit (param $0 i32) (param $1 i32) - i32.const 0 - drop - local.get $0 - i32.load - local.get $1 - call $~lib/rt/itcms/__visit - ) - (func $~lib/array/Array~visit (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - call $~lib/array/Array#__visit - ) - (func $~lib/array/Array#__visit (param $0 i32) (param $1 i32) - i32.const 0 - drop - local.get $0 - i32.load - local.get $1 - call $~lib/rt/itcms/__visit - ) - (func $~lib/array/Array~visit (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - call $~lib/array/Array#__visit - ) - (func $~lib/array/Array<~lib/array/Array>#__visit (param $0 i32) (param $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - i32.const 1 - drop - local.get $0 - i32.load offset=4 - local.set $2 - local.get $2 - local.get $0 - i32.load offset=12 - i32.const 2 - i32.shl - i32.add - local.set $3 - loop $while-continue|0 - local.get $2 - local.get $3 - i32.lt_u - local.set $4 - local.get $4 - if - local.get $2 - i32.load - local.set $5 - local.get $5 - if - local.get $5 - local.get $1 - call $~lib/rt/itcms/__visit - end - local.get $2 - i32.const 4 - i32.add - local.set $2 - br $while-continue|0 - end - end - local.get $0 - i32.load - local.get $1 - call $~lib/rt/itcms/__visit - ) - (func $~lib/array/Array<~lib/array/Array>~visit (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - call $~lib/array/Array<~lib/array/Array>#__visit - ) - (func $~lib/array/Array<~lib/array/Array>#__visit (param $0 i32) (param $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - i32.const 1 - drop - local.get $0 - i32.load offset=4 - local.set $2 - local.get $2 - local.get $0 - i32.load offset=12 - i32.const 2 - i32.shl - i32.add - local.set $3 - loop $while-continue|0 - local.get $2 - local.get $3 - i32.lt_u - local.set $4 - local.get $4 - if - local.get $2 - i32.load - local.set $5 - local.get $5 - if - local.get $5 - local.get $1 - call $~lib/rt/itcms/__visit - end - local.get $2 - i32.const 4 - i32.add - local.set $2 - br $while-continue|0 - end - end - local.get $0 - i32.load - local.get $1 - call $~lib/rt/itcms/__visit - ) - (func $~lib/array/Array<~lib/array/Array>~visit (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - call $~lib/array/Array<~lib/array/Array>#__visit - ) - (func $~lib/array/Array<~lib/array/Array<~lib/array/Array>>#__visit (param $0 i32) (param $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - i32.const 1 - drop - local.get $0 - i32.load offset=4 - local.set $2 - local.get $2 - local.get $0 - i32.load offset=12 - i32.const 2 - i32.shl - i32.add - local.set $3 - loop $while-continue|0 - local.get $2 - local.get $3 - i32.lt_u - local.set $4 - local.get $4 - if - local.get $2 - i32.load - local.set $5 - local.get $5 - if - local.get $5 - local.get $1 - call $~lib/rt/itcms/__visit - end - local.get $2 - i32.const 4 - i32.add - local.set $2 - br $while-continue|0 - end - end - local.get $0 - i32.load - local.get $1 - call $~lib/rt/itcms/__visit - ) - (func $~lib/array/Array<~lib/array/Array<~lib/array/Array>>~visit (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - call $~lib/array/Array<~lib/array/Array<~lib/array/Array>>#__visit - ) - (func $~lib/array/Array<~lib/array/Array<~lib/string/String|null>>#__visit (param $0 i32) (param $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - i32.const 1 - drop - local.get $0 - i32.load offset=4 - local.set $2 - local.get $2 - local.get $0 - i32.load offset=12 - i32.const 2 - i32.shl - i32.add - local.set $3 - loop $while-continue|0 - local.get $2 - local.get $3 - i32.lt_u - local.set $4 - local.get $4 - if - local.get $2 - i32.load - local.set $5 - local.get $5 - if - local.get $5 - local.get $1 - call $~lib/rt/itcms/__visit - end - local.get $2 - i32.const 4 - i32.add - local.set $2 - br $while-continue|0 - end - end - local.get $0 - i32.load - local.get $1 - call $~lib/rt/itcms/__visit - ) - (func $~lib/array/Array<~lib/array/Array<~lib/string/String|null>>~visit (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - call $~lib/array/Array<~lib/array/Array<~lib/string/String|null>>#__visit - ) - (func $std/array/ArrayU32~visit (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - call $~lib/array/Array~visit - ) - (func $std/array/ArrayU8~visit (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - call $~lib/array/Array~visit - ) - (func $std/array/ArrayStr~visit (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - call $~lib/array/Array<~lib/string/String>~visit - ) - (func $~lib/function/Function<%28u8%2Cu8%29=>i32>#__visit (param $0 i32) (param $1 i32) - local.get $0 - i32.load offset=4 - local.get $1 - call $~lib/rt/itcms/__visit - ) - (func $~lib/function/Function<%28u8%2Cu8%29=>i32>~visit (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - call $~lib/function/Function<%28u8%2Cu8%29=>i32>#__visit - ) - (func $~lib/rt/__visit_members (param $0 i32) (param $1 i32) - block $invalid - block $~lib/function/Function<%28u8%2Cu8%29=>i32> - block $std/array/ArrayStr - block $std/array/ArrayU8 - block $std/array/ArrayU32 - block $~lib/array/Array<~lib/array/Array<~lib/string/String|null>> - block $~lib/array/Array<~lib/array/Array<~lib/array/Array>> - block $~lib/array/Array<~lib/array/Array> - block $~lib/array/Array<~lib/array/Array> - block $~lib/array/Array - block $~lib/array/Array - block $~lib/array/Array - block $~lib/array/Array - block $~lib/array/Array - block $~lib/function/Function<%28~lib/string/String%2C~lib/string/String%29=>i32> - block $~lib/array/Array<~lib/string/String> - block $~lib/function/Function<%28~lib/string/String|null%2C~lib/string/String|null%29=>i32> - block $~lib/array/Array<~lib/string/String|null> - block $~lib/function/Function<%28std/array/Proxy%2Cstd/array/Proxy%29=>i32> - block $~lib/array/Array> - block $std/array/Proxy - block $~lib/function/Function<%28~lib/array/Array%2C~lib/array/Array%29=>i32> - block $~lib/array/Array<~lib/array/Array> - block $~lib/function/Function<%28u32%2Cu32%29=>i32> - block $~lib/function/Function<%28i32%2Ci32%29=>i32> - block $~lib/function/Function<%28f64%2Cf64%29=>i32> - block $~lib/function/Function<%28f32%2Cf32%29=>i32> - block $~lib/function/Function<%28bool%2Ci32%2Ci32%2C~lib/array/Array%29=>bool> - block $~lib/function/Function<%28i32%2Ci32%2Ci32%2C~lib/array/Array%29=>i32> - block $~lib/function/Function<%28i32%2Ci32%2C~lib/array/Array%29=>i32> - block $~lib/function/Function<%28i32%2Ci32%2C~lib/array/Array%29=>f32> - block $~lib/function/Function<%28i32%2Ci32%2C~lib/array/Array%29=>void> - block $~lib/function/Function<%28i32%2Ci32%2C~lib/array/Array%29=>bool> - block $~lib/array/Array - block $~lib/array/Array - block $~lib/array/Array - block $~lib/array/Array - block $~lib/array/Array - block $~lib/array/Array - block $~lib/typedarray/Uint8Array - block $std/array/Ref - block $~lib/array/Array - block $~lib/arraybuffer/ArrayBufferView - block $~lib/string/String - block $~lib/arraybuffer/ArrayBuffer - local.get $0 - i32.const 8 - i32.sub - i32.load - br_table $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $~lib/array/Array $std/array/Ref $~lib/typedarray/Uint8Array $~lib/array/Array $~lib/array/Array $~lib/array/Array $~lib/array/Array $~lib/array/Array $~lib/array/Array $~lib/function/Function<%28i32%2Ci32%2C~lib/array/Array%29=>bool> $~lib/function/Function<%28i32%2Ci32%2C~lib/array/Array%29=>void> $~lib/function/Function<%28i32%2Ci32%2C~lib/array/Array%29=>f32> $~lib/function/Function<%28i32%2Ci32%2C~lib/array/Array%29=>i32> $~lib/function/Function<%28i32%2Ci32%2Ci32%2C~lib/array/Array%29=>i32> $~lib/function/Function<%28bool%2Ci32%2Ci32%2C~lib/array/Array%29=>bool> $~lib/function/Function<%28f32%2Cf32%29=>i32> $~lib/function/Function<%28f64%2Cf64%29=>i32> $~lib/function/Function<%28i32%2Ci32%29=>i32> $~lib/function/Function<%28u32%2Cu32%29=>i32> $~lib/array/Array<~lib/array/Array> $~lib/function/Function<%28~lib/array/Array%2C~lib/array/Array%29=>i32> $std/array/Proxy $~lib/array/Array> $~lib/function/Function<%28std/array/Proxy%2Cstd/array/Proxy%29=>i32> $~lib/array/Array<~lib/string/String|null> $~lib/function/Function<%28~lib/string/String|null%2C~lib/string/String|null%29=>i32> $~lib/array/Array<~lib/string/String> $~lib/function/Function<%28~lib/string/String%2C~lib/string/String%29=>i32> $~lib/array/Array $~lib/array/Array $~lib/array/Array $~lib/array/Array $~lib/array/Array $~lib/array/Array<~lib/array/Array> $~lib/array/Array<~lib/array/Array> $~lib/array/Array<~lib/array/Array<~lib/array/Array>> $~lib/array/Array<~lib/array/Array<~lib/string/String|null>> $std/array/ArrayU32 $std/array/ArrayU8 $std/array/ArrayStr $~lib/function/Function<%28u8%2Cu8%29=>i32> $invalid - 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 - return - end - local.get $0 - local.get $1 - call $~lib/typedarray/Uint8Array~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/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/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=>bool>~visit - return - end - local.get $0 - local.get $1 - call $~lib/function/Function<%28i32%2Ci32%2C~lib/array/Array%29=>void>~visit - return - end - local.get $0 - local.get $1 - call $~lib/function/Function<%28i32%2Ci32%2C~lib/array/Array%29=>f32>~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 $~lib/function/Function<%28i32%2Ci32%2Ci32%2C~lib/array/Array%29=>i32>~visit - return - end - local.get $0 - local.get $1 - call $~lib/function/Function<%28bool%2Ci32%2Ci32%2C~lib/array/Array%29=>bool>~visit - return - end - local.get $0 - local.get $1 - call $~lib/function/Function<%28f32%2Cf32%29=>i32>~visit - return - end - local.get $0 - local.get $1 - call $~lib/function/Function<%28f64%2Cf64%29=>i32>~visit - return - end - local.get $0 - local.get $1 - call $~lib/function/Function<%28i32%2Ci32%29=>i32>~visit - return - end - local.get $0 - local.get $1 - call $~lib/function/Function<%28u32%2Cu32%29=>i32>~visit - return - end - local.get $0 - local.get $1 - call $~lib/array/Array<~lib/array/Array>~visit - return - end - local.get $0 - local.get $1 - call $~lib/function/Function<%28~lib/array/Array%2C~lib/array/Array%29=>i32>~visit - return - end - 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<%28std/array/Proxy%2Cstd/array/Proxy%29=>i32>~visit - return - end - local.get $0 - local.get $1 - call $~lib/array/Array<~lib/string/String|null>~visit - return - end - local.get $0 - local.get $1 - call $~lib/function/Function<%28~lib/string/String|null%2C~lib/string/String|null%29=>i32>~visit - return - end - local.get $0 - local.get $1 - call $~lib/array/Array<~lib/string/String>~visit - return - end - local.get $0 - local.get $1 - call $~lib/function/Function<%28~lib/string/String%2C~lib/string/String%29=>i32>~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/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/array/Array~visit - return - end - local.get $0 - local.get $1 - call $~lib/array/Array<~lib/array/Array>~visit - return - end - local.get $0 - local.get $1 - call $~lib/array/Array<~lib/array/Array>~visit - return - end - local.get $0 - local.get $1 - call $~lib/array/Array<~lib/array/Array<~lib/array/Array>>~visit - return - end - local.get $0 - local.get $1 - call $~lib/array/Array<~lib/array/Array<~lib/string/String|null>>~visit - return - end - local.get $0 - local.get $1 - call $std/array/ArrayU32~visit - return - end - local.get $0 - local.get $1 - call $std/array/ArrayU8~visit - return - end - local.get $0 - local.get $1 - call $std/array/ArrayStr~visit - return - end - local.get $0 - local.get $1 - call $~lib/function/Function<%28u8%2Cu8%29=>i32>~visit - return - end - unreachable - ) - (func $~setArgumentsLength (param $0 i32) - local.get $0 - global.set $~argumentsLength - ) - (func $~start - global.get $~started - if - return - end - i32.const 1 - global.set $~started - call $start:std/array - ) - (func $~stack_check - global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__data_end - i32.lt_s - if - i32.const 30464 - i32.const 30512 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - ) - (func $~lib/typedarray/Uint8Array#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 - call $~stack_check - 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 12 - i32.const 5 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - end - global.get $~lib/memory/__stack_pointer - local.get $0 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - local.get $1 - i32.const 0 - call $~lib/arraybuffer/ArrayBufferView#constructor - local.tee $0 - i32.store - local.get $0 - local.set $2 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $2 - ) - (func $std/array/isArraysEqual (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 - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - local.get $2 - i32.eqz - if - local.get $0 - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - local.get $5 - call $~lib/array/Array#get:length - local.set $2 - local.get $2 - local.get $1 - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - local.get $5 - call $~lib/array/Array#get:length - i32.ne - if - i32.const 0 - local.set $5 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $5 - return - end - local.get $0 - local.get $1 - i32.eq - if - i32.const 1 - local.set $5 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $5 - return - end - end - i32.const 0 - local.set $3 - loop $for-loop|0 - local.get $3 - local.get $2 - i32.lt_s - local.set $4 - local.get $4 - if - i32.const 0 - drop - local.get $0 - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - local.get $5 - local.get $3 - call $~lib/array/Array#__get - local.get $1 - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - local.get $5 - local.get $3 - call $~lib/array/Array#__get - i32.ne - if - i32.const 0 - local.set $5 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $5 - return - end - local.get $3 - i32.const 1 - i32.add - local.set $3 - br $for-loop|0 - end - end - i32.const 1 - local.set $5 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $5 - ) - (func $std/array/isArraysEqual (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 - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - local.get $2 - i32.eqz - if - local.get $0 - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - local.get $5 - call $~lib/array/Array#get:length - local.set $2 - local.get $2 - local.get $1 - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - local.get $5 - call $~lib/array/Array#get:length - i32.ne - if - i32.const 0 - local.set $5 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $5 - return - end - local.get $0 - local.get $1 - i32.eq - if - i32.const 1 - local.set $5 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $5 - return - end - end - i32.const 0 - local.set $3 - loop $for-loop|0 - local.get $3 - local.get $2 - i32.lt_s - local.set $4 - local.get $4 - if - i32.const 0 - drop - local.get $0 - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - local.get $5 - local.get $3 - call $~lib/array/Array#__get - local.get $1 - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - local.get $5 - local.get $3 - call $~lib/array/Array#__get - i32.ne - if - i32.const 0 - local.set $5 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $5 - return - end - local.get $3 - i32.const 1 - i32.add - local.set $3 - br $for-loop|0 - end - end - i32.const 1 - local.set $5 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $5 - ) - (func $std/array/internalCapacity (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 - call $~stack_check - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.load - 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 - call $~lib/arraybuffer/ArrayBuffer#get:byteLength - i32.const 2 - i32.shr_s - local.set $2 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $2 - ) - (func $std/array/isArraysEqual (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 - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - local.get $2 - i32.eqz - if - local.get $0 - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - local.get $5 - call $~lib/array/Array#get:length - local.set $2 - local.get $2 - local.get $1 - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - local.get $5 - call $~lib/array/Array#get:length - i32.ne - if - i32.const 0 - local.set $5 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $5 - return - end - local.get $0 - local.get $1 - i32.eq - if - i32.const 1 - local.set $5 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $5 - return - end - end - i32.const 0 - local.set $3 - loop $for-loop|0 - local.get $3 - local.get $2 - i32.lt_s - local.set $4 - local.get $4 - if - i32.const 0 - drop - local.get $0 - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - local.get $5 - local.get $3 - call $~lib/array/Array#__get - local.get $1 - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - local.get $5 - local.get $3 - call $~lib/array/Array#__get - i32.ne - if - i32.const 0 - local.set $5 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $5 - return - end - local.get $3 - i32.const 1 - i32.add - local.set $3 - br $for-loop|0 - end - end - i32.const 1 - local.set $5 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $5 - ) - (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 - 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 $0 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store - local.get $3 - local.get $1 - local.get $2 - call $~lib/array/Array#indexOf - i32.const 0 - i32.ge_s - 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 $~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 - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 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 320 - i32.const 80 - i32.const 108 - i32.const 22 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.get $1 - i32.const 1 - i32.add - i32.const 2 - call $~lib/array/ensureSize - local.get $0 - local.get $1 - i32.const 1 - i32.add - call $~lib/array/Array#set:length_ - end - local.get $0 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store - local.get $3 - local.get $1 - local.get $2 - call $~lib/array/Array#__uset - 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) - (local $5 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 - i32.const 0 - local.set $2 - local.get $0 - i32.load offset=12 - local.set $3 - loop $for-loop|0 - local.get $2 - local.get $3 - local.tee $4 - local.get $0 - i32.load offset=12 - local.tee $5 - local.get $4 - local.get $5 - i32.lt_s - select - i32.lt_s - local.set $4 - local.get $4 - if - local.get $0 - i32.load offset=4 - local.get $2 - i32.const 2 - i32.shl - i32.add - i32.load - local.get $2 - local.get $0 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - i32.const 3 - global.set $~argumentsLength - local.get $1 - i32.load - call_indirect (type $i32_i32_i32_=>_i32) - if - local.get $2 - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - return - end - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $for-loop|0 - end - end - i32.const -1 - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer + call $~lib/util/number/decimalCount32 + local.set $13 local.get $6 - ) - (func $start:std/array~anonymous|3 (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 - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - local.get $2 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store - local.get $3 - i32.const 100 - call $~lib/array/Array#push - drop - local.get $0 - i32.const 100 - i32.eq - local.set $3 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $3 - ) - (func $start:std/array~anonymous|5 (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 - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - local.get $2 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store - local.get $3 - call $~lib/array/Array#pop - drop - local.get $0 - i32.const 100 - i32.eq - local.set $3 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $3 - ) - (func $~lib/array/Array#every (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.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - i32.const 0 - local.set $2 - local.get $0 - i32.load offset=12 - local.set $3 - loop $for-loop|0 - local.get $2 - local.get $3 - local.tee $4 - local.get $0 - i32.load offset=12 - local.tee $5 - local.get $4 - local.get $5 - i32.lt_s - select - i32.lt_s - local.set $4 - local.get $4 + local.set $14 + loop $while-continue|0 + local.get $13 + i32.const 0 + i32.gt_s + local.set $15 + local.get $15 if - local.get $0 - i32.load offset=4 - local.get $2 - i32.const 2 - i32.shl - i32.add - i32.load - local.get $2 - local.get $0 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - i32.const 3 - global.set $~argumentsLength - local.get $1 - i32.load - call_indirect (type $i32_i32_i32_=>_i32) - i32.eqz - 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 $13 + local.set $17 + local.get $17 + i32.const 10 + i32.eq + br_if $case0|1 + local.get $17 + i32.const 9 + i32.eq + br_if $case1|1 + local.get $17 + i32.const 8 + i32.eq + br_if $case2|1 + local.get $17 + i32.const 7 + i32.eq + br_if $case3|1 + local.get $17 + i32.const 6 + i32.eq + br_if $case4|1 + local.get $17 + i32.const 5 + i32.eq + br_if $case5|1 + local.get $17 + i32.const 4 + i32.eq + br_if $case6|1 + local.get $17 + i32.const 3 + i32.eq + br_if $case7|1 + local.get $17 + i32.const 2 + i32.eq + br_if $case8|1 + local.get $17 + i32.const 1 + i32.eq + br_if $case9|1 + br $case10|1 + end + local.get $11 + i32.const 1000000000 + i32.div_u + local.set $16 + local.get $11 + i32.const 1000000000 + i32.rem_u + local.set $11 + br $break|1 + end + local.get $11 + i32.const 100000000 + i32.div_u + local.set $16 + local.get $11 + i32.const 100000000 + i32.rem_u + local.set $11 + br $break|1 + end + local.get $11 + i32.const 10000000 + i32.div_u + local.set $16 + local.get $11 + i32.const 10000000 + i32.rem_u + local.set $11 + br $break|1 + end + local.get $11 + i32.const 1000000 + i32.div_u + local.set $16 + local.get $11 + i32.const 1000000 + i32.rem_u + local.set $11 + br $break|1 + end + local.get $11 + i32.const 100000 + i32.div_u + local.set $16 + local.get $11 + i32.const 100000 + i32.rem_u + local.set $11 + br $break|1 + end + local.get $11 + i32.const 10000 + i32.div_u + local.set $16 + local.get $11 + i32.const 10000 + i32.rem_u + local.set $11 + br $break|1 + end + local.get $11 + i32.const 1000 + i32.div_u + local.set $16 + local.get $11 + i32.const 1000 + i32.rem_u + local.set $11 + br $break|1 + end + local.get $11 + i32.const 100 + i32.div_u + local.set $16 + local.get $11 + i32.const 100 + i32.rem_u + local.set $11 + br $break|1 + end + local.get $11 + i32.const 10 + i32.div_u + local.set $16 + local.get $11 + i32.const 10 + i32.rem_u + local.set $11 + br $break|1 + end + local.get $11 + local.set $16 + i32.const 0 + local.set $11 + br $break|1 + end i32.const 0 - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 4 + local.set $16 + br $break|1 + end + local.get $16 + local.get $14 + i32.or + if + local.get $0 + local.get $14 + local.tee $17 + i32.const 1 i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - return + local.set $14 + local.get $17 + i32.const 1 + i32.shl + i32.add + i32.const 48 + local.get $16 + i32.const 65535 + i32.and + i32.add + i32.store16 end - local.get $2 + local.get $13 i32.const 1 - i32.add - local.set $2 - br $for-loop|0 - end - end - i32.const 1 - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - ) - (func $start:std/array~anonymous|8 (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 - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - local.get $2 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store - local.get $3 - i32.const 100 - call $~lib/array/Array#push - drop - local.get $0 - i32.const 10 - i32.lt_s - local.set $3 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $3 - ) - (func $start:std/array~anonymous|10 (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 - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - local.get $2 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store - local.get $3 - call $~lib/array/Array#pop - drop - local.get $0 - i32.const 3 - i32.lt_s - local.set $3 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $3 - ) - (func $~lib/array/Array#some (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.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - i32.const 0 - local.set $2 - local.get $0 - i32.load offset=12 - local.set $3 - loop $for-loop|0 - local.get $2 - local.get $3 - local.tee $4 - local.get $0 - i32.load offset=12 - local.tee $5 - local.get $4 - local.get $5 - i32.lt_s - select - i32.lt_s - local.set $4 - local.get $4 - if - local.get $0 - i32.load offset=4 - local.get $2 - i32.const 2 - i32.shl - i32.add - i32.load - local.get $2 - local.get $0 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - i32.const 3 - global.set $~argumentsLength - local.get $1 - i32.load - call_indirect (type $i32_i32_i32_=>_i32) + i32.sub + local.set $13 + local.get $11 + i64.extend_i32_u + local.get $7 + i64.extend_i32_s + i64.shl + local.get $12 + i64.add + local.set $18 + local.get $18 + local.get $5 + i64.le_u if + global.get $~lib/util/number/_K + local.get $13 + i32.add + global.set $~lib/util/number/_K + local.get $0 + local.set $23 + local.get $14 + local.set $17 + local.get $5 + local.set $22 + local.get $18 + local.set $21 + i32.const 11360 + local.get $13 + i32.const 2 + i32.shl + i32.add + i64.load32_u + local.get $7 + i64.extend_i32_s + i64.shl + local.set $20 + local.get $10 + local.set $19 + local.get $23 + local.get $17 i32.const 1 - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.sub + i32.const 1 + i32.shl i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 + local.set $24 + local.get $24 + i32.load16_u + local.set $25 + loop $while-continue|3 + local.get $21 + local.get $19 + i64.lt_u + if (result i32) + local.get $22 + local.get $21 + i64.sub + local.get $20 + i64.ge_u + else + i32.const 0 + end + if (result i32) + local.get $21 + local.get $20 + i64.add + local.get $19 + i64.lt_u + if (result i32) + i32.const 1 + else + local.get $19 + local.get $21 + i64.sub + local.get $21 + local.get $20 + i64.add + local.get $19 + i64.sub + i64.gt_u + end + else + i32.const 0 + end + local.set $26 + local.get $26 + if + local.get $25 + i32.const 1 + i32.sub + local.set $25 + local.get $21 + local.get $20 + i64.add + local.set $21 + br $while-continue|3 + end + end + local.get $24 + local.get $25 + i32.store16 + local.get $14 return end - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $for-loop|0 + br $while-continue|0 end end - i32.const 0 - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - ) - (func $start:std/array~anonymous|13 (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 - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - local.get $2 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store - local.get $3 - i32.const 100 - call $~lib/array/Array#push - drop - local.get $0 - i32.const 10 - i32.gt_s - local.set $3 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $3 - ) - (func $start:std/array~anonymous|15 (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 - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - local.get $2 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store - local.get $3 - call $~lib/array/Array#pop - drop - local.get $0 - i32.const 3 - i32.gt_s - local.set $3 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $3 - ) - (func $~lib/array/Array#forEach (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 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 - local.set $2 - local.get $0 - i32.load offset=12 - local.set $3 - loop $for-loop|0 - local.get $2 - local.get $3 - local.tee $4 - local.get $0 - i32.load offset=12 - local.tee $5 - local.get $4 - local.get $5 - i32.lt_s - select - i32.lt_s - local.set $4 - local.get $4 + loop $while-continue|4 + i32.const 1 + local.set $15 + local.get $15 if - local.get $0 - i32.load offset=4 - local.get $2 - i32.const 2 - i32.shl - i32.add - i32.load - local.get $2 - local.get $0 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - i32.const 3 - global.set $~argumentsLength - local.get $1 - i32.load - call_indirect (type $i32_i32_i32_=>_none) - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $for-loop|0 - end - end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $start:std/array~anonymous|17 (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 - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - local.get $2 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store - local.get $3 - i32.const 100 - call $~lib/array/Array#push - 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|19 (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 - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - local.get $2 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store - local.get $3 - 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|20 (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.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - local.get $1 - i32.const 0 - i32.eq - if - i32.const 0 - local.set $3 - loop $for-loop|0 - local.get $3 - i32.const 4 - i32.lt_s - local.set $4 - local.get $4 + local.get $12 + i64.const 10 + i64.mul + local.set $12 + local.get $5 + i64.const 10 + i64.mul + local.set $5 + local.get $12 + local.get $7 + i64.extend_i32_s + i64.shr_u + local.set $22 + local.get $22 + local.get $14 + i64.extend_i32_s + i64.or + i64.const 0 + i64.ne if - local.get $2 - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - local.get $5 - call $~lib/array/Array#pop - drop - local.get $3 + local.get $0 + local.get $14 + local.tee $25 i32.const 1 i32.add - local.set $3 - br $for-loop|0 - end - end - i32.const 0 - local.set $3 - loop $for-loop|1 - local.get $3 - i32.const 100 - i32.lt_s - local.set $4 - local.get $4 - if - local.get $2 - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - local.get $5 - i32.const 100 - local.get $3 - i32.add - call $~lib/array/Array#push - drop - local.get $3 + local.set $14 + local.get $25 i32.const 1 + i32.shl i32.add - local.set $3 - br $for-loop|1 - end - end - i32.const 0 - local.set $3 - loop $for-loop|2 - local.get $3 - i32.const 100 - i32.lt_s - local.set $4 - local.get $4 - if - local.get $2 - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - local.get $5 - call $~lib/array/Array#pop - drop - local.get $3 - i32.const 1 + i32.const 48 + local.get $22 + i32.wrap_i64 + i32.const 65535 + i32.and i32.add - local.set $3 - br $for-loop|2 + i32.store16 end - end - i32.const 0 - local.set $3 - loop $for-loop|3 - local.get $3 - i32.const 100 - i32.lt_s - local.set $4 - local.get $4 + local.get $12 + local.get $9 + i64.and + local.set $12 + local.get $13 + i32.const 1 + i32.sub + local.set $13 + local.get $12 + local.get $5 + i64.lt_u if - local.get $2 - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - local.get $5 - local.get $3 - i32.const 200 + global.get $~lib/util/number/_K + local.get $13 i32.add - call $~lib/array/Array#push - drop - local.get $3 + global.set $~lib/util/number/_K + local.get $10 + i32.const 11360 + i32.const 0 + local.get $13 + i32.sub + i32.const 2 + i32.shl + i32.add + i64.load32_u + i64.mul + local.set $10 + local.get $0 + local.set $17 + local.get $14 + local.set $26 + local.get $5 + local.set $27 + local.get $12 + local.set $21 + local.get $8 + local.set $20 + local.get $10 + local.set $19 + local.get $17 + local.get $26 + i32.const 1 + i32.sub i32.const 1 + i32.shl i32.add - local.set $3 - br $for-loop|3 - end - end - end - local.get $1 - i32.const 2 - i32.eq - if - local.get $0 - i32.const 202 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 528 - i32.const 680 - i32.const 7 - call $~lib/builtins/abort - unreachable - end - end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/array/Array#map (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 f32) - (local $9 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 $0 - i32.load offset=12 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.const 2 - i32.const 9 - i32.const 0 - call $~lib/rt/__newArray - local.tee $3 - i32.store - local.get $3 - i32.load offset=4 - local.set $4 - i32.const 0 - local.set $5 - loop $for-loop|0 - local.get $5 - local.get $2 - local.tee $6 - local.get $0 - i32.load offset=12 - local.tee $7 - local.get $6 - local.get $7 - i32.lt_s - select - i32.lt_s - local.set $6 - local.get $6 - if - local.get $0 - i32.load offset=4 - local.get $5 - i32.const 2 - i32.shl - i32.add - i32.load - local.get $5 - local.get $0 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - i32.const 3 - global.set $~argumentsLength - local.get $1 - i32.load - call_indirect (type $i32_i32_i32_=>_f32) - local.set $8 - local.get $4 - local.get $5 - i32.const 2 - i32.shl - i32.add - local.get $8 - f32.store - i32.const 0 - drop - local.get $5 - i32.const 1 - i32.add - local.set $5 - br $for-loop|0 + local.set $25 + local.get $25 + i32.load16_u + local.set $24 + loop $while-continue|6 + local.get $21 + local.get $19 + i64.lt_u + if (result i32) + local.get $27 + local.get $21 + i64.sub + local.get $20 + i64.ge_u + else + i32.const 0 + end + if (result i32) + local.get $21 + local.get $20 + i64.add + local.get $19 + i64.lt_u + if (result i32) + i32.const 1 + else + local.get $19 + local.get $21 + i64.sub + local.get $21 + local.get $20 + i64.add + local.get $19 + i64.sub + i64.gt_u + end + else + i32.const 0 + end + local.set $23 + local.get $23 + if + local.get $24 + i32.const 1 + i32.sub + local.set $24 + local.get $21 + local.get $20 + i64.add + local.set $21 + br $while-continue|6 + end + end + local.get $25 + local.get $24 + i32.store16 + local.get $14 + return + end + br $while-continue|4 end end - local.get $3 - local.set $9 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $9 - ) - (func $start:std/array~anonymous|22 (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 - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - local.get $2 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store - local.get $3 - i32.const 100 - call $~lib/array/Array#push - drop - global.get $std/array/i - local.get $0 - i32.add - global.set $std/array/i - local.get $0 - local.set $3 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $3 + unreachable ) - (func $~lib/array/Array#map (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) (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 - call $~stack_check - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - local.get $0 - i32.load offset=12 - local.set $2 - global.get $~lib/memory/__stack_pointer + (local $9 i32) + (local $10 i32) + (local $11 i32) local.get $2 - i32.const 2 - i32.const 3 - i32.const 0 - call $~lib/rt/__newArray - local.tee $3 - i32.store - local.get $3 - i32.load offset=4 - local.set $4 - i32.const 0 - local.set $5 - loop $for-loop|0 - local.get $5 - local.get $2 - local.tee $6 + i32.eqz + if local.get $0 - i32.load offset=12 - local.tee $7 - local.get $6 - local.get $7 - i32.lt_s - select - i32.lt_s - local.set $6 - local.get $6 - if - local.get $0 - i32.load offset=4 - local.get $5 - i32.const 2 - i32.shl - i32.add - i32.load - local.get $5 - local.get $0 - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 - i32.const 3 - global.set $~argumentsLength - local.get $1 - i32.load - call_indirect (type $i32_i32_i32_=>_i32) - local.set $7 - local.get $4 - local.get $5 - i32.const 2 - i32.shl - i32.add - local.get $7 - i32.store - i32.const 0 - drop - local.get $5 - i32.const 1 - i32.add - local.set $5 - br $for-loop|0 - end + local.get $1 + i32.const 1 + i32.shl + i32.add + i32.const 46 + i32.const 48 + i32.const 16 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 2 + i32.add + return end - local.get $3 - local.set $8 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $8 - ) - (func $start:std/array~anonymous|24 (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 - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store + local.get $1 local.get $2 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store - local.get $3 - call $~lib/array/Array#pop - drop - global.get $std/array/i - local.get $0 i32.add - global.set $std/array/i - local.get $0 local.set $3 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer + local.get $1 local.get $3 - ) - (func $~lib/array/Array#filter (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 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 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 2 - i32.const 3 - i32.const 0 - call $~lib/rt/__newArray - local.tee $2 - i32.store - i32.const 0 - local.set $3 - local.get $0 - i32.load offset=12 - local.set $4 - loop $for-loop|0 + i32.le_s + if (result i32) local.get $3 - local.get $4 - local.tee $5 + i32.const 21 + i32.le_s + else + i32.const 0 + end + if + local.get $1 + local.set $4 + loop $for-loop|0 + local.get $4 + local.get $3 + i32.lt_s + local.set $5 + local.get $5 + if + local.get $0 + local.get $4 + i32.const 1 + i32.shl + i32.add + i32.const 48 + i32.store16 + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $for-loop|0 + end + end local.get $0 - i32.load offset=12 - local.tee $6 - local.get $5 - local.get $6 - i32.lt_s - select - i32.lt_s - local.set $5 - local.get $5 + local.get $3 + i32.const 1 + i32.shl + i32.add + i32.const 46 + i32.const 48 + i32.const 16 + i32.shl + i32.or + i32.store + local.get $3 + i32.const 2 + i32.add + return + else + local.get $3 + i32.const 0 + i32.gt_s + if (result i32) + local.get $3 + i32.const 21 + i32.le_s + else + i32.const 0 + end if local.get $0 - i32.load offset=4 local.get $3 - i32.const 2 + i32.const 1 i32.shl i32.add - i32.load - local.set $6 - local.get $6 - local.get $3 + local.set $4 + local.get $4 + i32.const 2 + i32.add + local.get $4 + i32.const 0 + local.get $2 + i32.sub + i32.const 1 + i32.shl + call $~lib/memory/memory.copy local.get $0 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - i32.const 3 - global.set $~argumentsLength + local.get $3 + i32.const 1 + i32.shl + i32.add + i32.const 46 + i32.store16 local.get $1 - i32.load - call_indirect (type $i32_i32_i32_=>_i32) + i32.const 1 + i32.add + return + else + i32.const -6 + local.get $3 + i32.lt_s + if (result i32) + local.get $3 + i32.const 0 + i32.le_s + else + i32.const 0 + end if - local.get $2 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=8 - local.get $7 - local.get $6 - call $~lib/array/Array#push - drop + i32.const 2 + local.get $3 + i32.sub + local.set $4 + local.get $0 + local.get $4 + i32.const 1 + i32.shl + i32.add + local.get $0 + local.get $1 + i32.const 1 + i32.shl + call $~lib/memory/memory.copy + local.get $0 + i32.const 48 + i32.const 46 + i32.const 16 + i32.shl + i32.or + i32.store + i32.const 2 + local.set $5 + loop $for-loop|1 + local.get $5 + local.get $4 + i32.lt_s + local.set $6 + local.get $6 + if + local.get $0 + local.get $5 + i32.const 1 + i32.shl + i32.add + i32.const 48 + i32.store16 + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|1 + end + end + local.get $1 + local.get $4 + i32.add + return + 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.set $5 + local.get $3 + i32.const 1 + i32.sub + local.set $6 + local.get $6 + i32.const 0 + i32.lt_s + local.set $4 + local.get $4 + if + i32.const 0 + local.get $6 + i32.sub + local.set $6 + end + local.get $6 + call $~lib/util/number/decimalCount32 + i32.const 1 + i32.add + local.set $7 + local.get $5 + local.set $10 + local.get $6 + local.set $9 + local.get $7 + local.set $8 + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $10 + local.get $9 + local.get $8 + call $~lib/util/number/utoa32_dec_lut + local.get $5 + i32.const 45 + i32.const 43 + local.get $4 + select + i32.store16 + local.get $7 + local.set $1 + local.get $1 + i32.const 2 + i32.add + return + else + local.get $1 + i32.const 1 + i32.shl + local.set $7 + local.get $0 + i32.const 4 + i32.add + local.get $0 + i32.const 2 + i32.add + local.get $7 + i32.const 2 + i32.sub + call $~lib/memory/memory.copy + local.get $0 + i32.const 46 + i32.store16 offset=2 + local.get $0 + local.get $7 + i32.add + i32.const 101 + i32.store16 offset=2 + local.get $1 + local.get $0 + local.get $7 + i32.add + i32.const 4 + i32.add + local.set $9 + local.get $3 + i32.const 1 + i32.sub + local.set $8 + local.get $8 + i32.const 0 + i32.lt_s + local.set $4 + local.get $4 + if + i32.const 0 + local.get $8 + i32.sub + local.set $8 + end + local.get $8 + call $~lib/util/number/decimalCount32 + i32.const 1 + i32.add + local.set $5 + local.get $9 + local.set $11 + local.get $8 + local.set $6 + local.get $5 + local.set $10 + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $11 + local.get $6 + local.get $10 + call $~lib/util/number/utoa32_dec_lut + local.get $9 + i32.const 45 + i32.const 43 + local.get $4 + select + i32.store16 + local.get $5 + i32.add + local.set $1 + local.get $1 + i32.const 2 + i32.add + return + end + unreachable end - local.get $3 - i32.const 1 - i32.add - local.set $3 - br $for-loop|0 - end - end - local.get $2 - local.set $7 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $7 - ) - (func $start:std/array~anonymous|26 (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 - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - local.get $2 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store - local.get $3 - i32.const 100 - call $~lib/array/Array#push - drop - global.get $std/array/i - local.get $0 - i32.add - global.set $std/array/i - local.get $0 - i32.const 2 - i32.ge_s - local.set $3 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $3 - ) - (func $start:std/array~anonymous|28 (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 - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - local.get $2 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store - local.get $3 - call $~lib/array/Array#pop - drop - global.get $std/array/i - local.get $0 - i32.add - global.set $std/array/i - local.get $0 - i32.const 2 - i32.ge_s - local.set $3 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $3 - ) - (func $~lib/array/Array#reduce (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 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 $2 - local.set $3 - i32.const 0 - local.set $4 - local.get $0 - i32.load offset=12 - local.set $5 - loop $for-loop|0 - local.get $4 - local.get $5 - local.tee $6 - local.get $0 - i32.load offset=12 - local.tee $7 - local.get $6 - local.get $7 - i32.lt_s - select - i32.lt_s - local.set $6 - local.get $6 - if - local.get $3 - local.get $0 - i32.load offset=4 - local.get $4 - i32.const 2 - i32.shl - i32.add - i32.load - local.get $4 - local.get $0 - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store - local.get $8 - i32.const 4 - global.set $~argumentsLength - local.get $1 - i32.load - call_indirect (type $i32_i32_i32_i32_=>_i32) - local.set $3 - local.get $4 - i32.const 1 - i32.add - local.set $4 - br $for-loop|0 + unreachable end + unreachable end - local.get $3 - local.set $8 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $8 + unreachable ) - (func $~lib/array/Array#reduce (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/util/number/dtoa_core (param $0 i32) (param $1 f64) (result i32) + (local $2 i32) (local $3 i32) (local $4 i32) - (local $5 i32) - (local $6 i32) + (local $5 f64) + (local $6 i64) (local $7 i32) - (local $8 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 $8 i64) + (local $9 i64) + (local $10 i32) + (local $11 i64) + (local $12 i64) + (local $13 i32) + (local $14 i32) + (local $15 i32) + (local $16 f64) + (local $17 i64) + (local $18 i64) + (local $19 i64) + (local $20 i64) + (local $21 i64) + (local $22 i64) + (local $23 i64) + (local $24 i64) + (local $25 i64) + (local $26 i32) + (local $27 i64) + (local $28 i32) + local.get $1 + f64.const 0 + f64.lt + local.set $2 local.get $2 - local.set $3 - i32.const 0 - local.set $4 - local.get $0 - i32.load offset=12 - local.set $5 - loop $for-loop|0 - local.get $4 - local.get $5 - local.tee $6 + if + local.get $1 + f64.neg + local.set $1 local.get $0 - i32.load offset=12 - local.tee $7 - local.get $6 - local.get $7 - i32.lt_s - select - i32.lt_s - local.set $6 - local.get $6 - if - local.get $3 - local.get $0 - i32.load offset=4 - local.get $4 - i32.const 2 - i32.shl - i32.add - i32.load - local.get $4 - local.get $0 - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store - local.get $8 - i32.const 4 - global.set $~argumentsLength - local.get $1 - i32.load - call_indirect (type $i32_i32_i32_i32_=>_i32) - local.set $3 - local.get $4 - i32.const 1 - i32.add - local.set $4 - br $for-loop|0 - end + i32.const 45 + i32.store16 end - local.get $3 + local.get $1 + local.set $5 + local.get $0 + local.set $4 + local.get $2 + local.set $3 + local.get $5 + i64.reinterpret_f64 + local.set $6 + local.get $6 + i64.const 9218868437227405312 + i64.and + i64.const 52 + i64.shr_u + i32.wrap_i64 + local.set $7 + local.get $6 + i64.const 4503599627370495 + i64.and local.set $8 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer + local.get $7 + i32.const 0 + i32.ne + i64.extend_i32_u + i64.const 52 + i64.shl local.get $8 - ) - (func $start:std/array~anonymous|33 (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 4 + i64.add + local.set $9 + local.get $7 + i32.const 1 + local.get $7 + select + i32.const 1023 + i32.const 52 + i32.add i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - local.get $3 - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store - local.get $4 + local.set $7 + local.get $9 + local.set $11 + local.get $7 + local.set $10 + local.get $11 + i64.const 1 + i64.shl + i64.const 1 + i64.add + local.set $12 + local.get $10 i32.const 1 - call $~lib/array/Array#push - drop - local.get $0 - local.get $1 + i32.sub + local.set $13 + local.get $12 + i64.clz + i32.wrap_i64 + local.set $14 + local.get $12 + local.get $14 + i64.extend_i32_s + i64.shl + local.set $12 + local.get $13 + local.get $14 + i32.sub + local.set $13 + i32.const 1 + local.get $11 + i64.const 4503599627370496 + i64.eq i32.add - local.set $4 - global.get $~lib/memory/__stack_pointer - i32.const 4 + local.set $15 + local.get $12 + global.set $~lib/util/number/_frc_plus + local.get $11 + local.get $15 + i64.extend_i32_s + i64.shl + i64.const 1 + i64.sub + local.get $10 + local.get $15 + i32.sub + local.get $13 + i32.sub + i64.extend_i32_s + i64.shl + global.set $~lib/util/number/_frc_minus + local.get $13 + global.set $~lib/util/number/_exp + global.get $~lib/util/number/_exp + local.set $10 + i32.const -61 + local.get $10 + i32.sub + f64.convert_i32_s + f64.const 0.30102999566398114 + f64.mul + f64.const 347 + f64.add + local.set $16 + local.get $16 + i32.trunc_f64_s + local.set $15 + local.get $15 + local.get $15 + f64.convert_i32_s + local.get $16 + f64.ne + i32.add + local.set $15 + local.get $15 + i32.const 3 + i32.shr_s + i32.const 1 + i32.add + local.set $14 + i32.const 348 + local.get $14 + i32.const 3 + i32.shl + i32.sub + global.set $~lib/util/number/_K + i32.const 10488 + local.get $14 + i32.const 3 + i32.shl + i32.add + i64.load + global.set $~lib/util/number/_frc_pow + i32.const 11184 + local.get $14 + i32.const 1 + i32.shl + i32.add + i32.load16_s + global.set $~lib/util/number/_exp_pow + local.get $9 + i64.clz + i32.wrap_i64 + local.set $14 + local.get $9 + local.get $14 + i64.extend_i32_s + i64.shl + local.set $9 + local.get $7 + local.get $14 + i32.sub + local.set $7 + global.get $~lib/util/number/_frc_pow + local.set $12 + global.get $~lib/util/number/_exp_pow + local.set $15 + local.get $9 + local.set $17 + local.get $12 + local.set $11 + local.get $17 + i64.const 4294967295 + i64.and + local.set $18 + local.get $11 + i64.const 4294967295 + i64.and + local.set $19 + local.get $17 + i64.const 32 + i64.shr_u + local.set $20 + local.get $11 + i64.const 32 + i64.shr_u + local.set $21 + local.get $18 + local.get $19 + i64.mul + local.set $22 + local.get $20 + local.get $19 + i64.mul + local.get $22 + i64.const 32 + i64.shr_u + i64.add + local.set $23 + local.get $18 + local.get $21 + i64.mul + local.get $23 + i64.const 4294967295 + i64.and + i64.add + local.set $24 + local.get $24 + i64.const 2147483647 + i64.add + local.set $24 + local.get $23 + i64.const 32 + i64.shr_u + local.set $23 + local.get $24 + i64.const 32 + i64.shr_u + local.set $24 + local.get $20 + local.get $21 + i64.mul + local.get $23 + i64.add + local.get $24 + i64.add + local.set $24 + local.get $7 + local.set $10 + local.get $15 + local.set $13 + local.get $10 + local.get $13 i32.add - global.set $~lib/memory/__stack_pointer - local.get $4 - ) - (func $start:std/array~anonymous|35 (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 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 $3 - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store - local.get $4 - call $~lib/array/Array#pop - drop - local.get $0 - local.get $1 + i32.const 64 i32.add - local.set $4 - global.get $~lib/memory/__stack_pointer - i32.const 4 + local.set $10 + global.get $~lib/util/number/_frc_plus + local.set $17 + local.get $12 + local.set $11 + local.get $17 + i64.const 4294967295 + i64.and + local.set $23 + local.get $11 + i64.const 4294967295 + i64.and + local.set $22 + local.get $17 + i64.const 32 + i64.shr_u + local.set $21 + local.get $11 + i64.const 32 + i64.shr_u + local.set $20 + local.get $23 + local.get $22 + i64.mul + local.set $19 + local.get $21 + local.get $22 + i64.mul + local.get $19 + i64.const 32 + i64.shr_u + i64.add + local.set $18 + local.get $23 + local.get $20 + i64.mul + local.get $18 + i64.const 4294967295 + i64.and + i64.add + local.set $25 + local.get $25 + i64.const 2147483647 + i64.add + local.set $25 + local.get $18 + i64.const 32 + i64.shr_u + local.set $18 + local.get $25 + i64.const 32 + i64.shr_u + local.set $25 + local.get $21 + local.get $20 + i64.mul + local.get $18 + i64.add + local.get $25 + i64.add + i64.const 1 + i64.sub + local.set $25 + global.get $~lib/util/number/_exp + local.set $26 + local.get $15 + local.set $13 + local.get $26 + local.get $13 i32.add - global.set $~lib/memory/__stack_pointer - local.get $4 - ) - (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) - (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 $2 - local.set $3 - local.get $0 - i32.load offset=12 - i32.const 1 - i32.sub - local.set $4 - loop $for-loop|0 - local.get $4 - i32.const 0 - i32.ge_s - local.set $5 - local.get $5 - if - local.get $3 - local.get $0 - i32.load offset=4 - local.get $4 - i32.const 2 - i32.shl - i32.add - i32.load - local.get $4 - local.get $0 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - i32.const 4 - global.set $~argumentsLength - local.get $1 - i32.load - call_indirect (type $i32_i32_i32_i32_=>_i32) - local.set $3 - local.get $4 - i32.const 1 - i32.sub - local.set $4 - br $for-loop|0 - end - end - local.get $3 - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 64 i32.add - global.set $~lib/memory/__stack_pointer - local.get $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) - (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 $2 - local.set $3 + local.set $26 + global.get $~lib/util/number/_frc_minus + local.set $17 + local.get $12 + local.set $11 + local.get $17 + i64.const 4294967295 + i64.and + local.set $18 + local.get $11 + i64.const 4294967295 + i64.and + local.set $19 + local.get $17 + i64.const 32 + i64.shr_u + local.set $20 + local.get $11 + i64.const 32 + i64.shr_u + local.set $21 + local.get $18 + local.get $19 + i64.mul + local.set $22 + local.get $20 + local.get $19 + i64.mul + local.get $22 + i64.const 32 + i64.shr_u + i64.add + local.set $23 + local.get $18 + local.get $21 + i64.mul + local.get $23 + i64.const 4294967295 + i64.and + i64.add + local.set $27 + local.get $27 + i64.const 2147483647 + i64.add + local.set $27 + local.get $23 + i64.const 32 + i64.shr_u + local.set $23 + local.get $27 + i64.const 32 + i64.shr_u + local.set $27 + local.get $20 + local.get $21 + i64.mul + local.get $23 + i64.add + local.get $27 + i64.add + i64.const 1 + i64.add + local.set $27 + local.get $25 + local.get $27 + i64.sub + local.set $23 + local.get $4 + local.get $24 + local.get $10 + local.get $25 + local.get $26 + local.get $23 + local.get $3 + call $~lib/util/number/genDigits + local.set $28 local.get $0 - i32.load offset=12 + local.get $2 i32.const 1 + i32.shl + i32.add + local.get $28 + local.get $2 i32.sub - local.set $4 - loop $for-loop|0 - local.get $4 - i32.const 0 - i32.ge_s - local.set $5 - local.get $5 + global.get $~lib/util/number/_K + call $~lib/util/number/prettify + local.set $28 + local.get $28 + local.get $2 + 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 + 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.eq + i32.eqz + if + local.get $1 + local.get $1 + f64.ne if - local.get $3 local.get $0 - i32.load offset=4 - local.get $4 - i32.const 2 - i32.shl - i32.add - i32.load - local.get $4 + i32.const 78 + i32.store16 local.get $0 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - i32.const 4 - global.set $~argumentsLength + i32.const 97 + i32.store16 offset=2 + local.get $0 + i32.const 78 + i32.store16 offset=4 + i32.const 3 + return + else local.get $1 - i32.load - call_indirect (type $i32_i32_i32_i32_=>_i32) - local.set $3 - local.get $4 - i32.const 1 - i32.sub - local.set $4 - br $for-loop|0 + f64.const 0 + f64.lt + local.set $2 + local.get $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 + i32.const 8 + local.get $2 + i32.add + return end + unreachable end - local.get $3 - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - ) - (func $start:std/array~anonymous|40 (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 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 $3 - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store - local.get $4 - i32.const 1 - call $~lib/array/Array#push - drop local.get $0 local.get $1 - i32.add - local.set $4 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $4 + call $~lib/util/number/dtoa_core ) - (func $start:std/array~anonymous|42 (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 4 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer + (func $~lib/array/Array#join (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + local.get $0 + i32.load offset=4 + local.set $2 + local.get $0 + i32.load offset=12 + local.set $3 i32.const 0 - i32.store - local.get $3 - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store - local.get $4 - call $~lib/array/Array#pop drop - local.get $0 + i32.const 0 + drop + i32.const 1 + drop + local.get $2 + local.get $3 local.get $1 - i32.add - local.set $4 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $4 + call $~lib/util/string/joinFloatArray + return ) - (func $~lib/array/Array#sort (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array<~lib/string/String|null>#join (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) - (local $4 f32) - (local $5 f32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store local.get $0 - i32.load offset=12 + i32.load offset=4 local.set $2 - local.get $2 + local.get $0 + i32.load offset=12 + local.set $3 + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 i32.const 1 - i32.le_s - if - local.get $0 - local.set $9 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $9 - return - end + i32.lt_s + drop + i32.const 1 + drop + local.get $2 + local.get $3 + local.get $1 + call $~lib/util/string/joinStringArray + return + ) + (func $std/array/Ref#toString (param $0 i32) (result i32) + i32.const 11600 + ) + (func $~lib/array/Array#join (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) local.get $0 i32.load offset=4 + local.set $2 + local.get $0 + i32.load offset=12 local.set $3 + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + i32.const 1 + i32.lt_s + drop + i32.const 0 + drop + i32.const 1 + drop local.get $2 - i32.const 2 - i32.eq - if - local.get $3 - f32.load offset=4 - local.set $4 - local.get $3 - f32.load - local.set $5 - local.get $4 - local.get $5 - i32.const 2 - global.set $~argumentsLength - local.get $1 - i32.load - call_indirect (type $f32_f32_=>_i32) - i32.const 0 - i32.lt_s - if - local.get $3 - local.get $5 - f32.store offset=4 - local.get $3 - local.get $4 - f32.store - end - local.get $0 - local.set $9 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $9 - return - end local.get $3 - local.set $8 - local.get $2 - local.set $7 - global.get $~lib/memory/__stack_pointer local.get $1 - local.tee $6 - i32.store + call $~lib/util/string/joinReferenceArray + return + ) + (func $~lib/array/Array#join (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + local.get $0 + i32.load offset=4 + local.set $2 + local.get $0 + i32.load offset=12 + local.set $3 i32.const 0 drop - local.get $7 - i32.const 256 + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + i32.const 1 i32.lt_s - if - local.get $8 - local.get $7 - local.get $6 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - call $~lib/util/sort/insertionSort - else - local.get $8 - local.get $7 - local.get $6 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - call $~lib/util/sort/weakHeapSort - end - local.get $0 - local.set $9 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $9 + drop + i32.const 0 + drop + i32.const 1 + drop + local.get $2 + local.get $3 + local.get $1 + call $~lib/util/string/joinReferenceArray + return ) - (func $std/array/isArraysEqual (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 f32) + (local $5 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.set $2 + i32.const 1 + drop + local.get $1 + i32.const 24 + i32.shl + i32.const 24 + i32.shr_s + i32.const 0 + i32.lt_s + local.set $2 local.get $2 - i32.eqz if - local.get $0 - 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 $2 - local.get $2 - local.get $1 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - call $~lib/array/Array#get:length - i32.ne - if - i32.const 0 - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - return - end - local.get $0 + i32.const 0 local.get $1 - i32.eq - if - i32.const 1 - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - return - end - end - i32.const 0 - local.set $3 - loop $for-loop|0 - local.get $3 - local.get $2 - i32.lt_s - local.set $4 - local.get $4 - if - block $for-continue|0 - i32.const 1 - drop - local.get $0 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - local.get $3 - call $~lib/array/Array#__get - local.tee $5 - local.get $5 - f32.ne - if (result i32) - local.get $1 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - local.get $3 - call $~lib/array/Array#__get - local.tee $5 - local.get $5 - f32.ne - else - i32.const 0 - end - if - br $for-continue|0 - end - local.get $0 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - local.get $3 - call $~lib/array/Array#__get - local.get $1 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - local.get $3 - call $~lib/array/Array#__get - f32.ne - if - i32.const 0 - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - return - end - end - local.get $3 - i32.const 1 - i32.add - local.set $3 - br $for-loop|0 - end + i32.sub + local.set $1 + local.get $0 + i32.const 45 + i32.store16 end + i32.const 0 + i32.const 1 + i32.le_s + drop + i32.const 1 + drop + i32.const 1 + i32.const 4 + i32.le_u + drop + local.get $1 + i32.const 24 + i32.shl + i32.const 24 + i32.shr_s + i32.const 10 + i32.lt_u + if + local.get $0 + local.get $2 + i32.const 1 + i32.shl + i32.add + local.get $1 + i32.const 24 + i32.shl + i32.const 24 + i32.shr_s + i32.const 48 + i32.or + i32.store16 + i32.const 1 + local.get $2 + i32.add + return + end + local.get $2 + local.set $3 i32.const 1 - local.set $6 - global.get $~lib/memory/__stack_pointer i32.const 4 + i32.le_u + drop + local.get $3 + local.get $1 + i32.const 24 + i32.shl + i32.const 24 + i32.shr_s + call $~lib/util/number/decimalCount32 i32.add - global.set $~lib/memory/__stack_pointer + local.set $3 + local.get $0 + local.set $6 + local.get $1 + i32.const 24 + i32.shl + i32.const 24 + i32.shr_s + local.set $5 + local.get $3 + local.set $4 + i32.const 0 + i32.const 1 + i32.ge_s + drop local.get $6 + local.get $5 + local.get $4 + call $~lib/util/number/utoa32_dec_lut + local.get $3 ) - (func $~lib/array/Array#sort (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#join (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) - (local $4 f64) - (local $5 f64) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store local.get $0 - i32.load offset=12 + i32.load offset=4 local.set $2 + local.get $0 + i32.load offset=12 + local.set $3 + i32.const 0 + drop + i32.const 1 + drop local.get $2 + local.get $3 + local.get $1 + call $~lib/util/string/joinIntegerArray + return + ) + (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) + i32.const 0 + local.set $2 + i32.const 0 + drop + i32.const 0 i32.const 1 i32.le_s + drop + i32.const 0 + drop + local.get $1 + i32.const 65535 + i32.and + i32.const 10 + i32.lt_u if local.get $0 - local.set $9 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $9 + local.get $1 + i32.const 65535 + i32.and + i32.const 48 + i32.or + i32.store16 + i32.const 1 return end - local.get $0 - i32.load offset=4 - local.set $3 local.get $2 + local.set $3 i32.const 2 - i32.eq - if - local.get $3 - f64.load offset=8 - local.set $4 - local.get $3 - f64.load - local.set $5 - local.get $4 - local.get $5 - i32.const 2 - global.set $~argumentsLength - local.get $1 - i32.load - call_indirect (type $f64_f64_=>_i32) - i32.const 0 - i32.lt_s - if - local.get $3 - local.get $5 - f64.store offset=8 - local.get $3 - local.get $4 - f64.store - end - local.get $0 - local.set $9 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $9 - return - end + i32.const 4 + i32.le_u + drop local.get $3 - local.set $8 - local.get $2 - local.set $7 - global.get $~lib/memory/__stack_pointer local.get $1 - local.tee $6 - i32.store + i32.const 65535 + i32.and + call $~lib/util/number/decimalCount32 + i32.add + local.set $3 + local.get $0 + local.set $6 + local.get $1 + i32.const 65535 + i32.and + local.set $5 + local.get $3 + local.set $4 i32.const 0 + i32.const 1 + i32.ge_s drop - local.get $7 - i32.const 256 - i32.lt_s - if - local.get $8 - local.get $7 - local.get $6 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - call $~lib/util/sort/insertionSort - else - local.get $8 - local.get $7 - local.get $6 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - call $~lib/util/sort/weakHeapSort - end - local.get $0 - local.set $9 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $9 + local.get $6 + local.get $5 + local.get $4 + call $~lib/util/number/utoa32_dec_lut + local.get $3 ) - (func $std/array/isArraysEqual (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/array/Array#join (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) (local $3 i32) - (local $4 i32) - (local $5 f64) - (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 + local.get $0 + i32.load offset=4 + local.set $2 + local.get $0 + i32.load offset=12 + local.set $3 i32.const 0 - i32.store + drop + i32.const 1 + drop local.get $2 - i32.eqz + local.get $3 + local.get $1 + call $~lib/util/string/joinIntegerArray + return + ) + (func $~lib/util/number/decimalCount64High (param $0 i64) (result i32) + local.get $0 + i64.const 1000000000000000 + i64.lt_u if local.get $0 - 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 $2 - local.get $2 - local.get $1 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - call $~lib/array/Array#get:length - i32.ne + i64.const 1000000000000 + i64.lt_u if - i32.const 0 - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 10 + local.get $0 + i64.const 100000000000 + i64.ge_u + i32.add + local.get $0 + i64.const 10000000000 + i64.ge_u + i32.add + return + else + i32.const 13 + local.get $0 + i64.const 100000000000000 + i64.ge_u + i32.add + local.get $0 + i64.const 10000000000000 + i64.ge_u i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 return end + unreachable + else local.get $0 - local.get $1 - i32.eq + i64.const 100000000000000000 + i64.lt_u if - i32.const 1 - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 16 + local.get $0 + i64.const 10000000000000000 + i64.ge_u + i32.add + return + else + i32.const 18 + local.get $0 + i64.const -8446744073709551616 + i64.ge_u + i32.add + local.get $0 + i64.const 1000000000000000000 + i64.ge_u i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 return end + unreachable end - i32.const 0 - local.set $3 - loop $for-loop|0 + unreachable + ) + (func $~lib/util/number/utoa64_dec_lut (param $0 i32) (param $1 i64) (param $2 i32) + (local $3 i32) + (local $4 i64) + (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 i64) + loop $while-continue|0 + local.get $1 + i64.const 100000000 + i64.ge_u + local.set $3 local.get $3 - local.get $2 - i32.lt_s - local.set $4 - local.get $4 if - block $for-continue|0 - i32.const 1 - drop - local.get $0 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - local.get $3 - call $~lib/array/Array#__get - local.tee $5 - local.get $5 - f64.ne - if (result i32) - local.get $1 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - local.get $3 - call $~lib/array/Array#__get - local.tee $5 - local.get $5 - f64.ne - else - i32.const 0 - end - if - br $for-continue|0 - end - local.get $0 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - local.get $3 - call $~lib/array/Array#__get - local.get $1 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - local.get $3 - call $~lib/array/Array#__get - f64.ne - if - i32.const 0 - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - return - end - end - local.get $3 + local.get $1 + i64.const 100000000 + i64.div_u + local.set $4 + local.get $1 + local.get $4 + i64.const 100000000 + i64.mul + i64.sub + i32.wrap_i64 + local.set $5 + local.get $4 + local.set $1 + local.get $5 + i32.const 10000 + i32.div_u + local.set $6 + local.get $5 + i32.const 10000 + i32.rem_u + local.set $7 + local.get $6 + i32.const 100 + i32.div_u + local.set $8 + local.get $6 + i32.const 100 + i32.rem_u + local.set $9 + local.get $7 + i32.const 100 + i32.div_u + local.set $10 + local.get $7 + i32.const 100 + i32.rem_u + local.set $11 + i32.const 8364 + local.get $10 + i32.const 2 + i32.shl + i32.add + i64.load32_u + local.set $12 + i32.const 8364 + local.get $11 + i32.const 2 + i32.shl + i32.add + i64.load32_u + local.set $13 + local.get $2 + i32.const 4 + i32.sub + local.set $2 + local.get $0 + local.get $2 i32.const 1 + i32.shl i32.add - local.set $3 - br $for-loop|0 + local.get $12 + local.get $13 + i64.const 32 + i64.shl + i64.or + i64.store + i32.const 8364 + local.get $8 + i32.const 2 + i32.shl + i32.add + i64.load32_u + local.set $12 + i32.const 8364 + local.get $9 + i32.const 2 + i32.shl + i32.add + i64.load32_u + local.set $13 + local.get $2 + i32.const 4 + i32.sub + local.set $2 + local.get $0 + local.get $2 + i32.const 1 + i32.shl + i32.add + local.get $12 + local.get $13 + i64.const 32 + i64.shl + i64.or + i64.store + br $while-continue|0 end end - i32.const 1 - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 + local.get $0 + local.get $1 + i32.wrap_i64 + local.get $2 + call $~lib/util/number/utoa32_dec_lut ) - (func $~lib/array/Array#sort (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) (local $6 i32) (local $7 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 $0 - i32.load offset=12 + (local $8 i64) + i32.const 0 local.set $2 - local.get $2 + i32.const 0 + drop + i32.const 0 i32.const 1 i32.le_s + drop + i32.const 0 + drop + local.get $1 + i64.const 10 + i64.lt_u if local.get $0 - local.set $7 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $7 + local.get $1 + i64.const 48 + i64.or + i64.store16 + i32.const 1 return end - local.get $0 - i32.load offset=4 - local.set $3 local.get $2 - i32.const 2 - i32.eq + local.set $3 + i32.const 8 + i32.const 4 + i32.le_u + drop + local.get $1 + global.get $~lib/builtins/u32.MAX_VALUE + i64.extend_i32_u + i64.le_u if - local.get $3 - i32.load offset=4 + local.get $1 + i32.wrap_i64 local.set $4 local.get $3 - i32.load - local.set $5 local.get $4 - local.get $5 - i32.const 2 - global.set $~argumentsLength - local.get $1 - i32.load - call_indirect (type $i32_i32_=>_i32) - i32.const 0 - i32.lt_s - if - local.get $3 - local.get $5 - i32.store offset=4 - local.get $3 - local.get $4 - i32.store - end + call $~lib/util/number/decimalCount32 + i32.add + local.set $3 local.get $0 local.set $7 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer + local.get $4 + local.set $6 + local.get $3 + local.set $5 + i32.const 0 + i32.const 1 + i32.ge_s + drop local.get $7 - return - end - local.get $3 - local.set $6 - local.get $2 - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $1 - local.tee $4 - i32.store - i32.const 0 - drop - local.get $5 - i32.const 256 - i32.lt_s - if local.get $6 local.get $5 - local.get $4 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - call $~lib/util/sort/insertionSort + call $~lib/util/number/utoa32_dec_lut else + local.get $3 + local.get $1 + call $~lib/util/number/decimalCount64High + i32.add + local.set $3 + local.get $0 + local.set $6 + local.get $1 + local.set $8 + local.get $3 + local.set $5 + i32.const 0 + i32.const 1 + i32.ge_s + drop local.get $6 + local.get $8 local.get $5 - local.get $4 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - call $~lib/util/sort/weakHeapSort + call $~lib/util/number/utoa64_dec_lut end + local.get $3 + ) + (func $~lib/array/Array#join (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) local.get $0 - local.set $7 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $7 + i32.load offset=4 + local.set $2 + local.get $0 + i32.load offset=12 + local.set $3 + i32.const 0 + drop + i32.const 1 + drop + local.get $2 + local.get $3 + local.get $1 + call $~lib/util/string/joinIntegerArray + return ) - (func $~lib/array/Array#sort (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) (local $6 i32) (local $7 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 $0 - i32.load offset=12 + (local $8 i64) + i32.const 0 local.set $2 - local.get $2 i32.const 1 - i32.le_s - if - local.get $0 - local.set $7 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $7 - return - end - local.get $0 - i32.load offset=4 - local.set $3 + drop + local.get $1 + i64.const 0 + i64.lt_s + local.set $2 local.get $2 - i32.const 2 - i32.eq if - local.get $3 - i32.load offset=4 - local.set $4 - local.get $3 - i32.load - local.set $5 - local.get $4 - local.get $5 - i32.const 2 - global.set $~argumentsLength + i64.const 0 local.get $1 - i32.load - call_indirect (type $i32_i32_=>_i32) - i32.const 0 - i32.lt_s - if - local.get $3 - local.get $5 - i32.store offset=4 - local.get $3 - local.get $4 - i32.store - end + i64.sub + local.set $1 local.get $0 - local.set $7 - global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 45 + i32.store16 + end + i32.const 0 + i32.const 1 + i32.le_s + drop + i32.const 1 + drop + i32.const 8 + i32.const 4 + i32.le_u + drop + local.get $1 + i64.const 10 + i64.lt_u + if + local.get $0 + local.get $2 + i32.const 1 + i32.shl + i32.add + local.get $1 + i64.const 48 + i64.or + i64.store16 + i32.const 1 + local.get $2 i32.add - global.set $~lib/memory/__stack_pointer - local.get $7 return end - local.get $3 - local.set $6 local.get $2 - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $1 - local.tee $4 - i32.store - i32.const 0 + local.set $3 + i32.const 8 + i32.const 4 + i32.le_u drop - local.get $5 - i32.const 256 - i32.lt_s + local.get $1 + global.get $~lib/builtins/u32.MAX_VALUE + i64.extend_i32_u + i64.le_u if - local.get $6 - local.get $5 + local.get $1 + i32.wrap_i64 + local.set $4 + local.get $3 local.get $4 + call $~lib/util/number/decimalCount32 + i32.add + local.set $3 + local.get $0 local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 + local.get $4 + local.set $6 + local.get $3 + local.set $5 + i32.const 0 + i32.const 1 + i32.ge_s + drop local.get $7 - call $~lib/util/sort/insertionSort + local.get $6 + local.get $5 + call $~lib/util/number/utoa32_dec_lut else + local.get $3 + local.get $1 + call $~lib/util/number/decimalCount64High + i32.add + local.set $3 + local.get $0 + local.set $6 + local.get $1 + local.set $8 + local.get $3 + local.set $5 + i32.const 0 + i32.const 1 + i32.ge_s + drop local.get $6 + local.get $8 local.get $5 - local.get $4 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - call $~lib/util/sort/weakHeapSort + call $~lib/util/number/utoa64_dec_lut end - local.get $0 - local.set $7 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $7 + local.get $3 ) - (func $std/array/createReverseOrderedArray (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 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 - global.get $~lib/memory/__stack_pointer - i32.const 0 local.get $0 - call $~lib/array/Array#constructor - local.tee $1 - i32.store - i32.const 0 + i32.load offset=4 local.set $2 - loop $for-loop|0 - local.get $2 - local.get $0 - i32.lt_s - local.set $3 - local.get $3 - if - local.get $1 - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - local.get $2 - local.get $0 - i32.const 1 - i32.sub - local.get $2 - i32.sub - call $~lib/array/Array#__set - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $for-loop|0 - end - end + local.get $0 + i32.load offset=12 + local.set $3 + i32.const 0 + drop + i32.const 1 + drop + local.get $2 + local.get $3 local.get $1 - local.set $4 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $4 + call $~lib/util/string/joinIntegerArray + return ) - (func $std/array/createRandomOrderedArray (param $0 i32) (result i32) - (local $1 i32) + (func $~lib/array/Array<~lib/array/Array>#join (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 - call $~stack_check - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer + local.get $0 + i32.load offset=4 + local.set $2 + local.get $0 + i32.load offset=12 + local.set $3 + i32.const 0 + drop + i32.const 0 + drop i32.const 0 + drop + i32.const 0 + i32.const 1 + i32.lt_s + drop + i32.const 0 + drop + i32.const 1 + drop + local.get $2 + local.get $3 + local.get $1 + call $~lib/util/string/joinReferenceArray<~lib/array/Array> + return + ) + (func $~lib/array/Array<~lib/array/Array>#__uset (param $0 i32) (param $1 i32) (param $2 i32) local.get $0 - call $~lib/array/Array#constructor - local.tee $1 + i32.load offset=4 + local.get $1 + i32.const 2 + i32.shl + i32.add + local.get $2 i32.store + i32.const 1 + drop + local.get $0 + local.get $2 + i32.const 1 + call $~lib/rt/itcms/__link + ) + (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) i32.const 0 local.set $2 - loop $for-loop|0 - local.get $2 + i32.const 0 + drop + i32.const 0 + i32.const 1 + i32.le_s + drop + i32.const 0 + drop + local.get $1 + i32.const 255 + i32.and + i32.const 10 + i32.lt_u + if local.get $0 - i32.lt_s - local.set $3 - local.get $3 - if - local.get $1 - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - local.get $2 - call $~lib/math/NativeMath.random - local.get $0 - f64.convert_i32_s - f64.mul - i32.trunc_f64_s - call $~lib/array/Array#__set - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $for-loop|0 - end + local.get $1 + i32.const 255 + i32.and + i32.const 48 + i32.or + i32.store16 + i32.const 1 + return end + local.get $2 + local.set $3 + i32.const 1 + i32.const 4 + i32.le_u + drop + local.get $3 local.get $1 - local.set $4 - global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 255 + i32.and + call $~lib/util/number/decimalCount32 i32.add - global.set $~lib/memory/__stack_pointer + local.set $3 + local.get $0 + local.set $6 + local.get $1 + i32.const 255 + i32.and + local.set $5 + local.get $3 + local.set $4 + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $6 + local.get $5 local.get $4 + call $~lib/util/number/utoa32_dec_lut + local.get $3 ) - (func $std/array/isSorted (param $0 i32) (param $1 i32) (result i32) + (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) - 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 + local.get $0 + i32.load offset=4 local.set $2 local.get $0 - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - local.get $5 - call $~lib/array/Array#get:length + i32.load offset=12 local.set $3 - loop $for-loop|0 - local.get $2 - local.get $3 - i32.lt_s - local.set $4 - local.get $4 - if - local.get $0 - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - local.get $5 - local.get $2 - i32.const 1 - i32.sub - call $~lib/array/Array#__get - local.get $0 - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - local.get $5 - local.get $2 - call $~lib/array/Array#__get - i32.const 2 - global.set $~argumentsLength - local.get $1 - i32.load - call_indirect (type $i32_i32_=>_i32) - i32.const 0 - i32.gt_s - if - i32.const 0 - local.set $5 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $5 - return - end - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $for-loop|0 - end - end + i32.const 0 + drop i32.const 1 - local.set $5 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $5 + drop + local.get $2 + local.get $3 + local.get $1 + call $~lib/util/string/joinIntegerArray + return ) - (func $std/array/assertSorted (param $0 i32) (param $1 i32) + (func $~lib/array/Array<~lib/array/Array>#join (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 - call $~stack_check - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=8 + (local $3 i32) local.get $0 + i32.load offset=4 local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=8 + local.get $0 + i32.load offset=12 + local.set $3 + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + i32.const 1 + i32.lt_s + drop + i32.const 0 + drop + i32.const 1 + drop local.get $2 + local.get $3 local.get $1 - local.set $2 - global.get $~lib/memory/__stack_pointer + call $~lib/util/string/joinReferenceArray<~lib/array/Array> + return + ) + (func $~lib/array/Array<~lib/array/Array>#__uset (param $0 i32) (param $1 i32) (param $2 i32) + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 2 + i32.shl + i32.add local.get $2 - i32.store offset=12 + i32.store + i32.const 1 + drop + local.get $0 local.get $2 - call $~lib/array/Array#sort - local.set $2 - global.get $~lib/memory/__stack_pointer + i32.const 1 + call $~lib/rt/itcms/__link + ) + (func $~lib/array/Array<~lib/array/Array<~lib/array/Array>>#__uset (param $0 i32) (param $1 i32) (param $2 i32) + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 2 + i32.shl + i32.add local.get $2 i32.store + i32.const 1 + drop + local.get $0 + local.get $2 + i32.const 1 + call $~lib/rt/itcms/__link + ) + (func $~lib/array/Array<~lib/array/Array>#join (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + local.get $0 + i32.load offset=4 + local.set $2 + local.get $0 + i32.load offset=12 + local.set $3 + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + i32.const 1 + i32.lt_s + drop + i32.const 0 + drop + i32.const 1 + drop local.get $2 + local.get $3 local.get $1 + call $~lib/util/string/joinReferenceArray<~lib/array/Array> + return + ) + (func $~lib/array/Array<~lib/array/Array<~lib/array/Array>>#join (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + local.get $0 + i32.load offset=4 local.set $2 - global.get $~lib/memory/__stack_pointer + local.get $0 + i32.load offset=12 + local.set $3 + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + i32.const 1 + i32.lt_s + drop + i32.const 0 + drop + i32.const 1 + drop + local.get $2 + local.get $3 + local.get $1 + call $~lib/util/string/joinReferenceArray<~lib/array/Array<~lib/array/Array>> + return + ) + (func $~lib/array/Array<~lib/array/Array<~lib/string/String|null>>#__uset (param $0 i32) (param $1 i32) (param $2 i32) + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 2 + i32.shl + i32.add local.get $2 - i32.store offset=4 + i32.store + i32.const 1 + drop + local.get $0 local.get $2 - call $std/array/isSorted - i32.eqz + i32.const 1 + call $~lib/rt/itcms/__link + ) + (func $~lib/rt/itcms/__collect + (local $0 i32) + 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 + local.set $0 + local.get $0 + 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.const 528 - i32.const 942 - i32.const 3 - call $~lib/builtins/abort - unreachable + i32.ne + local.set $0 + local.get $0 + if + call $~lib/rt/itcms/step + drop + br $while-continue|1 + end end - global.get $~lib/memory/__stack_pointer - i32.const 16 + 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 + i32.const 0 + drop + i32.const 0 + if (result i32) + i32.const 1 + else + i32.const 0 + end + drop ) - (func $std/array/assertSortedDefault (param $0 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 + (func $~lib/array/Array#set:buffer (param $0 i32) (param $1 i32) local.get $0 - local.set $1 - global.get $~lib/memory/__stack_pointer local.get $1 i32.store + local.get $0 local.get $1 - block $~lib/util/sort/COMPARATOR|inlined.1 (result i32) - i32.const 1 - drop - i32.const 1 - if (result i32) - i32.const 4 - i32.const 4 - i32.le_u - else - i32.const 0 - end - drop - i32.const 7312 - br $~lib/util/sort/COMPARATOR|inlined.1 - end - local.set $1 - global.get $~lib/memory/__stack_pointer + i32.const 0 + call $~lib/rt/itcms/__link + ) + (func $~lib/array/Array#set:dataStart (param $0 i32) (param $1 i32) + local.get $0 local.get $1 i32.store offset=4 + ) + (func $~lib/array/Array#set:byteLength (param $0 i32) (param $1 i32) + local.get $0 local.get $1 - call $std/array/assertSorted - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer + i32.store offset=8 ) - (func $~lib/array/Array<~lib/array/Array>#__set (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 - call $~stack_check - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store + (func $~lib/array/Array#set:length_ (param $0 i32) (param $1 i32) + local.get $0 local.get $1 + i32.store offset=12 + ) + (func $~lib/array/Array#get:buffer (param $0 i32) (result i32) local.get $0 - i32.load offset=12 - i32.ge_u - if - local.get $1 - i32.const 0 - i32.lt_s - if - i32.const 320 - i32.const 80 - i32.const 108 - i32.const 22 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.get $1 - i32.const 1 - i32.add - i32.const 2 - call $~lib/array/ensureSize - local.get $0 - local.get $1 - i32.const 1 - i32.add - call $~lib/array/Array<~lib/array/Array>#set:length_ - end + i32.load + ) + (func $~lib/array/Array#get:dataStart (param $0 i32) (result i32) local.get $0 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store - local.get $3 - local.get $1 - local.get $2 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - call $~lib/array/Array<~lib/array/Array>#__uset - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer + i32.load offset=4 ) - (func $std/array/createReverseOrderedNestedArray (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 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 - global.get $~lib/memory/__stack_pointer - i32.const 0 + (func $~lib/array/Array#get:byteLength (param $0 i32) (result i32) local.get $0 - call $~lib/array/Array<~lib/array/Array>#constructor - local.tee $1 - i32.store - i32.const 0 - local.set $2 - loop $for-loop|0 - local.get $2 - local.get $0 - i32.lt_s - local.set $3 - local.get $3 - if - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 1 - call $~lib/array/Array#constructor - local.tee $4 - i32.store offset=4 - local.get $4 - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=8 - local.get $5 - i32.const 0 - local.get $0 - i32.const 1 - i32.sub - local.get $2 - i32.sub - call $~lib/array/Array#__set - local.get $1 - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=8 - local.get $5 - local.get $2 - local.get $4 - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=12 - local.get $5 - call $~lib/array/Array<~lib/array/Array>#__set - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $for-loop|0 - end - end - local.get $1 - local.set $5 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $5 + i32.load offset=8 + ) + (func $~lib/array/Array#get:length_ (param $0 i32) (result i32) + local.get $0 + i32.load offset=12 ) - (func $start:std/array~anonymous|47 (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 - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store + (func $~lib/array/Array#set:length (param $0 i32) (param $1 i32) local.get $0 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $2 - i32.const 0 - call $~lib/array/Array#__get local.get $1 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $2 - i32.const 0 - call $~lib/array/Array#__get - i32.sub - local.set $2 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $2 + i32.const 2 + call $~lib/array/ensureSize + local.get $0 + local.get $1 + call $~lib/array/Array#set:length_ ) - (func $~lib/util/sort/insertionSort<~lib/array/Array> (param $0 i32) (param $1 i32) (param $2 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 $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 - 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 + local.set $2 + local.get $0 + i32.load offset=12 local.set $3 loop $for-loop|0 + local.get $2 local.get $3 - local.get $1 + local.tee $4 + local.get $0 + i32.load offset=12 + local.tee $5 + local.get $4 + local.get $5 + i32.lt_s + select i32.lt_s local.set $4 local.get $4 if - global.get $~lib/memory/__stack_pointer local.get $0 - local.get $3 + i32.load offset=4 + local.get $2 i32.const 2 i32.shl i32.add i32.load - local.tee $5 - i32.store - local.get $3 - i32.const 1 - i32.sub - local.set $6 - block $while-break|1 - loop $while-continue|1 - local.get $6 - i32.const 0 - i32.ge_s - local.set $7 - local.get $7 - if - global.get $~lib/memory/__stack_pointer - local.get $0 - local.get $6 - i32.const 2 - i32.shl - i32.add - i32.load - local.tee $8 - i32.store offset=4 - local.get $5 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=8 - local.get $10 - local.get $8 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=12 - local.get $10 - i32.const 2 - global.set $~argumentsLength - local.get $2 - i32.load - call_indirect (type $i32_i32_=>_i32) - i32.const 0 - i32.lt_s - if - local.get $0 - local.get $6 - local.tee $9 - i32.const 1 - i32.sub - local.set $6 - local.get $9 - i32.const 1 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $8 - i32.store - else - br $while-break|1 - end - br $while-continue|1 - end - end - end + local.get $2 local.get $0 - local.get $6 - i32.const 1 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $5 - i32.store - local.get $3 - i32.const 1 - i32.add - local.set $3 - br $for-loop|0 - end - end - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/array/Array<~lib/array/Array>#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) - 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 - 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 0 - i32.store offset=16 - local.get $0 - i32.load offset=12 - local.set $2 - local.get $2 - i32.const 1 - i32.le_s - if - local.get $0 - local.set $7 - global.get $~lib/memory/__stack_pointer - i32.const 20 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $7 - return - end - local.get $0 - i32.load offset=4 - local.set $3 - local.get $2 - i32.const 2 - i32.eq - if - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.load offset=4 - local.tee $4 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.load - local.tee $5 - i32.store offset=4 - local.get $4 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=8 - local.get $7 - local.get $5 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=12 - local.get $7 - i32.const 2 - global.set $~argumentsLength - local.get $1 - i32.load - call_indirect (type $i32_i32_=>_i32) - i32.const 0 - i32.lt_s - if - local.get $3 - local.get $5 - i32.store offset=4 - local.get $3 - local.get $4 - i32.store - end - local.get $0 - local.set $7 - global.get $~lib/memory/__stack_pointer - i32.const 20 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $7 - return + i32.const 3 + global.set $~argumentsLength + local.get $1 + i32.load + call_indirect (type $i32_i32_i32_=>_i32) + i32.eqz + if + i32.const 0 + return + end + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|0 + end end - local.get $3 - local.set $6 - local.get $2 - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $1 - local.tee $4 - i32.store i32.const 1 - drop - local.get $6 - local.get $5 - local.get $4 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=16 - local.get $7 - call $~lib/util/sort/insertionSort<~lib/array/Array> - local.get $0 - local.set $7 - global.get $~lib/memory/__stack_pointer - i32.const 20 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $7 ) - (func $std/array/isSorted<~lib/array/Array> (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#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 - 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 local.set $2 local.get $0 - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - local.get $5 - call $~lib/array/Array<~lib/array/Array>#get:length + i32.load offset=12 local.set $3 loop $for-loop|0 local.get $2 local.get $3 + local.tee $4 + local.get $0 + i32.load offset=12 + local.tee $5 + local.get $4 + local.get $5 + i32.lt_s + select i32.lt_s local.set $4 local.get $4 if local.get $0 - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=8 - local.get $5 - local.get $2 - i32.const 1 - i32.sub - call $~lib/array/Array<~lib/array/Array>#__get - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - local.get $5 - local.get $0 - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=8 - local.get $5 + i32.load offset=4 local.get $2 - call $~lib/array/Array<~lib/array/Array>#__get - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 i32.const 2 + i32.shl + i32.add + i32.load + local.get $2 + local.get $0 + i32.const 3 global.set $~argumentsLength local.get $1 i32.load - call_indirect (type $i32_i32_=>_i32) - i32.const 0 - i32.gt_s + call_indirect (type $i32_i32_i32_=>_i32) if - i32.const 0 - local.set $5 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $5 + local.get $2 return end local.get $2 @@ -17398,76 +13041,30 @@ br $for-loop|0 end end - i32.const 1 - local.set $5 - global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const -1 + ) + (func $~lib/array/Array#__uget (param $0 i32) (param $1 i32) (result i32) + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 2 + i32.shl i32.add - global.set $~lib/memory/__stack_pointer - local.get $5 + i32.load ) - (func $std/array/assertSorted<~lib/array/Array> (param $0 i32) (param $1 i32) - (local $2 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 + (func $~lib/array/Array#__uset (param $0 i32) (param $1 i32) (param $2 i32) local.get $0 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=8 - local.get $2 + i32.load offset=4 local.get $1 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=12 - local.get $2 - call $~lib/array/Array<~lib/array/Array>#sort - local.set $2 - global.get $~lib/memory/__stack_pointer + i32.const 2 + i32.shl + i32.add local.get $2 i32.store - local.get $2 - local.get $1 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - call $std/array/isSorted<~lib/array/Array> - i32.eqz - if - i32.const 0 - i32.const 528 - i32.const 942 - 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 0 + drop ) - (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 8 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store + (func $~lib/array/Array#__set (param $0 i32) (param $1 i32) (param $2 i32) local.get $1 local.get $0 i32.load offset=12 @@ -17494,409 +13091,424 @@ local.get $1 i32.const 1 i32.add - call $~lib/array/Array>#set:length_ + call $~lib/array/Array#set:length_ end local.get $0 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store - local.get $3 local.get $1 local.get $2 + call $~lib/array/Array#__uset + ) + (func $~lib/array/Array#at (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + local.get $0 + i32.load offset=12 + local.set $2 + local.get $1 + i32.const 0 + local.get $2 + local.get $1 + i32.const 0 + i32.ge_s + select + i32.add + local.set $1 + local.get $1 + local.get $2 + i32.ge_u + if + i32.const 320 + i32.const 80 + i32.const 125 + i32.const 33 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 2 + i32.shl + i32.add + i32.load local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 + i32.const 0 + drop local.get $3 - call $~lib/array/Array>#__uset - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer ) - (func $std/array/createReverseOrderedElementsArray (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) + (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 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 + (local $5 i32) + (local $6 i32) + local.get $0 + i32.load offset=12 + local.set $3 + local.get $3 i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer + i32.eq + if (result i32) + i32.const 1 + else + local.get $2 + local.get $3 + i32.ge_s + end + if + i32.const -1 + return + end + local.get $2 i32.const 0 + i32.lt_s + if + local.get $3 + local.get $2 + i32.add + local.tee $4 + i32.const 0 + local.tee $5 + local.get $4 + local.get $5 + i32.gt_s + select + local.set $2 + end local.get $0 - call $~lib/array/Array>#constructor - local.tee $1 - i32.store - i32.const 0 - local.set $2 - loop $for-loop|0 + i32.load offset=4 + local.set $6 + loop $while-continue|0 local.get $2 - local.get $0 - i32.lt_s - local.set $3 local.get $3 + i32.lt_s + local.set $4 + local.get $4 if - local.get $1 - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - local.get $2 - i32.const 0 - local.get $0 - i32.const 1 - i32.sub + local.get $6 local.get $2 - i32.sub - call $std/array/Proxy#constructor - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=8 - local.get $4 - call $~lib/array/Array>#__set + i32.const 2 + i32.shl + i32.add + i32.load + local.get $1 + i32.eq + if + local.get $2 + return + end local.get $2 i32.const 1 i32.add local.set $2 - br $for-loop|0 + br $while-continue|0 end end + i32.const -1 + ) + (func $~lib/array/Array#includes (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + i32.const 0 + drop + local.get $0 local.get $1 - local.set $4 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $4 + local.get $2 + call $~lib/array/Array#indexOf + i32.const 0 + i32.ge_s + return ) - (func $~lib/util/sort/insertionSort> (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/array/Array#lastIndexOf (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 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 - i32.const 0 + local.get $0 + i32.load offset=12 local.set $3 - loop $for-loop|0 + local.get $3 + i32.const 0 + i32.eq + if + i32.const -1 + return + end + local.get $2 + i32.const 0 + i32.lt_s + if local.get $3 - local.get $1 - i32.lt_s - local.set $4 - local.get $4 + local.get $2 + i32.add + local.set $2 + else + local.get $2 + local.get $3 + i32.ge_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 local.get $3 i32.const 1 i32.sub - local.set $6 - block $while-break|1 - loop $while-continue|1 - local.get $6 - i32.const 0 - i32.ge_s - local.set $7 - local.get $7 - if - global.get $~lib/memory/__stack_pointer - local.get $0 - local.get $6 - i32.const 2 - i32.shl - i32.add - i32.load - local.tee $8 - i32.store offset=4 - local.get $5 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=8 - local.get $10 - local.get $8 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=12 - local.get $10 - i32.const 2 - global.set $~argumentsLength - local.get $2 - i32.load - call_indirect (type $i32_i32_=>_i32) - i32.const 0 - i32.lt_s - if - local.get $0 - local.get $6 - local.tee $9 - i32.const 1 - i32.sub - local.set $6 - local.get $9 - i32.const 1 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $8 - i32.store - else - br $while-break|1 - end - br $while-continue|1 - end - end - end - local.get $0 - local.get $6 - i32.const 1 - i32.add + local.set $2 + end + end + local.get $0 + i32.load offset=4 + local.set $4 + loop $while-continue|0 + local.get $2 + i32.const 0 + i32.ge_s + local.set $5 + local.get $5 + if + local.get $4 + local.get $2 i32.const 2 i32.shl i32.add - local.get $5 - i32.store - local.get $3 + i32.load + local.get $1 + i32.eq + if + local.get $2 + return + end + local.get $2 i32.const 1 - i32.add - local.set $3 - br $for-loop|0 + i32.sub + local.set $2 + br $while-continue|0 end end - global.get $~lib/memory/__stack_pointer - i32.const 16 + i32.const -1 + ) + (func $~lib/array/Array#push (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + local.get $0 + i32.load offset=12 + local.set $2 + local.get $2 + i32.const 1 + i32.add + local.set $3 + local.get $0 + local.get $3 + i32.const 2 + call $~lib/array/ensureSize + i32.const 0 + drop + local.get $0 + i32.load offset=4 + local.get $2 + i32.const 2 + i32.shl i32.add - global.set $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $0 + local.get $3 + call $~lib/array/Array#set:length_ + local.get $3 ) - (func $~lib/array/Array>#sort (param $0 i32) (param $1 i32) (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) (local $6 i32) (local $7 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 - 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 0 - i32.store offset=16 + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + local.get $0 + i32.load offset=4 + local.set $4 local.get $0 i32.load offset=12 - local.set $2 - local.get $2 - i32.const 1 - i32.le_s - if - local.get $0 - local.set $7 - global.get $~lib/memory/__stack_pointer - i32.const 20 + local.set $5 + local.get $3 + local.tee $6 + local.get $5 + local.tee $7 + local.get $6 + local.get $7 + i32.lt_s + select + local.set $3 + local.get $1 + i32.const 0 + i32.lt_s + if (result i32) + local.get $5 + local.get $1 i32.add - global.set $~lib/memory/__stack_pointer + local.tee $7 + i32.const 0 + local.tee $6 local.get $7 - return + local.get $6 + i32.gt_s + select + else + local.get $1 + local.tee $6 + local.get $5 + local.tee $7 + local.get $6 + local.get $7 + i32.lt_s + select end - local.get $0 - i32.load offset=4 - local.set $3 + local.set $8 local.get $2 - i32.const 2 - i32.eq - if - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.load offset=4 - local.tee $4 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.load - local.tee $5 - i32.store offset=4 - local.get $4 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=8 - local.get $7 + i32.const 0 + i32.lt_s + if (result i32) local.get $5 - local.set $7 - global.get $~lib/memory/__stack_pointer + local.get $2 + i32.add + local.tee $7 + i32.const 0 + local.tee $6 local.get $7 - i32.store offset=12 + local.get $6 + i32.gt_s + select + else + local.get $2 + local.tee $6 + local.get $5 + local.tee $7 + local.get $6 local.get $7 - i32.const 2 - global.set $~argumentsLength - local.get $1 - i32.load - call_indirect (type $i32_i32_=>_i32) - i32.const 0 i32.lt_s - if - local.get $3 - local.get $5 - i32.store offset=4 - local.get $3 - local.get $4 - i32.store - end - local.get $0 - local.set $7 - global.get $~lib/memory/__stack_pointer - i32.const 20 + select + end + local.set $9 + local.get $3 + i32.const 0 + i32.lt_s + if (result i32) + local.get $5 + local.get $3 i32.add - global.set $~lib/memory/__stack_pointer + local.tee $7 + i32.const 0 + local.tee $6 local.get $7 - return + local.get $6 + i32.gt_s + select + else + local.get $3 + local.tee $6 + local.get $5 + local.tee $7 + local.get $6 + local.get $7 + i32.lt_s + select end - local.get $3 - local.set $6 - local.get $2 - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $1 - local.tee $4 - i32.store - i32.const 1 - drop - local.get $6 + local.set $10 + local.get $10 + local.get $9 + i32.sub + local.tee $7 local.get $5 - local.get $4 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=16 + local.get $8 + i32.sub + local.tee $6 local.get $7 - call $~lib/util/sort/insertionSort> - local.get $0 - local.set $7 - global.get $~lib/memory/__stack_pointer - i32.const 20 + local.get $6 + i32.lt_s + select + local.set $11 + local.get $4 + local.get $8 + i32.const 2 + i32.shl i32.add - global.set $~lib/memory/__stack_pointer - local.get $7 + local.get $4 + local.get $9 + i32.const 2 + i32.shl + i32.add + local.get $11 + i32.const 2 + i32.shl + call $~lib/memory/memory.copy + local.get $0 ) - (func $std/array/isSorted> (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#pop (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 12 + local.get $0 + i32.load offset=12 + local.set $1 + local.get $1 + i32.const 1 + i32.lt_s + if + i32.const 1152 + i32.const 80 + i32.const 269 + i32.const 21 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 1 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 + local.tee $1 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $2 + local.get $0 + local.get $1 + call $~lib/array/Array#set:length_ + local.get $2 + ) + (func $~lib/array/Array#forEach (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) i32.const 0 - i32.store offset=8 - i32.const 1 local.set $2 local.get $0 - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - local.get $5 - call $~lib/array/Array>#get:length + i32.load offset=12 local.set $3 loop $for-loop|0 local.get $2 local.get $3 + local.tee $4 + local.get $0 + i32.load offset=12 + local.tee $5 + local.get $4 + local.get $5 + i32.lt_s + select i32.lt_s local.set $4 local.get $4 if local.get $0 - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=8 - local.get $5 - local.get $2 - i32.const 1 - i32.sub - call $~lib/array/Array>#__get - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - local.get $5 - local.get $0 - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=8 - local.get $5 + i32.load offset=4 local.get $2 - call $~lib/array/Array>#__get - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 i32.const 2 + i32.shl + i32.add + i32.load + local.get $2 + local.get $0 + i32.const 3 global.set $~argumentsLength local.get $1 i32.load - call_indirect (type $i32_i32_=>_i32) - i32.const 0 - i32.gt_s - if - i32.const 0 - local.set $5 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $5 - return - end + call_indirect (type $i32_i32_i32_=>_none) local.get $2 i32.const 1 i32.add @@ -17904,380 +13516,361 @@ br $for-loop|0 end end - i32.const 1 - local.set $5 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $5 ) - (func $std/array/assertSorted> (param $0 i32) (param $1 i32) + (func $~lib/array/Array#shift (param $0 i32) (result i32) + (local $1 i32) (local $2 i32) - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=8 + (local $3 i32) + (local $4 i32) local.get $0 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=8 - local.get $2 + i32.load offset=12 + local.set $1 local.get $1 + i32.const 1 + i32.lt_s + if + i32.const 1152 + i32.const 80 + i32.const 328 + i32.const 21 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=4 local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=12 - local.get $2 - call $~lib/array/Array>#sort - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store local.get $2 + i32.load + local.set $3 local.get $1 - local.set $2 - global.get $~lib/memory/__stack_pointer + i32.const 1 + i32.sub + local.set $4 local.get $2 - i32.store offset=4 local.get $2 - call $std/array/isSorted> - i32.eqz - if - i32.const 0 - i32.const 528 - i32.const 942 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 16 + i32.const 4 i32.add - global.set $~lib/memory/__stack_pointer + local.get $4 + i32.const 2 + i32.shl + call $~lib/memory/memory.copy + i32.const 0 + drop + local.get $2 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.const 0 + i32.store + local.get $0 + local.get $4 + call $~lib/array/Array#set:length_ + local.get $3 ) - (func $~lib/util/sort/insertionSort<~lib/string/String|null> (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/array/Array#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 $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 - 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 + local.set $2 + local.get $0 + i32.load offset=12 local.set $3 - loop $for-loop|0 - local.get $3 - local.get $1 - i32.lt_s - local.set $4 - local.get $4 - 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 - local.get $3 - i32.const 1 - i32.sub - local.set $6 - block $while-break|1 - loop $while-continue|1 - local.get $6 - i32.const 0 - i32.ge_s - local.set $7 - local.get $7 - if - global.get $~lib/memory/__stack_pointer - local.get $0 - local.get $6 - i32.const 2 - i32.shl - i32.add - i32.load - local.tee $8 - i32.store offset=4 - local.get $5 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=8 - local.get $10 - local.get $8 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=12 - local.get $10 - i32.const 2 - global.set $~argumentsLength - local.get $2 - i32.load - call_indirect (type $i32_i32_=>_i32) - i32.const 0 - i32.lt_s - if - local.get $0 - local.get $6 - local.tee $9 - i32.const 1 - i32.sub - local.set $6 - local.get $9 - i32.const 1 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $8 - i32.store - else - br $while-break|1 - end - br $while-continue|1 - end - end - end + loop $for-loop|0 + local.get $2 + local.get $3 + local.tee $4 + local.get $0 + i32.load offset=12 + local.tee $5 + local.get $4 + local.get $5 + i32.lt_s + select + i32.lt_s + local.set $4 + local.get $4 + if local.get $0 - local.get $6 - i32.const 1 - i32.add + i32.load offset=4 + local.get $2 i32.const 2 i32.shl i32.add - local.get $5 - i32.store - local.get $3 + i32.load + local.get $2 + local.get $0 + i32.const 3 + global.set $~argumentsLength + local.get $1 + i32.load + call_indirect (type $i32_i32_i32_=>_i32) + if + i32.const 1 + return + end + 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 - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer + i32.const 0 ) - (func $~lib/array/Array<~lib/string/String|null>#sort (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#unshift (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 - 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 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=16 local.get $0 i32.load offset=12 + i32.const 1 + i32.add local.set $2 + local.get $0 + local.get $2 + i32.const 2 + call $~lib/array/ensureSize + local.get $0 + i32.load offset=4 + local.set $3 + local.get $3 + i32.const 4 + i32.add + local.get $3 local.get $2 i32.const 1 - i32.le_s + i32.sub + i32.const 2 + i32.shl + call $~lib/memory/memory.copy + local.get $3 + local.get $1 + i32.store + i32.const 0 + drop + local.get $0 + local.get $2 + call $~lib/array/Array#set:length_ + local.get $2 + ) + (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.get $0 + i32.load offset=12 + local.set $1 + local.get $1 if local.get $0 - local.set $7 - global.get $~lib/memory/__stack_pointer - i32.const 20 + i32.load offset=4 + local.set $2 + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 1 + i32.sub + i32.const 2 + i32.shl i32.add - global.set $~lib/memory/__stack_pointer - local.get $7 - return + local.set $3 + loop $while-continue|0 + local.get $2 + local.get $3 + i32.lt_u + local.set $4 + local.get $4 + if + local.get $2 + i32.load + local.set $5 + local.get $2 + local.get $3 + i32.load + i32.store + local.get $3 + local.get $5 + i32.store + local.get $2 + i32.const 4 + i32.add + local.set $2 + local.get $3 + i32.const 4 + i32.sub + local.set $3 + br $while-continue|0 + end + end end local.get $0 + ) + (func $~lib/array/Array#flat (param $0 i32) (result i32) + i32.const 0 + i32.eqz + drop + i32.const 13584 + i32.const 80 + i32.const 470 + i32.const 7 + call $~lib/builtins/abort + unreachable + ) + (func $~lib/array/Array#__visit (param $0 i32) (param $1 i32) + i32.const 0 + drop + local.get $0 + i32.load + local.get $1 + call $~lib/rt/itcms/__visit + ) + (func $~lib/array/Array#set:buffer (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + local.get $0 + local.get $1 + i32.const 0 + call $~lib/rt/itcms/__link + ) + (func $~lib/array/Array#set:dataStart (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=4 + ) + (func $~lib/array/Array#set:byteLength (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=8 + ) + (func $~lib/array/Array#set:length_ (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=12 + ) + (func $~lib/array/Array#get:buffer (param $0 i32) (result i32) + local.get $0 + i32.load + ) + (func $~lib/array/Array#get:dataStart (param $0 i32) (result i32) + local.get $0 i32.load offset=4 + ) + (func $~lib/array/Array#get:byteLength (param $0 i32) (result i32) + local.get $0 + i32.load offset=8 + ) + (func $~lib/array/Array#get:length_ (param $0 i32) (result i32) + local.get $0 + i32.load offset=12 + ) + (func $~lib/array/Array#set:length (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.const 0 + call $~lib/array/ensureSize + local.get $0 + local.get $1 + call $~lib/array/Array#set:length_ + ) + (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) + i32.const 0 + local.set $2 + local.get $0 + i32.load offset=12 local.set $3 - local.get $2 - i32.const 2 - i32.eq - if - global.get $~lib/memory/__stack_pointer + loop $for-loop|0 + local.get $2 local.get $3 - i32.load offset=4 local.tee $4 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.load - local.tee $5 - i32.store offset=4 - local.get $4 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=8 - local.get $7 - local.get $5 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=12 - local.get $7 - i32.const 2 - global.set $~argumentsLength - local.get $1 - i32.load - call_indirect (type $i32_i32_=>_i32) - i32.const 0 + local.get $0 + i32.load offset=12 + local.tee $5 + local.get $4 + local.get $5 + i32.lt_s + select i32.lt_s + local.set $4 + local.get $4 if - local.get $3 - local.get $5 - i32.store offset=4 - local.get $3 - local.get $4 - i32.store + local.get $0 + i32.load offset=4 + local.get $2 + i32.const 0 + i32.shl + i32.add + i32.load8_u + local.get $2 + local.get $0 + i32.const 3 + global.set $~argumentsLength + local.get $1 + i32.load + call_indirect (type $i32_i32_i32_=>_i32) + i32.eqz + if + i32.const 0 + return + end + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|0 end - local.get $0 - local.set $7 - global.get $~lib/memory/__stack_pointer - i32.const 20 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $7 - return end - local.get $3 - local.set $6 - local.get $2 - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $1 - local.tee $4 - i32.store i32.const 1 - drop - local.get $6 - local.get $5 - local.get $4 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=16 - local.get $7 - call $~lib/util/sort/insertionSort<~lib/string/String|null> - local.get $0 - local.set $7 - global.get $~lib/memory/__stack_pointer - i32.const 20 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $7 ) - (func $std/array/isSorted<~lib/string/String|null> (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#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 - 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 local.set $2 local.get $0 - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - local.get $5 - call $~lib/array/Array<~lib/string/String|null>#get:length + i32.load offset=12 local.set $3 loop $for-loop|0 local.get $2 local.get $3 + local.tee $4 + local.get $0 + i32.load offset=12 + local.tee $5 + local.get $4 + local.get $5 + i32.lt_s + select i32.lt_s local.set $4 local.get $4 if local.get $0 - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=8 - local.get $5 + i32.load offset=4 local.get $2 - i32.const 1 - i32.sub - call $~lib/array/Array<~lib/string/String|null>#__get - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - local.get $5 - local.get $0 - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=8 - local.get $5 + i32.const 0 + i32.shl + i32.add + i32.load8_u local.get $2 - call $~lib/array/Array<~lib/string/String|null>#__get - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - i32.const 2 + local.get $0 + i32.const 3 global.set $~argumentsLength local.get $1 i32.load - call_indirect (type $i32_i32_=>_i32) - i32.const 0 - i32.gt_s + call_indirect (type $i32_i32_i32_=>_i32) if - i32.const 0 - local.set $5 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $5 + local.get $2 return end local.get $2 @@ -18287,3090 +13880,3231 @@ br $for-loop|0 end end - i32.const 1 - local.set $5 - global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const -1 + ) + (func $~lib/array/Array#__uget (param $0 i32) (param $1 i32) (result i32) + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 0 + i32.shl i32.add - global.set $~lib/memory/__stack_pointer - local.get $5 + i32.load8_u ) - (func $std/array/assertSorted<~lib/string/String|null> (param $0 i32) (param $1 i32) - (local $2 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 + (func $~lib/array/Array#__uset (param $0 i32) (param $1 i32) (param $2 i32) local.get $0 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=8 - local.get $2 + i32.load offset=4 local.get $1 - local.set $2 - global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.shl + i32.add local.get $2 - i32.store offset=12 + i32.store8 + i32.const 0 + drop + ) + (func $~lib/array/Array#__set (param $0 i32) (param $1 i32) (param $2 i32) + 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 320 + i32.const 80 + i32.const 108 + i32.const 22 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $1 + i32.const 1 + i32.add + i32.const 0 + call $~lib/array/ensureSize + local.get $0 + local.get $1 + i32.const 1 + i32.add + call $~lib/array/Array#set:length_ + end + local.get $0 + local.get $1 local.get $2 - call $~lib/array/Array<~lib/string/String|null>#sort + call $~lib/array/Array#__uset + ) + (func $~lib/array/Array#at (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + local.get $0 + i32.load offset=12 local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $2 local.get $1 - local.set $2 - global.get $~lib/memory/__stack_pointer + i32.const 0 local.get $2 - i32.store offset=4 + local.get $1 + i32.const 0 + i32.ge_s + select + i32.add + local.set $1 + local.get $1 local.get $2 - call $std/array/isSorted<~lib/string/String|null> - i32.eqz + i32.ge_u if - i32.const 0 - i32.const 528 - i32.const 942 - i32.const 3 + i32.const 320 + i32.const 80 + i32.const 125 + i32.const 33 call $~lib/builtins/abort unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 16 + end + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 0 + i32.shl i32.add - global.set $~lib/memory/__stack_pointer + i32.load8_u + local.set $3 + i32.const 0 + drop + local.get $3 ) - (func $~lib/util/sort/COMPARATOR<~lib/string/String|null>~anonymous|0 (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) + (func $~lib/array/Array#indexOf (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 - call $~stack_check - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store local.get $0 - local.get $1 + i32.load offset=12 + local.set $3 + local.get $3 + i32.const 0 i32.eq if (result i32) i32.const 1 else - local.get $0 - i32.const 0 - i32.eq - end - if (result i32) - i32.const 1 - else - local.get $1 - i32.const 0 - i32.eq - end - if - i32.const 0 - 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 - local.get $0 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - call $~lib/string/String#get:length - local.set $2 - local.get $1 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - call $~lib/string/String#get:length - local.set $3 - local.get $2 - local.get $3 - i32.or - i32.eqz - if - i32.const 0 - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - return + local.get $2 + local.get $3 + i32.ge_s end - local.get $2 - i32.eqz if i32.const -1 - 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 - local.get $3 - i32.eqz + local.get $2 + i32.const 0 + i32.lt_s if - i32.const 1 - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 8 + local.get $3 + local.get $2 i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - return + local.tee $4 + i32.const 0 + local.tee $5 + local.get $4 + local.get $5 + i32.gt_s + select + local.set $2 end local.get $0 + i32.load offset=4 local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - i32.const 0 - local.get $1 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - local.get $2 - local.tee $4 - local.get $3 - local.tee $5 - local.get $4 - local.get $5 - i32.lt_s - select - call $~lib/util/string/compareImpl - local.set $4 - local.get $4 - if (result i32) - local.get $4 - else + loop $while-continue|0 local.get $2 local.get $3 - i32.sub + i32.lt_s + local.set $4 + local.get $4 + if + local.get $6 + local.get $2 + i32.const 0 + i32.shl + i32.add + i32.load8_u + local.get $1 + i32.const 255 + i32.and + i32.eq + if + local.get $2 + return + end + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $while-continue|0 + end end - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 + i32.const -1 ) - (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 - call $~stack_check - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store + (func $~lib/array/Array#includes (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + i32.const 0 + drop local.get $0 local.get $1 + local.get $2 + call $~lib/array/Array#indexOf + i32.const 0 + i32.ge_s + return + ) + (func $~lib/array/Array#lastIndexOf (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $0 + i32.load offset=12 + local.set $3 + local.get $3 + i32.const 0 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 + i32.const -1 return end - local.get $0 + local.get $2 i32.const 0 - i32.eq - if (result i32) - i32.const 1 - else - local.get $1 - i32.const 0 - i32.eq - end + i32.lt_s if - i32.const 0 - local.set $3 - global.get $~lib/memory/__stack_pointer - i32.const 8 + local.get $3 + local.get $2 i32.add - global.set $~lib/memory/__stack_pointer + local.set $2 + else + local.get $2 local.get $3 - return + i32.ge_s + if + local.get $3 + i32.const 1 + i32.sub + local.set $2 + end + end + local.get $0 + i32.load offset=4 + local.set $4 + loop $while-continue|0 + local.get $2 + i32.const 0 + i32.ge_s + local.set $5 + local.get $5 + if + local.get $4 + local.get $2 + i32.const 0 + i32.shl + i32.add + i32.load8_u + local.get $1 + i32.const 255 + i32.and + i32.eq + if + local.get $2 + return + end + local.get $2 + i32.const 1 + i32.sub + local.set $2 + br $while-continue|0 + end end + i32.const -1 + ) + (func $~lib/array/Array#push (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) local.get $0 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store - local.get $3 - call $~lib/string/String#get:length + i32.load offset=12 local.set $2 local.get $2 - local.get $1 + i32.const 1 + i32.add 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 $0 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store local.get $3 i32.const 0 - local.get $1 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 + call $~lib/array/ensureSize i32.const 0 - local.get $2 - 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 - ) - (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 - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store + drop local.get $0 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $2 - local.get $1 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 + i32.load offset=4 local.get $2 - call $~lib/string/String.__eq - i32.eqz - local.set $2 - global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 0 + i32.shl i32.add - global.set $~lib/memory/__stack_pointer - local.get $2 + local.get $1 + i32.store8 + local.get $0 + local.get $3 + call $~lib/array/Array#set:length_ + local.get $3 ) - (func $std/array/isArraysEqual<~lib/string/String|null> (param $0 i32) (param $1 i32) (param $2 i32) (result 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 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 + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + local.get $0 + i32.load offset=4 + local.set $4 + local.get $0 + i32.load offset=12 + local.set $5 + local.get $3 + local.tee $6 + local.get $5 + local.tee $7 + local.get $6 + local.get $7 + i32.lt_s + select + local.set $3 + local.get $1 i32.const 0 - i32.store offset=8 - local.get $2 - i32.eqz - if - local.get $0 - local.set $5 - global.get $~lib/memory/__stack_pointer + i32.lt_s + if (result i32) local.get $5 - i32.store + local.get $1 + i32.add + local.tee $7 + i32.const 0 + local.tee $6 + local.get $7 + local.get $6 + i32.gt_s + select + else + local.get $1 + local.tee $6 + local.get $5 + local.tee $7 + local.get $6 + local.get $7 + i32.lt_s + select + end + local.set $8 + local.get $2 + i32.const 0 + i32.lt_s + if (result i32) local.get $5 - call $~lib/array/Array<~lib/string/String|null>#get:length - local.set $2 local.get $2 - local.get $1 - local.set $5 - global.get $~lib/memory/__stack_pointer + i32.add + local.tee $7 + i32.const 0 + local.tee $6 + local.get $7 + local.get $6 + i32.gt_s + select + else + local.get $2 + local.tee $6 local.get $5 - i32.store + local.tee $7 + local.get $6 + local.get $7 + i32.lt_s + select + end + local.set $9 + local.get $3 + i32.const 0 + i32.lt_s + if (result i32) local.get $5 - call $~lib/array/Array<~lib/string/String|null>#get:length - i32.ne - if - i32.const 0 - local.set $5 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $5 - return - end - local.get $0 - local.get $1 - i32.eq - if - i32.const 1 - local.set $5 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $5 - return - end + local.get $3 + i32.add + local.tee $7 + i32.const 0 + local.tee $6 + local.get $7 + local.get $6 + i32.gt_s + select + else + local.get $3 + local.tee $6 + local.get $5 + local.tee $7 + local.get $6 + local.get $7 + i32.lt_s + select + end + local.set $10 + local.get $10 + local.get $9 + i32.sub + local.tee $7 + local.get $5 + local.get $8 + i32.sub + local.tee $6 + local.get $7 + local.get $6 + i32.lt_s + select + local.set $11 + local.get $4 + local.get $8 + i32.const 0 + i32.shl + i32.add + local.get $4 + local.get $9 + i32.const 0 + i32.shl + i32.add + local.get $11 + i32.const 0 + i32.shl + call $~lib/memory/memory.copy + local.get $0 + ) + (func $~lib/array/Array#pop (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) + local.get $0 + i32.load offset=12 + local.set $1 + local.get $1 + i32.const 1 + i32.lt_s + if + i32.const 1152 + i32.const 80 + i32.const 269 + i32.const 21 + call $~lib/builtins/abort + unreachable end + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 1 + i32.sub + local.tee $1 + i32.const 0 + i32.shl + i32.add + i32.load8_u + local.set $2 + local.get $0 + local.get $1 + call $~lib/array/Array#set:length_ + local.get $2 + ) + (func $~lib/array/Array#forEach (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) i32.const 0 + local.set $2 + local.get $0 + i32.load offset=12 local.set $3 loop $for-loop|0 - local.get $3 local.get $2 + local.get $3 + local.tee $4 + local.get $0 + i32.load offset=12 + local.tee $5 + local.get $4 + local.get $5 + i32.lt_s + select i32.lt_s local.set $4 local.get $4 if + local.get $0 + i32.load offset=4 + local.get $2 i32.const 0 - drop + i32.shl + i32.add + i32.load8_u + local.get $2 local.get $0 - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=8 - local.get $5 - local.get $3 - call $~lib/array/Array<~lib/string/String|null>#__get - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - local.get $5 + i32.const 3 + global.set $~argumentsLength local.get $1 - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=8 - local.get $5 - local.get $3 - call $~lib/array/Array<~lib/string/String|null>#__get - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - call $~lib/string/String.__ne - if - i32.const 0 - local.set $5 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $5 - return - end - local.get $3 + i32.load + call_indirect (type $i32_i32_i32_=>_none) + local.get $2 i32.const 1 i32.add - local.set $3 + local.set $2 br $for-loop|0 end end - i32.const 1 - local.set $5 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $5 ) - (func $~lib/string/String#charAt (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#shift (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 - call $~stack_check - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - local.get $1 + (local $4 i32) local.get $0 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store - local.get $3 - call $~lib/string/String#get:length - i32.ge_u + i32.load offset=12 + local.set $1 + local.get $1 + i32.const 1 + i32.lt_s if - i32.const 7728 - local.set $3 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $3 - return + i32.const 1152 + i32.const 80 + i32.const 328 + i32.const 21 + call $~lib/builtins/abort + unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 2 - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $2 - i32.store offset=4 - local.get $2 local.get $0 + i32.load offset=4 + local.set $2 + local.get $2 + i32.load8_u + local.set $3 local.get $1 i32.const 1 - i32.shl + i32.sub + local.set $4 + local.get $2 + local.get $2 + i32.const 1 i32.add - i32.load16_u - i32.store16 + local.get $4 + i32.const 0 + i32.shl + call $~lib/memory/memory.copy + i32.const 0 + drop local.get $2 - local.set $3 - global.get $~lib/memory/__stack_pointer - i32.const 8 + local.get $4 + i32.const 0 + i32.shl i32.add - global.set $~lib/memory/__stack_pointer + i32.const 0 + i32.store8 + local.get $0 + local.get $4 + call $~lib/array/Array#set:length_ local.get $3 ) - (func $~lib/string/String#concat (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#some (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 - 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 $1 i32.const 0 - i32.eq - if - global.get $~lib/memory/__stack_pointer - i32.const 7888 - local.tee $1 - i32.store + local.set $2 + local.get $0 + i32.load offset=12 + local.set $3 + loop $for-loop|0 + local.get $2 + local.get $3 + local.tee $4 + local.get $0 + i32.load offset=12 + local.tee $5 + local.get $4 + local.get $5 + i32.lt_s + select + i32.lt_s + local.set $4 + local.get $4 + if + local.get $0 + i32.load offset=4 + local.get $2 + i32.const 0 + i32.shl + i32.add + i32.load8_u + local.get $2 + local.get $0 + i32.const 3 + global.set $~argumentsLength + local.get $1 + i32.load + call_indirect (type $i32_i32_i32_=>_i32) + if + i32.const 1 + return + end + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|0 + end end + i32.const 0 + ) + (func $~lib/array/Array#unshift (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) local.get $0 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - call $~lib/string/String#get:length + i32.load offset=12 i32.const 1 - i32.shl + i32.add local.set $2 - local.get $1 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - call $~lib/string/String#get:length - i32.const 1 - i32.shl - local.set $3 + local.get $0 local.get $2 - local.get $3 - i32.add - local.set $4 - local.get $4 i32.const 0 - i32.eq - if - i32.const 7728 - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - return - end - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $5 - i32.store offset=8 - local.get $5 + call $~lib/array/ensureSize local.get $0 - local.get $2 - call $~lib/memory/memory.copy - local.get $5 - local.get $2 - i32.add - local.get $1 + i32.load offset=4 + local.set $3 local.get $3 - call $~lib/memory/memory.copy - local.get $5 - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 1 i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - ) - (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 + local.get $3 + local.get $2 + i32.const 1 i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - local.get $0 - i32.const 7888 - local.get $0 i32.const 0 - i32.ne - select - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $2 + i32.shl + call $~lib/memory/memory.copy + local.get $3 local.get $1 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 + i32.store8 + i32.const 0 + drop + local.get $0 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 + call $~lib/array/Array#set:length_ local.get $2 ) - (func $std/array/createRandomString (param $0 i32) (result i32) + (func $~lib/array/Array#reverse (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) - (local $4 f64) + (local $4 i32) + (local $5 i32) + local.get $0 + i32.load offset=12 + local.set $1 + local.get $1 + if + local.get $0 + i32.load offset=4 + local.set $2 + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 1 + i32.sub + i32.const 0 + i32.shl + i32.add + local.set $3 + loop $while-continue|0 + local.get $2 + local.get $3 + i32.lt_u + local.set $4 + local.get $4 + if + local.get $2 + i32.load8_u + local.set $5 + local.get $2 + local.get $3 + i32.load8_u + i32.store8 + local.get $3 + local.get $5 + i32.store8 + local.get $2 + i32.const 1 + i32.add + local.set $2 + local.get $3 + i32.const 1 + i32.sub + local.set $3 + br $while-continue|0 + end + end + end + local.get $0 + ) + (func $~lib/util/sort/insertionSort (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) + i32.const 0 + local.set $3 + loop $for-loop|0 + local.get $3 + local.get $1 + i32.lt_s + local.set $4 + local.get $4 + if + local.get $0 + local.get $3 + i32.const 0 + i32.shl + i32.add + i32.load8_u + local.set $5 + local.get $3 + i32.const 1 + i32.sub + local.set $6 + block $while-break|1 + loop $while-continue|1 + local.get $6 + i32.const 0 + i32.ge_s + local.set $7 + local.get $7 + if + local.get $0 + local.get $6 + i32.const 0 + i32.shl + i32.add + i32.load8_u + local.set $8 + local.get $5 + local.get $8 + i32.const 2 + global.set $~argumentsLength + local.get $2 + i32.load + call_indirect (type $i32_i32_=>_i32) + i32.const 0 + i32.lt_s + if + local.get $0 + local.get $6 + local.tee $9 + i32.const 1 + i32.sub + local.set $6 + local.get $9 + i32.const 1 + i32.add + i32.const 0 + i32.shl + i32.add + local.get $8 + i32.store8 + else + br $while-break|1 + end + br $while-continue|1 + end + end + end + local.get $0 + local.get $6 + i32.const 1 + i32.add + i32.const 0 + i32.shl + i32.add + local.get $5 + i32.store8 + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $for-loop|0 + end + end + ) + (func $~lib/util/sort/weakHeapSort (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 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 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - i32.const 7728 - local.tee $1 - i32.store + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + local.get $1 + i32.const 31 + i32.add + i32.const 5 + i32.shr_u + i32.const 2 + i32.shl + local.set $3 + local.get $3 + call $~lib/rt/tlsf/__alloc + local.set $4 + local.get $4 i32.const 0 - local.set $2 + local.get $3 + call $~lib/memory/memory.fill + local.get $1 + i32.const 1 + i32.sub + local.set $5 loop $for-loop|0 - local.get $2 - local.get $0 - i32.lt_s - local.set $3 - local.get $3 + local.get $5 + i32.const 0 + i32.gt_s + local.set $6 + local.get $6 if - global.get $~lib/memory/__stack_pointer - local.get $1 - local.set $5 - global.get $~lib/memory/__stack_pointer local.get $5 - i32.store offset=4 - local.get $5 - global.get $std/array/charset - local.set $5 - global.get $~lib/memory/__stack_pointer + local.set $7 + loop $while-continue|1 + local.get $7 + i32.const 1 + i32.and + local.get $4 + local.get $7 + i32.const 6 + i32.shr_u + i32.const 2 + i32.shl + i32.add + i32.load + local.get $7 + i32.const 1 + i32.shr_s + i32.const 31 + i32.and + i32.shr_u + i32.const 1 + i32.and + i32.eq + local.set $8 + local.get $8 + if + local.get $7 + i32.const 1 + i32.shr_s + local.set $7 + br $while-continue|1 + end + end + local.get $7 + i32.const 1 + i32.shr_s + local.set $8 + local.get $0 + local.get $8 + i32.const 0 + i32.shl + i32.add + i32.load8_u + local.set $9 + local.get $0 local.get $5 - i32.store offset=12 + i32.const 0 + i32.shl + i32.add + i32.load8_u + local.set $10 + local.get $9 + local.get $10 + i32.const 2 + global.set $~argumentsLength + local.get $2 + i32.load + call_indirect (type $i32_i32_=>_i32) + i32.const 0 + i32.lt_s + if + local.get $4 + local.get $5 + i32.const 5 + i32.shr_u + i32.const 2 + i32.shl + i32.add + local.get $4 + local.get $5 + i32.const 5 + i32.shr_u + i32.const 2 + i32.shl + i32.add + i32.load + i32.const 1 + local.get $5 + i32.const 31 + i32.and + i32.shl + i32.xor + i32.store + local.get $0 + local.get $5 + i32.const 0 + i32.shl + i32.add + local.get $9 + i32.store8 + local.get $0 + local.get $8 + i32.const 0 + i32.shl + i32.add + local.get $10 + i32.store8 + end local.get $5 - call $~lib/math/NativeMath.random - global.get $std/array/charset + i32.const 1 + i32.sub local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=16 + br $for-loop|0 + end + end + local.get $1 + i32.const 1 + i32.sub + local.set $5 + loop $for-loop|2 + local.get $5 + i32.const 2 + i32.ge_s + local.set $6 + local.get $6 + if + local.get $0 + i32.load8_u + local.set $10 + local.get $0 + local.get $0 local.get $5 - call $~lib/string/String#get:length - f64.convert_i32_s - f64.mul - local.set $4 - local.get $4 - f64.floor - i32.trunc_f64_s - call $~lib/string/String#charAt - local.set $5 - global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.shl + i32.add + i32.load8_u + i32.store8 + local.get $0 local.get $5 - i32.store offset=8 + i32.const 0 + i32.shl + i32.add + local.get $10 + i32.store8 + i32.const 1 + local.set $9 + loop $while-continue|3 + local.get $9 + i32.const 1 + i32.shl + local.get $4 + local.get $9 + i32.const 5 + i32.shr_u + i32.const 2 + i32.shl + i32.add + i32.load + local.get $9 + i32.const 31 + i32.and + i32.shr_u + i32.const 1 + i32.and + i32.add + local.tee $8 + local.get $5 + i32.lt_s + local.set $7 + local.get $7 + if + local.get $8 + local.set $9 + br $while-continue|3 + end + end + loop $while-continue|4 + local.get $9 + i32.const 0 + i32.gt_s + local.set $7 + local.get $7 + if + local.get $0 + i32.load8_u + local.set $10 + local.get $0 + local.get $9 + i32.const 0 + i32.shl + i32.add + i32.load8_u + local.set $11 + local.get $10 + local.get $11 + i32.const 2 + global.set $~argumentsLength + local.get $2 + i32.load + call_indirect (type $i32_i32_=>_i32) + i32.const 0 + i32.lt_s + if + local.get $4 + local.get $9 + i32.const 5 + i32.shr_u + i32.const 2 + i32.shl + i32.add + local.get $4 + local.get $9 + i32.const 5 + i32.shr_u + i32.const 2 + i32.shl + i32.add + i32.load + i32.const 1 + local.get $9 + i32.const 31 + i32.and + i32.shl + i32.xor + i32.store + local.get $0 + local.get $9 + i32.const 0 + i32.shl + i32.add + local.get $10 + i32.store8 + local.get $0 + local.get $11 + i32.store8 + end + local.get $9 + i32.const 1 + i32.shr_s + local.set $9 + br $while-continue|4 + end + end local.get $5 - call $~lib/string/String.__concat - local.tee $1 - i32.store - local.get $2 i32.const 1 - i32.add - local.set $2 - br $for-loop|0 + i32.sub + local.set $5 + br $for-loop|2 end end - local.get $1 - local.set $5 - global.get $~lib/memory/__stack_pointer - i32.const 20 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $5 + local.get $4 + call $~lib/rt/tlsf/__free + local.get $0 + i32.load8_u offset=1 + local.set $12 + local.get $0 + local.get $0 + i32.load8_u + i32.store8 offset=1 + local.get $0 + local.get $12 + i32.store8 ) - (func $~lib/array/Array<~lib/string/String>#__set (param $0 i32) (param $1 i32) (param $2 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 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 $1 + (local $4 i32) + (local $5 i32) + (local $6 i32) local.get $0 i32.load offset=12 - i32.ge_u + local.set $2 + local.get $2 + i32.const 1 + i32.le_s + if + local.get $0 + return + end + local.get $0 + i32.load offset=4 + local.set $3 + local.get $2 + i32.const 2 + i32.eq if + local.get $3 + i32.load8_u offset=1 + local.set $4 + local.get $3 + i32.load8_u + local.set $5 + local.get $4 + local.get $5 + i32.const 2 + global.set $~argumentsLength local.get $1 + i32.load + call_indirect (type $i32_i32_=>_i32) i32.const 0 i32.lt_s if - i32.const 320 - i32.const 80 - i32.const 108 - i32.const 22 - call $~lib/builtins/abort - unreachable + local.get $3 + local.get $5 + i32.store8 offset=1 + local.get $3 + local.get $4 + i32.store8 end local.get $0 - local.get $1 - i32.const 1 - i32.add - i32.const 2 - call $~lib/array/ensureSize - local.get $0 - local.get $1 - i32.const 1 - i32.add - call $~lib/array/Array<~lib/string/String>#set:length_ + return end - local.get $0 - local.set $3 - global.get $~lib/memory/__stack_pointer local.get $3 - i32.store - local.get $3 - local.get $1 + local.set $6 local.get $2 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - call $~lib/array/Array<~lib/string/String>#__uset - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer + local.set $5 + local.get $1 + local.set $4 + i32.const 0 + drop + local.get $5 + i32.const 256 + i32.lt_s + if + local.get $6 + local.get $5 + local.get $4 + call $~lib/util/sort/insertionSort + else + local.get $6 + local.get $5 + local.get $4 + call $~lib/util/sort/weakHeapSort + end + local.get $0 ) - (func $std/array/createRandomStringArray (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 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 + (func $~lib/array/Array#flat (param $0 i32) (result i32) i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer + i32.eqz + drop + i32.const 13584 + i32.const 80 + i32.const 470 + i32.const 7 + call $~lib/builtins/abort + unreachable + ) + (func $~lib/array/Array#__visit (param $0 i32) (param $1 i32) i32.const 0 + drop + local.get $0 + i32.load + local.get $1 + call $~lib/rt/itcms/__visit + ) + (func $~lib/array/Array<~lib/string/String>#get:buffer (param $0 i32) (result i32) + local.get $0 + i32.load + ) + (func $~lib/array/Array<~lib/string/String>#get:dataStart (param $0 i32) (result i32) + local.get $0 + i32.load offset=4 + ) + (func $~lib/array/Array<~lib/string/String>#get:byteLength (param $0 i32) (result i32) + local.get $0 + i32.load offset=8 + ) + (func $~lib/array/Array<~lib/string/String>#get:length_ (param $0 i32) (result i32) + local.get $0 + i32.load offset=12 + ) + (func $~lib/array/Array<~lib/string/String>#set:length (param $0 i32) (param $1 i32) local.get $0 - call $~lib/array/Array<~lib/string/String>#constructor - local.tee $1 - i32.store - i32.const 0 - local.set $2 - loop $for-loop|0 - local.get $2 - local.get $0 - i32.lt_s - local.set $3 - local.get $3 - if - local.get $1 - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - local.get $2 - call $~lib/math/NativeMath.random - f64.const 32 - f64.mul - i32.trunc_f64_s - call $std/array/createRandomString - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=8 - local.get $4 - call $~lib/array/Array<~lib/string/String>#__set - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $for-loop|0 - end - end local.get $1 - local.set $4 - global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 2 + call $~lib/array/ensureSize + local.get $0 + local.get $1 + call $~lib/array/Array<~lib/string/String>#set:length_ + ) + (func $~lib/array/Array<~lib/string/String>#__uget (param $0 i32) (param $1 i32) (result i32) + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 2 + i32.shl i32.add - global.set $~lib/memory/__stack_pointer - local.get $4 + i32.load ) - (func $~lib/util/sort/insertionSort<~lib/string/String> (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) + (func $~lib/array/Array<~lib/string/String>#fill (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result 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 16 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=8 + local.get $0 + i32.load offset=4 + local.set $4 + local.get $0 + i32.load offset=12 + local.set $5 + local.get $2 + i32.const 0 + i32.lt_s + if (result i32) + local.get $5 + local.get $2 + i32.add + local.tee $6 + i32.const 0 + local.tee $7 + local.get $6 + local.get $7 + i32.gt_s + select + else + local.get $2 + local.tee $7 + local.get $5 + local.tee $6 + local.get $7 + local.get $6 + i32.lt_s + select + end + local.set $2 + local.get $3 i32.const 0 + i32.lt_s + if (result i32) + local.get $5 + local.get $3 + i32.add + local.tee $6 + i32.const 0 + local.tee $7 + local.get $6 + local.get $7 + i32.gt_s + select + else + local.get $3 + local.tee $7 + local.get $5 + local.tee $6 + local.get $7 + local.get $6 + i32.lt_s + select + end local.set $3 + i32.const 1 + drop loop $for-loop|0 + local.get $2 local.get $3 - local.get $1 i32.lt_s - local.set $4 - local.get $4 + local.set $7 + local.get $7 if - global.get $~lib/memory/__stack_pointer - local.get $0 - local.get $3 + local.get $4 + local.get $2 i32.const 2 i32.shl i32.add - i32.load - local.tee $5 + local.get $1 i32.store - local.get $3 - i32.const 1 - i32.sub - local.set $6 - block $while-break|1 - loop $while-continue|1 - local.get $6 - i32.const 0 - i32.ge_s - local.set $7 - local.get $7 - if - global.get $~lib/memory/__stack_pointer - local.get $0 - local.get $6 - i32.const 2 - i32.shl - i32.add - i32.load - local.tee $8 - i32.store offset=4 - local.get $5 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=8 - local.get $10 - local.get $8 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=12 - local.get $10 - i32.const 2 - global.set $~argumentsLength - local.get $2 - i32.load - call_indirect (type $i32_i32_=>_i32) - i32.const 0 - i32.lt_s - if - local.get $0 - local.get $6 - local.tee $9 - i32.const 1 - i32.sub - local.set $6 - local.get $9 - i32.const 1 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $8 - i32.store - else - br $while-break|1 - end - br $while-continue|1 - end - end - end local.get $0 - local.get $6 + local.get $1 i32.const 1 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $5 - i32.store - local.get $3 + call $~lib/rt/itcms/__link + 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 - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer + local.get $0 ) - (func $~lib/array/Array<~lib/string/String>#sort (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array<~lib/string/String>#includes (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + i32.const 0 + drop + local.get $0 + local.get $1 + local.get $2 + call $~lib/array/Array<~lib/string/String>#indexOf + i32.const 0 + i32.ge_s + return + ) + (func $~lib/array/Array<~lib/string/String>#push (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 - 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 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=16 local.get $0 i32.load offset=12 - local.set $2 - local.get $2 - i32.const 1 - i32.le_s - if - local.get $0 - local.set $7 - global.get $~lib/memory/__stack_pointer - i32.const 20 + local.set $2 + local.get $2 + i32.const 1 + i32.add + local.set $3 + local.get $0 + local.get $3 + i32.const 2 + call $~lib/array/ensureSize + i32.const 1 + drop + 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 + local.get $0 + local.get $3 + call $~lib/array/Array<~lib/string/String>#set:length_ + local.get $3 + ) + (func $~lib/array/Array<~lib/string/String>#copyWithin (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result 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.get $0 + i32.load offset=4 + local.set $4 + local.get $0 + i32.load offset=12 + local.set $5 + local.get $3 + local.tee $6 + local.get $5 + local.tee $7 + local.get $6 + local.get $7 + i32.lt_s + select + local.set $3 + local.get $1 + i32.const 0 + i32.lt_s + if (result i32) + local.get $5 + local.get $1 i32.add - global.set $~lib/memory/__stack_pointer + local.tee $7 + i32.const 0 + local.tee $6 local.get $7 - return + local.get $6 + i32.gt_s + select + else + local.get $1 + local.tee $6 + local.get $5 + local.tee $7 + local.get $6 + local.get $7 + i32.lt_s + select end - local.get $0 - i32.load offset=4 - local.set $3 + local.set $8 local.get $2 - i32.const 2 - i32.eq - if - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.load offset=4 - local.tee $4 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.load - local.tee $5 - i32.store offset=4 - local.get $4 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=8 - local.get $7 + i32.const 0 + i32.lt_s + if (result i32) local.get $5 - local.set $7 - global.get $~lib/memory/__stack_pointer + local.get $2 + i32.add + local.tee $7 + i32.const 0 + local.tee $6 local.get $7 - i32.store offset=12 + local.get $6 + i32.gt_s + select + else + local.get $2 + local.tee $6 + local.get $5 + local.tee $7 + local.get $6 local.get $7 - i32.const 2 - global.set $~argumentsLength - local.get $1 - i32.load - call_indirect (type $i32_i32_=>_i32) - i32.const 0 i32.lt_s - if - local.get $3 - local.get $5 - i32.store offset=4 - local.get $3 - local.get $4 - i32.store - end - local.get $0 - local.set $7 - global.get $~lib/memory/__stack_pointer - i32.const 20 + select + end + local.set $9 + local.get $3 + i32.const 0 + i32.lt_s + if (result i32) + local.get $5 + local.get $3 i32.add - global.set $~lib/memory/__stack_pointer + local.tee $7 + i32.const 0 + local.tee $6 local.get $7 - return + local.get $6 + i32.gt_s + select + else + local.get $3 + local.tee $6 + local.get $5 + local.tee $7 + local.get $6 + local.get $7 + i32.lt_s + select end + local.set $10 + local.get $10 + local.get $9 + i32.sub + local.tee $7 + local.get $5 + local.get $8 + i32.sub + local.tee $6 + local.get $7 + local.get $6 + i32.lt_s + select + local.set $11 + local.get $4 + local.get $8 + i32.const 2 + i32.shl + i32.add + local.get $4 + local.get $9 + i32.const 2 + i32.shl + i32.add + local.get $11 + i32.const 2 + i32.shl + call $~lib/memory/memory.copy + local.get $0 + ) + (func $~lib/array/Array<~lib/string/String>#unshift (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + local.get $0 + i32.load offset=12 + i32.const 1 + i32.add + local.set $2 + local.get $0 + local.get $2 + i32.const 2 + call $~lib/array/ensureSize + local.get $0 + i32.load offset=4 + local.set $3 + local.get $3 + i32.const 4 + i32.add local.get $3 - local.set $6 local.get $2 - local.set $5 - global.get $~lib/memory/__stack_pointer + i32.const 1 + i32.sub + i32.const 2 + i32.shl + call $~lib/memory/memory.copy + local.get $3 local.get $1 - local.tee $4 i32.store i32.const 1 drop - local.get $6 - local.get $5 - local.get $4 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=16 - local.get $7 - call $~lib/util/sort/insertionSort<~lib/string/String> local.get $0 - local.set $7 - global.get $~lib/memory/__stack_pointer - i32.const 20 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $7 + local.get $1 + i32.const 1 + call $~lib/rt/itcms/__link + local.get $0 + local.get $2 + call $~lib/array/Array<~lib/string/String>#set:length_ + local.get $2 + ) + (func $~lib/array/Array<~lib/string/String>#join (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + local.get $0 + i32.load offset=4 + local.set $2 + local.get $0 + i32.load offset=12 + local.set $3 + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + i32.const 1 + i32.lt_s + drop + i32.const 1 + drop + local.get $2 + local.get $3 + local.get $1 + call $~lib/util/string/joinStringArray + return + ) + (func $~lib/array/Array<~lib/string/String>#flat (param $0 i32) (result i32) + i32.const 0 + i32.eqz + drop + i32.const 13584 + i32.const 80 + i32.const 470 + i32.const 7 + call $~lib/builtins/abort + unreachable ) - (func $std/array/isSorted<~lib/string/String> (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array<~lib/string/String>#__visit (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 - 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 + local.get $0 + i32.load offset=4 local.set $2 + local.get $2 local.get $0 - 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.load offset=12 + i32.const 2 + i32.shl + i32.add local.set $3 - loop $for-loop|0 + loop $while-continue|0 local.get $2 local.get $3 - i32.lt_s + i32.lt_u local.set $4 local.get $4 if - local.get $0 - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=8 - local.get $5 - local.get $2 - i32.const 1 - i32.sub - call $~lib/array/Array<~lib/string/String>#__get - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - local.get $5 - local.get $0 - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=8 - local.get $5 local.get $2 - call $~lib/array/Array<~lib/string/String>#__get + i32.load local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 local.get $5 - i32.const 2 - global.set $~argumentsLength - local.get $1 - i32.load - call_indirect (type $i32_i32_=>_i32) - i32.const 0 - i32.gt_s if - i32.const 0 - local.set $5 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer local.get $5 - return + local.get $1 + call $~lib/rt/itcms/__visit end local.get $2 - i32.const 1 + i32.const 4 i32.add local.set $2 - br $for-loop|0 + br $while-continue|0 end end - i32.const 1 - local.set $5 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $5 - ) - (func $std/array/assertSorted<~lib/string/String> (param $0 i32) (param $1 i32) - (local $2 i32) - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=8 local.get $0 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=8 - local.get $2 - local.get $1 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=12 - local.get $2 - call $~lib/array/Array<~lib/string/String>#sort - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $2 + i32.load local.get $1 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - call $std/array/isSorted<~lib/string/String> - i32.eqz - if - i32.const 0 - i32.const 528 - i32.const 942 - 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 $~lib/rt/itcms/__visit ) - (func $~lib/util/sort/COMPARATOR<~lib/string/String>~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 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 $0 - local.get $1 - i32.eq - if (result i32) - i32.const 1 - else - local.get $0 - i32.const 0 - i32.eq - end - if (result i32) - i32.const 1 - else - local.get $1 - i32.const 0 - i32.eq - end - if + (func $std/array/ArrayU32#constructor@varargs (param $0 i32) (param $1 i32) (result i32) + block $1of1 + block $0of1 + block $outOfRange + global.get $~argumentsLength + br_table $0of1 $1of1 $outOfRange + end + unreachable + end i32.const 0 - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - return + local.set $1 end local.get $0 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - call $~lib/string/String#get:length - local.set $2 local.get $1 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - call $~lib/string/String#get:length - local.set $3 - local.get $2 - local.get $3 - i32.or - i32.eqz - if - i32.const 0 - 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 - local.get $2 - i32.eqz - if - i32.const -1 - 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 - local.get $3 - i32.eqz - if - i32.const 1 - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - return + call $std/array/ArrayU32#constructor + ) + (func $~lib/array/Array#fill@varargs (param $0 i32) (param $1 i32) (param $2 i32) (param $3 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 0 + local.set $2 + end + global.get $~lib/builtins/i32.MAX_VALUE + local.set $3 end local.get $0 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - i32.const 0 local.get $1 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 local.get $2 - local.tee $4 local.get $3 - local.tee $5 - local.get $4 - local.get $5 - i32.lt_s - select - call $~lib/util/string/compareImpl - local.set $4 - local.get $4 - if (result i32) - local.get $4 - else - local.get $2 - local.get $3 - i32.sub - end - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 + call $~lib/array/Array#fill ) - (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) - (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 8 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store + (func $~lib/array/Array#includes@varargs (param $0 i32) (param $1 i32) (param $2 i32) (result 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 0 + local.set $2 + end local.get $0 - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store - local.get $12 - call $~lib/string/String#get:length - local.set $3 local.get $1 - local.tee $4 - i32.const 0 - local.tee $5 - local.get $4 - local.get $5 - i32.gt_s - select - local.tee $5 - local.get $3 - local.tee $4 - local.get $5 - local.get $4 - i32.lt_s - select - local.set $6 local.get $2 - local.tee $4 - i32.const 0 - local.tee $5 - local.get $4 - local.get $5 - i32.gt_s - select - local.tee $5 - local.get $3 - local.tee $4 - local.get $5 - local.get $4 - i32.lt_s - select - local.set $7 - local.get $6 - local.tee $4 - local.get $7 - local.tee $5 - local.get $4 - local.get $5 - i32.lt_s - select - i32.const 1 - i32.shl - local.set $8 - local.get $6 - local.tee $5 - local.get $7 - local.tee $4 - local.get $5 - local.get $4 - i32.gt_s - select - i32.const 1 - i32.shl - local.set $9 - local.get $9 - local.get $8 - i32.sub - local.set $10 - local.get $10 - i32.eqz - if - i32.const 7728 - local.set $12 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $12 - return - end - local.get $8 - i32.eqz - if (result i32) - local.get $9 - local.get $3 - i32.const 1 - i32.shl - i32.eq - else + call $~lib/array/Array#includes + ) + (func $~lib/array/Array#indexOf@varargs (param $0 i32) (param $1 i32) (param $2 i32) (result 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 0 + local.set $2 end - if + local.get $0 + local.get $1 + local.get $2 + call $~lib/array/Array#indexOf + ) + (func $~lib/array/Array#lastIndexOf@varargs (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + block $1of1 + block $0of1 + block $outOfRange + global.get $~argumentsLength + i32.const 1 + i32.sub + br_table $0of1 $1of1 $outOfRange + end + unreachable + end local.get $0 - local.set $12 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $12 - return + i32.load offset=12 + local.set $2 end - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $11 - i32.store offset=4 - local.get $11 local.get $0 - local.get $8 - i32.add - local.get $10 - call $~lib/memory/memory.copy - local.get $11 - local.set $12 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $12 - ) - (func $~lib/util/string/joinBooleanArray (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) - (local $11 i32) - (local $12 i32) - (local $13 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 $1 - i32.const 1 - i32.sub - local.set $3 - local.get $3 - i32.const 0 - i32.lt_s - if - i32.const 7728 - local.set $13 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $13 - return + local.get $2 + call $~lib/array/Array#lastIndexOf + ) + (func $~lib/array/Array#copyWithin@varargs (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + block $1of1 + block $0of1 + block $outOfRange + global.get $~argumentsLength + i32.const 2 + i32.sub + br_table $0of1 $1of1 $outOfRange + end + unreachable + end + global.get $~lib/builtins/i32.MAX_VALUE + local.set $3 end + local.get $0 + local.get $1 + local.get $2 local.get $3 - i32.eqz - if - i32.const 7984 - i32.const 8016 - local.get $0 - i32.load8_u - select - local.set $13 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $13 - return + call $~lib/array/Array#copyWithin + ) + (func $~lib/array/Array#slice@varargs (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + 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 + global.get $~lib/builtins/i32.MAX_VALUE + local.set $2 end + local.get $0 + local.get $1 local.get $2 - local.set $13 - global.get $~lib/memory/__stack_pointer - local.get $13 - i32.store - local.get $13 - call $~lib/string/String#get:length - local.set $4 - i32.const 5 - local.set $5 - local.get $5 - local.get $4 - i32.add - local.get $3 - i32.mul - local.get $5 - i32.add - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.const 1 - i32.shl - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $7 - i32.store offset=4 - i32.const 0 - local.set $8 - i32.const 0 - local.set $10 - loop $for-loop|1 - local.get $10 - local.get $3 - i32.lt_s - local.set $12 - local.get $12 - if - local.get $0 - local.get $10 - i32.add - i32.load8_u - local.set $9 - i32.const 4 - local.get $9 - i32.eqz - i32.add - local.set $5 - local.get $7 - local.get $8 - i32.const 1 - i32.shl - i32.add - i32.const 7984 - i32.const 8016 - local.get $9 - select - local.get $5 - i32.const 1 - i32.shl - call $~lib/memory/memory.copy - local.get $8 - local.get $5 - i32.add - local.set $8 - local.get $4 - if - local.get $7 - local.get $8 - i32.const 1 - i32.shl - i32.add - local.get $2 - local.get $4 + call $~lib/array/Array#slice + ) + (func $~lib/array/Array#splice@varargs (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + block $1of1 + block $0of1 + block $outOfRange + global.get $~argumentsLength i32.const 1 - i32.shl - call $~lib/memory/memory.copy - local.get $8 - local.get $4 - i32.add - local.set $8 + i32.sub + br_table $0of1 $1of1 $outOfRange end - local.get $10 - i32.const 1 - i32.add - local.set $10 - br $for-loop|1 + unreachable end + global.get $~lib/builtins/i32.MAX_VALUE + local.set $2 end local.get $0 - local.get $3 - i32.add - i32.load8_u - local.set $9 - i32.const 4 - local.get $9 - i32.eqz - i32.add - local.set $5 - local.get $7 - local.get $8 - i32.const 1 - i32.shl - i32.add - i32.const 7984 - i32.const 8016 - local.get $9 - select - local.get $5 - i32.const 1 - i32.shl - call $~lib/memory/memory.copy - local.get $8 - local.get $5 - i32.add - local.set $8 - local.get $6 - local.get $8 - i32.gt_s - if - local.get $7 - local.set $13 - global.get $~lib/memory/__stack_pointer - local.get $13 - i32.store - local.get $13 + local.get $1 + local.get $2 + call $~lib/array/Array#splice + ) + (func $std/array/ArrayU8#constructor@varargs (param $0 i32) (param $1 i32) (result i32) + block $1of1 + block $0of1 + block $outOfRange + global.get $~argumentsLength + br_table $0of1 $1of1 $outOfRange + end + unreachable + end i32.const 0 - local.get $8 - call $~lib/string/String#substring - local.set $13 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $13 - return + local.set $1 end - local.get $7 - local.set $13 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $13 + local.get $0 + local.get $1 + call $std/array/ArrayU8#constructor ) - (func $~lib/array/Array#join (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 - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store + (func $~lib/array/Array#fill@varargs (param $0 i32) (param $1 i32) (param $2 i32) (param $3 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 0 + local.set $2 + end + global.get $~lib/builtins/i32.MAX_VALUE + local.set $3 + end local.get $0 - i32.load offset=4 - local.set $2 + local.get $1 + local.get $2 + local.get $3 + call $~lib/array/Array#fill + ) + (func $~lib/array/Array#includes@varargs (param $0 i32) (param $1 i32) (param $2 i32) (result 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 0 + local.set $2 + end local.get $0 - i32.load offset=12 - local.set $3 - i32.const 1 - drop + local.get $1 local.get $2 - local.get $3 + call $~lib/array/Array#includes + ) + (func $~lib/array/Array#indexOf@varargs (param $0 i32) (param $1 i32) (param $2 i32) (result 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 0 + local.set $2 + end + local.get $0 local.get $1 - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store - local.get $4 - call $~lib/util/string/joinBooleanArray - local.set $4 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $4 - return + local.get $2 + call $~lib/array/Array#indexOf ) - (func $~lib/util/string/joinIntegerArray (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) - (local $11 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 + (func $~lib/array/Array#lastIndexOf@varargs (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + block $1of1 + block $0of1 + block $outOfRange + global.get $~argumentsLength + i32.const 1 + i32.sub + br_table $0of1 $1of1 $outOfRange + end + unreachable + end + local.get $0 + i32.load offset=12 + local.set $2 + end + local.get $0 local.get $1 - i32.const 1 - i32.sub - local.set $3 - local.get $3 - i32.const 0 - i32.lt_s - if - i32.const 7728 - local.set $11 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $11 - return + local.get $2 + call $~lib/array/Array#lastIndexOf + ) + (func $~lib/array/Array#copyWithin@varargs (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + block $1of1 + block $0of1 + block $outOfRange + global.get $~argumentsLength + i32.const 2 + i32.sub + br_table $0of1 $1of1 $outOfRange + end + unreachable + end + global.get $~lib/builtins/i32.MAX_VALUE + local.set $3 end + local.get $0 + local.get $1 + local.get $2 local.get $3 - i32.eqz - if - local.get $0 - i32.load - local.set $4 - i32.const 1 - drop - i32.const 4 - i32.const 4 - i32.le_u - drop - local.get $4 - i32.const 10 - call $~lib/util/number/itoa32 - local.set $11 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $11 - return + call $~lib/array/Array#copyWithin + ) + (func $~lib/array/Array#slice@varargs (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + 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 + global.get $~lib/builtins/i32.MAX_VALUE + local.set $2 end + local.get $0 + local.get $1 local.get $2 - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store - local.get $11 - call $~lib/string/String#get:length - local.set $5 - i32.const 11 - local.get $5 - i32.add - local.get $3 - i32.mul - i32.const 11 - i32.add - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.const 1 - i32.shl - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $7 - i32.store offset=4 - i32.const 0 - local.set $8 - i32.const 0 - local.set $4 - loop $for-loop|0 - local.get $4 - local.get $3 - i32.lt_s - local.set $10 - local.get $10 - if - local.get $0 - local.get $4 - i32.const 2 - i32.shl - i32.add - i32.load - local.set $9 - local.get $8 - local.get $7 - local.get $8 - i32.const 1 - i32.shl - i32.add - local.get $9 - call $~lib/util/number/itoa_buffered - i32.add - local.set $8 - local.get $5 - if - local.get $7 - local.get $8 - i32.const 1 - i32.shl - i32.add - local.get $2 - local.get $5 + call $~lib/array/Array#slice + ) + (func $~lib/array/Array#splice@varargs (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + block $1of1 + block $0of1 + block $outOfRange + global.get $~argumentsLength i32.const 1 - i32.shl - call $~lib/memory/memory.copy - local.get $8 - local.get $5 - i32.add - local.set $8 + i32.sub + br_table $0of1 $1of1 $outOfRange + end + unreachable + end + global.get $~lib/builtins/i32.MAX_VALUE + local.set $2 + end + local.get $0 + local.get $1 + local.get $2 + call $~lib/array/Array#splice + ) + (func $~lib/util/sort/COMPARATOR~anonymous|0 (param $0 i32) (param $1 i32) (result i32) + local.get $0 + i32.const 255 + i32.and + local.get $1 + i32.const 255 + i32.and + i32.gt_u + local.get $0 + i32.const 255 + i32.and + local.get $1 + i32.const 255 + i32.and + i32.lt_u + i32.sub + ) + (func $std/array/ArrayStr#constructor@varargs (param $0 i32) (param $1 i32) (result i32) + block $1of1 + block $0of1 + block $outOfRange + global.get $~argumentsLength + br_table $0of1 $1of1 $outOfRange end - local.get $4 - i32.const 1 - i32.add - local.set $4 - br $for-loop|0 + unreachable + end + i32.const 0 + local.set $1 + end + local.get $0 + local.get $1 + call $std/array/ArrayStr#constructor + ) + (func $~lib/array/Array<~lib/string/String>#fill@varargs (param $0 i32) (param $1 i32) (param $2 i32) (param $3 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 0 + local.set $2 end + global.get $~lib/builtins/i32.MAX_VALUE + local.set $3 end local.get $0 + local.get $1 + local.get $2 local.get $3 - i32.const 2 - i32.shl - i32.add - i32.load - local.set $9 - local.get $8 - local.get $7 - local.get $8 - i32.const 1 - i32.shl - i32.add - local.get $9 - call $~lib/util/number/itoa_buffered - i32.add - local.set $8 - local.get $6 - local.get $8 - i32.gt_s - if - local.get $7 - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store - local.get $11 + call $~lib/array/Array<~lib/string/String>#fill + ) + (func $~lib/array/Array<~lib/string/String>#includes@varargs (param $0 i32) (param $1 i32) (param $2 i32) (result 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 0 - local.get $8 - call $~lib/string/String#substring - local.set $11 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $11 - return + local.set $2 end - local.get $7 - local.set $11 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $11 + local.get $0 + local.get $1 + local.get $2 + call $~lib/array/Array<~lib/string/String>#includes ) - (func $~lib/array/Array#join (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 - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store + (func $~lib/array/Array<~lib/string/String>#indexOf@varargs (param $0 i32) (param $1 i32) (param $2 i32) (result 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 0 + local.set $2 + end local.get $0 - i32.load offset=4 - local.set $2 + local.get $1 + local.get $2 + call $~lib/array/Array<~lib/string/String>#indexOf + ) + (func $~lib/array/Array<~lib/string/String>#lastIndexOf@varargs (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + block $1of1 + block $0of1 + block $outOfRange + global.get $~argumentsLength + i32.const 1 + i32.sub + br_table $0of1 $1of1 $outOfRange + end + unreachable + end + local.get $0 + i32.load offset=12 + local.set $2 + end local.get $0 - i32.load offset=12 - local.set $3 - i32.const 0 - drop - i32.const 1 - drop + local.get $1 + local.get $2 + call $~lib/array/Array<~lib/string/String>#lastIndexOf + ) + (func $~lib/array/Array<~lib/string/String>#copyWithin@varargs (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + block $1of1 + block $0of1 + block $outOfRange + global.get $~argumentsLength + i32.const 2 + i32.sub + br_table $0of1 $1of1 $outOfRange + end + unreachable + end + global.get $~lib/builtins/i32.MAX_VALUE + local.set $3 + end + local.get $0 + local.get $1 local.get $2 local.get $3 + call $~lib/array/Array<~lib/string/String>#copyWithin + ) + (func $~lib/array/Array<~lib/string/String>#slice@varargs (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + 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 + global.get $~lib/builtins/i32.MAX_VALUE + local.set $2 + end + local.get $0 local.get $1 - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store - local.get $4 - call $~lib/util/string/joinIntegerArray - local.set $4 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $4 - return + local.get $2 + call $~lib/array/Array<~lib/string/String>#slice ) - (func $~lib/util/string/joinIntegerArray (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/array/Array<~lib/string/String>#splice@varargs (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + 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/builtins/i32.MAX_VALUE + local.set $2 + end + local.get $0 + local.get $1 + local.get $2 + call $~lib/array/Array<~lib/string/String>#splice + ) + (func $~lib/util/sort/COMPARATOR<~lib/string/String>~anonymous|1 (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 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 $0 local.get $1 - i32.const 1 - i32.sub - local.set $3 - local.get $3 - i32.const 0 - i32.lt_s + i32.eq + if (result i32) + i32.const 1 + else + local.get $0 + i32.const 0 + i32.eq + end + if (result i32) + i32.const 1 + else + local.get $1 + i32.const 0 + i32.eq + end if - i32.const 7728 - local.set $11 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $11 + i32.const 0 return end + local.get $0 + call $~lib/string/String#get:length + local.set $2 + local.get $1 + call $~lib/string/String#get:length + local.set $3 + local.get $2 local.get $3 + i32.or i32.eqz if - local.get $0 - i32.load - local.set $4 i32.const 0 - drop - i32.const 4 - i32.const 4 - i32.le_u - drop - local.get $4 - i32.const 10 - call $~lib/util/number/utoa32 - 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 $2 - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store - local.get $11 - call $~lib/string/String#get:length - local.set $5 - i32.const 10 - local.get $5 - i32.add + i32.eqz + if + i32.const -1 + return + end local.get $3 - i32.mul - i32.const 10 - i32.add - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.const 1 - i32.shl - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $7 - i32.store offset=4 + i32.eqz + if + i32.const 1 + return + end + local.get $0 i32.const 0 - local.set $8 + local.get $1 i32.const 0 + local.get $2 + local.tee $4 + local.get $3 + local.tee $5 + local.get $4 + local.get $5 + i32.lt_s + select + call $~lib/util/string/compareImpl local.set $4 - loop $for-loop|0 + local.get $4 + if (result i32) local.get $4 + else + local.get $2 local.get $3 - i32.lt_s - local.set $10 - local.get $10 - if - local.get $0 - local.get $4 - i32.const 2 - i32.shl - i32.add - i32.load - local.set $9 - local.get $8 - local.get $7 - local.get $8 - i32.const 1 - i32.shl - i32.add - local.get $9 - call $~lib/util/number/itoa_buffered - i32.add - local.set $8 - local.get $5 - if - local.get $7 - local.get $8 - i32.const 1 - i32.shl - i32.add - local.get $2 - local.get $5 - i32.const 1 - i32.shl - call $~lib/memory/memory.copy - local.get $8 - local.get $5 - i32.add - local.set $8 - end - local.get $4 - i32.const 1 - i32.add - local.set $4 - br $for-loop|0 - end + i32.sub end + ) + (func $~lib/rt/__visit_globals (param $0 i32) + (local $1 i32) + global.get $std/array/arr + local.tee $1 + if + local.get $1 + local.get $0 + call $~lib/rt/itcms/__visit + end + global.get $std/array/charset + local.tee $1 + if + local.get $1 + local.get $0 + call $~lib/rt/itcms/__visit + end + i32.const 320 + local.get $0 + call $~lib/rt/itcms/__visit + i32.const 32 + local.get $0 + call $~lib/rt/itcms/__visit + i32.const 13584 + local.get $0 + call $~lib/rt/itcms/__visit + i32.const 1152 + local.get $0 + call $~lib/rt/itcms/__visit + i32.const 4672 + local.get $0 + call $~lib/rt/itcms/__visit + i32.const 128 + local.get $0 + call $~lib/rt/itcms/__visit + i32.const 8784 + local.get $0 + call $~lib/rt/itcms/__visit + i32.const 9840 + 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 $3 - i32.const 2 - i32.shl - i32.add i32.load - local.set $9 - local.get $8 - local.get $7 - local.get $8 - i32.const 1 - i32.shl - i32.add - local.get $9 - call $~lib/util/number/itoa_buffered - i32.add - local.set $8 - local.get $6 - local.get $8 - i32.gt_s + local.tee $2 if - local.get $7 - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store - local.get $11 - i32.const 0 - local.get $8 - call $~lib/string/String#substring - local.set $11 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $11 - return + local.get $2 + local.get $1 + call $~lib/rt/itcms/__visit end - local.get $7 - local.set $11 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $11 ) - (func $~lib/array/Array#join (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 - call $~stack_check - global.get $~lib/memory/__stack_pointer + (func $~lib/array/Array#__visit (param $0 i32) (param $1 i32) i32.const 0 - i32.store + drop + local.get $0 + i32.load + local.get $1 + call $~lib/rt/itcms/__visit + ) + (func $~lib/array/Array~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/array/Array#__visit + ) + (func $~lib/typedarray/Uint8Array~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/arraybuffer/ArrayBufferView~visit + ) + (func $~lib/array/Array~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/array/Array#__visit + ) + (func $~lib/array/Array~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/array/Array#__visit + ) + (func $~lib/array/Array#__visit (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + i32.const 1 + drop local.get $0 i32.load offset=4 local.set $2 + local.get $2 local.get $0 i32.load offset=12 + i32.const 2 + i32.shl + i32.add local.set $3 + loop $while-continue|0 + local.get $2 + local.get $3 + i32.lt_u + local.set $4 + local.get $4 + if + local.get $2 + i32.load + local.set $5 + local.get $5 + if + local.get $5 + local.get $1 + call $~lib/rt/itcms/__visit + end + local.get $2 + i32.const 4 + i32.add + local.set $2 + br $while-continue|0 + end + end + local.get $0 + i32.load + local.get $1 + call $~lib/rt/itcms/__visit + ) + (func $~lib/array/Array~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/array/Array#__visit + ) + (func $~lib/array/Array#__visit (param $0 i32) (param $1 i32) i32.const 0 drop - i32.const 1 + local.get $0 + i32.load + local.get $1 + call $~lib/rt/itcms/__visit + ) + (func $~lib/array/Array~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/array/Array#__visit + ) + (func $~lib/array/Array#__visit (param $0 i32) (param $1 i32) + i32.const 0 drop - local.get $2 - local.get $3 + local.get $0 + i32.load local.get $1 - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store - local.get $4 - call $~lib/util/string/joinIntegerArray - local.set $4 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $4 - return + call $~lib/rt/itcms/__visit ) - (func $~lib/util/string/joinFloatArray (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/array/Array~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/array/Array#__visit + ) + (func $~lib/array/Array#__visit (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) - 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 $1 i32.const 1 - i32.sub - local.set $3 - local.get $3 - i32.const 0 - i32.lt_s - if - i32.const 7728 - 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 $3 - i32.eqz - if - local.get $0 - f64.load - call $~lib/util/number/dtoa - 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 + drop + local.get $0 + i32.load offset=4 + local.set $2 local.get $2 - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store - local.get $11 - call $~lib/string/String#get:length - local.set $4 - i32.const 28 - local.get $4 - i32.add - local.get $3 - i32.mul - i32.const 28 - i32.add - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.const 1 + local.get $0 + i32.load offset=12 + i32.const 2 i32.shl - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $6 - i32.store offset=4 - i32.const 0 - local.set $7 - i32.const 0 - local.set $9 - loop $for-loop|0 - local.get $9 + i32.add + local.set $3 + loop $while-continue|0 + local.get $2 local.get $3 - i32.lt_s - local.set $10 - local.get $10 + i32.lt_u + local.set $4 + local.get $4 if - local.get $0 - local.get $9 - i32.const 3 - i32.shl - i32.add - f64.load - local.set $8 - local.get $7 - local.get $6 - local.get $7 - i32.const 1 - i32.shl - i32.add - local.get $8 - call $~lib/util/number/dtoa_buffered - i32.add - local.set $7 - local.get $4 + local.get $2 + i32.load + local.set $5 + local.get $5 if - local.get $6 - local.get $7 - i32.const 1 - i32.shl - i32.add - local.get $2 - local.get $4 - i32.const 1 - i32.shl - call $~lib/memory/memory.copy - local.get $7 - local.get $4 - i32.add - local.set $7 + local.get $5 + local.get $1 + call $~lib/rt/itcms/__visit end - local.get $9 - i32.const 1 - i32.add - local.set $9 - br $for-loop|0 - end - end - local.get $0 - local.get $3 - i32.const 3 - i32.shl - i32.add - f64.load - local.set $8 - local.get $7 - local.get $6 - local.get $7 - i32.const 1 - i32.shl - i32.add - local.get $8 - call $~lib/util/number/dtoa_buffered - i32.add - local.set $7 - local.get $5 - local.get $7 - i32.gt_s - if - local.get $6 - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store - local.get $11 - i32.const 0 - local.get $7 - call $~lib/string/String#substring - local.set $11 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $11 - return + local.get $2 + i32.const 4 + i32.add + local.set $2 + br $while-continue|0 + end end - local.get $6 - local.set $11 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $11 + local.get $0 + i32.load + local.get $1 + call $~lib/rt/itcms/__visit ) - (func $~lib/array/Array#join (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 - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store + (func $~lib/array/Array~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/array/Array#__visit + ) + (func $~lib/function/Function<%28i32%2Ci32%2C~lib/array/Array%29=>bool>#__visit (param $0 i32) (param $1 i32) local.get $0 i32.load offset=4 - local.set $2 + local.get $1 + call $~lib/rt/itcms/__visit + ) + (func $~lib/function/Function<%28i32%2Ci32%2C~lib/array/Array%29=>bool>~visit (param $0 i32) (param $1 i32) local.get $0 - i32.load offset=12 - local.set $3 - i32.const 0 - drop - i32.const 0 - drop - i32.const 1 - drop - local.get $2 - local.get $3 local.get $1 - 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 + call $~lib/function/Function<%28i32%2Ci32%2C~lib/array/Array%29=>bool>#__visit ) - (func $~lib/util/string/joinStringArray (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/function/Function<%28i32%2Ci32%2C~lib/array/Array%29=>void>#__visit (param $0 i32) (param $1 i32) + local.get $0 + i32.load offset=4 + local.get $1 + call $~lib/rt/itcms/__visit + ) + (func $~lib/function/Function<%28i32%2Ci32%2C~lib/array/Array%29=>void>~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/function/Function<%28i32%2Ci32%2C~lib/array/Array%29=>void>#__visit + ) + (func $~lib/function/Function<%28i32%2Ci32%2C~lib/array/Array%29=>f32>#__visit (param $0 i32) (param $1 i32) + local.get $0 + i32.load offset=4 + local.get $1 + call $~lib/rt/itcms/__visit + ) + (func $~lib/function/Function<%28i32%2Ci32%2C~lib/array/Array%29=>f32>~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/function/Function<%28i32%2Ci32%2C~lib/array/Array%29=>f32>#__visit + ) + (func $~lib/function/Function<%28i32%2Ci32%2C~lib/array/Array%29=>i32>#__visit (param $0 i32) (param $1 i32) + local.get $0 + i32.load offset=4 + local.get $1 + call $~lib/rt/itcms/__visit + ) + (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/function/Function<%28i32%2Ci32%2C~lib/array/Array%29=>i32>#__visit + ) + (func $~lib/function/Function<%28i32%2Ci32%2Ci32%2C~lib/array/Array%29=>i32>#__visit (param $0 i32) (param $1 i32) + local.get $0 + i32.load offset=4 + local.get $1 + call $~lib/rt/itcms/__visit + ) + (func $~lib/function/Function<%28i32%2Ci32%2Ci32%2C~lib/array/Array%29=>i32>~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/function/Function<%28i32%2Ci32%2Ci32%2C~lib/array/Array%29=>i32>#__visit + ) + (func $~lib/function/Function<%28bool%2Ci32%2Ci32%2C~lib/array/Array%29=>bool>#__visit (param $0 i32) (param $1 i32) + local.get $0 + i32.load offset=4 + local.get $1 + call $~lib/rt/itcms/__visit + ) + (func $~lib/function/Function<%28bool%2Ci32%2Ci32%2C~lib/array/Array%29=>bool>~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/function/Function<%28bool%2Ci32%2Ci32%2C~lib/array/Array%29=>bool>#__visit + ) + (func $~lib/function/Function<%28f32%2Cf32%29=>i32>#__visit (param $0 i32) (param $1 i32) + local.get $0 + i32.load offset=4 + local.get $1 + call $~lib/rt/itcms/__visit + ) + (func $~lib/function/Function<%28f32%2Cf32%29=>i32>~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/function/Function<%28f32%2Cf32%29=>i32>#__visit + ) + (func $~lib/function/Function<%28f64%2Cf64%29=>i32>#__visit (param $0 i32) (param $1 i32) + local.get $0 + i32.load offset=4 + local.get $1 + call $~lib/rt/itcms/__visit + ) + (func $~lib/function/Function<%28f64%2Cf64%29=>i32>~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/function/Function<%28f64%2Cf64%29=>i32>#__visit + ) + (func $~lib/function/Function<%28i32%2Ci32%29=>i32>#__visit (param $0 i32) (param $1 i32) + local.get $0 + i32.load offset=4 + local.get $1 + call $~lib/rt/itcms/__visit + ) + (func $~lib/function/Function<%28i32%2Ci32%29=>i32>~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/function/Function<%28i32%2Ci32%29=>i32>#__visit + ) + (func $~lib/function/Function<%28u32%2Cu32%29=>i32>#__visit (param $0 i32) (param $1 i32) + local.get $0 + i32.load offset=4 + local.get $1 + call $~lib/rt/itcms/__visit + ) + (func $~lib/function/Function<%28u32%2Cu32%29=>i32>~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/function/Function<%28u32%2Cu32%29=>i32>#__visit + ) + (func $~lib/array/Array<~lib/array/Array>#__visit (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 i32) - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=8 - local.get $1 i32.const 1 - i32.sub + drop + local.get $0 + i32.load offset=4 + local.set $2 + local.get $2 + local.get $0 + i32.load offset=12 + i32.const 2 + i32.shl + i32.add local.set $3 - local.get $3 - i32.const 0 - i32.lt_s - if - i32.const 7728 - local.set $12 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $12 - return - end - local.get $3 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.load - local.tee $4 - i32.store - local.get $4 - if (result i32) - local.get $4 - else - i32.const 7728 - end - local.set $12 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $12 - return - end - i32.const 0 - local.set $5 - i32.const 0 - local.set $4 - loop $for-loop|0 + loop $while-continue|0 + local.get $2 + local.get $3 + i32.lt_u + local.set $4 local.get $4 - local.get $1 - i32.lt_s - local.set $7 - local.get $7 if - global.get $~lib/memory/__stack_pointer - local.get $0 - local.get $4 - i32.const 2 - i32.shl - i32.add + local.get $2 i32.load - local.tee $6 - i32.store offset=4 - local.get $6 - i32.const 0 - i32.ne + local.set $5 + local.get $5 if local.get $5 - local.get $6 - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/string/String#get:length - i32.add - local.set $5 + local.get $1 + call $~lib/rt/itcms/__visit end - local.get $4 - i32.const 1 + local.get $2 + i32.const 4 i32.add - local.set $4 - br $for-loop|0 + local.set $2 + br $while-continue|0 end end - i32.const 0 - local.set $8 - local.get $2 - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/string/String#get:length - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $5 - local.get $9 - local.get $3 - i32.mul - i32.add + local.get $0 + i32.load + local.get $1 + call $~lib/rt/itcms/__visit + ) + (func $~lib/array/Array<~lib/array/Array>~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/array/Array<~lib/array/Array>#__visit + ) + (func $~lib/function/Function<%28~lib/array/Array%2C~lib/array/Array%29=>i32>#__visit (param $0 i32) (param $1 i32) + local.get $0 + i32.load offset=4 + local.get $1 + call $~lib/rt/itcms/__visit + ) + (func $~lib/function/Function<%28~lib/array/Array%2C~lib/array/Array%29=>i32>~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/function/Function<%28~lib/array/Array%2C~lib/array/Array%29=>i32>#__visit + ) + (func $~lib/array/Array>#__visit (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) i32.const 1 + drop + local.get $0 + i32.load offset=4 + local.set $2 + local.get $2 + local.get $0 + i32.load offset=12 + i32.const 2 i32.shl - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $10 - i32.store offset=12 - i32.const 0 - local.set $4 - loop $for-loop|1 - local.get $4 + i32.add + local.set $3 + loop $while-continue|0 + local.get $2 local.get $3 - i32.lt_s - local.set $7 - local.get $7 + i32.lt_u + local.set $4 + local.get $4 if - global.get $~lib/memory/__stack_pointer - local.get $0 - local.get $4 - i32.const 2 - i32.shl - i32.add + local.get $2 i32.load - local.tee $6 - i32.store offset=4 - local.get $6 - i32.const 0 - i32.ne - if - local.get $6 - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/string/String#get:length - local.set $11 - local.get $10 - local.get $8 - i32.const 1 - i32.shl - i32.add - local.get $6 - local.get $11 - i32.const 1 - i32.shl - call $~lib/memory/memory.copy - local.get $8 - local.get $11 - i32.add - local.set $8 - end - local.get $9 + local.set $5 + local.get $5 if - local.get $10 - local.get $8 - i32.const 1 - i32.shl - i32.add - local.get $2 - local.get $9 - i32.const 1 - i32.shl - call $~lib/memory/memory.copy - local.get $8 - local.get $9 - i32.add - local.set $8 + local.get $5 + local.get $1 + call $~lib/rt/itcms/__visit end - local.get $4 - i32.const 1 + local.get $2 + i32.const 4 i32.add - local.set $4 - br $for-loop|1 + local.set $2 + br $while-continue|0 end end - global.get $~lib/memory/__stack_pointer local.get $0 - local.get $3 + i32.load + local.get $1 + call $~lib/rt/itcms/__visit + ) + (func $~lib/array/Array>~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/array/Array>#__visit + ) + (func $~lib/function/Function<%28std/array/Proxy%2Cstd/array/Proxy%29=>i32>#__visit (param $0 i32) (param $1 i32) + local.get $0 + i32.load offset=4 + local.get $1 + call $~lib/rt/itcms/__visit + ) + (func $~lib/function/Function<%28std/array/Proxy%2Cstd/array/Proxy%29=>i32>~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/function/Function<%28std/array/Proxy%2Cstd/array/Proxy%29=>i32>#__visit + ) + (func $~lib/array/Array<~lib/string/String|null>#__visit (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + i32.const 1 + drop + local.get $0 + i32.load offset=4 + local.set $2 + local.get $2 + local.get $0 + i32.load offset=12 i32.const 2 i32.shl i32.add - i32.load - local.tee $6 - i32.store offset=4 - local.get $6 - i32.const 0 - i32.ne - if - local.get $10 - local.get $8 - i32.const 1 - i32.shl - i32.add - local.get $6 - local.get $6 - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/string/String#get:length - i32.const 1 - i32.shl - call $~lib/memory/memory.copy + local.set $3 + loop $while-continue|0 + local.get $2 + local.get $3 + i32.lt_u + local.set $4 + local.get $4 + if + local.get $2 + i32.load + local.set $5 + local.get $5 + if + local.get $5 + local.get $1 + call $~lib/rt/itcms/__visit + end + local.get $2 + i32.const 4 + i32.add + local.set $2 + br $while-continue|0 + end end - local.get $10 - local.set $12 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $12 + local.get $0 + i32.load + local.get $1 + call $~lib/rt/itcms/__visit + ) + (func $~lib/array/Array<~lib/string/String|null>~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/array/Array<~lib/string/String|null>#__visit + ) + (func $~lib/function/Function<%28~lib/string/String|null%2C~lib/string/String|null%29=>i32>#__visit (param $0 i32) (param $1 i32) + local.get $0 + i32.load offset=4 + local.get $1 + call $~lib/rt/itcms/__visit + ) + (func $~lib/function/Function<%28~lib/string/String|null%2C~lib/string/String|null%29=>i32>~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/function/Function<%28~lib/string/String|null%2C~lib/string/String|null%29=>i32>#__visit ) - (func $~lib/array/Array<~lib/string/String|null>#join (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 - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store + (func $~lib/array/Array<~lib/string/String>~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/array/Array<~lib/string/String>#__visit + ) + (func $~lib/function/Function<%28~lib/string/String%2C~lib/string/String%29=>i32>#__visit (param $0 i32) (param $1 i32) local.get $0 i32.load offset=4 - local.set $2 + local.get $1 + call $~lib/rt/itcms/__visit + ) + (func $~lib/function/Function<%28~lib/string/String%2C~lib/string/String%29=>i32>~visit (param $0 i32) (param $1 i32) local.get $0 - i32.load offset=12 - local.set $3 + local.get $1 + call $~lib/function/Function<%28~lib/string/String%2C~lib/string/String%29=>i32>#__visit + ) + (func $~lib/array/Array#__visit (param $0 i32) (param $1 i32) i32.const 0 drop + local.get $0 + i32.load + local.get $1 + call $~lib/rt/itcms/__visit + ) + (func $~lib/array/Array~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/array/Array#__visit + ) + (func $~lib/array/Array#__visit (param $0 i32) (param $1 i32) i32.const 0 drop + local.get $0 + i32.load + local.get $1 + call $~lib/rt/itcms/__visit + ) + (func $~lib/array/Array~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/array/Array#__visit + ) + (func $~lib/array/Array#__visit (param $0 i32) (param $1 i32) i32.const 0 drop + local.get $0 + i32.load + local.get $1 + call $~lib/rt/itcms/__visit + ) + (func $~lib/array/Array~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/array/Array#__visit + ) + (func $~lib/array/Array#__visit (param $0 i32) (param $1 i32) i32.const 0 - i32.const 1 - i32.lt_s drop - i32.const 1 + local.get $0 + i32.load + local.get $1 + call $~lib/rt/itcms/__visit + ) + (func $~lib/array/Array~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/array/Array#__visit + ) + (func $~lib/array/Array#__visit (param $0 i32) (param $1 i32) + i32.const 0 drop - local.get $2 - local.get $3 + local.get $0 + i32.load local.get $1 - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store - local.get $4 - call $~lib/util/string/joinStringArray - local.set $4 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $4 - return + call $~lib/rt/itcms/__visit ) - (func $~lib/util/string/joinReferenceArray (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/array/Array~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/array/Array#__visit + ) + (func $~lib/array/Array<~lib/array/Array>#__visit (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 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 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=16 - local.get $1 i32.const 1 - i32.sub - local.set $3 - local.get $3 - i32.const 0 - i32.lt_s - if - i32.const 7728 - local.set $9 - global.get $~lib/memory/__stack_pointer - i32.const 20 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $9 - return - end - local.get $3 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.load - local.tee $4 - i32.store - local.get $4 - i32.const 0 - i32.ne - if (result i32) - local.get $4 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - call $std/array/Ref#toString - else - i32.const 7728 - end - local.set $9 - global.get $~lib/memory/__stack_pointer - i32.const 20 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $9 - return - end - global.get $~lib/memory/__stack_pointer - i32.const 7728 - local.tee $5 - i32.store offset=8 + drop + local.get $0 + i32.load offset=4 + local.set $2 local.get $2 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - call $~lib/string/String#get:length - local.set $6 - i32.const 0 - local.set $7 - loop $for-loop|0 - local.get $7 + local.get $0 + i32.load offset=12 + i32.const 2 + i32.shl + i32.add + local.set $3 + loop $while-continue|0 + local.get $2 local.get $3 - i32.lt_s - local.set $8 - local.get $8 + i32.lt_u + local.set $4 + local.get $4 if - global.get $~lib/memory/__stack_pointer - local.get $0 - local.get $7 - i32.const 2 - i32.shl - i32.add + local.get $2 i32.load - local.tee $4 - i32.store - local.get $4 - i32.const 0 - i32.ne - if - global.get $~lib/memory/__stack_pointer - local.get $5 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - local.get $4 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=16 - local.get $9 - call $std/array/Ref#toString - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=12 - local.get $9 - call $~lib/string/String.__concat - local.tee $5 - i32.store offset=8 - end - local.get $6 + local.set $5 + local.get $5 if - global.get $~lib/memory/__stack_pointer local.get $5 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - local.get $2 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=12 - local.get $9 - call $~lib/string/String.__concat - local.tee $5 - i32.store offset=8 + local.get $1 + call $~lib/rt/itcms/__visit end - local.get $7 - i32.const 1 + local.get $2 + i32.const 4 i32.add - local.set $7 - br $for-loop|0 + local.set $2 + br $while-continue|0 end end - global.get $~lib/memory/__stack_pointer local.get $0 - local.get $3 + i32.load + local.get $1 + call $~lib/rt/itcms/__visit + ) + (func $~lib/array/Array<~lib/array/Array>~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/array/Array<~lib/array/Array>#__visit + ) + (func $~lib/array/Array<~lib/array/Array>#__visit (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + i32.const 1 + drop + local.get $0 + i32.load offset=4 + local.set $2 + local.get $2 + local.get $0 + i32.load offset=12 i32.const 2 i32.shl i32.add - i32.load - local.tee $4 - i32.store - local.get $4 - i32.const 0 - i32.ne - if - global.get $~lib/memory/__stack_pointer - local.get $5 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 + local.set $3 + loop $while-continue|0 + local.get $2 + local.get $3 + i32.lt_u + local.set $4 local.get $4 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=16 - local.get $9 - call $std/array/Ref#toString - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=12 - local.get $9 - call $~lib/string/String.__concat - local.tee $5 - i32.store offset=8 + if + local.get $2 + i32.load + local.set $5 + local.get $5 + if + local.get $5 + local.get $1 + call $~lib/rt/itcms/__visit + end + local.get $2 + i32.const 4 + i32.add + local.set $2 + br $while-continue|0 + end end - local.get $5 - local.set $9 - global.get $~lib/memory/__stack_pointer - i32.const 20 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $9 + local.get $0 + i32.load + local.get $1 + call $~lib/rt/itcms/__visit ) - (func $~lib/array/Array#join (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array<~lib/array/Array>~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/array/Array<~lib/array/Array>#__visit + ) + (func $~lib/array/Array<~lib/array/Array<~lib/array/Array>>#__visit (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 - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store + (local $5 i32) + i32.const 1 + drop local.get $0 i32.load offset=4 local.set $2 + local.get $2 local.get $0 i32.load offset=12 + i32.const 2 + i32.shl + i32.add local.set $3 - i32.const 0 - drop - i32.const 0 - drop - i32.const 0 - drop - i32.const 0 - i32.const 1 - i32.lt_s - drop - i32.const 0 - drop - i32.const 1 - drop - local.get $2 - local.get $3 + loop $while-continue|0 + local.get $2 + local.get $3 + i32.lt_u + local.set $4 + local.get $4 + if + local.get $2 + i32.load + local.set $5 + local.get $5 + if + local.get $5 + local.get $1 + call $~lib/rt/itcms/__visit + end + local.get $2 + i32.const 4 + i32.add + local.set $2 + br $while-continue|0 + end + end + local.get $0 + i32.load local.get $1 - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store - local.get $4 - call $~lib/util/string/joinReferenceArray - local.set $4 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $4 - return + call $~lib/rt/itcms/__visit ) - (func $~lib/util/string/joinReferenceArray (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/array/Array<~lib/array/Array<~lib/array/Array>>~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/array/Array<~lib/array/Array<~lib/array/Array>>#__visit + ) + (func $~lib/array/Array<~lib/array/Array<~lib/string/String|null>>#__visit (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 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 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=16 + i32.const 1 + drop + local.get $0 + i32.load offset=4 + local.set $2 + local.get $2 + local.get $0 + i32.load offset=12 + i32.const 2 + i32.shl + i32.add + local.set $3 + loop $while-continue|0 + local.get $2 + local.get $3 + i32.lt_u + local.set $4 + local.get $4 + if + local.get $2 + i32.load + local.set $5 + local.get $5 + if + local.get $5 + local.get $1 + call $~lib/rt/itcms/__visit + end + local.get $2 + i32.const 4 + i32.add + local.set $2 + br $while-continue|0 + end + end + local.get $0 + i32.load + local.get $1 + call $~lib/rt/itcms/__visit + ) + (func $~lib/array/Array<~lib/array/Array<~lib/string/String|null>>~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/array/Array<~lib/array/Array<~lib/string/String|null>>#__visit + ) + (func $std/array/ArrayU32~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/array/Array~visit + ) + (func $std/array/ArrayU8~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/array/Array~visit + ) + (func $std/array/ArrayStr~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/array/Array<~lib/string/String>~visit + ) + (func $~lib/function/Function<%28u8%2Cu8%29=>i32>#__visit (param $0 i32) (param $1 i32) + local.get $0 + i32.load offset=4 local.get $1 - i32.const 1 - i32.sub - local.set $3 - local.get $3 - i32.const 0 - i32.lt_s - if - i32.const 7728 - local.set $9 - global.get $~lib/memory/__stack_pointer - i32.const 20 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $9 + call $~lib/rt/itcms/__visit + ) + (func $~lib/function/Function<%28u8%2Cu8%29=>i32>~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/function/Function<%28u8%2Cu8%29=>i32>#__visit + ) + (func $~lib/rt/__visit_members (param $0 i32) (param $1 i32) + block $invalid + block $~lib/function/Function<%28u8%2Cu8%29=>i32> + block $std/array/ArrayStr + block $std/array/ArrayU8 + block $std/array/ArrayU32 + block $~lib/array/Array<~lib/array/Array<~lib/string/String|null>> + block $~lib/array/Array<~lib/array/Array<~lib/array/Array>> + block $~lib/array/Array<~lib/array/Array> + block $~lib/array/Array<~lib/array/Array> + block $~lib/array/Array + block $~lib/array/Array + block $~lib/array/Array + block $~lib/array/Array + block $~lib/array/Array + block $~lib/function/Function<%28~lib/string/String%2C~lib/string/String%29=>i32> + block $~lib/array/Array<~lib/string/String> + block $~lib/function/Function<%28~lib/string/String|null%2C~lib/string/String|null%29=>i32> + block $~lib/array/Array<~lib/string/String|null> + block $~lib/function/Function<%28std/array/Proxy%2Cstd/array/Proxy%29=>i32> + block $~lib/array/Array> + block $std/array/Proxy + block $~lib/function/Function<%28~lib/array/Array%2C~lib/array/Array%29=>i32> + block $~lib/array/Array<~lib/array/Array> + block $~lib/function/Function<%28u32%2Cu32%29=>i32> + block $~lib/function/Function<%28i32%2Ci32%29=>i32> + block $~lib/function/Function<%28f64%2Cf64%29=>i32> + block $~lib/function/Function<%28f32%2Cf32%29=>i32> + block $~lib/function/Function<%28bool%2Ci32%2Ci32%2C~lib/array/Array%29=>bool> + block $~lib/function/Function<%28i32%2Ci32%2Ci32%2C~lib/array/Array%29=>i32> + block $~lib/function/Function<%28i32%2Ci32%2C~lib/array/Array%29=>i32> + block $~lib/function/Function<%28i32%2Ci32%2C~lib/array/Array%29=>f32> + block $~lib/function/Function<%28i32%2Ci32%2C~lib/array/Array%29=>void> + block $~lib/function/Function<%28i32%2Ci32%2C~lib/array/Array%29=>bool> + block $~lib/array/Array + block $~lib/array/Array + block $~lib/array/Array + block $~lib/array/Array + block $~lib/array/Array + block $~lib/array/Array + block $~lib/typedarray/Uint8Array + block $std/array/Ref + block $~lib/array/Array + block $~lib/arraybuffer/ArrayBufferView + block $~lib/string/String + block $~lib/arraybuffer/ArrayBuffer + local.get $0 + i32.const 8 + i32.sub + i32.load + br_table $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $~lib/array/Array $std/array/Ref $~lib/typedarray/Uint8Array $~lib/array/Array $~lib/array/Array $~lib/array/Array $~lib/array/Array $~lib/array/Array $~lib/array/Array $~lib/function/Function<%28i32%2Ci32%2C~lib/array/Array%29=>bool> $~lib/function/Function<%28i32%2Ci32%2C~lib/array/Array%29=>void> $~lib/function/Function<%28i32%2Ci32%2C~lib/array/Array%29=>f32> $~lib/function/Function<%28i32%2Ci32%2C~lib/array/Array%29=>i32> $~lib/function/Function<%28i32%2Ci32%2Ci32%2C~lib/array/Array%29=>i32> $~lib/function/Function<%28bool%2Ci32%2Ci32%2C~lib/array/Array%29=>bool> $~lib/function/Function<%28f32%2Cf32%29=>i32> $~lib/function/Function<%28f64%2Cf64%29=>i32> $~lib/function/Function<%28i32%2Ci32%29=>i32> $~lib/function/Function<%28u32%2Cu32%29=>i32> $~lib/array/Array<~lib/array/Array> $~lib/function/Function<%28~lib/array/Array%2C~lib/array/Array%29=>i32> $std/array/Proxy $~lib/array/Array> $~lib/function/Function<%28std/array/Proxy%2Cstd/array/Proxy%29=>i32> $~lib/array/Array<~lib/string/String|null> $~lib/function/Function<%28~lib/string/String|null%2C~lib/string/String|null%29=>i32> $~lib/array/Array<~lib/string/String> $~lib/function/Function<%28~lib/string/String%2C~lib/string/String%29=>i32> $~lib/array/Array $~lib/array/Array $~lib/array/Array $~lib/array/Array $~lib/array/Array $~lib/array/Array<~lib/array/Array> $~lib/array/Array<~lib/array/Array> $~lib/array/Array<~lib/array/Array<~lib/array/Array>> $~lib/array/Array<~lib/array/Array<~lib/string/String|null>> $std/array/ArrayU32 $std/array/ArrayU8 $std/array/ArrayStr $~lib/function/Function<%28u8%2Cu8%29=>i32> $invalid + 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 + return + end + local.get $0 + local.get $1 + call $~lib/typedarray/Uint8Array~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/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/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=>bool>~visit + return + end + local.get $0 + local.get $1 + call $~lib/function/Function<%28i32%2Ci32%2C~lib/array/Array%29=>void>~visit + return + end + local.get $0 + local.get $1 + call $~lib/function/Function<%28i32%2Ci32%2C~lib/array/Array%29=>f32>~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 $~lib/function/Function<%28i32%2Ci32%2Ci32%2C~lib/array/Array%29=>i32>~visit + return + end + local.get $0 + local.get $1 + call $~lib/function/Function<%28bool%2Ci32%2Ci32%2C~lib/array/Array%29=>bool>~visit + return + end + local.get $0 + local.get $1 + call $~lib/function/Function<%28f32%2Cf32%29=>i32>~visit + return + end + local.get $0 + local.get $1 + call $~lib/function/Function<%28f64%2Cf64%29=>i32>~visit + return + end + local.get $0 + local.get $1 + call $~lib/function/Function<%28i32%2Ci32%29=>i32>~visit + return + end + local.get $0 + local.get $1 + call $~lib/function/Function<%28u32%2Cu32%29=>i32>~visit + return + end + local.get $0 + local.get $1 + call $~lib/array/Array<~lib/array/Array>~visit + return + end + local.get $0 + local.get $1 + call $~lib/function/Function<%28~lib/array/Array%2C~lib/array/Array%29=>i32>~visit + return + end + 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<%28std/array/Proxy%2Cstd/array/Proxy%29=>i32>~visit + return + end + local.get $0 + local.get $1 + call $~lib/array/Array<~lib/string/String|null>~visit + return + end + local.get $0 + local.get $1 + call $~lib/function/Function<%28~lib/string/String|null%2C~lib/string/String|null%29=>i32>~visit + return + end + local.get $0 + local.get $1 + call $~lib/array/Array<~lib/string/String>~visit + return + end + local.get $0 + local.get $1 + call $~lib/function/Function<%28~lib/string/String%2C~lib/string/String%29=>i32>~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/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/array/Array~visit + return + end + local.get $0 + local.get $1 + call $~lib/array/Array<~lib/array/Array>~visit + return + end + local.get $0 + local.get $1 + call $~lib/array/Array<~lib/array/Array>~visit + return + end + local.get $0 + local.get $1 + call $~lib/array/Array<~lib/array/Array<~lib/array/Array>>~visit + return + end + local.get $0 + local.get $1 + call $~lib/array/Array<~lib/array/Array<~lib/string/String|null>>~visit + return + end + local.get $0 + local.get $1 + call $std/array/ArrayU32~visit + return + end + local.get $0 + local.get $1 + call $std/array/ArrayU8~visit + return + end + local.get $0 + local.get $1 + call $std/array/ArrayStr~visit + return + end + local.get $0 + local.get $1 + call $~lib/function/Function<%28u8%2Cu8%29=>i32>~visit return end - local.get $3 - i32.eqz + unreachable + ) + (func $~setArgumentsLength (param $0 i32) + local.get $0 + global.set $~argumentsLength + ) + (func $~start + global.get $~started if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.load - local.tee $4 - i32.store - local.get $4 - i32.const 0 - i32.ne - if (result i32) - local.get $4 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - call $std/array/Ref#toString - else - i32.const 7728 - end - local.set $9 - global.get $~lib/memory/__stack_pointer - i32.const 20 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $9 return end + i32.const 1 + global.set $~started + call $start:std/array + ) + (func $~stack_check global.get $~lib/memory/__stack_pointer - i32.const 7728 - local.tee $5 - i32.store offset=8 - local.get $2 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - call $~lib/string/String#get:length - local.set $6 - i32.const 0 - local.set $7 - loop $for-loop|0 - local.get $7 - local.get $3 - i32.lt_s - local.set $8 - local.get $8 - if - global.get $~lib/memory/__stack_pointer - local.get $0 - local.get $7 - i32.const 2 - i32.shl - i32.add - i32.load - local.tee $4 - i32.store - local.get $4 - i32.const 0 - i32.ne - if - global.get $~lib/memory/__stack_pointer - local.get $5 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - local.get $4 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=16 - local.get $9 - call $std/array/Ref#toString - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=12 - local.get $9 - call $~lib/string/String.__concat - local.tee $5 - i32.store offset=8 - end - local.get $6 - if - global.get $~lib/memory/__stack_pointer - local.get $5 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - local.get $2 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=12 - local.get $9 - call $~lib/string/String.__concat - local.tee $5 - i32.store offset=8 - end - local.get $7 - i32.const 1 - i32.add - local.set $7 - br $for-loop|0 - end - end - global.get $~lib/memory/__stack_pointer - local.get $0 - local.get $3 - i32.const 2 - i32.shl - i32.add - i32.load - local.tee $4 - i32.store - local.get $4 - i32.const 0 - i32.ne + global.get $~lib/memory/__data_end + i32.lt_s if - global.get $~lib/memory/__stack_pointer - local.get $5 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - local.get $4 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=16 - local.get $9 - call $std/array/Ref#toString - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=12 - local.get $9 - call $~lib/string/String.__concat - local.tee $5 - i32.store offset=8 + i32.const 30464 + i32.const 30512 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable end - local.get $5 - local.set $9 - global.get $~lib/memory/__stack_pointer - i32.const 20 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $9 ) - (func $~lib/array/Array#join (param $0 i32) (param $1 i32) (result i32) + (func $std/array/assertSorted (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 @@ -21380,82 +17114,71 @@ i32.const 0 i32.store local.get $0 - i32.load offset=4 - local.set $2 - local.get $0 - i32.load offset=12 - local.set $3 - i32.const 0 - drop - i32.const 0 - drop - i32.const 0 - drop - i32.const 0 - i32.const 1 - i32.lt_s - drop - i32.const 0 - drop - i32.const 1 - drop - local.get $2 - local.get $3 local.get $1 - local.set $4 + call $~lib/array/Array#sort + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $2 i32.store - local.get $4 - call $~lib/util/string/joinReferenceArray - local.set $4 + local.get $2 + local.get $1 + call $std/array/isSorted + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 942 + 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 $4 - return ) - (func $~lib/array/Array#toString (param $0 i32) (result i32) + (func $std/array/assertSortedDefault (param $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 call $~stack_check global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store + i32.const 0 + i32.store local.get $0 + block $~lib/util/sort/COMPARATOR|inlined.1 (result i32) + i32.const 1 + drop + i32.const 1 + if (result i32) + i32.const 4 + i32.const 4 + i32.le_u + else + i32.const 0 + end + drop + i32.const 7312 + br $~lib/util/sort/COMPARATOR|inlined.1 + end local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 i32.store local.get $1 - i32.const 8048 - 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 + call $std/array/assertSorted global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 ) - (func $~lib/util/string/joinIntegerArray (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $std/array/isSorted<~lib/array/Array> (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 8 i32.sub @@ -21464,172 +17187,70 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - local.get $1 i32.const 1 - i32.sub + local.set $2 + local.get $0 + call $~lib/array/Array<~lib/array/Array>#get:length local.set $3 - local.get $3 - i32.const 0 - i32.lt_s - if - i32.const 7728 - 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 $3 - i32.eqz - if - local.get $0 - i32.load8_s - local.set $4 - i32.const 1 - drop - i32.const 1 - i32.const 4 - i32.le_u - drop - local.get $4 - i32.const 10 - call $~lib/util/number/itoa32 - 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 $2 - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store - local.get $11 - call $~lib/string/String#get:length - local.set $5 - i32.const 11 - local.get $5 - i32.add - local.get $3 - i32.mul - i32.const 11 - i32.add - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.const 1 - i32.shl - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $7 - i32.store offset=4 - i32.const 0 - local.set $8 - i32.const 0 - local.set $4 loop $for-loop|0 - local.get $4 + local.get $2 local.get $3 i32.lt_s - local.set $10 - local.get $10 + local.set $4 + local.get $4 if local.get $0 - local.get $4 - i32.const 0 - i32.shl - i32.add - i32.load8_s - local.set $9 - local.get $8 - local.get $7 - local.get $8 + local.get $2 i32.const 1 - i32.shl - i32.add - local.get $9 - call $~lib/util/number/itoa_buffered - i32.add - local.set $8 + i32.sub + call $~lib/array/Array<~lib/array/Array>#__get + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store + local.get $5 + local.get $0 + local.get $2 + call $~lib/array/Array<~lib/array/Array>#__get + local.set $5 + global.get $~lib/memory/__stack_pointer local.get $5 + i32.store offset=4 + local.get $5 + i32.const 2 + global.set $~argumentsLength + local.get $1 + i32.load + call_indirect (type $i32_i32_=>_i32) + i32.const 0 + i32.gt_s if - local.get $7 - local.get $8 - i32.const 1 - i32.shl + i32.const 0 + local.set $5 + global.get $~lib/memory/__stack_pointer + i32.const 8 i32.add - local.get $2 - local.get $5 - i32.const 1 - i32.shl - call $~lib/memory/memory.copy - local.get $8 + global.set $~lib/memory/__stack_pointer local.get $5 - i32.add - local.set $8 + return end - local.get $4 + local.get $2 i32.const 1 i32.add - local.set $4 + local.set $2 br $for-loop|0 end end - local.get $0 - local.get $3 - i32.const 0 - i32.shl - i32.add - i32.load8_s - local.set $9 - local.get $8 - local.get $7 - local.get $8 i32.const 1 - i32.shl - i32.add - local.get $9 - call $~lib/util/number/itoa_buffered - i32.add - local.set $8 - local.get $6 - local.get $8 - i32.gt_s - if - local.get $7 - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store - local.get $11 - i32.const 0 - local.get $8 - call $~lib/string/String#substring - 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 $7 - local.set $11 + local.set $5 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $11 + local.get $5 ) - (func $~lib/array/Array#join (param $0 i32) (param $1 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) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -21639,34 +17260,34 @@ i32.const 0 i32.store local.get $0 - i32.load offset=4 - local.set $2 - local.get $0 - i32.load offset=12 - local.set $3 - i32.const 0 - drop - i32.const 1 - drop - local.get $2 - local.get $3 local.get $1 - local.set $4 + call $~lib/array/Array<~lib/array/Array>#sort + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $2 i32.store - local.get $4 - call $~lib/util/string/joinIntegerArray - local.set $4 + local.get $2 + local.get $1 + call $std/array/isSorted<~lib/array/Array> + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 942 + 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 $4 - return ) - (func $~lib/array/Array#toString (param $0 i32) (result i32) + (func $std/array/createReverseOrderedElementsArray (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 @@ -21674,37 +17295,57 @@ call $~stack_check global.get $~lib/memory/__stack_pointer i64.const 0 - i64.store - local.get $0 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $1 - i32.const 8048 - local.set $1 + i64.store global.get $~lib/memory/__stack_pointer + i32.const 0 + local.get $0 + call $~lib/array/Array>#constructor + local.tee $1 + i32.store + i32.const 0 + local.set $2 + loop $for-loop|0 + local.get $2 + local.get $0 + i32.lt_s + local.set $3 + local.get $3 + if + local.get $1 + local.get $2 + i32.const 0 + local.get $0 + i32.const 1 + i32.sub + local.get $2 + i32.sub + call $std/array/Proxy#constructor + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + call $~lib/array/Array>#__set + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|0 + end + end local.get $1 - i32.store offset=4 - local.get $1 - call $~lib/array/Array#join - local.set $1 + local.set $4 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 + local.get $4 ) - (func $~lib/util/string/joinIntegerArray (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $std/array/isSorted> (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 8 i32.sub @@ -21713,248 +17354,215 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - local.get $1 i32.const 1 - i32.sub + local.set $2 + local.get $0 + call $~lib/array/Array>#get:length local.set $3 - local.get $3 - i32.const 0 - i32.lt_s - if - i32.const 7728 - 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 $3 - i32.eqz - if - local.get $0 - i32.load16_u - local.set $4 - i32.const 0 - drop - i32.const 2 - i32.const 4 - i32.le_u - drop - local.get $4 - i32.const 10 - call $~lib/util/number/utoa32 - 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 $2 - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store - local.get $11 - call $~lib/string/String#get:length - local.set $5 - i32.const 10 - local.get $5 - i32.add - local.get $3 - i32.mul - i32.const 10 - i32.add - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.const 1 - i32.shl - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $7 - i32.store offset=4 - i32.const 0 - local.set $8 - i32.const 0 - local.set $4 loop $for-loop|0 - local.get $4 + local.get $2 local.get $3 i32.lt_s - local.set $10 - local.get $10 + local.set $4 + local.get $4 if local.get $0 - local.get $4 - i32.const 1 - i32.shl - i32.add - i32.load16_u - local.set $9 - local.get $8 - local.get $7 - local.get $8 + local.get $2 i32.const 1 - i32.shl - i32.add - local.get $9 - call $~lib/util/number/itoa_buffered - i32.add - local.set $8 + i32.sub + call $~lib/array/Array>#__get + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store + local.get $5 + local.get $0 + local.get $2 + call $~lib/array/Array>#__get + local.set $5 + global.get $~lib/memory/__stack_pointer local.get $5 + i32.store offset=4 + local.get $5 + i32.const 2 + global.set $~argumentsLength + local.get $1 + i32.load + call_indirect (type $i32_i32_=>_i32) + i32.const 0 + i32.gt_s if - local.get $7 - local.get $8 - i32.const 1 - i32.shl + i32.const 0 + local.set $5 + global.get $~lib/memory/__stack_pointer + i32.const 8 i32.add - local.get $2 - local.get $5 - i32.const 1 - i32.shl - call $~lib/memory/memory.copy - local.get $8 + global.set $~lib/memory/__stack_pointer local.get $5 - i32.add - local.set $8 + return end - local.get $4 + local.get $2 i32.const 1 i32.add - local.set $4 + local.set $2 br $for-loop|0 end end - local.get $0 - local.get $3 - i32.const 1 - i32.shl - i32.add - i32.load16_u - local.set $9 - local.get $8 - local.get $7 - local.get $8 i32.const 1 - i32.shl - i32.add - local.get $9 - call $~lib/util/number/itoa_buffered + local.set $5 + global.get $~lib/memory/__stack_pointer + i32.const 8 i32.add - local.set $8 - local.get $6 - local.get $8 - i32.gt_s + global.set $~lib/memory/__stack_pointer + local.get $5 + ) + (func $std/array/assertSorted> (param $0 i32) (param $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 + 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 + local.get $2 + local.get $1 + call $std/array/isSorted> + i32.eqz if - local.get $7 - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store - local.get $11 i32.const 0 - local.get $8 - call $~lib/string/String#substring - local.set $11 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $11 - return + i32.const 528 + i32.const 942 + i32.const 3 + call $~lib/builtins/abort + unreachable end - local.get $7 - local.set $11 global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $11 ) - (func $~lib/array/Array#join (param $0 i32) (param $1 i32) (result i32) + (func $std/array/isSorted<~lib/string/String|null> (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 8 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - local.get $0 - i32.load offset=4 + i64.const 0 + i64.store + i32.const 1 local.set $2 local.get $0 - i32.load offset=12 + call $~lib/array/Array<~lib/string/String|null>#get:length local.set $3 - i32.const 0 - drop + loop $for-loop|0 + local.get $2 + local.get $3 + i32.lt_s + local.set $4 + local.get $4 + if + local.get $0 + local.get $2 + i32.const 1 + i32.sub + call $~lib/array/Array<~lib/string/String|null>#__get + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store + local.get $5 + local.get $0 + local.get $2 + call $~lib/array/Array<~lib/string/String|null>#__get + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + i32.const 2 + global.set $~argumentsLength + local.get $1 + i32.load + call_indirect (type $i32_i32_=>_i32) + i32.const 0 + i32.gt_s + if + i32.const 0 + local.set $5 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $5 + return + end + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|0 + end + end i32.const 1 - drop - local.get $2 - local.get $3 - local.get $1 - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store - local.get $4 - call $~lib/util/string/joinIntegerArray - 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 - return + local.get $5 ) - (func $~lib/array/Array#toString (param $0 i32) (result i32) - (local $1 i32) + (func $std/array/assertSorted<~lib/string/String|null> (param $0 i32) (param $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 call $~stack_check global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - local.get $0 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 + i32.const 0 i32.store + local.get $0 local.get $1 - i32.const 8048 - local.set $1 + call $~lib/array/Array<~lib/string/String|null>#sort + local.set $2 global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $2 local.get $1 - i32.store offset=4 - local.get $1 - call $~lib/array/Array#join - local.set $1 + call $std/array/isSorted<~lib/string/String|null> + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 942 + i32.const 3 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 ) - (func $~lib/util/string/joinIntegerArray (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $std/array/isArraysEqual<~lib/string/String|null> (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) - (local $4 i64) + (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 8 i32.sub @@ -21963,172 +17571,95 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - local.get $1 - i32.const 1 - i32.sub - local.set $3 - local.get $3 - i32.const 0 - i32.lt_s - if - i32.const 7728 - local.set $12 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $12 - return - end - local.get $3 + local.get $2 i32.eqz if local.get $0 - i64.load - local.set $4 - i32.const 0 - drop - i32.const 8 - i32.const 4 - i32.le_u - drop - local.get $4 - i32.const 10 - call $~lib/util/number/utoa64 - local.set $12 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $12 - return + call $~lib/array/Array<~lib/string/String|null>#get:length + local.set $2 + local.get $2 + local.get $1 + call $~lib/array/Array<~lib/string/String|null>#get:length + i32.ne + if + i32.const 0 + local.set $5 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $5 + return + end + local.get $0 + local.get $1 + i32.eq + if + i32.const 1 + local.set $5 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $5 + return + end end - local.get $2 - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store - local.get $12 - call $~lib/string/String#get:length - local.set $5 - i32.const 20 - local.get $5 - i32.add - local.get $3 - i32.mul - i32.const 20 - i32.add - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.const 1 - i32.shl - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $7 - i32.store offset=4 - i32.const 0 - local.set $8 i32.const 0 - local.set $10 + local.set $3 loop $for-loop|0 - local.get $10 local.get $3 + local.get $2 i32.lt_s - local.set $11 - local.get $11 + local.set $4 + local.get $4 if + i32.const 0 + drop local.get $0 - local.get $10 - i32.const 3 - i32.shl - i32.add - i64.load - local.set $9 - local.get $8 - local.get $7 - local.get $8 - i32.const 1 - i32.shl - i32.add - local.get $9 - call $~lib/util/number/itoa_buffered - i32.add - local.set $8 + local.get $3 + call $~lib/array/Array<~lib/string/String|null>#__get + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store local.get $5 + local.get $1 + local.get $3 + call $~lib/array/Array<~lib/string/String|null>#__get + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + call $~lib/string/String.__ne if - local.get $7 - local.get $8 - i32.const 1 - i32.shl + i32.const 0 + local.set $5 + global.get $~lib/memory/__stack_pointer + i32.const 8 i32.add - local.get $2 - local.get $5 - i32.const 1 - i32.shl - call $~lib/memory/memory.copy - local.get $8 + global.set $~lib/memory/__stack_pointer local.get $5 - i32.add - local.set $8 + return end - local.get $10 + local.get $3 i32.const 1 i32.add - local.set $10 + local.set $3 br $for-loop|0 end end - local.get $0 - local.get $3 - i32.const 3 - i32.shl - i32.add - i64.load - local.set $9 - local.get $8 - local.get $7 - local.get $8 i32.const 1 - i32.shl - i32.add - local.get $9 - call $~lib/util/number/itoa_buffered - i32.add - local.set $8 - local.get $6 - local.get $8 - i32.gt_s - if - local.get $7 - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store - local.get $12 - i32.const 0 - local.get $8 - call $~lib/string/String#substring - local.set $12 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $12 - return - end - local.get $7 - local.set $12 + local.set $5 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $12 + local.get $5 ) - (func $~lib/array/Array#join (param $0 i32) (param $1 i32) (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 4 i32.sub @@ -22138,73 +17669,106 @@ i32.const 0 i32.store local.get $0 - i32.load offset=4 - local.set $2 + i32.const 7888 local.get $0 - i32.load offset=12 - local.set $3 i32.const 0 - drop - i32.const 1 - drop - local.get $2 - local.get $3 - local.get $1 - local.set $4 + i32.ne + select + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $2 i32.store - local.get $4 - call $~lib/util/string/joinIntegerArray - local.set $4 + local.get $2 + local.get $1 + call $~lib/string/String#concat + local.set $2 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $4 - return + local.get $2 ) - (func $~lib/array/Array#toString (param $0 i32) (result i32) + (func $std/array/createRandomString (param $0 i32) (result i32) (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 f64) + (local $5 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 - local.get $0 - local.set $1 global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $1 - i32.const 8048 - local.set $1 + i32.const 0 + i32.store offset=8 global.get $~lib/memory/__stack_pointer + i32.const 7728 + local.tee $1 + i32.store + i32.const 0 + local.set $2 + loop $for-loop|0 + local.get $2 + local.get $0 + i32.lt_s + local.set $3 + local.get $3 + if + global.get $~lib/memory/__stack_pointer + local.get $1 + global.get $std/array/charset + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + call $~lib/math/NativeMath.random + global.get $std/array/charset + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=8 + local.get $5 + call $~lib/string/String#get:length + f64.convert_i32_s + f64.mul + local.set $4 + local.get $4 + f64.floor + i32.trunc_f64_s + call $~lib/string/String#charAt + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + call $~lib/string/String.__concat + local.tee $1 + i32.store + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|0 + end + end local.get $1 - i32.store offset=4 - local.get $1 - call $~lib/array/Array#join - local.set $1 + local.set $5 global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 + local.get $5 ) - (func $~lib/util/string/joinIntegerArray (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $std/array/createRandomStringArray (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 i32) - (local $8 i32) - (local $9 i64) - (local $10 i32) - (local $11 i32) - (local $12 i32) + (local $4 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -22213,174 +17777,126 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - local.get $1 - i32.const 1 - i32.sub - local.set $3 - local.get $3 + global.get $~lib/memory/__stack_pointer i32.const 0 - i32.lt_s - if - i32.const 7728 - local.set $12 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $12 - return - end - local.get $3 - i32.eqz - if + local.get $0 + call $~lib/array/Array<~lib/string/String>#constructor + local.tee $1 + i32.store + i32.const 0 + local.set $2 + loop $for-loop|0 + local.get $2 local.get $0 - i64.load - local.set $4 - i32.const 1 - drop - i32.const 8 - i32.const 4 - i32.le_u - drop - local.get $4 - i32.wrap_i64 - i64.extend_i32_s - i32.const 10 - call $~lib/util/number/itoa64 - local.set $12 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $12 - return + i32.lt_s + local.set $3 + local.get $3 + if + local.get $1 + local.get $2 + call $~lib/math/NativeMath.random + f64.const 32 + f64.mul + i32.trunc_f64_s + call $std/array/createRandomString + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + call $~lib/array/Array<~lib/string/String>#__set + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|0 + end end - local.get $2 - local.set $12 + local.get $1 + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store - local.get $12 - call $~lib/string/String#get:length - local.set $5 - i32.const 21 - local.get $5 - i32.add - local.get $3 - i32.mul - i32.const 21 + i32.const 8 i32.add - local.set $6 + global.set $~lib/memory/__stack_pointer + local.get $4 + ) + (func $std/array/isSorted<~lib/string/String> (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 - local.get $6 - i32.const 1 - i32.shl + 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 1 - call $~lib/rt/itcms/__new - local.tee $7 - i32.store offset=4 - i32.const 0 - local.set $8 - i32.const 0 - local.set $10 + local.set $2 + local.get $0 + call $~lib/array/Array<~lib/string/String>#get:length + local.set $3 loop $for-loop|0 - local.get $10 + local.get $2 local.get $3 i32.lt_s - local.set $11 - local.get $11 + local.set $4 + local.get $4 if local.get $0 - local.get $10 - i32.const 3 - i32.shl - i32.add - i64.load - local.set $9 - local.get $8 - local.get $7 - local.get $8 + local.get $2 i32.const 1 - i32.shl - i32.add - local.get $9 - call $~lib/util/number/itoa_buffered - i32.add - local.set $8 + i32.sub + call $~lib/array/Array<~lib/string/String>#__get + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store + local.get $5 + local.get $0 + local.get $2 + call $~lib/array/Array<~lib/string/String>#__get + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 local.get $5 + i32.const 2 + global.set $~argumentsLength + local.get $1 + i32.load + call_indirect (type $i32_i32_=>_i32) + i32.const 0 + i32.gt_s if - local.get $7 - local.get $8 - i32.const 1 - i32.shl + i32.const 0 + local.set $5 + global.get $~lib/memory/__stack_pointer + i32.const 8 i32.add - local.get $2 - local.get $5 - i32.const 1 - i32.shl - call $~lib/memory/memory.copy - local.get $8 + global.set $~lib/memory/__stack_pointer local.get $5 - i32.add - local.set $8 + return end - local.get $10 + local.get $2 i32.const 1 i32.add - local.set $10 + local.set $2 br $for-loop|0 end end - local.get $0 - local.get $3 - i32.const 3 - i32.shl - i32.add - i64.load - local.set $9 - local.get $8 - local.get $7 - local.get $8 i32.const 1 - i32.shl - i32.add - local.get $9 - call $~lib/util/number/itoa_buffered - i32.add - local.set $8 - local.get $6 - local.get $8 - i32.gt_s - if - local.get $7 - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store - local.get $12 - i32.const 0 - local.get $8 - call $~lib/string/String#substring - local.set $12 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $12 - return - end - local.get $7 - local.set $12 + local.set $5 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $12 + local.get $5 ) - (func $~lib/array/Array#join (param $0 i32) (param $1 i32) (result i32) + (func $std/array/assertSorted<~lib/string/String> (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 @@ -22390,93 +17906,183 @@ i32.const 0 i32.store local.get $0 - i32.load offset=4 - local.set $2 - local.get $0 - i32.load offset=12 - local.set $3 - i32.const 0 - drop - i32.const 1 - drop - local.get $2 - local.get $3 local.get $1 - local.set $4 + call $~lib/array/Array<~lib/string/String>#sort + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $2 i32.store - local.get $4 - call $~lib/util/string/joinIntegerArray - local.set $4 + local.get $2 + local.get $1 + call $std/array/isSorted<~lib/string/String> + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 942 + 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 $4 - return ) - (func $~lib/array/Array#toString (param $0 i32) (result i32) - (local $1 i32) + (func $~lib/util/string/joinReferenceArray (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) 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 - local.get $0 - local.set $1 global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 local.get $1 - i32.store - local.get $1 - i32.const 8048 - local.set $1 + i32.const 1 + i32.sub + local.set $3 + local.get $3 + i32.const 0 + i32.lt_s + if + i32.const 7728 + local.set $9 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $9 + return + end + local.get $3 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.load + local.tee $4 + i32.store + local.get $4 + i32.const 0 + i32.ne + if (result i32) + local.get $4 + call $std/array/Ref#toString + else + i32.const 7728 + end + local.set $9 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $9 + return + end global.get $~lib/memory/__stack_pointer - local.get $1 + i32.const 7728 + local.tee $5 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.add - global.set $~lib/memory/__stack_pointer - 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 - global.set $~lib/memory/__stack_pointer - call $~stack_check + local.get $2 + call $~lib/string/String#get:length + local.set $6 + i32.const 0 + local.set $7 + loop $for-loop|0 + local.get $7 + local.get $3 + i32.lt_s + local.set $8 + local.get $8 + if + global.get $~lib/memory/__stack_pointer + local.get $0 + local.get $7 + i32.const 2 + i32.shl + i32.add + i32.load + local.tee $4 + i32.store + local.get $4 + i32.const 0 + i32.ne + if + global.get $~lib/memory/__stack_pointer + local.get $5 + local.get $4 + call $std/array/Ref#toString + local.set $9 + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store offset=8 + local.get $9 + call $~lib/string/String.__concat + local.tee $5 + i32.store offset=4 + end + local.get $6 + if + global.get $~lib/memory/__stack_pointer + local.get $5 + local.get $2 + call $~lib/string/String.__concat + local.tee $5 + i32.store offset=4 + end + local.get $7 + i32.const 1 + i32.add + local.set $7 + br $for-loop|0 + end + end global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store local.get $0 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $3 + i32.const 2 + i32.shl + i32.add + i32.load + local.tee $4 i32.store - local.get $1 - i32.const 8048 - 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 + local.get $4 + i32.const 0 + i32.ne + if + global.get $~lib/memory/__stack_pointer + local.get $5 + local.get $4 + call $std/array/Ref#toString + local.set $9 + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store offset=8 + local.get $9 + call $~lib/string/String.__concat + local.tee $5 + i32.store offset=4 + end + local.get $5 + 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 $1 + local.get $9 ) - (func $~lib/util/string/joinReferenceArray<~lib/array/Array> (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/util/string/joinReferenceArray (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -22485,7 +18091,7 @@ (local $8 i32) (local $9 i32) global.get $~lib/memory/__stack_pointer - i32.const 20 + i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check @@ -22493,11 +18099,8 @@ 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 0 - i32.store offset=16 + i32.store offset=8 local.get $1 i32.const 1 i32.sub @@ -22509,7 +18112,7 @@ i32.const 7728 local.set $9 global.get $~lib/memory/__stack_pointer - i32.const 20 + i32.const 12 i32.add global.set $~lib/memory/__stack_pointer local.get $9 @@ -22528,18 +18131,13 @@ i32.ne if (result i32) local.get $4 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - call $~lib/array/Array#toString + call $std/array/Ref#toString else i32.const 7728 end local.set $9 global.get $~lib/memory/__stack_pointer - i32.const 20 + i32.const 12 i32.add global.set $~lib/memory/__stack_pointer local.get $9 @@ -22548,13 +18146,8 @@ global.get $~lib/memory/__stack_pointer i32.const 7728 local.tee $5 - i32.store offset=8 - local.get $2 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 i32.store offset=4 - local.get $9 + local.get $2 call $~lib/string/String#get:length local.set $6 i32.const 0 @@ -22581,45 +18174,25 @@ if global.get $~lib/memory/__stack_pointer local.get $5 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 local.get $4 + call $std/array/Ref#toString local.set $9 global.get $~lib/memory/__stack_pointer local.get $9 - i32.store offset=16 - local.get $9 - call $~lib/array/Array#toString - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=12 + i32.store offset=8 local.get $9 call $~lib/string/String.__concat local.tee $5 - i32.store offset=8 + i32.store offset=4 end local.get $6 if global.get $~lib/memory/__stack_pointer local.get $5 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 local.get $2 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=12 - local.get $9 call $~lib/string/String.__concat local.tee $5 - i32.store offset=8 + i32.store offset=4 end local.get $7 i32.const 1 @@ -22643,39 +18216,102 @@ if global.get $~lib/memory/__stack_pointer local.get $5 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 local.get $4 + call $std/array/Ref#toString local.set $9 global.get $~lib/memory/__stack_pointer local.get $9 - i32.store offset=16 - local.get $9 - call $~lib/array/Array#toString - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=12 + i32.store offset=8 local.get $9 call $~lib/string/String.__concat local.tee $5 - i32.store offset=8 + i32.store offset=4 end local.get $5 local.set $9 global.get $~lib/memory/__stack_pointer - i32.const 20 + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $9 + ) + (func $~lib/array/Array#toString (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 + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.const 8048 + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + call $~lib/array/Array#join + 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#toString (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 + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.const 8048 + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + call $~lib/array/Array#join + 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#toString (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 + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.const 8048 + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + call $~lib/array/Array#join + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $9 + local.get $1 ) - (func $~lib/array/Array<~lib/array/Array>#join (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) + (func $~lib/array/Array#toString (param $0 i32) (result i32) + (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -22685,73 +18321,71 @@ i32.const 0 i32.store local.get $0 - i32.load offset=4 - local.set $2 - local.get $0 - i32.load offset=12 - local.set $3 - i32.const 0 - drop - i32.const 0 - drop - i32.const 0 - drop - i32.const 0 - i32.const 1 - i32.lt_s - drop - i32.const 0 - drop - i32.const 1 - drop - local.get $2 - local.get $3 - local.get $1 - local.set $4 + i32.const 8048 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $1 i32.store - local.get $4 - call $~lib/util/string/joinReferenceArray<~lib/array/Array> - local.set $4 + local.get $1 + call $~lib/array/Array#join + local.set $1 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $4 - return + local.get $1 ) - (func $~lib/array/Array<~lib/array/Array>#toString (param $0 i32) (result i32) + (func $~lib/array/Array#toString (param $0 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 $0 + i32.const 8048 local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 i32.store local.get $1 + call $~lib/array/Array#join + 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<~lib/string/String|null>#toString (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 + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 i32.const 8048 local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=4 + i32.store local.get $1 - call $~lib/array/Array<~lib/array/Array>#join + 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 ) - (func $~lib/util/string/joinIntegerArray (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/util/string/joinReferenceArray<~lib/array/Array> (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -22759,16 +18393,17 @@ (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 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 $1 i32.const 1 i32.sub @@ -22778,163 +18413,133 @@ i32.lt_s if i32.const 7728 - local.set $11 + 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 $11 + local.get $9 return end local.get $3 i32.eqz if + global.get $~lib/memory/__stack_pointer local.get $0 - i32.load8_u - local.set $4 - i32.const 0 - drop - i32.const 1 - i32.const 4 - i32.le_u - drop + i32.load + local.tee $4 + i32.store local.get $4 - i32.const 10 - call $~lib/util/number/utoa32 - local.set $11 + i32.const 0 + i32.ne + if (result i32) + local.get $4 + call $~lib/array/Array#toString + else + i32.const 7728 + end + 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 $11 + local.get $9 return end - local.get $2 - local.set $11 global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store - local.get $11 + i32.const 7728 + local.tee $5 + i32.store offset=4 + local.get $2 call $~lib/string/String#get:length - local.set $5 - i32.const 10 - local.get $5 - i32.add - local.get $3 - i32.mul - i32.const 10 - i32.add local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.const 1 - i32.shl - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $7 - i32.store offset=4 - i32.const 0 - local.set $8 i32.const 0 - local.set $4 + local.set $7 loop $for-loop|0 - local.get $4 + local.get $7 local.get $3 i32.lt_s - local.set $10 - local.get $10 + local.set $8 + local.get $8 if + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $4 - i32.const 0 - i32.shl - i32.add - i32.load8_u - local.set $9 - local.get $8 local.get $7 - local.get $8 - i32.const 1 + i32.const 2 i32.shl i32.add - local.get $9 - call $~lib/util/number/itoa_buffered - i32.add - local.set $8 - local.get $5 + i32.load + local.tee $4 + i32.store + local.get $4 + i32.const 0 + i32.ne if - local.get $7 - local.get $8 - i32.const 1 - i32.shl - i32.add - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $5 - i32.const 1 - i32.shl - call $~lib/memory/memory.copy - local.get $8 + local.get $4 + call $~lib/array/Array#toString + local.set $9 + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store offset=8 + local.get $9 + call $~lib/string/String.__concat + local.tee $5 + i32.store offset=4 + end + local.get $6 + if + global.get $~lib/memory/__stack_pointer local.get $5 - i32.add - local.set $8 + local.get $2 + call $~lib/string/String.__concat + local.tee $5 + i32.store offset=4 end - local.get $4 + local.get $7 i32.const 1 i32.add - local.set $4 + local.set $7 br $for-loop|0 end end + global.get $~lib/memory/__stack_pointer local.get $0 local.get $3 - i32.const 0 - i32.shl - i32.add - i32.load8_u - local.set $9 - local.get $8 - local.get $7 - local.get $8 - i32.const 1 + i32.const 2 i32.shl i32.add - local.get $9 - call $~lib/util/number/itoa_buffered - i32.add - local.set $8 - local.get $6 - local.get $8 - i32.gt_s + i32.load + local.tee $4 + i32.store + local.get $4 + i32.const 0 + i32.ne if - local.get $7 - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store - local.get $11 - i32.const 0 - local.get $8 - call $~lib/string/String#substring - local.set $11 global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $11 - return + local.get $5 + local.get $4 + call $~lib/array/Array#toString + local.set $9 + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store offset=8 + local.get $9 + call $~lib/string/String.__concat + local.tee $5 + i32.store offset=4 end - local.get $7 - local.set $11 + local.get $5 + 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 $11 + local.get $9 ) - (func $~lib/array/Array#join (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) + (func $~lib/array/Array<~lib/array/Array>#toString (param $0 i32) (result i32) + (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -22944,58 +18549,41 @@ i32.const 0 i32.store local.get $0 - i32.load offset=4 - local.set $2 - local.get $0 - i32.load offset=12 - local.set $3 - i32.const 0 - drop - i32.const 1 - drop - local.get $2 - local.get $3 - local.get $1 - local.set $4 + i32.const 8048 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $1 i32.store - local.get $4 - call $~lib/util/string/joinIntegerArray - local.set $4 + local.get $1 + call $~lib/array/Array<~lib/array/Array>#join + local.set $1 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $4 - return + local.get $1 ) (func $~lib/array/Array#toString (param $0 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 $0 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 + i32.const 0 i32.store - local.get $1 + local.get $0 i32.const 8048 local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=4 + i32.store 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 @@ -23009,7 +18597,7 @@ (local $8 i32) (local $9 i32) global.get $~lib/memory/__stack_pointer - i32.const 20 + i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check @@ -23017,11 +18605,8 @@ 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 0 - i32.store offset=16 + i32.store offset=8 local.get $1 i32.const 1 i32.sub @@ -23033,7 +18618,7 @@ i32.const 7728 local.set $9 global.get $~lib/memory/__stack_pointer - i32.const 20 + i32.const 12 i32.add global.set $~lib/memory/__stack_pointer local.get $9 @@ -23052,18 +18637,13 @@ i32.ne if (result i32) local.get $4 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 call $~lib/array/Array#toString else i32.const 7728 end local.set $9 global.get $~lib/memory/__stack_pointer - i32.const 20 + i32.const 12 i32.add global.set $~lib/memory/__stack_pointer local.get $9 @@ -23072,13 +18652,8 @@ global.get $~lib/memory/__stack_pointer i32.const 7728 local.tee $5 - i32.store offset=8 - local.get $2 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 i32.store offset=4 - local.get $9 + local.get $2 call $~lib/string/String#get:length local.set $6 i32.const 0 @@ -23105,45 +18680,25 @@ if global.get $~lib/memory/__stack_pointer local.get $5 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 local.get $4 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=16 - local.get $9 call $~lib/array/Array#toString local.set $9 global.get $~lib/memory/__stack_pointer local.get $9 - i32.store offset=12 + i32.store offset=8 local.get $9 call $~lib/string/String.__concat local.tee $5 - i32.store offset=8 + i32.store offset=4 end local.get $6 if global.get $~lib/memory/__stack_pointer local.get $5 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 local.get $2 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=12 - local.get $9 call $~lib/string/String.__concat local.tee $5 - i32.store offset=8 + i32.store offset=4 end local.get $7 i32.const 1 @@ -23167,39 +18722,27 @@ if global.get $~lib/memory/__stack_pointer local.get $5 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 local.get $4 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=16 - local.get $9 call $~lib/array/Array#toString local.set $9 global.get $~lib/memory/__stack_pointer local.get $9 - i32.store offset=12 + i32.store offset=8 local.get $9 call $~lib/string/String.__concat local.tee $5 - i32.store offset=8 + i32.store offset=4 end local.get $5 local.set $9 global.get $~lib/memory/__stack_pointer - i32.const 20 + i32.const 12 i32.add global.set $~lib/memory/__stack_pointer local.get $9 ) - (func $~lib/array/Array<~lib/array/Array>#join (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) + (func $~lib/array/Array<~lib/array/Array>#toString (param $0 i32) (result i32) + (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -23209,68 +18752,16 @@ i32.const 0 i32.store local.get $0 - i32.load offset=4 - local.set $2 - local.get $0 - i32.load offset=12 - local.set $3 - i32.const 0 - drop - i32.const 0 - drop - i32.const 0 - drop - i32.const 0 - i32.const 1 - i32.lt_s - drop - i32.const 0 - drop - i32.const 1 - drop - local.get $2 - local.get $3 - local.get $1 - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store - local.get $4 - call $~lib/util/string/joinReferenceArray<~lib/array/Array> - 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/array/Array<~lib/array/Array>#toString (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 - call $~stack_check - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - local.get $0 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $1 i32.const 8048 local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=4 + i32.store 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 @@ -23278,29 +18769,24 @@ (func $~lib/array/Array#toString (param $0 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 $0 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 + i32.const 0 i32.store - local.get $1 + local.get $0 i32.const 8048 local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=4 + i32.store 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 @@ -23314,7 +18800,7 @@ (local $8 i32) (local $9 i32) global.get $~lib/memory/__stack_pointer - i32.const 20 + i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check @@ -23322,11 +18808,8 @@ 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 0 - i32.store offset=16 + i32.store offset=8 local.get $1 i32.const 1 i32.sub @@ -23338,7 +18821,7 @@ i32.const 7728 local.set $9 global.get $~lib/memory/__stack_pointer - i32.const 20 + i32.const 12 i32.add global.set $~lib/memory/__stack_pointer local.get $9 @@ -23357,18 +18840,13 @@ i32.ne if (result i32) local.get $4 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 call $~lib/array/Array#toString else i32.const 7728 end local.set $9 global.get $~lib/memory/__stack_pointer - i32.const 20 + i32.const 12 i32.add global.set $~lib/memory/__stack_pointer local.get $9 @@ -23377,13 +18855,8 @@ global.get $~lib/memory/__stack_pointer i32.const 7728 local.tee $5 - i32.store offset=8 - local.get $2 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 i32.store offset=4 - local.get $9 + local.get $2 call $~lib/string/String#get:length local.set $6 i32.const 0 @@ -23410,45 +18883,25 @@ if global.get $~lib/memory/__stack_pointer local.get $5 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 local.get $4 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=16 - local.get $9 call $~lib/array/Array#toString local.set $9 global.get $~lib/memory/__stack_pointer local.get $9 - i32.store offset=12 + i32.store offset=8 local.get $9 call $~lib/string/String.__concat local.tee $5 - i32.store offset=8 + i32.store offset=4 end local.get $6 if global.get $~lib/memory/__stack_pointer - local.get $5 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - local.get $2 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=12 - local.get $9 + local.get $5 + local.get $2 call $~lib/string/String.__concat local.tee $5 - i32.store offset=8 + i32.store offset=4 end local.get $7 i32.const 1 @@ -23472,39 +18925,27 @@ if global.get $~lib/memory/__stack_pointer local.get $5 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 local.get $4 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=16 - local.get $9 call $~lib/array/Array#toString local.set $9 global.get $~lib/memory/__stack_pointer local.get $9 - i32.store offset=12 + i32.store offset=8 local.get $9 call $~lib/string/String.__concat local.tee $5 - i32.store offset=8 + i32.store offset=4 end local.get $5 local.set $9 global.get $~lib/memory/__stack_pointer - i32.const 20 + i32.const 12 i32.add global.set $~lib/memory/__stack_pointer local.get $9 ) - (func $~lib/array/Array<~lib/array/Array>#join (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) + (func $~lib/array/Array<~lib/array/Array>#toString (param $0 i32) (result i32) + (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -23514,68 +18955,16 @@ i32.const 0 i32.store local.get $0 - i32.load offset=4 - local.set $2 - local.get $0 - i32.load offset=12 - local.set $3 - i32.const 0 - drop - i32.const 0 - drop - i32.const 0 - drop - i32.const 0 - i32.const 1 - i32.lt_s - drop - i32.const 0 - drop - i32.const 1 - drop - local.get $2 - local.get $3 - local.get $1 - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store - local.get $4 - call $~lib/util/string/joinReferenceArray<~lib/array/Array> - 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/array/Array<~lib/array/Array>#toString (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 - call $~stack_check - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - local.get $0 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $1 i32.const 8048 local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=4 + i32.store 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 @@ -23589,7 +18978,7 @@ (local $8 i32) (local $9 i32) global.get $~lib/memory/__stack_pointer - i32.const 20 + i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check @@ -23597,11 +18986,8 @@ 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 0 - i32.store offset=16 + i32.store offset=8 local.get $1 i32.const 1 i32.sub @@ -23613,7 +18999,7 @@ i32.const 7728 local.set $9 global.get $~lib/memory/__stack_pointer - i32.const 20 + i32.const 12 i32.add global.set $~lib/memory/__stack_pointer local.get $9 @@ -23632,18 +19018,13 @@ i32.ne if (result i32) local.get $4 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 call $~lib/array/Array<~lib/array/Array>#toString else i32.const 7728 end local.set $9 global.get $~lib/memory/__stack_pointer - i32.const 20 + i32.const 12 i32.add global.set $~lib/memory/__stack_pointer local.get $9 @@ -23652,13 +19033,8 @@ global.get $~lib/memory/__stack_pointer i32.const 7728 local.tee $5 - i32.store offset=8 - local.get $2 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 i32.store offset=4 - local.get $9 + local.get $2 call $~lib/string/String#get:length local.set $6 i32.const 0 @@ -23685,45 +19061,25 @@ if global.get $~lib/memory/__stack_pointer local.get $5 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 local.get $4 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=16 - local.get $9 call $~lib/array/Array<~lib/array/Array>#toString local.set $9 global.get $~lib/memory/__stack_pointer local.get $9 - i32.store offset=12 + i32.store offset=8 local.get $9 call $~lib/string/String.__concat local.tee $5 - i32.store offset=8 + i32.store offset=4 end local.get $6 if global.get $~lib/memory/__stack_pointer local.get $5 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 local.get $2 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=12 - local.get $9 call $~lib/string/String.__concat local.tee $5 - i32.store offset=8 + i32.store offset=4 end local.get $7 i32.const 1 @@ -23747,39 +19103,27 @@ if global.get $~lib/memory/__stack_pointer local.get $5 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 local.get $4 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=16 - local.get $9 call $~lib/array/Array<~lib/array/Array>#toString local.set $9 global.get $~lib/memory/__stack_pointer local.get $9 - i32.store offset=12 + i32.store offset=8 local.get $9 call $~lib/string/String.__concat local.tee $5 - i32.store offset=8 + i32.store offset=4 end local.get $5 local.set $9 global.get $~lib/memory/__stack_pointer - i32.const 20 + i32.const 12 i32.add global.set $~lib/memory/__stack_pointer local.get $9 ) - (func $~lib/array/Array<~lib/array/Array<~lib/array/Array>>#join (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) + (func $~lib/array/Array<~lib/array/Array<~lib/array/Array>>#toString (param $0 i32) (result i32) + (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -23789,68 +19133,16 @@ i32.const 0 i32.store local.get $0 - i32.load offset=4 - local.set $2 - local.get $0 - i32.load offset=12 - local.set $3 - i32.const 0 - drop - i32.const 0 - drop - i32.const 0 - drop - i32.const 0 - i32.const 1 - i32.lt_s - drop - i32.const 0 - drop - i32.const 1 - drop - local.get $2 - local.get $3 - local.get $1 - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store - local.get $4 - call $~lib/util/string/joinReferenceArray<~lib/array/Array<~lib/array/Array>> - 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/array/Array<~lib/array/Array<~lib/array/Array>>#toString (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 - call $~stack_check - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - local.get $0 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $1 i32.const 8048 local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=4 + i32.store 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 @@ -24034,22 +19326,12 @@ local.tee $1 i32.store offset=4 local.get $1 - local.set $16 - global.get $~lib/memory/__stack_pointer - local.get $16 - i32.store - local.get $16 i32.const 1 i32.const 1 i32.const 3 call $~lib/array/Array#fill drop local.get $1 - local.set $16 - global.get $~lib/memory/__stack_pointer - local.get $16 - i32.store - local.get $16 i32.const 5 i32.const 0 i32.const 6 @@ -24072,22 +19354,12 @@ unreachable end local.get $1 - local.set $16 - global.get $~lib/memory/__stack_pointer - local.get $16 - i32.store - local.get $16 i32.const 0 i32.const 0 global.get $~lib/builtins/i32.MAX_VALUE call $~lib/array/Array#fill drop local.get $1 - local.set $16 - global.get $~lib/memory/__stack_pointer - local.get $16 - i32.store - local.get $16 i32.const 5 i32.const 0 i32.const 6 @@ -24110,22 +19382,12 @@ unreachable end local.get $1 - local.set $16 - global.get $~lib/memory/__stack_pointer - local.get $16 - i32.store - local.get $16 i32.const 1 i32.const 0 i32.const -3 call $~lib/array/Array#fill drop local.get $1 - local.set $16 - global.get $~lib/memory/__stack_pointer - local.get $16 - i32.store - local.get $16 i32.const 5 i32.const 0 i32.const 6 @@ -24148,22 +19410,12 @@ unreachable end local.get $1 - local.set $16 - global.get $~lib/memory/__stack_pointer - local.get $16 - i32.store - local.get $16 i32.const 2 i32.const -2 global.get $~lib/builtins/i32.MAX_VALUE call $~lib/array/Array#fill drop local.get $1 - local.set $16 - global.get $~lib/memory/__stack_pointer - local.get $16 - i32.store - local.get $16 i32.const 5 i32.const 0 i32.const 6 @@ -24186,22 +19438,12 @@ unreachable end local.get $1 - local.set $16 - global.get $~lib/memory/__stack_pointer - local.get $16 - i32.store - local.get $16 i32.const 0 i32.const 1 i32.const 0 call $~lib/array/Array#fill drop local.get $1 - local.set $16 - global.get $~lib/memory/__stack_pointer - local.get $16 - i32.store - local.get $16 i32.const 5 i32.const 0 i32.const 6 @@ -24232,22 +19474,12 @@ local.tee $2 i32.store offset=12 local.get $2 - local.set $16 - global.get $~lib/memory/__stack_pointer - local.get $16 - i32.store - local.get $16 i32.const 1 i32.const 1 i32.const 3 call $~lib/array/Array#fill drop local.get $2 - local.set $16 - global.get $~lib/memory/__stack_pointer - local.get $16 - i32.store - local.get $16 i32.const 5 i32.const 2 i32.const 7 @@ -24270,22 +19502,12 @@ unreachable end local.get $2 - local.set $16 - global.get $~lib/memory/__stack_pointer - local.get $16 - i32.store - local.get $16 i32.const 0 i32.const 0 global.get $~lib/builtins/i32.MAX_VALUE call $~lib/array/Array#fill drop local.get $2 - local.set $16 - global.get $~lib/memory/__stack_pointer - local.get $16 - i32.store - local.get $16 i32.const 5 i32.const 2 i32.const 7 @@ -24308,22 +19530,12 @@ unreachable end local.get $2 - local.set $16 - global.get $~lib/memory/__stack_pointer - local.get $16 - i32.store - local.get $16 i32.const 1 i32.const 0 i32.const -3 call $~lib/array/Array#fill drop local.get $2 - local.set $16 - global.get $~lib/memory/__stack_pointer - local.get $16 - i32.store - local.get $16 i32.const 5 i32.const 2 i32.const 7 @@ -24346,22 +19558,12 @@ unreachable end local.get $2 - local.set $16 - global.get $~lib/memory/__stack_pointer - local.get $16 - i32.store - local.get $16 i32.const 2 i32.const -2 global.get $~lib/builtins/i32.MAX_VALUE call $~lib/array/Array#fill drop local.get $2 - local.set $16 - global.get $~lib/memory/__stack_pointer - local.get $16 - i32.store - local.get $16 i32.const 5 i32.const 2 i32.const 7 @@ -24384,22 +19586,12 @@ unreachable end local.get $2 - local.set $16 - global.get $~lib/memory/__stack_pointer - local.get $16 - i32.store - local.get $16 i32.const 0 i32.const 1 i32.const 0 call $~lib/array/Array#fill drop local.get $2 - local.set $16 - global.get $~lib/memory/__stack_pointer - local.get $16 - i32.store - local.get $16 i32.const 5 i32.const 2 i32.const 7 @@ -24856,19 +20048,9 @@ local.tee $0 i32.store offset=16 local.get $0 - local.set $16 - global.get $~lib/memory/__stack_pointer - local.get $16 - i32.store - local.get $16 i32.const 0 call $~lib/array/Array#set:length local.get $0 - local.set $16 - global.get $~lib/memory/__stack_pointer - local.get $16 - i32.store - local.get $16 call $~lib/array/Array#get:length i32.const 0 i32.eq @@ -24890,11 +20072,6 @@ local.tee $2 i32.store offset=12 local.get $2 - local.set $16 - global.get $~lib/memory/__stack_pointer - local.get $16 - i32.store - local.get $16 i32.const 0 call $~lib/array/Array#at i32.const 1 @@ -24909,11 +20086,6 @@ unreachable end local.get $2 - local.set $16 - global.get $~lib/memory/__stack_pointer - local.get $16 - i32.store - local.get $16 i32.const 3 call $~lib/array/Array#at i32.const 4 @@ -24928,11 +20100,6 @@ unreachable end local.get $2 - local.set $16 - global.get $~lib/memory/__stack_pointer - local.get $16 - i32.store - local.get $16 i32.const -1 call $~lib/array/Array#at i32.const 4 @@ -24947,11 +20114,6 @@ unreachable end local.get $2 - local.set $16 - global.get $~lib/memory/__stack_pointer - local.get $16 - i32.store - local.get $16 i32.const -4 call $~lib/array/Array#at i32.const 1 @@ -24979,11 +20141,6 @@ i32.store local.get $16 local.get $2 - local.set $16 - global.get $~lib/memory/__stack_pointer - local.get $16 - i32.store offset=8 - local.get $16 call $~lib/array/Array#concat local.tee $0 i32.store offset=16 @@ -25024,11 +20181,6 @@ unreachable end local.get $0 - local.set $16 - global.get $~lib/memory/__stack_pointer - local.get $16 - i32.store - local.get $16 call $~lib/array/Array#get:length i32.const 3 i32.eq @@ -25042,11 +20194,6 @@ unreachable end local.get $0 - local.set $16 - global.get $~lib/memory/__stack_pointer - local.get $16 - i32.store - local.get $16 i32.const 0 i32.const 2 i32.const 3 @@ -25078,11 +20225,6 @@ unreachable end local.get $0 - local.set $16 - global.get $~lib/memory/__stack_pointer - local.get $16 - i32.store - local.get $16 i32.const 0 call $~lib/array/Array#__get i32.const 43 @@ -25097,11 +20239,6 @@ unreachable end local.get $0 - local.set $16 - global.get $~lib/memory/__stack_pointer - local.get $16 - i32.store - local.get $16 i32.const 1 call $~lib/array/Array#__get i32.const 44 @@ -25116,11 +20253,6 @@ unreachable end local.get $0 - local.set $16 - global.get $~lib/memory/__stack_pointer - local.get $16 - i32.store - local.get $16 i32.const 2 call $~lib/array/Array#__get i32.const 45 @@ -25135,20 +20267,10 @@ unreachable end local.get $2 - local.set $16 - global.get $~lib/memory/__stack_pointer - local.get $16 - i32.store - local.get $16 i32.const 46 call $~lib/array/Array#push drop local.get $2 - local.set $16 - global.get $~lib/memory/__stack_pointer - local.get $16 - i32.store - local.get $16 i32.const 47 call $~lib/array/Array#push drop @@ -25160,11 +20282,6 @@ i32.store local.get $16 local.get $2 - local.set $16 - global.get $~lib/memory/__stack_pointer - local.get $16 - i32.store offset=8 - local.get $16 call $~lib/array/Array#concat local.tee $0 i32.store offset=16 @@ -25187,11 +20304,6 @@ unreachable end local.get $2 - local.set $16 - global.get $~lib/memory/__stack_pointer - local.get $16 - i32.store - local.get $16 call $~lib/array/Array#get:length i32.const 2 i32.eq @@ -25205,11 +20317,6 @@ unreachable end local.get $0 - local.set $16 - global.get $~lib/memory/__stack_pointer - local.get $16 - i32.store - local.get $16 call $~lib/array/Array#get:length i32.const 5 i32.eq @@ -25223,11 +20330,6 @@ unreachable end local.get $0 - local.set $16 - global.get $~lib/memory/__stack_pointer - local.get $16 - i32.store - local.get $16 i32.const 0 call $~lib/array/Array#__get i32.const 43 @@ -25242,11 +20344,6 @@ unreachable end local.get $0 - local.set $16 - global.get $~lib/memory/__stack_pointer - local.get $16 - i32.store - local.get $16 i32.const 1 call $~lib/array/Array#__get i32.const 44 @@ -25261,11 +20358,6 @@ unreachable end local.get $0 - local.set $16 - global.get $~lib/memory/__stack_pointer - local.get $16 - i32.store - local.get $16 i32.const 2 call $~lib/array/Array#__get i32.const 45 @@ -25280,11 +20372,6 @@ unreachable end local.get $0 - local.set $16 - global.get $~lib/memory/__stack_pointer - local.get $16 - i32.store - local.get $16 i32.const 3 call $~lib/array/Array#__get i32.const 46 @@ -25299,11 +20386,6 @@ unreachable end local.get $0 - local.set $16 - global.get $~lib/memory/__stack_pointer - local.get $16 - i32.store - local.get $16 i32.const 4 call $~lib/array/Array#__get i32.const 47 @@ -25318,19 +20400,9 @@ unreachable end local.get $0 - local.set $16 - global.get $~lib/memory/__stack_pointer - local.get $16 - i32.store - local.get $16 call $~lib/array/Array#pop drop local.get $0 - local.set $16 - global.get $~lib/memory/__stack_pointer - local.get $16 - i32.store - local.get $16 call $~lib/array/Array#get:length i32.const 4 i32.eq @@ -25352,11 +20424,6 @@ local.tee $1 i32.store offset=4 local.get $1 - local.set $16 - global.get $~lib/memory/__stack_pointer - local.get $16 - i32.store - local.get $16 call $~lib/array/Array#get:length i32.const 0 i32.eq @@ -25371,11 +20438,6 @@ end global.get $~lib/memory/__stack_pointer local.get $1 - local.set $16 - global.get $~lib/memory/__stack_pointer - local.get $16 - i32.store - local.get $16 global.get $std/array/arr local.set $16 global.get $~lib/memory/__stack_pointer @@ -25386,11 +20448,6 @@ local.tee $0 i32.store offset=16 local.get $0 - local.set $16 - global.get $~lib/memory/__stack_pointer - local.get $16 - i32.store - local.get $16 call $~lib/array/Array#get:length i32.const 3 i32.eq @@ -25404,11 +20461,6 @@ unreachable end local.get $1 - local.set $16 - global.get $~lib/memory/__stack_pointer - local.get $16 - i32.store - local.get $16 call $~lib/array/Array#get:length i32.const 0 i32.eq @@ -25430,11 +20482,6 @@ local.tee $0 i32.store offset=16 local.get $0 - local.set $16 - global.get $~lib/memory/__stack_pointer - local.get $16 - i32.store offset=20 - local.get $16 i32.const 0 i32.const 3 global.get $~lib/builtins/i32.MAX_VALUE @@ -25474,11 +20521,6 @@ local.tee $0 i32.store offset=16 local.get $0 - local.set $16 - global.get $~lib/memory/__stack_pointer - local.get $16 - i32.store offset=20 - local.get $16 i32.const 1 i32.const 3 global.get $~lib/builtins/i32.MAX_VALUE @@ -25518,11 +20560,6 @@ local.tee $0 i32.store offset=16 local.get $0 - local.set $16 - global.get $~lib/memory/__stack_pointer - local.get $16 - i32.store offset=20 - local.get $16 i32.const 1 i32.const 2 global.get $~lib/builtins/i32.MAX_VALUE @@ -25562,11 +20599,6 @@ local.tee $0 i32.store offset=16 local.get $0 - local.set $16 - global.get $~lib/memory/__stack_pointer - local.get $16 - i32.store offset=20 - local.get $16 i32.const 2 i32.const 2 global.get $~lib/builtins/i32.MAX_VALUE @@ -25606,11 +20638,6 @@ local.tee $0 i32.store offset=16 local.get $0 - local.set $16 - global.get $~lib/memory/__stack_pointer - local.get $16 - i32.store offset=20 - local.get $16 i32.const 0 i32.const 3 i32.const 4 @@ -25650,11 +20677,6 @@ local.tee $0 i32.store offset=16 local.get $0 - local.set $16 - global.get $~lib/memory/__stack_pointer - local.get $16 - i32.store offset=20 - local.get $16 i32.const 1 i32.const 3 i32.const 4 @@ -25694,11 +20716,6 @@ local.tee $0 i32.store offset=16 local.get $0 - local.set $16 - global.get $~lib/memory/__stack_pointer - local.get $16 - i32.store offset=20 - local.get $16 i32.const 1 i32.const 2 i32.const 4 @@ -25738,11 +20755,6 @@ local.tee $0 i32.store offset=16 local.get $0 - local.set $16 - global.get $~lib/memory/__stack_pointer - local.get $16 - i32.store offset=20 - local.get $16 i32.const 0 i32.const -2 global.get $~lib/builtins/i32.MAX_VALUE @@ -25782,11 +20794,6 @@ local.tee $0 i32.store offset=16 local.get $0 - local.set $16 - global.get $~lib/memory/__stack_pointer - local.get $16 - i32.store offset=20 - local.get $16 i32.const 0 i32.const -2 i32.const -1 @@ -25826,11 +20833,6 @@ local.tee $0 i32.store offset=16 local.get $0 - local.set $16 - global.get $~lib/memory/__stack_pointer - local.get $16 - i32.store offset=20 - local.get $16 i32.const -4 i32.const -3 i32.const -2 @@ -25870,11 +20872,6 @@ local.tee $0 i32.store offset=16 local.get $0 - local.set $16 - global.get $~lib/memory/__stack_pointer - local.get $16 - i32.store offset=20 - local.get $16 i32.const -4 i32.const -3 i32.const -1 @@ -25914,11 +20911,6 @@ local.tee $0 i32.store offset=16 local.get $0 - local.set $16 - global.get $~lib/memory/__stack_pointer - local.get $16 - i32.store offset=20 - local.get $16 i32.const -4 i32.const -3 global.get $~lib/builtins/i32.MAX_VALUE @@ -26464,23 +21456,13 @@ local.tee $1 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $1 - local.set $16 - global.get $~lib/memory/__stack_pointer - local.get $16 - i32.store - local.get $16 + local.get $1 i32.const 2 global.get $~lib/builtins/i32.MAX_VALUE call $~lib/array/Array#slice local.tee $0 i32.store offset=16 local.get $0 - local.set $16 - global.get $~lib/memory/__stack_pointer - local.get $16 - i32.store - local.get $16 i32.const 3 i32.const 2 i32.const 3 @@ -26504,22 +21486,12 @@ end global.get $~lib/memory/__stack_pointer local.get $1 - local.set $16 - global.get $~lib/memory/__stack_pointer - local.get $16 - i32.store - local.get $16 i32.const 2 i32.const 4 call $~lib/array/Array#slice local.tee $0 i32.store offset=16 local.get $0 - local.set $16 - global.get $~lib/memory/__stack_pointer - local.get $16 - i32.store - local.get $16 i32.const 2 i32.const 2 i32.const 3 @@ -26543,22 +21515,12 @@ end global.get $~lib/memory/__stack_pointer local.get $1 - local.set $16 - global.get $~lib/memory/__stack_pointer - local.get $16 - i32.store - local.get $16 i32.const 1 i32.const 5 call $~lib/array/Array#slice local.tee $0 i32.store offset=16 local.get $0 - local.set $16 - global.get $~lib/memory/__stack_pointer - local.get $16 - i32.store - local.get $16 i32.const 4 i32.const 2 i32.const 3 @@ -26582,28 +21544,13 @@ end global.get $~lib/memory/__stack_pointer local.get $1 - local.set $16 - global.get $~lib/memory/__stack_pointer - local.get $16 - i32.store - local.get $16 i32.const 0 global.get $~lib/builtins/i32.MAX_VALUE call $~lib/array/Array#slice local.tee $0 i32.store offset=16 local.get $0 - local.set $16 - global.get $~lib/memory/__stack_pointer - local.get $16 - i32.store - local.get $16 local.get $1 - local.set $16 - global.get $~lib/memory/__stack_pointer - local.get $16 - i32.store offset=8 - local.get $16 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -26617,22 +21564,12 @@ end global.get $~lib/memory/__stack_pointer local.get $1 - local.set $16 - global.get $~lib/memory/__stack_pointer - local.get $16 - i32.store - local.get $16 i32.const -2 global.get $~lib/builtins/i32.MAX_VALUE call $~lib/array/Array#slice local.tee $0 i32.store offset=16 local.get $0 - local.set $16 - global.get $~lib/memory/__stack_pointer - local.get $16 - i32.store - local.get $16 i32.const 2 i32.const 2 i32.const 3 @@ -26656,22 +21593,12 @@ end global.get $~lib/memory/__stack_pointer local.get $1 - local.set $16 - global.get $~lib/memory/__stack_pointer - local.get $16 - i32.store - local.get $16 i32.const 2 i32.const -1 call $~lib/array/Array#slice local.tee $0 i32.store offset=16 local.get $0 - local.set $16 - global.get $~lib/memory/__stack_pointer - local.get $16 - i32.store - local.get $16 i32.const 2 i32.const 2 i32.const 3 @@ -26695,22 +21622,12 @@ end global.get $~lib/memory/__stack_pointer local.get $1 - local.set $16 - global.get $~lib/memory/__stack_pointer - local.get $16 - i32.store - local.get $16 i32.const -3 i32.const -1 call $~lib/array/Array#slice local.tee $0 i32.store offset=16 local.get $0 - local.set $16 - global.get $~lib/memory/__stack_pointer - local.get $16 - i32.store - local.get $16 i32.const 2 i32.const 2 i32.const 3 @@ -26733,11 +21650,6 @@ unreachable end local.get $1 - local.set $16 - global.get $~lib/memory/__stack_pointer - local.get $16 - i32.store offset=8 - local.get $16 i32.const -1 i32.const -3 call $~lib/array/Array#slice @@ -26759,11 +21671,6 @@ unreachable end local.get $1 - local.set $16 - global.get $~lib/memory/__stack_pointer - local.get $16 - i32.store offset=8 - local.get $16 i32.const 10 global.get $~lib/builtins/i32.MAX_VALUE call $~lib/array/Array#slice @@ -27180,11 +22087,6 @@ local.tee $0 i32.store offset=16 local.get $0 - local.set $16 - global.get $~lib/memory/__stack_pointer - local.get $16 - i32.store - local.get $16 i32.const 2 i32.const 1 global.set $~argumentsLength @@ -27202,11 +22104,6 @@ unreachable end local.get $0 - local.set $16 - global.get $~lib/memory/__stack_pointer - local.get $16 - i32.store - local.get $16 i32.const 7 i32.const 1 global.set $~argumentsLength @@ -27224,11 +22121,6 @@ unreachable end local.get $0 - local.set $16 - global.get $~lib/memory/__stack_pointer - local.get $16 - i32.store - local.get $16 i32.const 2 i32.const 3 call $~lib/array/Array#lastIndexOf @@ -27244,11 +22136,6 @@ unreachable end local.get $0 - local.set $16 - global.get $~lib/memory/__stack_pointer - local.get $16 - i32.store - local.get $16 i32.const 2 i32.const 2 call $~lib/array/Array#lastIndexOf @@ -27264,11 +22151,6 @@ unreachable end local.get $0 - local.set $16 - global.get $~lib/memory/__stack_pointer - local.get $16 - i32.store - local.get $16 i32.const 2 i32.const -2 call $~lib/array/Array#lastIndexOf @@ -27284,11 +22166,6 @@ unreachable end local.get $0 - local.set $16 - global.get $~lib/memory/__stack_pointer - local.get $16 - i32.store - local.get $16 i32.const 2 i32.const -1 call $~lib/array/Array#lastIndexOf @@ -27660,11 +22537,6 @@ local.tee $1 i32.store offset=4 local.get $1 - local.set $16 - global.get $~lib/memory/__stack_pointer - local.get $16 - i32.store offset=20 - local.get $16 i32.const 0 global.get $~lib/builtins/i32.MAX_VALUE call $~lib/array/Array#splice @@ -27695,11 +22567,6 @@ unreachable end local.get $1 - local.set $16 - global.get $~lib/memory/__stack_pointer - local.get $16 - i32.store - local.get $16 i32.const 0 i32.const 2 i32.const 3 @@ -27730,11 +22597,6 @@ local.tee $1 i32.store offset=4 local.get $1 - local.set $16 - global.get $~lib/memory/__stack_pointer - local.get $16 - i32.store offset=20 - local.get $16 i32.const 0 i32.const 0 call $~lib/array/Array#splice @@ -27765,11 +22627,6 @@ unreachable end local.get $1 - local.set $16 - global.get $~lib/memory/__stack_pointer - local.get $16 - i32.store - local.get $16 i32.const 5 i32.const 2 i32.const 3 @@ -27800,11 +22657,6 @@ local.tee $1 i32.store offset=4 local.get $1 - local.set $16 - global.get $~lib/memory/__stack_pointer - local.get $16 - i32.store offset=20 - local.get $16 i32.const 2 global.get $~lib/builtins/i32.MAX_VALUE call $~lib/array/Array#splice @@ -27835,11 +22687,6 @@ unreachable end local.get $1 - local.set $16 - global.get $~lib/memory/__stack_pointer - local.get $16 - i32.store - local.get $16 i32.const 2 i32.const 2 i32.const 3 @@ -27870,11 +22717,6 @@ local.tee $1 i32.store offset=4 local.get $1 - local.set $16 - global.get $~lib/memory/__stack_pointer - local.get $16 - i32.store offset=20 - local.get $16 i32.const 2 i32.const 2 call $~lib/array/Array#splice @@ -27905,11 +22747,6 @@ unreachable end local.get $1 - local.set $16 - global.get $~lib/memory/__stack_pointer - local.get $16 - i32.store - local.get $16 i32.const 3 i32.const 2 i32.const 3 @@ -27940,11 +22777,6 @@ local.tee $1 i32.store offset=4 local.get $1 - local.set $16 - global.get $~lib/memory/__stack_pointer - local.get $16 - i32.store offset=20 - local.get $16 i32.const 0 i32.const 1 call $~lib/array/Array#splice @@ -27975,11 +22807,6 @@ unreachable end local.get $1 - local.set $16 - global.get $~lib/memory/__stack_pointer - local.get $16 - i32.store - local.get $16 i32.const 4 i32.const 2 i32.const 3 @@ -28010,11 +22837,6 @@ local.tee $1 i32.store offset=4 local.get $1 - local.set $16 - global.get $~lib/memory/__stack_pointer - local.get $16 - i32.store offset=20 - local.get $16 i32.const -1 global.get $~lib/builtins/i32.MAX_VALUE call $~lib/array/Array#splice @@ -28045,11 +22867,6 @@ unreachable end local.get $1 - local.set $16 - global.get $~lib/memory/__stack_pointer - local.get $16 - i32.store - local.get $16 i32.const 4 i32.const 2 i32.const 3 @@ -28080,11 +22897,6 @@ local.tee $1 i32.store offset=4 local.get $1 - local.set $16 - global.get $~lib/memory/__stack_pointer - local.get $16 - i32.store offset=20 - local.get $16 i32.const -2 global.get $~lib/builtins/i32.MAX_VALUE call $~lib/array/Array#splice @@ -28115,11 +22927,6 @@ unreachable end local.get $1 - local.set $16 - global.get $~lib/memory/__stack_pointer - local.get $16 - i32.store - local.get $16 i32.const 3 i32.const 2 i32.const 3 @@ -28150,11 +22957,6 @@ local.tee $1 i32.store offset=4 local.get $1 - local.set $16 - global.get $~lib/memory/__stack_pointer - local.get $16 - i32.store offset=20 - local.get $16 i32.const -2 i32.const 1 call $~lib/array/Array#splice @@ -28185,11 +22987,6 @@ unreachable end local.get $1 - local.set $16 - global.get $~lib/memory/__stack_pointer - local.get $16 - i32.store - local.get $16 i32.const 4 i32.const 2 i32.const 3 @@ -28220,11 +23017,6 @@ local.tee $1 i32.store offset=4 local.get $1 - local.set $16 - global.get $~lib/memory/__stack_pointer - local.get $16 - i32.store offset=20 - local.get $16 i32.const -7 i32.const 1 call $~lib/array/Array#splice @@ -28255,11 +23047,6 @@ unreachable end local.get $1 - local.set $16 - global.get $~lib/memory/__stack_pointer - local.get $16 - i32.store - local.get $16 i32.const 4 i32.const 2 i32.const 3 @@ -28290,11 +23077,6 @@ local.tee $1 i32.store offset=4 local.get $1 - local.set $16 - global.get $~lib/memory/__stack_pointer - local.get $16 - i32.store offset=20 - local.get $16 i32.const -2 i32.const -1 call $~lib/array/Array#splice @@ -28325,11 +23107,6 @@ unreachable end local.get $1 - local.set $16 - global.get $~lib/memory/__stack_pointer - local.get $16 - i32.store - local.get $16 i32.const 5 i32.const 2 i32.const 3 @@ -28360,11 +23137,6 @@ local.tee $1 i32.store offset=4 local.get $1 - local.set $16 - global.get $~lib/memory/__stack_pointer - local.get $16 - i32.store offset=20 - local.get $16 i32.const 1 i32.const -2 call $~lib/array/Array#splice @@ -28395,11 +23167,6 @@ unreachable end local.get $1 - local.set $16 - global.get $~lib/memory/__stack_pointer - local.get $16 - i32.store - local.get $16 i32.const 5 i32.const 2 i32.const 3 @@ -28430,11 +23197,6 @@ local.tee $1 i32.store offset=4 local.get $1 - local.set $16 - global.get $~lib/memory/__stack_pointer - local.get $16 - i32.store offset=20 - local.get $16 i32.const 4 i32.const 0 call $~lib/array/Array#splice @@ -28465,11 +23227,6 @@ unreachable end local.get $1 - local.set $16 - global.get $~lib/memory/__stack_pointer - local.get $16 - i32.store - local.get $16 i32.const 5 i32.const 2 i32.const 3 @@ -28500,11 +23257,6 @@ local.tee $1 i32.store offset=4 local.get $1 - local.set $16 - global.get $~lib/memory/__stack_pointer - local.get $16 - i32.store offset=20 - local.get $16 i32.const 7 i32.const 0 call $~lib/array/Array#splice @@ -28535,11 +23287,6 @@ unreachable end local.get $1 - local.set $16 - global.get $~lib/memory/__stack_pointer - local.get $16 - i32.store - local.get $16 i32.const 5 i32.const 2 i32.const 3 @@ -28570,11 +23317,6 @@ local.tee $1 i32.store offset=4 local.get $1 - local.set $16 - global.get $~lib/memory/__stack_pointer - local.get $16 - i32.store offset=20 - local.get $16 i32.const 7 i32.const 5 call $~lib/array/Array#splice @@ -28605,11 +23347,6 @@ unreachable end local.get $1 - local.set $16 - global.get $~lib/memory/__stack_pointer - local.get $16 - i32.store - local.get $16 i32.const 5 i32.const 2 i32.const 3 @@ -28641,22 +23378,12 @@ i32.store offset=16 global.get $~lib/memory/__stack_pointer local.get $0 - local.set $16 - global.get $~lib/memory/__stack_pointer - local.get $16 - i32.store - local.get $16 i32.const 1 i32.const 2 call $~lib/array/Array#splice local.tee $2 i32.store offset=12 local.get $2 - local.set $16 - global.get $~lib/memory/__stack_pointer - local.get $16 - i32.store - local.get $16 call $~lib/array/Array#get:length i32.const 0 i32.eq @@ -28670,11 +23397,6 @@ unreachable end local.get $0 - local.set $16 - global.get $~lib/memory/__stack_pointer - local.get $16 - i32.store - local.get $16 call $~lib/array/Array#get:length i32.const 0 i32.eq @@ -28695,12 +23417,12 @@ i32.const 0 call $~lib/rt/__newArray local.tee $3 - i32.store offset=24 + i32.store offset=20 global.get $~lib/memory/__stack_pointer local.get $3 i32.load offset=4 local.tee $4 - i32.store offset=28 + i32.store offset=24 local.get $3 i32.const 0 i32.const 0 @@ -28736,22 +23458,12 @@ i32.store offset=16 global.get $~lib/memory/__stack_pointer local.get $0 - local.set $16 - global.get $~lib/memory/__stack_pointer - local.get $16 - i32.store - local.get $16 i32.const 2 i32.const 2 call $~lib/array/Array#splice local.tee $2 i32.store offset=12 local.get $2 - local.set $16 - global.get $~lib/memory/__stack_pointer - local.get $16 - i32.store - local.get $16 call $~lib/array/Array#get:length i32.const 2 i32.eq @@ -28765,11 +23477,6 @@ unreachable end local.get $2 - local.set $16 - global.get $~lib/memory/__stack_pointer - local.get $16 - i32.store - local.get $16 i32.const 0 call $~lib/array/Array#__get i32.load @@ -28785,11 +23492,6 @@ unreachable end local.get $2 - local.set $16 - global.get $~lib/memory/__stack_pointer - local.get $16 - i32.store - local.get $16 i32.const 1 call $~lib/array/Array#__get i32.load @@ -28805,11 +23507,6 @@ unreachable end local.get $0 - local.set $16 - global.get $~lib/memory/__stack_pointer - local.get $16 - i32.store - local.get $16 call $~lib/array/Array#get:length i32.const 3 i32.eq @@ -28823,11 +23520,6 @@ unreachable end local.get $0 - local.set $16 - global.get $~lib/memory/__stack_pointer - local.get $16 - i32.store - local.get $16 i32.const 0 call $~lib/array/Array#__get i32.load @@ -28843,11 +23535,6 @@ unreachable end local.get $0 - local.set $16 - global.get $~lib/memory/__stack_pointer - local.get $16 - i32.store - local.get $16 i32.const 1 call $~lib/array/Array#__get i32.load @@ -28863,11 +23550,6 @@ unreachable end local.get $0 - local.set $16 - global.get $~lib/memory/__stack_pointer - local.get $16 - i32.store - local.get $16 i32.const 2 call $~lib/array/Array#__get i32.load @@ -28890,12 +23572,12 @@ i32.const 0 call $~lib/rt/__newArray local.tee $4 - i32.store offset=28 + i32.store offset=24 global.get $~lib/memory/__stack_pointer local.get $4 i32.load offset=4 local.tee $3 - i32.store offset=24 + i32.store offset=20 local.get $4 i32.const 0 i32.const 0 @@ -28914,25 +23596,15 @@ call $~lib/array/Array#__uset local.get $4 local.tee $3 - i32.store offset=24 + i32.store offset=20 global.get $~lib/memory/__stack_pointer local.get $3 - local.set $16 - global.get $~lib/memory/__stack_pointer - local.get $16 - i32.store - local.get $16 i32.const 0 i32.const 1 call $~lib/array/Array#splice local.tee $4 - i32.store offset=28 + i32.store offset=24 local.get $4 - local.set $16 - global.get $~lib/memory/__stack_pointer - local.get $16 - i32.store - local.get $16 call $~lib/array/Array#get:length i32.const 1 i32.eq @@ -28947,15 +23619,10 @@ end global.get $~lib/memory/__stack_pointer local.get $4 - local.set $16 - global.get $~lib/memory/__stack_pointer - local.get $16 - i32.store - local.get $16 i32.const 0 call $~lib/array/Array#__get local.tee $5 - i32.store offset=32 + i32.store offset=28 local.get $5 if (result i32) local.get $5 @@ -28980,11 +23647,6 @@ unreachable end local.get $3 - local.set $16 - global.get $~lib/memory/__stack_pointer - local.get $16 - i32.store - local.get $16 call $~lib/array/Array#get:length i32.const 2 i32.eq @@ -28998,11 +23660,6 @@ unreachable end local.get $3 - local.set $16 - global.get $~lib/memory/__stack_pointer - local.get $16 - i32.store - local.get $16 i32.const 0 call $~lib/array/Array#__get i32.const 0 @@ -29018,15 +23675,10 @@ end global.get $~lib/memory/__stack_pointer local.get $3 - local.set $16 - global.get $~lib/memory/__stack_pointer - local.get $16 - i32.store - local.get $16 i32.const 1 call $~lib/array/Array#__get local.tee $5 - i32.store offset=32 + i32.store offset=28 local.get $5 if (result i32) local.get $5 @@ -30060,13 +24712,8 @@ local.get $16 call $~lib/array/Array#map local.tee $4 - i32.store offset=28 + i32.store offset=24 local.get $4 - local.set $16 - global.get $~lib/memory/__stack_pointer - local.get $16 - i32.store - local.get $16 call $~lib/array/Array#get:length i32.const 4 i32.eq @@ -30080,11 +24727,6 @@ unreachable end local.get $4 - local.set $16 - global.get $~lib/memory/__stack_pointer - local.get $16 - i32.store - local.get $16 i32.const 0 call $~lib/array/Array#__get global.get $std/array/arr @@ -30291,13 +24933,8 @@ local.get $16 call $~lib/array/Array#filter local.tee $4 - i32.store offset=28 + i32.store offset=24 local.get $4 - local.set $16 - global.get $~lib/memory/__stack_pointer - local.get $16 - i32.store - local.get $16 call $~lib/array/Array#get:length i32.const 2 i32.eq @@ -31066,24 +25703,14 @@ i32.const 6480 call $~lib/rt/__newArray local.tee $3 - i32.store offset=24 + i32.store offset=20 local.get $3 - local.set $16 - global.get $~lib/memory/__stack_pointer - local.get $16 - i32.store - local.get $16 i32.const 0 global.set $~argumentsLength i32.const 0 call $~lib/array/Array#sort@varargs drop local.get $3 - local.set $16 - global.get $~lib/memory/__stack_pointer - local.get $16 - i32.store - local.get $16 i32.const 8 i32.const 2 i32.const 9 @@ -31112,24 +25739,14 @@ i32.const 6640 call $~lib/rt/__newArray local.tee $4 - i32.store offset=28 + i32.store offset=24 local.get $4 - local.set $16 - global.get $~lib/memory/__stack_pointer - local.get $16 - i32.store - local.get $16 i32.const 0 global.set $~argumentsLength i32.const 0 call $~lib/array/Array#sort@varargs drop local.get $4 - local.set $16 - global.get $~lib/memory/__stack_pointer - local.get $16 - i32.store - local.get $16 i32.const 8 i32.const 3 i32.const 10 @@ -31160,22 +25777,12 @@ local.tee $2 i32.store offset=12 local.get $2 - local.set $16 - global.get $~lib/memory/__stack_pointer - local.get $16 - i32.store - local.get $16 i32.const 0 global.set $~argumentsLength i32.const 0 call $~lib/array/Array#sort@varargs drop local.get $2 - local.set $16 - global.get $~lib/memory/__stack_pointer - local.get $16 - i32.store - local.get $16 i32.const 5 i32.const 2 i32.const 3 @@ -31206,22 +25813,12 @@ local.tee $0 i32.store offset=16 local.get $0 - local.set $16 - global.get $~lib/memory/__stack_pointer - local.get $16 - i32.store - local.get $16 i32.const 0 global.set $~argumentsLength i32.const 0 call $~lib/array/Array#sort@varargs drop local.get $0 - local.set $16 - global.get $~lib/memory/__stack_pointer - local.get $16 - i32.store - local.get $16 i32.const 5 i32.const 2 i32.const 7 @@ -31258,7 +25855,7 @@ i32.const 7152 call $~lib/rt/__newArray local.tee $6 - i32.store offset=36 + i32.store offset=32 global.get $~lib/memory/__stack_pointer i32.const 2 i32.const 2 @@ -31266,7 +25863,7 @@ i32.const 7184 call $~lib/rt/__newArray local.tee $7 - i32.store offset=40 + i32.store offset=36 global.get $~lib/memory/__stack_pointer i32.const 4 i32.const 2 @@ -31274,7 +25871,7 @@ i32.const 7216 call $~lib/rt/__newArray local.tee $8 - i32.store offset=44 + i32.store offset=40 global.get $~lib/memory/__stack_pointer i32.const 4 i32.const 2 @@ -31282,52 +25879,37 @@ i32.const 7264 call $~lib/rt/__newArray local.tee $9 - i32.store offset=48 + i32.store offset=44 global.get $~lib/memory/__stack_pointer i32.const 64 call $std/array/createReverseOrderedArray local.tee $5 - i32.store offset=32 + i32.store offset=28 global.get $~lib/memory/__stack_pointer i32.const 128 call $std/array/createReverseOrderedArray local.tee $10 - i32.store offset=52 + i32.store offset=48 global.get $~lib/memory/__stack_pointer i32.const 1024 call $std/array/createReverseOrderedArray local.tee $11 - i32.store offset=56 + i32.store offset=52 global.get $~lib/memory/__stack_pointer i32.const 10000 call $std/array/createReverseOrderedArray local.tee $12 - i32.store offset=60 + i32.store offset=56 global.get $~lib/memory/__stack_pointer i32.const 512 call $std/array/createRandomOrderedArray local.tee $13 - i32.store offset=64 + i32.store offset=60 local.get $1 - local.set $16 - global.get $~lib/memory/__stack_pointer - local.get $16 - i32.store - local.get $16 call $std/array/assertSortedDefault local.get $6 - local.set $16 - global.get $~lib/memory/__stack_pointer - local.get $16 - i32.store - local.get $16 call $std/array/assertSortedDefault local.get $6 - local.set $16 - global.get $~lib/memory/__stack_pointer - local.get $16 - i32.store - local.get $16 i32.const 1 i32.const 2 i32.const 3 @@ -31350,18 +25932,8 @@ unreachable end local.get $7 - local.set $16 - global.get $~lib/memory/__stack_pointer - local.get $16 - i32.store - local.get $16 call $std/array/assertSortedDefault local.get $7 - local.set $16 - global.get $~lib/memory/__stack_pointer - local.get $16 - i32.store - local.get $16 i32.const 2 i32.const 2 i32.const 3 @@ -31384,24 +25956,9 @@ unreachable end local.get $8 - local.set $16 - global.get $~lib/memory/__stack_pointer - local.get $16 - i32.store - local.get $16 call $std/array/assertSortedDefault local.get $8 - local.set $16 - global.get $~lib/memory/__stack_pointer - local.get $16 - i32.store - local.get $16 local.get $9 - local.set $16 - global.get $~lib/memory/__stack_pointer - local.get $16 - i32.store offset=8 - local.get $16 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -31414,24 +25971,9 @@ unreachable end local.get $5 - local.set $16 - global.get $~lib/memory/__stack_pointer - local.get $16 - i32.store - local.get $16 call $std/array/assertSortedDefault local.get $5 - local.set $16 - global.get $~lib/memory/__stack_pointer - local.get $16 - i32.store - local.get $16 local.get $9 - local.set $16 - global.get $~lib/memory/__stack_pointer - local.get $16 - i32.store offset=8 - local.get $16 i32.const 4 call $std/array/isArraysEqual i32.eqz @@ -31444,24 +25986,9 @@ unreachable end local.get $10 - local.set $16 - global.get $~lib/memory/__stack_pointer - local.get $16 - i32.store - local.get $16 call $std/array/assertSortedDefault local.get $10 - local.set $16 - global.get $~lib/memory/__stack_pointer - local.get $16 - i32.store - local.get $16 local.get $9 - local.set $16 - global.get $~lib/memory/__stack_pointer - local.get $16 - i32.store offset=8 - local.get $16 i32.const 4 call $std/array/isArraysEqual i32.eqz @@ -31470,28 +25997,13 @@ i32.const 528 i32.const 997 i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $11 - local.set $16 - global.get $~lib/memory/__stack_pointer - local.get $16 - i32.store - local.get $16 + call $~lib/builtins/abort + unreachable + end + local.get $11 call $std/array/assertSortedDefault local.get $11 - local.set $16 - global.get $~lib/memory/__stack_pointer - local.get $16 - i32.store - local.get $16 local.get $9 - local.set $16 - global.get $~lib/memory/__stack_pointer - local.get $16 - i32.store offset=8 - local.get $16 i32.const 4 call $std/array/isArraysEqual i32.eqz @@ -31504,24 +26016,9 @@ unreachable end local.get $12 - local.set $16 - global.get $~lib/memory/__stack_pointer - local.get $16 - i32.store - local.get $16 call $std/array/assertSortedDefault local.get $12 - local.set $16 - global.get $~lib/memory/__stack_pointer - local.get $16 - i32.store - local.get $16 local.get $9 - local.set $16 - global.get $~lib/memory/__stack_pointer - local.get $16 - i32.store offset=8 - local.get $16 i32.const 4 call $std/array/isArraysEqual i32.eqz @@ -31534,28 +26031,18 @@ unreachable end local.get $13 - local.set $16 - global.get $~lib/memory/__stack_pointer - local.get $16 - i32.store - local.get $16 call $std/array/assertSortedDefault global.get $~lib/memory/__stack_pointer i32.const 64 call $std/array/createRandomOrderedArray local.tee $13 - i32.store offset=64 + i32.store offset=60 global.get $~lib/memory/__stack_pointer i32.const 257 call $std/array/createRandomOrderedArray local.tee $12 - i32.store offset=60 + i32.store offset=56 local.get $13 - local.set $16 - global.get $~lib/memory/__stack_pointer - local.get $16 - i32.store - local.get $16 i32.const 7408 local.set $16 global.get $~lib/memory/__stack_pointer @@ -31564,11 +26051,6 @@ local.get $16 call $std/array/assertSorted local.get $13 - local.set $16 - global.get $~lib/memory/__stack_pointer - local.get $16 - i32.store - local.get $16 i32.const 7440 local.set $16 global.get $~lib/memory/__stack_pointer @@ -31577,11 +26059,6 @@ local.get $16 call $std/array/assertSorted local.get $12 - local.set $16 - global.get $~lib/memory/__stack_pointer - local.get $16 - i32.store - local.get $16 i32.const 7472 local.set $16 global.get $~lib/memory/__stack_pointer @@ -31590,11 +26067,6 @@ local.get $16 call $std/array/assertSorted local.get $12 - local.set $16 - global.get $~lib/memory/__stack_pointer - local.get $16 - i32.store - local.get $16 i32.const 7504 local.set $16 global.get $~lib/memory/__stack_pointer @@ -31606,13 +26078,8 @@ i32.const 2 call $std/array/createReverseOrderedNestedArray local.tee $12 - i32.store offset=60 + i32.store offset=56 local.get $12 - local.set $16 - global.get $~lib/memory/__stack_pointer - local.get $16 - i32.store - local.get $16 i32.const 7536 local.set $16 global.get $~lib/memory/__stack_pointer @@ -31624,13 +26091,8 @@ i32.const 512 call $std/array/createReverseOrderedElementsArray local.tee $12 - i32.store offset=60 + i32.store offset=56 local.get $12 - local.set $16 - global.get $~lib/memory/__stack_pointer - local.get $16 - i32.store - local.get $16 i32.const 7568 local.set $16 global.get $~lib/memory/__stack_pointer @@ -31645,7 +26107,7 @@ i32.const 7760 call $~lib/rt/__newArray local.tee $13 - i32.store offset=64 + i32.store offset=60 global.get $~lib/memory/__stack_pointer i32.const 7 i32.const 2 @@ -31653,29 +26115,14 @@ i32.const 7808 call $~lib/rt/__newArray local.tee $11 - i32.store offset=56 + i32.store offset=52 local.get $13 - local.set $16 - global.get $~lib/memory/__stack_pointer - local.get $16 - i32.store - local.get $16 i32.const 1 global.set $~argumentsLength i32.const 0 call $std/array/assertSorted<~lib/string/String|null>@varargs local.get $13 - local.set $16 - global.get $~lib/memory/__stack_pointer - local.get $16 - i32.store - local.get $16 local.get $11 - local.set $16 - global.get $~lib/memory/__stack_pointer - local.get $16 - i32.store offset=8 - local.get $16 i32.const 0 call $std/array/isArraysEqual<~lib/string/String|null> i32.eqz @@ -31691,13 +26138,8 @@ i32.const 400 call $std/array/createRandomStringArray local.tee $12 - i32.store offset=60 + i32.store offset=56 local.get $12 - local.set $16 - global.get $~lib/memory/__stack_pointer - local.get $16 - i32.store - local.get $16 i32.const 1 global.set $~argumentsLength i32.const 0 @@ -31710,7 +26152,7 @@ local.set $16 global.get $~lib/memory/__stack_pointer local.get $16 - i32.store offset=20 + i32.store offset=64 local.get $16 i32.const 8048 local.set $16 @@ -31748,7 +26190,7 @@ local.set $16 global.get $~lib/memory/__stack_pointer local.get $16 - i32.store offset=20 + i32.store offset=64 local.get $16 i32.const 7728 local.set $16 @@ -31786,7 +26228,7 @@ local.set $16 global.get $~lib/memory/__stack_pointer local.get $16 - i32.store offset=20 + i32.store offset=64 local.get $16 i32.const 10000 local.set $16 @@ -31824,7 +26266,7 @@ local.set $16 global.get $~lib/memory/__stack_pointer local.get $16 - i32.store offset=20 + i32.store offset=64 local.get $16 i32.const 10064 local.set $16 @@ -31862,7 +26304,7 @@ local.set $16 global.get $~lib/memory/__stack_pointer local.get $16 - i32.store offset=20 + i32.store offset=64 local.get $16 i32.const 10256 local.set $16 @@ -31900,7 +26342,7 @@ local.set $16 global.get $~lib/memory/__stack_pointer local.get $16 - i32.store offset=20 + i32.store offset=64 local.get $16 i32.const 7728 local.set $16 @@ -31938,12 +26380,12 @@ i32.const 0 call $~lib/rt/__newArray local.tee $12 - i32.store offset=60 + i32.store offset=56 global.get $~lib/memory/__stack_pointer local.get $12 i32.load offset=4 local.tee $11 - i32.store offset=56 + i32.store offset=52 local.get $12 i32.const 0 i32.const 0 @@ -31962,13 +26404,8 @@ call $~lib/array/Array#__uset local.get $12 local.tee $11 - i32.store offset=56 + i32.store offset=52 local.get $11 - local.set $16 - global.get $~lib/memory/__stack_pointer - local.get $16 - i32.store offset=20 - local.get $16 i32.const 8048 local.set $16 global.get $~lib/memory/__stack_pointer @@ -32005,12 +26442,12 @@ i32.const 0 call $~lib/rt/__newArray local.tee $12 - i32.store offset=60 + i32.store offset=56 global.get $~lib/memory/__stack_pointer local.get $12 i32.load offset=4 local.tee $13 - i32.store offset=64 + i32.store offset=60 local.get $12 i32.const 0 i32.const 0 @@ -32025,13 +26462,8 @@ call $~lib/array/Array#__uset local.get $12 local.tee $13 - i32.store offset=64 + i32.store offset=60 local.get $13 - local.set $16 - global.get $~lib/memory/__stack_pointer - local.get $16 - i32.store offset=20 - local.get $16 i32.const 8048 local.set $16 global.get $~lib/memory/__stack_pointer @@ -32067,7 +26499,7 @@ i32.const 11856 call $~lib/rt/__newArray local.tee $11 - i32.store offset=56 + i32.store offset=52 global.get $~lib/memory/__stack_pointer i32.const 1 i32.const 2 @@ -32075,7 +26507,7 @@ i32.const 11888 call $~lib/rt/__newArray local.tee $12 - i32.store offset=60 + i32.store offset=56 global.get $~lib/memory/__stack_pointer i32.const 2 i32.const 2 @@ -32083,7 +26515,7 @@ i32.const 11920 call $~lib/rt/__newArray local.tee $10 - i32.store offset=52 + i32.store offset=48 global.get $~lib/memory/__stack_pointer i32.const 4 i32.const 2 @@ -32091,13 +26523,8 @@ i32.const 11952 call $~lib/rt/__newArray local.tee $5 - i32.store offset=32 + i32.store offset=28 local.get $11 - local.set $16 - global.get $~lib/memory/__stack_pointer - local.get $16 - i32.store offset=20 - local.get $16 call $~lib/array/Array#toString local.set $16 global.get $~lib/memory/__stack_pointer @@ -32121,11 +26548,6 @@ unreachable end local.get $12 - local.set $16 - global.get $~lib/memory/__stack_pointer - local.get $16 - i32.store offset=20 - local.get $16 call $~lib/array/Array#toString local.set $16 global.get $~lib/memory/__stack_pointer @@ -32149,11 +26571,6 @@ unreachable end local.get $10 - local.set $16 - global.get $~lib/memory/__stack_pointer - local.get $16 - i32.store offset=20 - local.get $16 call $~lib/array/Array#toString local.set $16 global.get $~lib/memory/__stack_pointer @@ -32177,11 +26594,6 @@ unreachable end local.get $5 - local.set $16 - global.get $~lib/memory/__stack_pointer - local.get $16 - i32.store offset=20 - local.get $16 call $~lib/array/Array#toString local.set $16 global.get $~lib/memory/__stack_pointer @@ -32212,7 +26624,7 @@ local.set $16 global.get $~lib/memory/__stack_pointer local.get $16 - i32.store offset=20 + i32.store offset=64 local.get $16 call $~lib/array/Array#toString local.set $16 @@ -32244,7 +26656,7 @@ local.set $16 global.get $~lib/memory/__stack_pointer local.get $16 - i32.store offset=20 + i32.store offset=64 local.get $16 call $~lib/array/Array#toString local.set $16 @@ -32276,7 +26688,7 @@ local.set $16 global.get $~lib/memory/__stack_pointer local.get $16 - i32.store offset=20 + i32.store offset=64 local.get $16 call $~lib/array/Array#toString local.set $16 @@ -32308,7 +26720,7 @@ local.set $16 global.get $~lib/memory/__stack_pointer local.get $16 - i32.store offset=20 + i32.store offset=64 local.get $16 call $~lib/array/Array#toString local.set $16 @@ -32339,13 +26751,8 @@ i32.const 12528 call $~lib/rt/__newArray local.tee $9 - i32.store offset=48 + i32.store offset=44 local.get $9 - local.set $16 - global.get $~lib/memory/__stack_pointer - local.get $16 - i32.store offset=20 - local.get $16 call $~lib/array/Array<~lib/string/String|null>#toString local.set $16 global.get $~lib/memory/__stack_pointer @@ -32376,7 +26783,7 @@ local.set $16 global.get $~lib/memory/__stack_pointer local.get $16 - i32.store offset=20 + i32.store offset=64 local.get $16 call $~lib/array/Array<~lib/string/String|null>#toString local.set $16 @@ -32408,12 +26815,12 @@ i32.const 0 call $~lib/rt/__newArray local.tee $8 - i32.store offset=44 + i32.store offset=40 global.get $~lib/memory/__stack_pointer local.get $8 i32.load offset=4 local.tee $13 - i32.store offset=64 + i32.store offset=60 local.get $8 i32.const 0 i32.const 2 @@ -32432,13 +26839,8 @@ call $~lib/array/Array<~lib/array/Array>#__uset local.get $8 local.tee $13 - i32.store offset=64 + i32.store offset=60 local.get $13 - local.set $16 - global.get $~lib/memory/__stack_pointer - local.get $16 - i32.store offset=20 - local.get $16 call $~lib/array/Array<~lib/array/Array>#toString local.set $16 global.get $~lib/memory/__stack_pointer @@ -32469,12 +26871,12 @@ i32.const 0 call $~lib/rt/__newArray local.tee $8 - i32.store offset=44 + i32.store offset=40 global.get $~lib/memory/__stack_pointer local.get $8 i32.load offset=4 local.tee $7 - i32.store offset=40 + i32.store offset=36 local.get $8 i32.const 0 i32.const 2 @@ -32493,13 +26895,8 @@ call $~lib/array/Array<~lib/array/Array>#__uset local.get $8 local.tee $7 - i32.store offset=40 + i32.store offset=36 local.get $7 - local.set $16 - global.get $~lib/memory/__stack_pointer - local.get $16 - i32.store offset=20 - local.get $16 call $~lib/array/Array<~lib/array/Array>#toString local.set $16 global.get $~lib/memory/__stack_pointer @@ -32530,12 +26927,12 @@ i32.const 0 call $~lib/rt/__newArray local.tee $8 - i32.store offset=44 + i32.store offset=40 global.get $~lib/memory/__stack_pointer local.get $8 i32.load offset=4 local.tee $6 - i32.store offset=36 + i32.store offset=32 local.get $8 i32.const 0 global.get $~lib/memory/__stack_pointer @@ -32563,13 +26960,8 @@ call $~lib/array/Array<~lib/array/Array<~lib/array/Array>>#__uset local.get $8 local.tee $6 - i32.store offset=36 + i32.store offset=32 local.get $6 - local.set $16 - global.get $~lib/memory/__stack_pointer - local.get $16 - i32.store offset=20 - local.get $16 call $~lib/array/Array<~lib/array/Array<~lib/array/Array>>#toString local.set $16 global.get $~lib/memory/__stack_pointer @@ -32600,12 +26992,12 @@ i32.const 0 call $~lib/rt/__newArray local.tee $6 - i32.store offset=36 + i32.store offset=32 global.get $~lib/memory/__stack_pointer local.get $6 i32.load offset=4 local.tee $7 - i32.store offset=40 + i32.store offset=36 local.get $6 i32.const 0 i32.const 1 @@ -32640,23 +27032,13 @@ call $~lib/array/Array<~lib/array/Array>#__uset local.get $6 local.tee $7 - i32.store offset=40 + i32.store offset=36 global.get $~lib/memory/__stack_pointer local.get $7 - local.set $16 - global.get $~lib/memory/__stack_pointer - local.get $16 - i32.store - local.get $16 call $~lib/array/Array<~lib/array/Array>#flat local.tee $6 - i32.store offset=36 + i32.store offset=32 local.get $6 - local.set $16 - global.get $~lib/memory/__stack_pointer - local.get $16 - i32.store - local.get $16 call $~lib/array/Array#get:length i32.const 10 i32.eq @@ -32679,11 +27061,6 @@ local.get $9 if local.get $6 - local.set $16 - global.get $~lib/memory/__stack_pointer - local.get $16 - i32.store - local.get $16 local.get $13 call $~lib/array/Array#__get local.get $13 @@ -32712,12 +27089,12 @@ i32.const 0 call $~lib/rt/__newArray local.tee $13 - i32.store offset=64 + i32.store offset=60 global.get $~lib/memory/__stack_pointer local.get $13 i32.load offset=4 local.tee $9 - i32.store offset=48 + i32.store offset=44 local.get $13 i32.const 0 i32.const 1 @@ -32752,17 +27129,12 @@ call $~lib/array/Array<~lib/array/Array<~lib/string/String|null>>#__uset local.get $13 local.tee $9 - i32.store offset=48 + i32.store offset=44 global.get $~lib/memory/__stack_pointer local.get $9 - local.set $16 - global.get $~lib/memory/__stack_pointer - local.get $16 - i32.store - local.get $16 call $~lib/array/Array<~lib/array/Array<~lib/string/String|null>>#flat local.tee $13 - i32.store offset=64 + i32.store offset=60 global.get $~lib/memory/__stack_pointer i32.const 8 i32.const 2 @@ -32770,13 +27142,8 @@ i32.const 13456 call $~lib/rt/__newArray local.tee $10 - i32.store offset=52 + i32.store offset=48 local.get $13 - local.set $16 - global.get $~lib/memory/__stack_pointer - local.get $16 - i32.store - local.get $16 call $~lib/array/Array<~lib/string/String|null>#get:length i32.const 8 i32.eq @@ -32793,23 +27160,13 @@ local.set $5 loop $for-loop|2 local.get $5 - local.get $10 - local.set $16 - global.get $~lib/memory/__stack_pointer - local.get $16 - i32.store - local.get $16 + local.get $10 call $~lib/array/Array<~lib/string/String|null>#get:length i32.lt_s local.set $12 local.get $12 if local.get $13 - local.set $16 - global.get $~lib/memory/__stack_pointer - local.get $16 - i32.store offset=20 - local.get $16 local.get $5 call $~lib/array/Array<~lib/string/String|null>#__get local.set $16 @@ -32818,11 +27175,6 @@ i32.store local.get $16 local.get $10 - local.set $16 - global.get $~lib/memory/__stack_pointer - local.get $16 - i32.store offset=20 - local.get $16 local.get $5 call $~lib/array/Array<~lib/string/String|null>#__get local.set $16 @@ -32855,12 +27207,12 @@ i32.const 0 call $~lib/rt/__newArray local.tee $5 - i32.store offset=32 + i32.store offset=28 global.get $~lib/memory/__stack_pointer local.get $5 i32.load offset=4 local.tee $12 - i32.store offset=60 + i32.store offset=56 local.get $5 i32.const 0 i32.const 0 @@ -32879,13 +27231,8 @@ call $~lib/array/Array<~lib/array/Array>#__uset local.get $5 local.tee $12 - i32.store offset=60 + i32.store offset=56 local.get $12 - local.set $16 - global.get $~lib/memory/__stack_pointer - local.get $16 - i32.store offset=8 - local.get $16 call $~lib/array/Array<~lib/array/Array>#flat local.set $16 global.get $~lib/memory/__stack_pointer @@ -32914,46 +27261,7 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $std/array/ArrayU32#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 - call $~stack_check - 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 - i32.const 40 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - end - global.get $~lib/memory/__stack_pointer - local.get $0 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - local.get $1 - call $~lib/array/Array#constructor - local.tee $0 - i32.store - local.get $0 - local.set $2 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $2 - ) - (func $~lib/array/Array#every (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array<~lib/string/String>#every (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -32994,13 +27302,13 @@ i32.shl i32.add i32.load - local.get $2 - local.get $0 local.set $6 global.get $~lib/memory/__stack_pointer local.get $6 i32.store local.get $6 + local.get $2 + local.get $0 i32.const 3 global.set $~argumentsLength local.get $1 @@ -33032,7 +27340,7 @@ global.set $~lib/memory/__stack_pointer local.get $6 ) - (func $~lib/array/Array#findIndex (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array<~lib/string/String>#findIndex (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -33073,13 +27381,13 @@ i32.shl i32.add i32.load - local.get $2 - local.get $0 local.set $6 global.get $~lib/memory/__stack_pointer local.get $6 i32.store local.get $6 + local.get $2 + local.get $0 i32.const 3 global.set $~argumentsLength local.get $1 @@ -33110,8 +27418,12 @@ global.set $~lib/memory/__stack_pointer local.get $6 ) - (func $~lib/array/Array#__set (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/array/Array<~lib/string/String>#indexOf (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 @@ -33120,80 +27432,190 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - local.get $1 local.get $0 i32.load offset=12 - i32.ge_u + local.set $3 + local.get $3 + i32.const 0 + i32.eq + if (result i32) + i32.const 1 + else + local.get $2 + local.get $3 + i32.ge_s + end if - local.get $1 + i32.const -1 + local.set $7 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $7 + return + end + local.get $2 + i32.const 0 + i32.lt_s + if + local.get $3 + local.get $2 + i32.add + local.tee $4 i32.const 0 + local.tee $5 + local.get $4 + local.get $5 + i32.gt_s + select + local.set $2 + end + local.get $0 + i32.load offset=4 + local.set $6 + loop $while-continue|0 + local.get $2 + local.get $3 i32.lt_s + local.set $4 + local.get $4 if - i32.const 320 - i32.const 80 - i32.const 108 - i32.const 22 - call $~lib/builtins/abort - unreachable + local.get $6 + local.get $2 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store + local.get $7 + local.get $1 + call $~lib/string/String.__eq + if + local.get $2 + local.set $7 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $7 + return + end + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $while-continue|0 end - local.get $0 - local.get $1 - i32.const 1 + end + i32.const -1 + local.set $7 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $7 + ) + (func $~lib/array/Array<~lib/string/String>#lastIndexOf (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 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 $0 + i32.load offset=12 + local.set $3 + local.get $3 + i32.const 0 + i32.eq + if + i32.const -1 + local.set $6 + global.get $~lib/memory/__stack_pointer + i32.const 4 i32.add - i32.const 2 - call $~lib/array/ensureSize - local.get $0 - local.get $1 - i32.const 1 + global.set $~lib/memory/__stack_pointer + local.get $6 + return + end + local.get $2 + i32.const 0 + i32.lt_s + if + local.get $3 + local.get $2 i32.add - call $~lib/array/Array#set:length_ + local.set $2 + else + local.get $2 + local.get $3 + i32.ge_s + if + local.get $3 + i32.const 1 + i32.sub + local.set $2 + end + end + local.get $0 + i32.load offset=4 + local.set $4 + loop $while-continue|0 + local.get $2 + i32.const 0 + i32.ge_s + local.set $5 + local.get $5 + if + local.get $4 + local.get $2 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store + local.get $6 + local.get $1 + call $~lib/string/String.__eq + if + local.get $2 + local.set $6 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $6 + return + end + local.get $2 + i32.const 1 + i32.sub + local.set $2 + br $while-continue|0 + end end - local.get $0 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store - local.get $3 - local.get $1 - local.get $2 - call $~lib/array/Array#__uset - 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) - (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 - i32.const 0 - drop - local.get $0 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store - local.get $3 - local.get $1 - local.get $2 - call $~lib/array/Array#indexOf - i32.const 0 - i32.ge_s - local.set $3 + i32.const -1 + local.set $6 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $3 - return + local.get $6 ) - (func $~lib/array/Array#forEach (param $0 i32) (param $1 i32) + (func $~lib/array/Array<~lib/string/String>#forEach (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -33234,13 +27656,13 @@ i32.shl i32.add i32.load - local.get $2 - local.get $0 local.set $6 global.get $~lib/memory/__stack_pointer local.get $6 i32.store local.get $6 + local.get $2 + local.get $0 i32.const 3 global.set $~argumentsLength local.get $1 @@ -33258,222 +27680,334 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/array/Array#filter (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array<~lib/string/String>#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 $7 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 - global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 2 - i32.const 7 - i32.const 0 - call $~lib/rt/__newArray - local.tee $2 i32.store i32.const 0 - local.set $3 + local.set $2 local.get $0 i32.load offset=12 - local.set $4 + local.set $3 loop $for-loop|0 + local.get $2 local.get $3 - local.get $4 - local.tee $5 + local.tee $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 - local.set $5 - local.get $5 + local.set $4 + local.get $4 if local.get $0 i32.load offset=4 - local.get $3 + local.get $2 i32.const 2 i32.shl i32.add i32.load local.set $6 + global.get $~lib/memory/__stack_pointer local.get $6 - local.get $3 + i32.store + local.get $6 + local.get $2 local.get $0 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 i32.const 3 global.set $~argumentsLength local.get $1 i32.load call_indirect (type $i32_i32_i32_=>_i32) if - local.get $2 - local.set $7 + i32.const 1 + local.set $6 global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=8 - local.get $7 + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer local.get $6 - call $~lib/array/Array#push - drop + return end - local.get $3 + local.get $2 i32.const 1 i32.add - local.set $3 + local.set $2 br $for-loop|0 end end + i32.const 0 + local.set $6 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $6 + ) + (func $~lib/array/Array<~lib/string/String>#toString (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 + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.const 8048 + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + call $~lib/array/Array<~lib/string/String>#join + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $~lib/array/Array#constructor (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 + call $~stack_check + 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 + i32.const 3 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + local.get $0 + i32.const 0 + call $~lib/array/Array#set:buffer + local.get $0 + i32.const 0 + call $~lib/array/Array#set:dataStart + local.get $0 + i32.const 0 + call $~lib/array/Array#set:byteLength + local.get $0 + i32.const 0 + call $~lib/array/Array#set:length_ + local.get $1 + i32.const 1073741820 + i32.const 2 + i32.shr_u + i32.gt_u + if + i32.const 32 + i32.const 80 + i32.const 58 + i32.const 60 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 2 + i32.shl + local.set $2 + global.get $~lib/memory/__stack_pointer local.get $2 - local.set $7 + i32.const 0 + call $~lib/rt/itcms/__new + local.tee $3 + i32.store offset=4 + local.get $3 + i32.const 0 + local.get $2 + call $~lib/memory/memory.fill + local.get $0 + local.get $3 + call $~lib/array/Array#set:buffer + local.get $0 + local.get $3 + call $~lib/array/Array#set:dataStart + local.get $0 + local.get $2 + call $~lib/array/Array#set:byteLength + local.get $0 + local.get $1 + call $~lib/array/Array#set:length_ + local.get $0 + local.set $4 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $7 + local.get $4 ) - (func $~lib/array/Array#some (param $0 i32) (param $1 i32) (result i32) + (func $std/array/Ref#constructor (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 + call $~stack_check + 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.const 4 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + local.get $0 + local.get $1 + call $std/array/Ref#set:v + 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 $2 + ) + (func $~lib/arraybuffer/ArrayBufferView#constructor (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 4 + 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 $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 2 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + local.get $0 i32.const 0 - i32.store + call $~lib/arraybuffer/ArrayBufferView#set:buffer + local.get $0 i32.const 0 - local.set $2 + call $~lib/arraybuffer/ArrayBufferView#set:dataStart local.get $0 - i32.load offset=12 - local.set $3 - loop $for-loop|0 - local.get $2 - local.get $3 - local.tee $4 - local.get $0 - i32.load offset=12 - local.tee $5 - local.get $4 - local.get $5 - i32.lt_s - select - i32.lt_s - local.set $4 - local.get $4 - if - local.get $0 - i32.load offset=4 - local.get $2 - i32.const 2 - i32.shl - i32.add - i32.load - local.get $2 - local.get $0 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - i32.const 3 - global.set $~argumentsLength - local.get $1 - i32.load - call_indirect (type $i32_i32_i32_=>_i32) - if - i32.const 1 - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - return - end - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $for-loop|0 - end + i32.const 0 + call $~lib/arraybuffer/ArrayBufferView#set:byteLength + local.get $1 + i32.const 1073741820 + local.get $2 + i32.shr_u + i32.gt_u + if + i32.const 32 + i32.const 576 + i32.const 18 + 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 0 - local.set $6 + call $~lib/rt/itcms/__new + local.tee $3 + i32.store offset=4 + local.get $3 + i32.const 0 + local.get $1 + call $~lib/memory/memory.fill + local.get $0 + local.get $3 + call $~lib/arraybuffer/ArrayBufferView#set:buffer + local.get $0 + local.get $3 + call $~lib/arraybuffer/ArrayBufferView#set:dataStart + local.get $0 + local.get $1 + call $~lib/arraybuffer/ArrayBufferView#set:byteLength + local.get $0 + 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 $6 + local.get $4 ) - (func $std/array/ArrayU8#constructor (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Uint8Array#constructor (param $0 i32) (param $1 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 $0 i32.eqz if global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.const 41 + i32.const 12 + i32.const 5 call $~lib/rt/itcms/__new local.tee $0 i32.store end global.get $~lib/memory/__stack_pointer local.get $0 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 local.get $1 - call $~lib/array/Array#constructor + i32.const 0 + call $~lib/arraybuffer/ArrayBufferView#constructor local.tee $0 i32.store local.get $0 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 ) - (func $~lib/array/Array#every (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) + (func $~lib/rt/__newArray (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) (local $4 i32) (local $5 i32) (local $6 i32) + (local $7 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -33482,77 +28016,80 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - i32.const 0 - local.set $2 local.get $0 - i32.load offset=12 - local.set $3 - loop $for-loop|0 - local.get $2 - local.get $3 - local.tee $4 - local.get $0 - i32.load offset=12 - local.tee $5 - local.get $4 - local.get $5 - i32.lt_s - select - i32.lt_s - local.set $4 - local.get $4 - if - local.get $0 - i32.load offset=4 - local.get $2 - i32.const 0 - i32.shl - i32.add - i32.load8_u - local.get $2 - local.get $0 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - i32.const 3 - global.set $~argumentsLength - local.get $1 - i32.load - call_indirect (type $i32_i32_i32_=>_i32) - i32.eqz - if - i32.const 0 - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - return - end - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $for-loop|0 - end - end - i32.const 1 + local.get $1 + i32.shl + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.const 0 + local.get $3 + call $~lib/rt/__newBuffer + local.tee $5 + i32.store + i32.const 16 + local.get $2 + call $~lib/rt/itcms/__new local.set $6 + local.get $6 + local.get $5 + i32.store + local.get $6 + local.get $5 + i32.const 0 + call $~lib/rt/itcms/__link + local.get $6 + local.get $5 + i32.store offset=4 + local.get $6 + local.get $4 + i32.store offset=8 + local.get $6 + local.get $0 + i32.store offset=12 + local.get $6 + local.set $7 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $7 + ) + (func $std/array/internalCapacity (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 + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.load + local.tee $1 + i32.store + local.get $1 + call $~lib/arraybuffer/ArrayBuffer#get:byteLength + i32.const 2 + i32.shr_s + local.set $2 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $6 + local.get $2 ) - (func $~lib/array/Array#findIndex (param $0 i32) (param $1 i32) (result i32) + (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) (local $6 i32) + (local $7 i32) + (local $8 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -33561,72 +28098,81 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - i32.const 0 - local.set $2 local.get $0 i32.load offset=12 + local.set $2 + i32.const 0 + local.get $1 + i32.load offset=12 + local.get $1 + i32.const 0 + i32.eq + select local.set $3 - loop $for-loop|0 - local.get $2 - local.get $3 - local.tee $4 - local.get $0 - i32.load offset=12 - local.tee $5 - local.get $4 - local.get $5 - i32.lt_s - select - i32.lt_s - local.set $4 - local.get $4 - if - local.get $0 - i32.load offset=4 - local.get $2 - i32.const 0 - i32.shl - i32.add - i32.load8_u - local.get $2 - local.get $0 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - i32.const 3 - global.set $~argumentsLength - local.get $1 - i32.load - call_indirect (type $i32_i32_i32_=>_i32) - if - local.get $2 - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - return - end - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $for-loop|0 - end + local.get $2 + local.get $3 + i32.add + local.set $4 + local.get $4 + i32.const 1073741820 + i32.const 2 + i32.shr_u + i32.gt_u + if + i32.const 32 + i32.const 80 + i32.const 222 + i32.const 60 + call $~lib/builtins/abort + unreachable end - i32.const -1 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.const 2 + i32.const 3 + i32.const 0 + call $~lib/rt/__newArray + local.tee $5 + i32.store + local.get $5 + i32.load offset=4 local.set $6 + local.get $2 + i32.const 2 + i32.shl + local.set $7 + i32.const 0 + drop + local.get $6 + local.get $0 + i32.load offset=4 + local.get $7 + call $~lib/memory/memory.copy + local.get $6 + local.get $7 + i32.add + local.get $1 + i32.load offset=4 + local.get $3 + i32.const 2 + i32.shl + call $~lib/memory/memory.copy + local.get $5 + local.set $8 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $6 + local.get $8 ) - (func $~lib/array/Array#__set (param $0 i32) (param $1 i32) (param $2 i32) + (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) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -33635,85 +28181,114 @@ global.get $~lib/memory/__stack_pointer i32.const 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 320 - i32.const 80 - i32.const 108 - i32.const 22 - call $~lib/builtins/abort - unreachable - end - local.get $0 + local.set $3 + local.get $1 + i32.const 0 + i32.lt_s + if (result i32) local.get $1 - i32.const 1 + local.get $3 i32.add + local.tee $4 i32.const 0 - call $~lib/array/ensureSize - local.get $0 + local.tee $5 + local.get $4 + local.get $5 + i32.gt_s + select + else local.get $1 - i32.const 1 + local.tee $5 + local.get $3 + local.tee $4 + local.get $5 + local.get $4 + 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 - call $~lib/array/Array#set:length_ + local.tee $4 + i32.const 0 + local.tee $5 + local.get $4 + local.get $5 + i32.gt_s + select + else + local.get $2 + local.tee $5 + local.get $3 + local.tee $4 + local.get $5 + local.get $4 + i32.lt_s + select end - local.get $0 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store - local.get $3 - local.get $1 + local.set $2 local.get $2 - call $~lib/array/Array#__uset - 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) - (local $3 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 + local.get $1 i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store + local.tee $4 i32.const 0 - drop - local.get $0 + local.tee $5 + local.get $4 + local.get $5 + i32.gt_s + select local.set $3 global.get $~lib/memory/__stack_pointer local.get $3 + i32.const 2 + i32.const 3 + i32.const 0 + call $~lib/rt/__newArray + local.tee $6 i32.store - local.get $3 + local.get $6 + i32.load offset=4 + local.set $7 + local.get $0 + i32.load offset=4 local.get $1 - local.get $2 - call $~lib/array/Array#indexOf + i32.const 2 + i32.shl + i32.add + local.set $8 i32.const 0 - i32.ge_s - local.set $3 + drop + local.get $7 + local.get $8 + local.get $3 + i32.const 2 + i32.shl + call $~lib/memory/memory.copy + local.get $6 + local.set $9 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add - global.set $~lib/memory/__stack_pointer - local.get $3 - return + global.set $~lib/memory/__stack_pointer + local.get $9 ) - (func $~lib/array/Array#forEach (param $0 i32) (param $1 i32) - (local $2 i32) + (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) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -33722,156 +28297,239 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - i32.const 0 - local.set $2 local.get $0 i32.load offset=12 local.set $3 - loop $for-loop|0 - local.get $2 + local.get $1 + i32.const 0 + i32.lt_s + if (result i32) local.get $3 + local.get $1 + i32.add local.tee $4 - local.get $0 - i32.load offset=12 + i32.const 0 local.tee $5 local.get $4 local.get $5 - i32.lt_s + i32.gt_s select - i32.lt_s - local.set $4 + else + local.get $1 + local.tee $5 + local.get $3 + local.tee $4 + local.get $5 local.get $4 - if - local.get $0 - i32.load offset=4 - local.get $2 - i32.const 0 - i32.shl - i32.add - i32.load8_u - local.get $2 - local.get $0 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - i32.const 3 - global.set $~argumentsLength - local.get $1 - i32.load - call_indirect (type $i32_i32_i32_=>_none) - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $for-loop|0 - end + i32.lt_s + select + end + local.set $1 + local.get $2 + local.tee $4 + local.get $3 + local.get $1 + i32.sub + local.tee $5 + local.get $4 + local.get $5 + i32.lt_s + select + local.tee $5 + i32.const 0 + local.tee $4 + local.get $5 + local.get $4 + i32.gt_s + select + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.const 2 + i32.const 3 + i32.const 0 + call $~lib/rt/__newArray + local.tee $6 + i32.store + local.get $6 + i32.load offset=4 + local.set $7 + local.get $0 + i32.load offset=4 + local.set $8 + local.get $8 + local.get $1 + i32.const 2 + i32.shl + i32.add + local.set $9 + local.get $7 + local.get $9 + local.get $2 + i32.const 2 + i32.shl + call $~lib/memory/memory.copy + local.get $1 + local.get $2 + i32.add + local.set $10 + local.get $3 + local.get $10 + i32.ne + if + local.get $9 + local.get $8 + local.get $10 + i32.const 2 + i32.shl + i32.add + local.get $3 + local.get $10 + i32.sub + i32.const 2 + i32.shl + call $~lib/memory/memory.copy end + local.get $0 + local.get $3 + local.get $2 + i32.sub + call $~lib/array/Array#set:length_ + local.get $6 + local.set $11 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer + local.get $11 ) - (func $~lib/array/Array#filter (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) + (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) (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 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 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 0 - i32.const 6 i32.const 0 - call $~lib/rt/__newArray - local.tee $2 i32.store - i32.const 0 - local.set $3 local.get $0 i32.load offset=12 - local.set $4 - loop $for-loop|0 + local.set $3 + local.get $1 + i32.const 0 + i32.lt_s + if (result i32) local.get $3 + local.get $1 + i32.add + local.tee $4 + i32.const 0 + local.tee $5 local.get $4 + local.get $5 + i32.gt_s + select + else + local.get $1 local.tee $5 - local.get $0 - i32.load offset=12 - local.tee $6 + local.get $3 + local.tee $4 local.get $5 - local.get $6 + local.get $4 i32.lt_s select - i32.lt_s - local.set $5 - local.get $5 - if - local.get $0 - i32.load offset=4 - local.get $3 - i32.const 0 - i32.shl - i32.add - i32.load8_u - local.set $6 - local.get $6 - local.get $3 - local.get $0 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - i32.const 3 - global.set $~argumentsLength - local.get $1 - i32.load - call_indirect (type $i32_i32_i32_=>_i32) - if - local.get $2 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=8 - local.get $7 - local.get $6 - call $~lib/array/Array#push - drop - end - local.get $3 - i32.const 1 - i32.add - local.set $3 - br $for-loop|0 - end end + local.set $1 + local.get $2 + local.tee $4 + local.get $3 + local.get $1 + i32.sub + local.tee $5 + local.get $4 + local.get $5 + i32.lt_s + select + local.tee $5 + i32.const 0 + local.tee $4 + local.get $5 + local.get $4 + i32.gt_s + select + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.const 2 + i32.const 8 + i32.const 0 + call $~lib/rt/__newArray + local.tee $6 + i32.store + local.get $6 + i32.load offset=4 + local.set $7 + local.get $0 + i32.load offset=4 + local.set $8 + local.get $8 + local.get $1 + i32.const 2 + i32.shl + i32.add + local.set $9 + local.get $7 + local.get $9 + local.get $2 + i32.const 2 + i32.shl + call $~lib/memory/memory.copy + local.get $1 + local.get $2 + i32.add + local.set $10 + local.get $3 + local.get $10 + i32.ne + if + local.get $9 + local.get $8 + local.get $10 + i32.const 2 + i32.shl + i32.add + local.get $3 + local.get $10 + i32.sub + i32.const 2 + i32.shl + call $~lib/memory/memory.copy + end + local.get $0 + local.get $3 local.get $2 - local.set $7 + i32.sub + call $~lib/array/Array#set:length_ + local.get $6 + local.set $11 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $7 + local.get $11 ) - (func $~lib/array/Array#some (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#__get (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.sub @@ -33880,358 +28538,448 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - i32.const 0 - local.set $2 + local.get $1 local.get $0 i32.load offset=12 - local.set $3 - loop $for-loop|0 - local.get $2 - local.get $3 - local.tee $4 - local.get $0 - i32.load offset=12 - local.tee $5 - local.get $4 - local.get $5 - i32.lt_s - select - i32.lt_s - local.set $4 - local.get $4 - if - local.get $0 - i32.load offset=4 - local.get $2 - i32.const 0 - i32.shl - i32.add - i32.load8_u - local.get $2 - local.get $0 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - i32.const 3 - global.set $~argumentsLength - local.get $1 - i32.load - call_indirect (type $i32_i32_i32_=>_i32) - if - i32.const 1 - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - return - end - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $for-loop|0 - end + i32.ge_u + if + i32.const 320 + i32.const 80 + i32.const 92 + i32.const 42 + call $~lib/builtins/abort + unreachable end + 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 $2 + i32.store + i32.const 1 + drop i32.const 0 - local.set $6 + i32.eqz + drop + local.get $2 + i32.eqz + if + i32.const 4672 + i32.const 80 + i32.const 96 + i32.const 40 + call $~lib/builtins/abort + unreachable + end + local.get $2 + local.set $3 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $6 + local.get $3 ) - (func $~lib/array/Array#sort (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) + (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) (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 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 $0 i32.load offset=12 - local.set $2 - local.get $2 - i32.const 1 - i32.le_s - if - local.get $0 - local.set $7 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $7 - return - end - local.get $0 - i32.load offset=4 local.set $3 - local.get $2 - i32.const 2 - i32.eq - if - local.get $3 - i32.load8_u offset=1 - local.set $4 + local.get $1 + i32.const 0 + i32.lt_s + if (result i32) local.get $3 - i32.load8_u - local.set $5 + local.get $1 + i32.add + local.tee $4 + i32.const 0 + local.tee $5 local.get $4 local.get $5 - i32.const 2 - global.set $~argumentsLength + i32.gt_s + select + else local.get $1 - i32.load - call_indirect (type $i32_i32_=>_i32) - i32.const 0 + local.tee $5 + local.get $3 + local.tee $4 + local.get $5 + local.get $4 i32.lt_s - if - local.get $3 - local.get $5 - i32.store8 offset=1 - local.get $3 - local.get $4 - i32.store8 - end - local.get $0 - local.set $7 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $7 - return + select end + local.set $1 + local.get $2 + local.tee $4 local.get $3 - local.set $6 + local.get $1 + i32.sub + local.tee $5 + local.get $4 + local.get $5 + i32.lt_s + select + local.tee $5 + i32.const 0 + local.tee $4 + local.get $5 + local.get $4 + i32.gt_s + select + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.const 2 + i32.const 11 + i32.const 0 + call $~lib/rt/__newArray + local.tee $6 + i32.store + local.get $6 + i32.load offset=4 + local.set $7 + local.get $0 + i32.load offset=4 + local.set $8 + local.get $8 + local.get $1 + i32.const 2 + i32.shl + i32.add + local.set $9 + local.get $7 + local.get $9 local.get $2 - local.set $5 - global.get $~lib/memory/__stack_pointer + i32.const 2 + i32.shl + call $~lib/memory/memory.copy local.get $1 - local.tee $4 - i32.store - i32.const 0 - drop - local.get $5 - i32.const 256 - i32.lt_s + local.get $2 + i32.add + local.set $10 + local.get $3 + local.get $10 + i32.ne if - local.get $6 - local.get $5 - local.get $4 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - call $~lib/util/sort/insertionSort - else - local.get $6 - local.get $5 - local.get $4 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - call $~lib/util/sort/weakHeapSort + local.get $9 + local.get $8 + local.get $10 + i32.const 2 + i32.shl + i32.add + local.get $3 + local.get $10 + i32.sub + i32.const 2 + i32.shl + call $~lib/memory/memory.copy end local.get $0 - local.set $7 + local.get $3 + local.get $2 + i32.sub + call $~lib/array/Array#set:length_ + local.get $6 + local.set $11 global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $7 + local.get $11 ) - (func $std/array/ArrayStr#constructor (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#__get (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 call $~stack_check global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store + i32.const 0 + i32.store + local.get $1 local.get $0 - i32.eqz + i32.load offset=12 + i32.ge_u if - global.get $~lib/memory/__stack_pointer - i32.const 16 + i32.const 320 + i32.const 80 + i32.const 92 i32.const 42 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store + call $~lib/builtins/abort + unreachable end global.get $~lib/memory/__stack_pointer local.get $0 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 + i32.load offset=4 local.get $1 - call $~lib/array/Array<~lib/string/String>#constructor - local.tee $0 + i32.const 2 + i32.shl + i32.add + i32.load + local.tee $2 i32.store - local.get $0 - local.set $2 + i32.const 1 + drop + i32.const 1 + i32.eqz + drop + local.get $2 + local.set $3 global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 + local.get $3 ) - (func $~lib/array/Array<~lib/string/String>#every (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#map (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 f32) + (local $9 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 - local.set $2 + i32.store local.get $0 i32.load offset=12 - local.set $3 + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.const 2 + i32.const 9 + i32.const 0 + call $~lib/rt/__newArray + local.tee $3 + i32.store + local.get $3 + i32.load offset=4 + local.set $4 + i32.const 0 + local.set $5 loop $for-loop|0 + local.get $5 local.get $2 - local.get $3 - local.tee $4 + local.tee $6 local.get $0 i32.load offset=12 - local.tee $5 - local.get $4 - local.get $5 + local.tee $7 + local.get $6 + local.get $7 i32.lt_s select i32.lt_s - local.set $4 - local.get $4 + local.set $6 + local.get $6 if local.get $0 i32.load offset=4 - local.get $2 + local.get $5 i32.const 2 i32.shl i32.add i32.load - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - local.get $2 + local.get $5 local.get $0 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 i32.const 3 global.set $~argumentsLength local.get $1 i32.load - call_indirect (type $i32_i32_i32_=>_i32) - i32.eqz - if - i32.const 0 - 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 - local.get $2 + call_indirect (type $i32_i32_i32_=>_f32) + local.set $8 + local.get $4 + local.get $5 + i32.const 2 + i32.shl + i32.add + local.get $8 + f32.store + i32.const 0 + drop + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|0 + end + end + local.get $3 + local.set $9 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $9 + ) + (func $~lib/array/Array#map (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 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 $0 + i32.load offset=12 + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.const 2 + i32.const 3 + i32.const 0 + call $~lib/rt/__newArray + local.tee $3 + i32.store + local.get $3 + i32.load offset=4 + local.set $4 + i32.const 0 + local.set $5 + loop $for-loop|0 + local.get $5 + local.get $2 + local.tee $6 + local.get $0 + i32.load offset=12 + local.tee $7 + local.get $6 + local.get $7 + i32.lt_s + select + i32.lt_s + local.set $6 + local.get $6 + if + local.get $0 + i32.load offset=4 + local.get $5 + i32.const 2 + i32.shl + i32.add + i32.load + local.get $5 + local.get $0 + i32.const 3 + global.set $~argumentsLength + local.get $1 + i32.load + call_indirect (type $i32_i32_i32_=>_i32) + local.set $7 + local.get $4 + local.get $5 + i32.const 2 + i32.shl + i32.add + local.get $7 + i32.store + i32.const 0 + drop + local.get $5 i32.const 1 i32.add - local.set $2 + local.set $5 br $for-loop|0 end end - i32.const 1 - local.set $6 + local.get $3 + local.set $8 global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $6 + local.get $8 ) - (func $~lib/array/Array<~lib/string/String>#findIndex (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#filter (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 call $~stack_check global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store i32.const 0 - local.set $2 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 2 + i32.const 3 + i32.const 0 + call $~lib/rt/__newArray + local.tee $2 + i32.store + i32.const 0 + local.set $3 local.get $0 i32.load offset=12 - local.set $3 + local.set $4 loop $for-loop|0 - local.get $2 local.get $3 - local.tee $4 + local.get $4 + local.tee $5 local.get $0 i32.load offset=12 - local.tee $5 - local.get $4 + local.tee $6 local.get $5 + local.get $6 i32.lt_s select i32.lt_s - local.set $4 - local.get $4 + local.set $5 + local.get $5 if local.get $0 i32.load offset=4 - local.get $2 + local.get $3 i32.const 2 i32.shl i32.add i32.load local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store local.get $6 - local.get $2 + local.get $3 local.get $0 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 i32.const 3 global.set $~argumentsLength local.get $1 @@ -34239,330 +28987,294 @@ call_indirect (type $i32_i32_i32_=>_i32) if local.get $2 - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer local.get $6 - return + call $~lib/array/Array#push + drop end - local.get $2 + local.get $3 i32.const 1 i32.add - local.set $2 + local.set $3 br $for-loop|0 end end - i32.const -1 - local.set $6 + local.get $2 + local.set $7 global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $6 + local.get $7 ) - (func $~lib/array/Array<~lib/string/String>#indexOf (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) + (func $~lib/array/Array#sort@varargs (param $0 i32) (param $1 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 - local.get $0 - i32.load offset=12 - local.set $3 - local.get $3 i32.const 0 - i32.eq - if (result i32) - i32.const 1 - else - local.get $2 - local.get $3 - i32.ge_s - end - if - i32.const -1 - local.set $7 + i32.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 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $7 - return + block $~lib/util/sort/COMPARATOR|inlined.0 (result i32) + i32.const 0 + drop + i32.const 1 + drop + i32.const 4 + i32.const 4 + i32.eq + drop + i32.const 6544 + br $~lib/util/sort/COMPARATOR|inlined.0 + end + local.tee $1 + i32.store end + local.get $0 + local.get $1 + call $~lib/array/Array#sort + 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/array/Array#sort@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 + call $~stack_check + global.get $~lib/memory/__stack_pointer i32.const 0 - i32.lt_s - if - local.get $3 - local.get $2 - i32.add - local.tee $4 - i32.const 0 - local.tee $5 - local.get $4 - local.get $5 - i32.gt_s - select - local.set $2 + i32.store + block $1of1 + block $0of1 + block $outOfRange + global.get $~argumentsLength + br_table $0of1 $1of1 $outOfRange + end + unreachable + end + global.get $~lib/memory/__stack_pointer + block $~lib/util/sort/COMPARATOR|inlined.0 (result i32) + i32.const 0 + drop + i32.const 1 + drop + i32.const 8 + i32.const 4 + i32.eq + drop + i32.const 6736 + br $~lib/util/sort/COMPARATOR|inlined.0 + end + local.tee $1 + i32.store end local.get $0 - i32.load offset=4 - local.set $6 - loop $while-continue|0 - local.get $2 - local.get $3 - i32.lt_s - local.set $4 - local.get $4 - if - local.get $6 - local.get $2 - i32.const 2 - i32.shl - i32.add - i32.load - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store - local.get $7 - local.get $1 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - call $~lib/string/String.__eq - if - local.get $2 - local.set $7 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $7 - return + local.get $1 + call $~lib/array/Array#sort + 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/array/Array#sort@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 + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + block $1of1 + block $0of1 + block $outOfRange + global.get $~argumentsLength + br_table $0of1 $1of1 $outOfRange end - local.get $2 + unreachable + end + global.get $~lib/memory/__stack_pointer + block $~lib/util/sort/COMPARATOR|inlined.0 (result i32) i32.const 1 - i32.add - local.set $2 - br $while-continue|0 + drop + i32.const 1 + if (result i32) + i32.const 4 + i32.const 4 + i32.le_u + else + i32.const 0 + end + drop + i32.const 6912 + br $~lib/util/sort/COMPARATOR|inlined.0 end + local.tee $1 + i32.store end - i32.const -1 - local.set $7 + local.get $0 + local.get $1 + call $~lib/array/Array#sort + 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 $7 + local.get $2 ) - (func $~lib/array/Array<~lib/string/String>#includes (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (local $3 i32) + (func $~lib/array/Array#sort@varargs (param $0 i32) (param $1 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 - drop - local.get $0 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 i32.store - local.get $3 + block $1of1 + block $0of1 + block $outOfRange + global.get $~argumentsLength + br_table $0of1 $1of1 $outOfRange + end + unreachable + end + global.get $~lib/memory/__stack_pointer + block $~lib/util/sort/COMPARATOR|inlined.0 (result i32) + i32.const 1 + drop + i32.const 0 + if (result i32) + i32.const 4 + i32.const 4 + i32.le_u + else + i32.const 0 + end + drop + i32.const 7040 + br $~lib/util/sort/COMPARATOR|inlined.0 + end + local.tee $1 + i32.store + end + local.get $0 local.get $1 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - local.get $2 - call $~lib/array/Array<~lib/string/String>#indexOf - i32.const 0 - i32.ge_s - local.set $3 + call $~lib/array/Array#sort + 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 $3 - return + local.get $2 ) - (func $~lib/array/Array<~lib/string/String>#lastIndexOf (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $std/array/createReverseOrderedArray (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.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 $0 - i32.load offset=12 - local.set $3 - local.get $3 i32.const 0 - i32.eq - if - i32.const -1 - 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 - local.get $2 + i32.store + global.get $~lib/memory/__stack_pointer i32.const 0 - i32.lt_s - if - local.get $3 - local.get $2 - i32.add - local.set $2 - else + local.get $0 + call $~lib/array/Array#constructor + local.tee $1 + i32.store + i32.const 0 + local.set $2 + loop $for-loop|0 local.get $2 + local.get $0 + i32.lt_s + local.set $3 local.get $3 - i32.ge_s if - local.get $3 + local.get $1 + local.get $2 + local.get $0 i32.const 1 i32.sub - local.set $2 - end - end - local.get $0 - i32.load offset=4 - local.set $4 - loop $while-continue|0 - local.get $2 - i32.const 0 - i32.ge_s - local.set $5 - local.get $5 - if - local.get $4 local.get $2 - i32.const 2 - i32.shl - i32.add - i32.load - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - local.get $1 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - call $~lib/string/String.__eq - if - local.get $2 - 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 + i32.sub + call $~lib/array/Array#__set local.get $2 i32.const 1 - i32.sub + i32.add local.set $2 - br $while-continue|0 + br $for-loop|0 end end - i32.const -1 - local.set $6 + local.get $1 + local.set $4 global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $6 + local.get $4 ) - (func $~lib/array/Array<~lib/string/String>#forEach (param $0 i32) (param $1 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) 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 - local.set $2 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 0 local.get $0 - i32.load offset=12 - local.set $3 + call $~lib/array/Array#constructor + local.tee $1 + i32.store + i32.const 0 + local.set $2 loop $for-loop|0 local.get $2 - local.get $3 - local.tee $4 local.get $0 - i32.load offset=12 - local.tee $5 - local.get $4 - local.get $5 - i32.lt_s - select i32.lt_s - local.set $4 - local.get $4 - if - local.get $0 - i32.load offset=4 - local.get $2 - i32.const 2 - i32.shl - i32.add - i32.load - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - local.get $2 - local.get $0 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 3 - global.set $~argumentsLength + local.set $3 + local.get $3 + if local.get $1 - i32.load - call_indirect (type $i32_i32_i32_=>_none) + local.get $2 + call $~lib/math/NativeMath.random + local.get $0 + f64.convert_i32_s + f64.mul + i32.trunc_f64_s + call $~lib/array/Array#__set local.get $2 i32.const 1 i32.add @@ -34570,125 +29282,164 @@ br $for-loop|0 end end + local.get $1 + local.set $4 global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer + local.get $4 ) - (func $~lib/array/Array<~lib/string/String>#filter (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array<~lib/array/Array>#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.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 - global.get $~lib/memory/__stack_pointer + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.const 22 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + local.get $0 i32.const 0 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer + call $~lib/array/Array<~lib/array/Array>#set:buffer + local.get $0 + i32.const 0 + call $~lib/array/Array<~lib/array/Array>#set:dataStart + local.get $0 + i32.const 0 + call $~lib/array/Array<~lib/array/Array>#set:byteLength + local.get $0 i32.const 0 + call $~lib/array/Array<~lib/array/Array>#set:length_ + local.get $1 + i32.const 1073741820 i32.const 2 - i32.const 29 + i32.shr_u + i32.gt_u + if + i32.const 32 + i32.const 80 + i32.const 58 + i32.const 60 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 2 + i32.shl + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 i32.const 0 - call $~lib/rt/__newArray - local.tee $2 - i32.store + call $~lib/rt/itcms/__new + local.tee $3 + i32.store offset=4 + local.get $3 i32.const 0 - local.set $3 + local.get $2 + call $~lib/memory/memory.fill + local.get $0 + local.get $3 + call $~lib/array/Array<~lib/array/Array>#set:buffer + local.get $0 + local.get $3 + call $~lib/array/Array<~lib/array/Array>#set:dataStart + local.get $0 + local.get $2 + call $~lib/array/Array<~lib/array/Array>#set:byteLength + local.get $0 + local.get $1 + call $~lib/array/Array<~lib/array/Array>#set:length_ local.get $0 - i32.load offset=12 local.set $4 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $4 + ) + (func $std/array/createReverseOrderedNestedArray (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 + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + local.get $0 + call $~lib/array/Array<~lib/array/Array>#constructor + local.tee $1 + i32.store + i32.const 0 + local.set $2 loop $for-loop|0 - local.get $3 - local.get $4 - local.tee $5 + local.get $2 local.get $0 - i32.load offset=12 - local.tee $6 - local.get $5 - local.get $6 - i32.lt_s - select i32.lt_s - local.set $5 - local.get $5 + local.set $3 + local.get $3 if global.get $~lib/memory/__stack_pointer - local.get $0 - i32.load offset=4 - local.get $3 - i32.const 2 - i32.shl - i32.add - i32.load - local.tee $6 + i32.const 0 + i32.const 1 + call $~lib/array/Array#constructor + local.tee $4 i32.store offset=4 - local.get $6 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=8 - local.get $7 - local.get $3 + local.get $4 + i32.const 0 local.get $0 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=12 - local.get $7 - i32.const 3 - global.set $~argumentsLength + i32.const 1 + i32.sub + local.get $2 + i32.sub + call $~lib/array/Array#__set local.get $1 - i32.load - call_indirect (type $i32_i32_i32_=>_i32) - if - local.get $2 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=8 - local.get $7 - local.get $6 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=16 - local.get $7 - call $~lib/array/Array<~lib/string/String>#push - drop - end - local.get $3 + local.get $2 + local.get $4 + call $~lib/array/Array<~lib/array/Array>#__set + local.get $2 i32.const 1 i32.add - local.set $3 + local.set $2 br $for-loop|0 end end - local.get $2 - local.set $7 + local.get $1 + local.set $5 global.get $~lib/memory/__stack_pointer - i32.const 20 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $7 + local.get $5 ) - (func $~lib/array/Array<~lib/string/String>#some (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array<~lib/array/Array>#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) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -34697,79 +29448,88 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - i32.const 0 - local.set $2 local.get $0 i32.load offset=12 + local.set $2 + local.get $2 + i32.const 1 + i32.le_s + if + local.get $0 + local.set $7 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $7 + return + end + local.get $0 + i32.load offset=4 local.set $3 - loop $for-loop|0 - local.get $2 + local.get $2 + i32.const 2 + i32.eq + if + global.get $~lib/memory/__stack_pointer local.get $3 + i32.load offset=4 local.tee $4 - local.get $0 - i32.load offset=12 - local.tee $5 - local.get $4 - local.get $5 - i32.lt_s - select - i32.lt_s - local.set $4 - local.get $4 - if - local.get $0 - i32.load offset=4 - local.get $2 - i32.const 2 - i32.shl - i32.add - i32.load - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - local.get $2 - local.get $0 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.load + local.tee $5 + i32.store offset=4 + local.get $4 + local.get $5 + i32.const 2 + global.set $~argumentsLength + local.get $1 + i32.load + call_indirect (type $i32_i32_=>_i32) + i32.const 0 + i32.lt_s + if + local.get $3 + local.get $5 i32.store offset=4 - local.get $6 - i32.const 3 - global.set $~argumentsLength - local.get $1 - i32.load - call_indirect (type $i32_i32_i32_=>_i32) - if - i32.const 1 - 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 - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $for-loop|0 + local.get $3 + local.get $4 + i32.store end + local.get $0 + local.set $7 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $7 + return end - i32.const 0 + local.get $3 local.set $6 + local.get $2 + local.set $5 + local.get $1 + local.set $4 + i32.const 1 + drop + local.get $6 + local.get $5 + local.get $4 + call $~lib/util/sort/insertionSort<~lib/array/Array> + local.get $0 + local.set $7 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $6 + local.get $7 ) - (func $~lib/array/Array<~lib/string/String>#join (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array<~lib/array/Array>#__get (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 @@ -34778,43 +29538,55 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - local.get $0 - i32.load offset=4 - local.set $2 + local.get $1 local.get $0 i32.load offset=12 - local.set $3 - i32.const 0 - drop - i32.const 0 - drop - i32.const 0 - drop - i32.const 0 + i32.ge_u + if + i32.const 320 + i32.const 80 + i32.const 92 + i32.const 42 + call $~lib/builtins/abort + unreachable + end + 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 $2 + i32.store i32.const 1 - i32.lt_s drop - i32.const 1 + i32.const 0 + i32.eqz drop local.get $2 - local.get $3 - local.get $1 - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store - local.get $4 - call $~lib/util/string/joinStringArray - local.set $4 + i32.eqz + if + i32.const 4672 + i32.const 80 + i32.const 96 + i32.const 40 + call $~lib/builtins/abort + unreachable + end + local.get $2 + local.set $3 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $4 - return + local.get $3 ) - (func $~lib/array/Array<~lib/string/String>#toString (param $0 i32) (result i32) - (local $1 i32) + (func $~lib/array/Array>#constructor (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 @@ -34824,242 +29596,352 @@ i64.const 0 i64.store local.get $0 - local.set $1 - global.get $~lib/memory/__stack_pointer + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.const 25 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + local.get $0 + i32.const 0 + call $~lib/array/Array>#set:buffer + local.get $0 + i32.const 0 + call $~lib/array/Array>#set:dataStart + local.get $0 + i32.const 0 + call $~lib/array/Array>#set:byteLength + local.get $0 + i32.const 0 + call $~lib/array/Array>#set:length_ local.get $1 - i32.store + i32.const 1073741820 + i32.const 2 + i32.shr_u + i32.gt_u + if + i32.const 32 + i32.const 80 + i32.const 58 + i32.const 60 + call $~lib/builtins/abort + unreachable + end local.get $1 - i32.const 8048 - local.set $1 + i32.const 2 + i32.shl + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 + i32.const 0 + call $~lib/rt/itcms/__new + local.tee $3 i32.store offset=4 + local.get $3 + i32.const 0 + local.get $2 + call $~lib/memory/memory.fill + local.get $0 + local.get $3 + call $~lib/array/Array>#set:buffer + local.get $0 + local.get $3 + call $~lib/array/Array>#set:dataStart + local.get $0 + local.get $2 + call $~lib/array/Array>#set:byteLength + local.get $0 local.get $1 - call $~lib/array/Array<~lib/string/String>#join - local.set $1 + call $~lib/array/Array>#set:length_ + local.get $0 + local.set $4 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 + local.get $4 ) - (func $~lib/util/sort/COMPARATOR<~lib/string/String>~anonymous|1 (param $0 i32) (param $1 i32) (result i32) + (func $std/array/Proxy#constructor (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.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 $0 - local.get $1 - i32.eq - if (result i32) - i32.const 1 - else - local.get $0 - i32.const 0 - i32.eq - end - if (result i32) - i32.const 1 - else - local.get $1 - i32.const 0 - i32.eq - end + i32.eqz if - i32.const 0 - local.set $6 global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - return + i32.const 4 + i32.const 24 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store end local.get $0 - local.set $6 + local.get $1 + call $std/array/Proxy#set:x + 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 $2 + ) + (func $~lib/array/Array>#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) global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - call $~lib/string/String#get:length - local.set $2 - local.get $1 - local.set $6 + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - call $~lib/string/String#get:length - local.set $3 + i64.const 0 + i64.store + local.get $0 + i32.load offset=12 + local.set $2 local.get $2 - local.get $3 - i32.or - i32.eqz + i32.const 1 + i32.le_s if - i32.const 0 - local.set $6 + local.get $0 + local.set $7 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $6 + local.get $7 return end + local.get $0 + i32.load offset=4 + local.set $3 local.get $2 - i32.eqz + i32.const 2 + i32.eq if - i32.const -1 - 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 - local.get $3 - i32.eqz - if - i32.const 1 - local.set $6 + local.get $3 + i32.load offset=4 + local.tee $4 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.load + local.tee $5 + i32.store offset=4 + local.get $4 + local.get $5 + i32.const 2 + global.set $~argumentsLength + local.get $1 + i32.load + call_indirect (type $i32_i32_=>_i32) + i32.const 0 + i32.lt_s + if + local.get $3 + local.get $5 + i32.store offset=4 + local.get $3 + local.get $4 + i32.store + end + local.get $0 + local.set $7 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $6 + local.get $7 return end - local.get $0 + local.get $3 local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - i32.const 0 + local.get $2 + local.set $5 local.get $1 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 + local.set $4 + i32.const 1 + drop local.get $6 - i32.const 0 - local.get $2 - local.tee $4 - local.get $3 - local.tee $5 - local.get $4 local.get $5 - i32.lt_s - select - call $~lib/util/string/compareImpl - local.set $4 local.get $4 - if (result i32) - local.get $4 - else - local.get $2 - local.get $3 - i32.sub - end - local.set $6 + call $~lib/util/sort/insertionSort> + local.get $0 + local.set $7 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $6 + local.get $7 ) - (func $~lib/array/Array#constructor (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array>#__get (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.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 $1 local.get $0 - i32.eqz + i32.load offset=12 + i32.ge_u if - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.const 3 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store + i32.const 320 + i32.const 80 + i32.const 92 + i32.const 42 + call $~lib/builtins/abort + unreachable end + global.get $~lib/memory/__stack_pointer local.get $0 - i32.const 0 - call $~lib/array/Array#set:buffer - local.get $0 - i32.const 0 - call $~lib/array/Array#set:dataStart - local.get $0 - i32.const 0 - call $~lib/array/Array#set:byteLength - local.get $0 - i32.const 0 - call $~lib/array/Array#set:length_ + i32.load offset=4 local.get $1 - i32.const 1073741820 i32.const 2 - i32.shr_u - i32.gt_u + i32.shl + i32.add + i32.load + local.tee $2 + i32.store + i32.const 1 + drop + i32.const 0 + i32.eqz + drop + local.get $2 + i32.eqz if - i32.const 32 + i32.const 4672 i32.const 80 - i32.const 58 - i32.const 60 + i32.const 96 + i32.const 40 call $~lib/builtins/abort unreachable end - local.get $1 - i32.const 2 - i32.shl - local.set $2 - global.get $~lib/memory/__stack_pointer local.get $2 - i32.const 0 - call $~lib/rt/itcms/__new - local.tee $3 - i32.store offset=4 + local.set $3 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer local.get $3 - i32.const 0 - local.get $2 - call $~lib/memory/memory.fill + ) + (func $~lib/array/Array<~lib/string/String|null>#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) + 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 $0 - local.get $3 - call $~lib/array/Array#set:buffer + i32.load offset=12 + local.set $2 + local.get $2 + i32.const 1 + i32.le_s + if + local.get $0 + local.set $7 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $7 + return + end local.get $0 + i32.load offset=4 + local.set $3 + local.get $2 + i32.const 2 + i32.eq + if + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.load offset=4 + local.tee $4 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.load + local.tee $5 + i32.store offset=4 + local.get $4 + local.get $5 + i32.const 2 + global.set $~argumentsLength + local.get $1 + i32.load + call_indirect (type $i32_i32_=>_i32) + i32.const 0 + i32.lt_s + if + local.get $3 + local.get $5 + i32.store offset=4 + local.get $3 + local.get $4 + i32.store + end + local.get $0 + local.set $7 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $7 + return + end local.get $3 - call $~lib/array/Array#set:dataStart - local.get $0 + local.set $6 local.get $2 - call $~lib/array/Array#set:byteLength - local.get $0 + local.set $5 local.get $1 - call $~lib/array/Array#set:length_ - local.get $0 local.set $4 + i32.const 1 + drop + local.get $6 + local.get $5 + local.get $4 + call $~lib/util/sort/insertionSort<~lib/string/String|null> + local.get $0 + local.set $7 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $4 + local.get $7 ) - (func $std/array/Ref#constructor (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array<~lib/string/String|null>#__get (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 @@ -35068,28 +29950,43 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store + local.get $1 local.get $0 - i32.eqz + i32.load offset=12 + i32.ge_u if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.const 4 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store + i32.const 320 + i32.const 80 + i32.const 92 + i32.const 42 + call $~lib/builtins/abort + unreachable end + global.get $~lib/memory/__stack_pointer local.get $0 + i32.load offset=4 local.get $1 - call $std/array/Ref#set:v - local.get $0 - local.set $2 + i32.const 2 + i32.shl + i32.add + i32.load + local.tee $2 + i32.store + i32.const 1 + drop + i32.const 1 + i32.eqz + drop + local.get $2 + 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/arraybuffer/ArrayBufferView#constructor (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/array/Array<~lib/string/String>#constructor (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) (local $3 i32) (local $4 i32) global.get $~lib/memory/__stack_pointer @@ -35104,56 +30001,63 @@ i32.eqz if global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.const 2 + i32.const 16 + i32.const 29 call $~lib/rt/itcms/__new local.tee $0 i32.store end local.get $0 i32.const 0 - call $~lib/arraybuffer/ArrayBufferView#set:buffer + call $~lib/array/Array<~lib/string/String>#set:buffer local.get $0 i32.const 0 - call $~lib/arraybuffer/ArrayBufferView#set:dataStart + call $~lib/array/Array<~lib/string/String>#set:dataStart local.get $0 i32.const 0 - call $~lib/arraybuffer/ArrayBufferView#set:byteLength + call $~lib/array/Array<~lib/string/String>#set:byteLength + local.get $0 + i32.const 0 + call $~lib/array/Array<~lib/string/String>#set:length_ local.get $1 i32.const 1073741820 - local.get $2 + i32.const 2 i32.shr_u i32.gt_u if i32.const 32 - i32.const 576 - i32.const 18 - i32.const 57 + i32.const 80 + i32.const 58 + i32.const 60 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer local.get $1 - local.get $2 + i32.const 2 i32.shl - local.tee $1 + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 i32.const 0 call $~lib/rt/itcms/__new local.tee $3 i32.store offset=4 local.get $3 i32.const 0 - local.get $1 + local.get $2 call $~lib/memory/memory.fill local.get $0 local.get $3 - call $~lib/arraybuffer/ArrayBufferView#set:buffer + call $~lib/array/Array<~lib/string/String>#set:buffer local.get $0 local.get $3 - call $~lib/arraybuffer/ArrayBufferView#set:dataStart + call $~lib/array/Array<~lib/string/String>#set:dataStart + local.get $0 + local.get $2 + call $~lib/array/Array<~lib/string/String>#set:byteLength local.get $0 local.get $1 - call $~lib/arraybuffer/ArrayBufferView#set:byteLength + call $~lib/array/Array<~lib/string/String>#set:length_ local.get $0 local.set $4 global.get $~lib/memory/__stack_pointer @@ -35162,11 +30066,9 @@ global.set $~lib/memory/__stack_pointer local.get $4 ) - (func $~lib/rt/__newArray (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) + (func $~lib/string/String#charAt (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 @@ -35175,243 +30077,267 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - local.get $0 local.get $1 - i32.shl - local.set $4 + local.get $0 + call $~lib/string/String#get:length + i32.ge_u + if + i32.const 7728 + 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 global.get $~lib/memory/__stack_pointer - local.get $4 - i32.const 0 - local.get $3 - call $~lib/rt/__newBuffer - local.tee $5 - i32.store - i32.const 16 - local.get $2 + i32.const 2 + i32.const 1 call $~lib/rt/itcms/__new - local.set $6 - local.get $6 - local.get $5 + local.tee $2 i32.store - local.get $6 - local.get $5 - i32.const 0 - call $~lib/rt/itcms/__link - local.get $6 - local.get $5 - i32.store offset=4 - local.get $6 - local.get $4 - i32.store offset=8 - local.get $6 + local.get $2 local.get $0 - i32.store offset=12 - local.get $6 - local.set $7 + local.get $1 + i32.const 1 + i32.shl + i32.add + i32.load16_u + i32.store16 + local.get $2 + local.set $3 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $7 + local.get $3 ) - (func $~lib/array/Array#concat (param $0 i32) (param $1 i32) (result 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) 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 + i64.const 0 + i64.store + local.get $1 i32.const 0 - i32.store + i32.eq + if + global.get $~lib/memory/__stack_pointer + i32.const 7888 + local.tee $1 + i32.store + end local.get $0 - i32.load offset=12 + call $~lib/string/String#get:length + i32.const 1 + i32.shl local.set $2 - i32.const 0 local.get $1 - i32.load offset=12 - local.get $1 - i32.const 0 - i32.eq - select + call $~lib/string/String#get:length + i32.const 1 + i32.shl local.set $3 local.get $2 local.get $3 i32.add local.set $4 local.get $4 - i32.const 1073741820 - i32.const 2 - i32.shr_u - i32.gt_u + i32.const 0 + i32.eq if - i32.const 32 - i32.const 80 - i32.const 222 - i32.const 60 - call $~lib/builtins/abort - unreachable + i32.const 7728 + 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 $4 - i32.const 2 - i32.const 3 - i32.const 0 - call $~lib/rt/__newArray + i32.const 1 + call $~lib/rt/itcms/__new local.tee $5 - i32.store + i32.store offset=4 local.get $5 - i32.load offset=4 - local.set $6 - local.get $2 - i32.const 2 - i32.shl - local.set $7 - i32.const 0 - drop - local.get $6 local.get $0 - i32.load offset=4 - local.get $7 + local.get $2 call $~lib/memory/memory.copy - local.get $6 - local.get $7 + local.get $5 + local.get $2 i32.add local.get $1 - i32.load offset=4 local.get $3 - i32.const 2 - i32.shl call $~lib/memory/memory.copy local.get $5 - local.set $8 + 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 $8 + local.get $6 ) - (func $~lib/array/Array#slice (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/array/Array<~lib/string/String>#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) - (local $9 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 $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 + local.set $2 + local.get $2 + i32.const 1 + i32.le_s + if + local.get $0 + local.set $7 + global.get $~lib/memory/__stack_pointer + i32.const 8 i32.add - local.tee $4 - i32.const 0 - local.tee $5 - local.get $4 - local.get $5 - i32.gt_s - select - else - local.get $1 - local.tee $5 - local.get $3 - local.tee $4 - local.get $5 - local.get $4 - i32.lt_s - select + global.set $~lib/memory/__stack_pointer + local.get $7 + return end - local.set $1 + local.get $0 + i32.load offset=4 + local.set $3 local.get $2 - i32.const 0 - i32.lt_s - if (result i32) - local.get $2 + i32.const 2 + i32.eq + if + global.get $~lib/memory/__stack_pointer local.get $3 - i32.add + i32.load offset=4 local.tee $4 - i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.load local.tee $5 + i32.store offset=4 local.get $4 local.get $5 - i32.gt_s - select - else - local.get $2 - local.tee $5 - local.get $3 - local.tee $4 - local.get $5 - local.get $4 + i32.const 2 + global.set $~argumentsLength + local.get $1 + i32.load + call_indirect (type $i32_i32_=>_i32) + i32.const 0 i32.lt_s - select + if + local.get $3 + local.get $5 + i32.store offset=4 + local.get $3 + local.get $4 + i32.store + end + local.get $0 + local.set $7 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $7 + return end - local.set $2 + local.get $3 + local.set $6 local.get $2 + local.set $5 local.get $1 - i32.sub - local.tee $4 - i32.const 0 - local.tee $5 - local.get $4 + local.set $4 + i32.const 1 + drop + local.get $6 local.get $5 - i32.gt_s - select - local.set $3 + local.get $4 + call $~lib/util/sort/insertionSort<~lib/string/String> + local.get $0 + local.set $7 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $7 + ) + (func $~lib/array/Array<~lib/string/String>#__get (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 + call $~stack_check global.get $~lib/memory/__stack_pointer - local.get $3 - i32.const 2 - i32.const 3 i32.const 0 - call $~lib/rt/__newArray - local.tee $6 i32.store - local.get $6 - i32.load offset=4 - local.set $7 + local.get $1 + local.get $0 + i32.load offset=12 + i32.ge_u + if + i32.const 320 + i32.const 80 + i32.const 92 + i32.const 42 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer local.get $0 i32.load offset=4 local.get $1 i32.const 2 i32.shl i32.add - local.set $8 + i32.load + local.tee $2 + i32.store + i32.const 1 + drop i32.const 0 + i32.eqz drop - local.get $7 - local.get $8 - local.get $3 - i32.const 2 - i32.shl - call $~lib/memory/memory.copy - local.get $6 - local.set $9 + local.get $2 + i32.eqz + if + i32.const 4672 + i32.const 80 + i32.const 96 + i32.const 40 + call $~lib/builtins/abort + unreachable + end + local.get $2 + local.set $3 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $9 + local.get $3 ) - (func $~lib/array/Array#splice (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (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) @@ -35421,6 +30347,7 @@ (local $9 i32) (local $10 i32) (local $11 i32) + (local $12 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -35430,112 +30357,120 @@ i32.const 0 i32.store local.get $0 - i32.load offset=12 + call $~lib/string/String#get:length local.set $3 local.get $1 + local.tee $4 i32.const 0 + local.tee $5 + local.get $4 + local.get $5 + i32.gt_s + select + local.tee $5 + local.get $3 + local.tee $4 + local.get $5 + local.get $4 i32.lt_s - if (result i32) - local.get $3 - local.get $1 - i32.add - local.tee $4 - i32.const 0 - local.tee $5 - local.get $4 - local.get $5 - i32.gt_s - select - else - local.get $1 - local.tee $5 - local.get $3 - local.tee $4 - local.get $5 - local.get $4 - i32.lt_s - select - end - local.set $1 + select + local.set $6 local.get $2 local.tee $4 - local.get $3 - local.get $1 - i32.sub + i32.const 0 local.tee $5 local.get $4 local.get $5 - i32.lt_s + i32.gt_s select local.tee $5 - i32.const 0 + local.get $3 local.tee $4 local.get $5 local.get $4 - i32.gt_s + i32.lt_s select - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.const 2 - i32.const 3 - i32.const 0 - call $~lib/rt/__newArray - local.tee $6 - i32.store - local.get $6 - i32.load offset=4 local.set $7 - local.get $0 - i32.load offset=4 + local.get $6 + local.tee $4 + local.get $7 + local.tee $5 + local.get $4 + local.get $5 + i32.lt_s + select + i32.const 1 + i32.shl local.set $8 - local.get $8 - local.get $1 - i32.const 2 + local.get $6 + local.tee $5 + local.get $7 + local.tee $4 + local.get $5 + local.get $4 + i32.gt_s + select + i32.const 1 i32.shl - i32.add local.set $9 - local.get $7 local.get $9 - local.get $2 - i32.const 2 - i32.shl - call $~lib/memory/memory.copy - local.get $1 - local.get $2 - i32.add + local.get $8 + i32.sub local.set $10 - local.get $3 local.get $10 - i32.ne + i32.eqz if - local.get $9 - local.get $8 - local.get $10 - i32.const 2 - i32.shl + i32.const 7728 + local.set $12 + global.get $~lib/memory/__stack_pointer + i32.const 4 i32.add + global.set $~lib/memory/__stack_pointer + local.get $12 + return + end + local.get $8 + i32.eqz + if (result i32) + local.get $9 local.get $3 - local.get $10 - i32.sub - i32.const 2 + i32.const 1 i32.shl - call $~lib/memory/memory.copy + i32.eq + else + i32.const 0 + end + if + local.get $0 + local.set $12 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $12 + return end + global.get $~lib/memory/__stack_pointer + local.get $10 + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $11 + i32.store + local.get $11 local.get $0 - local.get $3 - local.get $2 - i32.sub - call $~lib/array/Array#set:length_ - local.get $6 - local.set $11 + local.get $8 + i32.add + local.get $10 + call $~lib/memory/memory.copy + local.get $11 + local.set $12 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $11 + local.get $12 ) - (func $~lib/array/Array#splice (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/util/string/joinBooleanArray (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -35545,6 +30480,8 @@ (local $9 i32) (local $10 i32) (local $11 i32) + (local $12 i32) + (local $13 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -35553,115 +30490,181 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - local.get $0 - i32.load offset=12 - local.set $3 local.get $1 + i32.const 1 + i32.sub + local.set $3 + local.get $3 i32.const 0 i32.lt_s - if (result i32) - local.get $3 - local.get $1 + if + i32.const 7728 + local.set $13 + global.get $~lib/memory/__stack_pointer + i32.const 4 i32.add - local.tee $4 - i32.const 0 - local.tee $5 - local.get $4 - local.get $5 - i32.gt_s - select - else - local.get $1 - local.tee $5 - local.get $3 - local.tee $4 - local.get $5 - local.get $4 - i32.lt_s + global.set $~lib/memory/__stack_pointer + local.get $13 + return + end + local.get $3 + i32.eqz + if + i32.const 7984 + i32.const 8016 + local.get $0 + i32.load8_u select + local.set $13 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $13 + return end - local.set $1 local.get $2 - local.tee $4 - local.get $3 - local.get $1 - i32.sub - local.tee $5 - local.get $4 - local.get $5 - i32.lt_s - select - local.tee $5 - i32.const 0 - local.tee $4 + call $~lib/string/String#get:length + local.set $4 + i32.const 5 + local.set $5 local.get $5 local.get $4 - i32.gt_s - select - local.set $2 + i32.add + local.get $3 + i32.mul + local.get $5 + i32.add + local.set $6 global.get $~lib/memory/__stack_pointer - local.get $2 - i32.const 2 - i32.const 8 - i32.const 0 - call $~lib/rt/__newArray - local.tee $6 - i32.store local.get $6 - i32.load offset=4 - local.set $7 - local.get $0 - i32.load offset=4 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $7 + i32.store + i32.const 0 local.set $8 - local.get $8 - local.get $1 - i32.const 2 + i32.const 0 + local.set $10 + loop $for-loop|1 + local.get $10 + local.get $3 + i32.lt_s + local.set $12 + local.get $12 + if + local.get $0 + local.get $10 + i32.add + i32.load8_u + local.set $9 + i32.const 4 + local.get $9 + i32.eqz + i32.add + local.set $5 + local.get $7 + local.get $8 + i32.const 1 + i32.shl + i32.add + i32.const 7984 + i32.const 8016 + local.get $9 + select + local.get $5 + i32.const 1 + i32.shl + call $~lib/memory/memory.copy + local.get $8 + local.get $5 + i32.add + local.set $8 + local.get $4 + if + local.get $7 + local.get $8 + i32.const 1 + i32.shl + i32.add + local.get $2 + local.get $4 + i32.const 1 + i32.shl + call $~lib/memory/memory.copy + local.get $8 + local.get $4 + i32.add + local.set $8 + end + local.get $10 + i32.const 1 + i32.add + local.set $10 + br $for-loop|1 + end + end + local.get $0 + local.get $3 + i32.add + i32.load8_u + local.set $9 + i32.const 4 + local.get $9 + i32.eqz + i32.add + local.set $5 + local.get $7 + local.get $8 + i32.const 1 i32.shl i32.add - local.set $9 - local.get $7 + i32.const 7984 + i32.const 8016 local.get $9 - local.get $2 - i32.const 2 + select + local.get $5 + i32.const 1 i32.shl call $~lib/memory/memory.copy - local.get $1 - local.get $2 + local.get $8 + local.get $5 i32.add - local.set $10 - local.get $3 - local.get $10 - i32.ne + local.set $8 + local.get $6 + local.get $8 + i32.gt_s if - local.get $9 + local.get $7 + i32.const 0 local.get $8 - local.get $10 - i32.const 2 - i32.shl + call $~lib/string/String#substring + local.set $13 + global.get $~lib/memory/__stack_pointer + i32.const 4 i32.add - local.get $3 - local.get $10 - i32.sub - i32.const 2 - i32.shl - call $~lib/memory/memory.copy + global.set $~lib/memory/__stack_pointer + local.get $13 + return end - local.get $0 - local.get $3 - local.get $2 - i32.sub - call $~lib/array/Array#set:length_ - local.get $6 - local.set $11 + local.get $7 + local.set $13 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $11 + local.get $13 ) - (func $~lib/array/Array#__get (param $0 i32) (param $1 i32) (result i32) + (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) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -35671,177 +30674,166 @@ i32.const 0 i32.store local.get $1 - local.get $0 - i32.load offset=12 - i32.ge_u + i32.const 2 + i32.lt_s + if (result i32) + i32.const 1 + else + local.get $1 + i32.const 36 + i32.gt_s + end if - i32.const 320 - i32.const 80 - i32.const 92 - i32.const 42 + i32.const 8160 + i32.const 8288 + i32.const 373 + i32.const 5 call $~lib/builtins/abort unreachable end - 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 $2 - i32.store - i32.const 1 - drop - i32.const 0 - i32.eqz - drop - local.get $2 i32.eqz if - i32.const 4672 - i32.const 80 - i32.const 96 - i32.const 40 - call $~lib/builtins/abort - unreachable + i32.const 8352 + local.set $8 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $8 + return end - local.get $2 - local.set $3 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $3 - ) - (func $~lib/array/Array#splice (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) - (local $11 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 $0 - i32.load offset=12 - local.set $3 + i32.const 31 + i32.shr_u + local.set $2 + local.get $2 + if + i32.const 0 + local.get $0 + i32.sub + local.set $0 + end local.get $1 - i32.const 0 - i32.lt_s - if (result i32) - local.get $3 - local.get $1 + i32.const 10 + i32.eq + if + local.get $0 + call $~lib/util/number/decimalCount32 + local.get $2 i32.add - local.tee $4 - i32.const 0 - local.tee $5 + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $3 + i32.store + local.get $3 + local.set $7 + local.get $0 + local.set $6 local.get $4 + local.set $5 + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $7 + local.get $6 local.get $5 - i32.gt_s - select + call $~lib/util/number/utoa32_dec_lut else local.get $1 - local.tee $5 - local.get $3 - local.tee $4 - local.get $5 - local.get $4 - i32.lt_s - select - end - local.set $1 - local.get $2 - local.tee $4 - local.get $3 - local.get $1 - i32.sub - local.tee $5 - local.get $4 - local.get $5 - i32.lt_s - select - local.tee $5 - i32.const 0 - local.tee $4 - local.get $5 - local.get $4 - i32.gt_s - select - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.const 2 - i32.const 11 - i32.const 0 - call $~lib/rt/__newArray - local.tee $6 - i32.store - local.get $6 - i32.load offset=4 - local.set $7 - local.get $0 - i32.load offset=4 - local.set $8 - local.get $8 - local.get $1 - i32.const 2 - i32.shl - i32.add - local.set $9 - local.get $7 - local.get $9 - local.get $2 - i32.const 2 - i32.shl - call $~lib/memory/memory.copy - local.get $1 + i32.const 16 + i32.eq + if + i32.const 31 + local.get $0 + i32.clz + i32.sub + i32.const 2 + i32.shr_s + i32.const 1 + i32.add + local.get $2 + i32.add + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $3 + i32.store + local.get $3 + local.set $7 + local.get $0 + local.set $6 + local.get $4 + local.set $5 + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $7 + local.get $6 + i64.extend_i32_u + local.get $5 + call $~lib/util/number/utoa_hex_lut + else + local.get $0 + local.set $4 + local.get $4 + i64.extend_i32_u + local.get $1 + call $~lib/util/number/ulog_base + local.get $2 + i32.add + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $3 + i32.store + local.get $3 + local.get $4 + i64.extend_i32_u + local.get $7 + local.get $1 + call $~lib/util/number/utoa64_any_core + end + end local.get $2 - i32.add - local.set $10 - local.get $3 - local.get $10 - i32.ne if - local.get $9 - local.get $8 - local.get $10 - i32.const 2 - i32.shl - i32.add local.get $3 - local.get $10 - i32.sub - i32.const 2 - i32.shl - call $~lib/memory/memory.copy + i32.const 45 + i32.store16 end - local.get $0 local.get $3 - local.get $2 - i32.sub - call $~lib/array/Array#set:length_ - local.get $6 - local.set $11 + local.set $8 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $11 + local.get $8 ) - (func $~lib/array/Array#__get (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) + (func $~lib/util/string/joinIntegerArray (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) + (local $11 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -35851,177 +30843,164 @@ i32.const 0 i32.store local.get $1 - local.get $0 - i32.load offset=12 - i32.ge_u - if - i32.const 320 - i32.const 80 - i32.const 92 - i32.const 42 - call $~lib/builtins/abort - unreachable - end - 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 $2 - i32.store i32.const 1 - drop - i32.const 1 - i32.eqz - drop - local.get $2 + i32.sub local.set $3 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer local.get $3 - ) - (func $~lib/array/Array#sort@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 - call $~stack_check - global.get $~lib/memory/__stack_pointer i32.const 0 - i32.store - block $1of1 - block $0of1 - block $outOfRange - global.get $~argumentsLength - br_table $0of1 $1of1 $outOfRange - end - unreachable - end + i32.lt_s + if + i32.const 7728 + local.set $11 global.get $~lib/memory/__stack_pointer - block $~lib/util/sort/COMPARATOR|inlined.0 (result i32) - i32.const 0 - drop - i32.const 1 - drop - i32.const 4 - i32.const 4 - i32.eq - drop - i32.const 6544 - br $~lib/util/sort/COMPARATOR|inlined.0 - end - local.tee $1 - i32.store + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $11 + return + end + local.get $3 + i32.eqz + if + local.get $0 + i32.load + local.set $4 + i32.const 1 + drop + i32.const 4 + i32.const 4 + i32.le_u + drop + local.get $4 + i32.const 10 + call $~lib/util/number/itoa32 + local.set $11 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $11 + return end - local.get $0 - local.get $1 - call $~lib/array/Array#sort - 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/array/Array#sort@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 - call $~stack_check + call $~lib/string/String#get:length + local.set $5 + i32.const 11 + local.get $5 + i32.add + local.get $3 + i32.mul + i32.const 11 + i32.add + local.set $6 global.get $~lib/memory/__stack_pointer - i32.const 0 + local.get $6 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $7 i32.store - block $1of1 - block $0of1 - block $outOfRange - global.get $~argumentsLength - br_table $0of1 $1of1 $outOfRange + i32.const 0 + local.set $8 + i32.const 0 + local.set $4 + loop $for-loop|0 + local.get $4 + local.get $3 + i32.lt_s + local.set $10 + local.get $10 + if + local.get $0 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $9 + local.get $8 + local.get $7 + local.get $8 + i32.const 1 + i32.shl + i32.add + local.get $9 + call $~lib/util/number/itoa_buffered + i32.add + local.set $8 + local.get $5 + if + local.get $7 + local.get $8 + i32.const 1 + i32.shl + i32.add + local.get $2 + local.get $5 + i32.const 1 + i32.shl + call $~lib/memory/memory.copy + local.get $8 + local.get $5 + i32.add + local.set $8 end - unreachable - end - global.get $~lib/memory/__stack_pointer - block $~lib/util/sort/COMPARATOR|inlined.0 (result i32) - i32.const 0 - drop + local.get $4 i32.const 1 - drop - i32.const 8 - i32.const 4 - i32.eq - drop - i32.const 6736 - br $~lib/util/sort/COMPARATOR|inlined.0 + i32.add + local.set $4 + br $for-loop|0 end - local.tee $1 - i32.store end local.get $0 - local.get $1 - call $~lib/array/Array#sort - local.set $2 - global.get $~lib/memory/__stack_pointer - i32.const 4 + local.get $3 + i32.const 2 + i32.shl i32.add - global.set $~lib/memory/__stack_pointer - local.get $2 - ) - (func $~lib/array/Array#sort@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 - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - block $1of1 - block $0of1 - block $outOfRange - global.get $~argumentsLength - br_table $0of1 $1of1 $outOfRange - end - unreachable - end + i32.load + local.set $9 + local.get $8 + local.get $7 + local.get $8 + i32.const 1 + i32.shl + i32.add + local.get $9 + call $~lib/util/number/itoa_buffered + i32.add + local.set $8 + local.get $6 + local.get $8 + i32.gt_s + if + local.get $7 + i32.const 0 + local.get $8 + call $~lib/string/String#substring + local.set $11 global.get $~lib/memory/__stack_pointer - block $~lib/util/sort/COMPARATOR|inlined.0 (result i32) - i32.const 1 - drop - i32.const 1 - if (result i32) - i32.const 4 - i32.const 4 - i32.le_u - else - i32.const 0 - end - drop - i32.const 6912 - br $~lib/util/sort/COMPARATOR|inlined.0 - end - local.tee $1 - i32.store + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $11 + return end - local.get $0 - local.get $1 - call $~lib/array/Array#sort - local.set $2 + local.get $7 + local.set $11 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 + local.get $11 ) - (func $~lib/array/Array#sort@varargs (param $0 i32) (param $1 i32) (result i32) + (func $~lib/util/number/utoa32 (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 @@ -36030,127 +31009,142 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - block $1of1 - block $0of1 - block $outOfRange - global.get $~argumentsLength - br_table $0of1 $1of1 $outOfRange - end - unreachable - end - global.get $~lib/memory/__stack_pointer - block $~lib/util/sort/COMPARATOR|inlined.0 (result i32) - i32.const 1 - drop - i32.const 0 - if (result i32) - i32.const 4 - i32.const 4 - i32.le_u - else - i32.const 0 - end - drop - i32.const 7040 - br $~lib/util/sort/COMPARATOR|inlined.0 - end - local.tee $1 - i32.store - end - local.get $0 local.get $1 - call $~lib/array/Array#sort - 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/array/Array<~lib/array/Array>#constructor (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 - call $~stack_check - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store + i32.const 2 + i32.lt_s + if (result i32) + i32.const 1 + else + local.get $1 + i32.const 36 + i32.gt_s + end + if + i32.const 8160 + i32.const 8288 + i32.const 350 + i32.const 5 + call $~lib/builtins/abort + unreachable + end local.get $0 i32.eqz if + i32.const 8352 + local.set $7 global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.const 22 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $7 + return end - local.get $0 - i32.const 0 - call $~lib/array/Array<~lib/array/Array>#set:buffer - local.get $0 - i32.const 0 - call $~lib/array/Array<~lib/array/Array>#set:dataStart - local.get $0 - i32.const 0 - call $~lib/array/Array<~lib/array/Array>#set:byteLength - local.get $0 - i32.const 0 - call $~lib/array/Array<~lib/array/Array>#set:length_ local.get $1 - i32.const 1073741820 - i32.const 2 - i32.shr_u - i32.gt_u + i32.const 10 + i32.eq if - i32.const 32 - i32.const 80 - i32.const 58 - i32.const 60 - call $~lib/builtins/abort - unreachable + local.get $0 + call $~lib/util/number/decimalCount32 + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $2 + i32.store + local.get $2 + local.set $6 + local.get $0 + local.set $5 + local.get $3 + local.set $4 + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $6 + local.get $5 + local.get $4 + call $~lib/util/number/utoa32_dec_lut + else + local.get $1 + i32.const 16 + i32.eq + if + i32.const 31 + local.get $0 + i32.clz + i32.sub + i32.const 2 + i32.shr_s + i32.const 1 + i32.add + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $2 + i32.store + local.get $2 + local.set $6 + local.get $0 + local.set $5 + local.get $3 + local.set $4 + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $6 + local.get $5 + i64.extend_i32_u + local.get $4 + call $~lib/util/number/utoa_hex_lut + else + local.get $0 + i64.extend_i32_u + local.get $1 + call $~lib/util/number/ulog_base + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $2 + i32.store + local.get $2 + local.get $0 + i64.extend_i32_u + local.get $3 + local.get $1 + call $~lib/util/number/utoa64_any_core + end end - local.get $1 - i32.const 2 - i32.shl - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.const 0 - call $~lib/rt/itcms/__new - local.tee $3 - i32.store offset=4 - local.get $3 - i32.const 0 - local.get $2 - call $~lib/memory/memory.fill - local.get $0 - local.get $3 - call $~lib/array/Array<~lib/array/Array>#set:buffer - local.get $0 - local.get $3 - call $~lib/array/Array<~lib/array/Array>#set:dataStart - local.get $0 local.get $2 - call $~lib/array/Array<~lib/array/Array>#set:byteLength - local.get $0 - local.get $1 - call $~lib/array/Array<~lib/array/Array>#set:length_ - local.get $0 - local.set $4 + local.set $7 global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $4 + local.get $7 ) - (func $~lib/array/Array<~lib/array/Array>#__get (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) + (func $~lib/util/string/joinIntegerArray (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) + (local $11 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -36160,163 +31154,159 @@ i32.const 0 i32.store local.get $1 - local.get $0 - i32.load offset=12 - i32.ge_u - if - i32.const 320 - i32.const 80 - i32.const 92 - i32.const 42 - call $~lib/builtins/abort - unreachable - end - 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 $2 - i32.store i32.const 1 - drop + i32.sub + local.set $3 + local.get $3 i32.const 0 - i32.eqz - drop - local.get $2 - i32.eqz + i32.lt_s if - i32.const 4672 - i32.const 80 - i32.const 96 - i32.const 40 - call $~lib/builtins/abort - unreachable + i32.const 7728 + local.set $11 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $11 + return end - local.get $2 - local.set $3 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer local.get $3 - ) - (func $~lib/array/Array>#constructor (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 - call $~stack_check - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - local.get $0 i32.eqz if + local.get $0 + i32.load + local.set $4 + i32.const 0 + drop + i32.const 4 + i32.const 4 + i32.le_u + drop + local.get $4 + i32.const 10 + call $~lib/util/number/utoa32 + local.set $11 global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.const 25 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $11 + return end - local.get $0 - i32.const 0 - call $~lib/array/Array>#set:buffer - local.get $0 - i32.const 0 - call $~lib/array/Array>#set:dataStart - local.get $0 + local.get $2 + call $~lib/string/String#get:length + local.set $5 + i32.const 10 + local.get $5 + i32.add + local.get $3 + i32.mul + i32.const 10 + i32.add + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $7 + i32.store i32.const 0 - call $~lib/array/Array>#set:byteLength - local.get $0 + local.set $8 i32.const 0 - call $~lib/array/Array>#set:length_ - local.get $1 - i32.const 1073741820 - i32.const 2 - i32.shr_u - i32.gt_u - if - i32.const 32 - i32.const 80 - i32.const 58 - i32.const 60 - call $~lib/builtins/abort - unreachable + local.set $4 + loop $for-loop|0 + local.get $4 + local.get $3 + i32.lt_s + local.set $10 + local.get $10 + if + local.get $0 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $9 + local.get $8 + local.get $7 + local.get $8 + i32.const 1 + i32.shl + i32.add + local.get $9 + call $~lib/util/number/itoa_buffered + i32.add + local.set $8 + local.get $5 + if + local.get $7 + local.get $8 + i32.const 1 + i32.shl + i32.add + local.get $2 + local.get $5 + i32.const 1 + i32.shl + call $~lib/memory/memory.copy + local.get $8 + local.get $5 + i32.add + local.set $8 + end + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $for-loop|0 + end end - local.get $1 - i32.const 2 - i32.shl - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.const 0 - call $~lib/rt/itcms/__new - local.tee $3 - i32.store offset=4 - local.get $3 - i32.const 0 - local.get $2 - call $~lib/memory/memory.fill local.get $0 local.get $3 - call $~lib/array/Array>#set:buffer - local.get $0 - local.get $3 - call $~lib/array/Array>#set:dataStart - local.get $0 - local.get $2 - call $~lib/array/Array>#set:byteLength - local.get $0 - local.get $1 - call $~lib/array/Array>#set:length_ - local.get $0 - local.set $4 - global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 2 + i32.shl i32.add - global.set $~lib/memory/__stack_pointer - local.get $4 - ) - (func $std/array/Proxy#constructor (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 - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - local.get $0 - i32.eqz + i32.load + local.set $9 + local.get $8 + local.get $7 + local.get $8 + i32.const 1 + i32.shl + i32.add + local.get $9 + call $~lib/util/number/itoa_buffered + i32.add + local.set $8 + local.get $6 + local.get $8 + i32.gt_s if + local.get $7 + i32.const 0 + local.get $8 + call $~lib/string/String#substring + local.set $11 global.get $~lib/memory/__stack_pointer i32.const 4 - i32.const 24 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store + i32.add + global.set $~lib/memory/__stack_pointer + local.get $11 + return end - local.get $0 - local.get $1 - call $std/array/Proxy#set:x - local.get $0 - local.set $2 + local.get $7 + local.set $11 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 + local.get $11 ) - (func $~lib/array/Array>#__get (param $0 i32) (param $1 i32) (result i32) + (func $~lib/util/number/dtoa (param $0 f64) (result i32) + (local $1 i32) (local $2 i32) (local $3 i32) global.get $~lib/memory/__stack_pointer @@ -36327,43 +31317,69 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - local.get $1 local.get $0 - i32.load offset=12 - i32.ge_u + f64.const 0 + f64.eq if - i32.const 320 - i32.const 80 - i32.const 92 - i32.const 42 - call $~lib/builtins/abort - unreachable + i32.const 10288 + 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 - global.get $~lib/memory/__stack_pointer local.get $0 - i32.load offset=4 - local.get $1 - i32.const 2 + local.get $0 + f64.sub + f64.const 0 + f64.eq + i32.eqz + if + local.get $0 + local.get $0 + f64.ne + if + i32.const 10320 + 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 + i32.const 10352 + i32.const 10400 + local.get $0 + f64.const 0 + f64.lt + select + 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 + i32.const 10432 + local.get $0 + call $~lib/util/number/dtoa_core + i32.const 1 i32.shl - i32.add - i32.load + 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 - i32.const 1 - drop - i32.const 0 - i32.eqz - drop local.get $2 - i32.eqz - if - i32.const 4672 - i32.const 80 - i32.const 96 - i32.const 40 - call $~lib/builtins/abort - unreachable - end + i32.const 10432 + local.get $1 + call $~lib/memory/memory.copy local.get $2 local.set $3 global.get $~lib/memory/__stack_pointer @@ -36372,9 +31388,16 @@ global.set $~lib/memory/__stack_pointer local.get $3 ) - (func $~lib/array/Array<~lib/string/String|null>#__get (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) + (func $~lib/util/string/joinFloatArray (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 f64) + (local $9 i32) + (local $10 i32) + (local $11 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -36384,124 +31407,370 @@ i32.const 0 i32.store local.get $1 - local.get $0 - i32.load offset=12 - i32.ge_u + i32.const 1 + i32.sub + local.set $3 + local.get $3 + i32.const 0 + i32.lt_s if - i32.const 320 - i32.const 80 - i32.const 92 - i32.const 42 - call $~lib/builtins/abort - unreachable + i32.const 7728 + local.set $11 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $11 + return + end + local.get $3 + i32.eqz + if + local.get $0 + f64.load + call $~lib/util/number/dtoa + local.set $11 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $11 + return + end + local.get $2 + call $~lib/string/String#get:length + local.set $4 + i32.const 28 + local.get $4 + i32.add + local.get $3 + i32.mul + i32.const 28 + i32.add + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $6 + i32.store + i32.const 0 + local.set $7 + i32.const 0 + local.set $9 + loop $for-loop|0 + local.get $9 + local.get $3 + i32.lt_s + local.set $10 + local.get $10 + if + local.get $0 + local.get $9 + i32.const 3 + i32.shl + i32.add + f64.load + local.set $8 + local.get $7 + local.get $6 + local.get $7 + i32.const 1 + i32.shl + i32.add + local.get $8 + call $~lib/util/number/dtoa_buffered + i32.add + local.set $7 + local.get $4 + if + local.get $6 + local.get $7 + i32.const 1 + i32.shl + i32.add + local.get $2 + local.get $4 + i32.const 1 + i32.shl + call $~lib/memory/memory.copy + local.get $7 + local.get $4 + i32.add + local.set $7 + end + local.get $9 + i32.const 1 + i32.add + local.set $9 + br $for-loop|0 + end end - global.get $~lib/memory/__stack_pointer local.get $0 - i32.load offset=4 - local.get $1 - i32.const 2 + local.get $3 + i32.const 3 i32.shl i32.add - i32.load - local.tee $2 - i32.store - i32.const 1 - drop + f64.load + local.set $8 + local.get $7 + local.get $6 + local.get $7 i32.const 1 - i32.eqz - drop - local.get $2 - local.set $3 + i32.shl + i32.add + local.get $8 + call $~lib/util/number/dtoa_buffered + i32.add + local.set $7 + local.get $5 + local.get $7 + i32.gt_s + if + local.get $6 + i32.const 0 + local.get $7 + call $~lib/string/String#substring + local.set $11 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $11 + return + end + local.get $6 + local.set $11 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $3 + local.get $11 ) - (func $~lib/array/Array<~lib/string/String>#constructor (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) + (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) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 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 - local.get $0 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + local.get $1 + i32.const 1 + i32.sub + local.set $3 + local.get $3 + i32.const 0 + i32.lt_s + if + i32.const 7728 + local.set $12 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $12 + return + end + local.get $3 i32.eqz if global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.const 29 - call $~lib/rt/itcms/__new - local.tee $0 + local.get $0 + i32.load + local.tee $4 i32.store + local.get $4 + if (result i32) + local.get $4 + else + i32.const 7728 + end + local.set $12 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $12 + return end - local.get $0 i32.const 0 - call $~lib/array/Array<~lib/string/String>#set:buffer - local.get $0 + local.set $5 i32.const 0 - call $~lib/array/Array<~lib/string/String>#set:dataStart - local.get $0 + local.set $4 + loop $for-loop|0 + local.get $4 + local.get $1 + i32.lt_s + local.set $7 + local.get $7 + 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 + i32.const 0 + i32.ne + if + local.get $5 + local.get $6 + call $~lib/string/String#get:length + i32.add + local.set $5 + end + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $for-loop|0 + end + end i32.const 0 - call $~lib/array/Array<~lib/string/String>#set:byteLength - local.get $0 + local.set $8 + local.get $2 + call $~lib/string/String#get:length + local.set $9 + global.get $~lib/memory/__stack_pointer + local.get $5 + local.get $9 + local.get $3 + i32.mul + i32.add + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $10 + i32.store offset=8 i32.const 0 - call $~lib/array/Array<~lib/string/String>#set:length_ - local.get $1 - i32.const 1073741820 - i32.const 2 - i32.shr_u - i32.gt_u - if - i32.const 32 - i32.const 80 - i32.const 58 - i32.const 60 - call $~lib/builtins/abort - unreachable + local.set $4 + loop $for-loop|1 + local.get $4 + local.get $3 + i32.lt_s + local.set $7 + local.get $7 + 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 + i32.const 0 + i32.ne + if + local.get $6 + call $~lib/string/String#get:length + local.set $11 + local.get $10 + local.get $8 + i32.const 1 + i32.shl + i32.add + local.get $6 + local.get $11 + i32.const 1 + i32.shl + call $~lib/memory/memory.copy + local.get $8 + local.get $11 + i32.add + local.set $8 + end + local.get $9 + if + local.get $10 + local.get $8 + i32.const 1 + i32.shl + i32.add + local.get $2 + local.get $9 + i32.const 1 + i32.shl + call $~lib/memory/memory.copy + local.get $8 + local.get $9 + i32.add + local.set $8 + end + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $for-loop|1 + end end - local.get $1 + global.get $~lib/memory/__stack_pointer + local.get $0 + local.get $3 i32.const 2 i32.shl - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.const 0 - call $~lib/rt/itcms/__new - local.tee $3 + i32.add + i32.load + local.tee $6 i32.store offset=4 - local.get $3 + local.get $6 i32.const 0 - local.get $2 - call $~lib/memory/memory.fill - local.get $0 - local.get $3 - call $~lib/array/Array<~lib/string/String>#set:buffer - local.get $0 - local.get $3 - call $~lib/array/Array<~lib/string/String>#set:dataStart - local.get $0 - local.get $2 - call $~lib/array/Array<~lib/string/String>#set:byteLength - local.get $0 - local.get $1 - call $~lib/array/Array<~lib/string/String>#set:length_ - local.get $0 - local.set $4 + i32.ne + if + local.get $10 + local.get $8 + i32.const 1 + i32.shl + i32.add + local.get $6 + local.get $6 + call $~lib/string/String#get:length + i32.const 1 + i32.shl + call $~lib/memory/memory.copy + end + local.get $10 + local.set $12 global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $4 + local.get $12 ) - (func $~lib/array/Array<~lib/string/String>#__get (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) + (func $~lib/util/string/joinIntegerArray (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) + (local $11 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -36511,58 +31780,167 @@ i32.const 0 i32.store local.get $1 - local.get $0 - i32.load offset=12 - i32.ge_u + i32.const 1 + i32.sub + local.set $3 + local.get $3 + i32.const 0 + i32.lt_s if - i32.const 320 - i32.const 80 - i32.const 92 - i32.const 42 - call $~lib/builtins/abort - unreachable + i32.const 7728 + local.set $11 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $11 + return + end + local.get $3 + i32.eqz + if + local.get $0 + i32.load8_s + local.set $4 + i32.const 1 + drop + i32.const 1 + i32.const 4 + i32.le_u + drop + local.get $4 + i32.const 10 + call $~lib/util/number/itoa32 + local.set $11 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $11 + return end + local.get $2 + call $~lib/string/String#get:length + local.set $5 + i32.const 11 + local.get $5 + i32.add + local.get $3 + i32.mul + i32.const 11 + i32.add + local.set $6 global.get $~lib/memory/__stack_pointer + local.get $6 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $7 + i32.store + i32.const 0 + local.set $8 + i32.const 0 + local.set $4 + loop $for-loop|0 + local.get $4 + local.get $3 + i32.lt_s + local.set $10 + local.get $10 + if + local.get $0 + local.get $4 + i32.const 0 + i32.shl + i32.add + i32.load8_s + local.set $9 + local.get $8 + local.get $7 + local.get $8 + i32.const 1 + i32.shl + i32.add + local.get $9 + call $~lib/util/number/itoa_buffered + i32.add + local.set $8 + local.get $5 + if + local.get $7 + local.get $8 + i32.const 1 + i32.shl + i32.add + local.get $2 + local.get $5 + i32.const 1 + i32.shl + call $~lib/memory/memory.copy + local.get $8 + local.get $5 + i32.add + local.set $8 + end + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $for-loop|0 + end + end local.get $0 - i32.load offset=4 - local.get $1 - i32.const 2 + local.get $3 + i32.const 0 i32.shl i32.add - i32.load - local.tee $2 - i32.store + i32.load8_s + local.set $9 + local.get $8 + local.get $7 + local.get $8 i32.const 1 - drop - i32.const 0 - i32.eqz - drop - local.get $2 - i32.eqz + i32.shl + i32.add + local.get $9 + call $~lib/util/number/itoa_buffered + i32.add + local.set $8 + local.get $6 + local.get $8 + i32.gt_s if - i32.const 4672 - i32.const 80 - i32.const 96 - i32.const 40 - call $~lib/builtins/abort - unreachable + local.get $7 + i32.const 0 + local.get $8 + call $~lib/string/String#substring + local.set $11 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $11 + return end - local.get $2 - local.set $3 + local.get $7 + local.set $11 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $3 + local.get $11 ) - (func $~lib/util/number/itoa32 (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) + (func $~lib/util/string/joinIntegerArray (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) + (local $11 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -36572,163 +31950,166 @@ i32.const 0 i32.store local.get $1 - i32.const 2 - i32.lt_s - if (result i32) - i32.const 1 - else - local.get $1 - i32.const 36 - i32.gt_s - end + i32.const 1 + i32.sub + local.set $3 + local.get $3 + i32.const 0 + i32.lt_s if - i32.const 8160 - i32.const 8288 - i32.const 373 - i32.const 5 - call $~lib/builtins/abort - unreachable + i32.const 7728 + local.set $11 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $11 + return end - local.get $0 + local.get $3 i32.eqz if - i32.const 8352 - local.set $8 + local.get $0 + i32.load16_u + local.set $4 + i32.const 0 + drop + i32.const 2 + i32.const 4 + i32.le_u + drop + local.get $4 + i32.const 10 + call $~lib/util/number/utoa32 + local.set $11 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $8 + local.get $11 return end - local.get $0 - i32.const 31 - i32.shr_u - local.set $2 local.get $2 - if - i32.const 0 - local.get $0 - i32.sub - local.set $0 - end - local.get $1 + call $~lib/string/String#get:length + local.set $5 i32.const 10 - i32.eq - if - local.get $0 - call $~lib/util/number/decimalCount32 - local.get $2 - i32.add - local.set $4 - global.get $~lib/memory/__stack_pointer + local.get $5 + i32.add + local.get $3 + i32.mul + i32.const 10 + i32.add + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $7 + i32.store + i32.const 0 + local.set $8 + i32.const 0 + local.set $4 + loop $for-loop|0 local.get $4 - i32.const 1 - i32.shl - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $3 - i32.store local.get $3 - local.set $7 - local.get $0 - local.set $6 - local.get $4 - local.set $5 - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $7 - local.get $6 - local.get $5 - call $~lib/util/number/utoa32_dec_lut - else - local.get $1 - i32.const 16 - i32.eq + i32.lt_s + local.set $10 + local.get $10 if - i32.const 31 local.get $0 - i32.clz - i32.sub - i32.const 2 - i32.shr_s - i32.const 1 - i32.add - local.get $2 - i32.add - local.set $4 - global.get $~lib/memory/__stack_pointer local.get $4 i32.const 1 i32.shl - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $3 - i32.store - local.get $3 - local.set $7 - local.get $0 - local.set $6 - local.get $4 - local.set $5 - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $7 - local.get $6 - i64.extend_i32_u - local.get $5 - call $~lib/util/number/utoa_hex_lut - else - local.get $0 - local.set $4 - local.get $4 - i64.extend_i32_u - local.get $1 - call $~lib/util/number/ulog_base - local.get $2 i32.add - local.set $7 - global.get $~lib/memory/__stack_pointer + i32.load16_u + local.set $9 + local.get $8 local.get $7 + local.get $8 i32.const 1 i32.shl - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $3 - i32.store - local.get $3 + i32.add + local.get $9 + call $~lib/util/number/itoa_buffered + i32.add + local.set $8 + local.get $5 + if + local.get $7 + local.get $8 + i32.const 1 + i32.shl + i32.add + local.get $2 + local.get $5 + i32.const 1 + i32.shl + call $~lib/memory/memory.copy + local.get $8 + local.get $5 + i32.add + local.set $8 + end local.get $4 - i64.extend_i32_u - local.get $7 - local.get $1 - call $~lib/util/number/utoa64_any_core + i32.const 1 + i32.add + local.set $4 + br $for-loop|0 end end - local.get $2 - if - local.get $3 - i32.const 45 - i32.store16 - end + local.get $0 local.get $3 + i32.const 1 + i32.shl + i32.add + i32.load16_u + local.set $9 + local.get $8 + local.get $7 + local.get $8 + i32.const 1 + i32.shl + i32.add + local.get $9 + call $~lib/util/number/itoa_buffered + i32.add local.set $8 + local.get $6 + local.get $8 + i32.gt_s + if + local.get $7 + i32.const 0 + local.get $8 + call $~lib/string/String#substring + local.set $11 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $11 + return + end + local.get $7 + local.set $11 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $8 + local.get $11 ) - (func $~lib/util/number/utoa32 (param $0 i32) (param $1 i32) (result i32) + (func $~lib/util/number/utoa64 (param $0 i64) (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 i64) + (local $9 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -36750,68 +32131,106 @@ if i32.const 8160 i32.const 8288 - i32.const 350 + i32.const 401 i32.const 5 call $~lib/builtins/abort unreachable end local.get $0 + i64.const 0 + i64.ne i32.eqz if i32.const 8352 - local.set $7 + local.set $9 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $7 - return - end - local.get $1 - i32.const 10 - i32.eq - if - local.get $0 - call $~lib/util/number/decimalCount32 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.const 1 - i32.shl - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $2 - i32.store - local.get $2 - local.set $6 + local.get $9 + return + end + local.get $1 + i32.const 10 + i32.eq + if local.get $0 - local.set $5 - local.get $3 - local.set $4 - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $6 - local.get $5 - local.get $4 - call $~lib/util/number/utoa32_dec_lut + global.get $~lib/builtins/u32.MAX_VALUE + i64.extend_i32_u + i64.le_u + if + local.get $0 + i32.wrap_i64 + local.set $3 + local.get $3 + call $~lib/util/number/decimalCount32 + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $2 + i32.store + local.get $2 + local.set $7 + local.get $3 + local.set $6 + local.get $4 + local.set $5 + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $7 + local.get $6 + local.get $5 + call $~lib/util/number/utoa32_dec_lut + else + local.get $0 + call $~lib/util/number/decimalCount64High + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $2 + i32.store + local.get $2 + local.set $6 + local.get $0 + local.set $8 + local.get $4 + local.set $5 + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $6 + local.get $8 + local.get $5 + call $~lib/util/number/utoa64_dec_lut + end else local.get $1 i32.const 16 i32.eq if - i32.const 31 + i32.const 63 local.get $0 - i32.clz + i64.clz + i32.wrap_i64 i32.sub i32.const 2 i32.shr_s i32.const 1 i32.add - local.set $3 + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $4 i32.const 1 i32.shl i32.const 1 @@ -36819,28 +32238,26 @@ local.tee $2 i32.store local.get $2 - local.set $6 + local.set $3 local.get $0 - local.set $5 - local.get $3 - local.set $4 + local.set $8 + local.get $4 + local.set $7 i32.const 0 i32.const 1 i32.ge_s drop - local.get $6 - local.get $5 - i64.extend_i32_u - local.get $4 + local.get $3 + local.get $8 + local.get $7 call $~lib/util/number/utoa_hex_lut else local.get $0 - i64.extend_i32_u local.get $1 call $~lib/util/number/ulog_base - local.set $3 + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $4 i32.const 1 i32.shl i32.const 1 @@ -36849,24 +32266,30 @@ i32.store local.get $2 local.get $0 - i64.extend_i32_u - local.get $3 + local.get $4 local.get $1 call $~lib/util/number/utoa64_any_core end end local.get $2 - local.set $7 + local.set $9 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $7 + local.get $9 ) - (func $~lib/util/number/dtoa (param $0 f64) (result i32) - (local $1 i32) - (local $2 i32) + (func $~lib/util/string/joinIntegerArray (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) + (local $4 i64) + (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 4 i32.sub @@ -36875,86 +32298,168 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - local.get $0 - f64.const 0 - f64.eq + local.get $1 + i32.const 1 + i32.sub + local.set $3 + local.get $3 + i32.const 0 + i32.lt_s if - i32.const 10288 - local.set $3 + i32.const 7728 + local.set $12 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $3 + local.get $12 return end - local.get $0 - local.get $0 - f64.sub - f64.const 0 - f64.eq + local.get $3 i32.eqz if local.get $0 - local.get $0 - f64.ne + i64.load + local.set $4 + i32.const 0 + drop + i32.const 8 + i32.const 4 + i32.le_u + drop + local.get $4 + i32.const 10 + call $~lib/util/number/utoa64 + local.set $12 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $12 + return + end + local.get $2 + call $~lib/string/String#get:length + local.set $5 + i32.const 20 + local.get $5 + i32.add + local.get $3 + i32.mul + i32.const 20 + i32.add + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $7 + i32.store + i32.const 0 + local.set $8 + i32.const 0 + local.set $10 + loop $for-loop|0 + local.get $10 + local.get $3 + i32.lt_s + local.set $11 + local.get $11 if - i32.const 10320 - local.set $3 - global.get $~lib/memory/__stack_pointer - i32.const 4 + local.get $0 + local.get $10 + i32.const 3 + i32.shl i32.add - global.set $~lib/memory/__stack_pointer - local.get $3 - return + i64.load + local.set $9 + local.get $8 + local.get $7 + local.get $8 + i32.const 1 + i32.shl + i32.add + local.get $9 + call $~lib/util/number/itoa_buffered + i32.add + local.set $8 + local.get $5 + if + local.get $7 + local.get $8 + i32.const 1 + i32.shl + i32.add + local.get $2 + local.get $5 + i32.const 1 + i32.shl + call $~lib/memory/memory.copy + local.get $8 + local.get $5 + i32.add + local.set $8 + end + local.get $10 + i32.const 1 + i32.add + local.set $10 + br $for-loop|0 end - i32.const 10352 - i32.const 10400 - local.get $0 - f64.const 0 - f64.lt - select - local.set $3 + end + local.get $0 + local.get $3 + i32.const 3 + i32.shl + i32.add + i64.load + local.set $9 + local.get $8 + local.get $7 + local.get $8 + i32.const 1 + i32.shl + i32.add + local.get $9 + call $~lib/util/number/itoa_buffered + i32.add + local.set $8 + local.get $6 + local.get $8 + i32.gt_s + if + local.get $7 + i32.const 0 + local.get $8 + call $~lib/string/String#substring + local.set $12 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $3 + local.get $12 return end - i32.const 10432 - 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 - local.get $2 - i32.const 10432 - local.get $1 - call $~lib/memory/memory.copy - local.get $2 - local.set $3 + local.get $7 + local.set $12 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $3 + local.get $12 ) - (func $~lib/util/number/utoa64 (param $0 i64) (param $1 i32) (result i32) + (func $~lib/util/number/itoa64 (param $0 i64) (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 i64) - (local $9 i32) + (local $8 i32) + (local $9 i64) + (local $10 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -36976,7 +32481,7 @@ if i32.const 8160 i32.const 8288 - i32.const 401 + i32.const 431 i32.const 5 call $~lib/builtins/abort unreachable @@ -36987,14 +32492,26 @@ i32.eqz if i32.const 8352 - local.set $9 + local.set $10 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $9 + local.get $10 return end + local.get $0 + i64.const 63 + i64.shr_u + i32.wrap_i64 + local.set $2 + local.get $2 + if + i64.const 0 + local.get $0 + i64.sub + local.set $0 + end local.get $1 i32.const 10 i32.eq @@ -37006,57 +32523,61 @@ if local.get $0 i32.wrap_i64 - local.set $3 - local.get $3 - call $~lib/util/number/decimalCount32 local.set $4 - global.get $~lib/memory/__stack_pointer local.get $4 + call $~lib/util/number/decimalCount32 + local.get $2 + i32.add + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 i32.const 1 i32.shl i32.const 1 call $~lib/rt/itcms/__new - local.tee $2 + local.tee $3 i32.store - local.get $2 - local.set $7 local.get $3 - local.set $6 + local.set $8 local.get $4 - local.set $5 + local.set $7 + local.get $5 + local.set $6 i32.const 0 i32.const 1 i32.ge_s drop + local.get $8 local.get $7 local.get $6 - local.get $5 call $~lib/util/number/utoa32_dec_lut else local.get $0 call $~lib/util/number/decimalCount64High - local.set $4 + local.get $2 + i32.add + local.set $5 global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $5 i32.const 1 i32.shl i32.const 1 call $~lib/rt/itcms/__new - local.tee $2 + local.tee $3 i32.store - local.get $2 - local.set $6 + local.get $3 + local.set $7 local.get $0 - local.set $8 - local.get $4 - local.set $5 + local.set $9 + local.get $5 + local.set $6 i32.const 0 i32.const 1 i32.ge_s drop + local.get $7 + local.get $9 local.get $6 - local.get $8 - local.get $5 call $~lib/util/number/utoa64_dec_lut end else @@ -37073,67 +32594,250 @@ i32.shr_s i32.const 1 i32.add - local.set $4 + local.get $2 + i32.add + local.set $5 global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $5 i32.const 1 i32.shl i32.const 1 call $~lib/rt/itcms/__new - local.tee $2 + local.tee $3 i32.store + local.get $3 + local.set $4 + local.get $0 + local.set $9 + local.get $5 + local.set $8 + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $4 + local.get $9 + local.get $8 + call $~lib/util/number/utoa_hex_lut + else + local.get $0 + local.get $1 + call $~lib/util/number/ulog_base local.get $2 - local.set $3 + i32.add + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $3 + i32.store + local.get $3 + local.get $0 + local.get $5 + local.get $1 + call $~lib/util/number/utoa64_any_core + end + end + local.get $2 + if + local.get $3 + i32.const 45 + i32.store16 + end + local.get $3 + local.set $10 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $10 + ) + (func $~lib/util/string/joinIntegerArray (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i64) + (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 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 $1 + i32.const 1 + i32.sub + local.set $3 + local.get $3 + i32.const 0 + i32.lt_s + if + i32.const 7728 + local.set $12 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $12 + return + end + local.get $3 + i32.eqz + if + local.get $0 + i64.load + local.set $4 + i32.const 1 + drop + i32.const 8 + i32.const 4 + i32.le_u + drop + local.get $4 + i32.wrap_i64 + i64.extend_i32_s + i32.const 10 + call $~lib/util/number/itoa64 + local.set $12 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $12 + return + end + local.get $2 + call $~lib/string/String#get:length + local.set $5 + i32.const 21 + local.get $5 + i32.add + local.get $3 + i32.mul + i32.const 21 + i32.add + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $7 + i32.store + i32.const 0 + local.set $8 + i32.const 0 + local.set $10 + loop $for-loop|0 + local.get $10 + local.get $3 + i32.lt_s + local.set $11 + local.get $11 + if local.get $0 - local.set $8 - local.get $4 - local.set $7 - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $3 + local.get $10 + i32.const 3 + i32.shl + i32.add + i64.load + local.set $9 local.get $8 local.get $7 - call $~lib/util/number/utoa_hex_lut - else - local.get $0 - local.get $1 - call $~lib/util/number/ulog_base - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $8 i32.const 1 i32.shl + i32.add + local.get $9 + call $~lib/util/number/itoa_buffered + i32.add + local.set $8 + local.get $5 + if + local.get $7 + local.get $8 + i32.const 1 + i32.shl + i32.add + local.get $2 + local.get $5 + i32.const 1 + i32.shl + call $~lib/memory/memory.copy + local.get $8 + local.get $5 + i32.add + local.set $8 + end + local.get $10 i32.const 1 - call $~lib/rt/itcms/__new - local.tee $2 - i32.store - local.get $2 - local.get $0 - local.get $4 - local.get $1 - call $~lib/util/number/utoa64_any_core + i32.add + local.set $10 + br $for-loop|0 end end - local.get $2 + local.get $0 + local.get $3 + i32.const 3 + i32.shl + i32.add + i64.load local.set $9 + local.get $8 + local.get $7 + local.get $8 + i32.const 1 + i32.shl + i32.add + local.get $9 + call $~lib/util/number/itoa_buffered + i32.add + local.set $8 + local.get $6 + local.get $8 + i32.gt_s + if + local.get $7 + i32.const 0 + local.get $8 + call $~lib/string/String#substring + local.set $12 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $12 + return + end + local.get $7 + local.set $12 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $9 + local.get $12 ) - (func $~lib/util/number/itoa64 (param $0 i64) (param $1 i32) (result i32) - (local $2 i32) + (func $~lib/util/string/joinIntegerArray (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 i64) + (local $9 i32) (local $10 i32) + (local $11 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -37143,191 +32847,156 @@ i32.const 0 i32.store local.get $1 - i32.const 2 + i32.const 1 + i32.sub + local.set $3 + local.get $3 + i32.const 0 i32.lt_s - if (result i32) - i32.const 1 - else - local.get $1 - i32.const 36 - i32.gt_s - end if - i32.const 8160 - i32.const 8288 - i32.const 431 - i32.const 5 - call $~lib/builtins/abort - unreachable + i32.const 7728 + local.set $11 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $11 + return end - local.get $0 - i64.const 0 - i64.ne + local.get $3 i32.eqz if - i32.const 8352 - local.set $10 + local.get $0 + i32.load8_u + local.set $4 + i32.const 0 + drop + i32.const 1 + i32.const 4 + i32.le_u + drop + local.get $4 + i32.const 10 + call $~lib/util/number/utoa32 + local.set $11 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $10 + local.get $11 return end - local.get $0 - i64.const 63 - i64.shr_u - i32.wrap_i64 - local.set $2 local.get $2 - if - i64.const 0 - local.get $0 - i64.sub - local.set $0 - end - local.get $1 + call $~lib/string/String#get:length + local.set $5 i32.const 10 - i32.eq - if - local.get $0 - global.get $~lib/builtins/u32.MAX_VALUE - i64.extend_i32_u - i64.le_u - if - local.get $0 - i32.wrap_i64 - local.set $4 - local.get $4 - call $~lib/util/number/decimalCount32 - local.get $2 - i32.add - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.const 1 - i32.shl - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $3 - i32.store - local.get $3 - local.set $8 - local.get $4 - local.set $7 - local.get $5 - local.set $6 - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $8 - local.get $7 - local.get $6 - call $~lib/util/number/utoa32_dec_lut - else - local.get $0 - call $~lib/util/number/decimalCount64High - local.get $2 - i32.add - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.const 1 - i32.shl - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $3 - i32.store - local.get $3 - local.set $7 - local.get $0 - local.set $9 - local.get $5 - local.set $6 - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $7 - local.get $9 - local.get $6 - call $~lib/util/number/utoa64_dec_lut - end - else - local.get $1 - i32.const 16 - i32.eq + local.get $5 + i32.add + local.get $3 + i32.mul + i32.const 10 + i32.add + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $7 + i32.store + i32.const 0 + local.set $8 + i32.const 0 + local.set $4 + loop $for-loop|0 + local.get $4 + local.get $3 + i32.lt_s + local.set $10 + local.get $10 if - 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.get $2 - i32.add - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.const 1 + local.get $4 + i32.const 0 i32.shl - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $3 - i32.store - local.get $3 - local.set $4 - local.get $0 + i32.add + i32.load8_u local.set $9 - local.get $5 - local.set $8 - i32.const 0 + local.get $8 + local.get $7 + local.get $8 i32.const 1 - i32.ge_s - drop - local.get $4 + i32.shl + i32.add local.get $9 - local.get $8 - call $~lib/util/number/utoa_hex_lut - else - local.get $0 - local.get $1 - call $~lib/util/number/ulog_base - local.get $2 + call $~lib/util/number/itoa_buffered i32.add - local.set $5 - global.get $~lib/memory/__stack_pointer + local.set $8 local.get $5 + if + local.get $7 + local.get $8 + i32.const 1 + i32.shl + i32.add + local.get $2 + local.get $5 + i32.const 1 + i32.shl + call $~lib/memory/memory.copy + local.get $8 + local.get $5 + i32.add + local.set $8 + end + local.get $4 i32.const 1 - i32.shl - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $3 - i32.store - local.get $3 - local.get $0 - local.get $5 - local.get $1 - call $~lib/util/number/utoa64_any_core + i32.add + local.set $4 + br $for-loop|0 end end - local.get $2 + local.get $0 + local.get $3 + i32.const 0 + i32.shl + i32.add + i32.load8_u + local.set $9 + local.get $8 + local.get $7 + local.get $8 + i32.const 1 + i32.shl + i32.add + local.get $9 + call $~lib/util/number/itoa_buffered + i32.add + local.set $8 + local.get $6 + local.get $8 + i32.gt_s if - local.get $3 - i32.const 45 - i32.store16 + local.get $7 + i32.const 0 + local.get $8 + call $~lib/string/String#substring + local.set $11 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $11 + return end - local.get $3 - local.set $10 + local.get $7 + local.set $11 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $10 + local.get $11 ) (func $~lib/array/Array<~lib/array/Array>#flat (param $0 i32) (result i32) (local $1 i32) @@ -37749,6 +33418,40 @@ global.set $~lib/memory/__stack_pointer local.get $4 ) + (func $std/array/ArrayU32#constructor (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 + call $~stack_check + 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 16 + i32.const 40 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + global.get $~lib/memory/__stack_pointer + local.get $0 + local.get $1 + call $~lib/array/Array#constructor + local.tee $0 + i32.store + 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 $2 + ) (func $~lib/array/Array#concat (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) @@ -37805,32 +33508,112 @@ i32.load offset=4 local.set $6 local.get $2 - i32.const 2 - i32.shl + i32.const 2 + i32.shl + local.set $7 + i32.const 0 + drop + local.get $6 + local.get $0 + i32.load offset=4 + local.get $7 + call $~lib/memory/memory.copy + local.get $6 + local.get $7 + i32.add + local.get $1 + i32.load offset=4 + local.get $3 + i32.const 2 + i32.shl + call $~lib/memory/memory.copy + local.get $5 + local.set $8 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $8 + ) + (func $~lib/array/Array#filter (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 + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 2 + i32.const 7 + i32.const 0 + call $~lib/rt/__newArray + local.tee $2 + i32.store + i32.const 0 + local.set $3 + local.get $0 + i32.load offset=12 + local.set $4 + loop $for-loop|0 + local.get $3 + local.get $4 + local.tee $5 + local.get $0 + i32.load offset=12 + local.tee $6 + local.get $5 + local.get $6 + i32.lt_s + select + i32.lt_s + local.set $5 + local.get $5 + if + local.get $0 + i32.load offset=4 + local.get $3 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $6 + local.get $6 + local.get $3 + local.get $0 + i32.const 3 + global.set $~argumentsLength + local.get $1 + i32.load + call_indirect (type $i32_i32_i32_=>_i32) + if + local.get $2 + local.get $6 + call $~lib/array/Array#push + drop + end + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $for-loop|0 + end + end + local.get $2 local.set $7 - i32.const 0 - drop - local.get $6 - local.get $0 - i32.load offset=4 - local.get $7 - call $~lib/memory/memory.copy - local.get $6 - local.get $7 - i32.add - local.get $1 - i32.load offset=4 - local.get $3 - i32.const 2 - i32.shl - call $~lib/memory/memory.copy - local.get $5 - local.set $8 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $8 + local.get $7 ) (func $~lib/array/Array#slice (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) @@ -38151,6 +33934,40 @@ global.set $~lib/memory/__stack_pointer local.get $4 ) + (func $std/array/ArrayU8#constructor (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 + call $~stack_check + 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 16 + i32.const 41 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + global.get $~lib/memory/__stack_pointer + local.get $0 + local.get $1 + call $~lib/array/Array#constructor + local.tee $0 + i32.store + 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 $2 + ) (func $~lib/array/Array#concat (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) @@ -38234,6 +34051,86 @@ global.set $~lib/memory/__stack_pointer local.get $8 ) + (func $~lib/array/Array#filter (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 + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 0 + i32.const 6 + i32.const 0 + call $~lib/rt/__newArray + local.tee $2 + i32.store + i32.const 0 + local.set $3 + local.get $0 + i32.load offset=12 + local.set $4 + loop $for-loop|0 + local.get $3 + local.get $4 + local.tee $5 + local.get $0 + i32.load offset=12 + local.tee $6 + local.get $5 + local.get $6 + i32.lt_s + select + i32.lt_s + local.set $5 + local.get $5 + if + local.get $0 + i32.load offset=4 + local.get $3 + i32.const 0 + i32.shl + i32.add + i32.load8_u + local.set $6 + local.get $6 + local.get $3 + local.get $0 + i32.const 3 + global.set $~argumentsLength + local.get $1 + i32.load + call_indirect (type $i32_i32_i32_=>_i32) + if + local.get $2 + local.get $6 + call $~lib/array/Array#push + drop + end + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $for-loop|0 + end + end + local.get $2 + local.set $7 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $7 + ) (func $~lib/array/Array#slice (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) @@ -38472,6 +34369,40 @@ global.set $~lib/memory/__stack_pointer local.get $11 ) + (func $std/array/ArrayStr#constructor (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 + call $~stack_check + 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 16 + i32.const 42 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + global.get $~lib/memory/__stack_pointer + local.get $0 + local.get $1 + call $~lib/array/Array<~lib/string/String>#constructor + local.tee $0 + i32.store + 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 $2 + ) (func $~lib/array/Array<~lib/string/String>#at (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) @@ -38739,6 +34670,88 @@ global.set $~lib/memory/__stack_pointer local.get $3 ) + (func $~lib/array/Array<~lib/string/String>#filter (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 + 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 2 + i32.const 29 + i32.const 0 + call $~lib/rt/__newArray + local.tee $2 + i32.store + i32.const 0 + local.set $3 + local.get $0 + i32.load offset=12 + local.set $4 + loop $for-loop|0 + local.get $3 + local.get $4 + local.tee $5 + local.get $0 + i32.load offset=12 + local.tee $6 + local.get $5 + local.get $6 + i32.lt_s + select + i32.lt_s + local.set $5 + local.get $5 + if + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.load offset=4 + local.get $3 + i32.const 2 + i32.shl + i32.add + i32.load + local.tee $6 + i32.store offset=4 + local.get $6 + local.get $3 + local.get $0 + i32.const 3 + global.set $~argumentsLength + local.get $1 + i32.load + call_indirect (type $i32_i32_i32_=>_i32) + if + local.get $2 + local.get $6 + call $~lib/array/Array<~lib/string/String>#push + drop + end + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $for-loop|0 + end + end + local.get $2 + local.set $7 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $7 + ) (func $~lib/array/Array<~lib/string/String>#shift (param $0 i32) (result i32) (local $1 i32) (local $2 i32) diff --git a/tests/compiler/std/arraybuffer.optimized.wat b/tests/compiler/std/arraybuffer.optimized.wat index 7d9dcc18ce..1aac0119d1 100644 --- a/tests/compiler/std/arraybuffer.optimized.wat +++ b/tests/compiler/std/arraybuffer.optimized.wat @@ -42,7 +42,6 @@ (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 $~argumentsLength (mut i32) (i32.const 0)) (global $~lib/memory/__stack_pointer (mut i32) (i32.const 18228)) (export "memory" (memory $0)) (start $~start) @@ -2030,93 +2029,6 @@ unreachable end ) - (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 - call $~stack_check - 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 $3 - i32.const 0 - call $~lib/rt/itcms/__new - local.tee $2 - i32.store offset=4 - local.get $2 - local.get $0 - local.get $1 - i32.add - local.get $3 - call $~lib/memory/memory.copy - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $2 - ) (func $start:std/arraybuffer (local $0 i32) (local $1 i32) @@ -2168,9 +2080,6 @@ 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 20 i32.sub @@ -2187,16 +2096,10 @@ end global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 i32.const 0 i32.const 1073741820 call $~lib/arraybuffer/ArrayBuffer#slice local.tee $1 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $1 i32.store offset=4 local.get $1 i32.const 20 @@ -2225,16 +2128,10 @@ end global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 i32.const 1 i32.const 1073741820 call $~lib/arraybuffer/ArrayBuffer#slice local.tee $1 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $1 i32.store offset=4 local.get $1 i32.const 20 @@ -2252,16 +2149,10 @@ end global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 i32.const -1 i32.const 1073741820 call $~lib/arraybuffer/ArrayBuffer#slice local.tee $1 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $1 i32.store offset=4 local.get $1 i32.const 20 @@ -2279,16 +2170,10 @@ end global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 i32.const 1 i32.const 3 call $~lib/arraybuffer/ArrayBuffer#slice local.tee $1 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $1 i32.store offset=4 local.get $1 i32.const 20 @@ -2306,16 +2191,10 @@ end global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 i32.const 1 i32.const -1 call $~lib/arraybuffer/ArrayBuffer#slice local.tee $1 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $1 i32.store offset=4 local.get $1 i32.const 20 @@ -2333,16 +2212,10 @@ end global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 i32.const -3 i32.const -1 call $~lib/arraybuffer/ArrayBuffer#slice local.tee $1 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $1 i32.store offset=4 local.get $1 i32.const 20 @@ -2360,16 +2233,10 @@ end global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 i32.const -4 i32.const 42 call $~lib/arraybuffer/ArrayBuffer#slice local.tee $1 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $1 i32.store offset=4 local.get $1 i32.const 20 @@ -2387,16 +2254,10 @@ end global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 i32.const 42 i32.const 1073741820 call $~lib/arraybuffer/ArrayBuffer#slice local.tee $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 i32.store offset=4 local.get $0 i32.const 20 @@ -2422,34 +2283,31 @@ end global.get $~lib/memory/__stack_pointer 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 global.get $~lib/memory/__stack_pointer i32.const 12 i32.const 5 call $~lib/rt/itcms/__new - local.tee $0 + local.tee $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 + local.get $1 i32.const 0 call $~lib/arraybuffer/ArrayBufferView#constructor local.tee $2 i32.store global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer local.get $2 - i32.store offset=12 + i32.store offset=8 global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -2492,18 +2350,15 @@ 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 $2 - i32.store offset=4 + i32.store offset=12 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 global.get $~lib/memory/__stack_pointer i32.const 12 i32.const 9 @@ -2512,29 +2367,27 @@ 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.const 2 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 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=4 + i32.store offset=12 global.get $~lib/memory/__stack_pointer local.get $2 i32.load - local.tee $0 + local.tee $1 i32.store offset=16 - i32.const 1 - global.set $~argumentsLength - i32.const 0 - local.set $1 + local.get $1 + i32.const 20 + i32.sub + i32.load offset=16 + local.set $2 global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -2543,58 +2396,28 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - block $2of2 - block $1of2 - block $outOfRange - global.get $~argumentsLength - i32.const 1 - i32.sub - br_table $1of2 $1of2 $2of2 $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 - local.set $1 - end - 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 global.get $~lib/memory/__stack_pointer i32.const 12 i32.const 15 call $~lib/rt/itcms/__new - local.tee $2 + local.tee $0 i32.store - local.get $2 + local.get $0 i32.const 0 call $~lib/arraybuffer/ArrayBufferView#set:buffer - local.get $2 + local.get $0 i32.const 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 $0 - i32.store offset=4 + local.get $2 local.get $1 - local.get $0 i32.const 20 i32.sub i32.load offset=16 i32.gt_u - local.get $1 + local.get $2 i32.const 1073741820 i32.gt_u i32.or @@ -2606,26 +2429,22 @@ call $~lib/builtins/abort unreachable end - local.get $2 local.get $0 + local.get $1 call $~lib/arraybuffer/ArrayBufferView#set:buffer - local.get $2 local.get $0 + local.get $1 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 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 global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 + local.get $0 + i32.store offset=12 i32.const 18228 global.set $~lib/memory/__stack_pointer global.get $~lib/rt/itcms/state @@ -2666,6 +2485,90 @@ i32.add global.set $~lib/memory/__stack_pointer ) + (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 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 $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 $3 + i32.const 0 + call $~lib/rt/itcms/__new + local.tee $2 + i32.store + local.get $2 + local.get $0 + local.get $1 + i32.add + local.get $3 + call $~lib/memory/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/ArrayBufferView#constructor (param $0 i32) (param $1 i32) (result i32) (local $2 i32) global.get $~lib/memory/__stack_pointer diff --git a/tests/compiler/std/arraybuffer.untouched.wat b/tests/compiler/std/arraybuffer.untouched.wat index e7a1629609..ab88771616 100644 --- a/tests/compiler/std/arraybuffer.untouched.wat +++ b/tests/compiler/std/arraybuffer.untouched.wat @@ -3939,6 +3939,31 @@ local.get $1 i32.store offset=8 ) + (func $~lib/dataview/DataView#constructor@varargs (param $0 i32) (param $1 i32) (param $2 i32) (param $3 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 0 + local.set $2 + end + local.get $1 + call $~lib/arraybuffer/ArrayBuffer#get:byteLength + local.set $3 + end + local.get $0 + local.get $1 + local.get $2 + local.get $3 + call $~lib/dataview/DataView#constructor + ) (func $~lib/arraybuffer/ArrayBuffer.isView<~lib/dataview/DataView> (param $0 i32) (result i32) i32.const 0 drop @@ -4242,309 +4267,6 @@ unreachable end ) - (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 $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 - call $~stack_check - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - local.get $0 - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store - local.get $8 - call $~lib/arraybuffer/ArrayBuffer#get:byteLength - local.set $3 - local.get $1 - i32.const 0 - i32.lt_s - if (result i32) - local.get $3 - local.get $1 - i32.add - local.tee $4 - i32.const 0 - local.tee $5 - local.get $4 - local.get $5 - i32.gt_s - select - else - local.get $1 - local.tee $5 - local.get $3 - local.tee $4 - local.get $5 - local.get $4 - i32.lt_s - select - end - local.set $1 - local.get $2 - i32.const 0 - i32.lt_s - if (result i32) - local.get $3 - local.get $2 - i32.add - local.tee $4 - i32.const 0 - local.tee $5 - local.get $4 - local.get $5 - i32.gt_s - select - else - local.get $2 - local.tee $5 - local.get $3 - local.tee $4 - local.get $5 - local.get $4 - i32.lt_s - select - end - local.set $2 - local.get $2 - local.get $1 - i32.sub - local.tee $4 - i32.const 0 - local.tee $5 - local.get $4 - local.get $5 - i32.gt_s - select - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.const 0 - call $~lib/rt/itcms/__new - local.tee $7 - i32.store offset=4 - local.get $7 - local.get $0 - local.get $1 - i32.add - local.get $6 - call $~lib/memory/memory.copy - local.get $7 - local.set $8 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $8 - ) - (func $~lib/typedarray/Uint8Array#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 - call $~stack_check - 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 12 - i32.const 5 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - end - global.get $~lib/memory/__stack_pointer - local.get $0 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - local.get $1 - i32.const 0 - call $~lib/arraybuffer/ArrayBufferView#constructor - local.tee $0 - i32.store - local.get $0 - local.set $2 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $2 - ) - (func $~lib/typedarray/Int32Array#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 - call $~stack_check - 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 12 - i32.const 9 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - end - global.get $~lib/memory/__stack_pointer - local.get $0 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - local.get $1 - i32.const 2 - call $~lib/arraybuffer/ArrayBufferView#constructor - local.tee $0 - i32.store - local.get $0 - local.set $2 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $2 - ) - (func $~lib/dataview/DataView#constructor (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 - global.set $~lib/memory/__stack_pointer - call $~stack_check - 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 12 - i32.const 15 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - end - local.get $0 - i32.const 0 - call $~lib/dataview/DataView#set:buffer - local.get $0 - i32.const 0 - call $~lib/dataview/DataView#set:dataStart - local.get $0 - i32.const 0 - call $~lib/dataview/DataView#set:byteLength - local.get $3 - i32.const 1073741820 - i32.gt_u - local.get $2 - local.get $3 - i32.add - local.get $1 - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - call $~lib/arraybuffer/ArrayBuffer#get:byteLength - i32.gt_u - i32.or - if - i32.const 32 - i32.const 640 - i32.const 25 - i32.const 7 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.get $1 - call $~lib/dataview/DataView#set:buffer - local.get $1 - local.get $2 - i32.add - local.set $4 - local.get $0 - local.get $4 - call $~lib/dataview/DataView#set:dataStart - local.get $0 - local.get $3 - call $~lib/dataview/DataView#set:byteLength - local.get $0 - 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/dataview/DataView#constructor@varargs (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 4 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - 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 - local.get $1 - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store - local.get $4 - call $~lib/arraybuffer/ArrayBuffer#get:byteLength - local.set $3 - end - local.get $0 - local.get $1 - local.get $2 - local.get $3 - call $~lib/dataview/DataView#constructor - local.set $4 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $4 - ) (func $start:std/arraybuffer (local $0 i32) (local $1 i32) @@ -4582,11 +4304,6 @@ local.tee $0 i32.store local.get $0 - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 call $~lib/arraybuffer/ArrayBuffer#get:byteLength i32.const 8 i32.eq @@ -4601,22 +4318,12 @@ end global.get $~lib/memory/__stack_pointer local.get $0 - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 i32.const 0 i32.const 1073741820 call $~lib/arraybuffer/ArrayBuffer#slice local.tee $1 - i32.store offset=8 - local.get $1 - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 i32.store offset=4 - local.get $5 + local.get $1 call $~lib/arraybuffer/ArrayBuffer#get:byteLength i32.const 8 i32.eq @@ -4643,22 +4350,12 @@ end global.get $~lib/memory/__stack_pointer local.get $0 - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 i32.const 1 i32.const 1073741820 call $~lib/arraybuffer/ArrayBuffer#slice local.tee $1 - i32.store offset=8 - local.get $1 - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 i32.store offset=4 - local.get $5 + local.get $1 call $~lib/arraybuffer/ArrayBuffer#get:byteLength i32.const 7 i32.eq @@ -4673,22 +4370,12 @@ end global.get $~lib/memory/__stack_pointer local.get $0 - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 i32.const -1 i32.const 1073741820 call $~lib/arraybuffer/ArrayBuffer#slice local.tee $1 - i32.store offset=8 - local.get $1 - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 i32.store offset=4 - local.get $5 + local.get $1 call $~lib/arraybuffer/ArrayBuffer#get:byteLength i32.const 1 i32.eq @@ -4703,22 +4390,12 @@ end global.get $~lib/memory/__stack_pointer local.get $0 - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 i32.const 1 i32.const 3 call $~lib/arraybuffer/ArrayBuffer#slice local.tee $1 - i32.store offset=8 - local.get $1 - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 i32.store offset=4 - local.get $5 + local.get $1 call $~lib/arraybuffer/ArrayBuffer#get:byteLength i32.const 2 i32.eq @@ -4733,22 +4410,12 @@ end global.get $~lib/memory/__stack_pointer local.get $0 - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 i32.const 1 i32.const -1 call $~lib/arraybuffer/ArrayBuffer#slice local.tee $1 - i32.store offset=8 - local.get $1 - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 i32.store offset=4 - local.get $5 + local.get $1 call $~lib/arraybuffer/ArrayBuffer#get:byteLength i32.const 6 i32.eq @@ -4763,22 +4430,12 @@ end global.get $~lib/memory/__stack_pointer local.get $0 - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 i32.const -3 i32.const -1 call $~lib/arraybuffer/ArrayBuffer#slice local.tee $1 - i32.store offset=8 - local.get $1 - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 i32.store offset=4 - local.get $5 + local.get $1 call $~lib/arraybuffer/ArrayBuffer#get:byteLength i32.const 2 i32.eq @@ -4793,22 +4450,12 @@ end global.get $~lib/memory/__stack_pointer local.get $0 - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 i32.const -4 i32.const 42 call $~lib/arraybuffer/ArrayBuffer#slice local.tee $1 - i32.store offset=8 - local.get $1 - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 i32.store offset=4 - local.get $5 + local.get $1 call $~lib/arraybuffer/ArrayBuffer#get:byteLength i32.const 4 i32.eq @@ -4823,22 +4470,12 @@ end global.get $~lib/memory/__stack_pointer local.get $0 - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 i32.const 42 - i32.const 1073741820 - call $~lib/arraybuffer/ArrayBuffer#slice - local.tee $1 - i32.store offset=8 - local.get $1 - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 + i32.const 1073741820 + call $~lib/arraybuffer/ArrayBuffer#slice + local.tee $1 i32.store offset=4 - local.get $5 + local.get $1 call $~lib/arraybuffer/ArrayBuffer#get:byteLength i32.const 0 i32.eq @@ -4940,7 +4577,7 @@ i32.const 1 call $~lib/typedarray/Uint8Array#constructor local.tee $2 - i32.store offset=12 + i32.store offset=8 i32.const 2 i32.const 2 i32.const 3 @@ -4949,7 +4586,7 @@ local.set $5 global.get $~lib/memory/__stack_pointer local.get $5 - i32.store offset=4 + i32.store offset=12 local.get $5 call $~lib/arraybuffer/ArrayBuffer.isView<~lib/array/Array> i32.eqz @@ -4963,11 +4600,6 @@ unreachable end local.get $2 - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 call $~lib/arraybuffer/ArrayBuffer.isView<~lib/typedarray/Uint8Array> i32.eqz if @@ -4984,7 +4616,7 @@ local.set $5 global.get $~lib/memory/__stack_pointer local.get $5 - i32.store offset=4 + i32.store offset=12 local.get $5 call $~lib/arraybuffer/ArrayBuffer.isView<~lib/typedarray/Int32Array> i32.eqz @@ -5012,7 +4644,7 @@ local.set $5 global.get $~lib/memory/__stack_pointer local.get $5 - i32.store offset=4 + i32.store offset=12 local.get $5 call $~lib/arraybuffer/ArrayBuffer.isView<~lib/dataview/DataView> i32.eqz @@ -5072,6 +4704,105 @@ global.set $~lib/memory/__stack_pointer local.get $3 ) + (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 $6 i32) + (local $7 i32) + (local $8 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 $0 + call $~lib/arraybuffer/ArrayBuffer#get:byteLength + local.set $3 + local.get $1 + i32.const 0 + i32.lt_s + if (result i32) + local.get $3 + local.get $1 + i32.add + local.tee $4 + i32.const 0 + local.tee $5 + local.get $4 + local.get $5 + i32.gt_s + select + else + local.get $1 + local.tee $5 + local.get $3 + local.tee $4 + local.get $5 + local.get $4 + i32.lt_s + select + end + local.set $1 + local.get $2 + i32.const 0 + i32.lt_s + if (result i32) + local.get $3 + local.get $2 + i32.add + local.tee $4 + i32.const 0 + local.tee $5 + local.get $4 + local.get $5 + i32.gt_s + select + else + local.get $2 + local.tee $5 + local.get $3 + local.tee $4 + local.get $5 + local.get $4 + i32.lt_s + select + end + local.set $2 + local.get $2 + local.get $1 + i32.sub + local.tee $4 + i32.const 0 + local.tee $5 + local.get $4 + local.get $5 + i32.gt_s + select + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.const 0 + call $~lib/rt/itcms/__new + local.tee $7 + i32.store + local.get $7 + local.get $0 + local.get $1 + i32.add + local.get $6 + call $~lib/memory/memory.copy + local.get $7 + local.set $8 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $8 + ) (func $~lib/arraybuffer/ArrayBufferView#constructor (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) @@ -5145,6 +4876,41 @@ global.set $~lib/memory/__stack_pointer local.get $4 ) + (func $~lib/typedarray/Uint8Array#constructor (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 + call $~stack_check + 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 12 + i32.const 5 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + global.get $~lib/memory/__stack_pointer + local.get $0 + local.get $1 + i32.const 0 + call $~lib/arraybuffer/ArrayBufferView#constructor + local.tee $0 + i32.store + 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 $2 + ) (func $~lib/rt/__newArray (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) (local $4 i32) (local $5 i32) @@ -5197,4 +4963,108 @@ global.set $~lib/memory/__stack_pointer local.get $7 ) + (func $~lib/typedarray/Int32Array#constructor (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 + call $~stack_check + 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 12 + i32.const 9 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + global.get $~lib/memory/__stack_pointer + local.get $0 + local.get $1 + i32.const 2 + call $~lib/arraybuffer/ArrayBufferView#constructor + local.tee $0 + i32.store + 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 $2 + ) + (func $~lib/dataview/DataView#constructor (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 + call $~stack_check + 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 12 + i32.const 15 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + local.get $0 + i32.const 0 + call $~lib/dataview/DataView#set:buffer + local.get $0 + i32.const 0 + call $~lib/dataview/DataView#set:dataStart + local.get $0 + i32.const 0 + call $~lib/dataview/DataView#set:byteLength + local.get $3 + i32.const 1073741820 + i32.gt_u + local.get $2 + local.get $3 + i32.add + local.get $1 + call $~lib/arraybuffer/ArrayBuffer#get:byteLength + i32.gt_u + i32.or + if + i32.const 32 + i32.const 640 + i32.const 25 + i32.const 7 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $1 + call $~lib/dataview/DataView#set:buffer + local.get $1 + local.get $2 + i32.add + local.set $4 + local.get $0 + local.get $4 + call $~lib/dataview/DataView#set:dataStart + local.get $0 + local.get $3 + call $~lib/dataview/DataView#set:byteLength + local.get $0 + local.set $5 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $5 + ) ) diff --git a/tests/compiler/std/dataview.optimized.wat b/tests/compiler/std/dataview.optimized.wat index eedea45d77..e14f23c473 100644 --- a/tests/compiler/std/dataview.optimized.wat +++ b/tests/compiler/std/dataview.optimized.wat @@ -49,7 +49,6 @@ (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 $~argumentsLength (mut i32) (i32.const 0)) (global $~lib/memory/__stack_pointer (mut i32) (i32.const 18172)) (export "memory" (memory $0)) (start $~start) @@ -2418,78 +2417,13 @@ unreachable end ) - (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 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 12 - i32.const 4 - call $~lib/rt/itcms/__new - local.tee $3 - i32.store - local.get $3 - i32.const 0 - call $~lib/arraybuffer/ArrayBufferView#set:buffer - local.get $3 - i32.const 0 - 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.lt_u - local.get $2 - i32.const 1073741820 - i32.gt_u - i32.or - if - i32.const 1056 - i32.const 1632 - i32.const 25 - i32.const 7 - call $~lib/builtins/abort - unreachable - end - local.get $3 - local.get $0 - call $~lib/arraybuffer/ArrayBufferView#set:buffer - local.get $3 - local.get $0 - local.get $1 - i32.add - i32.store offset=4 - local.get $3 - local.get $2 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $3 - ) (func $start:std/dataview (local $0 i32) (local $1 i32) (local $2 i32) (local $3 i32) global.get $~lib/memory/__stack_pointer - i32.const 16 + i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check @@ -2497,8 +2431,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 i32.const 1280 call $~lib/rt/itcms/initLazy global.set $~lib/rt/itcms/pinSpace @@ -2510,13 +2444,13 @@ global.set $~lib/rt/itcms/fromSpace global.get $~lib/memory/__stack_pointer 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 global.get $~lib/memory/__stack_pointer i32.const 12 i32.const 3 @@ -2524,9 +2458,6 @@ local.tee $1 i32.store global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -2579,63 +2510,39 @@ local.get $1 i32.store global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 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 local.get $1 i32.const 0 i32.const 246 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 224 call $~lib/typedarray/Uint8Array#__set - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 local.get $1 i32.const 2 i32.const 88 call $~lib/typedarray/Uint8Array#__set - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 local.get $1 i32.const 3 i32.const 159 call $~lib/typedarray/Uint8Array#__set - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 local.get $1 i32.const 4 i32.const 130 call $~lib/typedarray/Uint8Array#__set - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 local.get $1 i32.const 5 i32.const 101 call $~lib/typedarray/Uint8Array#__set - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 local.get $1 i32.const 6 i32.const 67 call $~lib/typedarray/Uint8Array#__set - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 local.get $1 i32.const 7 i32.const 95 @@ -2644,10 +2551,7 @@ local.get $1 i32.load local.tee $0 - i32.store offset=8 - 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 $0 local.get $1 @@ -2659,10 +2563,7 @@ i32.load offset=8 call $~lib/dataview/DataView#constructor local.tee $0 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 + i32.store offset=8 local.get $0 i32.const 0 i32.const 1 @@ -2677,9 +2578,6 @@ 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 i32.const 1 @@ -2694,9 +2592,6 @@ 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.const 1 @@ -2711,9 +2606,6 @@ 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 i32.const 1 @@ -2728,9 +2620,6 @@ 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 1 @@ -2745,9 +2634,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 local.get $0 i32.const 0 i32.const 0 @@ -2762,9 +2648,6 @@ 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 i32.const 0 @@ -2779,9 +2662,6 @@ 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.const 0 @@ -2796,9 +2676,6 @@ 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 i32.const 0 @@ -2813,9 +2690,6 @@ 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 @@ -2830,9 +2704,6 @@ 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/dataview/DataView#getFloat64 @@ -2846,9 +2717,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 local.get $0 i32.const 0 call $~lib/dataview/DataView#getFloat64 @@ -2862,9 +2730,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 local.get $0 i32.const 0 call $~lib/dataview/DataView#getInt8 @@ -2878,9 +2743,6 @@ 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/dataview/DataView#getInt8 @@ -2894,9 +2756,6 @@ 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/dataview/DataView#getInt8 @@ -2910,9 +2769,6 @@ 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/dataview/DataView#getInt8 @@ -2926,9 +2782,6 @@ 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 call $~lib/dataview/DataView#getInt8 @@ -2942,9 +2795,6 @@ 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 call $~lib/dataview/DataView#getInt8 @@ -2958,9 +2808,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 local.get $0 i32.const 6 call $~lib/dataview/DataView#getInt8 @@ -2974,9 +2821,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 local.get $0 i32.const 7 call $~lib/dataview/DataView#getInt8 @@ -2990,9 +2834,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 local.get $0 i32.const 0 i32.const 1 @@ -3009,9 +2850,6 @@ 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 i32.const 1 @@ -3028,9 +2866,6 @@ 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.const 1 @@ -3047,9 +2882,6 @@ 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 i32.const 1 @@ -3066,9 +2898,6 @@ 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 1 @@ -3085,9 +2914,6 @@ 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 @@ -3104,9 +2930,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 local.get $0 i32.const 6 i32.const 1 @@ -3123,9 +2946,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 local.get $0 i32.const 0 i32.const 0 @@ -3142,9 +2962,6 @@ 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 i32.const 0 @@ -3161,9 +2978,6 @@ 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.const 0 @@ -3180,9 +2994,6 @@ 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 i32.const 0 @@ -3199,9 +3010,6 @@ 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 @@ -3218,9 +3026,6 @@ 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 @@ -3237,9 +3042,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 local.get $0 i32.const 6 i32.const 0 @@ -3256,9 +3058,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 local.get $0 i32.const 0 i32.const 1 @@ -3273,9 +3072,6 @@ 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 i32.const 1 @@ -3290,9 +3086,6 @@ 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.const 1 @@ -3307,9 +3100,6 @@ 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 i32.const 1 @@ -3324,9 +3114,6 @@ 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 1 @@ -3341,9 +3128,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 local.get $0 i32.const 0 i32.const 0 @@ -3358,9 +3142,6 @@ 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 i32.const 0 @@ -3375,9 +3156,6 @@ 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.const 0 @@ -3392,9 +3170,6 @@ 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 i32.const 0 @@ -3409,9 +3184,6 @@ 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 @@ -3426,9 +3198,6 @@ 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/dataview/DataView#getInt64 @@ -3442,9 +3211,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 local.get $0 i32.const 0 call $~lib/dataview/DataView#getInt64 @@ -3458,9 +3224,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 local.get $0 i32.const 0 call $~lib/dataview/DataView#getUint8 @@ -3474,9 +3237,6 @@ 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/dataview/DataView#getUint8 @@ -3490,9 +3250,6 @@ 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/dataview/DataView#getUint8 @@ -3506,9 +3263,6 @@ 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/dataview/DataView#getUint8 @@ -3522,9 +3276,6 @@ 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 call $~lib/dataview/DataView#getUint8 @@ -3538,9 +3289,6 @@ 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 call $~lib/dataview/DataView#getUint8 @@ -3554,9 +3302,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 local.get $0 i32.const 6 call $~lib/dataview/DataView#getUint8 @@ -3570,9 +3315,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 local.get $0 i32.const 7 call $~lib/dataview/DataView#getUint8 @@ -3586,9 +3328,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 local.get $0 i32.const 0 i32.const 1 @@ -3605,9 +3344,6 @@ 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 i32.const 1 @@ -3624,9 +3360,6 @@ 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.const 1 @@ -3643,9 +3376,6 @@ 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 i32.const 1 @@ -3662,9 +3392,6 @@ 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 1 @@ -3681,9 +3408,6 @@ 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 @@ -3700,9 +3424,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 local.get $0 i32.const 6 i32.const 1 @@ -3719,9 +3440,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 local.get $0 i32.const 0 i32.const 0 @@ -3738,9 +3456,6 @@ 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 i32.const 0 @@ -3757,9 +3472,6 @@ 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.const 0 @@ -3776,9 +3488,6 @@ 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 i32.const 0 @@ -3795,9 +3504,6 @@ 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 @@ -3814,9 +3520,6 @@ 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 @@ -3833,9 +3536,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 local.get $0 i32.const 6 i32.const 0 @@ -3852,9 +3552,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 local.get $0 i32.const 0 i32.const 1 @@ -3869,9 +3566,6 @@ 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 i32.const 1 @@ -3886,9 +3580,6 @@ 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.const 1 @@ -3903,9 +3594,6 @@ 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 i32.const 1 @@ -3920,9 +3608,6 @@ 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 1 @@ -3937,9 +3622,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 local.get $0 i32.const 0 i32.const 0 @@ -3954,9 +3636,6 @@ 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 i32.const 0 @@ -3971,9 +3650,6 @@ 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.const 0 @@ -3988,9 +3664,6 @@ 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 i32.const 0 @@ -4005,9 +3678,6 @@ 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 @@ -4022,9 +3692,6 @@ 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/dataview/DataView#getUint64 @@ -4038,9 +3705,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 local.get $0 i32.const 0 call $~lib/dataview/DataView#getUint64 @@ -4054,16 +3718,10 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 local.get $0 f32.const 1.5976661625240943e-18 i32.const 1 call $~lib/dataview/DataView#setFloat32 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 local.get $0 i32.const 0 i32.const 1 @@ -4078,16 +3736,10 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 local.get $0 f32.const 1976281973381696323584 i32.const 0 call $~lib/dataview/DataView#setFloat32 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 local.get $0 i32.const 0 i32.const 0 @@ -4102,16 +3754,10 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 local.get $0 f64.const -1094252199637739024055454e124 i32.const 1 call $~lib/dataview/DataView#setFloat64 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 local.get $0 i32.const 1 call $~lib/dataview/DataView#getFloat64 @@ -4125,16 +3771,10 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 local.get $0 f64.const 6.022586634778589e-103 i32.const 0 call $~lib/dataview/DataView#setFloat64 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 local.get $0 i32.const 0 call $~lib/dataview/DataView#getFloat64 @@ -4148,9 +3788,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 local.get $0 i32.load offset=8 i32.eqz @@ -4166,9 +3803,6 @@ i32.load offset=4 i32.const 108 i32.store8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 local.get $0 i32.const 0 call $~lib/dataview/DataView#getInt8 @@ -4182,16 +3816,10 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 local.get $0 i32.const -13360 i32.const 1 call $~lib/dataview/DataView#setInt16 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 local.get $0 i32.const 0 i32.const 1 @@ -4208,16 +3836,10 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 local.get $0 i32.const 14689 i32.const 0 call $~lib/dataview/DataView#setInt16 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 local.get $0 i32.const 0 i32.const 0 @@ -4234,16 +3856,10 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 local.get $0 i32.const 1204680201 i32.const 1 call $~lib/dataview/DataView#setInt32 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 local.get $0 i32.const 0 i32.const 1 @@ -4258,16 +3874,10 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 local.get $0 i32.const 660673230 i32.const 0 call $~lib/dataview/DataView#setInt32 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 local.get $0 i32.const 0 i32.const 0 @@ -4282,16 +3892,10 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 local.get $0 i64.const -3290739641816099749 i32.const 1 call $~lib/dataview/DataView#setInt64 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 local.get $0 i32.const 1 call $~lib/dataview/DataView#getInt64 @@ -4305,16 +3909,10 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 local.get $0 i64.const 8178932412950708047 i32.const 0 call $~lib/dataview/DataView#setInt64 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 local.get $0 i32.const 0 call $~lib/dataview/DataView#getInt64 @@ -4328,9 +3926,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 local.get $0 i32.load offset=8 i32.eqz @@ -4346,9 +3941,6 @@ i32.load offset=4 i32.const 238 i32.store8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 local.get $0 i32.const 0 call $~lib/dataview/DataView#getUint8 @@ -4362,16 +3954,10 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 local.get $0 i32.const 58856 i32.const 1 call $~lib/dataview/DataView#setUint16 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 local.get $0 i32.const 0 i32.const 1 @@ -4388,16 +3974,10 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 local.get $0 i32.const 60400 i32.const 0 call $~lib/dataview/DataView#setUint16 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 local.get $0 i32.const 0 i32.const 0 @@ -4414,16 +3994,10 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 local.get $0 i32.const -846805744 i32.const 1 call $~lib/dataview/DataView#setUint32 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 local.get $0 i32.const 0 i32.const 1 @@ -4438,16 +4012,10 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 local.get $0 i32.const -1510791631 i32.const 0 call $~lib/dataview/DataView#setUint32 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 local.get $0 i32.const 0 i32.const 0 @@ -4462,16 +4030,10 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 local.get $0 i64.const 2334704782995986958 i32.const 1 call $~lib/dataview/DataView#setUint64 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 local.get $0 i32.const 1 call $~lib/dataview/DataView#getUint64 @@ -4485,16 +4047,10 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 local.get $0 i64.const -7123186897289856329 i32.const 0 call $~lib/dataview/DataView#setUint64 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 local.get $0 i32.const 0 call $~lib/dataview/DataView#getUint64 @@ -4511,57 +4067,21 @@ global.get $~lib/memory/__stack_pointer local.get $1 i32.load - local.tee $1 - i32.store offset=8 - i32.const 1 - global.set $~argumentsLength - global.get $~lib/memory/__stack_pointer - i32.const 0 - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check + local.tee $0 + i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - block $2of2 - block $1of2 - block $outOfRange - global.get $~argumentsLength - i32.const 1 - i32.sub - br_table $1of2 $1of2 $2of2 $outOfRange - end - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $1 - i32.const 20 - i32.sub - i32.load offset=16 - local.set $0 - end - local.get $1 + local.get $0 i32.const 0 local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 call $~lib/dataview/DataView#constructor - local.set $1 - global.get $~lib/memory/__stack_pointer - i32.const 4 - 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 + local.tee $0 + i32.store offset=8 + local.get $0 i32.load offset=4 - local.get $1 + local.get $0 i32.load i32.sub if @@ -4572,7 +4092,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 i32.load offset=8 i32.const 8 i32.ne @@ -4620,8 +4140,70 @@ i32.add global.set $~lib/rt/itcms/threshold global.get $~lib/memory/__stack_pointer - i32.const 16 + i32.const 12 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 + 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 + i32.const 12 + i32.const 4 + call $~lib/rt/itcms/__new + local.tee $3 + i32.store + local.get $3 + i32.const 0 + call $~lib/arraybuffer/ArrayBufferView#set:buffer + local.get $3 + i32.const 0 + i32.store offset=4 + local.get $3 + i32.const 0 + i32.store offset=8 + local.get $0 + 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 1056 + i32.const 1632 + i32.const 25 + i32.const 7 + call $~lib/builtins/abort + unreachable + end + local.get $3 + local.get $0 + call $~lib/arraybuffer/ArrayBufferView#set:buffer + local.get $3 + local.get $0 + local.get $1 + i32.add + i32.store offset=4 + local.get $3 + local.get $2 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 + ) ) diff --git a/tests/compiler/std/dataview.untouched.wat b/tests/compiler/std/dataview.untouched.wat index 92f869bc6b..70cbbd4b8b 100644 --- a/tests/compiler/std/dataview.untouched.wat +++ b/tests/compiler/std/dataview.untouched.wat @@ -3330,6 +3330,31 @@ end i64.store ) + (func $~lib/dataview/DataView#constructor@varargs (param $0 i32) (param $1 i32) (param $2 i32) (param $3 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 0 + local.set $2 + end + local.get $1 + call $~lib/arraybuffer/ArrayBuffer#get:byteLength + local.set $3 + end + local.get $0 + local.get $1 + local.get $2 + local.get $3 + call $~lib/dataview/DataView#constructor + ) (func $~lib/dataview/DataView#get:byteOffset (param $0 i32) (result i32) local.get $0 i32.load offset=4 @@ -3481,171 +3506,12 @@ unreachable end ) - (func $~lib/typedarray/Uint8Array#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 - call $~stack_check - 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 12 - i32.const 3 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - end - global.get $~lib/memory/__stack_pointer - local.get $0 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - local.get $1 - i32.const 0 - call $~lib/arraybuffer/ArrayBufferView#constructor - local.tee $0 - i32.store - local.get $0 - local.set $2 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $2 - ) - (func $~lib/dataview/DataView#constructor (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 - global.set $~lib/memory/__stack_pointer - call $~stack_check - 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 12 - i32.const 4 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - end - local.get $0 - i32.const 0 - call $~lib/dataview/DataView#set:buffer - local.get $0 - i32.const 0 - call $~lib/dataview/DataView#set:dataStart - local.get $0 - i32.const 0 - call $~lib/dataview/DataView#set:byteLength - local.get $3 - i32.const 1073741820 - i32.gt_u - local.get $2 - local.get $3 - i32.add - local.get $1 - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - call $~lib/arraybuffer/ArrayBuffer#get:byteLength - i32.gt_u - i32.or - if - i32.const 32 - i32.const 608 - i32.const 25 - i32.const 7 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.get $1 - call $~lib/dataview/DataView#set:buffer - local.get $1 - local.get $2 - i32.add - local.set $4 - local.get $0 - local.get $4 - call $~lib/dataview/DataView#set:dataStart - local.get $0 - local.get $3 - call $~lib/dataview/DataView#set:byteLength - local.get $0 - 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/dataview/DataView#constructor@varargs (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 4 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - 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 - local.get $1 - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store - local.get $4 - call $~lib/arraybuffer/ArrayBuffer#get:byteLength - local.set $3 - end - local.get $0 - local.get $1 - local.get $2 - local.get $3 - call $~lib/dataview/DataView#constructor - local.set $4 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $4 - ) (func $start:std/dataview (local $0 i32) (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 call $~stack_check @@ -3653,8 +3519,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 i32.const 256 call $~lib/rt/itcms/initLazy global.set $~lib/rt/itcms/pinSpace @@ -3671,74 +3537,34 @@ local.tee $0 i32.store local.get $0 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 i32.const 0 i32.const 246 call $~lib/typedarray/Uint8Array#__set local.get $0 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 i32.const 1 i32.const 224 call $~lib/typedarray/Uint8Array#__set local.get $0 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 i32.const 2 i32.const 88 call $~lib/typedarray/Uint8Array#__set local.get $0 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 i32.const 3 i32.const 159 call $~lib/typedarray/Uint8Array#__set local.get $0 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 i32.const 4 i32.const 130 call $~lib/typedarray/Uint8Array#__set local.get $0 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 i32.const 5 i32.const 101 call $~lib/typedarray/Uint8Array#__set local.get $0 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 i32.const 6 i32.const 67 call $~lib/typedarray/Uint8Array#__set local.get $0 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 i32.const 7 i32.const 95 call $~lib/typedarray/Uint8Array#__set @@ -3749,26 +3575,16 @@ local.set $2 global.get $~lib/memory/__stack_pointer local.get $2 - i32.store offset=8 + i32.store offset=4 local.get $2 local.get $0 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=8 - local.get $2 call $~lib/arraybuffer/ArrayBufferView#get:byteOffset local.get $0 i32.load offset=8 call $~lib/dataview/DataView#constructor local.tee $1 - i32.store offset=12 + i32.store offset=8 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 $~lib/dataview/DataView#getFloat32 @@ -3784,11 +3600,6 @@ unreachable end local.get $1 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 i32.const 1 i32.const 1 call $~lib/dataview/DataView#getFloat32 @@ -3804,11 +3615,6 @@ unreachable end local.get $1 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 i32.const 2 i32.const 1 call $~lib/dataview/DataView#getFloat32 @@ -3824,11 +3630,6 @@ unreachable end local.get $1 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 i32.const 3 i32.const 1 call $~lib/dataview/DataView#getFloat32 @@ -3844,11 +3645,6 @@ unreachable end local.get $1 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 i32.const 4 i32.const 1 call $~lib/dataview/DataView#getFloat32 @@ -3864,11 +3660,6 @@ unreachable end 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 0 call $~lib/dataview/DataView#getFloat32 @@ -3884,11 +3675,6 @@ unreachable end local.get $1 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 i32.const 1 i32.const 0 call $~lib/dataview/DataView#getFloat32 @@ -3904,11 +3690,6 @@ unreachable end local.get $1 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 i32.const 2 i32.const 0 call $~lib/dataview/DataView#getFloat32 @@ -3924,11 +3705,6 @@ unreachable end local.get $1 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 i32.const 3 i32.const 0 call $~lib/dataview/DataView#getFloat32 @@ -3944,11 +3720,6 @@ unreachable end local.get $1 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 i32.const 4 i32.const 0 call $~lib/dataview/DataView#getFloat32 @@ -3964,11 +3735,6 @@ unreachable end 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 $~lib/dataview/DataView#getFloat64 @@ -3984,11 +3750,6 @@ unreachable end 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 0 call $~lib/dataview/DataView#getFloat64 @@ -4004,11 +3765,6 @@ unreachable end 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/dataview/DataView#getInt8 i32.const -10 @@ -4023,11 +3779,6 @@ unreachable end local.get $1 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 i32.const 1 call $~lib/dataview/DataView#getInt8 i32.const -32 @@ -4042,11 +3793,6 @@ unreachable end local.get $1 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 i32.const 2 call $~lib/dataview/DataView#getInt8 i32.const 88 @@ -4061,11 +3807,6 @@ unreachable end local.get $1 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 i32.const 3 call $~lib/dataview/DataView#getInt8 i32.const -97 @@ -4080,11 +3821,6 @@ unreachable end local.get $1 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 i32.const 4 call $~lib/dataview/DataView#getInt8 i32.const -126 @@ -4099,11 +3835,6 @@ unreachable end local.get $1 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 i32.const 5 call $~lib/dataview/DataView#getInt8 i32.const 101 @@ -4118,11 +3849,6 @@ unreachable end local.get $1 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 i32.const 6 call $~lib/dataview/DataView#getInt8 i32.const 67 @@ -4137,11 +3863,6 @@ unreachable end local.get $1 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 i32.const 7 call $~lib/dataview/DataView#getInt8 i32.const 95 @@ -4156,11 +3877,6 @@ unreachable end 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 $~lib/dataview/DataView#getInt16 @@ -4180,11 +3896,6 @@ unreachable end local.get $1 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 i32.const 1 i32.const 1 call $~lib/dataview/DataView#getInt16 @@ -4204,11 +3915,6 @@ unreachable end local.get $1 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 i32.const 2 i32.const 1 call $~lib/dataview/DataView#getInt16 @@ -4228,11 +3934,6 @@ unreachable end local.get $1 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 i32.const 3 i32.const 1 call $~lib/dataview/DataView#getInt16 @@ -4252,11 +3953,6 @@ unreachable end local.get $1 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 i32.const 4 i32.const 1 call $~lib/dataview/DataView#getInt16 @@ -4276,11 +3972,6 @@ unreachable end local.get $1 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 i32.const 5 i32.const 1 call $~lib/dataview/DataView#getInt16 @@ -4300,11 +3991,6 @@ unreachable end local.get $1 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 i32.const 6 i32.const 1 call $~lib/dataview/DataView#getInt16 @@ -4324,11 +4010,6 @@ unreachable end 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 0 call $~lib/dataview/DataView#getInt16 @@ -4348,11 +4029,6 @@ unreachable end local.get $1 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 i32.const 1 i32.const 0 call $~lib/dataview/DataView#getInt16 @@ -4372,11 +4048,6 @@ unreachable end local.get $1 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 i32.const 2 i32.const 0 call $~lib/dataview/DataView#getInt16 @@ -4396,11 +4067,6 @@ unreachable end local.get $1 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 i32.const 3 i32.const 0 call $~lib/dataview/DataView#getInt16 @@ -4420,11 +4086,6 @@ unreachable end local.get $1 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 i32.const 4 i32.const 0 call $~lib/dataview/DataView#getInt16 @@ -4444,11 +4105,6 @@ unreachable end local.get $1 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 i32.const 5 i32.const 0 call $~lib/dataview/DataView#getInt16 @@ -4468,11 +4124,6 @@ unreachable end local.get $1 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 i32.const 6 i32.const 0 call $~lib/dataview/DataView#getInt16 @@ -4492,11 +4143,6 @@ unreachable end 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 $~lib/dataview/DataView#getInt32 @@ -4512,11 +4158,6 @@ unreachable end local.get $1 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 i32.const 1 i32.const 1 call $~lib/dataview/DataView#getInt32 @@ -4532,11 +4173,6 @@ unreachable end local.get $1 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 i32.const 2 i32.const 1 call $~lib/dataview/DataView#getInt32 @@ -4552,11 +4188,6 @@ unreachable end local.get $1 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 i32.const 3 i32.const 1 call $~lib/dataview/DataView#getInt32 @@ -4572,11 +4203,6 @@ unreachable end local.get $1 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 i32.const 4 i32.const 1 call $~lib/dataview/DataView#getInt32 @@ -4592,11 +4218,6 @@ unreachable end 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 0 call $~lib/dataview/DataView#getInt32 @@ -4612,11 +4233,6 @@ unreachable end local.get $1 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 i32.const 1 i32.const 0 call $~lib/dataview/DataView#getInt32 @@ -4632,11 +4248,6 @@ unreachable end local.get $1 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 i32.const 2 i32.const 0 call $~lib/dataview/DataView#getInt32 @@ -4652,11 +4263,6 @@ unreachable end local.get $1 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 i32.const 3 i32.const 0 call $~lib/dataview/DataView#getInt32 @@ -4672,11 +4278,6 @@ unreachable end local.get $1 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 i32.const 4 i32.const 0 call $~lib/dataview/DataView#getInt32 @@ -4692,11 +4293,6 @@ unreachable end 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 $~lib/dataview/DataView#getInt64 @@ -4712,11 +4308,6 @@ unreachable end 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 0 call $~lib/dataview/DataView#getInt64 @@ -4732,11 +4323,6 @@ unreachable end 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/dataview/DataView#getUint8 i32.const 246 @@ -4751,11 +4337,6 @@ unreachable end local.get $1 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 i32.const 1 call $~lib/dataview/DataView#getUint8 i32.const 224 @@ -4770,11 +4351,6 @@ unreachable end local.get $1 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 i32.const 2 call $~lib/dataview/DataView#getUint8 i32.const 88 @@ -4789,11 +4365,6 @@ unreachable end local.get $1 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 i32.const 3 call $~lib/dataview/DataView#getUint8 i32.const 159 @@ -4808,11 +4379,6 @@ unreachable end local.get $1 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 i32.const 4 call $~lib/dataview/DataView#getUint8 i32.const 130 @@ -4827,11 +4393,6 @@ unreachable end local.get $1 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 i32.const 5 call $~lib/dataview/DataView#getUint8 i32.const 101 @@ -4846,11 +4407,6 @@ unreachable end local.get $1 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 i32.const 6 call $~lib/dataview/DataView#getUint8 i32.const 67 @@ -4865,11 +4421,6 @@ unreachable end local.get $1 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 i32.const 7 call $~lib/dataview/DataView#getUint8 i32.const 95 @@ -4884,11 +4435,6 @@ unreachable end 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 $~lib/dataview/DataView#getUint16 @@ -4906,11 +4452,6 @@ unreachable end local.get $1 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 i32.const 1 i32.const 1 call $~lib/dataview/DataView#getUint16 @@ -4928,11 +4469,6 @@ unreachable end local.get $1 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 i32.const 2 i32.const 1 call $~lib/dataview/DataView#getUint16 @@ -4950,11 +4486,6 @@ unreachable end local.get $1 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 i32.const 3 i32.const 1 call $~lib/dataview/DataView#getUint16 @@ -4972,11 +4503,6 @@ unreachable end local.get $1 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 i32.const 4 i32.const 1 call $~lib/dataview/DataView#getUint16 @@ -4994,11 +4520,6 @@ unreachable end local.get $1 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 i32.const 5 i32.const 1 call $~lib/dataview/DataView#getUint16 @@ -5016,11 +4537,6 @@ unreachable end local.get $1 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 i32.const 6 i32.const 1 call $~lib/dataview/DataView#getUint16 @@ -5038,11 +4554,6 @@ unreachable end 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 0 call $~lib/dataview/DataView#getUint16 @@ -5060,11 +4571,6 @@ unreachable end local.get $1 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 i32.const 1 i32.const 0 call $~lib/dataview/DataView#getUint16 @@ -5082,11 +4588,6 @@ unreachable end local.get $1 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 i32.const 2 i32.const 0 call $~lib/dataview/DataView#getUint16 @@ -5104,11 +4605,6 @@ unreachable end local.get $1 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 i32.const 3 i32.const 0 call $~lib/dataview/DataView#getUint16 @@ -5126,11 +4622,6 @@ unreachable end local.get $1 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 i32.const 4 i32.const 0 call $~lib/dataview/DataView#getUint16 @@ -5148,11 +4639,6 @@ unreachable end local.get $1 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 i32.const 5 i32.const 0 call $~lib/dataview/DataView#getUint16 @@ -5170,11 +4656,6 @@ unreachable end local.get $1 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 i32.const 6 i32.const 0 call $~lib/dataview/DataView#getUint16 @@ -5192,11 +4673,6 @@ unreachable end 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 $~lib/dataview/DataView#getUint32 @@ -5212,11 +4688,6 @@ unreachable end local.get $1 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 i32.const 1 i32.const 1 call $~lib/dataview/DataView#getUint32 @@ -5232,11 +4703,6 @@ unreachable end local.get $1 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 i32.const 2 i32.const 1 call $~lib/dataview/DataView#getUint32 @@ -5252,11 +4718,6 @@ unreachable end local.get $1 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 i32.const 3 i32.const 1 call $~lib/dataview/DataView#getUint32 @@ -5272,11 +4733,6 @@ unreachable end local.get $1 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 i32.const 4 i32.const 1 call $~lib/dataview/DataView#getUint32 @@ -5292,11 +4748,6 @@ unreachable end 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 0 call $~lib/dataview/DataView#getUint32 @@ -5312,11 +4763,6 @@ unreachable end local.get $1 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 i32.const 1 i32.const 0 call $~lib/dataview/DataView#getUint32 @@ -5332,11 +4778,6 @@ unreachable end local.get $1 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 i32.const 2 i32.const 0 call $~lib/dataview/DataView#getUint32 @@ -5352,11 +4793,6 @@ unreachable end local.get $1 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 i32.const 3 i32.const 0 call $~lib/dataview/DataView#getUint32 @@ -5372,11 +4808,6 @@ unreachable end local.get $1 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 i32.const 4 i32.const 0 call $~lib/dataview/DataView#getUint32 @@ -5392,11 +4823,6 @@ unreachable end 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 $~lib/dataview/DataView#getUint64 @@ -5412,11 +4838,6 @@ unreachable end 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 0 call $~lib/dataview/DataView#getUint64 @@ -5432,21 +4853,11 @@ unreachable end 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 f32.const 1.5976661625240943e-18 i32.const 1 call $~lib/dataview/DataView#setFloat32 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 $~lib/dataview/DataView#getFloat32 @@ -5462,21 +4873,11 @@ unreachable end 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 f32.const 1976281973381696323584 i32.const 0 call $~lib/dataview/DataView#setFloat32 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 0 call $~lib/dataview/DataView#getFloat32 @@ -5492,21 +4893,11 @@ unreachable end 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 f64.const -1094252199637739024055454e124 i32.const 1 call $~lib/dataview/DataView#setFloat64 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 $~lib/dataview/DataView#getFloat64 @@ -5522,21 +4913,11 @@ unreachable end 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 f64.const 6.022586634778589e-103 i32.const 0 call $~lib/dataview/DataView#setFloat64 - local.get $1 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 + local.get $1 i32.const 0 i32.const 0 call $~lib/dataview/DataView#getFloat64 @@ -5552,20 +4933,10 @@ unreachable end 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 108 call $~lib/dataview/DataView#setInt8 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/dataview/DataView#getInt8 i32.const 108 @@ -5580,21 +4951,11 @@ unreachable end 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 -13360 i32.const 1 call $~lib/dataview/DataView#setInt16 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 $~lib/dataview/DataView#getInt16 @@ -5614,21 +4975,11 @@ unreachable end 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 14689 i32.const 0 call $~lib/dataview/DataView#setInt16 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 0 call $~lib/dataview/DataView#getInt16 @@ -5648,21 +4999,11 @@ unreachable end 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 1204680201 i32.const 1 call $~lib/dataview/DataView#setInt32 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 $~lib/dataview/DataView#getInt32 @@ -5678,21 +5019,11 @@ unreachable end 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 660673230 i32.const 0 call $~lib/dataview/DataView#setInt32 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 0 call $~lib/dataview/DataView#getInt32 @@ -5708,21 +5039,11 @@ unreachable end 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 i64.const -3290739641816099749 i32.const 1 call $~lib/dataview/DataView#setInt64 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 $~lib/dataview/DataView#getInt64 @@ -5738,21 +5059,11 @@ unreachable end 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 i64.const 8178932412950708047 i32.const 0 call $~lib/dataview/DataView#setInt64 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 0 call $~lib/dataview/DataView#getInt64 @@ -5768,20 +5079,10 @@ unreachable end 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 238 call $~lib/dataview/DataView#setUint8 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/dataview/DataView#getUint8 i32.const 238 @@ -5796,21 +5097,11 @@ unreachable end 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 58856 i32.const 1 call $~lib/dataview/DataView#setUint16 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 $~lib/dataview/DataView#getUint16 @@ -5828,21 +5119,11 @@ unreachable end 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 60400 i32.const 0 call $~lib/dataview/DataView#setUint16 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 0 call $~lib/dataview/DataView#getUint16 @@ -5860,21 +5141,11 @@ unreachable end 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 -846805744 i32.const 1 call $~lib/dataview/DataView#setUint32 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 $~lib/dataview/DataView#getUint32 @@ -5890,21 +5161,11 @@ unreachable end 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 -1510791631 i32.const 0 call $~lib/dataview/DataView#setUint32 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 0 call $~lib/dataview/DataView#getUint32 @@ -5920,21 +5181,11 @@ unreachable end 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 i64.const 2334704782995986958 i32.const 1 call $~lib/dataview/DataView#setUint64 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 $~lib/dataview/DataView#getUint64 @@ -5950,21 +5201,11 @@ unreachable end 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 i64.const -7123186897289856329 i32.const 0 call $~lib/dataview/DataView#setUint64 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 0 call $~lib/dataview/DataView#getUint64 @@ -5986,7 +5227,7 @@ 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 0 i32.const 1 @@ -5994,13 +5235,8 @@ i32.const 0 call $~lib/dataview/DataView#constructor@varargs local.tee $1 - i32.store offset=12 + i32.store offset=8 local.get $1 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 call $~lib/dataview/DataView#get:byteOffset i32.const 0 i32.eq @@ -6030,7 +5266,7 @@ global.set $~lib/memory/__stack_pointer call $~lib/rt/itcms/__collect global.get $~lib/memory/__stack_pointer - i32.const 16 + i32.const 12 i32.add global.set $~lib/memory/__stack_pointer ) @@ -6107,4 +5343,108 @@ global.set $~lib/memory/__stack_pointer local.get $4 ) + (func $~lib/typedarray/Uint8Array#constructor (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 + call $~stack_check + 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 12 + i32.const 3 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + global.get $~lib/memory/__stack_pointer + local.get $0 + local.get $1 + i32.const 0 + call $~lib/arraybuffer/ArrayBufferView#constructor + local.tee $0 + i32.store + 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 $2 + ) + (func $~lib/dataview/DataView#constructor (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 + call $~stack_check + 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 12 + i32.const 4 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + local.get $0 + i32.const 0 + call $~lib/dataview/DataView#set:buffer + local.get $0 + i32.const 0 + call $~lib/dataview/DataView#set:dataStart + local.get $0 + i32.const 0 + call $~lib/dataview/DataView#set:byteLength + local.get $3 + i32.const 1073741820 + i32.gt_u + local.get $2 + local.get $3 + i32.add + local.get $1 + call $~lib/arraybuffer/ArrayBuffer#get:byteLength + i32.gt_u + i32.or + if + i32.const 32 + i32.const 608 + i32.const 25 + i32.const 7 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $1 + call $~lib/dataview/DataView#set:buffer + local.get $1 + local.get $2 + i32.add + local.set $4 + local.get $0 + local.get $4 + call $~lib/dataview/DataView#set:dataStart + local.get $0 + local.get $3 + call $~lib/dataview/DataView#set:byteLength + local.get $0 + local.set $5 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $5 + ) ) diff --git a/tests/compiler/std/hash.optimized.wat b/tests/compiler/std/hash.optimized.wat index 6314777b30..b8a3eac0f9 100644 --- a/tests/compiler/std/hash.optimized.wat +++ b/tests/compiler/std/hash.optimized.wat @@ -15,89 +15,14 @@ (global $~lib/memory/__stack_pointer (mut i32) (i32.const 17548)) (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 - 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 - i32.const 0 - call $~lib/util/hash/hashStr - global.get $~lib/memory/__stack_pointer - i32.const 1056 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 1056 - i32.store - i32.const 1056 - call $~lib/util/hash/hashStr - global.get $~lib/memory/__stack_pointer - i32.const 1088 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 1088 - i32.store - i32.const 1088 - call $~lib/util/hash/hashStr - global.get $~lib/memory/__stack_pointer - i32.const 1120 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 1120 - i32.store - i32.const 1120 - call $~lib/util/hash/hashStr - global.get $~lib/memory/__stack_pointer - i32.const 1152 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 1152 - i32.store - i32.const 1152 - call $~lib/util/hash/hashStr - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 1164 - i32.lt_s - if - i32.const 17568 - i32.const 17616 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - ) (func $~lib/util/hash/hashStr (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 - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store i32.const -2128831035 local.set $2 local.get $0 if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store local.get $0 i32.const 20 i32.sub @@ -129,6 +54,48 @@ end end end + ) + (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 1164 + i32.lt_s + if + i32.const 17568 + i32.const 17616 + 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/hashStr + global.get $~lib/memory/__stack_pointer + i32.const 1056 + i32.store + i32.const 1056 + call $~lib/util/hash/hashStr + global.get $~lib/memory/__stack_pointer + i32.const 1088 + i32.store + i32.const 1088 + call $~lib/util/hash/hashStr + global.get $~lib/memory/__stack_pointer + i32.const 1120 + i32.store + i32.const 1120 + call $~lib/util/hash/hashStr + global.get $~lib/memory/__stack_pointer + i32.const 1152 + i32.store + i32.const 1152 + call $~lib/util/hash/hashStr global.get $~lib/memory/__stack_pointer i32.const 4 i32.add diff --git a/tests/compiler/std/hash.untouched.wat b/tests/compiler/std/hash.untouched.wat index cc30a79cee..bd304ce636 100644 --- a/tests/compiler/std/hash.untouched.wat +++ b/tests/compiler/std/hash.untouched.wat @@ -23,6 +23,50 @@ i32.const 1 i32.shr_u ) + (func $~lib/util/hash/hashStr (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + i32.const -2128831035 + local.set $1 + local.get $0 + i32.const 0 + i32.ne + if + i32.const 0 + local.set $2 + local.get $0 + call $~lib/string/String#get:length + i32.const 1 + i32.shl + local.set $3 + loop $for-loop|0 + local.get $2 + local.get $3 + i32.lt_u + local.set $4 + local.get $4 + if + local.get $1 + local.get $0 + local.get $2 + i32.add + i32.load8_u + i32.xor + i32.const 16777619 + i32.mul + local.set $1 + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|0 + end + end + end + local.get $1 + ) (func $std/hash/check (param $0 i32) (result i32) i32.const 1 ) @@ -156,110 +200,24 @@ local.set $3 local.get $3 ) - (func $~start - call $start:std/hash - ) - (func $~stack_check - global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__data_end - i32.lt_s - if - i32.const 16544 - i32.const 16592 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - ) - (func $~lib/util/hash/hashStr (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 - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - i32.const -2128831035 - local.set $1 - local.get $0 - i32.const 0 - i32.ne - if - i32.const 0 - local.set $2 - local.get $0 - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - local.get $5 - call $~lib/string/String#get:length - i32.const 1 - i32.shl - local.set $3 - loop $for-loop|0 - local.get $2 - local.get $3 - i32.lt_u - local.set $4 - local.get $4 - if - local.get $1 - local.get $0 - local.get $2 - i32.add - i32.load8_u - i32.xor - i32.const 16777619 - i32.mul - local.set $1 - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $for-loop|0 - end - end - end - local.get $1 - local.set $5 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $5 - ) (func $start:std/hash (local $0 i32) (local $1 f32) (local $2 f64) - (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 block $~lib/util/hash/HASH<~lib/string/String|null>|inlined.0 (result i32) i32.const 0 local.set $0 i32.const 1 drop local.get $0 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store - local.get $3 call $~lib/util/hash/hashStr br $~lib/util/hash/HASH<~lib/string/String|null>|inlined.0 end @@ -269,15 +227,10 @@ global.get $~lib/memory/__stack_pointer i32.const 32 local.tee $0 - i32.store offset=4 + i32.store i32.const 1 drop local.get $0 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store - local.get $3 call $~lib/util/hash/hashStr br $~lib/util/hash/HASH<~lib/string/String>|inlined.0 end @@ -287,15 +240,10 @@ global.get $~lib/memory/__stack_pointer i32.const 64 local.tee $0 - i32.store offset=4 + i32.store i32.const 1 drop local.get $0 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store - local.get $3 call $~lib/util/hash/hashStr br $~lib/util/hash/HASH<~lib/string/String>|inlined.1 end @@ -305,15 +253,10 @@ global.get $~lib/memory/__stack_pointer i32.const 96 local.tee $0 - i32.store offset=4 + i32.store i32.const 1 drop local.get $0 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store - local.get $3 call $~lib/util/hash/hashStr br $~lib/util/hash/HASH<~lib/string/String>|inlined.2 end @@ -323,15 +266,10 @@ global.get $~lib/memory/__stack_pointer i32.const 128 local.tee $0 - i32.store offset=4 + i32.store i32.const 1 drop local.get $0 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store - local.get $3 call $~lib/util/hash/hashStr br $~lib/util/hash/HASH<~lib/string/String>|inlined.3 end @@ -602,8 +540,24 @@ call $std/hash/check drop global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer ) + (func $~start + call $start:std/hash + ) + (func $~stack_check + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__data_end + i32.lt_s + if + i32.const 16544 + i32.const 16592 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + ) ) diff --git a/tests/compiler/std/map.optimized.wat b/tests/compiler/std/map.optimized.wat index f07c4f15db..c2eb0b9917 100644 --- a/tests/compiler/std/map.optimized.wat +++ b/tests/compiler/std/map.optimized.wat @@ -1,9 +1,9 @@ (module (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_i32_=>_i32 (func (param i32 i32) (result i32))) (type $none_=>_none (func)) + (type $i32_=>_i32 (func (param i32) (result i32))) (type $i32_=>_none (func (param i32))) (type $i32_i32_i32_=>_i32 (func (param i32 i32 i32) (result i32))) (type $i32_i64_=>_i32 (func (param i32 i64) (result i32))) @@ -1871,6 +1871,22 @@ end i32.const 0 ) + (func $~lib/map/Map#has (param $0 i32) (param $1 i32) (result i32) + local.get $0 + local.get $1 + local.get $1 + i32.const 24 + i32.shl + i32.const 24 + i32.shr_s + i32.const -2128831035 + i32.xor + i32.const 16777619 + i32.mul + call $~lib/map/Map#find + i32.const 0 + i32.ne + ) (func $~lib/map/Map#rehash (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) @@ -1991,6 +2007,32 @@ i32.add global.set $~lib/memory/__stack_pointer ) + (func $~lib/map/Map#get (param $0 i32) (param $1 i32) (result i32) + local.get $0 + local.get $1 + local.get $1 + i32.const 24 + i32.shl + i32.const 24 + i32.shr_s + i32.const -2128831035 + i32.xor + i32.const 16777619 + i32.mul + 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 + ) (func $~lib/memory/memory.copy (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) @@ -2261,6 +2303,42 @@ i32.store offset=8 end ) + (func $~lib/array/Array#__set (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + 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 1728 + i32.const 108 + 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/ensureSize + local.get $0 + local.get $3 + i32.store offset=12 + end + local.get $1 + local.get $0 + i32.load offset=4 + i32.add + local.get $2 + i32.store8 + ) (func $~lib/array/Array#set:length (param $0 i32) (param $1 i32) local.get $0 local.get $1 @@ -2270,6 +2348,44 @@ local.get $1 i32.store offset=12 ) + (func $~lib/array/Array#__set (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + 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 1728 + i32.const 108 + 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/ensureSize + local.get $0 + local.get $3 + i32.store offset=12 + end + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 2 + i32.shl + i32.add + local.get $2 + i32.store + ) (func $~lib/array/Array#set:length (param $0 i32) (param $1 i32) local.get $0 local.get $1 @@ -2609,6 +2725,72 @@ i32.add global.set $~lib/memory/__stack_pointer ) + (func $~lib/map/Map#delete (param $0 i32) (param $1 i32) + (local $2 i32) + local.get $0 + local.get $1 + local.get $1 + i32.const 24 + i32.shl + i32.const 24 + i32.shr_s + i32.const -2128831035 + i32.xor + i32.const 16777619 + i32.mul + call $~lib/map/Map#find + local.tee $1 + i32.eqz + if + return + end + local.get $1 + local.get $1 + i32.load offset=8 + i32.const 1 + i32.or + i32.store offset=8 + local.get $0 + local.get $0 + i32.load offset=20 + i32.const 1 + i32.sub + i32.store offset=20 + local.get $0 + i32.load offset=4 + i32.const 1 + i32.shr_u + local.tee $2 + i32.const 1 + i32.add + i32.const 4 + local.get $0 + i32.load offset=20 + local.tee $1 + local.get $1 + i32.const 4 + i32.lt_u + select + i32.ge_u + if (result i32) + local.get $0 + i32.load offset=20 + 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 $0 + local.get $2 + call $~lib/map/Map#rehash + end + ) (func $~lib/map/Map#clear (param $0 i32) local.get $0 i32.const 16 @@ -2631,7 +2813,9 @@ i32.const 0 i32.store offset=20 ) - (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) @@ -2639,8 +2823,9 @@ (local $6 i32) (local $7 i32) (local $8 i32) + (local $9 i32) global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 20 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check @@ -2648,117 +2833,250 @@ i64.const 0 i64.store 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 + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + 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 - local.get $2 - i32.const 3 - i32.shl + i32.const 24 i32.const 3 - i32.div_s - local.tee $5 - i32.const 12 - i32.mul + call $~lib/rt/itcms/__new + local.tee $1 + i32.store + local.get $1 + i32.const 16 call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $3 + call $~lib/map/Map#set:buckets + local.get $1 + i32.const 3 i32.store offset=4 - local.get $0 - i32.load offset=8 - local.tee $8 - local.get $0 - i32.load offset=16 - i32.const 12 - i32.mul + local.get $1 + i32.const 48 + call $~lib/arraybuffer/ArrayBuffer#constructor + call $~lib/map/Map#set:entries + local.get $1 + i32.const 4 + i32.store offset=12 + local.get $1 + i32.const 0 + i32.store offset=16 + local.get $1 + i32.const 0 + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + i32.const 4 i32.add - local.set $4 - local.get $3 - local.set $2 - loop $while-continue|0 - local.get $4 - local.get $8 - i32.ne + global.set $~lib/memory/__stack_pointer + local.get $1 + i32.store + loop $for-loop|1 + local.get $2 + i32.const 24 + i32.shl + i32.const 24 + i32.shr_s + i32.const 100 + i32.lt_s if - local.get $8 - i32.load offset=8 + local.get $1 + local.get $2 + call $~lib/map/Map#has + if + i32.const 0 + i32.const 1568 + i32.const 6 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $1 + local.get $2 + local.get $2 + i32.const 24 + i32.shl + i32.const 24 + i32.shr_s + i32.const 10 + i32.add + call $~lib/map/Map#set + local.get $1 + local.get $2 + 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 + local.get $1 + local.get $2 + call $~lib/map/Map#get + local.get $2 + i32.const 24 + i32.shl + i32.const 24 + i32.shr_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 $2 i32.const 1 - i32.and + i32.add + local.set $2 + br $for-loop|1 + end + end + local.get $1 + i32.load offset=20 + 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 $2 + loop $for-loop|3 + local.get $2 + i32.const 24 + i32.shl + i32.const 24 + i32.shr_s + i32.const 100 + i32.lt_s + if + local.get $1 + local.get $2 + call $~lib/map/Map#has i32.eqz if - local.get $2 - local.get $8 - i32.load8_u - local.tee $7 - i32.store8 - local.get $2 - local.get $8 - i32.load offset=4 - i32.store offset=4 - local.get $2 - local.get $6 - local.get $1 - local.get $7 - i32.const -2128831035 - i32.xor - i32.const 16777619 - i32.mul - i32.and - i32.const 2 - i32.shl - i32.add - local.tee $7 - i32.load - i32.store offset=8 - local.get $7 - local.get $2 - i32.store - local.get $2 - i32.const 12 - i32.add - local.set $2 + i32.const 0 + i32.const 1568 + i32.const 15 + i32.const 5 + call $~lib/builtins/abort + unreachable end - local.get $8 - i32.const 12 + local.get $1 + local.get $2 + call $~lib/map/Map#get + local.get $2 + i32.const 24 + i32.shl + i32.const 24 + i32.shr_s + i32.const 10 i32.add - local.set $8 - br $while-continue|0 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 16 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $1 + local.get $2 + local.get $2 + i32.const 24 + i32.shl + i32.const 24 + i32.shr_s + i32.const 20 + i32.add + call $~lib/map/Map#set + local.get $1 + local.get $2 + 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 + local.get $1 + local.get $2 + call $~lib/map/Map#get + local.get $2 + i32.const 24 + i32.shl + i32.const 24 + i32.shr_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 $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|3 end end - local.get $0 - local.get $6 - call $~lib/map/Map#set:buckets - local.get $0 local.get $1 - i32.store offset=4 - local.get $0 - local.get $3 - call $~lib/map/Map#set:entries - local.get $0 - local.get $5 - i32.store offset=12 - local.get $0 - local.get $0 i32.load offset=20 - i32.store offset=16 + 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 - i32.const 8 - i32.add + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub 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) + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $1 + i32.load offset=8 + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.load offset=16 + local.set $4 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -2768,411 +3086,433 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - local.get $1 - i32.const 1 - i32.add + i32.const 16 + i32.const 4 + call $~lib/rt/itcms/__new 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 + i32.const 0 + call $~lib/map/Map#set:buckets + local.get $2 + i32.const 0 + i32.store offset=4 + local.get $2 + i32.const 0 + i32.store offset=8 + local.get $2 + i32.const 0 + i32.store offset=12 + local.get $4 + i32.const 1073741820 + i32.gt_u + if + i32.const 1456 + i32.const 1728 + i32.const 58 + i32.const 60 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.const 0 + call $~lib/rt/itcms/__new local.tee $5 - i32.const 3 - i32.shl - call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $3 i32.store offset=4 - local.get $0 - i32.load offset=8 - local.tee $8 - local.get $0 - i32.load offset=16 - i32.const 3 - i32.shl + local.get $5 + local.get $4 + call $~lib/memory/memory.fill + local.get $2 + local.get $5 + call $~lib/map/Map#set:buckets + local.get $2 + local.get $5 + i32.store offset=4 + local.get $2 + local.get $4 + i32.store offset=8 + local.get $2 + local.get $4 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 8 i32.add - local.set $4 - local.get $3 - local.set $2 - loop $while-continue|0 + global.set $~lib/memory/__stack_pointer + local.get $2 + i32.store + loop $for-loop|0 local.get $4 - local.get $8 - i32.ne + local.get $6 + i32.gt_s if local.get $8 - i32.load offset=4 + local.get $6 + i32.const 12 + i32.mul + i32.add + local.tee $5 + i32.load offset=8 i32.const 1 i32.and i32.eqz if local.get $2 - local.get $8 - i32.load8_u - local.tee $7 - i32.store8 - local.get $2 - local.get $8 - i32.load8_u offset=1 - i32.store8 offset=1 - local.get $2 - local.get $6 - local.get $1 - local.get $7 - i32.const -2128831035 - i32.xor - i32.const 16777619 - i32.mul - i32.and - i32.const 2 - i32.shl - i32.add - local.tee $7 - i32.load - i32.store offset=4 - local.get $7 - local.get $2 - i32.store - local.get $2 - i32.const 8 + local.get $0 + local.get $5 + i32.load8_s + call $~lib/array/Array#__set + local.get $0 + i32.const 1 i32.add - local.set $2 + local.set $0 end - local.get $8 - i32.const 8 + local.get $6 + i32.const 1 i32.add - local.set $8 - br $while-continue|0 + local.set $6 + br $for-loop|0 end end + local.get $2 local.get $0 - local.get $6 - call $~lib/map/Map#set:buckets - local.get $0 - local.get $1 - i32.store offset=4 - local.get $0 - local.get $3 - call $~lib/map/Map#set:entries - local.get $0 - local.get $5 - i32.store offset=12 - local.get $0 - local.get $0 - i32.load offset=20 - i32.store offset=16 + call $~lib/array/Array#set:length global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - ) - (func $~lib/util/hash/hash16 (param $0 i32) (result i32) - local.get $0 - i32.const 255 - i32.and - i32.const -2128831035 - i32.xor - i32.const 16777619 - i32.mul - local.get $0 - i32.const 8 - i32.shr_u - i32.xor - i32.const 16777619 - i32.mul - ) - (func $~lib/map/Map#find (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - local.get $0 - i32.load 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 $0 - i32.load16_u - local.get $1 - i32.const 65535 - i32.and - i32.eq - end - if - 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 - ) - (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) + i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 8 + local.get $1 + call $~lib/map/Map#values + local.tee $7 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + 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 - i64.const 0 - i64.store - 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.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 $5 - i32.const 12 - i32.mul + i32.const 24 + i32.const 6 + call $~lib/rt/itcms/__new + local.tee $4 + i32.store + local.get $4 + i32.const 16 call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $3 + call $~lib/map/Map#set:buckets + local.get $4 + i32.const 3 i32.store offset=4 - local.get $0 - i32.load offset=8 - local.tee $8 - 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 $8 - i32.ne - if - local.get $8 - i32.load offset=8 - i32.const 1 - i32.and - i32.eqz - if - local.get $2 - local.get $8 - i32.load16_s - local.tee $7 - i32.store16 - local.get $2 - local.get $8 - i32.load offset=4 - i32.store offset=4 - local.get $2 - local.get $6 - local.get $7 - call $~lib/util/hash/hash16 - local.get $1 - i32.and - i32.const 2 - i32.shl - i32.add - local.tee $7 - i32.load - i32.store offset=8 - local.get $7 - local.get $2 - i32.store - local.get $2 - i32.const 12 - i32.add - local.set $2 - end - local.get $8 - i32.const 12 - i32.add - local.set $8 - br $while-continue|0 - end - end - local.get $0 - local.get $6 - call $~lib/map/Map#set:buckets - local.get $0 - local.get $1 - i32.store offset=4 - local.get $0 - local.get $3 + local.get $4 + i32.const 32 + call $~lib/arraybuffer/ArrayBuffer#constructor call $~lib/map/Map#set:entries - local.get $0 - local.get $5 + local.get $4 + i32.const 4 i32.store offset=12 - local.get $0 - local.get $0 - i32.load offset=20 + local.get $4 + i32.const 0 i32.store offset=16 + local.get $4 + i32.const 0 + i32.store offset=20 global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - ) - (func $~lib/array/Array#set:length (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - i32.const 1 - call $~lib/array/ensureSize - local.get $0 - local.get $1 + local.get $4 i32.store offset=12 - ) - (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 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 - 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 + call $~lib/map/Map#constructor local.tee $5 - i32.const 3 - i32.shl - call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $3 - i32.store offset=4 - local.get $0 - i32.load offset=8 - local.tee $8 - local.get $0 - i32.load offset=16 - i32.const 3 - i32.shl - i32.add - local.set $4 - local.get $3 - local.set $2 - loop $while-continue|0 - local.get $4 - local.get $8 - i32.ne + i32.store offset=16 + loop $for-loop|4 + local.get $3 + local.get $2 + i32.load offset=12 + i32.lt_s if - local.get $8 + local.get $3 + local.get $2 + i32.load offset=12 + i32.ge_u + if + i32.const 1248 + i32.const 1728 + i32.const 92 + i32.const 42 + call $~lib/builtins/abort + unreachable + end + local.get $3 + local.get $2 i32.load offset=4 - i32.const 1 - i32.and + i32.add + i32.load8_s + local.set $0 + local.get $7 + local.get $3 + call $~lib/array/Array#__get + local.set $6 + local.get $1 + local.get $0 + call $~lib/map/Map#has i32.eqz if - local.get $2 - local.get $8 - i32.load16_s - local.tee $7 - i32.store16 - local.get $2 - local.get $8 - i32.load16_s offset=2 - i32.store16 offset=2 - local.get $2 - local.get $6 - local.get $7 - call $~lib/util/hash/hash16 - local.get $1 - i32.and - i32.const 2 - i32.shl - i32.add - local.tee $7 - i32.load - i32.store offset=4 - local.get $7 - local.get $2 - i32.store - local.get $2 - i32.const 8 - i32.add - local.set $2 + i32.const 0 + i32.const 1568 + i32.const 31 + i32.const 5 + call $~lib/builtins/abort + unreachable end - local.get $8 - i32.const 8 + 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 + local.get $4 + local.get $0 + local.get $0 + call $~lib/map/Map#set + local.get $5 + local.get $6 + i32.const 20 + i32.sub + local.tee $0 + local.get $0 + call $~lib/map/Map#set + local.get $3 + i32.const 1 i32.add - local.set $8 - br $while-continue|0 + local.set $3 + br $for-loop|4 end end - local.get $0 - local.get $6 - call $~lib/map/Map#set:buckets - local.get $0 - local.get $1 - i32.store offset=4 - local.get $0 - local.get $3 - call $~lib/map/Map#set:entries - local.get $0 - local.get $5 - i32.store offset=12 - local.get $0 - local.get $0 + local.get $4 i32.load offset=20 - i32.store offset=16 + 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 $5 + i32.load offset=20 + 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 $3 + loop $for-loop|6 + local.get $3 + i32.const 24 + i32.shl + i32.const 24 + i32.shr_s + i32.const 50 + i32.lt_s + if + local.get $1 + local.get $3 + 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.get $1 + local.get $3 + call $~lib/map/Map#get + local.get $3 + i32.const 24 + i32.shl + i32.const 24 + i32.shr_s + 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 + local.get $1 + local.get $3 + call $~lib/map/Map#delete + local.get $1 + local.get $3 + 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 $3 + i32.const 1 + i32.add + local.set $3 + br $for-loop|6 + end + end + local.get $1 + i32.load offset=20 + 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 $3 + loop $for-loop|8 + local.get $3 + i32.const 24 + i32.shl + i32.const 24 + i32.shr_s + i32.const 50 + i32.lt_s + if + local.get $1 + local.get $3 + call $~lib/map/Map#has + if + i32.const 0 + i32.const 1568 + i32.const 50 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $1 + local.get $3 + local.get $3 + i32.const 24 + i32.shl + i32.const 24 + i32.shr_s + i32.const 10 + i32.add + call $~lib/map/Map#set + local.get $1 + local.get $3 + call $~lib/map/Map#has + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 52 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $1 + local.get $3 + call $~lib/map/Map#delete + local.get $1 + local.get $3 + 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 $3 + i32.const 1 + i32.add + local.set $3 + br $for-loop|8 + end + end + local.get $1 + i32.load offset=20 + i32.const 50 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 56 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + call $~lib/map/Map#clear + local.get $1 + i32.load offset=20 + if + i32.const 0 + i32.const 1568 + i32.const 60 + i32.const 3 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 20 i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/map/Map#rehash (param $0 i32) (param $1 i32) + (func $~lib/map/Map#has (param $0 i32) (param $1 i32) (result i32) + local.get $0 + local.get $1 + local.get $1 + i32.const 255 + i32.and + i32.const -2128831035 + i32.xor + i32.const 16777619 + i32.mul + call $~lib/map/Map#find + i32.const 0 + i32.ne + ) + (func $~lib/map/Map#rehash (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -3234,18 +3574,21 @@ if local.get $2 local.get $8 - i32.load16_u + i32.load8_u local.tee $7 - i32.store16 + i32.store8 local.get $2 local.get $8 i32.load offset=4 i32.store offset=4 local.get $2 local.get $6 - local.get $7 - call $~lib/util/hash/hash16 local.get $1 + local.get $7 + i32.const -2128831035 + i32.xor + i32.const 16777619 + i32.mul i32.and i32.const 2 i32.shl @@ -3289,7 +3632,31 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/map/Map#rehash (param $0 i32) (param $1 i32) + (func $~lib/map/Map#get (param $0 i32) (param $1 i32) (result i32) + local.get $0 + local.get $1 + local.get $1 + i32.const 255 + i32.and + i32.const -2128831035 + i32.xor + i32.const 16777619 + i32.mul + 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 + ) + (func $~lib/map/Map#rehash (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -3351,20 +3718,23 @@ if local.get $2 local.get $8 - i32.load16_u + i32.load8_u local.tee $7 - i32.store16 + i32.store8 local.get $2 local.get $8 - i32.load16_u offset=2 - i32.store16 offset=2 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $2 local.get $6 - local.get $7 - call $~lib/util/hash/hash16 local.get $1 - i32.and - i32.const 2 + local.get $7 + i32.const -2128831035 + i32.xor + i32.const 16777619 + i32.mul + i32.and + i32.const 2 i32.shl i32.add local.tee $7 @@ -3406,48 +3776,73 @@ 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#delete (param $0 i32) (param $1 i32) + (local $2 i32) local.get $0 - i32.load - local.get $2 + local.get $1 + local.get $1 + i32.const 255 + i32.and + i32.const -2128831035 + i32.xor + i32.const 16777619 + i32.mul + call $~lib/map/Map#find + local.tee $1 + i32.eqz + if + return + end + local.get $1 + local.get $1 + i32.load offset=8 + i32.const 1 + i32.or + i32.store offset=8 + local.get $0 + local.get $0 + i32.load offset=20 + i32.const 1 + i32.sub + i32.store offset=20 local.get $0 i32.load offset=4 - i32.and - i32.const 2 - i32.shl + i32.const 1 + i32.shr_u + local.tee $2 + i32.const 1 i32.add - i32.load - local.set $0 - loop $while-continue|0 + i32.const 4 + local.get $0 + i32.load offset=20 + local.tee $1 + local.get $1 + i32.const 4 + i32.lt_u + select + i32.ge_u + if (result i32) 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 - local.get $0 - return - end - local.get $2 - i32.const -2 - i32.and - local.set $0 - br $while-continue|0 - end + i32.load offset=20 + 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 $0 + local.get $2 + call $~lib/map/Map#rehash end - i32.const 0 ) - (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) @@ -3455,8 +3850,9 @@ (local $6 i32) (local $7 i32) (local $8 i32) + (local $9 i32) global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 20 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check @@ -3464,339 +3860,236 @@ i64.const 0 i64.store 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 + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + 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 - local.get $2 - i32.const 3 - i32.shl - i32.const 3 - i32.div_s - local.tee $5 - i32.const 12 - i32.mul + i32.const 24 + i32.const 8 + call $~lib/rt/itcms/__new + local.tee $1 + i32.store + local.get $1 + i32.const 16 call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $3 - i32.store offset=4 - local.get $0 - i32.load offset=8 - local.tee $8 - 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 $8 - i32.ne - if - local.get $8 - i32.load offset=8 - i32.const 1 - i32.and - i32.eqz - if - local.get $2 - local.get $8 - i32.load - local.tee $7 - i32.store - local.get $2 - local.get $8 - i32.load offset=4 - i32.store offset=4 - local.get $2 - local.get $6 - local.get $7 - call $~lib/util/hash/hash32 - local.get $1 - i32.and - i32.const 2 - i32.shl - i32.add - local.tee $7 - i32.load - i32.store offset=8 - local.get $7 - local.get $2 - i32.store - local.get $2 - i32.const 12 - i32.add - local.set $2 - end - local.get $8 - i32.const 12 - i32.add - local.set $8 - br $while-continue|0 - end - end - local.get $0 - local.get $6 call $~lib/map/Map#set:buckets - local.get $0 local.get $1 + i32.const 3 i32.store offset=4 - local.get $0 - local.get $3 + local.get $1 + i32.const 48 + call $~lib/arraybuffer/ArrayBuffer#constructor call $~lib/map/Map#set:entries - local.get $0 - local.get $5 + local.get $1 + i32.const 4 i32.store offset=12 - local.get $0 - local.get $0 - i32.load offset=20 + local.get $1 + i32.const 0 i32.store offset=16 + local.get $1 + i32.const 0 + i32.store offset=20 global.get $~lib/memory/__stack_pointer - i32.const 8 + 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 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 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 - local.get $0 - i32.load offset=8 - local.tee $8 - 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 $8 - i32.ne + loop $for-loop|1 + local.get $2 + i32.const 255 + i32.and + i32.const 100 + i32.lt_u if - local.get $8 - i32.load offset=8 - i32.const 1 + local.get $1 + local.get $2 + call $~lib/map/Map#has + if + i32.const 0 + i32.const 1568 + i32.const 6 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $1 + local.get $2 + local.get $2 + i32.const 255 i32.and + i32.const 10 + i32.add + call $~lib/map/Map#set + local.get $1 + local.get $2 + call $~lib/map/Map#has i32.eqz if - local.get $2 - local.get $8 - i32.load - local.tee $7 - i32.store - local.get $2 - local.get $8 - i32.load offset=4 - i32.store offset=4 - local.get $2 - local.get $6 - local.get $7 - call $~lib/util/hash/hash32 - local.get $1 - i32.and - i32.const 2 - i32.shl - i32.add - local.tee $7 - i32.load - i32.store offset=8 - local.get $7 - local.get $2 - i32.store - local.get $2 - i32.const 12 - i32.add - local.set $2 + i32.const 0 + i32.const 1568 + i32.const 8 + i32.const 5 + call $~lib/builtins/abort + unreachable end - local.get $8 - i32.const 12 + local.get $1 + local.get $2 + call $~lib/map/Map#get + local.get $2 + i32.const 255 + i32.and + i32.const 10 i32.add - local.set $8 - br $while-continue|0 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 9 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|1 end end - local.get $0 - local.get $6 - call $~lib/map/Map#set:buckets - local.get $0 local.get $1 - i32.store offset=4 - local.get $0 - local.get $3 - call $~lib/map/Map#set:entries - local.get $0 - local.get $5 - 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.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/util/hash/hash64 (param $0 i64) (result i32) - (local $1 i32) - local.get $0 - i32.wrap_i64 - local.tee $1 - i32.const 255 - i32.and - i32.const -2128831035 - i32.xor - i32.const 16777619 - i32.mul - local.get $1 - i32.const 8 - i32.shr_u - i32.const 255 - i32.and - i32.xor - i32.const 16777619 - i32.mul - local.get $1 - i32.const 16 - i32.shr_u - i32.const 255 - i32.and - i32.xor - i32.const 16777619 - i32.mul - local.get $1 - i32.const 24 - i32.shr_u - i32.xor - i32.const 16777619 - i32.mul - local.get $0 - i64.const 32 - i64.shr_u - i32.wrap_i64 - local.tee $1 - i32.const 255 - i32.and - i32.xor - i32.const 16777619 - i32.mul - local.get $1 - i32.const 8 - i32.shr_u - i32.const 255 - i32.and - i32.xor - i32.const 16777619 - i32.mul - local.get $1 - i32.const 16 - i32.shr_u - i32.const 255 - i32.and - i32.xor - i32.const 16777619 - i32.mul - local.get $1 - i32.const 24 - i32.shr_u - i32.xor - i32.const 16777619 - i32.mul - ) - (func $~lib/map/Map#find (param $0 i32) (param $1 i64) (param $2 i32) (result i32) - local.get $0 - i32.load - 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.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 $2 + loop $for-loop|3 + local.get $2 + i32.const 255 + i32.and + i32.const 100 + i32.lt_u 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 + local.get $1 + local.get $2 + call $~lib/map/Map#has + i32.eqz if - local.get $0 - return + i32.const 0 + i32.const 1568 + i32.const 15 + i32.const 5 + call $~lib/builtins/abort + unreachable end + local.get $1 local.get $2 - i32.const -2 + call $~lib/map/Map#get + local.get $2 + i32.const 255 i32.and - local.set $0 - br $while-continue|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 $1 + local.get $2 + local.get $2 + i32.const 255 + i32.and + i32.const 20 + i32.add + call $~lib/map/Map#set + local.get $1 + local.get $2 + 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 + local.get $1 + local.get $2 + call $~lib/map/Map#get + local.get $2 + i32.const 255 + i32.and + 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 $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|3 end end + local.get $1 + i32.load offset=20 + 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 + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer i32.const 0 - ) - (func $~lib/map/Map#rehash (param $0 i32) (param $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i64) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) + i32.store + local.get $1 + i32.load offset=8 + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.load offset=16 + local.set $4 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -3806,533 +4099,426 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - local.get $1 - i32.const 1 - i32.add + i32.const 16 + i32.const 9 + call $~lib/rt/itcms/__new local.tee $2 - i32.const 2 - i32.shl - call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $8 i32.store + local.get $2 + i32.const 0 + call $~lib/map/Map#set:buckets + local.get $2 + i32.const 0 + i32.store offset=4 + local.get $2 + i32.const 0 + i32.store offset=8 + local.get $2 + i32.const 0 + i32.store offset=12 + local.get $4 + i32.const 1073741820 + i32.gt_u + if + i32.const 1456 + i32.const 1728 + i32.const 58 + i32.const 60 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer + local.get $4 + i32.const 0 + call $~lib/rt/itcms/__new + local.tee $5 + i32.store offset=4 + local.get $5 + local.get $4 + call $~lib/memory/memory.fill 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 + local.get $5 + call $~lib/map/Map#set:buckets + local.get $2 + local.get $5 i32.store offset=4 - local.get $0 - i32.load offset=8 - local.tee $9 - local.get $0 - i32.load offset=16 - i32.const 4 - i32.shl + local.get $2 + local.get $4 + i32.store offset=8 + local.get $2 + local.get $4 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 8 i32.add - local.set $6 - local.get $3 - local.set $2 - loop $while-continue|0 + global.set $~lib/memory/__stack_pointer + local.get $2 + i32.store + loop $for-loop|0 + local.get $4 local.get $6 - local.get $9 - i32.ne + i32.gt_s if - local.get $9 - i32.load offset=12 + local.get $8 + local.get $6 + i32.const 12 + i32.mul + i32.add + local.tee $5 + i32.load offset=8 i32.const 1 i32.and i32.eqz if local.get $2 - local.get $9 - i64.load - local.tee $5 - i64.store - local.get $2 - local.get $9 - i32.load offset=8 - i32.store offset=8 - local.get $2 - local.get $8 + local.get $0 local.get $5 - call $~lib/util/hash/hash64 - local.get $1 - i32.and - i32.const 2 - i32.shl - i32.add - local.tee $4 - i32.load - i32.store offset=12 - local.get $4 - local.get $2 - i32.store - local.get $2 - i32.const 16 + i32.load8_u + call $~lib/array/Array#__set + local.get $0 + i32.const 1 i32.add - local.set $2 + local.set $0 end - local.get $9 - i32.const 16 + local.get $6 + i32.const 1 i32.add - local.set $9 - br $while-continue|0 + local.set $6 + br $for-loop|0 end end + local.get $2 local.get $0 - local.get $8 - call $~lib/map/Map#set:buckets - local.get $0 - local.get $1 - i32.store offset=4 - local.get $0 - local.get $3 - call $~lib/map/Map#set:entries - local.get $0 - local.get $7 - i32.store offset=12 - local.get $0 - local.get $0 - i32.load offset=20 - i32.store offset=16 + call $~lib/array/Array#set:length global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - ) - (func $~lib/array/Array#set:length (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - i32.const 3 - call $~lib/array/ensureSize - local.get $0 + local.get $2 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=12 - ) - (func $~lib/map/Map#rehash (param $0 i32) (param $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i64) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) + call $~lib/map/Map#values + local.tee $7 + i32.store offset=8 global.get $~lib/memory/__stack_pointer - i32.const 8 + 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 - i64.const 0 - i64.store - 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.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 $7 - i32.const 24 - i32.mul - call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $3 - i32.store offset=4 - local.get $0 - i32.load offset=8 - local.tee $9 - local.get $0 - i32.load offset=16 i32.const 24 - i32.mul - i32.add - local.set $6 - local.get $3 - local.set $2 - loop $while-continue|0 - local.get $6 - local.get $9 - i32.ne - if - local.get $9 - i32.load offset=16 - i32.const 1 - i32.and - i32.eqz - if - local.get $2 - local.get $9 - i64.load - local.tee $5 - i64.store - local.get $2 - local.get $9 - i64.load offset=8 - i64.store offset=8 - local.get $2 - local.get $8 - local.get $5 - call $~lib/util/hash/hash64 - local.get $1 - i32.and - i32.const 2 - i32.shl - i32.add - local.tee $4 - i32.load - i32.store offset=16 - local.get $4 - local.get $2 - i32.store - local.get $2 - i32.const 24 - i32.add - local.set $2 - end - local.get $9 - i32.const 24 - i32.add - local.set $9 - br $while-continue|0 - end - end - local.get $0 - local.get $8 - call $~lib/map/Map#set:buckets - local.get $0 - local.get $1 - i32.store offset=4 - local.get $0 - local.get $3 - call $~lib/map/Map#set:entries - local.get $0 - local.get $7 - 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.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/map/Map#clear (param $0 i32) - local.get $0 + i32.const 10 + call $~lib/rt/itcms/__new + local.tee $4 + i32.store + local.get $4 i32.const 16 call $~lib/arraybuffer/ArrayBuffer#constructor call $~lib/map/Map#set:buckets - local.get $0 + local.get $4 i32.const 3 i32.store offset=4 - local.get $0 - i32.const 64 + local.get $4 + i32.const 32 call $~lib/arraybuffer/ArrayBuffer#constructor call $~lib/map/Map#set:entries - local.get $0 + local.get $4 i32.const 4 i32.store offset=12 - local.get $0 + local.get $4 i32.const 0 i32.store offset=16 - local.get $0 + local.get $4 i32.const 0 i32.store offset=20 - ) - (func $~lib/map/Map#find (param $0 i32) (param $1 i64) (param $2 i32) (result i32) - local.get $0 - i32.load - local.get $2 - local.get $0 - i32.load offset=4 - i32.and - i32.const 2 - i32.shl + global.get $~lib/memory/__stack_pointer + i32.const 4 i32.add - i32.load - local.set $0 - loop $while-continue|0 - local.get $0 + global.set $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + call $~lib/map/Map#constructor + local.tee $5 + i32.store offset=16 + loop $for-loop|4 + local.get $3 + local.get $2 + i32.load offset=12 + i32.lt_s if - local.get $0 + local.get $3 + local.get $2 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 + i32.ge_u if - local.get $0 - return + i32.const 1248 + i32.const 1728 + i32.const 92 + i32.const 42 + call $~lib/builtins/abort + unreachable end + local.get $3 local.get $2 - i32.const -2 - i32.and + i32.load offset=4 + i32.add + i32.load8_u local.set $0 - br $while-continue|0 + local.get $7 + local.get $3 + call $~lib/array/Array#__get + local.set $6 + local.get $1 + local.get $0 + 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.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 + local.get $4 + local.get $0 + local.get $0 + call $~lib/map/Map#set + local.get $5 + local.get $6 + i32.const 20 + i32.sub + local.tee $0 + local.get $0 + call $~lib/map/Map#set + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $for-loop|4 end end - i32.const 0 - ) - (func $~lib/map/Map#rehash (param $0 i32) (param $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i64) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - 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 - local.get $0 - i32.load offset=8 - local.tee $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 - i32.ne + local.get $4 + i32.load offset=20 + 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 $5 + i32.load offset=20 + 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 $3 + loop $for-loop|6 + local.get $3 + i32.const 255 + i32.and + i32.const 50 + i32.lt_u if - local.get $9 - i32.load offset=12 + local.get $1 + local.get $3 + 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.get $1 + local.get $3 + call $~lib/map/Map#get + local.get $3 + i32.const 255 + i32.and + 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 + local.get $1 + local.get $3 + call $~lib/map/Map#delete + local.get $1 + local.get $3 + 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 $3 i32.const 1 + i32.add + local.set $3 + br $for-loop|6 + end + end + local.get $1 + i32.load offset=20 + 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 $3 + loop $for-loop|8 + local.get $3 + i32.const 255 + i32.and + i32.const 50 + i32.lt_u + if + local.get $1 + local.get $3 + call $~lib/map/Map#has + if + i32.const 0 + i32.const 1568 + i32.const 50 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $1 + local.get $3 + local.get $3 + i32.const 255 i32.and + i32.const 10 + i32.add + call $~lib/map/Map#set + local.get $1 + local.get $3 + call $~lib/map/Map#has i32.eqz if - local.get $2 - local.get $9 - i64.load - local.tee $5 - i64.store - local.get $2 - local.get $9 - i32.load offset=8 - i32.store offset=8 - local.get $2 - local.get $8 - local.get $5 - call $~lib/util/hash/hash64 - local.get $1 - i32.and - i32.const 2 - i32.shl - i32.add - local.tee $4 - i32.load - i32.store offset=12 - local.get $4 - local.get $2 - i32.store - local.get $2 - i32.const 16 - i32.add - local.set $2 + i32.const 0 + i32.const 1568 + i32.const 52 + i32.const 5 + call $~lib/builtins/abort + unreachable end - local.get $9 - i32.const 16 + local.get $1 + local.get $3 + call $~lib/map/Map#delete + local.get $1 + local.get $3 + 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 $3 + i32.const 1 i32.add - local.set $9 - br $while-continue|0 + local.set $3 + br $for-loop|8 end end - local.get $0 - local.get $8 - call $~lib/map/Map#set:buckets - local.get $0 local.get $1 - i32.store offset=4 - local.get $0 - local.get $3 - call $~lib/map/Map#set:entries - local.get $0 - local.get $7 - i32.store offset=12 - local.get $0 - local.get $0 i32.load offset=20 - i32.store offset=16 + i32.const 50 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 56 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + call $~lib/map/Map#clear + local.get $1 + i32.load offset=20 + if + i32.const 0 + i32.const 1568 + i32.const 60 + i32.const 3 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 20 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 i64) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - 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 24 - i32.mul - call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $3 - i32.store offset=4 - local.get $0 - i32.load offset=8 - local.tee $9 + (func $~lib/util/hash/hash16 (param $0 i32) (result i32) local.get $0 - i32.load offset=16 - i32.const 24 + i32.const 255 + i32.and + i32.const -2128831035 + i32.xor + i32.const 16777619 i32.mul - i32.add - local.set $6 - local.get $3 - local.set $2 - loop $while-continue|0 - local.get $6 - local.get $9 - i32.ne - if - local.get $9 - i32.load offset=16 - i32.const 1 - i32.and - i32.eqz - if - local.get $2 - local.get $9 - i64.load - local.tee $5 - i64.store - local.get $2 - local.get $9 - i64.load offset=8 - i64.store offset=8 - local.get $2 - local.get $8 - local.get $5 - call $~lib/util/hash/hash64 - local.get $1 - i32.and - i32.const 2 - i32.shl - i32.add - local.tee $4 - i32.load - i32.store offset=16 - local.get $4 - local.get $2 - i32.store - local.get $2 - i32.const 24 - i32.add - local.set $2 - end - local.get $9 - i32.const 24 - i32.add - local.set $9 - br $while-continue|0 - end - end - local.get $0 - local.get $8 - call $~lib/map/Map#set:buckets - local.get $0 - local.get $1 - i32.store offset=4 local.get $0 - local.get $3 - call $~lib/map/Map#set:entries - local.get $0 - local.get $7 - 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.add - global.set $~lib/memory/__stack_pointer + i32.shr_u + i32.xor + i32.const 16777619 + i32.mul ) - (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 i32) (param $2 i32) (result i32) local.get $0 i32.load local.get $2 @@ -4355,10 +4541,12 @@ if (result i32) i32.const 0 else - local.get $1 local.get $0 - f32.load - f32.eq + i32.load16_u + local.get $1 + i32.const 65535 + i32.and + i32.eq end if local.get $0 @@ -4373,15 +4561,27 @@ end i32.const 0 ) - (func $~lib/map/Map#rehash (param $0 i32) (param $1 i32) + (func $~lib/map/Map#has (param $0 i32) (param $1 i32) (result i32) + local.get $0 + local.get $1 + local.get $1 + i32.const 16 + i32.shl + i32.const 16 + i32.shr_s + call $~lib/util/hash/hash16 + call $~lib/map/Map#find + i32.const 0 + i32.ne + ) + (func $~lib/map/Map#rehash (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) - (local $5 f32) + (local $5 i32) (local $6 i32) (local $7 i32) (local $8 i32) - (local $9 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -4398,7 +4598,7 @@ i32.const 2 i32.shl call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $8 + local.tee $6 i32.store global.get $~lib/memory/__stack_pointer local.get $2 @@ -4406,7 +4606,7 @@ i32.shl i32.const 3 i32.div_s - local.tee $7 + local.tee $5 i32.const 12 i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor @@ -4414,49 +4614,48 @@ i32.store offset=4 local.get $0 i32.load offset=8 - local.tee $9 + local.tee $8 local.get $0 i32.load offset=16 i32.const 12 i32.mul i32.add - local.set $6 + local.set $4 local.get $3 local.set $2 loop $while-continue|0 - local.get $6 - local.get $9 + local.get $4 + local.get $8 i32.ne if - local.get $9 + local.get $8 i32.load offset=8 i32.const 1 i32.and i32.eqz if local.get $2 - local.get $9 - f32.load - local.tee $5 - f32.store + local.get $8 + i32.load16_s + local.tee $7 + i32.store16 local.get $2 - local.get $9 + local.get $8 i32.load offset=4 i32.store offset=4 local.get $2 - local.get $8 - local.get $5 - i32.reinterpret_f32 - call $~lib/util/hash/hash32 + local.get $6 + local.get $7 + call $~lib/util/hash/hash16 local.get $1 i32.and i32.const 2 i32.shl i32.add - local.tee $4 + local.tee $7 i32.load i32.store offset=8 - local.get $4 + local.get $7 local.get $2 i32.store local.get $2 @@ -4464,15 +4663,15 @@ i32.add local.set $2 end - local.get $9 + local.get $8 i32.const 12 i32.add - local.set $9 + local.set $8 br $while-continue|0 end end local.get $0 - local.get $8 + local.get $6 call $~lib/map/Map#set:buckets local.get $0 local.get $1 @@ -4481,7 +4680,7 @@ local.get $3 call $~lib/map/Map#set:entries local.get $0 - local.get $7 + local.get $5 i32.store offset=12 local.get $0 local.get $0 @@ -4492,175 +4691,84 @@ 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 f32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer + (func $~lib/map/Map#get (param $0 i32) (param $1 i32) (result i32) + local.get $0 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 + local.get $1 + i32.const 16 i32.shl - i32.const 3 - i32.div_s - local.tee $7 - i32.const 12 - i32.mul - call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $3 - i32.store offset=4 + i32.const 16 + i32.shr_s + call $~lib/util/hash/hash16 + 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 - local.tee $9 + i32.load offset=4 + ) + (func $~lib/array/Array#__set (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + local.get $1 local.get $0 - i32.load offset=16 - i32.const 12 - i32.mul - i32.add - local.set $6 - local.get $3 - local.set $2 - loop $while-continue|0 - local.get $6 - local.get $9 - i32.ne + i32.load offset=12 + i32.ge_u + if + local.get $1 + i32.const 0 + i32.lt_s if - local.get $9 - i32.load offset=8 - i32.const 1 - i32.and - i32.eqz - if - local.get $2 - local.get $9 - f32.load - local.tee $5 - f32.store - local.get $2 - local.get $9 - f32.load offset=4 - f32.store offset=4 - local.get $2 - local.get $8 - local.get $5 - i32.reinterpret_f32 - call $~lib/util/hash/hash32 - local.get $1 - 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 $9 - i32.const 12 - i32.add - local.set $9 - br $while-continue|0 + i32.const 1248 + i32.const 1728 + i32.const 108 + 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/ensureSize + local.get $0 + local.get $3 + i32.store offset=12 end local.get $0 - local.get $8 - call $~lib/map/Map#set:buckets - local.get $0 + i32.load offset=4 local.get $1 - i32.store offset=4 - local.get $0 - local.get $3 - call $~lib/map/Map#set:entries - local.get $0 - local.get $7 - 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 1 + i32.shl i32.add - global.set $~lib/memory/__stack_pointer + local.get $2 + i32.store16 ) - (func $~lib/map/Map#find (param $0 i32) (param $1 f64) (param $2 i32) (result i32) + (func $~lib/array/Array#set:length (param $0 i32) (param $1 i32) local.get $0 - i32.load - local.get $2 + local.get $1 + i32.const 1 + call $~lib/array/ensureSize 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 - 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 + local.get $1 + i32.store offset=12 ) - (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 f64) + (local $5 i32) (local $6 i32) (local $7 i32) (local $8 i32) - (local $9 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -4677,7 +4785,7 @@ i32.const 2 i32.shl call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $8 + local.tee $6 i32.store global.get $~lib/memory/__stack_pointer local.get $2 @@ -4685,73 +4793,72 @@ i32.shl i32.const 3 i32.div_s - local.tee $7 - i32.const 4 + local.tee $5 + i32.const 3 i32.shl call $~lib/arraybuffer/ArrayBuffer#constructor local.tee $3 i32.store offset=4 local.get $0 i32.load offset=8 - local.tee $9 + local.tee $8 local.get $0 i32.load offset=16 - i32.const 4 + i32.const 3 i32.shl i32.add - local.set $6 + local.set $4 local.get $3 local.set $2 loop $while-continue|0 - local.get $6 - local.get $9 + local.get $4 + local.get $8 i32.ne if - local.get $9 - i32.load offset=12 + local.get $8 + i32.load offset=4 i32.const 1 i32.and i32.eqz 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 $8 + i32.load16_s + local.tee $7 + i32.store16 local.get $2 local.get $8 - local.get $5 - i64.reinterpret_f64 - call $~lib/util/hash/hash64 + i32.load16_s offset=2 + i32.store16 offset=2 + local.get $2 + local.get $6 + local.get $7 + call $~lib/util/hash/hash16 local.get $1 i32.and i32.const 2 i32.shl i32.add - local.tee $4 + local.tee $7 i32.load - i32.store offset=12 - local.get $4 + i32.store offset=4 + local.get $7 local.get $2 i32.store local.get $2 - i32.const 16 + i32.const 8 i32.add local.set $2 end - local.get $9 - i32.const 16 + local.get $8 + i32.const 8 i32.add - local.set $9 + local.set $8 br $while-continue|0 end end local.get $0 - local.get $8 + local.get $6 call $~lib/map/Map#set:buckets local.get $0 local.get $1 @@ -4760,7 +4867,7 @@ local.get $3 call $~lib/map/Map#set:entries local.get $0 - local.get $7 + local.get $5 i32.store offset=12 local.get $0 local.get $0 @@ -4771,496 +4878,334 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/map/Map#rehash (param $0 i32) (param $1 i32) + (func $~lib/map/Map#delete (param $0 i32) (param $1 i32) (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 f64) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - 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 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 + local.get $1 + i32.const 16 i32.shl - i32.const 3 - i32.div_s - local.tee $7 - i32.const 24 - i32.mul - call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $3 - i32.store offset=4 - local.get $0 + i32.const 16 + i32.shr_s + call $~lib/util/hash/hash16 + call $~lib/map/Map#find + local.tee $1 + i32.eqz + if + return + end + local.get $1 + local.get $1 i32.load offset=8 - local.tee $9 - local.get $0 - i32.load offset=16 - i32.const 24 - i32.mul - i32.add - local.set $6 - local.get $3 - local.set $2 - loop $while-continue|0 - local.get $6 - local.get $9 - i32.ne - if - local.get $9 - i32.load offset=16 - i32.const 1 - i32.and - i32.eqz - if - local.get $2 - local.get $9 - f64.load - local.tee $5 - f64.store - local.get $2 - local.get $9 - f64.load offset=8 - f64.store offset=8 - local.get $2 - local.get $8 - local.get $5 - i64.reinterpret_f64 - call $~lib/util/hash/hash64 - local.get $1 - i32.and - i32.const 2 - i32.shl - i32.add - local.tee $4 - i32.load - i32.store offset=16 - local.get $4 - local.get $2 - i32.store - local.get $2 - i32.const 24 - i32.add - local.set $2 - end - local.get $9 - i32.const 24 - i32.add - local.set $9 - br $while-continue|0 - end - end - local.get $0 - local.get $8 - call $~lib/map/Map#set:buckets - local.get $0 - local.get $1 - i32.store offset=4 + i32.const 1 + i32.or + i32.store offset=8 local.get $0 - local.get $3 - call $~lib/map/Map#set:entries local.get $0 - local.get $7 - i32.store offset=12 + i32.load offset=20 + i32.const 1 + i32.sub + i32.store offset=20 local.get $0 + i32.load offset=4 + i32.const 1 + i32.shr_u + local.tee $2 + i32.const 1 + i32.add + i32.const 4 local.get $0 i32.load offset=20 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/rt/__visit_members (param $0 i32) - block $folding-inner1 - block $folding-inner0 - block $invalid - block $~lib/arraybuffer/ArrayBufferView - block $~lib/string/String - block $~lib/arraybuffer/ArrayBuffer - local.get $0 - i32.const 8 - i32.sub - i32.load - br_table $~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 - local.get $0 - i32.load - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end - return - end - unreachable - end + local.tee $1 + local.get $1 + i32.const 4 + i32.lt_u + select + i32.ge_u + if (result i32) local.get $0 - i32.load - call $~lib/rt/itcms/__visit + i32.load offset=20 local.get $0 - i32.load offset=8 - call $~lib/rt/itcms/__visit - return - end - local.get $0 - i32.load - call $~lib/rt/itcms/__visit - ) - (func $~start - i32.const 1168 - call $~lib/rt/itcms/initLazy - global.set $~lib/rt/itcms/pinSpace - i32.const 1200 - call $~lib/rt/itcms/initLazy - global.set $~lib/rt/itcms/toSpace - i32.const 1344 - 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 - 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 + i32.load offset=12 + i32.const 3 + i32.mul + i32.const 4 + i32.div_s + i32.lt_s + else + i32.const 0 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 $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 2020 - i32.lt_s if - i32.const 18432 - i32.const 18480 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable + local.get $0 + local.get $2 + call $~lib/map/Map#rehash end ) - (func $~lib/map/Map#has (param $0 i32) (param $1 i32) (result i32) + (func $std/map/testNumeric + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 20 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 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.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 24 - i32.shl - i32.const 24 - i32.shr_s - i32.const -2128831035 - i32.xor - i32.const 16777619 - i32.mul - call $~lib/map/Map#find i32.const 0 - i32.ne + i32.store offset=16 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) 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 - global.get $~lib/memory/__stack_pointer - local.get $0 + i32.const 0 i32.store - local.get $1 - i32.const 24 - i32.shl + global.get $~lib/memory/__stack_pointer i32.const 24 - i32.shr_s - i32.const -2128831035 - i32.xor - i32.const 16777619 - i32.mul - local.tee $3 - local.set $4 - local.get $0 + i32.const 11 + call $~lib/rt/itcms/__new + local.tee $1 + i32.store + local.get $1 + i32.const 16 + call $~lib/arraybuffer/ArrayBuffer#constructor + call $~lib/map/Map#set:buckets + local.get $1 + i32.const 3 + i32.store offset=4 + local.get $1 + i32.const 48 + call $~lib/arraybuffer/ArrayBuffer#constructor + call $~lib/map/Map#set:entries local.get $1 - local.get $3 - call $~lib/map/Map#find - local.tee $3 - if - local.get $3 - local.get $2 - i32.store offset=4 - else - local.get $0 - i32.load offset=16 - local.get $0 - i32.load offset=12 - i32.eq - if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - local.get $0 - i32.load offset=20 - 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 $0 - i32.load offset=4 - else - 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.load offset=8 - local.tee $3 - 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 - local.get $0 - local.get $0 - i32.load offset=20 - i32.const 1 - i32.add - i32.store offset=20 - local.get $3 - local.get $0 - i32.load - 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.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 - call $~stack_check - global.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.store offset=12 local.get $1 + i32.const 0 + i32.store offset=16 local.get $1 - i32.const 24 - i32.shl - i32.const 24 - i32.shr_s - i32.const -2128831035 - i32.xor - i32.const 16777619 - i32.mul - 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 + i32.const 0 + i32.store offset=20 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 - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store local.get $1 - local.get $0 - i32.load offset=12 - i32.ge_u - if - local.get $1 - i32.const 0 + i32.store + loop $for-loop|1 + local.get $2 + i32.const 16 + i32.shl + i32.const 16 + i32.shr_s + i32.const 100 i32.lt_s if - i32.const 1248 - i32.const 1728 - i32.const 108 - i32.const 22 - call $~lib/builtins/abort - unreachable + local.get $1 + local.get $2 + call $~lib/map/Map#has + if + i32.const 0 + i32.const 1568 + i32.const 6 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $1 + local.get $2 + local.get $2 + i32.const 16 + i32.shl + i32.const 16 + i32.shr_s + i32.const 10 + i32.add + call $~lib/map/Map#set + local.get $1 + local.get $2 + 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 + local.get $1 + local.get $2 + call $~lib/map/Map#get + local.get $2 + i32.const 16 + i32.shl + i32.const 16 + i32.shr_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 $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|1 end - local.get $0 - local.get $1 - i32.const 1 - i32.add - local.tee $3 - i32.const 0 - call $~lib/array/ensureSize - 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 + i32.load offset=20 + 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 $2 + loop $for-loop|3 + local.get $2 + i32.const 16 + i32.shl + i32.const 16 + i32.shr_s + i32.const 100 + i32.lt_s + if + local.get $1 + local.get $2 + 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 $1 + local.get $2 + call $~lib/map/Map#get + local.get $2 + i32.const 16 + i32.shl + i32.const 16 + i32.shr_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 + local.get $1 + local.get $2 + local.get $2 + i32.const 16 + i32.shl + i32.const 16 + i32.shr_s + i32.const 20 + i32.add + call $~lib/map/Map#set + local.get $1 + local.get $2 + 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 + local.get $1 + local.get $2 + call $~lib/map/Map#get + local.get $2 + i32.const 16 + i32.shl + i32.const 16 + i32.shr_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 $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|3 + end + end + local.get $1 + i32.load offset=20 + 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 - 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 i32) - (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 call $~stack_check global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - local.get $0 + i32.const 0 + i32.store + local.get $1 i32.load offset=8 - local.set $5 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.load offset=16 - local.set $0 + local.set $4 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -5271,7 +5216,7 @@ i64.store global.get $~lib/memory/__stack_pointer i32.const 16 - i32.const 4 + i32.const 12 call $~lib/rt/itcms/__new local.tee $2 i32.store @@ -5287,8 +5232,8 @@ local.get $2 i32.const 0 i32.store offset=12 - local.get $0 - i32.const 1073741820 + local.get $4 + i32.const 536870910 i32.gt_u if i32.const 1456 @@ -5299,25 +5244,28 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $4 + i32.const 1 + i32.shl + local.tee $7 i32.const 0 call $~lib/rt/itcms/__new - local.tee $3 + local.tee $5 i32.store offset=4 - local.get $3 - local.get $0 + local.get $5 + local.get $7 call $~lib/memory/memory.fill local.get $2 - local.get $3 + local.get $5 call $~lib/map/Map#set:buckets local.get $2 - local.get $3 + local.get $5 i32.store offset=4 local.get $2 - local.get $0 + local.get $7 i32.store offset=8 local.get $2 - local.get $0 + local.get $4 i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 8 @@ -5326,55 +5274,53 @@ local.get $2 i32.store loop $for-loop|0 - local.get $0 local.get $4 + local.get $6 i32.gt_s if - local.get $5 - local.get $4 + local.get $9 + local.get $6 i32.const 12 i32.mul i32.add - local.tee $3 + local.tee $5 i32.load offset=8 i32.const 1 i32.and i32.eqz if - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 local.get $2 - local.get $1 - local.get $3 - i32.load8_s - call $~lib/array/Array#__set - local.get $1 + local.get $0 + local.get $5 + i32.load16_s + call $~lib/array/Array#__set + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 end - local.get $4 + local.get $6 i32.const 1 i32.add - local.set $4 + local.set $6 br $for-loop|0 end end - global.get $~lib/memory/__stack_pointer local.get $2 - i32.store offset=4 - local.get $2 - local.get $1 - call $~lib/array/Array#set:length + local.get $0 + call $~lib/array/Array#set:length 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#__set (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + call $~lib/map/Map#values + local.tee $7 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -5383,280 +5329,328 @@ global.get $~lib/memory/__stack_pointer i32.const 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 1728 - i32.const 108 - 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/ensureSize - 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.const 24 + i32.const 13 + call $~lib/rt/itcms/__new + local.tee $4 i32.store + local.get $4 + i32.const 16 + call $~lib/arraybuffer/ArrayBuffer#constructor + call $~lib/map/Map#set:buckets + local.get $4 + i32.const 3 + i32.store offset=4 + local.get $4 + i32.const 32 + call $~lib/arraybuffer/ArrayBuffer#constructor + call $~lib/map/Map#set:entries + local.get $4 + i32.const 4 + i32.store offset=12 + local.get $4 + i32.const 0 + i32.store offset=16 + local.get $4 + i32.const 0 + i32.store offset=20 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 + i32.const 4 + i32.add global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - local.get $0 - i32.load offset=8 - local.set $3 + local.get $4 + i32.store offset=12 global.get $~lib/memory/__stack_pointer - local.get $0 - i32.load offset=16 - local.tee $4 - call $~lib/array/Array#constructor - local.tee $0 - i32.store - loop $for-loop|0 + call $~lib/map/Map#constructor + local.tee $5 + i32.store offset=16 + loop $for-loop|4 + local.get $3 local.get $2 - local.get $4 + i32.load offset=12 i32.lt_s if local.get $3 local.get $2 - i32.const 12 - i32.mul - i32.add - local.tee $5 - i32.load offset=8 - i32.const 1 - i32.and - i32.eqz + i32.load offset=12 + i32.ge_u if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - local.get $1 - local.get $5 - i32.load offset=4 - call $~lib/array/Array#__set - local.get $1 - i32.const 1 - i32.add - local.set $1 + i32.const 1248 + i32.const 1728 + i32.const 92 + i32.const 42 + call $~lib/builtins/abort + unreachable end local.get $2 + i32.load offset=4 + local.get $3 i32.const 1 + i32.shl i32.add - local.set $2 - br $for-loop|0 - end - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - 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 $0 - ) - (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 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 - local.get $0 - i32.store - local.get $0 - i32.load - local.get $1 - local.tee $3 - i32.const 24 - i32.shl - i32.const 24 - i32.shr_s - i32.const -2128831035 - i32.xor - i32.const 16777619 - i32.mul - local.tee $5 - local.get $0 - i32.load offset=4 - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $1 - block $__inlined_func$~lib/map/Map#find - loop $while-continue|0 + i32.load16_s + local.set $0 + local.get $7 + local.get $3 + call $~lib/array/Array#__get + local.set $6 local.get $1 + local.get $0 + call $~lib/map/Map#has + i32.eqz if - local.get $1 - i32.load offset=4 - local.tee $4 - i32.const 1 - i32.and - if (result i32) - i32.const 0 - else - local.get $1 - i32.load8_u - local.get $3 - i32.const 255 - i32.and - i32.eq - end - br_if $__inlined_func$~lib/map/Map#find - local.get $4 - i32.const -2 - i32.and - local.set $1 - br $while-continue|0 + i32.const 0 + i32.const 1568 + i32.const 31 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + 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 + local.get $4 + local.get $0 + local.get $0 + call $~lib/map/Map#set + local.get $5 + local.get $6 + i32.const 20 + i32.sub + local.tee $0 + local.get $0 + call $~lib/map/Map#set + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $for-loop|4 end + end + local.get $4 + i32.load offset=20 + i32.const 100 + i32.ne + if i32.const 0 - local.set $1 + i32.const 1568 + i32.const 36 + i32.const 3 + call $~lib/builtins/abort + unreachable end - local.get $1 + local.get $5 + i32.load offset=20 + i32.const 100 + i32.ne if - local.get $1 - local.get $2 - i32.store8 offset=1 - else - local.get $0 - i32.load offset=16 - local.get $0 - i32.load offset=12 - i32.eq + i32.const 0 + i32.const 1568 + i32.const 37 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $3 + loop $for-loop|6 + local.get $3 + i32.const 16 + i32.shl + i32.const 16 + i32.shr_s + i32.const 50 + i32.lt_s if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - local.get $0 - i32.load offset=20 - 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 $0 - i32.load offset=4 - else - local.get $0 - i32.load offset=4 - i32.const 1 - i32.shl - i32.const 1 - i32.or + local.get $1 + local.get $3 + 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 - call $~lib/map/Map#rehash + local.get $1 + local.get $3 + call $~lib/map/Map#get + local.get $3 + i32.const 16 + i32.shl + i32.const 16 + i32.shr_s + 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 + local.get $1 + local.get $3 + call $~lib/map/Map#delete + local.get $1 + local.get $3 + 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 $3 + i32.const 1 + i32.add + local.set $3 + br $for-loop|6 end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.load offset=8 - local.tee $1 - 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 $1 - local.get $4 + end + local.get $1 + i32.load offset=20 + i32.const 50 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 46 i32.const 3 - i32.shl - i32.add - local.tee $1 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $3 + loop $for-loop|8 local.get $3 - i32.store8 - local.get $1 - local.get $2 - i32.store8 offset=1 - local.get $0 - local.get $0 - i32.load offset=20 - i32.const 1 - i32.add - i32.store offset=20 - local.get $1 - local.get $0 - i32.load - local.get $5 - local.get $0 - i32.load offset=4 - i32.and - i32.const 2 + i32.const 16 i32.shl - i32.add - local.tee $0 - i32.load - i32.store offset=4 - local.get $0 - local.get $1 - i32.store + i32.const 16 + i32.shr_s + i32.const 50 + i32.lt_s + if + local.get $1 + local.get $3 + call $~lib/map/Map#has + if + i32.const 0 + i32.const 1568 + i32.const 50 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $1 + local.get $3 + local.get $3 + i32.const 16 + i32.shl + i32.const 16 + i32.shr_s + i32.const 10 + i32.add + call $~lib/map/Map#set + local.get $1 + local.get $3 + call $~lib/map/Map#has + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 52 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $1 + local.get $3 + call $~lib/map/Map#delete + local.get $1 + local.get $3 + 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 $3 + i32.const 1 + i32.add + local.set $3 + br $for-loop|8 + end + end + local.get $1 + i32.load offset=20 + i32.const 50 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 56 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + call $~lib/map/Map#clear + local.get $1 + i32.load offset=20 + if + i32.const 0 + i32.const 1568 + i32.const 60 + i32.const 3 + call $~lib/builtins/abort + unreachable end global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 20 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#has (param $0 i32) (param $1 i32) (result i32) + local.get $0 + local.get $1 + local.get $1 + i32.const 65535 + i32.and + call $~lib/util/hash/hash16 + call $~lib/map/Map#find + i32.const 0 + i32.ne + ) + (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 8 i32.sub @@ -5665,204 +5659,138 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store + global.get $~lib/memory/__stack_pointer local.get $1 - call $~lib/util/hash/hash32 - local.set $4 + 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 local.get $0 - i32.store + i32.load offset=8 + local.tee $8 local.get $0 - local.get $1 - local.get $4 - call $~lib/map/Map#find - local.tee $3 - if - local.get $3 - local.get $2 - i32.store offset=4 - else - local.get $0 - i32.load offset=16 - local.get $0 - i32.load offset=12 - i32.eq + 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 $8 + i32.ne if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - local.get $0 - i32.load offset=20 - 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 $0 - i32.load offset=4 - else - local.get $0 + local.get $8 + i32.load offset=8 + i32.const 1 + i32.and + i32.eqz + if + local.get $2 + local.get $8 + i32.load16_u + local.tee $7 + i32.store16 + local.get $2 + local.get $8 i32.load offset=4 - i32.const 1 + i32.store offset=4 + local.get $2 + local.get $6 + local.get $7 + call $~lib/util/hash/hash16 + local.get $1 + i32.and + i32.const 2 i32.shl - i32.const 1 - i32.or + i32.add + local.tee $7 + i32.load + i32.store offset=8 + local.get $7 + local.get $2 + i32.store + local.get $2 + i32.const 12 + i32.add + local.set $2 end - call $~lib/map/Map#rehash + local.get $8 + i32.const 12 + i32.add + local.set $8 + br $while-continue|0 end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.load offset=8 - local.tee $3 - 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 - local.get $0 - local.get $0 - i32.load offset=20 - i32.const 1 - i32.add - i32.store offset=20 - local.get $3 - local.get $0 - i32.load - 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.get $0 + local.get $6 + call $~lib/map/Map#set:buckets + local.get $0 + local.get $1 + i32.store offset=4 + local.get $0 + local.get $3 + call $~lib/map/Map#set:entries + local.get $0 + local.get $5 + 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.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 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 - local.get $0 - i32.store + (func $~lib/map/Map#get (param $0 i32) (param $1 i32) (result i32) local.get $0 local.get $1 local.get $1 - i32.const 24 - i32.shl - i32.const 24 - i32.shr_s - i32.const -2128831035 - i32.xor - i32.const 16777619 - i32.mul - call $~lib/map/Map#find - local.tee $1 + i32.const 65535 + i32.and + call $~lib/util/hash/hash16 + call $~lib/map/Map#find + local.tee $0 i32.eqz if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - return + i32.const 1616 + i32.const 1680 + i32.const 105 + i32.const 17 + call $~lib/builtins/abort + unreachable end - local.get $1 - local.get $1 - i32.load offset=8 - i32.const 1 - i32.or - i32.store offset=8 - local.get $0 - local.get $0 - i32.load offset=20 - i32.const 1 - i32.sub - i32.store offset=20 local.get $0 i32.load offset=4 - i32.const 1 - i32.shr_u - local.tee $2 - i32.const 1 - i32.add - i32.const 4 - local.get $0 - i32.load offset=20 - local.tee $1 - local.get $1 - i32.const 4 - i32.lt_u - select - i32.ge_u - if (result i32) - local.get $0 - i32.load offset=20 - 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 4 - 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) (local $5 i32) (local $6 i32) (local $7 i32) + (local $8 i32) global.get $~lib/memory/__stack_pointer - i32.const 24 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check @@ -5870,67 +5798,244 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=8 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=16 - global.get $~lib/memory/__stack_pointer - 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.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 - i32.const 24 + local.get $2 i32.const 3 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - local.get $0 - i32.const 16 + i32.shl + i32.const 3 + i32.div_s + local.tee $5 + i32.const 3 + i32.shl call $~lib/arraybuffer/ArrayBuffer#constructor - call $~lib/map/Map#set:buckets + local.tee $3 + i32.store offset=4 + local.get $0 + i32.load offset=8 + local.tee $8 local.get $0 + i32.load offset=16 i32.const 3 + i32.shl + i32.add + local.set $4 + local.get $3 + local.set $2 + loop $while-continue|0 + local.get $4 + local.get $8 + i32.ne + if + local.get $8 + i32.load offset=4 + i32.const 1 + i32.and + i32.eqz + if + local.get $2 + local.get $8 + i32.load16_u + local.tee $7 + i32.store16 + local.get $2 + local.get $8 + i32.load16_u offset=2 + i32.store16 offset=2 + local.get $2 + local.get $6 + local.get $7 + call $~lib/util/hash/hash16 + local.get $1 + i32.and + i32.const 2 + i32.shl + i32.add + local.tee $7 + i32.load + i32.store offset=4 + local.get $7 + local.get $2 + i32.store + local.get $2 + i32.const 8 + i32.add + local.set $2 + end + local.get $8 + i32.const 8 + i32.add + local.set $8 + br $while-continue|0 + end + end + local.get $0 + local.get $6 + call $~lib/map/Map#set:buckets + local.get $0 + local.get $1 i32.store offset=4 local.get $0 + local.get $3 + call $~lib/map/Map#set:entries + local.get $0 + local.get $5 + 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.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/map/Map#delete (param $0 i32) (param $1 i32) + (local $2 i32) + local.get $0 + local.get $1 + local.get $1 + i32.const 65535 + i32.and + call $~lib/util/hash/hash16 + call $~lib/map/Map#find + local.tee $1 + i32.eqz + if + return + end + local.get $1 + local.get $1 + i32.load offset=8 + i32.const 1 + i32.or + i32.store offset=8 + local.get $0 + local.get $0 + i32.load offset=20 + i32.const 1 + i32.sub + i32.store offset=20 + local.get $0 + i32.load offset=4 + i32.const 1 + i32.shr_u + local.tee $2 + i32.const 1 + i32.add + i32.const 4 + local.get $0 + i32.load offset=20 + local.tee $1 + local.get $1 + i32.const 4 + i32.lt_u + select + i32.ge_u + if (result i32) + local.get $0 + i32.load offset=20 + 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 $0 + local.get $2 + call $~lib/map/Map#rehash + end + ) + (func $std/map/testNumeric + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 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 + 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 0 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + 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 + i32.const 24 + i32.const 14 + call $~lib/rt/itcms/__new + local.tee $1 + i32.store + local.get $1 + i32.const 16 + call $~lib/arraybuffer/ArrayBuffer#constructor + call $~lib/map/Map#set:buckets + local.get $1 + i32.const 3 + i32.store offset=4 + local.get $1 i32.const 48 call $~lib/arraybuffer/ArrayBuffer#constructor call $~lib/map/Map#set:entries - local.get $0 + local.get $1 i32.const 4 i32.store offset=12 - local.get $0 + local.get $1 i32.const 0 i32.store offset=16 - local.get $0 + local.get $1 i32.const 0 i32.store offset=20 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store loop $for-loop|1 - local.get $1 - i32.const 24 - i32.shl - i32.const 24 - i32.shr_s + local.get $2 + i32.const 65535 + i32.and i32.const 100 - i32.lt_s + i32.lt_u 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 + local.get $2 + call $~lib/map/Map#has if i32.const 0 i32.const 1568 @@ -5939,25 +6044,17 @@ 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.const 24 - i32.shl - i32.const 24 - i32.shr_s + local.get $2 + local.get $2 + i32.const 65535 + i32.and 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 + call $~lib/map/Map#set local.get $1 - call $~lib/map/Map#has + local.get $2 + call $~lib/map/Map#has i32.eqz if i32.const 0 @@ -5967,17 +6064,12 @@ 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.const 24 - i32.shl - i32.const 24 - i32.shr_s + local.get $2 + call $~lib/map/Map#get + local.get $2 + i32.const 65535 + i32.and i32.const 10 i32.add i32.ne @@ -5989,17 +6081,14 @@ 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|1 end end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 + local.get $1 i32.load offset=20 i32.const 100 i32.ne @@ -6012,22 +6101,17 @@ unreachable end i32.const 0 - local.set $1 + local.set $2 loop $for-loop|3 - local.get $1 - i32.const 24 - i32.shl - i32.const 24 - i32.shr_s + local.get $2 + i32.const 65535 + i32.and i32.const 100 - i32.lt_s + i32.lt_u 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 + local.get $2 + call $~lib/map/Map#has i32.eqz if i32.const 0 @@ -6037,17 +6121,12 @@ 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.const 24 - i32.shl - i32.const 24 - i32.shr_s + local.get $2 + call $~lib/map/Map#get + local.get $2 + i32.const 65535 + i32.and i32.const 10 i32.add i32.ne @@ -6059,25 +6138,17 @@ 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.const 24 - i32.shl - i32.const 24 - i32.shr_s + local.get $2 + local.get $2 + i32.const 65535 + i32.and 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 + call $~lib/map/Map#set local.get $1 - call $~lib/map/Map#has + local.get $2 + call $~lib/map/Map#has i32.eqz if i32.const 0 @@ -6087,17 +6158,12 @@ 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.const 24 - i32.shl - i32.const 24 - i32.shr_s + local.get $2 + call $~lib/map/Map#get + local.get $2 + i32.const 65535 + i32.and i32.const 20 i32.add i32.ne @@ -6109,17 +6175,14 @@ 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|3 end end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 + local.get $1 i32.load offset=20 i32.const 100 i32.ne @@ -6132,21 +6195,135 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $0 + 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 $1 + i32.load offset=8 + local.set $9 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.load offset=16 + local.set $4 + 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 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.const 15 + call $~lib/rt/itcms/__new + local.tee $2 + i32.store + local.get $2 + i32.const 0 + call $~lib/map/Map#set:buckets + local.get $2 + i32.const 0 i32.store offset=4 + local.get $2 + i32.const 0 + i32.store offset=8 + local.get $2 + i32.const 0 + i32.store offset=12 + local.get $4 + i32.const 536870910 + i32.gt_u + if + i32.const 1456 + i32.const 1728 + i32.const 58 + i32.const 60 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer - local.get $0 - call $~lib/map/Map#keys - local.tee $3 + local.get $4 + i32.const 1 + i32.shl + local.tee $7 + i32.const 0 + call $~lib/rt/itcms/__new + local.tee $5 + i32.store offset=4 + local.get $5 + local.get $7 + call $~lib/memory/memory.fill + local.get $2 + local.get $5 + call $~lib/map/Map#set:buckets + local.get $2 + local.get $5 + i32.store offset=4 + local.get $2 + local.get $7 i32.store offset=8 + local.get $2 + local.get $4 + i32.store offset=12 global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + i32.store + loop $for-loop|0 + local.get $4 + local.get $6 + i32.gt_s + if + local.get $9 + local.get $6 + i32.const 12 + i32.mul + i32.add + local.tee $5 + i32.load offset=8 + i32.const 1 + i32.and + i32.eqz + if + local.get $2 + local.get $0 + local.get $5 + i32.load16_u + call $~lib/array/Array#__set + local.get $0 + i32.const 1 + i32.add + local.set $0 + end + local.get $6 + i32.const 1 + i32.add + local.set $6 + br $for-loop|0 + end + end + local.get $2 local.get $0 + call $~lib/array/Array#set:length + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 call $~lib/map/Map#values - local.tee $6 - i32.store offset=12 + local.tee $7 + i32.store offset=8 global.get $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 4 @@ -6158,54 +6335,48 @@ i32.store global.get $~lib/memory/__stack_pointer i32.const 24 - i32.const 6 + i32.const 16 call $~lib/rt/itcms/__new - local.tee $1 + local.tee $4 i32.store - local.get $1 + local.get $4 i32.const 16 call $~lib/arraybuffer/ArrayBuffer#constructor call $~lib/map/Map#set:buckets - local.get $1 + local.get $4 i32.const 3 i32.store offset=4 - local.get $1 + local.get $4 i32.const 32 call $~lib/arraybuffer/ArrayBuffer#constructor call $~lib/map/Map#set:entries - local.get $1 + local.get $4 i32.const 4 i32.store offset=12 - local.get $1 + local.get $4 i32.const 0 i32.store offset=16 - local.get $1 + local.get $4 i32.const 0 i32.store offset=20 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=16 + local.get $4 + i32.store offset=12 global.get $~lib/memory/__stack_pointer call $~lib/map/Map#constructor - local.tee $4 - i32.store offset=20 + local.tee $5 + i32.store offset=16 loop $for-loop|4 - global.get $~lib/memory/__stack_pointer local.get $3 - i32.store offset=4 local.get $2 - local.get $3 i32.load offset=12 i32.lt_s if - global.get $~lib/memory/__stack_pointer local.get $3 - i32.store offset=4 local.get $2 - local.get $3 i32.load offset=12 i32.ge_u if @@ -6217,24 +6388,20 @@ unreachable end local.get $2 - local.get $3 i32.load offset=4 + local.get $3 + i32.const 1 + i32.shl i32.add - i32.load8_s - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - local.get $2 + i32.load16_u + local.set $0 + local.get $7 + local.get $3 call $~lib/array/Array#__get - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 + local.set $6 + local.get $1 local.get $0 - local.get $5 - call $~lib/map/Map#has + call $~lib/map/Map#has i32.eqz if i32.const 0 @@ -6244,14 +6411,11 @@ 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 + 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 @@ -6261,34 +6425,25 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $5 - local.get $5 - call $~lib/map/Map#set - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 local.get $4 - local.get $7 + local.get $0 + local.get $0 + call $~lib/map/Map#set + local.get $5 + local.get $6 i32.const 20 i32.sub - local.tee $5 - local.get $5 + local.tee $0 + local.get $0 call $~lib/map/Map#set - local.get $2 + local.get $3 i32.const 1 i32.add - local.set $2 + local.set $3 br $for-loop|4 end end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 + local.get $4 i32.load offset=20 i32.const 100 i32.ne @@ -6300,10 +6455,7 @@ 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 i32.load offset=20 i32.const 100 i32.ne @@ -6316,22 +6468,17 @@ unreachable end i32.const 0 - local.set $2 + local.set $3 loop $for-loop|6 - local.get $2 - i32.const 24 - i32.shl - i32.const 24 - i32.shr_s + local.get $3 + i32.const 65535 + i32.and i32.const 50 - i32.lt_s + i32.lt_u if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - local.get $2 - call $~lib/map/Map#has + local.get $1 + local.get $3 + call $~lib/map/Map#has i32.eqz if i32.const 0 @@ -6341,17 +6488,12 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - local.get $2 - call $~lib/map/Map#get - local.get $2 - i32.const 24 - i32.shl - i32.const 24 - i32.shr_s + local.get $1 + local.get $3 + call $~lib/map/Map#get + local.get $3 + i32.const 65535 + i32.and i32.const 20 i32.add i32.ne @@ -6363,18 +6505,12 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - local.get $2 - call $~lib/map/Map#delete - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - local.get $2 - call $~lib/map/Map#has + local.get $1 + local.get $3 + call $~lib/map/Map#delete + local.get $1 + local.get $3 + call $~lib/map/Map#has if i32.const 0 i32.const 1568 @@ -6383,17 +6519,14 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $3 i32.const 1 i32.add - local.set $2 + local.set $3 br $for-loop|6 end end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 + local.get $1 i32.load offset=20 i32.const 50 i32.ne @@ -6406,22 +6539,17 @@ unreachable end i32.const 0 - local.set $2 + local.set $3 loop $for-loop|8 - local.get $2 - i32.const 24 - i32.shl - i32.const 24 - i32.shr_s + local.get $3 + i32.const 65535 + i32.and i32.const 50 - i32.lt_s + i32.lt_u if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - local.get $2 - call $~lib/map/Map#has + local.get $1 + local.get $3 + call $~lib/map/Map#has if i32.const 0 i32.const 1568 @@ -6430,25 +6558,17 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - local.get $2 - local.get $2 - i32.const 24 - i32.shl - i32.const 24 - i32.shr_s + local.get $1 + local.get $3 + local.get $3 + i32.const 65535 + i32.and 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 $2 - call $~lib/map/Map#has + call $~lib/map/Map#set + local.get $1 + local.get $3 + call $~lib/map/Map#has i32.eqz if i32.const 0 @@ -6458,18 +6578,12 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - local.get $2 - call $~lib/map/Map#delete - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - local.get $2 - call $~lib/map/Map#has + local.get $1 + local.get $3 + call $~lib/map/Map#delete + local.get $1 + local.get $3 + call $~lib/map/Map#has if i32.const 0 i32.const 1568 @@ -6478,17 +6592,14 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $3 i32.const 1 i32.add - local.set $2 + local.set $3 br $for-loop|8 end end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 + local.get $1 i32.load offset=20 i32.const 50 i32.ne @@ -6500,15 +6611,9 @@ 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#clear - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 + local.get $1 i32.load offset=20 if i32.const 0 @@ -6519,1249 +6624,782 @@ unreachable end global.get $~lib/memory/__stack_pointer - i32.const 24 + i32.const 20 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 - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store + (func $~lib/map/Map#has (param $0 i32) (param $1 i32) (result i32) local.get $0 local.get $1 local.get $1 - i32.const 255 - i32.and - i32.const -2128831035 - i32.xor - i32.const 16777619 - i32.mul - call $~lib/map/Map#find + call $~lib/util/hash/hash32 + 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#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 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 + (func $~lib/map/Map#get (param $0 i32) (param $1 i32) (result i32) local.get $0 - i32.store local.get $1 - i32.const 255 - i32.and - i32.const -2128831035 - i32.xor - i32.const 16777619 - i32.mul - local.tee $3 - local.set $4 - local.get $0 local.get $1 - local.get $3 - call $~lib/map/Map#find - local.tee $3 + call $~lib/util/hash/hash32 + call $~lib/map/Map#find + local.tee $0 + i32.eqz if - local.get $3 - local.get $2 - i32.store offset=4 - else - local.get $0 - i32.load offset=16 - local.get $0 - i32.load offset=12 - i32.eq - if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - local.get $0 - i32.load offset=20 - 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 $0 - i32.load offset=4 - else - 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.load offset=8 - local.tee $3 - 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 - local.get $0 - local.get $0 - i32.load offset=20 - i32.const 1 - i32.add - i32.store offset=20 - local.get $3 - local.get $0 - i32.load - 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 1616 + i32.const 1680 + i32.const 105 + i32.const 17 + 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/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 - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer local.get $0 - i32.store + i32.load offset=4 + ) + (func $~lib/map/Map#delete (param $0 i32) (param $1 i32) + (local $2 i32) local.get $0 local.get $1 local.get $1 - i32.const 255 - i32.and - i32.const -2128831035 - i32.xor - i32.const 16777619 - i32.mul - call $~lib/map/Map#find - local.tee $0 + call $~lib/util/hash/hash32 + call $~lib/map/Map#find + local.tee $1 i32.eqz if - i32.const 1616 - i32.const 1680 - i32.const 105 - i32.const 17 - call $~lib/builtins/abort - unreachable + return end + local.get $1 + local.get $1 + i32.load offset=8 + i32.const 1 + i32.or + i32.store offset=8 + local.get $0 + local.get $0 + i32.load offset=20 + i32.const 1 + i32.sub + i32.store offset=20 local.get $0 i32.load offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 1 + i32.shr_u + local.tee $2 + i32.const 1 i32.add - global.set $~lib/memory/__stack_pointer + i32.const 4 + local.get $0 + i32.load offset=20 + local.tee $1 + local.get $1 + i32.const 4 + i32.lt_u + select + i32.ge_u + if (result i32) + local.get $0 + i32.load offset=20 + 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 $0 + local.get $2 + call $~lib/map/Map#rehash + end ) - (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 i32) (local $5 i32) (local $6 i32) + (local $7 i32) + (local $8 i32) global.get $~lib/memory/__stack_pointer - i32.const 8 + 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 - local.get $0 - i32.load offset=8 - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.load offset=16 - local.set $0 - 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 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.const 9 - call $~lib/rt/itcms/__new - local.tee $2 - i32.store - local.get $2 - i32.const 0 - call $~lib/map/Map#set:buckets - local.get $2 - i32.const 0 - i32.store offset=4 - local.get $2 - i32.const 0 - i32.store offset=8 - local.get $2 - i32.const 0 - i32.store offset=12 - local.get $0 - i32.const 1073741820 - i32.gt_u - if - i32.const 1456 - i32.const 1728 - i32.const 58 - i32.const 60 - call $~lib/builtins/abort - unreachable - end + i64.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $0 i32.const 0 - call $~lib/rt/itcms/__new - local.tee $3 - i32.store offset=4 - local.get $3 - local.get $0 - call $~lib/memory/memory.fill - local.get $2 - local.get $3 - call $~lib/map/Map#set:buckets - local.get $2 - local.get $3 - i32.store offset=4 - local.get $2 - local.get $0 - i32.store offset=8 - local.get $2 - local.get $0 - i32.store offset=12 + i32.store offset=16 global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $2 + call $~lib/map/Map#constructor + local.tee $1 i32.store loop $for-loop|0 - local.get $0 - local.get $4 - i32.gt_s + local.get $2 + i32.const 100 + i32.lt_s if - local.get $5 - local.get $4 - i32.const 12 - i32.mul - i32.add - local.tee $3 - i32.load offset=8 - i32.const 1 - i32.and - i32.eqz + local.get $1 + local.get $2 + call $~lib/map/Map#has if - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - local.get $1 - local.get $3 - i32.load8_u - call $~lib/array/Array#__set - local.get $1 - i32.const 1 - i32.add - local.set $1 + i32.const 0 + i32.const 1568 + i32.const 6 + i32.const 5 + call $~lib/builtins/abort + unreachable end - local.get $4 + local.get $1 + local.get $2 + local.get $2 + i32.const 10 + i32.add + call $~lib/map/Map#set + local.get $1 + local.get $2 + 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 + local.get $1 + local.get $2 + call $~lib/map/Map#get + local.get $2 + 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 $2 i32.const 1 i32.add - local.set $4 + local.set $2 br $for-loop|0 end end - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 local.get $1 - call $~lib/array/Array#set:length + i32.load offset=20 + 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 $2 + loop $for-loop|1 + local.get $2 + i32.const 100 + i32.lt_s + if + local.get $1 + local.get $2 + 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 $1 + local.get $2 + call $~lib/map/Map#get + local.get $2 + 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 $1 + local.get $2 + local.get $2 + i32.const 20 + i32.add + call $~lib/map/Map#set + local.get $1 + local.get $2 + 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 + local.get $1 + local.get $2 + call $~lib/map/Map#get + local.get $2 + 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 $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|1 + end + end + local.get $1 + i32.load offset=20 + 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 - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $2 - ) - (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 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 - global.get $~lib/memory/__stack_pointer - local.get $0 + i32.const 0 i32.store - local.get $0 - i32.load local.get $1 - local.tee $3 - i32.const 255 - i32.and - i32.const -2128831035 - i32.xor - i32.const 16777619 - i32.mul - local.tee $5 - local.get $0 - i32.load offset=4 - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $1 - block $__inlined_func$~lib/map/Map#find - loop $while-continue|0 - local.get $1 + i32.load offset=8 + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.load offset=16 + local.tee $7 + call $~lib/array/Array#constructor + local.tee $2 + i32.store + loop $for-loop|01 + local.get $4 + local.get $7 + i32.lt_s + if + local.get $6 + local.get $4 + i32.const 12 + i32.mul + i32.add + local.tee $8 + i32.load offset=8 + i32.const 1 + i32.and + i32.eqz if - local.get $1 - i32.load offset=4 - local.tee $4 + local.get $2 + local.get $0 + local.get $8 + i32.load + call $~lib/array/Array#__set + local.get $0 i32.const 1 - i32.and - if (result i32) - i32.const 0 - else - local.get $1 - i32.load8_u - local.get $3 - i32.const 255 - i32.and - i32.eq - end - br_if $__inlined_func$~lib/map/Map#find - local.get $4 - i32.const -2 - i32.and - local.set $1 - br $while-continue|0 + i32.add + local.set $0 end + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $for-loop|01 end - i32.const 0 - local.set $1 end + local.get $2 + local.get $0 + call $~lib/array/Array#set:length + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer local.get $1 - if - local.get $1 - local.get $2 - i32.store8 offset=1 - else - local.get $0 - i32.load offset=16 - local.get $0 + call $~lib/map/Map#values + local.tee $7 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + call $~lib/map/Map#constructor + local.tee $4 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + call $~lib/map/Map#constructor + local.tee $5 + i32.store offset=16 + loop $for-loop|2 + local.get $3 + local.get $2 i32.load offset=12 - i32.eq + i32.lt_s if - global.get $~lib/memory/__stack_pointer + local.get $2 + local.get $3 + call $~lib/array/Array#__get + local.set $0 + local.get $7 + local.get $3 + call $~lib/array/Array#__get + local.set $6 + local.get $1 local.get $0 - i32.store + 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.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 + local.get $4 local.get $0 local.get $0 - i32.load offset=20 + call $~lib/map/Map#set + local.get $5 + local.get $6 + i32.const 20 + i32.sub + local.tee $0 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 $0 - i32.load offset=4 - else - local.get $0 - i32.load offset=4 - i32.const 1 - i32.shl - i32.const 1 - i32.or - end - call $~lib/map/Map#rehash + call $~lib/map/Map#set + 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.load offset=8 - local.tee $1 - 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 $1 - local.get $4 - i32.const 3 - i32.shl - i32.add - local.tee $1 - local.get $3 - i32.store8 - local.get $1 - local.get $2 - i32.store8 offset=1 - local.get $0 - local.get $0 - i32.load offset=20 - i32.const 1 - i32.add - i32.store offset=20 - local.get $1 - local.get $0 - i32.load - 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=4 - local.get $0 - local.get $1 - i32.store - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - 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 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 - local.get $0 - i32.store - local.get $0 - local.get $1 - local.get $1 - i32.const 255 - i32.and - i32.const -2128831035 - i32.xor - i32.const 16777619 - i32.mul - call $~lib/map/Map#find - local.tee $1 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 4 - 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 - local.get $0 - local.get $0 - i32.load offset=20 - i32.const 1 - i32.sub - i32.store offset=20 - local.get $0 - i32.load offset=4 - i32.const 1 - i32.shr_u - local.tee $2 - i32.const 1 - i32.add - i32.const 4 - local.get $0 + local.get $4 i32.load offset=20 - local.tee $1 - local.get $1 - i32.const 4 - i32.lt_u - select - i32.ge_u - if (result i32) - local.get $0 - i32.load offset=20 - local.get $0 - i32.load offset=12 - i32.const 3 - i32.mul - i32.const 4 - i32.div_s - i32.lt_s - else + 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 $5 + i32.load offset=20 + i32.const 100 + i32.ne if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - local.get $2 - call $~lib/map/Map#rehash + i32.const 0 + i32.const 1568 + i32.const 37 + 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/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) - global.get $~lib/memory/__stack_pointer - 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 - i64.const 0 - i64.store offset=8 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=16 - global.get $~lib/memory/__stack_pointer - 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 - i32.const 24 - i32.const 8 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - local.get $0 - i32.const 16 - call $~lib/arraybuffer/ArrayBuffer#constructor - call $~lib/map/Map#set:buckets - local.get $0 - i32.const 3 - i32.store offset=4 - local.get $0 - i32.const 48 - call $~lib/arraybuffer/ArrayBuffer#constructor - call $~lib/map/Map#set:entries - local.get $0 - i32.const 4 - i32.store offset=12 - local.get $0 - i32.const 0 - i32.store offset=16 - local.get $0 i32.const 0 - i32.store offset=20 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - i32.store - loop $for-loop|1 - local.get $1 - i32.const 255 - i32.and - i32.const 100 - i32.lt_u + local.set $3 + loop $for-loop|3 + local.get $3 + i32.const 50 + i32.lt_s 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 + local.get $3 + call $~lib/map/Map#has + i32.eqz if i32.const 0 i32.const 1568 - i32.const 6 + 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 - local.get $1 - i32.const 255 - i32.and - i32.const 10 + local.get $3 + call $~lib/map/Map#get + local.get $3 + 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 + i32.ne if i32.const 0 i32.const 1568 - i32.const 8 + 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#get + local.get $3 + call $~lib/map/Map#delete local.get $1 - i32.const 255 - i32.and - i32.const 10 - i32.add - i32.ne + local.get $3 + call $~lib/map/Map#has if i32.const 0 i32.const 1568 - i32.const 9 + i32.const 44 i32.const 5 call $~lib/builtins/abort unreachable end - local.get $1 + local.get $3 i32.const 1 i32.add - local.set $1 - br $for-loop|1 + local.set $3 + br $for-loop|3 end end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 + local.get $1 i32.load offset=20 - i32.const 100 + i32.const 50 i32.ne if i32.const 0 i32.const 1568 - i32.const 11 + i32.const 46 i32.const 3 call $~lib/builtins/abort unreachable end i32.const 0 - local.set $1 - loop $for-loop|3 - local.get $1 - i32.const 255 - i32.and - i32.const 100 - i32.lt_u + local.set $3 + loop $for-loop|4 + local.get $3 + i32.const 50 + i32.lt_s 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 + local.get $3 + call $~lib/map/Map#has if i32.const 0 i32.const 1568 - i32.const 15 + i32.const 50 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.const 255 - i32.and + local.get $3 + local.get $3 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 - local.get $1 - local.get $1 - i32.const 255 - i32.and - 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 + call $~lib/map/Map#set local.get $1 - call $~lib/map/Map#has + local.get $3 + call $~lib/map/Map#has i32.eqz if i32.const 0 i32.const 1568 - i32.const 18 + 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#get + local.get $3 + call $~lib/map/Map#delete local.get $1 - i32.const 255 - i32.and - i32.const 20 - i32.add - i32.ne + local.get $3 + call $~lib/map/Map#has if i32.const 0 i32.const 1568 - i32.const 19 + i32.const 54 i32.const 5 call $~lib/builtins/abort unreachable end - local.get $1 + local.get $3 i32.const 1 i32.add - local.set $1 - br $for-loop|3 + local.set $3 + br $for-loop|4 end end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 + local.get $1 i32.load offset=20 - i32.const 100 + i32.const 50 i32.ne if i32.const 0 i32.const 1568 - i32.const 21 + i32.const 56 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + call $~lib/map/Map#clear + local.get $1 + i32.load offset=20 + if + i32.const 0 + i32.const 1568 + i32.const 60 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/map/Map#find (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - call $~lib/map/Map#keys - local.tee $3 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer + i32.load + local.get $2 local.get $0 - call $~lib/map/Map#values - local.tee $6 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - 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 - i32.const 24 - i32.const 10 - call $~lib/rt/itcms/__new - local.tee $1 - i32.store - local.get $1 - i32.const 16 - call $~lib/arraybuffer/ArrayBuffer#constructor - call $~lib/map/Map#set:buckets - local.get $1 - i32.const 3 - i32.store offset=4 - local.get $1 - i32.const 32 - call $~lib/arraybuffer/ArrayBuffer#constructor - call $~lib/map/Map#set:entries - local.get $1 - i32.const 4 - i32.store offset=12 - local.get $1 - i32.const 0 - i32.store offset=16 - local.get $1 - i32.const 0 - i32.store offset=20 - global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.load offset=4 + i32.and + i32.const 2 + i32.shl i32.add - global.set $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - call $~lib/map/Map#constructor - local.tee $4 - i32.store offset=20 - loop $for-loop|4 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $2 - local.get $3 - i32.load offset=12 - i32.lt_s + i32.load + local.set $0 + loop $while-continue|0 + local.get $0 if - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $2 - local.get $3 - i32.load offset=12 - i32.ge_u - if - i32.const 1248 - i32.const 1728 - i32.const 92 - i32.const 42 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.get $3 - i32.load offset=4 - i32.add - i32.load8_u - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - 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 $5 - call $~lib/map/Map#has - i32.eqz - if + i32.load offset=8 + local.tee $2 + i32.const 1 + i32.and + if (result i32) i32.const 0 - i32.const 1568 - i32.const 31 - i32.const 5 - call $~lib/builtins/abort - unreachable + else + local.get $1 + local.get $0 + i32.load + i32.eq 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 - 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 + local.get $0 + return end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $5 - local.get $5 - call $~lib/map/Map#set - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - local.get $7 - 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|4 + i32.const -2 + i32.and + local.set $0 + br $while-continue|0 end end - global.get $~lib/memory/__stack_pointer + i32.const 0 + ) + (func $~lib/map/Map#has (param $0 i32) (param $1 i32) (result i32) + local.get $0 local.get $1 - i32.store offset=4 local.get $1 - i32.load offset=20 - i32.const 100 + call $~lib/util/hash/hash32 + call $~lib/map/Map#find + i32.const 0 i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 36 - i32.const 3 - call $~lib/builtins/abort - unreachable - 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 - local.get $4 + 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 + 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 - local.get $4 - i32.load offset=20 - 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.get $0 + i32.load offset=8 + local.tee $8 + local.get $0 + i32.load offset=16 + i32.const 12 + i32.mul + i32.add + local.set $4 + local.get $3 local.set $2 - loop $for-loop|6 - local.get $2 - i32.const 255 - i32.and - i32.const 50 - i32.lt_u + loop $while-continue|0 + local.get $4 + local.get $8 + i32.ne if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - local.get $2 - call $~lib/map/Map#has + local.get $8 + i32.load offset=8 + i32.const 1 + i32.and i32.eqz if - i32.const 0 - i32.const 1568 - i32.const 41 - i32.const 5 - call $~lib/builtins/abort - unreachable + local.get $2 + local.get $8 + i32.load + local.tee $7 + i32.store + local.get $2 + local.get $8 + i32.load offset=4 + i32.store offset=4 + local.get $2 + local.get $6 + local.get $7 + call $~lib/util/hash/hash32 + local.get $1 + i32.and + i32.const 2 + i32.shl + i32.add + local.tee $7 + i32.load + i32.store offset=8 + local.get $7 + local.get $2 + i32.store + local.get $2 + i32.const 12 + i32.add + local.set $2 end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - local.get $2 - call $~lib/map/Map#get - local.get $2 - i32.const 255 - i32.and - 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=4 - local.get $0 - local.get $2 - call $~lib/map/Map#delete - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - 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 - i32.const 1 + local.get $8 + i32.const 12 i32.add - local.set $2 - br $for-loop|6 + local.set $8 + br $while-continue|0 end end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 local.get $0 - i32.load offset=20 - 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 $2 - loop $for-loop|8 - local.get $2 - i32.const 255 - i32.and - i32.const 50 - i32.lt_u - if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - 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 - i32.store offset=4 - local.get $0 - local.get $2 - local.get $2 - i32.const 255 - i32.and - 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 $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 $0 - i32.store offset=4 - local.get $0 - local.get $2 - call $~lib/map/Map#delete - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - 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 - i32.const 1 - i32.add - local.set $2 - br $for-loop|8 - end - end - global.get $~lib/memory/__stack_pointer + local.get $6 + call $~lib/map/Map#set:buckets local.get $0 + local.get $1 i32.store offset=4 local.get $0 - i32.load offset=20 - i32.const 50 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 56 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 + local.get $3 + call $~lib/map/Map#set:entries local.get $0 - call $~lib/map/Map#clear - global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=12 local.get $0 - i32.store offset=4 local.get $0 i32.load offset=20 - if - i32.const 0 - i32.const 1568 - i32.const 60 - i32.const 3 - call $~lib/builtins/abort - unreachable - end + i32.store offset=16 global.get $~lib/memory/__stack_pointer - i32.const 24 + i32.const 8 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 - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store + (func $~lib/map/Map#get (param $0 i32) (param $1 i32) (result i32) local.get $0 local.get $1 local.get $1 - i32.const 16 - i32.shl - i32.const 16 - i32.shr_s - call $~lib/util/hash/hash16 - 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 + call $~lib/util/hash/hash32 + 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 ) - (func $~lib/map/Map#set (param $0 i32) (param $1 i32) (param $2 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 8 i32.sub @@ -7770,201 +7408,168 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store + global.get $~lib/memory/__stack_pointer local.get $1 - i32.const 16 + i32.const 1 + i32.add + local.tee $2 + i32.const 2 i32.shl - i32.const 16 - i32.shr_s - call $~lib/util/hash/hash16 - local.set $4 + 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 local.get $0 - i32.store + i32.load offset=8 + local.tee $8 local.get $0 - local.get $1 - local.get $4 - call $~lib/map/Map#find - local.tee $3 - if - local.get $3 - local.get $2 - i32.store offset=4 - else - local.get $0 - i32.load offset=16 - local.get $0 - i32.load offset=12 - i32.eq - if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - local.get $0 - i32.load offset=20 - 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 $0 - i32.load offset=4 - else - 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 $8 + i32.ne + if + local.get $8 + i32.load offset=8 + i32.const 1 + i32.and + i32.eqz + if + local.get $2 + local.get $8 + i32.load + local.tee $7 + i32.store + local.get $2 + local.get $8 i32.load offset=4 - i32.const 1 + i32.store offset=4 + local.get $2 + local.get $6 + local.get $7 + call $~lib/util/hash/hash32 + local.get $1 + i32.and + i32.const 2 i32.shl - i32.const 1 - i32.or + i32.add + local.tee $7 + i32.load + i32.store offset=8 + local.get $7 + local.get $2 + i32.store + local.get $2 + i32.const 12 + i32.add + local.set $2 end - call $~lib/map/Map#rehash + local.get $8 + i32.const 12 + i32.add + local.set $8 + br $while-continue|0 end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.load offset=8 - local.tee $3 - 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 - local.get $0 - local.get $0 - i32.load offset=20 - i32.const 1 - i32.add - i32.store offset=20 - local.get $3 - local.get $0 - i32.load - 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.get $0 + local.get $6 + call $~lib/map/Map#set:buckets + local.get $0 + local.get $1 + i32.store offset=4 + local.get $0 + local.get $3 + call $~lib/map/Map#set:entries + local.get $0 + local.get $5 + 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.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 - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store + (func $~lib/map/Map#delete (param $0 i32) (param $1 i32) + (local $2 i32) local.get $0 local.get $1 local.get $1 - i32.const 16 - i32.shl - i32.const 16 - i32.shr_s - call $~lib/util/hash/hash16 - call $~lib/map/Map#find - local.tee $0 + call $~lib/util/hash/hash32 + call $~lib/map/Map#find + local.tee $1 i32.eqz if - i32.const 1616 - i32.const 1680 - i32.const 105 - i32.const 17 - call $~lib/builtins/abort - unreachable + return end + local.get $1 + local.get $1 + i32.load offset=8 + i32.const 1 + i32.or + i32.store offset=8 + local.get $0 + local.get $0 + i32.load offset=20 + i32.const 1 + i32.sub + i32.store offset=20 local.get $0 i32.load offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 1 + i32.shr_u + local.tee $2 + i32.const 1 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 - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - local.get $1 local.get $0 - i32.load offset=12 + i32.load offset=20 + local.tee $1 + local.get $1 + 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 108 - i32.const 22 - call $~lib/builtins/abort - unreachable - end + if (result i32) local.get $0 - local.get $1 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 - call $~lib/array/ensureSize + i32.load offset=20 local.get $0 - local.get $3 - i32.store offset=12 + 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 $0 + local.get $2 + 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.add - global.set $~lib/memory/__stack_pointer ) - (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) @@ -7973,22 +7578,233 @@ (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 20 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - local.get $0 - i32.load offset=8 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.load offset=16 - local.tee $8 - local.set $2 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + 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 + i32.const 24 + i32.const 17 + call $~lib/rt/itcms/__new + local.tee $1 + i32.store + local.get $1 + i32.const 16 + call $~lib/arraybuffer/ArrayBuffer#constructor + call $~lib/map/Map#set:buckets + local.get $1 + i32.const 3 + i32.store offset=4 + local.get $1 + i32.const 48 + call $~lib/arraybuffer/ArrayBuffer#constructor + call $~lib/map/Map#set:entries + local.get $1 + i32.const 4 + i32.store offset=12 + local.get $1 + i32.const 0 + i32.store offset=16 + local.get $1 + i32.const 0 + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + i32.store + loop $for-loop|0 + local.get $2 + i32.const 100 + i32.lt_u + if + local.get $1 + local.get $2 + call $~lib/map/Map#has + if + i32.const 0 + i32.const 1568 + i32.const 6 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $1 + local.get $2 + local.get $2 + i32.const 10 + i32.add + call $~lib/map/Map#set + local.get $1 + local.get $2 + 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 + local.get $1 + local.get $2 + call $~lib/map/Map#get + local.get $2 + 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 $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|0 + end + end + local.get $1 + i32.load offset=20 + 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 $2 + loop $for-loop|1 + local.get $2 + i32.const 100 + i32.lt_u + if + local.get $1 + local.get $2 + 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 $1 + local.get $2 + call $~lib/map/Map#get + local.get $2 + 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 $1 + local.get $2 + local.get $2 + i32.const 20 + i32.add + call $~lib/map/Map#set + local.get $1 + local.get $2 + 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 + local.get $1 + local.get $2 + call $~lib/map/Map#get + local.get $2 + 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 $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|1 + end + end + local.get $1 + i32.load offset=20 + 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 + 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 $1 + i32.load offset=8 + local.set $9 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.load offset=16 + local.set $4 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -7999,24 +7815,24 @@ i64.store global.get $~lib/memory/__stack_pointer i32.const 16 - i32.const 12 + i32.const 18 call $~lib/rt/itcms/__new - local.tee $0 + local.tee $2 i32.store - local.get $0 + local.get $2 i32.const 0 call $~lib/map/Map#set:buckets - local.get $0 + local.get $2 i32.const 0 i32.store offset=4 - local.get $0 + local.get $2 i32.const 0 i32.store offset=8 - local.get $0 + local.get $2 i32.const 0 i32.store offset=12 - local.get $2 - i32.const 536870910 + local.get $4 + i32.const 268435455 i32.gt_u if i32.const 1456 @@ -8027,239 +7843,83 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $2 - i32.const 1 + local.get $4 + i32.const 2 i32.shl - local.tee $5 + local.tee $7 i32.const 0 call $~lib/rt/itcms/__new - local.tee $3 + local.tee $5 i32.store offset=4 - local.get $3 local.get $5 + local.get $7 call $~lib/memory/memory.fill - local.get $0 - local.get $3 + local.get $2 + local.get $5 call $~lib/map/Map#set:buckets - local.get $0 - local.get $3 - i32.store offset=4 - local.get $0 + local.get $2 local.get $5 + i32.store offset=4 + local.get $2 + local.get $7 i32.store offset=8 - local.get $0 local.get $2 + local.get $4 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 $2 i32.store - loop $for-loop|0 + loop $for-loop|01 local.get $4 - local.get $8 - i32.lt_s + local.get $6 + i32.gt_s if + local.get $9 local.get $6 - local.get $4 i32.const 12 i32.mul i32.add - local.tee $2 + local.tee $5 i32.load offset=8 i32.const 1 i32.and i32.eqz if - global.get $~lib/memory/__stack_pointer + local.get $2 local.get $0 - i32.store offset=4 + local.get $5 + i32.load + call $~lib/array/Array#__set local.get $0 - local.get $1 - local.get $2 - i32.load16_s - call $~lib/array/Array#__set - local.get $1 i32.const 1 i32.add - local.set $1 + local.set $0 end - local.get $4 + local.get $6 i32.const 1 i32.add - local.set $4 - br $for-loop|0 + local.set $6 + br $for-loop|01 end end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 + local.get $2 local.get $0 - local.get $1 - call $~lib/array/Array#set:length + call $~lib/array/Array#set:length 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/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 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 $1 - i32.const 16 - i32.shl - i32.const 16 - i32.shr_s - call $~lib/util/hash/hash16 - local.set $5 + local.get $2 + i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store local.get $1 - local.set $3 - local.get $0 - i32.load - local.get $5 - local.get $0 - i32.load offset=4 - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $1 - block $__inlined_func$~lib/map/Map#find - loop $while-continue|0 - local.get $1 - if - local.get $1 - i32.load offset=4 - local.tee $4 - i32.const 1 - i32.and - if (result i32) - i32.const 0 - else - local.get $1 - i32.load16_u - local.get $3 - i32.const 65535 - i32.and - i32.eq - end - br_if $__inlined_func$~lib/map/Map#find - local.get $4 - i32.const -2 - i32.and - local.set $1 - br $while-continue|0 - end - end - i32.const 0 - local.set $1 - end - local.get $1 - if - local.get $1 - local.get $2 - i32.store16 offset=2 - else - local.get $0 - i32.load offset=16 - local.get $0 - i32.load offset=12 - i32.eq - if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - local.get $0 - i32.load offset=20 - 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 $0 - i32.load offset=4 - else - 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.load offset=8 - local.tee $1 - 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 $1 - local.get $4 - i32.const 3 - i32.shl - i32.add - local.tee $1 - local.get $3 - i32.store16 - local.get $1 - local.get $2 - i32.store16 offset=2 - local.get $0 - local.get $0 - i32.load offset=20 - i32.const 1 - i32.add - i32.store offset=20 - local.get $1 - local.get $0 - i32.load - 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=4 - local.get $0 - local.get $1 - i32.store - end + call $~lib/map/Map#values + local.tee $7 + i32.store offset=8 global.get $~lib/memory/__stack_pointer - i32.const 8 - 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 4 i32.sub @@ -8269,911 +7929,532 @@ i32.const 0 i32.store global.get $~lib/memory/__stack_pointer - local.get $0 + i32.const 24 + i32.const 19 + call $~lib/rt/itcms/__new + local.tee $4 i32.store - local.get $0 - local.get $1 - local.get $1 - i32.const 16 - i32.shl + local.get $4 i32.const 16 - i32.shr_s - call $~lib/util/hash/hash16 - call $~lib/map/Map#find - local.tee $1 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 4 - 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 - local.get $0 - local.get $0 - i32.load offset=20 - i32.const 1 - i32.sub + call $~lib/arraybuffer/ArrayBuffer#constructor + call $~lib/map/Map#set:buckets + local.get $4 + i32.const 3 + i32.store offset=4 + local.get $4 + i32.const 48 + call $~lib/arraybuffer/ArrayBuffer#constructor + call $~lib/map/Map#set:entries + local.get $4 + i32.const 4 + i32.store offset=12 + local.get $4 + i32.const 0 + i32.store offset=16 + local.get $4 + i32.const 0 i32.store offset=20 - local.get $0 - i32.load offset=4 - i32.const 1 - i32.shr_u - local.tee $2 - i32.const 1 - i32.add - i32.const 4 - local.get $0 - i32.load offset=20 - local.tee $1 - local.get $1 - i32.const 4 - i32.lt_u - select - i32.ge_u - if (result i32) - local.get $0 - i32.load offset=20 - 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 + 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) - (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 - 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 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=16 - global.get $~lib/memory/__stack_pointer - 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 - i32.const 24 - i32.const 11 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - local.get $0 - i32.const 16 - call $~lib/arraybuffer/ArrayBuffer#constructor - call $~lib/map/Map#set:buckets - local.get $0 - i32.const 3 - i32.store offset=4 - local.get $0 - i32.const 48 - call $~lib/arraybuffer/ArrayBuffer#constructor - call $~lib/map/Map#set:entries - local.get $0 - i32.const 4 + local.get $4 i32.store offset=12 - local.get $0 - i32.const 0 - i32.store offset=16 - local.get $0 - i32.const 0 - i32.store offset=20 global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - i32.store - loop $for-loop|1 - local.get $1 - i32.const 16 - i32.shl - i32.const 16 - i32.shr_s - i32.const 100 + call $~lib/map/Map#constructor + local.tee $5 + i32.store offset=16 + loop $for-loop|2 + local.get $3 + local.get $2 + i32.load offset=12 i32.lt_s 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 + local.get $3 + local.get $2 + i32.load offset=12 + i32.ge_u if - i32.const 0 - i32.const 1568 - i32.const 6 - i32.const 5 + i32.const 1248 + i32.const 1728 + i32.const 92 + i32.const 42 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.const 16 + local.get $2 + i32.load offset=4 + local.get $3 + i32.const 2 i32.shl - i32.const 16 - i32.shr_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 + i32.load + local.set $0 + local.get $7 + local.get $3 + call $~lib/array/Array#__get + local.set $6 local.get $1 - call $~lib/map/Map#has + local.get $0 + call $~lib/map/Map#has i32.eqz if i32.const 0 i32.const 1568 - i32.const 8 + 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/map/Map#get - local.get $1 - i32.const 16 - i32.shl - i32.const 16 - i32.shr_s - i32.const 10 - i32.add - i32.ne + local.get $6 + i32.const 20 + i32.sub + call $~lib/map/Map#has + i32.eqz if i32.const 0 i32.const 1568 - i32.const 9 + i32.const 32 i32.const 5 call $~lib/builtins/abort unreachable end - local.get $1 + local.get $4 + local.get $0 + local.get $0 + call $~lib/map/Map#set + local.get $5 + local.get $6 + i32.const 20 + i32.sub + local.tee $0 + local.get $0 + call $~lib/map/Map#set + local.get $3 i32.const 1 i32.add - local.set $1 - br $for-loop|1 + local.set $3 + br $for-loop|2 end end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 + local.get $4 i32.load offset=20 i32.const 100 i32.ne if i32.const 0 i32.const 1568 - i32.const 11 + i32.const 36 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $5 + i32.load offset=20 + 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 $1 + local.set $3 loop $for-loop|3 - local.get $1 - i32.const 16 - i32.shl - i32.const 16 - i32.shr_s - i32.const 100 - i32.lt_s + local.get $3 + i32.const 50 + i32.lt_u 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 + local.get $3 + call $~lib/map/Map#has i32.eqz if i32.const 0 i32.const 1568 - i32.const 15 + 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.const 16 - i32.shl - i32.const 16 - i32.shr_s - i32.const 10 + local.get $3 + call $~lib/map/Map#get + local.get $3 + i32.const 20 i32.add i32.ne if i32.const 0 i32.const 1568 - i32.const 16 + 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 + local.get $3 + call $~lib/map/Map#delete local.get $1 - i32.const 16 - i32.shl - i32.const 16 - i32.shr_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.const 16 - i32.shl - i32.const 16 - i32.shr_s - i32.const 20 - i32.add - i32.ne + local.get $3 + call $~lib/map/Map#has if i32.const 0 i32.const 1568 - i32.const 19 + i32.const 44 i32.const 5 call $~lib/builtins/abort unreachable end - local.get $1 + local.get $3 i32.const 1 i32.add - local.set $1 + local.set $3 br $for-loop|3 end end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 + local.get $1 i32.load offset=20 - i32.const 100 + i32.const 50 i32.ne if i32.const 0 i32.const 1568 - i32.const 21 + i32.const 46 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/map/Map#keys - local.tee $3 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - call $~lib/map/Map#values - local.tee $6 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - 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 - i32.const 24 - i32.const 13 - call $~lib/rt/itcms/__new - local.tee $1 - i32.store - local.get $1 - i32.const 16 - call $~lib/arraybuffer/ArrayBuffer#constructor - call $~lib/map/Map#set:buckets - local.get $1 - i32.const 3 - i32.store offset=4 - local.get $1 - i32.const 32 - call $~lib/arraybuffer/ArrayBuffer#constructor - call $~lib/map/Map#set:entries - local.get $1 - i32.const 4 - i32.store offset=12 - local.get $1 - i32.const 0 - i32.store offset=16 - local.get $1 i32.const 0 - i32.store offset=20 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - call $~lib/map/Map#constructor - local.tee $4 - i32.store offset=20 + local.set $3 loop $for-loop|4 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $2 local.get $3 - i32.load offset=12 - i32.lt_s + i32.const 50 + i32.lt_u if - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $2 + local.get $1 local.get $3 - i32.load offset=12 - i32.ge_u + call $~lib/map/Map#has if - i32.const 1248 - i32.const 1728 - i32.const 92 - i32.const 42 + i32.const 0 + i32.const 1568 + i32.const 50 + i32.const 5 call $~lib/builtins/abort unreachable end + local.get $1 local.get $3 - i32.load offset=4 - local.get $2 - i32.const 1 - i32.shl + local.get $3 + i32.const 10 i32.add - i32.load16_s - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - 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 $5 - call $~lib/map/Map#has + call $~lib/map/Map#set + local.get $1 + local.get $3 + call $~lib/map/Map#has i32.eqz if i32.const 0 i32.const 1568 - i32.const 31 + 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 $7 - i32.const 20 - i32.sub - call $~lib/map/Map#has - i32.eqz + local.get $1 + local.get $3 + call $~lib/map/Map#delete + local.get $1 + local.get $3 + call $~lib/map/Map#has if i32.const 0 i32.const 1568 - i32.const 32 + i32.const 54 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 $5 - local.get $5 - call $~lib/map/Map#set - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - local.get $7 - i32.const 20 - i32.sub - local.tee $5 - local.get $5 - call $~lib/map/Map#set - local.get $2 + local.get $3 i32.const 1 i32.add - local.set $2 + local.set $3 br $for-loop|4 end end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 local.get $1 i32.load offset=20 - i32.const 100 + i32.const 50 i32.ne if i32.const 0 i32.const 1568 - i32.const 36 + i32.const 56 i32.const 3 call $~lib/builtins/abort 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#clear + local.get $1 i32.load offset=20 - i32.const 100 - i32.ne if i32.const 0 i32.const 1568 - i32.const 37 + i32.const 60 i32.const 3 call $~lib/builtins/abort unreachable end - i32.const 0 - local.set $2 - loop $for-loop|6 - local.get $2 - i32.const 16 - i32.shl - i32.const 16 - i32.shr_s - i32.const 50 - i32.lt_s - if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - 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 $0 - i32.store offset=4 - local.get $0 - local.get $2 - call $~lib/map/Map#get - local.get $2 - i32.const 16 - i32.shl - i32.const 16 - i32.shr_s - 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=4 - local.get $0 - local.get $2 - call $~lib/map/Map#delete - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - 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 - i32.const 1 - i32.add - local.set $2 - br $for-loop|6 - end - end global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/util/hash/hash64 (param $0 i64) (result i32) + (local $1 i32) local.get $0 - i32.store offset=4 + i32.wrap_i64 + local.tee $1 + i32.const 255 + i32.and + i32.const -2128831035 + i32.xor + i32.const 16777619 + i32.mul + local.get $1 + i32.const 8 + i32.shr_u + i32.const 255 + i32.and + i32.xor + i32.const 16777619 + i32.mul + local.get $1 + i32.const 16 + i32.shr_u + i32.const 255 + i32.and + i32.xor + i32.const 16777619 + i32.mul + local.get $1 + i32.const 24 + i32.shr_u + i32.xor + i32.const 16777619 + i32.mul local.get $0 - i32.load offset=20 - 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 $2 - loop $for-loop|8 - local.get $2 - i32.const 16 - i32.shl - i32.const 16 - i32.shr_s - i32.const 50 - i32.lt_s + i64.const 32 + i64.shr_u + i32.wrap_i64 + local.tee $1 + i32.const 255 + i32.and + i32.xor + i32.const 16777619 + i32.mul + local.get $1 + i32.const 8 + i32.shr_u + i32.const 255 + i32.and + i32.xor + i32.const 16777619 + i32.mul + local.get $1 + i32.const 16 + i32.shr_u + i32.const 255 + i32.and + i32.xor + i32.const 16777619 + i32.mul + local.get $1 + i32.const 24 + i32.shr_u + i32.xor + i32.const 16777619 + i32.mul + ) + (func $~lib/map/Map#find (param $0 i32) (param $1 i64) (param $2 i32) (result i32) + local.get $0 + i32.load + 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 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - 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 - i32.store offset=4 - local.get $0 - local.get $2 - local.get $2 - i32.const 16 - i32.shl - i32.const 16 - i32.shr_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 $2 - call $~lib/map/Map#has - i32.eqz - if + i32.load offset=12 + local.tee $2 + i32.const 1 + i32.and + if (result i32) i32.const 0 - i32.const 1568 - i32.const 52 - i32.const 5 - call $~lib/builtins/abort - unreachable + else + local.get $1 + local.get $0 + i64.load + i64.eq end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - local.get $2 - call $~lib/map/Map#delete - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - 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 + local.get $0 + return end local.get $2 - i32.const 1 - i32.add - local.set $2 - br $for-loop|8 + 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 + i32.const 0 + ) + (func $~lib/map/Map#has (param $0 i32) (param $1 i64) (result i32) local.get $0 - i32.load offset=20 - i32.const 50 + local.get $1 + local.get $1 + call $~lib/util/hash/hash64 + call $~lib/map/Map#find + i32.const 0 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 offset=4 - local.get $0 - call $~lib/map/Map#clear - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.load offset=20 - if - i32.const 0 - i32.const 1568 - i32.const 60 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 24 - 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#rehash (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i64) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 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 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 - call $~lib/util/hash/hash16 - call $~lib/map/Map#find - i32.const 0 - i32.ne - global.get $~lib/memory/__stack_pointer - i32.const 4 + 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) - 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 $1 - i32.const 65535 - i32.and - call $~lib/util/hash/hash16 - local.set $4 + 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 local.get $0 - i32.store + i32.load offset=8 + local.tee $9 local.get $0 - local.get $1 - local.get $4 - call $~lib/map/Map#find - local.tee $3 - if - local.get $3 - local.get $2 - i32.store offset=4 - else - local.get $0 - i32.load offset=16 - local.get $0 - i32.load offset=12 - i32.eq + 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 + i32.ne if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - local.get $0 - i32.load offset=20 - local.get $0 + local.get $9 i32.load offset=12 - i32.const 3 - i32.mul - i32.const 4 - i32.div_s - i32.lt_s - if (result i32) - local.get $0 - i32.load offset=4 - else - local.get $0 - i32.load offset=4 - i32.const 1 + i32.const 1 + i32.and + i32.eqz + if + local.get $2 + local.get $9 + i64.load + local.tee $5 + i64.store + local.get $2 + local.get $9 + i32.load offset=8 + i32.store offset=8 + local.get $2 + local.get $8 + local.get $5 + call $~lib/util/hash/hash64 + local.get $1 + i32.and + i32.const 2 i32.shl - i32.const 1 - i32.or + i32.add + local.tee $4 + i32.load + i32.store offset=12 + local.get $4 + local.get $2 + i32.store + local.get $2 + i32.const 16 + i32.add + local.set $2 end - call $~lib/map/Map#rehash + local.get $9 + i32.const 16 + i32.add + local.set $9 + br $while-continue|0 end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.load offset=8 - local.tee $3 - 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 - local.get $0 - local.get $0 - i32.load offset=20 - i32.const 1 - i32.add - i32.store offset=20 - local.get $3 - local.get $0 - i32.load - 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.get $0 + local.get $8 + call $~lib/map/Map#set:buckets + local.get $0 + local.get $1 + i32.store offset=4 + local.get $0 + local.get $3 + call $~lib/map/Map#set:entries + local.get $0 + local.get $7 + 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.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 - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store + (func $~lib/map/Map#get (param $0 i32) (param $1 i64) (result i32) local.get $0 local.get $1 local.get $1 - i32.const 65535 - i32.and - call $~lib/util/hash/hash16 - call $~lib/map/Map#find + call $~lib/util/hash/hash64 + call $~lib/map/Map#find local.tee $0 i32.eqz if @@ -9185,357 +8466,210 @@ 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.load offset=8 ) - (func $~lib/map/Map#keys (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) + (func $~lib/array/Array#__set (param $0 i32) (param $1 i32) (param $2 i64) (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 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 $0 - i32.load offset=8 - local.set $6 - global.get $~lib/memory/__stack_pointer + local.get $1 local.get $0 - i32.load offset=16 - local.tee $8 - local.set $2 - 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 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.const 15 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - local.get $0 - i32.const 0 - call $~lib/map/Map#set:buckets + 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 108 + 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 + call $~lib/array/ensureSize + local.get $0 + local.get $3 + i32.store offset=12 + end local.get $0 - i32.const 0 - i32.store offset=4 + i32.load offset=4 + local.get $1 + i32.const 3 + i32.shl + i32.add + local.get $2 + i64.store + ) + (func $~lib/array/Array#set:length (param $0 i32) (param $1 i32) local.get $0 - i32.const 0 - i32.store offset=8 + local.get $1 + i32.const 3 + call $~lib/array/ensureSize local.get $0 - i32.const 0 + local.get $1 i32.store offset=12 - local.get $2 - i32.const 536870910 - i32.gt_u - if - i32.const 1456 - i32.const 1728 - i32.const 58 - i32.const 60 - call $~lib/builtins/abort - unreachable - end + ) + (func $~lib/map/Map#rehash (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i64) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) global.get $~lib/memory/__stack_pointer - local.get $2 + 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 + local.get $1 i32.const 1 + i32.add + local.tee $2 + i32.const 2 i32.shl - local.tee $5 - i32.const 0 - call $~lib/rt/itcms/__new + 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 24 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor local.tee $3 i32.store offset=4 - local.get $3 - local.get $5 - call $~lib/memory/memory.fill - local.get $0 - local.get $3 - call $~lib/map/Map#set:buckets - local.get $0 - local.get $3 - i32.store offset=4 local.get $0 - local.get $5 - i32.store offset=8 + i32.load offset=8 + local.tee $9 local.get $0 - local.get $2 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.load offset=16 + i32.const 24 + i32.mul i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - i32.store - loop $for-loop|0 - local.get $4 - local.get $8 - i32.lt_s + local.set $6 + local.get $3 + local.set $2 + loop $while-continue|0 + local.get $6 + local.get $9 + i32.ne if - local.get $6 - local.get $4 - i32.const 12 - i32.mul - i32.add - local.tee $2 - i32.load offset=8 + local.get $9 + i32.load offset=16 i32.const 1 i32.and i32.eqz if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - local.get $1 local.get $2 - i32.load16_u - call $~lib/array/Array#__set + local.get $9 + i64.load + local.tee $5 + i64.store + local.get $2 + local.get $9 + i64.load offset=8 + i64.store offset=8 + local.get $2 + local.get $8 + local.get $5 + call $~lib/util/hash/hash64 local.get $1 - i32.const 1 + i32.and + i32.const 2 + i32.shl i32.add - local.set $1 + local.tee $4 + i32.load + i32.store offset=16 + local.get $4 + local.get $2 + i32.store + local.get $2 + i32.const 24 + i32.add + local.set $2 end - local.get $4 - i32.const 1 + local.get $9 + i32.const 24 i32.add - local.set $4 - br $for-loop|0 + local.set $9 + br $while-continue|0 end end - global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=4 + local.get $8 + call $~lib/map/Map#set:buckets local.get $0 local.get $1 - call $~lib/array/Array#set:length + i32.store offset=4 + local.get $0 + local.get $3 + call $~lib/map/Map#set:entries + local.get $0 + local.get $7 + 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.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#delete (param $0 i32) (param $1 i64) + (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 - call $~stack_check - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - local.get $1 - i32.const 65535 - i32.and - call $~lib/util/hash/hash16 - local.set $5 - global.get $~lib/memory/__stack_pointer local.get $0 - i32.store local.get $1 - local.set $3 + local.get $1 + call $~lib/util/hash/hash64 + call $~lib/map/Map#find + local.tee $2 + i32.eqz + if + return + end + local.get $2 + local.get $2 + i32.load offset=12 + i32.const 1 + i32.or + i32.store offset=12 local.get $0 - i32.load - local.get $5 + local.get $0 + i32.load offset=20 + i32.const 1 + i32.sub + i32.store offset=20 local.get $0 i32.load offset=4 - i32.and - i32.const 2 - i32.shl + i32.const 1 + i32.shr_u + local.tee $3 + i32.const 1 i32.add - i32.load - local.set $1 - block $__inlined_func$~lib/map/Map#find - loop $while-continue|0 - local.get $1 - if - local.get $1 - i32.load offset=4 - local.tee $4 - i32.const 1 - i32.and - if (result i32) - i32.const 0 - else - local.get $1 - i32.load16_u - local.get $3 - i32.const 65535 - i32.and - i32.eq - end - br_if $__inlined_func$~lib/map/Map#find - local.get $4 - i32.const -2 - i32.and - local.set $1 - br $while-continue|0 - end - end - i32.const 0 - local.set $1 - end - local.get $1 - if - local.get $1 - local.get $2 - i32.store16 offset=2 - else - local.get $0 - i32.load offset=16 - local.get $0 - i32.load offset=12 - i32.eq - if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - local.get $0 - i32.load offset=20 - 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 $0 - i32.load offset=4 - else - 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.load offset=8 - local.tee $1 - 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 $1 - local.get $4 - i32.const 3 - i32.shl - i32.add - local.tee $1 - local.get $3 - i32.store16 - local.get $1 - local.get $2 - i32.store16 offset=2 - local.get $0 - local.get $0 - i32.load offset=20 - i32.const 1 - i32.add - i32.store offset=20 - local.get $1 - local.get $0 - i32.load - 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=4 - local.get $0 - local.get $1 - i32.store - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - 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 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 - local.get $0 - i32.store - local.get $0 - local.get $1 - local.get $1 - i32.const 65535 - i32.and - call $~lib/util/hash/hash16 - call $~lib/map/Map#find - local.tee $1 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 4 - 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 - local.get $0 local.get $0 i32.load offset=20 - i32.const 1 - i32.sub - i32.store offset=20 - local.get $0 - i32.load offset=4 - i32.const 1 - i32.shr_u local.tee $2 - i32.const 1 - i32.add - i32.const 4 - local.get $0 - i32.load offset=20 - local.tee $1 - local.get $1 + local.get $2 i32.const 4 i32.lt_u select @@ -9554,29 +8688,48 @@ 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 + local.get $3 + call $~lib/map/Map#rehash end - global.get $~lib/memory/__stack_pointer + ) + (func $~lib/map/Map#clear (param $0 i32) + local.get $0 + i32.const 16 + call $~lib/arraybuffer/ArrayBuffer#constructor + call $~lib/map/Map#set:buckets + local.get $0 + i32.const 3 + i32.store offset=4 + local.get $0 + i32.const 64 + call $~lib/arraybuffer/ArrayBuffer#constructor + call $~lib/map/Map#set:entries + local.get $0 i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer + i32.store offset=12 + local.get $0 + i32.const 0 + i32.store offset=16 + local.get $0 + i32.const 0 + i32.store offset=20 ) - (func $std/map/testNumeric + (func $std/map/testNumeric (local $0 i32) - (local $1 i32) + (local $1 i64) (local $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) (local $6 i32) (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) global.get $~lib/memory/__stack_pointer - i32.const 24 + i32.const 20 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check @@ -9587,8 +8740,8 @@ i64.const 0 i64.store offset=8 global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=16 + i32.const 0 + i32.store offset=16 global.get $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 4 @@ -9600,49 +8753,44 @@ i32.store global.get $~lib/memory/__stack_pointer i32.const 24 - i32.const 14 + i32.const 20 call $~lib/rt/itcms/__new - local.tee $0 + local.tee $2 i32.store - local.get $0 + local.get $2 i32.const 16 call $~lib/arraybuffer/ArrayBuffer#constructor call $~lib/map/Map#set:buckets - local.get $0 + local.get $2 i32.const 3 i32.store offset=4 - local.get $0 - i32.const 48 + local.get $2 + i32.const 64 call $~lib/arraybuffer/ArrayBuffer#constructor call $~lib/map/Map#set:entries - local.get $0 + local.get $2 i32.const 4 i32.store offset=12 - local.get $0 + local.get $2 i32.const 0 i32.store offset=16 - local.get $0 + local.get $2 i32.const 0 i32.store offset=20 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 + local.get $2 i32.store - loop $for-loop|1 + loop $for-loop|0 local.get $1 - i32.const 65535 - i32.and - i32.const 100 - i32.lt_u + i64.const 100 + i64.lt_s if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 + local.get $2 local.get $1 - call $~lib/map/Map#has + call $~lib/map/Map#has if i32.const 0 i32.const 1568 @@ -9651,23 +8799,16 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 + local.get $2 local.get $1 local.get $1 - i32.const 65535 - i32.and + i32.wrap_i64 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 + call $~lib/map/Map#set + local.get $2 local.get $1 - call $~lib/map/Map#has + call $~lib/map/Map#has i32.eqz if i32.const 0 @@ -9677,15 +8818,11 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 + local.get $2 local.get $1 - call $~lib/map/Map#get + call $~lib/map/Map#get local.get $1 - i32.const 65535 - i32.and + i32.wrap_i64 i32.const 10 i32.add i32.ne @@ -9698,16 +8835,13 @@ unreachable end local.get $1 - i32.const 1 - i32.add + i64.const 1 + i64.add local.set $1 - br $for-loop|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 $2 i32.load offset=20 i32.const 100 i32.ne @@ -9719,21 +8853,16 @@ call $~lib/builtins/abort unreachable end - i32.const 0 + i64.const 0 local.set $1 - loop $for-loop|3 + loop $for-loop|1 local.get $1 - i32.const 65535 - i32.and - i32.const 100 - i32.lt_u + i64.const 100 + i64.lt_s if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 + local.get $2 local.get $1 - call $~lib/map/Map#has + call $~lib/map/Map#has i32.eqz if i32.const 0 @@ -9743,15 +8872,11 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 + local.get $2 local.get $1 - call $~lib/map/Map#get + call $~lib/map/Map#get local.get $1 - i32.const 65535 - i32.and + i32.wrap_i64 i32.const 10 i32.add i32.ne @@ -9763,23 +8888,16 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 + local.get $2 local.get $1 local.get $1 - i32.const 65535 - i32.and + i32.wrap_i64 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 + call $~lib/map/Map#set + local.get $2 local.get $1 - call $~lib/map/Map#has + call $~lib/map/Map#has i32.eqz if i32.const 0 @@ -9789,15 +8907,11 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 + local.get $2 local.get $1 - call $~lib/map/Map#get + call $~lib/map/Map#get local.get $1 - i32.const 65535 - i32.and + i32.wrap_i64 i32.const 20 i32.add i32.ne @@ -9810,16 +8924,13 @@ unreachable end local.get $1 - i32.const 1 - i32.add + i64.const 1 + i64.add local.set $1 - br $for-loop|3 + br $for-loop|1 end end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 + local.get $2 i32.load offset=20 i32.const 100 i32.ne @@ -9832,21 +8943,135 @@ 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/map/Map#keys + 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 $2 + i32.load offset=8 + local.set $10 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.load offset=16 + local.set $4 + 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 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.const 21 + call $~lib/rt/itcms/__new local.tee $3 + i32.store + local.get $3 + i32.const 0 + call $~lib/map/Map#set:buckets + local.get $3 + i32.const 0 + i32.store offset=4 + local.get $3 + i32.const 0 i32.store offset=8 + local.get $3 + i32.const 0 + i32.store offset=12 + local.get $4 + i32.const 134217727 + i32.gt_u + if + i32.const 1456 + i32.const 1728 + i32.const 58 + i32.const 60 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $4 + i32.const 3 + i32.shl + local.tee $8 + i32.const 0 + call $~lib/rt/itcms/__new + local.tee $5 + i32.store offset=4 + local.get $5 + local.get $8 + call $~lib/memory/memory.fill + local.get $3 + local.get $5 + call $~lib/map/Map#set:buckets + local.get $3 + local.get $5 i32.store offset=4 + local.get $3 + local.get $8 + i32.store offset=8 + local.get $3 + local.get $4 + i32.store offset=12 global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 + i32.store + loop $for-loop|01 + local.get $4 + local.get $6 + i32.gt_s + if + local.get $10 + local.get $6 + i32.const 4 + i32.shl + i32.add + local.tee $5 + i32.load offset=12 + i32.const 1 + i32.and + i32.eqz + if + local.get $3 + local.get $0 + local.get $5 + i64.load + call $~lib/array/Array#__set + local.get $0 + i32.const 1 + i32.add + local.set $0 + end + local.get $6 + i32.const 1 + i32.add + local.set $6 + br $for-loop|01 + end + end + local.get $3 local.get $0 - call $~lib/map/Map#values - local.tee $6 - i32.store offset=12 + call $~lib/array/Array#set:length + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $2 + call $~lib/map/Map#values + local.tee $0 + i32.store offset=8 global.get $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 4 @@ -9858,53 +9083,47 @@ i32.store global.get $~lib/memory/__stack_pointer i32.const 24 - i32.const 16 + i32.const 22 call $~lib/rt/itcms/__new - local.tee $1 + local.tee $4 i32.store - local.get $1 + local.get $4 i32.const 16 call $~lib/arraybuffer/ArrayBuffer#constructor call $~lib/map/Map#set:buckets - local.get $1 + local.get $4 i32.const 3 i32.store offset=4 - local.get $1 - i32.const 32 + local.get $4 + i32.const 96 call $~lib/arraybuffer/ArrayBuffer#constructor call $~lib/map/Map#set:entries - local.get $1 + local.get $4 i32.const 4 i32.store offset=12 - local.get $1 + local.get $4 i32.const 0 i32.store offset=16 - local.get $1 + local.get $4 i32.const 0 i32.store offset=20 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=16 + local.get $4 + i32.store offset=12 global.get $~lib/memory/__stack_pointer call $~lib/map/Map#constructor - local.tee $4 - i32.store offset=20 - loop $for-loop|4 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $2 + local.tee $5 + i32.store offset=16 + loop $for-loop|2 + local.get $7 local.get $3 i32.load offset=12 i32.lt_s if - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $2 + local.get $7 local.get $3 i32.load offset=12 i32.ge_u @@ -9918,25 +9137,19 @@ end local.get $3 i32.load offset=4 - local.get $2 - i32.const 1 + local.get $7 + i32.const 3 i32.shl i32.add - i32.load16_u - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - local.get $2 - call $~lib/array/Array#__get - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 + i64.load + local.set $1 local.get $0 - local.get $5 - call $~lib/map/Map#has + local.get $7 + call $~lib/array/Array#__get + local.set $6 + local.get $2 + local.get $1 + call $~lib/map/Map#has i32.eqz if i32.const 0 @@ -9946,14 +9159,12 @@ 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 + local.get $2 + local.get $6 i32.const 20 i32.sub - call $~lib/map/Map#has + i64.extend_i32_s + call $~lib/map/Map#has i32.eqz if i32.const 0 @@ -9963,34 +9174,25 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer + local.get $4 local.get $1 - i32.store offset=4 local.get $1 + call $~lib/map/Map#set local.get $5 - local.get $5 - call $~lib/map/Map#set - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - local.get $7 + local.get $6 i32.const 20 i32.sub - local.tee $5 - local.get $5 + local.tee $6 + local.get $6 call $~lib/map/Map#set - local.get $2 + local.get $7 i32.const 1 i32.add - local.set $2 - br $for-loop|4 + local.set $7 + br $for-loop|2 end end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 + local.get $4 i32.load offset=20 i32.const 100 i32.ne @@ -10002,10 +9204,7 @@ 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 i32.load offset=20 i32.const 100 i32.ne @@ -10017,21 +9216,16 @@ call $~lib/builtins/abort unreachable end - i32.const 0 - local.set $2 - loop $for-loop|6 - local.get $2 - i32.const 65535 - i32.and - i32.const 50 - i32.lt_u + i64.const 0 + local.set $1 + loop $for-loop|3 + local.get $1 + i64.const 50 + i64.lt_s if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 local.get $2 - call $~lib/map/Map#has + local.get $1 + call $~lib/map/Map#has i32.eqz if i32.const 0 @@ -10041,15 +9235,11 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - local.get $2 - call $~lib/map/Map#get local.get $2 - i32.const 65535 - i32.and + local.get $1 + call $~lib/map/Map#get + local.get $1 + i32.wrap_i64 i32.const 20 i32.add i32.ne @@ -10061,18 +9251,12 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 local.get $2 - 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#delete local.get $2 - call $~lib/map/Map#has + local.get $1 + call $~lib/map/Map#has if i32.const 0 i32.const 1568 @@ -10081,17 +9265,14 @@ call $~lib/builtins/abort unreachable end - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $for-loop|6 + local.get $1 + i64.const 1 + i64.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 + local.get $2 i32.load offset=20 i32.const 50 i32.ne @@ -10103,21 +9284,16 @@ call $~lib/builtins/abort unreachable end - i32.const 0 - local.set $2 - loop $for-loop|8 - local.get $2 - i32.const 65535 - i32.and - i32.const 50 - i32.lt_u + i64.const 0 + local.set $1 + loop $for-loop|4 + local.get $1 + i64.const 50 + i64.lt_s if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 local.get $2 - call $~lib/map/Map#has + local.get $1 + call $~lib/map/Map#has if i32.const 0 i32.const 1568 @@ -10126,23 +9302,16 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - local.get $2 local.get $2 - i32.const 65535 - i32.and + local.get $1 + local.get $1 + i32.wrap_i64 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 + call $~lib/map/Map#set local.get $2 - call $~lib/map/Map#has + local.get $1 + call $~lib/map/Map#has i32.eqz if i32.const 0 @@ -10152,18 +9321,12 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 local.get $2 - 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#delete local.get $2 - call $~lib/map/Map#has + local.get $1 + call $~lib/map/Map#has if i32.const 0 i32.const 1568 @@ -10172,17 +9335,14 @@ call $~lib/builtins/abort unreachable end - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $for-loop|8 + local.get $1 + i64.const 1 + i64.add + local.set $1 + br $for-loop|4 end end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 + local.get $2 i32.load offset=20 i32.const 50 i32.ne @@ -10194,15 +9354,9 @@ 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 - i32.store offset=4 - local.get $0 + local.get $2 + call $~lib/map/Map#clear + local.get $2 i32.load offset=20 if i32.const 0 @@ -10213,51 +9367,184 @@ unreachable end global.get $~lib/memory/__stack_pointer - i32.const 24 + i32.const 20 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 - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer + (func $~lib/map/Map#find (param $0 i32) (param $1 i64) (param $2 i32) (result i32) local.get $0 - i32.store + i32.load + 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 + 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 + ) + (func $~lib/map/Map#has (param $0 i32) (param $1 i64) (result i32) local.get $0 local.get $1 local.get $1 - call $~lib/util/hash/hash32 - call $~lib/map/Map#find + call $~lib/util/hash/hash64 + 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) + (func $~lib/map/Map#rehash (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i64) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 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 global.get $~lib/memory/__stack_pointer - local.get $0 + 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 + local.get $0 + i32.load offset=8 + local.tee $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 + i32.ne + if + local.get $9 + i32.load offset=12 + i32.const 1 + i32.and + i32.eqz + if + local.get $2 + local.get $9 + i64.load + local.tee $5 + i64.store + local.get $2 + local.get $9 + i32.load offset=8 + i32.store offset=8 + local.get $2 + local.get $8 + local.get $5 + call $~lib/util/hash/hash64 + local.get $1 + i32.and + i32.const 2 + i32.shl + i32.add + local.tee $4 + i32.load + i32.store offset=12 + local.get $4 + local.get $2 + i32.store + local.get $2 + i32.const 16 + i32.add + local.set $2 + end + local.get $9 + i32.const 16 + i32.add + local.set $9 + br $while-continue|0 + end + end + local.get $0 + local.get $8 + call $~lib/map/Map#set:buckets + local.get $0 + local.get $1 + i32.store offset=4 + local.get $0 + local.get $3 + call $~lib/map/Map#set:entries + local.get $0 + local.get $7 + 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.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/map/Map#get (param $0 i32) (param $1 i64) (result i32) local.get $0 local.get $1 local.get $1 - call $~lib/util/hash/hash32 - call $~lib/map/Map#find + call $~lib/util/hash/hash64 + call $~lib/map/Map#find local.tee $0 i32.eqz if @@ -10269,45 +9556,145 @@ 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.load offset=8 ) - (func $~lib/map/Map#delete (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 i64) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 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 + 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 24 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $3 + i32.store offset=4 local.get $0 - i32.store + i32.load offset=8 + local.tee $9 + local.get $0 + i32.load offset=16 + i32.const 24 + i32.mul + i32.add + local.set $6 + local.get $3 + local.set $2 + loop $while-continue|0 + local.get $6 + local.get $9 + i32.ne + if + local.get $9 + i32.load offset=16 + i32.const 1 + i32.and + i32.eqz + if + local.get $2 + local.get $9 + i64.load + local.tee $5 + i64.store + local.get $2 + local.get $9 + i64.load offset=8 + i64.store offset=8 + local.get $2 + local.get $8 + local.get $5 + call $~lib/util/hash/hash64 + local.get $1 + i32.and + i32.const 2 + i32.shl + i32.add + local.tee $4 + i32.load + i32.store offset=16 + local.get $4 + local.get $2 + i32.store + local.get $2 + i32.const 24 + i32.add + local.set $2 + end + local.get $9 + i32.const 24 + i32.add + local.set $9 + br $while-continue|0 + end + end + local.get $0 + local.get $8 + call $~lib/map/Map#set:buckets + local.get $0 + local.get $1 + i32.store offset=4 + local.get $0 + local.get $3 + call $~lib/map/Map#set:entries + local.get $0 + local.get $7 + 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.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/map/Map#delete (param $0 i32) (param $1 i64) + (local $2 i32) + (local $3 i32) local.get $0 local.get $1 local.get $1 - call $~lib/util/hash/hash32 - call $~lib/map/Map#find - local.tee $1 + call $~lib/util/hash/hash64 + call $~lib/map/Map#find + local.tee $2 i32.eqz if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer return end - local.get $1 - local.get $1 - i32.load offset=8 + local.get $2 + local.get $2 + i32.load offset=12 i32.const 1 i32.or - i32.store offset=8 + i32.store offset=12 local.get $0 local.get $0 i32.load offset=20 @@ -10318,14 +9705,14 @@ i32.load offset=4 i32.const 1 i32.shr_u - local.tee $2 + local.tee $3 i32.const 1 i32.add i32.const 4 local.get $0 i32.load offset=20 - local.tee $1 - local.get $1 + local.tee $2 + local.get $2 i32.const 4 i32.lt_u select @@ -10344,21 +9731,14 @@ 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 + local.get $3 + call $~lib/map/Map#rehash end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer ) - (func $std/map/testNumeric + (func $std/map/testNumeric (local $0 i32) - (local $1 i32) + (local $1 i64) (local $2 i32) (local $3 i32) (local $4 i32) @@ -10366,8 +9746,11 @@ (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 20 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check @@ -10378,23 +9761,57 @@ i64.const 0 i64.store offset=8 global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=16 + i32.const 0 + i32.store offset=16 global.get $~lib/memory/__stack_pointer - call $~lib/map/Map#constructor - local.tee $1 + 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 + i32.const 24 + i32.const 23 + call $~lib/rt/itcms/__new + local.tee $2 + i32.store + local.get $2 + i32.const 16 + call $~lib/arraybuffer/ArrayBuffer#constructor + call $~lib/map/Map#set:buckets + local.get $2 + i32.const 3 + i32.store offset=4 + local.get $2 + i32.const 64 + call $~lib/arraybuffer/ArrayBuffer#constructor + call $~lib/map/Map#set:entries + local.get $2 + i32.const 4 + i32.store offset=12 + local.get $2 + i32.const 0 + i32.store offset=16 + local.get $2 + i32.const 0 + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 i32.store loop $for-loop|0 - local.get $2 - i32.const 100 - i32.lt_s + local.get $1 + 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 $2 - call $~lib/map/Map#has + local.get $1 + call $~lib/map/Map#has if i32.const 0 i32.const 1568 @@ -10403,21 +9820,16 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer + local.get $2 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 + call $~lib/map/Map#set local.get $2 - call $~lib/map/Map#has + local.get $1 + call $~lib/map/Map#has i32.eqz if i32.const 0 @@ -10427,13 +9839,11 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer + local.get $2 local.get $1 - i32.store offset=4 + call $~lib/map/Map#get local.get $1 - local.get $2 - call $~lib/map/Map#get - local.get $2 + i32.wrap_i64 i32.const 10 i32.add i32.ne @@ -10445,17 +9855,14 @@ call $~lib/builtins/abort unreachable end - local.get $2 - i32.const 1 - i32.add - local.set $2 + local.get $1 + i64.const 1 + i64.add + local.set $1 br $for-loop|0 end end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 + local.get $2 i32.load offset=20 i32.const 100 i32.ne @@ -10467,19 +9874,16 @@ call $~lib/builtins/abort unreachable end - i32.const 0 - local.set $2 + i64.const 0 + local.set $1 loop $for-loop|1 - local.get $2 - i32.const 100 - i32.lt_s + local.get $1 + 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 $2 - call $~lib/map/Map#has + local.get $1 + call $~lib/map/Map#has i32.eqz if i32.const 0 @@ -10489,13 +9893,11 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer + local.get $2 local.get $1 - i32.store offset=4 + call $~lib/map/Map#get local.get $1 - local.get $2 - call $~lib/map/Map#get - local.get $2 + i32.wrap_i64 i32.const 10 i32.add i32.ne @@ -10507,21 +9909,16 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer + local.get $2 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 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 + call $~lib/map/Map#set local.get $2 - call $~lib/map/Map#has + local.get $1 + call $~lib/map/Map#has i32.eqz if i32.const 0 @@ -10531,13 +9928,11 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer + local.get $2 local.get $1 - i32.store offset=4 + call $~lib/map/Map#get local.get $1 - local.get $2 - call $~lib/map/Map#get - local.get $2 + i32.wrap_i64 i32.const 20 i32.add i32.ne @@ -10549,17 +9944,14 @@ call $~lib/builtins/abort unreachable end - local.get $2 - i32.const 1 - i32.add - local.set $2 + local.get $1 + i64.const 1 + i64.add + local.set $1 br $for-loop|1 end end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 + local.get $2 i32.load offset=20 i32.const 100 i32.ne @@ -10572,9 +9964,21 @@ unreachable end 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 + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $2 + i32.load offset=8 + local.set $10 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.load offset=16 + local.set $4 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -10583,109 +9987,190 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - local.get $1 - i32.load offset=8 - local.set $6 global.get $~lib/memory/__stack_pointer - local.get $1 - i32.load offset=16 - local.tee $7 - call $~lib/array/Array#constructor - local.tee $2 + i32.const 16 + i32.const 24 + call $~lib/rt/itcms/__new + local.tee $3 + i32.store + local.get $3 + i32.const 0 + call $~lib/map/Map#set:buckets + local.get $3 + i32.const 0 + i32.store offset=4 + local.get $3 + i32.const 0 + i32.store offset=8 + local.get $3 + i32.const 0 + i32.store offset=12 + local.get $4 + i32.const 134217727 + i32.gt_u + if + i32.const 1456 + i32.const 1728 + i32.const 58 + i32.const 60 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.const 3 + i32.shl + local.tee $8 + i32.const 0 + call $~lib/rt/itcms/__new + local.tee $5 + i32.store offset=4 + local.get $5 + local.get $8 + call $~lib/memory/memory.fill + local.get $3 + local.get $5 + call $~lib/map/Map#set:buckets + local.get $3 + local.get $5 + i32.store offset=4 + local.get $3 + local.get $8 + i32.store offset=8 + local.get $3 + local.get $4 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 i32.store loop $for-loop|01 local.get $4 - local.get $7 - i32.lt_s + local.get $6 + i32.gt_s if + local.get $10 local.get $6 - local.get $4 - i32.const 12 - i32.mul + i32.const 4 + i32.shl i32.add - local.tee $8 - i32.load offset=8 + local.tee $5 + i32.load offset=12 i32.const 1 i32.and i32.eqz if - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 + local.get $3 local.get $0 - local.get $8 - i32.load - call $~lib/array/Array#__set + local.get $5 + i64.load + call $~lib/array/Array#__set local.get $0 i32.const 1 i32.add local.set $0 end - local.get $4 + local.get $6 i32.const 1 i32.add - local.set $4 + local.set $6 br $for-loop|01 end end - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 + local.get $3 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.const 4 i32.add global.set $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer local.get $2 + call $~lib/map/Map#values + local.tee $0 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $1 + 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 + i32.const 24 + i32.const 25 + call $~lib/rt/itcms/__new + local.tee $4 + i32.store + local.get $4 + i32.const 16 + call $~lib/arraybuffer/ArrayBuffer#constructor + call $~lib/map/Map#set:buckets + local.get $4 + i32.const 3 i32.store offset=4 + local.get $4 + i32.const 96 + call $~lib/arraybuffer/ArrayBuffer#constructor + call $~lib/map/Map#set:entries + local.get $4 + i32.const 4 + i32.store offset=12 + local.get $4 + i32.const 0 + i32.store offset=16 + local.get $4 + i32.const 0 + i32.store offset=20 global.get $~lib/memory/__stack_pointer - local.get $1 - call $~lib/map/Map#values - local.tee $6 + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $4 i32.store offset=12 global.get $~lib/memory/__stack_pointer call $~lib/map/Map#constructor - local.tee $0 + local.tee $5 i32.store offset=16 - global.get $~lib/memory/__stack_pointer - call $~lib/map/Map#constructor - local.tee $4 - i32.store offset=20 loop $for-loop|2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 + local.get $7 local.get $3 - local.get $2 i32.load offset=12 i32.lt_s if - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 + local.get $7 local.get $3 - call $~lib/array/Array#__get - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 + i32.load offset=12 + i32.ge_u + if + i32.const 1248 + i32.const 1728 + i32.const 92 + i32.const 42 + call $~lib/builtins/abort + unreachable + end local.get $3 + i32.load offset=4 + local.get $7 + i32.const 3 + i32.shl + i32.add + i64.load + local.set $1 + local.get $0 + local.get $7 call $~lib/array/Array#__get - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 + local.set $6 + local.get $2 local.get $1 - local.get $5 - call $~lib/map/Map#has + call $~lib/map/Map#has i32.eqz if i32.const 0 @@ -10695,14 +10180,12 @@ 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 + local.get $2 + local.get $6 i32.const 20 i32.sub - call $~lib/map/Map#has + i64.extend_i32_s + call $~lib/map/Map#has i32.eqz if i32.const 0 @@ -10712,34 +10195,25 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - local.get $5 - local.get $5 - call $~lib/map/Map#set - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 local.get $4 - local.get $7 + local.get $1 + local.get $1 + call $~lib/map/Map#set + local.get $5 + local.get $6 i32.const 20 i32.sub - local.tee $5 - local.get $5 + local.tee $6 + local.get $6 call $~lib/map/Map#set - local.get $3 + local.get $7 i32.const 1 i32.add - local.set $3 + local.set $7 br $for-loop|2 end end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 + local.get $4 i32.load offset=20 i32.const 100 i32.ne @@ -10751,10 +10225,7 @@ 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 i32.load offset=20 i32.const 100 i32.ne @@ -10766,19 +10237,16 @@ call $~lib/builtins/abort unreachable end - i32.const 0 - local.set $3 + i64.const 0 + local.set $1 loop $for-loop|3 - local.get $3 - i32.const 50 - i32.lt_s + local.get $1 + i64.const 50 + i64.lt_u if - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 + local.get $2 local.get $1 - local.get $3 - call $~lib/map/Map#has + call $~lib/map/Map#has i32.eqz if i32.const 0 @@ -10788,13 +10256,11 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer + local.get $2 local.get $1 - i32.store offset=4 + call $~lib/map/Map#get local.get $1 - local.get $3 - call $~lib/map/Map#get - local.get $3 + i32.wrap_i64 i32.const 20 i32.add i32.ne @@ -10806,18 +10272,12 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $3 - call $~lib/map/Map#delete - global.get $~lib/memory/__stack_pointer + local.get $2 local.get $1 - i32.store offset=4 + call $~lib/map/Map#delete + local.get $2 local.get $1 - local.get $3 - call $~lib/map/Map#has + call $~lib/map/Map#has if i32.const 0 i32.const 1568 @@ -10826,17 +10286,14 @@ call $~lib/builtins/abort unreachable end - local.get $3 - i32.const 1 - i32.add - local.set $3 + local.get $1 + i64.const 1 + i64.add + local.set $1 br $for-loop|3 end end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 + local.get $2 i32.load offset=20 i32.const 50 i32.ne @@ -10848,19 +10305,16 @@ call $~lib/builtins/abort unreachable end - i32.const 0 - local.set $3 + i64.const 0 + local.set $1 loop $for-loop|4 - local.get $3 - i32.const 50 - i32.lt_s + local.get $1 + i64.const 50 + i64.lt_u if - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 + local.get $2 local.get $1 - local.get $3 - call $~lib/map/Map#has + call $~lib/map/Map#has if i32.const 0 i32.const 1568 @@ -10869,21 +10323,16 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer + local.get $2 local.get $1 - i32.store offset=4 local.get $1 - local.get $3 - local.get $3 + 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 + call $~lib/map/Map#set + local.get $2 local.get $1 - local.get $3 - call $~lib/map/Map#has + call $~lib/map/Map#has i32.eqz if i32.const 0 @@ -10893,18 +10342,12 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $3 - call $~lib/map/Map#delete - global.get $~lib/memory/__stack_pointer + local.get $2 local.get $1 - i32.store offset=4 + call $~lib/map/Map#delete + local.get $2 local.get $1 - local.get $3 - call $~lib/map/Map#has + call $~lib/map/Map#has if i32.const 0 i32.const 1568 @@ -10912,1550 +10355,103 @@ i32.const 5 call $~lib/builtins/abort unreachable - end - local.get $3 - i32.const 1 - i32.add - local.set $3 - br $for-loop|4 - end - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.load offset=20 - i32.const 50 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 56 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - 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 - i32.load offset=20 - if - i32.const 0 - i32.const 1568 - i32.const 60 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 24 - 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 - call $~stack_check - global.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 - call $~lib/util/hash/hash32 - 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#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 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 $1 - call $~lib/util/hash/hash32 - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - local.get $1 - local.get $4 - call $~lib/map/Map#find - local.tee $3 - if - local.get $3 - local.get $2 - i32.store offset=4 - else - local.get $0 - i32.load offset=16 - local.get $0 - i32.load offset=12 - i32.eq - if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - local.get $0 - i32.load offset=20 - 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 $0 - i32.load offset=4 - else - 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.load offset=8 - local.tee $3 - 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 - local.get $0 - local.get $0 - i32.load offset=20 - i32.const 1 - i32.add - i32.store offset=20 - local.get $3 - local.get $0 - i32.load - 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.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 - call $~stack_check - global.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 - call $~lib/util/hash/hash32 - 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#keys (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 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 $0 - i32.load offset=8 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.load offset=16 - local.tee $8 - local.set $2 - 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 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.const 18 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - local.get $0 - i32.const 0 - call $~lib/map/Map#set:buckets - local.get $0 - i32.const 0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=8 - local.get $0 - i32.const 0 - i32.store offset=12 - local.get $2 - i32.const 268435455 - i32.gt_u - if - i32.const 1456 - i32.const 1728 - i32.const 58 - i32.const 60 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.const 2 - i32.shl - local.tee $5 - i32.const 0 - call $~lib/rt/itcms/__new - local.tee $3 - i32.store offset=4 - local.get $3 - local.get $5 - call $~lib/memory/memory.fill - local.get $0 - local.get $3 - call $~lib/map/Map#set:buckets - local.get $0 - local.get $3 - i32.store offset=4 - local.get $0 - local.get $5 - i32.store offset=8 - local.get $0 - local.get $2 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - i32.store - loop $for-loop|0 - local.get $4 - local.get $8 - i32.lt_s - if - local.get $6 - local.get $4 - i32.const 12 - i32.mul - i32.add - local.tee $2 - i32.load offset=8 - i32.const 1 - i32.and - i32.eqz - if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - local.get $1 - local.get $2 - i32.load - call $~lib/array/Array#__set - local.get $1 - i32.const 1 - i32.add - local.set $1 - end - local.get $4 - i32.const 1 - i32.add - local.set $4 - br $for-loop|0 - end - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - 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 $0 - ) - (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 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 $1 - call $~lib/util/hash/hash32 - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - local.get $1 - local.get $4 - call $~lib/map/Map#find - local.tee $3 - if - local.get $3 - local.get $2 - i32.store offset=4 - else - local.get $0 - i32.load offset=16 - local.get $0 - i32.load offset=12 - i32.eq - if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - local.get $0 - i32.load offset=20 - 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 $0 - i32.load offset=4 - else - 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.load offset=8 - local.tee $3 - 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 - local.get $0 - local.get $0 - i32.load offset=20 - i32.const 1 - i32.add - i32.store offset=20 - local.get $3 - local.get $0 - i32.load - 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.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 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 - local.get $0 - i32.store - local.get $0 - local.get $1 - local.get $1 - call $~lib/util/hash/hash32 - call $~lib/map/Map#find - local.tee $1 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 4 - 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 - local.get $0 - local.get $0 - i32.load offset=20 - i32.const 1 - i32.sub - i32.store offset=20 - local.get $0 - i32.load offset=4 - i32.const 1 - i32.shr_u - local.tee $2 - i32.const 1 - i32.add - i32.const 4 - local.get $0 - i32.load offset=20 - local.tee $1 - local.get $1 - i32.const 4 - i32.lt_u - select - i32.ge_u - if (result i32) - local.get $0 - i32.load offset=20 - 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 4 - 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) - global.get $~lib/memory/__stack_pointer - 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 - i64.const 0 - i64.store offset=8 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=16 - global.get $~lib/memory/__stack_pointer - 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 - i32.const 24 - i32.const 17 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - local.get $0 - i32.const 16 - call $~lib/arraybuffer/ArrayBuffer#constructor - call $~lib/map/Map#set:buckets - local.get $0 - i32.const 3 - i32.store offset=4 - local.get $0 - i32.const 48 - call $~lib/arraybuffer/ArrayBuffer#constructor - call $~lib/map/Map#set:entries - local.get $0 - i32.const 4 - i32.store offset=12 - local.get $0 - i32.const 0 - i32.store offset=16 - local.get $0 - i32.const 0 - i32.store offset=20 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - i32.store - loop $for-loop|0 - local.get $1 - i32.const 100 - i32.lt_u - 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.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.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 - 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 - i32.load offset=20 - 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 $1 - loop $for-loop|1 - local.get $1 - i32.const 100 - i32.lt_u - 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 - local.get $1 - call $~lib/map/Map#get - local.get $1 - 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 - local.get $1 - local.get $1 - 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.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 - i32.const 1 - i32.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 - i32.load offset=20 - 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 - global.get $~lib/memory/__stack_pointer - local.get $0 - call $~lib/map/Map#keys - local.tee $3 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - call $~lib/map/Map#values - local.tee $6 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - 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 - i32.const 24 - i32.const 19 - call $~lib/rt/itcms/__new - local.tee $1 - i32.store - local.get $1 - i32.const 16 - call $~lib/arraybuffer/ArrayBuffer#constructor - call $~lib/map/Map#set:buckets - local.get $1 - i32.const 3 - i32.store offset=4 - local.get $1 - i32.const 48 - call $~lib/arraybuffer/ArrayBuffer#constructor - call $~lib/map/Map#set:entries - local.get $1 - i32.const 4 - i32.store offset=12 - local.get $1 - i32.const 0 - i32.store offset=16 - local.get $1 - i32.const 0 - i32.store offset=20 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - call $~lib/map/Map#constructor - local.tee $4 - i32.store offset=20 - loop $for-loop|2 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $2 - local.get $3 - i32.load offset=12 - i32.lt_s - if - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $2 - local.get $3 - i32.load offset=12 - i32.ge_u - if - i32.const 1248 - i32.const 1728 - i32.const 92 - i32.const 42 - call $~lib/builtins/abort - unreachable - end - local.get $3 - 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 $6 - i32.store offset=4 - local.get $6 - 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 $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 $0 - i32.store offset=4 - local.get $0 - 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 $1 - i32.store offset=4 - local.get $1 - local.get $5 - local.get $5 - call $~lib/map/Map#set - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - local.get $7 - 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 $1 - i32.store offset=4 - local.get $1 - i32.load offset=20 - 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 $4 - i32.store offset=4 - local.get $4 - i32.load offset=20 - 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 $2 - loop $for-loop|3 - local.get $2 - i32.const 50 - i32.lt_u - if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - 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 $0 - i32.store offset=4 - local.get $0 - local.get $2 - call $~lib/map/Map#get - local.get $2 - 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=4 - local.get $0 - local.get $2 - call $~lib/map/Map#delete - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - 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 - i32.const 1 - i32.add - local.set $2 - br $for-loop|3 - end - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.load offset=20 - 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 $2 - loop $for-loop|4 - local.get $2 - i32.const 50 - i32.lt_u - if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - 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 - i32.store offset=4 - local.get $0 - local.get $2 - local.get $2 - 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 $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 $0 - i32.store offset=4 - local.get $0 - local.get $2 - call $~lib/map/Map#delete - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - 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 - i32.const 1 - i32.add - local.set $2 - br $for-loop|4 - end - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.load offset=20 - i32.const 50 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 56 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - 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 - i32.store offset=4 - local.get $0 - i32.load offset=20 - if - i32.const 0 - i32.const 1568 - i32.const 60 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 24 - 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 - call $~stack_check - global.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 - call $~lib/util/hash/hash64 - 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#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 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 $1 - call $~lib/util/hash/hash64 - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - local.get $1 - local.get $4 - call $~lib/map/Map#find - local.tee $3 - if - local.get $3 - local.get $2 - i32.store offset=8 - else - local.get $0 - i32.load offset=16 - local.get $0 - i32.load offset=12 - i32.eq - if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - local.get $0 - i32.load offset=20 - 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 $0 - i32.load offset=4 - else - 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.load offset=8 - local.tee $3 - 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 - local.get $0 - local.get $0 - i32.load offset=20 - i32.const 1 - i32.add - i32.store offset=20 - local.get $3 - local.get $0 - i32.load - 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 8 - 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 - call $~stack_check - global.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 - call $~lib/util/hash/hash64 - 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 - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 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 1728 - i32.const 108 - 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 - call $~lib/array/ensureSize - 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/map/Map#keys (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 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 $0 - i32.load offset=8 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.load offset=16 - local.tee $8 - local.set $2 - 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 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.const 21 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - local.get $0 - i32.const 0 - call $~lib/map/Map#set:buckets - local.get $0 - i32.const 0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=8 - local.get $0 - i32.const 0 - i32.store offset=12 + end + local.get $1 + i64.const 1 + i64.add + local.set $1 + br $for-loop|4 + end + end local.get $2 - i32.const 134217727 - i32.gt_u + i32.load offset=20 + i32.const 50 + i32.ne if - i32.const 1456 - i32.const 1728 - i32.const 58 - i32.const 60 + 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 $2 - i32.const 3 - i32.shl - local.tee $5 - i32.const 0 - call $~lib/rt/itcms/__new - local.tee $3 - i32.store offset=4 - local.get $3 - local.get $5 - call $~lib/memory/memory.fill - local.get $0 - local.get $3 - call $~lib/map/Map#set:buckets - local.get $0 - local.get $3 - i32.store offset=4 - local.get $0 - local.get $5 - i32.store offset=8 - local.get $0 + call $~lib/map/Map#clear local.get $2 - i32.store offset=12 + i32.load offset=20 + if + i32.const 0 + i32.const 1568 + i32.const 60 + i32.const 3 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 20 i32.add global.set $~lib/memory/__stack_pointer + ) + (func $~lib/map/Map#find (param $0 i32) (param $1 f32) (param $2 i32) (result i32) local.get $0 - i32.store - loop $for-loop|0 - local.get $4 - local.get $8 - i32.lt_s + i32.load + 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 $6 - local.get $4 - i32.const 4 - i32.shl - i32.add + local.get $0 + i32.load offset=8 local.tee $2 - i32.load offset=12 i32.const 1 i32.and - i32.eqz - if - global.get $~lib/memory/__stack_pointer + if (result i32) + i32.const 0 + else + local.get $1 local.get $0 - i32.store offset=4 + f32.load + f32.eq + end + if local.get $0 - local.get $1 - local.get $2 - i64.load - call $~lib/array/Array#__set - local.get $1 - i32.const 1 - i32.add - local.set $1 + return end - local.get $4 - i32.const 1 - i32.add - local.set $4 - br $for-loop|0 + 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 + i32.const 0 + ) + (func $~lib/map/Map#has (param $0 i32) (param $1 f32) (result i32) 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 $0 + local.get $1 + i32.reinterpret_f32 + call $~lib/util/hash/hash32 + call $~lib/map/Map#find + i32.const 0 + i32.ne ) - (func $~lib/map/Map#values (param $0 i32) (result i32) - (local $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 $5 f32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -12464,68 +10460,137 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store + 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 12 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $3 + i32.store offset=4 local.get $0 i32.load offset=8 - local.set $3 - global.get $~lib/memory/__stack_pointer + local.tee $9 local.get $0 i32.load offset=16 - local.tee $4 - call $~lib/array/Array#constructor - local.tee $0 - i32.store - loop $for-loop|0 - local.get $2 - local.get $4 - i32.lt_s + i32.const 12 + i32.mul + i32.add + local.set $6 + local.get $3 + local.set $2 + loop $while-continue|0 + local.get $6 + local.get $9 + i32.ne if - local.get $3 - local.get $2 - i32.const 4 - i32.shl - i32.add - local.tee $5 - i32.load offset=12 + local.get $9 + 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 $9 + f32.load + local.tee $5 + f32.store + local.get $2 + local.get $9 + i32.load offset=4 i32.store offset=4 - local.get $0 - local.get $1 + local.get $2 + local.get $8 local.get $5 - i32.load offset=8 - call $~lib/array/Array#__set + i32.reinterpret_f32 + call $~lib/util/hash/hash32 local.get $1 - i32.const 1 + i32.and + i32.const 2 + i32.shl i32.add - local.set $1 + 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 $2 - i32.const 1 + local.get $9 + i32.const 12 i32.add - local.set $2 - br $for-loop|0 + local.set $9 + br $while-continue|0 end end - global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=4 + local.get $8 + call $~lib/map/Map#set:buckets local.get $0 local.get $1 - call $~lib/array/Array#set:length + i32.store offset=4 + local.get $0 + local.get $3 + call $~lib/map/Map#set:entries + local.get $0 + local.get $7 + 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.add global.set $~lib/memory/__stack_pointer + ) + (func $~lib/map/Map#get (param $0 i32) (param $1 f32) (result i32) + local.get $0 + local.get $1 + local.get $1 + i32.reinterpret_f32 + call $~lib/util/hash/hash32 + 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 ) - (func $~lib/map/Map#set (param $0 i32) (param $1 i64) (param $2 i64) + (func $~lib/map/Map#rehash (param $0 i32) (param $1 i32) + (local $2 i32) (local $3 i32) (local $4 i32) - (local $5 i32) + (local $5 f32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -12534,174 +10599,128 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - local.get $1 - call $~lib/util/hash/hash64 - local.set $5 global.get $~lib/memory/__stack_pointer - local.get $0 + 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 12 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $3 + i32.store offset=4 local.get $0 - i32.load - local.get $5 + i32.load offset=8 + local.tee $9 local.get $0 - i32.load offset=4 - i32.and - i32.const 2 - i32.shl + i32.load offset=16 + i32.const 12 + i32.mul i32.add - i32.load - local.set $3 - block $__inlined_func$~lib/map/Map#find - loop $while-continue|0 - local.get $3 + local.set $6 + local.get $3 + local.set $2 + loop $while-continue|0 + local.get $6 + local.get $9 + i32.ne + if + local.get $9 + i32.load offset=8 + i32.const 1 + i32.and + i32.eqz if - local.get $3 - i32.load offset=16 - local.tee $4 - i32.const 1 + local.get $2 + local.get $9 + f32.load + local.tee $5 + f32.store + local.get $2 + local.get $9 + f32.load offset=4 + f32.store offset=4 + local.get $2 + local.get $8 + local.get $5 + i32.reinterpret_f32 + call $~lib/util/hash/hash32 + local.get $1 i32.and - if (result i32) - i32.const 0 - else - local.get $1 - local.get $3 - i64.load - i64.eq - end - br_if $__inlined_func$~lib/map/Map#find + i32.const 2 + i32.shl + i32.add + local.tee $4 + i32.load + i32.store offset=8 local.get $4 - i32.const -2 - i32.and - local.set $3 - br $while-continue|0 + 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 - i32.const 0 - local.set $3 end + local.get $0 + local.get $8 + call $~lib/map/Map#set:buckets + local.get $0 + local.get $1 + i32.store offset=4 + local.get $0 local.get $3 - if - local.get $3 - local.get $2 - i64.store offset=8 - else - local.get $0 - i32.load offset=16 - local.get $0 - i32.load offset=12 - i32.eq - if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - local.get $0 - i32.load offset=20 - 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 $0 - i32.load offset=4 - else - 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.load offset=8 - local.tee $3 - 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 - local.get $0 - local.get $0 - i32.load offset=20 - i32.const 1 - i32.add - i32.store offset=20 - local.get $3 - local.get $0 - i32.load - 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=16 - local.get $0 - local.get $3 - i32.store - end + call $~lib/map/Map#set:entries + local.get $0 + local.get $7 + 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.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/map/Map#delete (param $0 i32) (param $1 i64) + (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 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 - local.get $0 - i32.store local.get $0 local.get $1 local.get $1 - call $~lib/util/hash/hash64 - call $~lib/map/Map#find + i32.reinterpret_f32 + call $~lib/util/hash/hash32 + call $~lib/map/Map#find local.tee $2 i32.eqz if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer return end local.get $2 local.get $2 - i32.load offset=12 + i32.load offset=8 i32.const 1 i32.or - i32.store offset=12 + i32.store offset=8 local.get $0 local.get $0 i32.load offset=20 @@ -12738,29 +10757,26 @@ i32.const 0 end if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store local.get $0 local.get $3 - call $~lib/map/Map#rehash + call $~lib/map/Map#rehash end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer ) - (func $std/map/testNumeric + (func $std/map/testNumeric (local $0 i32) - (local $1 i64) + (local $1 f32) (local $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) (local $6 i32) (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) global.get $~lib/memory/__stack_pointer - i32.const 24 + i32.const 20 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check @@ -12771,8 +10787,8 @@ i64.const 0 i64.store offset=8 global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=16 + i32.const 0 + i32.store offset=16 global.get $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 4 @@ -12784,47 +10800,44 @@ i32.store global.get $~lib/memory/__stack_pointer i32.const 24 - i32.const 20 + i32.const 26 call $~lib/rt/itcms/__new - local.tee $0 + local.tee $2 i32.store - local.get $0 + local.get $2 i32.const 16 call $~lib/arraybuffer/ArrayBuffer#constructor call $~lib/map/Map#set:buckets - local.get $0 + local.get $2 i32.const 3 i32.store offset=4 - local.get $0 - i32.const 64 + local.get $2 + i32.const 48 call $~lib/arraybuffer/ArrayBuffer#constructor call $~lib/map/Map#set:entries - local.get $0 + local.get $2 i32.const 4 i32.store offset=12 - local.get $0 + local.get $2 i32.const 0 i32.store offset=16 - local.get $0 + local.get $2 i32.const 0 i32.store offset=20 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 + local.get $2 i32.store loop $for-loop|0 local.get $1 - i64.const 100 - i64.lt_s + f32.const 100 + f32.lt if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 + local.get $2 local.get $1 - call $~lib/map/Map#has + call $~lib/map/Map#has if i32.const 0 i32.const 1568 @@ -12833,22 +10846,16 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 + local.get $2 local.get $1 local.get $1 - i32.wrap_i64 + i32.trunc_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 + call $~lib/map/Map#set + local.get $2 local.get $1 - call $~lib/map/Map#has + call $~lib/map/Map#has i32.eqz if i32.const 0 @@ -12858,14 +10865,11 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 + local.get $2 local.get $1 - call $~lib/map/Map#get + call $~lib/map/Map#get local.get $1 - i32.wrap_i64 + i32.trunc_f32_s i32.const 10 i32.add i32.ne @@ -12878,16 +10882,13 @@ unreachable end local.get $1 - i64.const 1 - i64.add + 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 + local.get $2 i32.load offset=20 i32.const 100 i32.ne @@ -12899,19 +10900,16 @@ call $~lib/builtins/abort unreachable end - i64.const 0 + f32.const 0 local.set $1 loop $for-loop|1 local.get $1 - i64.const 100 - i64.lt_s + f32.const 100 + f32.lt if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 + local.get $2 local.get $1 - call $~lib/map/Map#has + call $~lib/map/Map#has i32.eqz if i32.const 0 @@ -12921,14 +10919,11 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 + local.get $2 local.get $1 - call $~lib/map/Map#get + call $~lib/map/Map#get local.get $1 - i32.wrap_i64 + i32.trunc_f32_s i32.const 10 i32.add i32.ne @@ -12940,22 +10935,16 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 + local.get $2 local.get $1 local.get $1 - i32.wrap_i64 + i32.trunc_f32_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 + call $~lib/map/Map#set + local.get $2 local.get $1 - call $~lib/map/Map#has + call $~lib/map/Map#has i32.eqz if i32.const 0 @@ -12965,14 +10954,11 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 + local.get $2 local.get $1 - call $~lib/map/Map#get + call $~lib/map/Map#get local.get $1 - i32.wrap_i64 + i32.trunc_f32_s i32.const 20 i32.add i32.ne @@ -12984,45 +10970,189 @@ call $~lib/builtins/abort unreachable end - local.get $1 - i64.const 1 - i64.add - local.set $1 - br $for-loop|1 + local.get $1 + f32.const 1 + f32.add + local.set $1 + br $for-loop|1 + end + end + local.get $2 + i32.load offset=20 + 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 + 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 $2 + i32.load offset=8 + local.set $10 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.load offset=16 + local.set $5 + 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 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.const 27 + call $~lib/rt/itcms/__new + local.tee $3 + i32.store + local.get $3 + i32.const 0 + call $~lib/map/Map#set:buckets + local.get $3 + i32.const 0 + i32.store offset=4 + local.get $3 + i32.const 0 + i32.store offset=8 + local.get $3 + 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 58 + i32.const 60 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.const 2 + i32.shl + local.tee $8 + i32.const 0 + call $~lib/rt/itcms/__new + local.tee $4 + i32.store offset=4 + local.get $4 + local.get $8 + call $~lib/memory/memory.fill + local.get $3 + local.get $4 + call $~lib/map/Map#set:buckets + local.get $3 + local.get $4 + i32.store offset=4 + local.get $3 + local.get $8 + i32.store offset=8 + local.get $3 + local.get $5 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 + i32.store + loop $for-loop|01 + local.get $5 + local.get $6 + i32.gt_s + if + local.get $10 + local.get $6 + i32.const 12 + i32.mul + i32.add + local.tee $4 + i32.load offset=8 + i32.const 1 + i32.and + i32.eqz + if + local.get $4 + f32.load + local.set $1 + local.get $0 + local.get $3 + 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 108 + i32.const 22 + call $~lib/builtins/abort + unreachable + end + local.get $3 + local.get $0 + i32.const 1 + i32.add + local.tee $4 + i32.const 2 + call $~lib/array/ensureSize + local.get $3 + local.get $4 + i32.store offset=12 + end + local.get $3 + i32.load offset=4 + local.get $0 + i32.const 2 + i32.shl + i32.add + local.get $1 + f32.store + local.get $0 + i32.const 1 + i32.add + local.set $0 + end + local.get $6 + i32.const 1 + i32.add + local.set $6 + br $for-loop|01 end end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 + local.get $3 local.get $0 - i32.load offset=20 - i32.const 100 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 21 - i32.const 3 - call $~lib/builtins/abort - unreachable - end + call $~lib/array/Array#set:length global.get $~lib/memory/__stack_pointer - local.get $0 + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $0 - call $~lib/map/Map#keys - local.tee $4 + local.get $2 + call $~lib/map/Map#values + local.tee $6 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 $0 - call $~lib/map/Map#values - local.tee $7 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -13033,54 +11163,48 @@ i32.store global.get $~lib/memory/__stack_pointer i32.const 24 - i32.const 22 + i32.const 28 call $~lib/rt/itcms/__new - local.tee $2 + local.tee $0 i32.store - local.get $2 + local.get $0 i32.const 16 call $~lib/arraybuffer/ArrayBuffer#constructor call $~lib/map/Map#set:buckets - local.get $2 + local.get $0 i32.const 3 i32.store offset=4 - local.get $2 - i32.const 96 + local.get $0 + i32.const 48 call $~lib/arraybuffer/ArrayBuffer#constructor call $~lib/map/Map#set:entries - local.get $2 + local.get $0 i32.const 4 i32.store offset=12 - local.get $2 + local.get $0 i32.const 0 i32.store offset=16 - local.get $2 + local.get $0 i32.const 0 i32.store offset=20 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=16 + local.get $0 + i32.store offset=12 global.get $~lib/memory/__stack_pointer call $~lib/map/Map#constructor - local.tee $3 - i32.store offset=20 + local.tee $5 + i32.store offset=16 loop $for-loop|2 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $5 - local.get $4 + local.get $7 + local.get $3 i32.load offset=12 i32.lt_s if - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $5 - local.get $4 + local.get $7 + local.get $3 i32.load offset=12 i32.ge_u if @@ -13091,27 +11215,21 @@ call $~lib/builtins/abort unreachable end - local.get $4 + local.get $3 i32.load offset=4 - local.get $5 - i32.const 3 + local.get $7 + i32.const 2 i32.shl i32.add - i64.load + f32.load local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 + local.get $6 local.get $7 - local.get $5 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.set $4 + local.get $2 local.get $1 - call $~lib/map/Map#has + call $~lib/map/Map#has i32.eqz if i32.const 0 @@ -13121,15 +11239,12 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - local.get $6 + local.get $2 + local.get $4 i32.const 20 i32.sub - i64.extend_i32_s - call $~lib/map/Map#has + f32.convert_i32_s + call $~lib/map/Map#has i32.eqz if i32.const 0 @@ -13139,34 +11254,25 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 + local.get $0 local.get $1 local.get $1 - call $~lib/map/Map#set - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - local.get $6 + call $~lib/map/Map#set + local.get $5 + local.get $4 i32.const 20 i32.sub - local.tee $6 - local.get $6 + local.tee $4 + local.get $4 call $~lib/map/Map#set - local.get $5 + local.get $7 i32.const 1 i32.add - local.set $5 + local.set $7 br $for-loop|2 end end - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 + local.get $0 i32.load offset=20 i32.const 100 i32.ne @@ -13178,10 +11284,7 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 + local.get $5 i32.load offset=20 i32.const 100 i32.ne @@ -13193,19 +11296,16 @@ call $~lib/builtins/abort unreachable end - i64.const 0 + f32.const 0 local.set $1 loop $for-loop|3 local.get $1 - i64.const 50 - i64.lt_s + f32.const 50 + f32.lt if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 + local.get $2 local.get $1 - call $~lib/map/Map#has + call $~lib/map/Map#has i32.eqz if i32.const 0 @@ -13215,14 +11315,11 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 + local.get $2 local.get $1 - call $~lib/map/Map#get + call $~lib/map/Map#get local.get $1 - i32.wrap_i64 + i32.trunc_f32_s i32.const 20 i32.add i32.ne @@ -13234,18 +11331,12 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 + local.get $2 local.get $1 - call $~lib/map/Map#delete - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 + call $~lib/map/Map#delete + local.get $2 local.get $1 - call $~lib/map/Map#has + call $~lib/map/Map#has if i32.const 0 i32.const 1568 @@ -13255,16 +11346,13 @@ unreachable end local.get $1 - i64.const 1 - i64.add + 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 + local.get $2 i32.load offset=20 i32.const 50 i32.ne @@ -13276,19 +11364,16 @@ call $~lib/builtins/abort unreachable end - i64.const 0 + f32.const 0 local.set $1 loop $for-loop|4 local.get $1 - i64.const 50 - i64.lt_s + f32.const 50 + f32.lt if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 + local.get $2 local.get $1 - call $~lib/map/Map#has + call $~lib/map/Map#has if i32.const 0 i32.const 1568 @@ -13297,22 +11382,16 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 + local.get $2 local.get $1 local.get $1 - i32.wrap_i64 + i32.trunc_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 + call $~lib/map/Map#set + local.get $2 local.get $1 - call $~lib/map/Map#has + call $~lib/map/Map#has i32.eqz if i32.const 0 @@ -13322,18 +11401,12 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 + local.get $2 local.get $1 - call $~lib/map/Map#delete - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 + call $~lib/map/Map#delete + local.get $2 local.get $1 - call $~lib/map/Map#has + call $~lib/map/Map#has if i32.const 0 i32.const 1568 @@ -13343,16 +11416,13 @@ unreachable end local.get $1 - i64.const 1 - i64.add + f32.const 1 + f32.add local.set $1 br $for-loop|4 end end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 + local.get $2 i32.load offset=20 i32.const 50 i32.ne @@ -13362,17 +11432,11 @@ i32.const 56 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 - i32.store offset=4 - local.get $0 + unreachable + end + local.get $2 + call $~lib/map/Map#clear + local.get $2 i32.load offset=20 if i32.const 0 @@ -13383,38 +11447,70 @@ unreachable end global.get $~lib/memory/__stack_pointer - i32.const 24 + i32.const 20 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 - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer + (func $~lib/map/Map#find (param $0 i32) (param $1 f64) (param $2 i32) (result i32) local.get $0 - i32.store + i32.load + 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 + 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 + ) + (func $~lib/map/Map#has (param $0 i32) (param $1 f64) (result i32) local.get $0 local.get $1 local.get $1 + i64.reinterpret_f64 call $~lib/util/hash/hash64 - call $~lib/map/Map#find + 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#set (param $0 i32) (param $1 i64) (param $2 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 $5 f64) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -13423,122 +11519,115 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store + global.get $~lib/memory/__stack_pointer local.get $1 - call $~lib/util/hash/hash64 - local.set $4 + 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 local.get $0 - i32.store + i32.load offset=8 + local.tee $9 local.get $0 - local.get $1 - local.get $4 - call $~lib/map/Map#find - local.tee $3 - if - local.get $3 - local.get $2 - i32.store offset=8 - else - local.get $0 - i32.load offset=16 - local.get $0 - i32.load offset=12 - i32.eq + 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 + i32.ne if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - local.get $0 - i32.load offset=20 - local.get $0 + local.get $9 i32.load offset=12 - i32.const 3 - i32.mul - i32.const 4 - i32.div_s - i32.lt_s - if (result i32) - local.get $0 - i32.load offset=4 - else - local.get $0 - i32.load offset=4 - i32.const 1 + i32.const 1 + i32.and + i32.eqz + 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 + local.get $5 + i64.reinterpret_f64 + call $~lib/util/hash/hash64 + local.get $1 + i32.and + i32.const 2 i32.shl - i32.const 1 - i32.or + i32.add + local.tee $4 + i32.load + i32.store offset=12 + local.get $4 + local.get $2 + i32.store + local.get $2 + i32.const 16 + i32.add + local.set $2 end - call $~lib/map/Map#rehash + local.get $9 + i32.const 16 + i32.add + local.set $9 + br $while-continue|0 end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.load offset=8 - local.tee $3 - 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 - local.get $0 - local.get $0 - i32.load offset=20 - i32.const 1 - i32.add - i32.store offset=20 - local.get $3 - local.get $0 - i32.load - 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 8 - 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 - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer local.get $0 - i32.store + local.get $8 + call $~lib/map/Map#set:buckets + local.get $0 + local.get $1 + i32.store offset=4 + local.get $0 + local.get $3 + call $~lib/map/Map#set:entries + local.get $0 + local.get $7 + 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.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/map/Map#get (param $0 i32) (param $1 f64) (result i32) local.get $0 local.get $1 local.get $1 + i64.reinterpret_f64 call $~lib/util/hash/hash64 - call $~lib/map/Map#find + call $~lib/map/Map#find local.tee $0 i32.eqz if @@ -13551,20 +11640,16 @@ 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) + (func $~lib/map/Map#rehash (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) - (local $5 i32) + (local $5 f64) (local $6 i32) (local $7 i32) (local $8 i32) + (local $9 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -13573,301 +11658,120 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - local.get $0 - i32.load offset=8 - local.set $6 global.get $~lib/memory/__stack_pointer - local.get $0 - i32.load offset=16 + local.get $1 + i32.const 1 + i32.add + local.tee $2 + i32.const 2 + i32.shl + call $~lib/arraybuffer/ArrayBuffer#constructor local.tee $8 - local.set $2 - 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 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.const 24 - call $~lib/rt/itcms/__new - local.tee $0 i32.store - local.get $0 - i32.const 0 - call $~lib/map/Map#set:buckets - local.get $0 - i32.const 0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=8 - local.get $0 - i32.const 0 - i32.store offset=12 - local.get $2 - i32.const 134217727 - i32.gt_u - if - i32.const 1456 - i32.const 1728 - i32.const 58 - i32.const 60 - call $~lib/builtins/abort - unreachable - end global.get $~lib/memory/__stack_pointer local.get $2 i32.const 3 i32.shl - local.tee $5 - i32.const 0 - call $~lib/rt/itcms/__new + i32.const 3 + i32.div_s + local.tee $7 + i32.const 24 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor local.tee $3 i32.store offset=4 - local.get $3 - local.get $5 - call $~lib/memory/memory.fill - local.get $0 - local.get $3 - call $~lib/map/Map#set:buckets - local.get $0 - local.get $3 - i32.store offset=4 local.get $0 - local.get $5 - i32.store offset=8 + i32.load offset=8 + local.tee $9 local.get $0 - local.get $2 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.load offset=16 + i32.const 24 + i32.mul i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - i32.store - loop $for-loop|0 - local.get $4 - local.get $8 - i32.lt_s + local.set $6 + local.get $3 + local.set $2 + loop $while-continue|0 + local.get $6 + local.get $9 + i32.ne if - local.get $6 - local.get $4 - i32.const 4 - i32.shl - i32.add - local.tee $2 - i32.load offset=12 + local.get $9 + i32.load offset=16 i32.const 1 i32.and i32.eqz if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - local.get $1 local.get $2 - i64.load - call $~lib/array/Array#__set + local.get $9 + f64.load + local.tee $5 + f64.store + local.get $2 + local.get $9 + f64.load offset=8 + f64.store offset=8 + local.get $2 + local.get $8 + local.get $5 + i64.reinterpret_f64 + call $~lib/util/hash/hash64 local.get $1 - i32.const 1 - i32.add - local.set $1 - end - local.get $4 - i32.const 1 - i32.add - local.set $4 - br $for-loop|0 - end - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - 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 $0 - ) - (func $~lib/map/Map#set (param $0 i32) (param $1 i64) (param $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 - call $~stack_check - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - local.get $1 - call $~lib/util/hash/hash64 - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load - local.get $5 - 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 - 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 - br_if $__inlined_func$~lib/map/Map#find - local.get $4 - i32.const -2 i32.and - local.set $3 - br $while-continue|0 - end - end - i32.const 0 - local.set $3 - end - local.get $3 - if - local.get $3 - local.get $2 - i64.store offset=8 - else - local.get $0 - i32.load offset=16 - local.get $0 - i32.load offset=12 - i32.eq - if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - local.get $0 - i32.load offset=20 - 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 $0 - i32.load offset=4 - else - local.get $0 - i32.load offset=4 - i32.const 1 - i32.shl - i32.const 1 - i32.or + i32.const 2 + i32.shl + i32.add + local.tee $4 + i32.load + i32.store offset=16 + local.get $4 + local.get $2 + i32.store + local.get $2 + i32.const 24 + i32.add + local.set $2 end - call $~lib/map/Map#rehash + local.get $9 + i32.const 24 + i32.add + local.set $9 + br $while-continue|0 end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.load offset=8 - local.tee $3 - 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 - local.get $0 - local.get $0 - i32.load offset=20 - i32.const 1 - i32.add - i32.store offset=20 - local.get $3 - local.get $0 - i32.load - 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=16 - local.get $0 - local.get $3 - i32.store end + local.get $0 + local.get $8 + call $~lib/map/Map#set:buckets + local.get $0 + local.get $1 + i32.store offset=4 + local.get $0 + local.get $3 + call $~lib/map/Map#set:entries + local.get $0 + local.get $7 + 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.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/map/Map#delete (param $0 i32) (param $1 i64) + (func $~lib/map/Map#delete (param $0 i32) (param $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 - call $~stack_check - global.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 call $~lib/util/hash/hash64 - call $~lib/map/Map#find + call $~lib/map/Map#find local.tee $2 i32.eqz if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer return end local.get $2 @@ -13912,29 +11816,26 @@ i32.const 0 end if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store local.get $0 local.get $3 - call $~lib/map/Map#rehash + call $~lib/map/Map#rehash end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer ) - (func $std/map/testNumeric + (func $std/map/testNumeric (local $0 i32) - (local $1 i64) + (local $1 f64) (local $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) (local $6 i32) (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) global.get $~lib/memory/__stack_pointer - i32.const 24 + i32.const 20 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check @@ -13945,8 +11846,8 @@ i64.const 0 i64.store offset=8 global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=16 + i32.const 0 + i32.store offset=16 global.get $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 4 @@ -13958,47 +11859,44 @@ i32.store global.get $~lib/memory/__stack_pointer i32.const 24 - i32.const 23 + i32.const 29 call $~lib/rt/itcms/__new - local.tee $0 + local.tee $2 i32.store - local.get $0 + local.get $2 i32.const 16 call $~lib/arraybuffer/ArrayBuffer#constructor call $~lib/map/Map#set:buckets - local.get $0 + local.get $2 i32.const 3 i32.store offset=4 - local.get $0 + local.get $2 i32.const 64 call $~lib/arraybuffer/ArrayBuffer#constructor call $~lib/map/Map#set:entries - local.get $0 + local.get $2 i32.const 4 i32.store offset=12 - local.get $0 + local.get $2 i32.const 0 i32.store offset=16 - local.get $0 + local.get $2 i32.const 0 i32.store offset=20 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 + local.get $2 i32.store loop $for-loop|0 local.get $1 - i64.const 100 - i64.lt_u + f64.const 100 + f64.lt if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 + local.get $2 local.get $1 - call $~lib/map/Map#has + call $~lib/map/Map#has if i32.const 0 i32.const 1568 @@ -14007,22 +11905,16 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 + local.get $2 local.get $1 local.get $1 - i32.wrap_i64 + i32.trunc_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 + call $~lib/map/Map#set + local.get $2 local.get $1 - call $~lib/map/Map#has + call $~lib/map/Map#has i32.eqz if i32.const 0 @@ -14032,14 +11924,11 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 + local.get $2 local.get $1 - call $~lib/map/Map#get + call $~lib/map/Map#get local.get $1 - i32.wrap_i64 + i32.trunc_f64_s i32.const 10 i32.add i32.ne @@ -14052,16 +11941,13 @@ unreachable end local.get $1 - i64.const 1 - i64.add + 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 + local.get $2 i32.load offset=20 i32.const 100 i32.ne @@ -14073,19 +11959,16 @@ call $~lib/builtins/abort unreachable end - i64.const 0 + f64.const 0 local.set $1 loop $for-loop|1 local.get $1 - i64.const 100 - i64.lt_u + f64.const 100 + f64.lt if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 + local.get $2 local.get $1 - call $~lib/map/Map#has + call $~lib/map/Map#has i32.eqz if i32.const 0 @@ -14095,14 +11978,11 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 + local.get $2 local.get $1 - call $~lib/map/Map#get + call $~lib/map/Map#get local.get $1 - i32.wrap_i64 + i32.trunc_f64_s i32.const 10 i32.add i32.ne @@ -14114,22 +11994,16 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 + local.get $2 local.get $1 local.get $1 - i32.wrap_i64 + i32.trunc_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 + call $~lib/map/Map#set + local.get $2 local.get $1 - call $~lib/map/Map#has + call $~lib/map/Map#has i32.eqz if i32.const 0 @@ -14139,14 +12013,11 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 + local.get $2 local.get $1 - call $~lib/map/Map#get + call $~lib/map/Map#get local.get $1 - i32.wrap_i64 + i32.trunc_f64_s i32.const 20 i32.add i32.ne @@ -14159,43 +12030,187 @@ unreachable end local.get $1 - i64.const 1 - i64.add + f64.const 1 + f64.add local.set $1 br $for-loop|1 end end + local.get $2 + i32.load offset=20 + 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 + 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 $2 + i32.load offset=8 + local.set $10 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.load offset=16 + local.set $5 + 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 global.get $~lib/memory/__stack_pointer - local.get $0 + i32.const 16 + i32.const 30 + call $~lib/rt/itcms/__new + local.tee $3 + i32.store + local.get $3 + i32.const 0 + call $~lib/map/Map#set:buckets + local.get $3 + i32.const 0 i32.store offset=4 - local.get $0 - i32.load offset=20 - i32.const 100 - i32.ne + local.get $3 + i32.const 0 + i32.store offset=8 + local.get $3 + 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 21 - i32.const 3 + i32.const 1456 + i32.const 1728 + i32.const 58 + i32.const 60 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/map/Map#keys + local.get $5 + i32.const 3 + i32.shl + local.tee $8 + i32.const 0 + call $~lib/rt/itcms/__new local.tee $4 + i32.store offset=4 + local.get $4 + local.get $8 + call $~lib/memory/memory.fill + local.get $3 + local.get $4 + call $~lib/map/Map#set:buckets + local.get $3 + local.get $4 + i32.store offset=4 + local.get $3 + local.get $8 i32.store offset=8 + local.get $3 + local.get $5 + i32.store offset=12 global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 + i32.store + loop $for-loop|01 + local.get $5 + local.get $6 + i32.gt_s + if + local.get $10 + local.get $6 + i32.const 4 + i32.shl + i32.add + local.tee $4 + i32.load offset=12 + i32.const 1 + i32.and + i32.eqz + if + local.get $4 + f64.load + local.set $1 + local.get $0 + local.get $3 + 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 108 + i32.const 22 + call $~lib/builtins/abort + unreachable + end + local.get $3 + local.get $0 + i32.const 1 + i32.add + local.tee $4 + i32.const 3 + call $~lib/array/ensureSize + local.get $3 + local.get $4 + i32.store offset=12 + end + local.get $3 + i32.load offset=4 + local.get $0 + i32.const 3 + i32.shl + i32.add + local.get $1 + f64.store + local.get $0 + i32.const 1 + i32.add + local.set $0 + end + local.get $6 + i32.const 1 + i32.add + local.set $6 + br $for-loop|01 + end + end + local.get $3 local.get $0 + call $~lib/array/Array#set:length + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $2 call $~lib/map/Map#values - local.tee $7 - i32.store offset=12 + local.tee $6 + i32.store offset=8 global.get $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 4 @@ -14207,54 +12222,48 @@ i32.store global.get $~lib/memory/__stack_pointer i32.const 24 - i32.const 25 + i32.const 31 call $~lib/rt/itcms/__new - local.tee $2 + local.tee $0 i32.store - local.get $2 + local.get $0 i32.const 16 call $~lib/arraybuffer/ArrayBuffer#constructor call $~lib/map/Map#set:buckets - local.get $2 + local.get $0 i32.const 3 i32.store offset=4 - local.get $2 + local.get $0 i32.const 96 call $~lib/arraybuffer/ArrayBuffer#constructor call $~lib/map/Map#set:entries - local.get $2 + local.get $0 i32.const 4 i32.store offset=12 - local.get $2 + local.get $0 i32.const 0 i32.store offset=16 - local.get $2 + local.get $0 i32.const 0 i32.store offset=20 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=16 + local.get $0 + i32.store offset=12 global.get $~lib/memory/__stack_pointer call $~lib/map/Map#constructor - local.tee $3 - i32.store offset=20 + local.tee $5 + i32.store offset=16 loop $for-loop|2 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $5 - local.get $4 + local.get $7 + local.get $3 i32.load offset=12 i32.lt_s if - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $5 - local.get $4 + local.get $7 + local.get $3 i32.load offset=12 i32.ge_u if @@ -14265,27 +12274,21 @@ call $~lib/builtins/abort unreachable end - local.get $4 + local.get $3 i32.load offset=4 - local.get $5 + local.get $7 i32.const 3 i32.shl i32.add - i64.load + f64.load local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 + local.get $6 local.get $7 - local.get $5 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.set $4 + local.get $2 local.get $1 - call $~lib/map/Map#has + call $~lib/map/Map#has i32.eqz if i32.const 0 @@ -14295,15 +12298,12 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - local.get $6 + local.get $2 + local.get $4 i32.const 20 i32.sub - i64.extend_i32_s - call $~lib/map/Map#has + f64.convert_i32_s + call $~lib/map/Map#has i32.eqz if i32.const 0 @@ -14313,34 +12313,25 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 + local.get $0 local.get $1 local.get $1 - call $~lib/map/Map#set - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - local.get $6 + call $~lib/map/Map#set + local.get $5 + local.get $4 i32.const 20 i32.sub - local.tee $6 - local.get $6 + local.tee $4 + local.get $4 call $~lib/map/Map#set - local.get $5 + local.get $7 i32.const 1 i32.add - local.set $5 + local.set $7 br $for-loop|2 end end - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 + local.get $0 i32.load offset=20 i32.const 100 i32.ne @@ -14352,10 +12343,7 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 + local.get $5 i32.load offset=20 i32.const 100 i32.ne @@ -14367,19 +12355,16 @@ call $~lib/builtins/abort unreachable end - i64.const 0 + f64.const 0 local.set $1 loop $for-loop|3 local.get $1 - i64.const 50 - i64.lt_u + f64.const 50 + f64.lt if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 + local.get $2 local.get $1 - call $~lib/map/Map#has + call $~lib/map/Map#has i32.eqz if i32.const 0 @@ -14389,14 +12374,11 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 + local.get $2 local.get $1 - call $~lib/map/Map#get + call $~lib/map/Map#get local.get $1 - i32.wrap_i64 + i32.trunc_f64_s i32.const 20 i32.add i32.ne @@ -14408,18 +12390,12 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 + local.get $2 local.get $1 - call $~lib/map/Map#delete - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 + call $~lib/map/Map#delete + local.get $2 local.get $1 - call $~lib/map/Map#has + call $~lib/map/Map#has if i32.const 0 i32.const 1568 @@ -14429,16 +12405,13 @@ unreachable end local.get $1 - i64.const 1 - i64.add + 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 + local.get $2 i32.load offset=20 i32.const 50 i32.ne @@ -14450,19 +12423,16 @@ call $~lib/builtins/abort unreachable end - i64.const 0 + f64.const 0 local.set $1 loop $for-loop|4 local.get $1 - i64.const 50 - i64.lt_u + f64.const 50 + f64.lt if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 + local.get $2 local.get $1 - call $~lib/map/Map#has + call $~lib/map/Map#has if i32.const 0 i32.const 1568 @@ -14471,22 +12441,16 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 + local.get $2 local.get $1 local.get $1 - i32.wrap_i64 + i32.trunc_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 + call $~lib/map/Map#set + local.get $2 local.get $1 - call $~lib/map/Map#has + call $~lib/map/Map#has i32.eqz if i32.const 0 @@ -14496,18 +12460,12 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 + local.get $2 local.get $1 - call $~lib/map/Map#delete - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 + call $~lib/map/Map#delete + local.get $2 local.get $1 - call $~lib/map/Map#has + call $~lib/map/Map#has if i32.const 0 i32.const 1568 @@ -14517,16 +12475,13 @@ unreachable end local.get $1 - i64.const 1 - i64.add + 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 offset=4 - local.get $0 + local.get $2 i32.load offset=20 i32.const 50 i32.ne @@ -14538,15 +12493,9 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 + local.get $2 call $~lib/map/Map#clear - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 + local.get $2 i32.load offset=20 if i32.const 0 @@ -14557,399 +12506,185 @@ unreachable end global.get $~lib/memory/__stack_pointer - i32.const 24 - 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 - call $~stack_check - global.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 - call $~lib/util/hash/hash32 - call $~lib/map/Map#find - i32.const 0 - i32.ne - global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 20 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 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 $1 - i32.reinterpret_f32 - call $~lib/util/hash/hash32 - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - local.get $1 - local.get $4 - call $~lib/map/Map#find - local.tee $3 - if - local.get $3 - local.get $2 - i32.store offset=4 - else - local.get $0 - i32.load offset=16 - local.get $0 - i32.load offset=12 - i32.eq - if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - local.get $0 - i32.load offset=20 - 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 $0 - i32.load offset=4 - else + (func $~lib/rt/__visit_members (param $0 i32) + block $folding-inner1 + block $folding-inner0 + block $invalid + block $~lib/arraybuffer/ArrayBufferView + block $~lib/string/String + block $~lib/arraybuffer/ArrayBuffer + local.get $0 + i32.const 8 + i32.sub + i32.load + br_table $~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 local.get $0 - i32.load offset=4 - i32.const 1 - i32.shl - i32.const 1 - i32.or + i32.load + local.tee $0 + if + local.get $0 + call $~lib/rt/itcms/__visit + end + return end - call $~lib/map/Map#rehash + unreachable end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.load offset=8 - local.tee $3 - 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 $0 - local.get $0 - i32.load offset=20 - i32.const 1 - i32.add - i32.store offset=20 - local.get $3 - local.get $0 - i32.load - 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 + call $~lib/rt/itcms/__visit local.get $0 - local.get $3 - i32.store + i32.load offset=8 + call $~lib/rt/itcms/__visit + return + end + local.get $0 + i32.load + call $~lib/rt/itcms/__visit + ) + (func $~start + i32.const 1168 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/pinSpace + i32.const 1200 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/toSpace + i32.const 1344 + 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 + 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 - 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 $~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 - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store + (func $~stack_check global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - local.get $1 - local.get $1 - i32.reinterpret_f32 - call $~lib/util/hash/hash32 - call $~lib/map/Map#find - local.tee $0 - i32.eqz + i32.const 2020 + i32.lt_s if - i32.const 1616 - i32.const 1680 - i32.const 105 - i32.const 17 + i32.const 18432 + i32.const 18480 + i32.const 1 + i32.const 1 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#keys (param $0 i32) (result i32) + (func $~lib/arraybuffer/ArrayBuffer#constructor (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 f32) - 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 $0 - i32.load offset=8 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.load offset=16 - local.tee $8 - local.set $2 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 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.const 27 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - local.get $0 - i32.const 0 - call $~lib/map/Map#set:buckets - local.get $0 - i32.const 0 - i32.store offset=4 - local.get $0 i32.const 0 - i32.store offset=8 + i32.store local.get $0 - i32.const 0 - i32.store offset=12 - local.get $2 - i32.const 268435455 + i32.const 1073741820 i32.gt_u if i32.const 1456 - i32.const 1728 - i32.const 58 - i32.const 60 + i32.const 1504 + i32.const 49 + i32.const 43 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $2 - i32.const 2 - i32.shl - local.tee $5 + local.get $0 i32.const 0 call $~lib/rt/itcms/__new - local.tee $3 - i32.store offset=4 - local.get $3 - local.get $5 - call $~lib/memory/memory.fill - local.get $0 - local.get $3 - call $~lib/map/Map#set:buckets - local.get $0 - local.get $3 - i32.store offset=4 - local.get $0 - local.get $5 - i32.store offset=8 - local.get $0 - local.get $2 - 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.tee $1 i32.store - loop $for-loop|0 - local.get $4 - local.get $8 - i32.lt_s - if - local.get $6 - local.get $4 - i32.const 12 - i32.mul - i32.add - local.tee $2 - i32.load offset=8 - i32.const 1 - i32.and - i32.eqz - if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $2 - f32.load - local.set $9 - 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 $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 1728 - i32.const 108 - i32.const 22 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.get $1 - i32.const 1 - i32.add - local.tee $2 - i32.const 2 - call $~lib/array/ensureSize - local.get $0 - local.get $2 - 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 $9 - f32.store - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $1 - i32.const 1 - i32.add - local.set $1 - end - local.get $4 - i32.const 1 - i32.add - local.set $4 - br $for-loop|0 - end - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 local.get $1 - call $~lib/array/Array#set:length + local.get $0 + call $~lib/memory/memory.fill 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/map/Map#set (param $0 i32) (param $1 f32) (param $2 f32) + (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 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 $1 - i32.reinterpret_f32 - call $~lib/util/hash/hash32 + i32.const 24 + i32.shl + i32.const 24 + i32.shr_s + i32.const -2128831035 + i32.xor + i32.const 16777619 + i32.mul + local.tee $3 local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store local.get $0 local.get $1 - local.get $4 - call $~lib/map/Map#find + local.get $3 + call $~lib/map/Map#find local.tee $3 if local.get $3 local.get $2 - f32.store offset=4 + i32.store offset=4 else local.get $0 i32.load offset=16 @@ -14957,9 +12692,6 @@ i32.load offset=12 i32.eq if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store local.get $0 local.get $0 i32.load offset=20 @@ -14981,13 +12713,13 @@ 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 i32.load offset=8 local.tee $3 - i32.store offset=4 + i32.store local.get $0 local.get $0 i32.load offset=16 @@ -15002,10 +12734,10 @@ i32.add local.tee $3 local.get $1 - f32.store + i32.store8 local.get $3 local.get $2 - f32.store offset=4 + i32.store offset=4 local.get $0 local.get $0 i32.load offset=20 @@ -15030,117 +12762,149 @@ i32.store end global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/map/Map#delete (param $0 i32) (param $1 f32) + (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 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 global.get $~lib/memory/__stack_pointer - local.get $0 + i32.const 16 + i32.const 5 + call $~lib/rt/itcms/__new + local.tee $1 i32.store - local.get $0 local.get $1 + i32.const 0 + call $~lib/map/Map#set:buckets local.get $1 - i32.reinterpret_f32 - call $~lib/util/hash/hash32 - call $~lib/map/Map#find - local.tee $2 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 4 - 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.const 0 + i32.store offset=4 + local.get $1 + i32.const 0 i32.store offset=8 + 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 58 + i32.const 60 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer local.get $0 - i32.load offset=20 - i32.const 1 - i32.sub - i32.store offset=20 - local.get $0 - i32.load offset=4 - i32.const 1 - i32.shr_u + i32.const 2 + i32.shl local.tee $3 - i32.const 1 - i32.add - i32.const 4 - local.get $0 - i32.load offset=20 + i32.const 0 + call $~lib/rt/itcms/__new local.tee $2 + i32.store offset=4 local.get $2 - i32.const 4 - i32.lt_u - select - i32.ge_u - if (result i32) - local.get $0 - i32.load offset=20 - 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 - call $~lib/map/Map#rehash - end + local.get $3 + call $~lib/memory/memory.fill + local.get $1 + local.get $2 + call $~lib/map/Map#set:buckets + 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.const 8 i32.add global.set $~lib/memory/__stack_pointer + local.get $1 ) - (func $std/map/testNumeric - (local $0 i32) - (local $1 f32) + (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) global.get $~lib/memory/__stack_pointer - i32.const 24 + i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=8 + i32.const 0 + i32.store + local.get $0 + i32.load offset=8 + local.set $3 global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=16 + local.get $0 + i32.load offset=16 + local.tee $4 + call $~lib/array/Array#constructor + local.tee $0 + i32.store + loop $for-loop|0 + local.get $2 + local.get $4 + i32.lt_s + if + local.get $3 + local.get $2 + i32.const 12 + i32.mul + i32.add + local.tee $5 + i32.load offset=8 + i32.const 1 + i32.and + i32.eqz + if + local.get $0 + local.get $1 + local.get $5 + 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 + local.get $0 + local.get $1 + call $~lib/array/Array#set:length global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + ) + (func $~lib/map/Map#constructor (result i32) + (local $0 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -15151,7 +12915,7 @@ i32.store global.get $~lib/memory/__stack_pointer i32.const 24 - i32.const 26 + i32.const 7 call $~lib/rt/itcms/__new local.tee $0 i32.store @@ -15175,221 +12939,269 @@ local.get $0 i32.const 0 i32.store offset=20 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - i32.store - loop $for-loop|0 - local.get $1 - 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 - 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_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 - 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 + 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) + (local $4 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 $0 + i32.load + local.get $1 + local.tee $3 + i32.const 24 + i32.shl + i32.const 24 + i32.shr_s + i32.const -2128831035 + i32.xor + i32.const 16777619 + i32.mul + local.tee $5 + local.get $0 + i32.load offset=4 + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $1 + block $__inlined_func$~lib/map/Map#find + loop $while-continue|0 local.get $1 - i32.trunc_f32_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 + local.get $1 + i32.load offset=4 + local.tee $4 + i32.const 1 + i32.and + if (result i32) + i32.const 0 + else + local.get $1 + i32.load8_u + local.get $3 + i32.const 255 + i32.and + i32.eq + end + br_if $__inlined_func$~lib/map/Map#find + local.get $4 + i32.const -2 + i32.and + local.set $1 + br $while-continue|0 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 - i32.load offset=20 - i32.const 100 - i32.ne - if i32.const 0 - i32.const 1568 - i32.const 11 - i32.const 3 - call $~lib/builtins/abort - unreachable + local.set $1 end - f32.const 0 - local.set $1 - loop $for-loop|1 + local.get $1 + if local.get $1 - f32.const 100 - f32.lt + local.get $2 + i32.store8 offset=1 + else + local.get $0 + i32.load offset=16 + local.get $0 + i32.load offset=12 + i32.eq 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 - local.get $1 - call $~lib/map/Map#get - local.get $1 - i32.trunc_f32_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 - local.get $1 - local.get $1 - i32.trunc_f32_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 + i32.load offset=20 local.get $0 - local.get $1 - call $~lib/map/Map#get - local.get $1 - i32.trunc_f32_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 + i32.load offset=12 + i32.const 3 + i32.mul + i32.const 4 + i32.div_s + i32.lt_s + if (result i32) + local.get $0 + i32.load offset=4 + else + local.get $0 + i32.load offset=4 + i32.const 1 + i32.shl + i32.const 1 + i32.or end - local.get $1 - f32.const 1 - f32.add - local.set $1 - br $for-loop|1 + call $~lib/map/Map#rehash end - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.load offset=20 - 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.load offset=8 + local.tee $1 + i32.store + local.get $0 + local.get $0 + i32.load offset=16 + local.tee $4 + i32.const 1 + i32.add + i32.store offset=16 + local.get $1 + local.get $4 i32.const 3 - call $~lib/builtins/abort - unreachable + i32.shl + i32.add + local.tee $1 + local.get $3 + i32.store8 + local.get $1 + local.get $2 + i32.store8 offset=1 + local.get $0 + local.get $0 + i32.load offset=20 + i32.const 1 + i32.add + i32.store offset=20 + local.get $1 + local.get $0 + i32.load + 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=4 + local.get $0 + local.get $1 + 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/map/Map#keys - local.tee $4 - i32.store offset=8 + 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) global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 + 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 $0 - call $~lib/map/Map#values - local.tee $7 - i32.store offset=12 + local.get $1 + local.get $1 + call $~lib/util/hash/hash32 + local.tee $4 + call $~lib/map/Map#find + local.tee $3 + if + local.get $3 + local.get $2 + i32.store offset=4 + else + local.get $0 + i32.load offset=16 + local.get $0 + i32.load offset=12 + i32.eq + if + local.get $0 + local.get $0 + i32.load offset=20 + 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 $0 + i32.load offset=4 + else + 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.load offset=8 + local.tee $3 + i32.store + 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 + local.get $0 + local.get $0 + i32.load offset=20 + i32.const 1 + i32.add + i32.store offset=20 + local.get $3 + local.get $0 + i32.load + 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.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 4 i32.sub @@ -15398,363 +13210,511 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store + local.get $1 + i32.const 255 + i32.and + i32.const -2128831035 + i32.xor + i32.const 16777619 + i32.mul + local.tee $3 + local.set $4 + local.get $0 + local.get $1 + local.get $3 + call $~lib/map/Map#find + local.tee $3 + if + local.get $3 + local.get $2 + i32.store offset=4 + else + local.get $0 + i32.load offset=16 + local.get $0 + i32.load offset=12 + i32.eq + if + local.get $0 + local.get $0 + i32.load offset=20 + 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 $0 + i32.load offset=4 + else + 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.load offset=8 + local.tee $3 + i32.store + 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 + local.get $0 + local.get $0 + i32.load offset=20 + i32.const 1 + i32.add + i32.store offset=20 + local.get $3 + local.get $0 + i32.load + 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 24 - i32.const 28 - call $~lib/rt/itcms/__new - local.tee $2 - i32.store - local.get $2 - i32.const 16 - call $~lib/arraybuffer/ArrayBuffer#constructor - call $~lib/map/Map#set:buckets - local.get $2 - i32.const 3 - i32.store offset=4 - local.get $2 - i32.const 48 - call $~lib/arraybuffer/ArrayBuffer#constructor - call $~lib/map/Map#set:entries - local.get $2 i32.const 4 - i32.store offset=12 - local.get $2 - i32.const 0 - i32.store offset=16 - local.get $2 - i32.const 0 - i32.store offset=20 + 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 4 - i32.add + i32.sub global.set $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=16 + call $~stack_check global.get $~lib/memory/__stack_pointer - call $~lib/map/Map#constructor + i32.const 0 + i32.store + local.get $0 + i32.load + local.get $1 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 $5 - local.get $4 - i32.load offset=12 - i32.lt_s - if - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $5 - local.get $4 - i32.load offset=12 - i32.ge_u - if - i32.const 1248 - i32.const 1728 - i32.const 92 - i32.const 42 - call $~lib/builtins/abort - unreachable - end - local.get $4 - i32.load offset=4 - local.get $5 - i32.const 2 - i32.shl - i32.add - f32.load - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - local.get $5 - 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.const 255 + i32.and + i32.const -2128831035 + i32.xor + i32.const 16777619 + i32.mul + local.tee $5 + local.get $0 + i32.load offset=4 + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $1 + block $__inlined_func$~lib/map/Map#find + loop $while-continue|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 $6 - 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 + local.get $1 + i32.load offset=4 + local.tee $4 + i32.const 1 + i32.and + if (result i32) + i32.const 0 + else + local.get $1 + i32.load8_u + local.get $3 + i32.const 255 + i32.and + i32.eq + end + br_if $__inlined_func$~lib/map/Map#find + local.get $4 + i32.const -2 + i32.and + local.set $1 + br $while-continue|0 end - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - local.get $1 - local.get $1 - 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 - call $~lib/map/Map#set - local.get $5 - i32.const 1 - i32.add - local.set $5 - br $for-loop|2 end - end - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.load offset=20 - i32.const 100 - i32.ne - if i32.const 0 - i32.const 1568 - i32.const 36 - i32.const 3 - call $~lib/builtins/abort - unreachable + local.set $1 end - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - i32.load offset=20 - i32.const 100 - i32.ne + local.get $1 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 + local.get $2 + i32.store8 offset=1 + else + local.get $0 + i32.load offset=16 + local.get $0 + i32.load offset=12 + i32.eq 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 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_f32_s - 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=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 + i32.load offset=20 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 + i32.load offset=12 + i32.const 3 + i32.mul + i32.const 4 + i32.div_s + i32.lt_s + if (result i32) + local.get $0 + i32.load offset=4 + else + local.get $0 + i32.load offset=4 + i32.const 1 + i32.shl + i32.const 1 + i32.or end - local.get $1 - f32.const 1 - f32.add - local.set $1 - br $for-loop|3 + call $~lib/map/Map#rehash end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.load offset=8 + local.tee $1 + i32.store + local.get $0 + local.get $0 + i32.load offset=16 + local.tee $4 + i32.const 1 + i32.add + i32.store offset=16 + local.get $1 + local.get $4 + i32.const 3 + i32.shl + i32.add + local.tee $1 + local.get $3 + i32.store8 + local.get $1 + local.get $2 + i32.store8 offset=1 + local.get $0 + local.get $0 + i32.load offset=20 + i32.const 1 + i32.add + i32.store offset=20 + local.get $1 + local.get $0 + i32.load + 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=4 + local.get $0 + local.get $1 + i32.store end 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) + 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 $0 - i32.store offset=4 - local.get $0 - i32.load offset=20 - i32.const 50 - i32.ne + local.get $1 + local.get $1 + i32.const 16 + i32.shl + i32.const 16 + i32.shr_s + call $~lib/util/hash/hash16 + local.tee $4 + call $~lib/map/Map#find + local.tee $3 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 + local.get $3 + local.get $2 + i32.store offset=4 + else + local.get $0 + i32.load offset=16 + local.get $0 + i32.load offset=12 + i32.eq 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 50 - 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_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 - 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 + i32.load offset=20 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 + i32.load offset=12 + i32.const 3 + i32.mul + i32.const 4 + i32.div_s + i32.lt_s + if (result i32) + local.get $0 + i32.load offset=4 + else + local.get $0 + i32.load offset=4 + i32.const 1 + i32.shl + i32.const 1 + i32.or end - local.get $1 - f32.const 1 - f32.add - local.set $1 - br $for-loop|4 + call $~lib/map/Map#rehash end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.load offset=8 + local.tee $3 + i32.store + 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 + local.get $0 + local.get $0 + i32.load offset=20 + i32.const 1 + i32.add + i32.store offset=20 + local.get $3 + local.get $0 + i32.load + 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.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 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 $1 + local.tee $3 + i32.const 16 + i32.shl + i32.const 16 + i32.shr_s + call $~lib/util/hash/hash16 + local.set $5 local.get $0 - i32.store offset=4 + i32.load + local.get $5 local.get $0 - i32.load offset=20 - i32.const 50 - i32.ne - if + i32.load offset=4 + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $1 + block $__inlined_func$~lib/map/Map#find + loop $while-continue|0 + local.get $1 + if + local.get $1 + i32.load offset=4 + local.tee $4 + i32.const 1 + i32.and + if (result i32) + i32.const 0 + else + local.get $1 + i32.load16_u + local.get $3 + i32.const 65535 + i32.and + i32.eq + end + br_if $__inlined_func$~lib/map/Map#find + local.get $4 + i32.const -2 + i32.and + local.set $1 + br $while-continue|0 + end + end i32.const 0 - i32.const 1568 - i32.const 56 - i32.const 3 - call $~lib/builtins/abort - unreachable + local.set $1 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 - i32.store offset=4 - local.get $0 - i32.load offset=20 + local.get $1 if - i32.const 0 - i32.const 1568 - i32.const 60 + local.get $1 + local.get $2 + i32.store16 offset=2 + else + local.get $0 + i32.load offset=16 + local.get $0 + i32.load offset=12 + i32.eq + if + local.get $0 + local.get $0 + i32.load offset=20 + 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 $0 + i32.load offset=4 + else + 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.load offset=8 + local.tee $1 + i32.store + local.get $0 + local.get $0 + i32.load offset=16 + local.tee $4 + i32.const 1 + i32.add + i32.store offset=16 + local.get $1 + local.get $4 i32.const 3 - call $~lib/builtins/abort - unreachable + i32.shl + i32.add + local.tee $1 + local.get $3 + i32.store16 + local.get $1 + local.get $2 + i32.store16 offset=2 + local.get $0 + local.get $0 + i32.load offset=20 + i32.const 1 + i32.add + i32.store offset=20 + local.get $1 + local.get $0 + i32.load + 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=4 + local.get $0 + local.get $1 + i32.store end global.get $~lib/memory/__stack_pointer - i32.const 24 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/map/Map#has (param $0 i32) (param $1 f64) (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.sub @@ -15763,50 +13723,164 @@ global.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 - call $~lib/util/hash/hash64 - call $~lib/map/Map#find - i32.const 0 - i32.ne + i32.const 65535 + i32.and + call $~lib/util/hash/hash16 + local.tee $4 + call $~lib/map/Map#find + local.tee $3 + if + local.get $3 + local.get $2 + i32.store offset=4 + else + local.get $0 + i32.load offset=16 + local.get $0 + i32.load offset=12 + i32.eq + if + local.get $0 + local.get $0 + i32.load offset=20 + 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 $0 + i32.load offset=4 + else + 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.load offset=8 + local.tee $3 + i32.store + 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 + local.get $0 + local.get $0 + i32.load offset=20 + i32.const 1 + i32.add + i32.store offset=20 + local.get $3 + local.get $0 + i32.load + 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.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 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 call $~stack_check global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store + i32.const 0 + i32.store local.get $1 - i64.reinterpret_f64 - call $~lib/util/hash/hash64 - local.set $4 - global.get $~lib/memory/__stack_pointer + local.tee $3 + i32.const 65535 + i32.and + call $~lib/util/hash/hash16 + local.set $5 local.get $0 - i32.store + i32.load + local.get $5 local.get $0 + i32.load offset=4 + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $1 + block $__inlined_func$~lib/map/Map#find + loop $while-continue|0 + local.get $1 + if + local.get $1 + i32.load offset=4 + local.tee $4 + i32.const 1 + i32.and + if (result i32) + i32.const 0 + else + local.get $1 + i32.load16_u + local.get $3 + i32.const 65535 + i32.and + i32.eq + end + br_if $__inlined_func$~lib/map/Map#find + local.get $4 + i32.const -2 + i32.and + local.set $1 + br $while-continue|0 + end + end + i32.const 0 + local.set $1 + end local.get $1 - local.get $4 - call $~lib/map/Map#find - local.tee $3 if - local.get $3 + local.get $1 local.get $2 - i32.store offset=8 + i32.store16 offset=2 else local.get $0 i32.load offset=16 @@ -15814,9 +13888,6 @@ i32.load offset=12 i32.eq if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store local.get $0 local.get $0 i32.load offset=20 @@ -15838,346 +13909,82 @@ 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 i32.load offset=8 - local.tee $3 - i32.store offset=4 + local.tee $1 + i32.store 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 - i32.const 4 - i32.shl - i32.add - local.tee $3 local.get $1 - f64.store - local.get $3 - local.get $2 - i32.store offset=8 - local.get $0 - local.get $0 - i32.load offset=20 - i32.const 1 - i32.add - i32.store offset=20 - local.get $3 - local.get $0 - i32.load local.get $4 - local.get $0 - i32.load offset=4 - i32.and - i32.const 2 + i32.const 3 i32.shl i32.add - local.tee $0 - i32.load - i32.store offset=12 - local.get $0 + local.tee $1 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/map/Map#get (param $0 i32) (param $1 f64) (result 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 - local.get $0 - i32.store - local.get $0 - local.get $1 - local.get $1 - i64.reinterpret_f64 - call $~lib/util/hash/hash64 - 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 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 f64) - 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 $0 - i32.load offset=8 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.load offset=16 - local.tee $8 - local.set $2 - 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 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.const 30 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - local.get $0 - i32.const 0 - call $~lib/map/Map#set:buckets - local.get $0 - i32.const 0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=8 - local.get $0 - i32.const 0 - i32.store offset=12 - local.get $2 - i32.const 134217727 - i32.gt_u - if - i32.const 1456 - i32.const 1728 - i32.const 58 - i32.const 60 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.const 3 - i32.shl - local.tee $5 - i32.const 0 - call $~lib/rt/itcms/__new - local.tee $3 - i32.store offset=4 - local.get $3 - local.get $5 - call $~lib/memory/memory.fill - local.get $0 - local.get $3 - call $~lib/map/Map#set:buckets - local.get $0 - local.get $3 - i32.store offset=4 - local.get $0 - local.get $5 - i32.store offset=8 - local.get $0 - local.get $2 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - i32.store - loop $for-loop|0 - local.get $4 - local.get $8 - i32.lt_s - if - local.get $6 - local.get $4 - i32.const 4 - i32.shl - i32.add - local.tee $2 - i32.load offset=12 - i32.const 1 - i32.and - i32.eqz - if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $2 - f64.load - local.set $9 - 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 $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 1728 - i32.const 108 - i32.const 22 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.get $1 - i32.const 1 - i32.add - local.tee $2 - i32.const 3 - call $~lib/array/ensureSize - local.get $0 - local.get $2 - 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 $9 - f64.store - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $1 - i32.const 1 - i32.add - local.set $1 - end - local.get $4 - i32.const 1 - i32.add - local.set $4 - br $for-loop|0 - end + i32.store16 + local.get $1 + local.get $2 + i32.store16 offset=2 + local.get $0 + local.get $0 + i32.load offset=20 + i32.const 1 + i32.add + i32.store offset=20 + local.get $1 + local.get $0 + i32.load + 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=4 + local.get $0 + local.get $1 + i32.store end global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - local.get $1 - call $~lib/array/Array#set:length - 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/map/Map#set (param $0 i32) (param $1 f64) (param $2 f64) + (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 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 $1 - i64.reinterpret_f64 - call $~lib/util/hash/hash64 - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $0 + i32.const 0 i32.store local.get $0 - i32.load - local.get $5 - 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 - 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 - br_if $__inlined_func$~lib/map/Map#find - local.get $4 - i32.const -2 - i32.and - local.set $3 - br $while-continue|0 - end - end - i32.const 0 - local.set $3 - end - local.get $3 + local.get $1 + local.get $1 + call $~lib/util/hash/hash32 + local.tee $4 + call $~lib/map/Map#find + local.tee $3 if local.get $3 local.get $2 - f64.store offset=8 + i32.store offset=4 else local.get $0 i32.load offset=16 @@ -16185,9 +13992,6 @@ i32.load offset=12 i32.eq if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store local.get $0 local.get $0 i32.load offset=20 @@ -16209,31 +14013,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.get $0 i32.load offset=8 local.tee $3 - i32.store offset=4 + i32.store local.get $0 local.get $0 i32.load offset=16 - local.tee $4 + local.tee $5 i32.const 1 i32.add i32.store offset=16 local.get $3 - local.get $4 - i32.const 24 + local.get $5 + i32.const 12 i32.mul i32.add local.tee $3 local.get $1 - f64.store + i32.store local.get $3 local.get $2 - f64.store offset=8 + i32.store offset=4 local.get $0 local.get $0 i32.load offset=20 @@ -16243,7 +14047,7 @@ local.get $3 local.get $0 i32.load - local.get $5 + local.get $4 local.get $0 i32.load offset=4 i32.and @@ -16252,19 +14056,20 @@ i32.add local.tee $0 i32.load - i32.store offset=16 + i32.store offset=8 local.get $0 local.get $3 i32.store end global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/map/Map#delete (param $0 i32) (param $1 f64) - (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) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -16273,102 +14078,102 @@ global.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 - call $~lib/util/hash/hash64 - call $~lib/map/Map#find - local.tee $2 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 4 - 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 - local.get $0 - local.get $0 - i32.load offset=20 - i32.const 1 - i32.sub - i32.store offset=20 - local.get $0 - i32.load offset=4 - i32.const 1 - i32.shr_u + call $~lib/util/hash/hash32 + local.tee $4 + call $~lib/map/Map#find local.tee $3 - 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) + if + local.get $3 + local.get $2 + i32.store offset=4 + else local.get $0 - i32.load offset=20 + i32.load offset=16 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.eq + if + local.get $0 + local.get $0 + i32.load offset=20 + 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 $0 + i32.load offset=4 + else + 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.load offset=8 + local.tee $3 i32.store 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 - call $~lib/map/Map#rehash + 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 + local.get $0 + local.get $0 + i32.load offset=20 + i32.const 1 + i32.add + i32.store offset=20 + local.get $3 + local.get $0 + i32.load + 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.add - global.set $~lib/memory/__stack_pointer - ) - (func $std/map/testNumeric - (local $0 i32) - (local $1 f64) - (local $2 i32) + 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) - (local $6 i32) - (local $7 i32) - global.get $~lib/memory/__stack_pointer - 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 - i64.const 0 - i64.store offset=8 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=16 - global.get $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -16377,247 +14182,168 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.const 29 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - local.get $0 - i32.const 16 - call $~lib/arraybuffer/ArrayBuffer#constructor - call $~lib/map/Map#set:buckets - local.get $0 - i32.const 3 - i32.store offset=4 - local.get $0 - i32.const 64 - call $~lib/arraybuffer/ArrayBuffer#constructor - call $~lib/map/Map#set:entries - local.get $0 - i32.const 4 - i32.store offset=12 - local.get $0 - i32.const 0 - i32.store offset=16 - local.get $0 - i32.const 0 - i32.store offset=20 - global.get $~lib/memory/__stack_pointer - i32.const 4 - 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_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_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.store offset=4 local.get $0 - i32.load offset=20 - i32.const 100 - i32.ne + local.get $1 + local.get $1 + call $~lib/util/hash/hash64 + local.tee $4 + call $~lib/map/Map#find + local.tee $3 if - i32.const 0 - i32.const 1568 - i32.const 11 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - f64.const 0 - local.set $1 - loop $for-loop|1 - local.get $1 - f64.const 100 - f64.lt + local.get $3 + local.get $2 + i32.store offset=8 + else + local.get $0 + i32.load offset=16 + local.get $0 + i32.load offset=12 + i32.eq 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 - local.get $1 - call $~lib/map/Map#get - local.get $1 - i32.trunc_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 - local.get $1 - local.get $1 - i32.trunc_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 + i32.load offset=20 local.get $0 - local.get $1 - call $~lib/map/Map#get - local.get $1 - i32.trunc_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 + i32.load offset=12 + i32.const 3 + i32.mul + i32.const 4 + i32.div_s + i32.lt_s + if (result i32) + local.get $0 + i32.load offset=4 + else + local.get $0 + i32.load offset=4 + i32.const 1 + i32.shl + i32.const 1 + i32.or end - local.get $1 - f64.const 1 - f64.add - local.set $1 - br $for-loop|1 + call $~lib/map/Map#rehash end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.load offset=8 + local.tee $3 + i32.store + 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 + local.get $0 + local.get $0 + i32.load offset=20 + i32.const 1 + i32.add + i32.store offset=20 + local.get $3 + local.get $0 + i32.load + 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 - local.get $0 - i32.store offset=4 - local.get $0 - i32.load offset=20 - 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 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 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 $0 - i32.store offset=4 + i32.load offset=8 + local.set $3 global.get $~lib/memory/__stack_pointer local.get $0 - call $~lib/map/Map#keys + i32.load offset=16 local.tee $4 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer + call $~lib/array/Array#constructor + local.tee $0 + i32.store + loop $for-loop|0 + local.get $2 + local.get $4 + i32.lt_s + if + local.get $3 + local.get $2 + i32.const 4 + i32.shl + i32.add + local.tee $5 + i32.load offset=12 + i32.const 1 + i32.and + i32.eqz + if + local.get $0 + local.get $1 + local.get $5 + i32.load offset=8 + 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 local.get $0 - i32.store offset=4 + local.get $1 + call $~lib/array/Array#set:length global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer local.get $0 - call $~lib/map/Map#values - local.tee $7 - i32.store offset=12 - global.get $~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) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -16626,364 +14352,592 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.const 31 - call $~lib/rt/itcms/__new - local.tee $2 - i32.store - local.get $2 - i32.const 16 - call $~lib/arraybuffer/ArrayBuffer#constructor - call $~lib/map/Map#set:buckets - local.get $2 - i32.const 3 - i32.store offset=4 - local.get $2 - i32.const 96 - call $~lib/arraybuffer/ArrayBuffer#constructor - call $~lib/map/Map#set:entries - local.get $2 - i32.const 4 - i32.store offset=12 - local.get $2 - i32.const 0 - i32.store offset=16 - local.get $2 - i32.const 0 - i32.store offset=20 + local.get $1 + call $~lib/util/hash/hash64 + local.set $5 + local.get $0 + i32.load + local.get $5 + 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 + 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 + br_if $__inlined_func$~lib/map/Map#find + local.get $4 + i32.const -2 + i32.and + local.set $3 + br $while-continue|0 + end + end + i32.const 0 + local.set $3 + end + local.get $3 + if + local.get $3 + local.get $2 + i64.store offset=8 + else + local.get $0 + i32.load offset=16 + local.get $0 + i32.load offset=12 + i32.eq + if + local.get $0 + local.get $0 + i32.load offset=20 + 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 $0 + i32.load offset=4 + else + 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.load offset=8 + local.tee $3 + i32.store + 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 + local.get $0 + local.get $0 + i32.load offset=20 + i32.const 1 + i32.add + i32.store offset=20 + local.get $3 + local.get $0 + i32.load + 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=16 + local.get $0 + local.get $3 + 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 offset=16 + ) + (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 - call $~lib/map/Map#constructor + 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 $0 + local.get $1 + local.get $1 + call $~lib/util/hash/hash64 + local.tee $4 + call $~lib/map/Map#find 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 $5 - local.get $4 + if + local.get $3 + local.get $2 + i32.store offset=8 + else + local.get $0 + i32.load offset=16 + local.get $0 i32.load offset=12 - i32.lt_s + i32.eq if - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $5 - local.get $4 - i32.load offset=12 - i32.ge_u - if - i32.const 1248 - i32.const 1728 - i32.const 92 - i32.const 42 - call $~lib/builtins/abort - unreachable - end - local.get $4 - i32.load offset=4 - local.get $5 - i32.const 3 - i32.shl - i32.add - f64.load - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - local.get $5 - 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 - 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 + i32.load offset=20 local.get $0 - local.get $6 - 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 + i32.load offset=12 + i32.const 3 + i32.mul + i32.const 4 + i32.div_s + i32.lt_s + if (result i32) + local.get $0 + i32.load offset=4 + else + local.get $0 + i32.load offset=4 + i32.const 1 + i32.shl + i32.const 1 + i32.or end - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - local.get $1 - local.get $1 - 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 - call $~lib/map/Map#set - local.get $5 - i32.const 1 - i32.add - local.set $5 - br $for-loop|2 + call $~lib/map/Map#rehash end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.load offset=8 + local.tee $3 + i32.store + 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 + local.get $0 + local.get $0 + i32.load offset=20 + i32.const 1 + i32.add + i32.store offset=20 + local.get $3 + local.get $0 + i32.load + 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 - local.get $2 - i32.store offset=4 - local.get $2 - i32.load offset=20 - i32.const 100 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 36 - i32.const 3 - call $~lib/builtins/abort - unreachable + 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) + 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 $1 + call $~lib/util/hash/hash64 + local.set $5 + local.get $0 + i32.load + local.get $5 + 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 + 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 + br_if $__inlined_func$~lib/map/Map#find + local.get $4 + i32.const -2 + i32.and + local.set $3 + br $while-continue|0 + end + end + i32.const 0 + local.set $3 end - global.get $~lib/memory/__stack_pointer local.get $3 - i32.store offset=4 - local.get $3 - i32.load offset=20 - 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 + local.get $3 + local.get $2 + i64.store offset=8 + else + local.get $0 + i32.load offset=16 + local.get $0 + i32.load offset=12 + i32.eq 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 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_f64_s - 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=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 + i32.load offset=20 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 + i32.load offset=12 + i32.const 3 + i32.mul + i32.const 4 + i32.div_s + i32.lt_s + if (result i32) + local.get $0 + i32.load offset=4 + else + local.get $0 + i32.load offset=4 + i32.const 1 + i32.shl + i32.const 1 + i32.or end - local.get $1 - f64.const 1 - f64.add - local.set $1 - br $for-loop|3 + call $~lib/map/Map#rehash end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.load offset=8 + local.tee $3 + i32.store + 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 + local.get $0 + local.get $0 + i32.load offset=20 + i32.const 1 + i32.add + i32.store offset=20 + local.get $3 + local.get $0 + i32.load + 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=16 + local.get $0 + local.get $3 + i32.store end 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 f32) (param $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 + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store local.get $0 - i32.store offset=4 - local.get $0 - i32.load offset=20 - i32.const 50 - i32.ne + local.get $1 + local.get $1 + i32.reinterpret_f32 + call $~lib/util/hash/hash32 + local.tee $4 + call $~lib/map/Map#find + local.tee $3 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 + local.get $3 + local.get $2 + i32.store offset=4 + else + local.get $0 + i32.load offset=16 + local.get $0 + i32.load offset=12 + i32.eq 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 50 - 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_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 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 + i32.load offset=20 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 + i32.load offset=12 + i32.const 3 + i32.mul + i32.const 4 + i32.div_s + i32.lt_s + if (result i32) + local.get $0 + i32.load offset=4 + else + local.get $0 + i32.load offset=4 + i32.const 1 + i32.shl + i32.const 1 + i32.or end - local.get $1 - f64.const 1 - f64.add - local.set $1 - br $for-loop|4 + call $~lib/map/Map#rehash end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.load offset=8 + local.tee $3 + i32.store + 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 $0 + local.get $0 + i32.load offset=20 + i32.const 1 + i32.add + i32.store offset=20 + local.get $3 + local.get $0 + i32.load + 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 - local.get $0 - i32.store offset=4 - local.get $0 - i32.load offset=20 - i32.const 50 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 56 - i32.const 3 - call $~lib/builtins/abort - unreachable - end + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/map/Map#set (param $0 i32) (param $1 f32) (param $2 f32) + (local $3 i32) + (local $4 i32) + (local $5 i32) global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - call $~lib/map/Map#clear + 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 $0 - i32.store offset=4 - local.get $0 - i32.load offset=20 + local.get $1 + local.get $1 + i32.reinterpret_f32 + call $~lib/util/hash/hash32 + local.tee $4 + call $~lib/map/Map#find + local.tee $3 if - i32.const 0 - i32.const 1568 - i32.const 60 - i32.const 3 - call $~lib/builtins/abort - unreachable + local.get $3 + local.get $2 + f32.store offset=4 + else + local.get $0 + i32.load offset=16 + local.get $0 + i32.load offset=12 + i32.eq + if + local.get $0 + local.get $0 + i32.load offset=20 + 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 $0 + i32.load offset=4 + else + 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.load offset=8 + local.tee $3 + i32.store + 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 + f32.store offset=4 + local.get $0 + local.get $0 + i32.load offset=20 + i32.const 1 + i32.add + i32.store offset=20 + local.get $3 + local.get $0 + i32.load + 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 24 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/arraybuffer/ArrayBuffer#constructor (param $0 i32) (result i32) - (local $1 i32) + (func $~lib/map/Map#set (param $0 i32) (param $1 f64) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -16993,142 +14947,237 @@ i32.const 0 i32.store local.get $0 - i32.const 1073741820 - i32.gt_u + local.get $1 + local.get $1 + i64.reinterpret_f64 + call $~lib/util/hash/hash64 + local.tee $4 + call $~lib/map/Map#find + local.tee $3 if - i32.const 1456 - i32.const 1504 - i32.const 49 - i32.const 43 - call $~lib/builtins/abort - unreachable + local.get $3 + local.get $2 + i32.store offset=8 + else + local.get $0 + i32.load offset=16 + local.get $0 + i32.load offset=12 + i32.eq + if + local.get $0 + local.get $0 + i32.load offset=20 + 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 $0 + i32.load offset=4 + else + 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.load offset=8 + local.tee $3 + i32.store + 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 + f64.store + local.get $3 + local.get $2 + i32.store offset=8 + local.get $0 + local.get $0 + i32.load offset=20 + i32.const 1 + i32.add + i32.store offset=20 + local.get $3 + local.get $0 + i32.load + 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 - local.get $0 - i32.const 0 - call $~lib/rt/itcms/__new - local.tee $1 - i32.store - local.get $1 - local.get $0 - call $~lib/memory/memory.fill - global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 ) - (func $~lib/array/Array#constructor (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) + (func $~lib/map/Map#set (param $0 i32) (param $1 f64) (param $2 f64) (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 call $~stack_check 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 - local.get $1 - i32.const 0 - call $~lib/map/Map#set:buckets - local.get $1 - i32.const 0 - i32.store offset=4 - local.get $1 i32.const 0 - i32.store offset=8 + i32.store local.get $1 - i32.const 0 - i32.store offset=12 + i64.reinterpret_f64 + call $~lib/util/hash/hash64 + local.set $5 local.get $0 - i32.const 268435455 - i32.gt_u - if - i32.const 1456 - i32.const 1728 - i32.const 58 - i32.const 60 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer + i32.load + local.get $5 local.get $0 + i32.load offset=4 + i32.and i32.const 2 i32.shl - local.tee $3 - i32.const 0 - call $~lib/rt/itcms/__new - local.tee $2 - i32.store offset=4 - local.get $2 - local.get $3 - call $~lib/memory/memory.fill - local.get $1 - local.get $2 - call $~lib/map/Map#set:buckets - 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 8 i32.add - global.set $~lib/memory/__stack_pointer - local.get $1 - ) - (func $~lib/map/Map#constructor (result i32) - (local $0 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.const 7 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - local.get $0 - i32.const 16 - call $~lib/arraybuffer/ArrayBuffer#constructor - call $~lib/map/Map#set:buckets - local.get $0 - i32.const 3 - i32.store offset=4 - local.get $0 - i32.const 48 - call $~lib/arraybuffer/ArrayBuffer#constructor - call $~lib/map/Map#set:entries - local.get $0 - i32.const 4 - i32.store offset=12 - local.get $0 - i32.const 0 - i32.store offset=16 - local.get $0 - i32.const 0 - i32.store offset=20 + i32.load + local.set $3 + block $__inlined_func$~lib/map/Map#find + 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 + br_if $__inlined_func$~lib/map/Map#find + local.get $4 + i32.const -2 + i32.and + local.set $3 + br $while-continue|0 + end + end + i32.const 0 + local.set $3 + end + local.get $3 + if + local.get $3 + local.get $2 + f64.store offset=8 + else + local.get $0 + i32.load offset=16 + local.get $0 + i32.load offset=12 + i32.eq + if + local.get $0 + local.get $0 + i32.load offset=20 + 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 $0 + i32.load offset=4 + else + 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.load offset=8 + local.tee $3 + i32.store + 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 + local.get $0 + local.get $0 + i32.load offset=20 + i32.const 1 + i32.add + i32.store offset=20 + local.get $3 + local.get $0 + i32.load + 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=16 + local.get $0 + local.get $3 + 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/std/map.untouched.wat b/tests/compiler/std/map.untouched.wat index a8ae8ab7df..995cbaab7b 100644 --- a/tests/compiler/std/map.untouched.wat +++ b/tests/compiler/std/map.untouched.wat @@ -2543,6 +2543,35 @@ end i32.const 0 ) + (func $~lib/map/Map#has (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + local.get $0 + local.get $1 + block $~lib/util/hash/HASH|inlined.0 (result i32) + local.get $1 + local.set $2 + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 1 + i32.const 1 + i32.eq + drop + local.get $2 + i32.const 24 + i32.shl + i32.const 24 + i32.shr_s + call $~lib/util/hash/hash8 + br $~lib/util/hash/HASH|inlined.0 + end + call $~lib/map/Map#find + i32.const 0 + i32.ne + ) (func $~lib/map/MapEntry#set:value (param $0 i32) (param $1 i32) local.get $0 local.get $1 @@ -2711,6 +2740,47 @@ i32.add global.set $~lib/memory/__stack_pointer ) + (func $~lib/map/Map#get (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + local.get $0 + local.get $1 + block $~lib/util/hash/HASH|inlined.3 (result i32) + local.get $1 + local.set $2 + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 1 + i32.const 1 + i32.eq + drop + local.get $2 + i32.const 24 + i32.shl + i32.const 24 + i32.shr_s + call $~lib/util/hash/hash8 + br $~lib/util/hash/HASH|inlined.3 + end + call $~lib/map/Map#find + local.set $3 + local.get $3 + i32.eqz + if + i32.const 592 + i32.const 656 + i32.const 105 + i32.const 17 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.load offset=4 + ) (func $~lib/map/Map#get:size (param $0 i32) (result i32) local.get $0 i32.load offset=20 @@ -4115,6 +4185,40 @@ i32.const 0 drop ) + (func $~lib/array/Array#__set (param $0 i32) (param $1 i32) (param $2 i32) + 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 224 + i32.const 704 + i32.const 108 + i32.const 22 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $1 + i32.const 1 + i32.add + i32.const 0 + call $~lib/array/ensureSize + local.get $0 + local.get $1 + i32.const 1 + i32.add + call $~lib/array/Array#set:length_ + end + local.get $0 + local.get $1 + local.get $2 + call $~lib/array/Array#__uset + ) (func $~lib/array/Array#set:length (param $0 i32) (param $1 i32) local.get $0 local.get $1 @@ -4160,6 +4264,40 @@ i32.const 0 drop ) + (func $~lib/array/Array#__set (param $0 i32) (param $1 i32) (param $2 i32) + 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 224 + i32.const 704 + i32.const 108 + i32.const 22 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $1 + i32.const 1 + i32.add + i32.const 2 + call $~lib/array/ensureSize + local.get $0 + local.get $1 + i32.const 1 + i32.add + call $~lib/array/Array#set:length_ + end + local.get $0 + local.get $1 + local.get $2 + call $~lib/array/Array#__uset + ) (func $~lib/array/Array#set:length (param $0 i32) (param $1 i32) local.get $0 local.get $1 @@ -4799,6 +4937,92 @@ local.get $0 i32.load offset=20 ) + (func $~lib/map/Map#delete (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $0 + local.get $1 + block $~lib/util/hash/HASH|inlined.6 (result i32) + local.get $1 + local.set $2 + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 1 + i32.const 1 + i32.eq + drop + local.get $2 + i32.const 24 + i32.shl + i32.const 24 + i32.shr_s + call $~lib/util/hash/hash8 + br $~lib/util/hash/HASH|inlined.6 + end + call $~lib/map/Map#find + local.set $3 + local.get $3 + i32.eqz + if + i32.const 0 + return + end + local.get $3 + local.get $3 + i32.load offset=8 + i32.const 1 + i32.or + call $~lib/map/MapEntry#set:taggedNext + local.get $0 + local.get $0 + i32.load offset=20 + i32.const 1 + i32.sub + call $~lib/map/Map#set:entriesCount + local.get $0 + i32.load offset=4 + i32.const 1 + i32.shr_u + local.set $4 + local.get $4 + i32.const 1 + i32.add + i32.const 4 + local.tee $2 + local.get $0 + i32.load offset=20 + local.tee $5 + local.get $2 + local.get $5 + i32.gt_u + select + i32.ge_u + if (result i32) + local.get $0 + i32.load offset=20 + 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 $0 + local.get $4 + call $~lib/map/Map#rehash + end + i32.const 1 + ) (func $~lib/map/Map#clear (param $0 i32) local.get $0 i32.const 0 @@ -4829,636 +5053,534 @@ i32.const 0 call $~lib/map/Map#set:entriesCount ) - (func $~lib/map/Map#set:buckets (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - i32.store - local.get $0 - local.get $1 + (func $std/map/testNumeric + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 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 + 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 0 - call $~lib/rt/itcms/__link - ) - (func $~lib/map/Map#set:bucketsMask (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - i32.store offset=4 - ) - (func $~lib/map/Map#set:entries (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - i32.store offset=8 - local.get $0 - local.get $1 - i32.const 0 - call $~lib/rt/itcms/__link - ) - (func $~lib/map/Map#set:entriesCapacity (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - i32.store offset=12 - ) - (func $~lib/map/Map#set:entriesOffset (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 i32.store offset=16 - ) - (func $~lib/map/Map#set:entriesCount (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - i32.store offset=20 - ) - (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) - local.get $0 - i32.load - local.get $2 - local.get $0 - i32.load offset=4 - i32.and - i32.const 4 - i32.mul - i32.add - i32.load - local.set $3 - loop $while-continue|0 + global.get $~lib/memory/__stack_pointer + i32.const 0 + call $~lib/map/Map#constructor + local.tee $0 + i32.store + i32.const 0 + local.set $1 + loop $for-loop|1 + local.get $1 + i32.const 24 + i32.shl + i32.const 24 + i32.shr_s + i32.const 100 + i32.lt_s + local.set $3 local.get $3 - local.set $4 - local.get $4 if - local.get $3 - i32.load offset=8 - local.set $5 - local.get $5 - i32.const 1 - i32.and + local.get $0 + local.get $1 + call $~lib/map/Map#has i32.eqz - if (result i32) - local.get $3 - i32.load8_u - local.get $1 - i32.const 255 - i32.and - i32.eq - else + i32.eqz + if i32.const 0 + i32.const 544 + i32.const 6 + i32.const 5 + call $~lib/builtins/abort + unreachable end + local.get $0 + local.get $1 + i32.const 10 + local.get $1 + i32.const 24 + i32.shl + i32.const 24 + i32.shr_s + i32.add + call $~lib/map/Map#set + drop + local.get $0 + local.get $1 + call $~lib/map/Map#has + i32.eqz if - local.get $3 - return + i32.const 0 + i32.const 544 + i32.const 8 + i32.const 5 + call $~lib/builtins/abort + unreachable end - local.get $5 + local.get $0 + local.get $1 + call $~lib/map/Map#get + i32.const 10 + local.get $1 + i32.const 24 + i32.shl + i32.const 24 + i32.shr_s + i32.add + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 9 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $1 i32.const 1 - i32.const -1 - i32.xor - i32.and - local.set $3 - br $while-continue|0 + i32.add + local.set $1 + br $for-loop|1 end end - i32.const 0 - ) - (func $~lib/map/MapEntry#set:value (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - i32.store offset=4 - ) - (func $~lib/map/MapEntry#set:key (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - i32.store8 - ) - (func $~lib/map/MapEntry#set:taggedNext (param $0 i32) (param $1 i32) local.get $0 - local.get $1 - i32.store offset=8 - ) - (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) - (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 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 $1 - i32.const 1 - i32.add - local.set $2 - global.get $~lib/memory/__stack_pointer - i32.const 0 - local.get $2 - i32.const 4 - i32.mul - call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $3 - i32.store - local.get $2 - i32.const 8 - i32.mul - i32.const 3 - i32.div_s - local.set $4 - global.get $~lib/memory/__stack_pointer + call $~lib/map/Map#get:size + i32.const 100 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 11 + i32.const 3 + call $~lib/builtins/abort + unreachable + end i32.const 0 - local.get $4 - i32.const 12 - i32.mul - call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $5 - i32.store offset=4 - local.get $0 - i32.load offset=8 - local.set $6 - local.get $6 - local.get $0 - i32.load offset=16 - i32.const 12 - i32.mul - i32.add - local.set $7 - local.get $5 - local.set $8 - loop $while-continue|0 - local.get $6 - local.get $7 - i32.ne - local.set $9 - local.get $9 + local.set $1 + loop $for-loop|3 + local.get $1 + i32.const 24 + i32.shl + i32.const 24 + i32.shr_s + i32.const 100 + i32.lt_s + local.set $4 + local.get $4 if - local.get $6 - local.set $10 - local.get $10 - i32.load offset=8 - i32.const 1 - i32.and + local.get $0 + local.get $1 + call $~lib/map/Map#has i32.eqz if - local.get $8 - local.set $11 - local.get $10 - i32.load8_u - local.set $12 - local.get $11 - local.get $12 - call $~lib/map/MapEntry#set:key - local.get $11 - local.get $10 - i32.load offset=4 - call $~lib/map/MapEntry#set:value - block $~lib/util/hash/HASH|inlined.2 (result i32) - local.get $12 - local.set $13 - i32.const 0 - drop - i32.const 0 - drop - i32.const 0 - drop - i32.const 1 - i32.const 1 - i32.eq - drop - local.get $13 - call $~lib/util/hash/hash8 - br $~lib/util/hash/HASH|inlined.2 - end - local.get $1 - i32.and - local.set $13 - local.get $3 - local.get $13 - i32.const 4 - i32.mul - i32.add - local.set $14 - local.get $11 - local.get $14 - i32.load - call $~lib/map/MapEntry#set:taggedNext - local.get $14 - local.get $8 - i32.store - local.get $8 - i32.const 12 - i32.add - local.set $8 + i32.const 0 + i32.const 544 + i32.const 15 + i32.const 5 + call $~lib/builtins/abort + unreachable end - local.get $6 - i32.const 12 + local.get $0 + local.get $1 + call $~lib/map/Map#get + i32.const 10 + local.get $1 + i32.const 24 + i32.shl + i32.const 24 + i32.shr_s i32.add - local.set $6 - br $while-continue|0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 16 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $1 + i32.const 20 + local.get $1 + i32.const 24 + i32.shl + i32.const 24 + i32.shr_s + i32.add + call $~lib/map/Map#set + drop + local.get $0 + local.get $1 + call $~lib/map/Map#has + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 18 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $1 + call $~lib/map/Map#get + i32.const 20 + local.get $1 + i32.const 24 + i32.shl + i32.const 24 + i32.shr_s + i32.add + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 19 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|3 end end local.get $0 - local.get $3 - call $~lib/map/Map#set:buckets - local.get $0 - local.get $1 - call $~lib/map/Map#set:bucketsMask - local.get $0 - local.get $5 - call $~lib/map/Map#set:entries - local.get $0 - local.get $4 - call $~lib/map/Map#set:entriesCapacity - local.get $0 - local.get $0 - i32.load offset=20 - call $~lib/map/Map#set:entriesOffset + call $~lib/map/Map#get:size + i32.const 100 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 21 + 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 - ) - (func $~lib/map/Map#get:size (param $0 i32) (result i32) - local.get $0 - i32.load offset=20 - ) - (func $~lib/array/Array#set:buffer (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - i32.store - local.get $0 - local.get $1 - i32.const 0 - call $~lib/rt/itcms/__link - ) - (func $~lib/array/Array#set:dataStart (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - i32.store offset=4 - ) - (func $~lib/array/Array#set:byteLength (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - i32.store offset=8 - ) - (func $~lib/array/Array#set:length_ (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - i32.store offset=12 - ) - (func $~lib/array/Array#__uset (param $0 i32) (param $1 i32) (param $2 i32) - local.get $0 - i32.load offset=4 - local.get $1 - i32.const 0 - i32.shl - i32.add - local.get $2 - i32.store8 - i32.const 0 - drop - ) - (func $~lib/array/Array#set:length (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - i32.const 0 - call $~lib/array/ensureSize - local.get $0 - local.get $1 - call $~lib/array/Array#set:length_ - ) - (func $~lib/map/Map#set:buckets (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - i32.store - local.get $0 - local.get $1 - i32.const 0 - call $~lib/rt/itcms/__link - ) - (func $~lib/map/Map#set:bucketsMask (param $0 i32) (param $1 i32) local.get $0 - local.get $1 + call $~lib/map/Map#keys + local.tee $1 i32.store offset=4 - ) - (func $~lib/map/Map#set:entries (param $0 i32) (param $1 i32) + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $1 + call $~lib/map/Map#values + local.tee $4 i32.store offset=8 - local.get $0 - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 0 - call $~lib/rt/itcms/__link - ) - (func $~lib/map/Map#set:entriesCapacity (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + call $~lib/map/Map#constructor + local.tee $5 i32.store offset=12 - ) - (func $~lib/map/Map#set:entriesOffset (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + global.get $~lib/memory/__stack_pointer + i32.const 0 + call $~lib/map/Map#constructor + local.tee $6 i32.store offset=16 - ) - (func $~lib/map/Map#set:entriesCount (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - i32.store offset=20 - ) - (func $~lib/array/Array#get:length (param $0 i32) (result i32) - local.get $0 - i32.load offset=12 - ) - (func $~lib/array/Array#__get (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - local.get $1 - local.get $0 - i32.load offset=12 - i32.ge_u - if - i32.const 224 - i32.const 704 - i32.const 92 - i32.const 42 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load offset=4 - local.get $1 - i32.const 0 - i32.shl - i32.add - i32.load8_u - local.set $2 i32.const 0 - drop - local.get $2 - ) - (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) - local.get $0 - i32.load - local.get $2 - local.get $0 - i32.load offset=4 - i32.and - i32.const 4 - i32.mul - i32.add - i32.load - local.set $3 - loop $while-continue|0 - local.get $3 - local.set $4 - local.get $4 + local.set $7 + loop $for-loop|4 + local.get $7 + local.get $1 + call $~lib/array/Array#get:length + i32.lt_s + local.set $8 + local.get $8 if - local.get $3 - i32.load offset=4 - local.set $5 - local.get $5 - i32.const 1 - i32.and + local.get $1 + local.get $7 + call $~lib/array/Array#__get + local.set $9 + local.get $4 + local.get $7 + call $~lib/array/Array#__get + local.set $10 + local.get $0 + local.get $9 + call $~lib/map/Map#has i32.eqz - if (result i32) - local.get $3 - i32.load8_u - local.get $1 - i32.const 255 - i32.and - i32.eq - else + if i32.const 0 + i32.const 544 + i32.const 31 + i32.const 5 + call $~lib/builtins/abort + unreachable end + local.get $0 + local.get $10 + i32.const 20 + i32.sub + call $~lib/map/Map#has + i32.eqz if - local.get $3 - return + i32.const 0 + i32.const 544 + i32.const 32 + i32.const 5 + call $~lib/builtins/abort + unreachable end local.get $5 + local.get $9 + local.get $9 + call $~lib/map/Map#set + drop + local.get $6 + local.get $10 + i32.const 20 + i32.sub + local.get $10 + i32.const 20 + i32.sub + call $~lib/map/Map#set + drop + local.get $7 i32.const 1 - i32.const -1 - i32.xor - i32.and - local.set $3 - br $while-continue|0 + i32.add + local.set $7 + br $for-loop|4 end end - i32.const 0 - ) - (func $~lib/map/MapEntry#set:value (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - i32.store8 offset=1 - ) - (func $~lib/map/MapEntry#set:key (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - i32.store8 - ) - (func $~lib/map/MapEntry#set:taggedNext (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - i32.store offset=4 - ) - (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) - (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 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 $1 - i32.const 1 - i32.add - local.set $2 - global.get $~lib/memory/__stack_pointer - i32.const 0 - local.get $2 - i32.const 4 - i32.mul - call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $3 - i32.store - local.get $2 - i32.const 8 - i32.mul - i32.const 3 - i32.div_s - local.set $4 - global.get $~lib/memory/__stack_pointer - i32.const 0 - local.get $4 - i32.const 8 - i32.mul - call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $5 - i32.store offset=4 - local.get $0 - i32.load offset=8 - local.set $6 + local.get $5 + call $~lib/map/Map#get:size + i32.const 100 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 36 + i32.const 3 + call $~lib/builtins/abort + unreachable + end local.get $6 - local.get $0 - i32.load offset=16 - i32.const 8 - i32.mul - i32.add + call $~lib/map/Map#get:size + i32.const 100 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 37 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 local.set $7 - local.get $5 - local.set $8 - loop $while-continue|0 - local.get $6 + loop $for-loop|6 local.get $7 - i32.ne - local.set $9 - local.get $9 + i32.const 24 + i32.shl + i32.const 24 + i32.shr_s + i32.const 50 + i32.lt_s + local.set $10 + local.get $10 if - local.get $6 - local.set $10 - local.get $10 - i32.load offset=4 - i32.const 1 - i32.and + local.get $0 + local.get $7 + call $~lib/map/Map#has i32.eqz if - local.get $8 - local.set $11 - local.get $10 - i32.load8_u - local.set $12 - local.get $11 - local.get $12 - call $~lib/map/MapEntry#set:key - local.get $11 - local.get $10 - i32.load8_u offset=1 - call $~lib/map/MapEntry#set:value - block $~lib/util/hash/HASH|inlined.5 (result i32) - local.get $12 - local.set $13 - i32.const 0 - drop - i32.const 0 - drop - i32.const 0 - drop - i32.const 1 - i32.const 1 - i32.eq - drop - local.get $13 - call $~lib/util/hash/hash8 - br $~lib/util/hash/HASH|inlined.5 - end - local.get $1 - i32.and - local.set $13 - local.get $3 - local.get $13 - i32.const 4 - i32.mul - i32.add - local.set $14 - local.get $11 - local.get $14 - i32.load - call $~lib/map/MapEntry#set:taggedNext - local.get $14 - local.get $8 - i32.store - local.get $8 - i32.const 8 - i32.add - local.set $8 + i32.const 0 + i32.const 544 + i32.const 41 + i32.const 5 + call $~lib/builtins/abort + unreachable end - local.get $6 - i32.const 8 + local.get $0 + local.get $7 + call $~lib/map/Map#get + i32.const 20 + local.get $7 + i32.const 24 + i32.shl + i32.const 24 + i32.shr_s i32.add - local.set $6 - br $while-continue|0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 42 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $7 + call $~lib/map/Map#delete + drop + local.get $0 + local.get $7 + call $~lib/map/Map#has + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 44 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $7 + i32.const 1 + i32.add + local.set $7 + br $for-loop|6 end end local.get $0 - local.get $3 - call $~lib/map/Map#set:buckets - local.get $0 - local.get $1 - call $~lib/map/Map#set:bucketsMask - local.get $0 - local.get $5 - call $~lib/map/Map#set:entries + call $~lib/map/Map#get:size + i32.const 50 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 46 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $7 + loop $for-loop|8 + local.get $7 + i32.const 24 + i32.shl + i32.const 24 + i32.shr_s + i32.const 50 + i32.lt_s + local.set $9 + local.get $9 + if + local.get $0 + local.get $7 + call $~lib/map/Map#has + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 50 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $7 + i32.const 10 + local.get $7 + i32.const 24 + i32.shl + i32.const 24 + i32.shr_s + i32.add + call $~lib/map/Map#set + drop + local.get $0 + local.get $7 + call $~lib/map/Map#has + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 52 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $7 + call $~lib/map/Map#delete + drop + local.get $0 + local.get $7 + call $~lib/map/Map#has + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 54 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $7 + i32.const 1 + i32.add + local.set $7 + br $for-loop|8 + end + end local.get $0 - local.get $4 - call $~lib/map/Map#set:entriesCapacity + call $~lib/map/Map#get:size + i32.const 50 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 56 + i32.const 3 + call $~lib/builtins/abort + unreachable + end local.get $0 + call $~lib/map/Map#clear local.get $0 - i32.load offset=20 - call $~lib/map/Map#set:entriesOffset + call $~lib/map/Map#get:size + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 60 + 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 $~lib/map/Map#get:size (param $0 i32) (result i32) - local.get $0 - i32.load offset=20 - ) - (func $~lib/map/Map#clear (param $0 i32) - local.get $0 - i32.const 0 - i32.const 4 - i32.const 4 - i32.mul - call $~lib/arraybuffer/ArrayBuffer#constructor - call $~lib/map/Map#set:buckets - local.get $0 - i32.const 4 - i32.const 1 - i32.sub - call $~lib/map/Map#set:bucketsMask - local.get $0 - i32.const 0 - i32.const 4 - i32.const 12 - i32.mul - call $~lib/arraybuffer/ArrayBuffer#constructor - call $~lib/map/Map#set:entries - local.get $0 - i32.const 4 - call $~lib/map/Map#set:entriesCapacity - local.get $0 - i32.const 0 - call $~lib/map/Map#set:entriesOffset - local.get $0 - i32.const 0 - call $~lib/map/Map#set:entriesCount - ) - (func $~lib/map/Map#set:buckets (param $0 i32) (param $1 i32) + (func $~lib/map/Map#set:buckets (param $0 i32) (param $1 i32) local.get $0 local.get $1 i32.store @@ -5467,12 +5589,12 @@ i32.const 0 call $~lib/rt/itcms/__link ) - (func $~lib/map/Map#set:bucketsMask (param $0 i32) (param $1 i32) + (func $~lib/map/Map#set:bucketsMask (param $0 i32) (param $1 i32) local.get $0 local.get $1 i32.store offset=4 ) - (func $~lib/map/Map#set:entries (param $0 i32) (param $1 i32) + (func $~lib/map/Map#set:entries (param $0 i32) (param $1 i32) local.get $0 local.get $1 i32.store offset=8 @@ -5481,44 +5603,22 @@ i32.const 0 call $~lib/rt/itcms/__link ) - (func $~lib/map/Map#set:entriesCapacity (param $0 i32) (param $1 i32) + (func $~lib/map/Map#set:entriesCapacity (param $0 i32) (param $1 i32) local.get $0 local.get $1 i32.store offset=12 ) - (func $~lib/map/Map#set:entriesOffset (param $0 i32) (param $1 i32) + (func $~lib/map/Map#set:entriesOffset (param $0 i32) (param $1 i32) local.get $0 local.get $1 i32.store offset=16 ) - (func $~lib/map/Map#set:entriesCount (param $0 i32) (param $1 i32) + (func $~lib/map/Map#set:entriesCount (param $0 i32) (param $1 i32) local.get $0 local.get $1 i32.store offset=20 ) - (func $~lib/util/hash/hash16 (param $0 i32) (result i32) - (local $1 i32) - i32.const -2128831035 - local.set $1 - local.get $1 - local.get $0 - i32.const 255 - i32.and - i32.xor - i32.const 16777619 - i32.mul - local.set $1 - local.get $1 - local.get $0 - i32.const 8 - i32.shr_u - i32.xor - i32.const 16777619 - i32.mul - local.set $1 - local.get $1 - ) - (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) (local $5 i32) @@ -5547,12 +5647,10 @@ i32.eqz if (result i32) local.get $3 - i32.load16_s + i32.load8_u local.get $1 - i32.const 16 - i32.shl - i32.const 16 - i32.shr_s + i32.const 255 + i32.and i32.eq else i32.const 0 @@ -5572,22 +5670,49 @@ end i32.const 0 ) - (func $~lib/map/MapEntry#set:value (param $0 i32) (param $1 i32) + (func $~lib/map/Map#has (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + local.get $0 + local.get $1 + block $~lib/util/hash/HASH|inlined.0 (result i32) + local.get $1 + local.set $2 + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 1 + i32.const 1 + i32.eq + drop + local.get $2 + i32.const 255 + i32.and + call $~lib/util/hash/hash8 + br $~lib/util/hash/HASH|inlined.0 + end + call $~lib/map/Map#find + i32.const 0 + i32.ne + ) + (func $~lib/map/MapEntry#set:value (param $0 i32) (param $1 i32) local.get $0 local.get $1 i32.store offset=4 ) - (func $~lib/map/MapEntry#set:key (param $0 i32) (param $1 i32) + (func $~lib/map/MapEntry#set:key (param $0 i32) (param $1 i32) local.get $0 local.get $1 - i32.store16 + i32.store8 ) - (func $~lib/map/MapEntry#set:taggedNext (param $0 i32) (param $1 i32) + (func $~lib/map/MapEntry#set:taggedNext (param $0 i32) (param $1 i32) local.get $0 local.get $1 i32.store offset=8 ) - (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) @@ -5665,16 +5790,16 @@ local.get $8 local.set $11 local.get $10 - i32.load16_s + i32.load8_u local.set $12 local.get $11 local.get $12 - call $~lib/map/MapEntry#set:key + call $~lib/map/MapEntry#set:key local.get $11 local.get $10 i32.load offset=4 - call $~lib/map/MapEntry#set:value - block $~lib/util/hash/HASH|inlined.2 (result i32) + call $~lib/map/MapEntry#set:value + block $~lib/util/hash/HASH|inlined.2 (result i32) local.get $12 local.set $13 i32.const 0 @@ -5683,17 +5808,13 @@ drop i32.const 0 drop - i32.const 2 i32.const 1 - i32.eq - drop - i32.const 2 - i32.const 2 + i32.const 1 i32.eq drop local.get $13 - call $~lib/util/hash/hash16 - br $~lib/util/hash/HASH|inlined.2 + call $~lib/util/hash/hash8 + br $~lib/util/hash/HASH|inlined.2 end local.get $1 i32.and @@ -5707,7 +5828,7 @@ local.get $11 local.get $14 i32.load - call $~lib/map/MapEntry#set:taggedNext + call $~lib/map/MapEntry#set:taggedNext local.get $14 local.get $8 i32.store @@ -5725,30 +5846,69 @@ end local.get $0 local.get $3 - call $~lib/map/Map#set:buckets + call $~lib/map/Map#set:buckets local.get $0 local.get $1 - call $~lib/map/Map#set:bucketsMask + call $~lib/map/Map#set:bucketsMask local.get $0 local.get $5 - call $~lib/map/Map#set:entries + call $~lib/map/Map#set:entries local.get $0 local.get $4 - call $~lib/map/Map#set:entriesCapacity + call $~lib/map/Map#set:entriesCapacity local.get $0 local.get $0 i32.load offset=20 - call $~lib/map/Map#set:entriesOffset + call $~lib/map/Map#set:entriesOffset global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/map/Map#get:size (param $0 i32) (result i32) + (func $~lib/map/Map#get (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + local.get $0 + local.get $1 + block $~lib/util/hash/HASH|inlined.3 (result i32) + local.get $1 + local.set $2 + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 1 + i32.const 1 + i32.eq + drop + local.get $2 + i32.const 255 + i32.and + call $~lib/util/hash/hash8 + br $~lib/util/hash/HASH|inlined.3 + end + call $~lib/map/Map#find + local.set $3 + local.get $3 + i32.eqz + if + i32.const 592 + i32.const 656 + i32.const 105 + i32.const 17 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.load offset=4 + ) + (func $~lib/map/Map#get:size (param $0 i32) (result i32) local.get $0 i32.load offset=20 ) - (func $~lib/array/Array#set:buffer (param $0 i32) (param $1 i32) + (func $~lib/array/Array#set:buffer (param $0 i32) (param $1 i32) local.get $0 local.get $1 i32.store @@ -5757,43 +5917,77 @@ i32.const 0 call $~lib/rt/itcms/__link ) - (func $~lib/array/Array#set:dataStart (param $0 i32) (param $1 i32) + (func $~lib/array/Array#set:dataStart (param $0 i32) (param $1 i32) local.get $0 local.get $1 i32.store offset=4 ) - (func $~lib/array/Array#set:byteLength (param $0 i32) (param $1 i32) + (func $~lib/array/Array#set:byteLength (param $0 i32) (param $1 i32) local.get $0 local.get $1 i32.store offset=8 ) - (func $~lib/array/Array#set:length_ (param $0 i32) (param $1 i32) + (func $~lib/array/Array#set:length_ (param $0 i32) (param $1 i32) local.get $0 local.get $1 i32.store offset=12 ) - (func $~lib/array/Array#__uset (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/array/Array#__uset (param $0 i32) (param $1 i32) (param $2 i32) local.get $0 i32.load offset=4 local.get $1 - i32.const 1 + i32.const 0 i32.shl i32.add local.get $2 - i32.store16 + i32.store8 i32.const 0 drop ) - (func $~lib/array/Array#set:length (param $0 i32) (param $1 i32) + (func $~lib/array/Array#__set (param $0 i32) (param $1 i32) (param $2 i32) + 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 224 + i32.const 704 + i32.const 108 + i32.const 22 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $1 + i32.const 1 + i32.add + i32.const 0 + call $~lib/array/ensureSize + local.get $0 + local.get $1 + i32.const 1 + i32.add + call $~lib/array/Array#set:length_ + end local.get $0 local.get $1 - i32.const 1 + local.get $2 + call $~lib/array/Array#__uset + ) + (func $~lib/array/Array#set:length (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.const 0 call $~lib/array/ensureSize local.get $0 local.get $1 - call $~lib/array/Array#set:length_ + call $~lib/array/Array#set:length_ ) - (func $~lib/map/Map#set:buckets (param $0 i32) (param $1 i32) + (func $~lib/map/Map#set:buckets (param $0 i32) (param $1 i32) local.get $0 local.get $1 i32.store @@ -5802,12 +5996,12 @@ i32.const 0 call $~lib/rt/itcms/__link ) - (func $~lib/map/Map#set:bucketsMask (param $0 i32) (param $1 i32) + (func $~lib/map/Map#set:bucketsMask (param $0 i32) (param $1 i32) local.get $0 local.get $1 i32.store offset=4 ) - (func $~lib/map/Map#set:entries (param $0 i32) (param $1 i32) + (func $~lib/map/Map#set:entries (param $0 i32) (param $1 i32) local.get $0 local.get $1 i32.store offset=8 @@ -5816,26 +6010,26 @@ i32.const 0 call $~lib/rt/itcms/__link ) - (func $~lib/map/Map#set:entriesCapacity (param $0 i32) (param $1 i32) + (func $~lib/map/Map#set:entriesCapacity (param $0 i32) (param $1 i32) local.get $0 local.get $1 i32.store offset=12 ) - (func $~lib/map/Map#set:entriesOffset (param $0 i32) (param $1 i32) + (func $~lib/map/Map#set:entriesOffset (param $0 i32) (param $1 i32) local.get $0 local.get $1 i32.store offset=16 ) - (func $~lib/map/Map#set:entriesCount (param $0 i32) (param $1 i32) + (func $~lib/map/Map#set:entriesCount (param $0 i32) (param $1 i32) local.get $0 local.get $1 i32.store offset=20 ) - (func $~lib/array/Array#get:length (param $0 i32) (result i32) + (func $~lib/array/Array#get:length (param $0 i32) (result i32) local.get $0 i32.load offset=12 ) - (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 i32) (local $2 i32) local.get $1 local.get $0 @@ -5852,16 +6046,16 @@ local.get $0 i32.load offset=4 local.get $1 - i32.const 1 + i32.const 0 i32.shl i32.add - i32.load16_s + i32.load8_u local.set $2 i32.const 0 drop local.get $2 ) - (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) (local $5 i32) @@ -5890,12 +6084,10 @@ i32.eqz if (result i32) local.get $3 - i32.load16_s + i32.load8_u local.get $1 - i32.const 16 - i32.shl - i32.const 16 - i32.shr_s + i32.const 255 + i32.and i32.eq else i32.const 0 @@ -5915,22 +6107,22 @@ end i32.const 0 ) - (func $~lib/map/MapEntry#set:value (param $0 i32) (param $1 i32) + (func $~lib/map/MapEntry#set:value (param $0 i32) (param $1 i32) local.get $0 local.get $1 - i32.store16 offset=2 + i32.store8 offset=1 ) - (func $~lib/map/MapEntry#set:key (param $0 i32) (param $1 i32) + (func $~lib/map/MapEntry#set:key (param $0 i32) (param $1 i32) local.get $0 local.get $1 - i32.store16 + i32.store8 ) - (func $~lib/map/MapEntry#set:taggedNext (param $0 i32) (param $1 i32) + (func $~lib/map/MapEntry#set:taggedNext (param $0 i32) (param $1 i32) local.get $0 local.get $1 i32.store offset=4 ) - (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) @@ -6008,16 +6200,16 @@ local.get $8 local.set $11 local.get $10 - i32.load16_s + i32.load8_u local.set $12 local.get $11 local.get $12 - call $~lib/map/MapEntry#set:key + call $~lib/map/MapEntry#set:key local.get $11 local.get $10 - i32.load16_s offset=2 - call $~lib/map/MapEntry#set:value - block $~lib/util/hash/HASH|inlined.5 (result i32) + i32.load8_u offset=1 + call $~lib/map/MapEntry#set:value + block $~lib/util/hash/HASH|inlined.5 (result i32) local.get $12 local.set $13 i32.const 0 @@ -6026,17 +6218,13 @@ drop i32.const 0 drop - i32.const 2 i32.const 1 - i32.eq - drop - i32.const 2 - i32.const 2 + i32.const 1 i32.eq drop local.get $13 - call $~lib/util/hash/hash16 - br $~lib/util/hash/HASH|inlined.5 + call $~lib/util/hash/hash8 + br $~lib/util/hash/HASH|inlined.5 end local.get $1 i32.and @@ -6050,7 +6238,7 @@ local.get $11 local.get $14 i32.load - call $~lib/map/MapEntry#set:taggedNext + call $~lib/map/MapEntry#set:taggedNext local.get $14 local.get $8 i32.store @@ -6068,165 +6256,146 @@ end local.get $0 local.get $3 - call $~lib/map/Map#set:buckets + call $~lib/map/Map#set:buckets local.get $0 local.get $1 - call $~lib/map/Map#set:bucketsMask + call $~lib/map/Map#set:bucketsMask local.get $0 local.get $5 - call $~lib/map/Map#set:entries + call $~lib/map/Map#set:entries local.get $0 local.get $4 - call $~lib/map/Map#set:entriesCapacity + call $~lib/map/Map#set:entriesCapacity local.get $0 local.get $0 i32.load offset=20 - call $~lib/map/Map#set:entriesOffset + call $~lib/map/Map#set:entriesOffset global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/map/Map#get:size (param $0 i32) (result i32) + (func $~lib/map/Map#get:size (param $0 i32) (result i32) local.get $0 i32.load offset=20 ) - (func $~lib/map/Map#clear (param $0 i32) + (func $~lib/map/Map#delete (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $0 + local.get $1 + block $~lib/util/hash/HASH|inlined.6 (result i32) + local.get $1 + local.set $2 + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 1 + i32.const 1 + i32.eq + drop + local.get $2 + i32.const 255 + i32.and + call $~lib/util/hash/hash8 + br $~lib/util/hash/HASH|inlined.6 + end + call $~lib/map/Map#find + local.set $3 + local.get $3 + i32.eqz + if + i32.const 0 + return + end + local.get $3 + local.get $3 + i32.load offset=8 + i32.const 1 + i32.or + call $~lib/map/MapEntry#set:taggedNext + local.get $0 + local.get $0 + i32.load offset=20 + i32.const 1 + i32.sub + call $~lib/map/Map#set:entriesCount + local.get $0 + i32.load offset=4 + i32.const 1 + i32.shr_u + local.set $4 + local.get $4 + i32.const 1 + i32.add + i32.const 4 + local.tee $2 + local.get $0 + i32.load offset=20 + local.tee $5 + local.get $2 + local.get $5 + i32.gt_u + select + i32.ge_u + if (result i32) + local.get $0 + i32.load offset=20 + 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 $0 + local.get $4 + call $~lib/map/Map#rehash + end + i32.const 1 + ) + (func $~lib/map/Map#clear (param $0 i32) local.get $0 i32.const 0 i32.const 4 i32.const 4 i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor - call $~lib/map/Map#set:buckets + call $~lib/map/Map#set:buckets local.get $0 i32.const 4 i32.const 1 i32.sub - call $~lib/map/Map#set:bucketsMask + call $~lib/map/Map#set:bucketsMask local.get $0 i32.const 0 i32.const 4 i32.const 12 i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor - call $~lib/map/Map#set:entries + call $~lib/map/Map#set:entries local.get $0 i32.const 4 - call $~lib/map/Map#set:entriesCapacity - local.get $0 - i32.const 0 - call $~lib/map/Map#set:entriesOffset - local.get $0 - i32.const 0 - call $~lib/map/Map#set:entriesCount - ) - (func $~lib/map/Map#set:buckets (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - i32.store - local.get $0 - local.get $1 - i32.const 0 - call $~lib/rt/itcms/__link - ) - (func $~lib/map/Map#set:bucketsMask (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - i32.store offset=4 - ) - (func $~lib/map/Map#set:entries (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - i32.store offset=8 + call $~lib/map/Map#set:entriesCapacity local.get $0 - local.get $1 i32.const 0 - call $~lib/rt/itcms/__link - ) - (func $~lib/map/Map#set:entriesCapacity (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - i32.store offset=12 - ) - (func $~lib/map/Map#set:entriesOffset (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - i32.store offset=16 - ) - (func $~lib/map/Map#set:entriesCount (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - i32.store offset=20 - ) - (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) - local.get $0 - i32.load - local.get $2 + call $~lib/map/Map#set:entriesOffset local.get $0 - i32.load offset=4 - i32.and - i32.const 4 - i32.mul - i32.add - i32.load - local.set $3 - loop $while-continue|0 - local.get $3 - local.set $4 - local.get $4 - if - local.get $3 - i32.load offset=8 - local.set $5 - local.get $5 - i32.const 1 - i32.and - i32.eqz - if (result i32) - local.get $3 - i32.load16_u - local.get $1 - i32.const 65535 - i32.and - i32.eq - else - i32.const 0 - end - if - local.get $3 - return - end - local.get $5 - i32.const 1 - i32.const -1 - i32.xor - i32.and - local.set $3 - br $while-continue|0 - end - end i32.const 0 + call $~lib/map/Map#set:entriesCount ) - (func $~lib/map/MapEntry#set:value (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - i32.store offset=4 - ) - (func $~lib/map/MapEntry#set:key (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - i32.store16 - ) - (func $~lib/map/MapEntry#set:taggedNext (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - i32.store offset=8 - ) - (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) @@ -6236,563 +6405,500 @@ (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 8 + 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 - local.get $1 - i32.const 1 - i32.add - local.set $2 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 global.get $~lib/memory/__stack_pointer i32.const 0 - local.get $2 - i32.const 4 - i32.mul - call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $3 - i32.store - local.get $2 - i32.const 8 - i32.mul - i32.const 3 - i32.div_s - local.set $4 + i32.store offset=16 global.get $~lib/memory/__stack_pointer i32.const 0 - local.get $4 - i32.const 12 - i32.mul - call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $5 - i32.store offset=4 - local.get $0 - i32.load offset=8 - local.set $6 - local.get $6 - local.get $0 - i32.load offset=16 - i32.const 12 - i32.mul - i32.add - local.set $7 - local.get $5 - local.set $8 - loop $while-continue|0 - local.get $6 - local.get $7 - i32.ne - local.set $9 - local.get $9 + call $~lib/map/Map#constructor + local.tee $0 + i32.store + i32.const 0 + local.set $1 + loop $for-loop|1 + local.get $1 + i32.const 255 + i32.and + i32.const 100 + i32.lt_u + local.set $3 + local.get $3 if - local.get $6 - local.set $10 - local.get $10 - i32.load offset=8 + local.get $0 + local.get $1 + call $~lib/map/Map#has + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 6 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $1 + i32.const 10 + local.get $1 + i32.const 255 + i32.and + i32.add + call $~lib/map/Map#set + drop + local.get $0 + local.get $1 + call $~lib/map/Map#has + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 8 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $1 + call $~lib/map/Map#get + i32.const 10 + local.get $1 + i32.const 255 + i32.and + i32.add + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 9 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $1 i32.const 1 + i32.add + local.set $1 + br $for-loop|1 + end + end + local.get $0 + call $~lib/map/Map#get:size + i32.const 100 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 11 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $1 + loop $for-loop|3 + local.get $1 + i32.const 255 + i32.and + i32.const 100 + i32.lt_u + local.set $4 + local.get $4 + if + local.get $0 + local.get $1 + call $~lib/map/Map#has + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 15 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $1 + call $~lib/map/Map#get + i32.const 10 + local.get $1 + i32.const 255 + i32.and + i32.add + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 16 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $1 + i32.const 20 + local.get $1 + i32.const 255 i32.and + i32.add + call $~lib/map/Map#set + drop + local.get $0 + local.get $1 + call $~lib/map/Map#has i32.eqz if - local.get $8 - local.set $11 - local.get $10 - i32.load16_u - local.set $12 - local.get $11 - local.get $12 - call $~lib/map/MapEntry#set:key - local.get $11 - local.get $10 - i32.load offset=4 - call $~lib/map/MapEntry#set:value - block $~lib/util/hash/HASH|inlined.2 (result i32) - local.get $12 - local.set $13 - i32.const 0 - drop - i32.const 0 - drop - i32.const 0 - drop - i32.const 2 - i32.const 1 - i32.eq - drop - i32.const 2 - i32.const 2 - i32.eq - drop - local.get $13 - call $~lib/util/hash/hash16 - br $~lib/util/hash/HASH|inlined.2 - end - local.get $1 - i32.and - local.set $13 - local.get $3 - local.get $13 - i32.const 4 - i32.mul - i32.add - local.set $14 - local.get $11 - local.get $14 - i32.load - call $~lib/map/MapEntry#set:taggedNext - local.get $14 - local.get $8 - i32.store - local.get $8 - i32.const 12 - i32.add - local.set $8 + i32.const 0 + i32.const 544 + i32.const 18 + i32.const 5 + call $~lib/builtins/abort + unreachable end - local.get $6 - i32.const 12 + local.get $0 + local.get $1 + call $~lib/map/Map#get + i32.const 20 + local.get $1 + i32.const 255 + i32.and i32.add - local.set $6 - br $while-continue|0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 19 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|3 end end local.get $0 - local.get $3 - call $~lib/map/Map#set:buckets + call $~lib/map/Map#get:size + i32.const 100 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 21 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $1 - call $~lib/map/Map#set:bucketsMask + call $~lib/map/Map#keys + local.tee $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $5 - call $~lib/map/Map#set:entries - local.get $0 - local.get $4 - call $~lib/map/Map#set:entriesCapacity - local.get $0 - local.get $0 - i32.load offset=20 - call $~lib/map/Map#set:entriesOffset + call $~lib/map/Map#values + local.tee $4 + i32.store offset=8 global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/map/Map#get:size (param $0 i32) (result i32) - local.get $0 - i32.load offset=20 - ) - (func $~lib/array/Array#set:buffer (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - i32.store - local.get $0 - local.get $1 i32.const 0 - call $~lib/rt/itcms/__link - ) - (func $~lib/array/Array#set:dataStart (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - i32.store offset=4 - ) - (func $~lib/array/Array#set:byteLength (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - i32.store offset=8 - ) - (func $~lib/array/Array#set:length_ (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + call $~lib/map/Map#constructor + local.tee $5 i32.store offset=12 - ) - (func $~lib/array/Array#__uset (param $0 i32) (param $1 i32) (param $2 i32) - local.get $0 - i32.load offset=4 - local.get $1 - i32.const 1 - i32.shl - i32.add - local.get $2 - i32.store16 - i32.const 0 - drop - ) - (func $~lib/array/Array#set:length (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - i32.const 1 - call $~lib/array/ensureSize - local.get $0 - local.get $1 - call $~lib/array/Array#set:length_ - ) - (func $~lib/map/Map#set:buckets (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - i32.store - local.get $0 - local.get $1 - i32.const 0 - call $~lib/rt/itcms/__link - ) - (func $~lib/map/Map#set:bucketsMask (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - i32.store offset=4 - ) - (func $~lib/map/Map#set:entries (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - i32.store offset=8 - local.get $0 - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 0 - call $~lib/rt/itcms/__link - ) - (func $~lib/map/Map#set:entriesCapacity (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - i32.store offset=12 - ) - (func $~lib/map/Map#set:entriesOffset (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + call $~lib/map/Map#constructor + local.tee $6 i32.store offset=16 - ) - (func $~lib/map/Map#set:entriesCount (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - i32.store offset=20 - ) - (func $~lib/array/Array#get:length (param $0 i32) (result i32) - local.get $0 - i32.load offset=12 - ) - (func $~lib/array/Array#__get (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - local.get $1 - local.get $0 - i32.load offset=12 - i32.ge_u - if - i32.const 224 - i32.const 704 - i32.const 92 - i32.const 42 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load offset=4 - local.get $1 - i32.const 1 - i32.shl - i32.add - i32.load16_u - local.set $2 i32.const 0 - drop - local.get $2 - ) - (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) - local.get $0 - i32.load - local.get $2 - local.get $0 - i32.load offset=4 - i32.and - i32.const 4 - i32.mul - i32.add - i32.load - local.set $3 - loop $while-continue|0 - local.get $3 - local.set $4 - local.get $4 + local.set $7 + loop $for-loop|4 + local.get $7 + local.get $1 + call $~lib/array/Array#get:length + i32.lt_s + local.set $8 + local.get $8 if - local.get $3 - i32.load offset=4 - local.set $5 - local.get $5 - i32.const 1 - i32.and + local.get $1 + local.get $7 + call $~lib/array/Array#__get + local.set $9 + local.get $4 + local.get $7 + call $~lib/array/Array#__get + local.set $10 + local.get $0 + local.get $9 + call $~lib/map/Map#has i32.eqz - if (result i32) - local.get $3 - i32.load16_u - local.get $1 - i32.const 65535 - i32.and - i32.eq - else + if i32.const 0 + i32.const 544 + i32.const 31 + i32.const 5 + call $~lib/builtins/abort + unreachable end + local.get $0 + local.get $10 + i32.const 20 + i32.sub + call $~lib/map/Map#has + i32.eqz if - local.get $3 - return + i32.const 0 + i32.const 544 + i32.const 32 + i32.const 5 + call $~lib/builtins/abort + unreachable end local.get $5 + local.get $9 + local.get $9 + call $~lib/map/Map#set + drop + local.get $6 + local.get $10 + i32.const 20 + i32.sub + local.get $10 + i32.const 20 + i32.sub + call $~lib/map/Map#set + drop + local.get $7 i32.const 1 - i32.const -1 - i32.xor - i32.and - local.set $3 - br $while-continue|0 + i32.add + local.set $7 + br $for-loop|4 end end + local.get $5 + call $~lib/map/Map#get:size + i32.const 100 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 36 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $6 + call $~lib/map/Map#get:size + i32.const 100 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 37 + i32.const 3 + call $~lib/builtins/abort + unreachable + end i32.const 0 - ) - (func $~lib/map/MapEntry#set:value (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - i32.store16 offset=2 - ) - (func $~lib/map/MapEntry#set:key (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - i32.store16 - ) - (func $~lib/map/MapEntry#set:taggedNext (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - i32.store offset=4 - ) - (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) - (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 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 $1 - i32.const 1 - i32.add - local.set $2 - global.get $~lib/memory/__stack_pointer - i32.const 0 - local.get $2 - i32.const 4 - i32.mul - call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $3 - i32.store - local.get $2 - i32.const 8 - i32.mul - i32.const 3 - i32.div_s - local.set $4 - global.get $~lib/memory/__stack_pointer - i32.const 0 - local.get $4 - i32.const 8 - i32.mul - call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $5 - i32.store offset=4 - local.get $0 - i32.load offset=8 - local.set $6 - local.get $6 - local.get $0 - i32.load offset=16 - i32.const 8 - i32.mul - i32.add local.set $7 - local.get $5 - local.set $8 - loop $while-continue|0 - local.get $6 + loop $for-loop|6 local.get $7 - i32.ne - local.set $9 - local.get $9 + i32.const 255 + i32.and + i32.const 50 + i32.lt_u + local.set $10 + local.get $10 if - local.get $6 - local.set $10 - local.get $10 - i32.load offset=4 - i32.const 1 + local.get $0 + local.get $7 + call $~lib/map/Map#has + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 41 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $7 + call $~lib/map/Map#get + i32.const 20 + local.get $7 + i32.const 255 i32.and + i32.add + i32.eq i32.eqz if - local.get $8 - local.set $11 - local.get $10 - i32.load16_u - local.set $12 - local.get $11 - local.get $12 - call $~lib/map/MapEntry#set:key - local.get $11 - local.get $10 - i32.load16_u offset=2 - call $~lib/map/MapEntry#set:value - block $~lib/util/hash/HASH|inlined.5 (result i32) - local.get $12 - local.set $13 - i32.const 0 - drop - i32.const 0 - drop - i32.const 0 - drop - i32.const 2 - i32.const 1 - i32.eq - drop - i32.const 2 - i32.const 2 - i32.eq - drop - local.get $13 - call $~lib/util/hash/hash16 - br $~lib/util/hash/HASH|inlined.5 - end - local.get $1 - i32.and - local.set $13 - local.get $3 - local.get $13 - i32.const 4 - i32.mul - i32.add - local.set $14 - local.get $11 - local.get $14 - i32.load - call $~lib/map/MapEntry#set:taggedNext - local.get $14 - local.get $8 - i32.store - local.get $8 - i32.const 8 - i32.add - local.set $8 + i32.const 0 + i32.const 544 + i32.const 42 + i32.const 5 + call $~lib/builtins/abort + unreachable end - local.get $6 - i32.const 8 + local.get $0 + local.get $7 + call $~lib/map/Map#delete + drop + local.get $0 + local.get $7 + call $~lib/map/Map#has + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 44 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $7 + i32.const 1 i32.add - local.set $6 - br $while-continue|0 + local.set $7 + br $for-loop|6 end end local.get $0 - local.get $3 - call $~lib/map/Map#set:buckets - local.get $0 - local.get $1 - call $~lib/map/Map#set:bucketsMask - local.get $0 - local.get $5 - call $~lib/map/Map#set:entries - local.get $0 - local.get $4 - call $~lib/map/Map#set:entriesCapacity - local.get $0 - local.get $0 - i32.load offset=20 - call $~lib/map/Map#set:entriesOffset - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/map/Map#get:size (param $0 i32) (result i32) - local.get $0 - i32.load offset=20 - ) - (func $~lib/map/Map#clear (param $0 i32) - local.get $0 - i32.const 0 - i32.const 4 - i32.const 4 - i32.mul - call $~lib/arraybuffer/ArrayBuffer#constructor - call $~lib/map/Map#set:buckets - local.get $0 - i32.const 4 - i32.const 1 - i32.sub - call $~lib/map/Map#set:bucketsMask - local.get $0 - i32.const 0 - i32.const 4 - i32.const 12 - i32.mul - call $~lib/arraybuffer/ArrayBuffer#constructor - call $~lib/map/Map#set:entries - local.get $0 - i32.const 4 - call $~lib/map/Map#set:entriesCapacity - local.get $0 - i32.const 0 - call $~lib/map/Map#set:entriesOffset - local.get $0 + call $~lib/map/Map#get:size + i32.const 50 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 46 + i32.const 3 + call $~lib/builtins/abort + unreachable + end i32.const 0 - call $~lib/map/Map#set:entriesCount - ) - (func $~lib/array/Array#get:length (param $0 i32) (result i32) - local.get $0 - i32.load offset=12 - ) - (func $~lib/map/Map#clear (param $0 i32) - local.get $0 - i32.const 0 - i32.const 4 - i32.const 4 - i32.mul - call $~lib/arraybuffer/ArrayBuffer#constructor - call $~lib/map/Map#set:buckets - local.get $0 - i32.const 4 - i32.const 1 - i32.sub - call $~lib/map/Map#set:bucketsMask - local.get $0 - i32.const 0 - i32.const 4 - i32.const 12 - i32.mul - call $~lib/arraybuffer/ArrayBuffer#constructor - call $~lib/map/Map#set:entries + local.set $7 + loop $for-loop|8 + local.get $7 + i32.const 255 + i32.and + i32.const 50 + i32.lt_u + local.set $9 + local.get $9 + if + local.get $0 + local.get $7 + call $~lib/map/Map#has + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 50 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $7 + i32.const 10 + local.get $7 + i32.const 255 + i32.and + i32.add + call $~lib/map/Map#set + drop + local.get $0 + local.get $7 + call $~lib/map/Map#has + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 52 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $7 + call $~lib/map/Map#delete + drop + local.get $0 + local.get $7 + call $~lib/map/Map#has + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 54 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $7 + i32.const 1 + i32.add + local.set $7 + br $for-loop|8 + end + end local.get $0 - i32.const 4 - call $~lib/map/Map#set:entriesCapacity + call $~lib/map/Map#get:size + i32.const 50 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 56 + i32.const 3 + call $~lib/builtins/abort + unreachable + end local.get $0 - i32.const 0 - call $~lib/map/Map#set:entriesOffset + call $~lib/map/Map#clear local.get $0 + call $~lib/map/Map#get:size i32.const 0 - call $~lib/map/Map#set:entriesCount + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 60 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.add + global.set $~lib/memory/__stack_pointer ) - (func $~lib/map/Map#set:buckets (param $0 i32) (param $1 i32) + (func $~lib/map/Map#set:buckets (param $0 i32) (param $1 i32) local.get $0 local.get $1 i32.store @@ -6801,12 +6907,12 @@ i32.const 0 call $~lib/rt/itcms/__link ) - (func $~lib/map/Map#set:bucketsMask (param $0 i32) (param $1 i32) + (func $~lib/map/Map#set:bucketsMask (param $0 i32) (param $1 i32) local.get $0 local.get $1 i32.store offset=4 ) - (func $~lib/map/Map#set:entries (param $0 i32) (param $1 i32) + (func $~lib/map/Map#set:entries (param $0 i32) (param $1 i32) local.get $0 local.get $1 i32.store offset=8 @@ -6815,22 +6921,44 @@ i32.const 0 call $~lib/rt/itcms/__link ) - (func $~lib/map/Map#set:entriesCapacity (param $0 i32) (param $1 i32) + (func $~lib/map/Map#set:entriesCapacity (param $0 i32) (param $1 i32) local.get $0 local.get $1 i32.store offset=12 ) - (func $~lib/map/Map#set:entriesOffset (param $0 i32) (param $1 i32) + (func $~lib/map/Map#set:entriesOffset (param $0 i32) (param $1 i32) local.get $0 local.get $1 i32.store offset=16 ) - (func $~lib/map/Map#set:entriesCount (param $0 i32) (param $1 i32) + (func $~lib/map/Map#set:entriesCount (param $0 i32) (param $1 i32) local.get $0 local.get $1 i32.store offset=20 ) - (func $~lib/map/Map#find (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/util/hash/hash16 (param $0 i32) (result i32) + (local $1 i32) + i32.const -2128831035 + local.set $1 + local.get $1 + local.get $0 + i32.const 255 + i32.and + i32.xor + i32.const 16777619 + i32.mul + local.set $1 + local.get $1 + local.get $0 + i32.const 8 + i32.shr_u + i32.xor + i32.const 16777619 + i32.mul + local.set $1 + local.get $1 + ) + (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) @@ -6859,8 +6987,12 @@ i32.eqz if (result i32) local.get $3 - i32.load + i32.load16_s local.get $1 + i32.const 16 + i32.shl + i32.const 16 + i32.shr_s i32.eq else i32.const 0 @@ -6880,22 +7012,55 @@ end i32.const 0 ) - (func $~lib/map/MapEntry#set:value (param $0 i32) (param $1 i32) + (func $~lib/map/Map#has (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + local.get $0 + local.get $1 + block $~lib/util/hash/HASH|inlined.0 (result i32) + local.get $1 + local.set $2 + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 2 + i32.const 1 + i32.eq + drop + i32.const 2 + i32.const 2 + i32.eq + drop + local.get $2 + i32.const 16 + i32.shl + i32.const 16 + i32.shr_s + call $~lib/util/hash/hash16 + br $~lib/util/hash/HASH|inlined.0 + end + call $~lib/map/Map#find + i32.const 0 + i32.ne + ) + (func $~lib/map/MapEntry#set:value (param $0 i32) (param $1 i32) local.get $0 local.get $1 i32.store offset=4 ) - (func $~lib/map/MapEntry#set:key (param $0 i32) (param $1 i32) + (func $~lib/map/MapEntry#set:key (param $0 i32) (param $1 i32) local.get $0 local.get $1 - i32.store + i32.store16 ) - (func $~lib/map/MapEntry#set:taggedNext (param $0 i32) (param $1 i32) + (func $~lib/map/MapEntry#set:taggedNext (param $0 i32) (param $1 i32) local.get $0 local.get $1 i32.store offset=8 ) - (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) @@ -6973,16 +7138,16 @@ local.get $8 local.set $11 local.get $10 - i32.load + i32.load16_s local.set $12 local.get $11 local.get $12 - call $~lib/map/MapEntry#set:key + call $~lib/map/MapEntry#set:key local.get $11 local.get $10 i32.load offset=4 - call $~lib/map/MapEntry#set:value - block $~lib/util/hash/HASH|inlined.2 (result i32) + call $~lib/map/MapEntry#set:value + block $~lib/util/hash/HASH|inlined.2 (result i32) local.get $12 local.set $13 i32.const 0 @@ -6991,21 +7156,17 @@ drop i32.const 0 drop - i32.const 4 + i32.const 2 i32.const 1 i32.eq drop - i32.const 4 i32.const 2 - i32.eq - drop - i32.const 4 - i32.const 4 + i32.const 2 i32.eq drop local.get $13 - call $~lib/util/hash/hash32 - br $~lib/util/hash/HASH|inlined.2 + call $~lib/util/hash/hash16 + br $~lib/util/hash/HASH|inlined.2 end local.get $1 i32.and @@ -7019,7 +7180,7 @@ local.get $11 local.get $14 i32.load - call $~lib/map/MapEntry#set:taggedNext + call $~lib/map/MapEntry#set:taggedNext local.get $14 local.get $8 i32.store @@ -7037,75 +7198,154 @@ end local.get $0 local.get $3 - call $~lib/map/Map#set:buckets + call $~lib/map/Map#set:buckets local.get $0 local.get $1 - call $~lib/map/Map#set:bucketsMask + call $~lib/map/Map#set:bucketsMask local.get $0 local.get $5 - call $~lib/map/Map#set:entries + call $~lib/map/Map#set:entries local.get $0 local.get $4 - call $~lib/map/Map#set:entriesCapacity + call $~lib/map/Map#set:entriesCapacity local.get $0 local.get $0 i32.load offset=20 - call $~lib/map/Map#set:entriesOffset + call $~lib/map/Map#set:entriesOffset global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/map/Map#get:size (param $0 i32) (result i32) - local.get $0 - i32.load offset=20 - ) - (func $~lib/array/Array#set:buffer (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - i32.store + (func $~lib/map/Map#get (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) local.get $0 local.get $1 - i32.const 0 - call $~lib/rt/itcms/__link + block $~lib/util/hash/HASH|inlined.3 (result i32) + local.get $1 + local.set $2 + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 2 + i32.const 1 + i32.eq + drop + i32.const 2 + i32.const 2 + i32.eq + drop + local.get $2 + i32.const 16 + i32.shl + i32.const 16 + i32.shr_s + call $~lib/util/hash/hash16 + br $~lib/util/hash/HASH|inlined.3 + end + call $~lib/map/Map#find + local.set $3 + local.get $3 + i32.eqz + if + i32.const 592 + i32.const 656 + i32.const 105 + i32.const 17 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.load offset=4 ) - (func $~lib/array/Array#set:dataStart (param $0 i32) (param $1 i32) + (func $~lib/map/Map#get:size (param $0 i32) (result i32) + local.get $0 + i32.load offset=20 + ) + (func $~lib/array/Array#set:buffer (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + local.get $0 + local.get $1 + i32.const 0 + call $~lib/rt/itcms/__link + ) + (func $~lib/array/Array#set:dataStart (param $0 i32) (param $1 i32) local.get $0 local.get $1 i32.store offset=4 ) - (func $~lib/array/Array#set:byteLength (param $0 i32) (param $1 i32) + (func $~lib/array/Array#set:byteLength (param $0 i32) (param $1 i32) local.get $0 local.get $1 i32.store offset=8 ) - (func $~lib/array/Array#set:length_ (param $0 i32) (param $1 i32) + (func $~lib/array/Array#set:length_ (param $0 i32) (param $1 i32) local.get $0 local.get $1 i32.store offset=12 ) - (func $~lib/array/Array#__uset (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/array/Array#__uset (param $0 i32) (param $1 i32) (param $2 i32) local.get $0 i32.load offset=4 local.get $1 - i32.const 2 + i32.const 1 i32.shl i32.add local.get $2 - i32.store + i32.store16 i32.const 0 drop ) - (func $~lib/array/Array#set:length (param $0 i32) (param $1 i32) + (func $~lib/array/Array#__set (param $0 i32) (param $1 i32) (param $2 i32) + 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 224 + i32.const 704 + i32.const 108 + i32.const 22 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $1 + i32.const 1 + i32.add + i32.const 1 + call $~lib/array/ensureSize + local.get $0 + local.get $1 + i32.const 1 + i32.add + call $~lib/array/Array#set:length_ + end local.get $0 local.get $1 - i32.const 2 + local.get $2 + call $~lib/array/Array#__uset + ) + (func $~lib/array/Array#set:length (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.const 1 call $~lib/array/ensureSize local.get $0 local.get $1 - call $~lib/array/Array#set:length_ + call $~lib/array/Array#set:length_ ) - (func $~lib/map/Map#set:buckets (param $0 i32) (param $1 i32) + (func $~lib/map/Map#set:buckets (param $0 i32) (param $1 i32) local.get $0 local.get $1 i32.store @@ -7114,12 +7354,12 @@ i32.const 0 call $~lib/rt/itcms/__link ) - (func $~lib/map/Map#set:bucketsMask (param $0 i32) (param $1 i32) + (func $~lib/map/Map#set:bucketsMask (param $0 i32) (param $1 i32) local.get $0 local.get $1 i32.store offset=4 ) - (func $~lib/map/Map#set:entries (param $0 i32) (param $1 i32) + (func $~lib/map/Map#set:entries (param $0 i32) (param $1 i32) local.get $0 local.get $1 i32.store offset=8 @@ -7128,26 +7368,26 @@ i32.const 0 call $~lib/rt/itcms/__link ) - (func $~lib/map/Map#set:entriesCapacity (param $0 i32) (param $1 i32) + (func $~lib/map/Map#set:entriesCapacity (param $0 i32) (param $1 i32) local.get $0 local.get $1 i32.store offset=12 ) - (func $~lib/map/Map#set:entriesOffset (param $0 i32) (param $1 i32) + (func $~lib/map/Map#set:entriesOffset (param $0 i32) (param $1 i32) local.get $0 local.get $1 i32.store offset=16 ) - (func $~lib/map/Map#set:entriesCount (param $0 i32) (param $1 i32) + (func $~lib/map/Map#set:entriesCount (param $0 i32) (param $1 i32) local.get $0 local.get $1 i32.store offset=20 ) - (func $~lib/array/Array#get:length (param $0 i32) (result i32) + (func $~lib/array/Array#get:length (param $0 i32) (result i32) local.get $0 i32.load offset=12 ) - (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 i32) (local $2 i32) local.get $1 local.get $0 @@ -7164,16 +7404,16 @@ local.get $0 i32.load offset=4 local.get $1 - i32.const 2 + i32.const 1 i32.shl i32.add - i32.load + i32.load16_s local.set $2 i32.const 0 drop local.get $2 ) - (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) (local $5 i32) @@ -7194,7 +7434,7 @@ local.get $4 if local.get $3 - i32.load offset=8 + i32.load offset=4 local.set $5 local.get $5 i32.const 1 @@ -7202,8 +7442,12 @@ i32.eqz if (result i32) local.get $3 - i32.load + i32.load16_s local.get $1 + i32.const 16 + i32.shl + i32.const 16 + i32.shr_s i32.eq else i32.const 0 @@ -7223,22 +7467,22 @@ end i32.const 0 ) - (func $~lib/map/MapEntry#set:value (param $0 i32) (param $1 i32) + (func $~lib/map/MapEntry#set:value (param $0 i32) (param $1 i32) local.get $0 local.get $1 - i32.store offset=4 + i32.store16 offset=2 ) - (func $~lib/map/MapEntry#set:key (param $0 i32) (param $1 i32) + (func $~lib/map/MapEntry#set:key (param $0 i32) (param $1 i32) local.get $0 local.get $1 - i32.store + i32.store16 ) - (func $~lib/map/MapEntry#set:taggedNext (param $0 i32) (param $1 i32) + (func $~lib/map/MapEntry#set:taggedNext (param $0 i32) (param $1 i32) local.get $0 local.get $1 - i32.store offset=8 + i32.store offset=4 ) - (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) @@ -7281,7 +7525,7 @@ global.get $~lib/memory/__stack_pointer i32.const 0 local.get $4 - i32.const 12 + i32.const 8 i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor local.tee $5 @@ -7292,7 +7536,7 @@ local.get $6 local.get $0 i32.load offset=16 - i32.const 12 + i32.const 8 i32.mul i32.add local.set $7 @@ -7308,7 +7552,7 @@ local.get $6 local.set $10 local.get $10 - i32.load offset=8 + i32.load offset=4 i32.const 1 i32.and i32.eqz @@ -7316,16 +7560,16 @@ local.get $8 local.set $11 local.get $10 - i32.load + i32.load16_s local.set $12 local.get $11 local.get $12 - call $~lib/map/MapEntry#set:key + call $~lib/map/MapEntry#set:key local.get $11 local.get $10 - i32.load offset=4 - call $~lib/map/MapEntry#set:value - block $~lib/util/hash/HASH|inlined.5 (result i32) + i32.load16_s offset=2 + call $~lib/map/MapEntry#set:value + block $~lib/util/hash/HASH|inlined.5 (result i32) local.get $12 local.set $13 i32.const 0 @@ -7334,21 +7578,17 @@ drop i32.const 0 drop - i32.const 4 + i32.const 2 i32.const 1 i32.eq drop - i32.const 4 i32.const 2 - i32.eq - drop - i32.const 4 - i32.const 4 + i32.const 2 i32.eq drop local.get $13 - call $~lib/util/hash/hash32 - br $~lib/util/hash/HASH|inlined.5 + call $~lib/util/hash/hash16 + br $~lib/util/hash/HASH|inlined.5 end local.get $1 i32.and @@ -7362,17 +7602,17 @@ local.get $11 local.get $14 i32.load - call $~lib/map/MapEntry#set:taggedNext + call $~lib/map/MapEntry#set:taggedNext local.get $14 local.get $8 i32.store local.get $8 - i32.const 12 + i32.const 8 i32.add local.set $8 end local.get $6 - i32.const 12 + i32.const 8 i32.add local.set $6 br $while-continue|0 @@ -7380,251 +7620,152 @@ end local.get $0 local.get $3 - call $~lib/map/Map#set:buckets + call $~lib/map/Map#set:buckets local.get $0 local.get $1 - call $~lib/map/Map#set:bucketsMask + call $~lib/map/Map#set:bucketsMask local.get $0 local.get $5 - call $~lib/map/Map#set:entries + call $~lib/map/Map#set:entries local.get $0 local.get $4 - call $~lib/map/Map#set:entriesCapacity + call $~lib/map/Map#set:entriesCapacity local.get $0 local.get $0 i32.load offset=20 - call $~lib/map/Map#set:entriesOffset + call $~lib/map/Map#set:entriesOffset global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/map/Map#get:size (param $0 i32) (result i32) + (func $~lib/map/Map#get:size (param $0 i32) (result i32) local.get $0 i32.load offset=20 ) - (func $~lib/map/Map#clear (param $0 i32) + (func $~lib/map/Map#delete (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) local.get $0 - i32.const 0 - i32.const 4 - i32.const 4 - i32.mul - call $~lib/arraybuffer/ArrayBuffer#constructor - call $~lib/map/Map#set:buckets + local.get $1 + block $~lib/util/hash/HASH|inlined.6 (result i32) + local.get $1 + local.set $2 + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 2 + i32.const 1 + i32.eq + drop + i32.const 2 + i32.const 2 + i32.eq + drop + local.get $2 + i32.const 16 + i32.shl + i32.const 16 + i32.shr_s + call $~lib/util/hash/hash16 + br $~lib/util/hash/HASH|inlined.6 + end + call $~lib/map/Map#find + local.set $3 + local.get $3 + i32.eqz + if + i32.const 0 + return + end + local.get $3 + local.get $3 + i32.load offset=8 + i32.const 1 + i32.or + call $~lib/map/MapEntry#set:taggedNext local.get $0 - i32.const 4 + local.get $0 + i32.load offset=20 i32.const 1 i32.sub - call $~lib/map/Map#set:bucketsMask - local.get $0 - i32.const 0 - i32.const 4 - i32.const 12 - i32.mul - call $~lib/arraybuffer/ArrayBuffer#constructor - call $~lib/map/Map#set:entries + call $~lib/map/Map#set:entriesCount local.get $0 + i32.load offset=4 + i32.const 1 + i32.shr_u + local.set $4 + local.get $4 + i32.const 1 + i32.add i32.const 4 - call $~lib/map/Map#set:entriesCapacity - local.get $0 - i32.const 0 - call $~lib/map/Map#set:entriesOffset - local.get $0 - i32.const 0 - call $~lib/map/Map#set:entriesCount - ) - (func $~lib/map/Map#set:buckets (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - i32.store - local.get $0 - local.get $1 - i32.const 0 - call $~lib/rt/itcms/__link - ) - (func $~lib/map/Map#set:bucketsMask (param $0 i32) (param $1 i32) + local.tee $2 local.get $0 - local.get $1 - i32.store offset=4 + i32.load offset=20 + local.tee $5 + local.get $2 + local.get $5 + i32.gt_u + select + i32.ge_u + if (result i32) + local.get $0 + i32.load offset=20 + 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 $0 + local.get $4 + call $~lib/map/Map#rehash + end + i32.const 1 ) - (func $~lib/map/Map#set:entries (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - i32.store offset=8 + (func $~lib/map/Map#clear (param $0 i32) local.get $0 - local.get $1 i32.const 0 - call $~lib/rt/itcms/__link - ) - (func $~lib/map/Map#set:entriesCapacity (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - i32.store offset=12 - ) - (func $~lib/map/Map#set:entriesOffset (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - i32.store offset=16 - ) - (func $~lib/map/Map#set:entriesCount (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - i32.store offset=20 - ) - (func $~lib/util/hash/hash64 (param $0 i64) (result i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - local.get $0 - i32.wrap_i64 - local.set $1 - local.get $0 - i64.const 32 - i64.shr_u - i32.wrap_i64 - local.set $2 - i32.const -2128831035 - local.set $3 - local.get $3 - local.get $1 - i32.const 255 - i32.and - i32.xor - i32.const 16777619 - i32.mul - local.set $3 - local.get $3 - local.get $1 - i32.const 8 - i32.shr_u - i32.const 255 - i32.and - i32.xor - i32.const 16777619 - i32.mul - local.set $3 - local.get $3 - local.get $1 - i32.const 16 - i32.shr_u - i32.const 255 - i32.and - i32.xor - i32.const 16777619 - i32.mul - local.set $3 - local.get $3 - local.get $1 - i32.const 24 - i32.shr_u - i32.xor - i32.const 16777619 - i32.mul - local.set $3 - local.get $3 - local.get $2 - i32.const 255 - i32.and - i32.xor - i32.const 16777619 - i32.mul - local.set $3 - local.get $3 - local.get $2 - i32.const 8 - i32.shr_u - i32.const 255 - i32.and - i32.xor - i32.const 16777619 - i32.mul - local.set $3 - local.get $3 - local.get $2 - i32.const 16 - i32.shr_u - i32.const 255 - i32.and - i32.xor - i32.const 16777619 - i32.mul - local.set $3 - local.get $3 - local.get $2 - i32.const 24 - i32.shr_u - i32.xor - i32.const 16777619 + i32.const 4 + i32.const 4 i32.mul - local.set $3 - local.get $3 - ) - (func $~lib/map/Map#find (param $0 i32) (param $1 i64) (param $2 i32) (result i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) + call $~lib/arraybuffer/ArrayBuffer#constructor + call $~lib/map/Map#set:buckets local.get $0 - i32.load - local.get $2 + i32.const 4 + i32.const 1 + i32.sub + call $~lib/map/Map#set:bucketsMask local.get $0 - i32.load offset=4 - i32.and + i32.const 0 i32.const 4 + i32.const 12 i32.mul - i32.add - i32.load - local.set $3 - loop $while-continue|0 - local.get $3 - local.set $4 - local.get $4 - if - local.get $3 - i32.load offset=12 - local.set $5 - local.get $5 - i32.const 1 - i32.and - i32.eqz - if (result i32) - local.get $3 - i64.load - local.get $1 - i64.eq - else - i32.const 0 - end - if - local.get $3 - return - end - local.get $5 - i32.const 1 - i32.const -1 - i32.xor - i32.and - local.set $3 - br $while-continue|0 - end - end - i32.const 0 - ) - (func $~lib/map/MapEntry#set:value (param $0 i32) (param $1 i32) + call $~lib/arraybuffer/ArrayBuffer#constructor + call $~lib/map/Map#set:entries local.get $0 - local.get $1 - i32.store offset=8 - ) - (func $~lib/map/MapEntry#set:key (param $0 i32) (param $1 i64) + i32.const 4 + call $~lib/map/Map#set:entriesCapacity local.get $0 - local.get $1 - i64.store - ) - (func $~lib/map/MapEntry#set:taggedNext (param $0 i32) (param $1 i32) + i32.const 0 + call $~lib/map/Map#set:entriesOffset local.get $0 - local.get $1 - i32.store offset=12 + i32.const 0 + call $~lib/map/Map#set:entriesCount ) - (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) @@ -7634,583 +7775,560 @@ (local $8 i32) (local $9 i32) (local $10 i32) - (local $11 i32) - (local $12 i64) - (local $13 i64) - (local $14 i32) - (local $15 i32) global.get $~lib/memory/__stack_pointer - i32.const 8 + 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 - local.get $1 - i32.const 1 - i32.add - local.set $2 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 global.get $~lib/memory/__stack_pointer i32.const 0 - local.get $2 - i32.const 4 - i32.mul - call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $3 - i32.store - local.get $2 - i32.const 8 - i32.mul - i32.const 3 - i32.div_s - local.set $4 + i32.store offset=16 global.get $~lib/memory/__stack_pointer i32.const 0 - local.get $4 - i32.const 16 - i32.mul - call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $5 - i32.store offset=4 - local.get $0 - i32.load offset=8 - local.set $6 - local.get $6 - local.get $0 - i32.load offset=16 - i32.const 16 - i32.mul - i32.add - local.set $7 - local.get $5 - local.set $8 - loop $while-continue|0 - local.get $6 - local.get $7 - i32.ne - local.set $9 - local.get $9 + call $~lib/map/Map#constructor + local.tee $0 + i32.store + i32.const 0 + local.set $1 + loop $for-loop|1 + local.get $1 + i32.const 16 + i32.shl + i32.const 16 + i32.shr_s + i32.const 100 + i32.lt_s + local.set $3 + local.get $3 if - local.get $6 - local.set $10 - local.get $10 - i32.load offset=12 - i32.const 1 - i32.and + local.get $0 + local.get $1 + call $~lib/map/Map#has + i32.eqz i32.eqz if - local.get $8 - local.set $11 - local.get $10 - i64.load - local.set $12 - local.get $11 - local.get $12 - call $~lib/map/MapEntry#set:key - local.get $11 - local.get $10 - i32.load offset=8 - call $~lib/map/MapEntry#set:value - block $~lib/util/hash/HASH|inlined.2 (result i32) - local.get $12 - local.set $13 - i32.const 0 - drop - i32.const 0 - drop - i32.const 0 - drop - i32.const 8 - i32.const 1 - i32.eq - drop - i32.const 8 - i32.const 2 - i32.eq - drop - i32.const 8 - i32.const 4 - i32.eq - drop - i32.const 8 - i32.const 8 - i32.eq - drop - local.get $13 - call $~lib/util/hash/hash64 - br $~lib/util/hash/HASH|inlined.2 - end - local.get $1 - i32.and - local.set $14 - local.get $3 - local.get $14 - i32.const 4 - i32.mul - i32.add - local.set $15 - local.get $11 - local.get $15 - i32.load - call $~lib/map/MapEntry#set:taggedNext - local.get $15 - local.get $8 - i32.store - local.get $8 - i32.const 16 - i32.add - local.set $8 + i32.const 0 + i32.const 544 + i32.const 6 + i32.const 5 + call $~lib/builtins/abort + unreachable end - local.get $6 + local.get $0 + local.get $1 + i32.const 10 + local.get $1 + i32.const 16 + i32.shl i32.const 16 + i32.shr_s i32.add - local.set $6 - br $while-continue|0 + call $~lib/map/Map#set + drop + local.get $0 + local.get $1 + call $~lib/map/Map#has + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 8 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $1 + call $~lib/map/Map#get + i32.const 10 + local.get $1 + i32.const 16 + i32.shl + i32.const 16 + i32.shr_s + i32.add + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 9 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|1 end end local.get $0 - local.get $3 - call $~lib/map/Map#set:buckets - local.get $0 - local.get $1 - call $~lib/map/Map#set:bucketsMask - local.get $0 - local.get $5 - call $~lib/map/Map#set:entries - local.get $0 - local.get $4 - call $~lib/map/Map#set:entriesCapacity - local.get $0 - local.get $0 - i32.load offset=20 - call $~lib/map/Map#set:entriesOffset - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/map/Map#get:size (param $0 i32) (result i32) - local.get $0 - i32.load offset=20 - ) - (func $~lib/array/Array#set:buffer (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - i32.store - local.get $0 - local.get $1 - i32.const 0 - call $~lib/rt/itcms/__link - ) - (func $~lib/array/Array#set:dataStart (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - i32.store offset=4 - ) - (func $~lib/array/Array#set:byteLength (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - i32.store offset=8 - ) - (func $~lib/array/Array#set:length_ (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - i32.store offset=12 - ) - (func $~lib/array/Array#__uset (param $0 i32) (param $1 i32) (param $2 i64) - local.get $0 - i32.load offset=4 - local.get $1 - i32.const 3 - i32.shl - i32.add - local.get $2 - i64.store + call $~lib/map/Map#get:size + i32.const 100 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 11 + i32.const 3 + call $~lib/builtins/abort + unreachable + end i32.const 0 - drop - ) - (func $~lib/array/Array#set:length (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - i32.const 3 - call $~lib/array/ensureSize - local.get $0 - local.get $1 - call $~lib/array/Array#set:length_ - ) - (func $~lib/map/Map#set:buckets (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - i32.store - local.get $0 - local.get $1 - i32.const 0 - call $~lib/rt/itcms/__link - ) - (func $~lib/map/Map#set:bucketsMask (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - i32.store offset=4 - ) - (func $~lib/map/Map#set:entries (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - i32.store offset=8 - local.get $0 - local.get $1 - i32.const 0 - call $~lib/rt/itcms/__link - ) - (func $~lib/map/Map#set:entriesCapacity (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - i32.store offset=12 - ) - (func $~lib/map/Map#set:entriesOffset (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - i32.store offset=16 - ) - (func $~lib/map/Map#set:entriesCount (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - i32.store offset=20 - ) - (func $~lib/array/Array#get:length (param $0 i32) (result i32) - local.get $0 - i32.load offset=12 - ) - (func $~lib/array/Array#__get (param $0 i32) (param $1 i32) (result i64) - (local $2 i64) - local.get $1 - local.get $0 - i32.load offset=12 - i32.ge_u - if - i32.const 224 - i32.const 704 - i32.const 92 - i32.const 42 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load offset=4 - local.get $1 - i32.const 3 - i32.shl - i32.add - i64.load - local.set $2 - i32.const 0 - drop - local.get $2 - ) - (func $~lib/map/Map#find (param $0 i32) (param $1 i64) (param $2 i32) (result i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - local.get $0 - i32.load - local.get $2 - local.get $0 - i32.load offset=4 - i32.and - i32.const 4 - i32.mul - i32.add - i32.load - local.set $3 - loop $while-continue|0 - local.get $3 + local.set $1 + loop $for-loop|3 + local.get $1 + i32.const 16 + i32.shl + i32.const 16 + i32.shr_s + i32.const 100 + i32.lt_s local.set $4 local.get $4 if - local.get $3 - i32.load offset=16 - local.set $5 - local.get $5 - i32.const 1 - i32.and + local.get $0 + local.get $1 + call $~lib/map/Map#has i32.eqz - if (result i32) - local.get $3 - i64.load - local.get $1 - i64.eq - else + if + i32.const 0 + i32.const 544 + i32.const 15 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $1 + call $~lib/map/Map#get + i32.const 10 + local.get $1 + i32.const 16 + i32.shl + i32.const 16 + i32.shr_s + i32.add + i32.eq + i32.eqz + if i32.const 0 + i32.const 544 + i32.const 16 + i32.const 5 + call $~lib/builtins/abort + unreachable end + local.get $0 + local.get $1 + i32.const 20 + local.get $1 + i32.const 16 + i32.shl + i32.const 16 + i32.shr_s + i32.add + call $~lib/map/Map#set + drop + local.get $0 + local.get $1 + call $~lib/map/Map#has + i32.eqz if - local.get $3 - return + i32.const 0 + i32.const 544 + i32.const 18 + i32.const 5 + call $~lib/builtins/abort + unreachable end - local.get $5 + local.get $0 + local.get $1 + call $~lib/map/Map#get + i32.const 20 + local.get $1 + i32.const 16 + i32.shl + i32.const 16 + i32.shr_s + i32.add + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 19 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $1 i32.const 1 - i32.const -1 - i32.xor - i32.and - local.set $3 - br $while-continue|0 + i32.add + local.set $1 + br $for-loop|3 end end - i32.const 0 - ) - (func $~lib/map/MapEntry#set:value (param $0 i32) (param $1 i64) - local.get $0 - local.get $1 - i64.store offset=8 - ) - (func $~lib/map/MapEntry#set:key (param $0 i32) (param $1 i64) - local.get $0 - local.get $1 - i64.store - ) - (func $~lib/map/MapEntry#set:taggedNext (param $0 i32) (param $1 i32) local.get $0 - local.get $1 - i32.store offset=16 - ) - (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) - (local $9 i32) - (local $10 i32) - (local $11 i32) - (local $12 i64) - (local $13 i64) - (local $14 i32) - (local $15 i32) + call $~lib/map/Map#get:size + i32.const 100 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 21 + i32.const 3 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check + local.get $0 + call $~lib/map/Map#keys + local.tee $1 + i32.store offset=4 global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - local.get $1 - i32.const 1 - i32.add - local.set $2 + local.get $0 + call $~lib/map/Map#values + local.tee $4 + i32.store offset=8 global.get $~lib/memory/__stack_pointer i32.const 0 - local.get $2 - i32.const 4 - i32.mul - call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $3 - i32.store - local.get $2 - i32.const 8 - i32.mul - i32.const 3 - i32.div_s - local.set $4 + call $~lib/map/Map#constructor + local.tee $5 + i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 0 - local.get $4 - i32.const 24 - i32.mul - call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $5 - i32.store offset=4 - local.get $0 - i32.load offset=8 - local.set $6 - local.get $6 - local.get $0 - i32.load offset=16 - i32.const 24 - i32.mul - i32.add + call $~lib/map/Map#constructor + local.tee $6 + i32.store offset=16 + i32.const 0 local.set $7 - local.get $5 - local.set $8 - loop $while-continue|0 - local.get $6 + loop $for-loop|4 local.get $7 - i32.ne - local.set $9 - local.get $9 + local.get $1 + call $~lib/array/Array#get:length + i32.lt_s + local.set $8 + local.get $8 if - local.get $6 + local.get $1 + local.get $7 + call $~lib/array/Array#__get + local.set $9 + local.get $4 + local.get $7 + call $~lib/array/Array#__get local.set $10 + local.get $0 + local.get $9 + call $~lib/map/Map#has + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 31 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 local.get $10 - i32.load offset=16 - i32.const 1 - i32.and + i32.const 20 + i32.sub + call $~lib/map/Map#has i32.eqz if - local.get $8 - local.set $11 - local.get $10 - i64.load - local.set $12 - local.get $11 - local.get $12 - call $~lib/map/MapEntry#set:key - local.get $11 - local.get $10 - i64.load offset=8 - call $~lib/map/MapEntry#set:value - block $~lib/util/hash/HASH|inlined.5 (result i32) - local.get $12 - local.set $13 - i32.const 0 - drop - i32.const 0 - drop - i32.const 0 - drop - i32.const 8 - i32.const 1 - i32.eq - drop - i32.const 8 - i32.const 2 - i32.eq - drop - i32.const 8 - i32.const 4 - i32.eq - drop - i32.const 8 - i32.const 8 - i32.eq - drop - local.get $13 - call $~lib/util/hash/hash64 - br $~lib/util/hash/HASH|inlined.5 - end - local.get $1 - i32.and - local.set $14 - local.get $3 - local.get $14 - i32.const 4 - i32.mul - i32.add - local.set $15 - local.get $11 - local.get $15 - i32.load - call $~lib/map/MapEntry#set:taggedNext - local.get $15 - local.get $8 - i32.store - local.get $8 - i32.const 24 - i32.add - local.set $8 + i32.const 0 + i32.const 544 + i32.const 32 + i32.const 5 + call $~lib/builtins/abort + unreachable end + local.get $5 + local.get $9 + local.get $9 + call $~lib/map/Map#set + drop local.get $6 - i32.const 24 + local.get $10 + i32.const 20 + i32.sub + local.get $10 + i32.const 20 + i32.sub + call $~lib/map/Map#set + drop + local.get $7 + i32.const 1 i32.add - local.set $6 - br $while-continue|0 + local.set $7 + br $for-loop|4 end end - local.get $0 - local.get $3 - call $~lib/map/Map#set:buckets - local.get $0 - local.get $1 - call $~lib/map/Map#set:bucketsMask - local.get $0 local.get $5 - call $~lib/map/Map#set:entries - local.get $0 - local.get $4 - call $~lib/map/Map#set:entriesCapacity - local.get $0 - local.get $0 - i32.load offset=20 - call $~lib/map/Map#set:entriesOffset - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/map/Map#get:size (param $0 i32) (result i32) - local.get $0 - i32.load offset=20 - ) - (func $~lib/map/Map#clear (param $0 i32) - local.get $0 - i32.const 0 - i32.const 4 - i32.const 4 - i32.mul - call $~lib/arraybuffer/ArrayBuffer#constructor - call $~lib/map/Map#set:buckets - local.get $0 - i32.const 4 - i32.const 1 - i32.sub - call $~lib/map/Map#set:bucketsMask - local.get $0 - i32.const 0 - i32.const 4 - i32.const 16 - i32.mul - call $~lib/arraybuffer/ArrayBuffer#constructor - call $~lib/map/Map#set:entries - local.get $0 - i32.const 4 - call $~lib/map/Map#set:entriesCapacity - local.get $0 - i32.const 0 - call $~lib/map/Map#set:entriesOffset - local.get $0 - i32.const 0 - call $~lib/map/Map#set:entriesCount - ) - (func $~lib/map/Map#set:buckets (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - i32.store - local.get $0 - local.get $1 + call $~lib/map/Map#get:size + i32.const 100 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 36 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $6 + call $~lib/map/Map#get:size + i32.const 100 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 37 + i32.const 3 + call $~lib/builtins/abort + unreachable + end i32.const 0 - call $~lib/rt/itcms/__link - ) - (func $~lib/map/Map#set:bucketsMask (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - i32.store offset=4 - ) - (func $~lib/map/Map#set:entries (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - i32.store offset=8 - local.get $0 + local.set $7 + loop $for-loop|6 + local.get $7 + i32.const 16 + i32.shl + i32.const 16 + i32.shr_s + i32.const 50 + i32.lt_s + local.set $10 + local.get $10 + if + local.get $0 + local.get $7 + call $~lib/map/Map#has + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 41 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $7 + call $~lib/map/Map#get + i32.const 20 + local.get $7 + i32.const 16 + i32.shl + i32.const 16 + i32.shr_s + i32.add + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 42 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $7 + call $~lib/map/Map#delete + drop + local.get $0 + local.get $7 + call $~lib/map/Map#has + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 44 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $7 + i32.const 1 + i32.add + local.set $7 + br $for-loop|6 + end + end + local.get $0 + call $~lib/map/Map#get:size + i32.const 50 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 46 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $7 + loop $for-loop|8 + local.get $7 + i32.const 16 + i32.shl + i32.const 16 + i32.shr_s + i32.const 50 + i32.lt_s + local.set $9 + local.get $9 + if + local.get $0 + local.get $7 + call $~lib/map/Map#has + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 50 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $7 + i32.const 10 + local.get $7 + i32.const 16 + i32.shl + i32.const 16 + i32.shr_s + i32.add + call $~lib/map/Map#set + drop + local.get $0 + local.get $7 + call $~lib/map/Map#has + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 52 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $7 + call $~lib/map/Map#delete + drop + local.get $0 + local.get $7 + call $~lib/map/Map#has + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 54 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $7 + i32.const 1 + i32.add + local.set $7 + br $for-loop|8 + end + end + local.get $0 + call $~lib/map/Map#get:size + i32.const 50 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 56 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + call $~lib/map/Map#clear + local.get $0 + call $~lib/map/Map#get:size + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 60 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/map/Map#set:buckets (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + local.get $0 local.get $1 i32.const 0 call $~lib/rt/itcms/__link ) - (func $~lib/map/Map#set:entriesCapacity (param $0 i32) (param $1 i32) + (func $~lib/map/Map#set:bucketsMask (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=4 + ) + (func $~lib/map/Map#set:entries (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=8 + local.get $0 + local.get $1 + i32.const 0 + call $~lib/rt/itcms/__link + ) + (func $~lib/map/Map#set:entriesCapacity (param $0 i32) (param $1 i32) local.get $0 local.get $1 i32.store offset=12 ) - (func $~lib/map/Map#set:entriesOffset (param $0 i32) (param $1 i32) + (func $~lib/map/Map#set:entriesOffset (param $0 i32) (param $1 i32) local.get $0 local.get $1 i32.store offset=16 ) - (func $~lib/map/Map#set:entriesCount (param $0 i32) (param $1 i32) + (func $~lib/map/Map#set:entriesCount (param $0 i32) (param $1 i32) local.get $0 local.get $1 i32.store offset=20 ) - (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 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -8231,7 +8349,7 @@ local.get $4 if local.get $3 - i32.load offset=12 + i32.load offset=8 local.set $5 local.get $5 i32.const 1 @@ -8239,9 +8357,11 @@ i32.eqz if (result i32) local.get $3 - i64.load + i32.load16_u local.get $1 - i64.eq + i32.const 65535 + i32.and + i32.eq else i32.const 0 end @@ -8260,22 +8380,53 @@ end i32.const 0 ) - (func $~lib/map/MapEntry#set:value (param $0 i32) (param $1 i32) + (func $~lib/map/Map#has (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) local.get $0 local.get $1 - i32.store offset=8 + block $~lib/util/hash/HASH|inlined.0 (result i32) + local.get $1 + local.set $2 + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 2 + i32.const 1 + i32.eq + drop + i32.const 2 + i32.const 2 + i32.eq + drop + local.get $2 + i32.const 65535 + i32.and + call $~lib/util/hash/hash16 + br $~lib/util/hash/HASH|inlined.0 + end + call $~lib/map/Map#find + i32.const 0 + i32.ne ) - (func $~lib/map/MapEntry#set:key (param $0 i32) (param $1 i64) + (func $~lib/map/MapEntry#set:value (param $0 i32) (param $1 i32) local.get $0 local.get $1 - i64.store + i32.store offset=4 ) - (func $~lib/map/MapEntry#set:taggedNext (param $0 i32) (param $1 i32) + (func $~lib/map/MapEntry#set:key (param $0 i32) (param $1 i32) local.get $0 local.get $1 - i32.store offset=12 + i32.store16 ) - (func $~lib/map/Map#rehash (param $0 i32) (param $1 i32) + (func $~lib/map/MapEntry#set:taggedNext (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=8 + ) + (func $~lib/map/Map#rehash (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -8286,10 +8437,9 @@ (local $9 i32) (local $10 i32) (local $11 i32) - (local $12 i64) - (local $13 i64) + (local $12 i32) + (local $13 i32) (local $14 i32) - (local $15 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -8319,7 +8469,7 @@ global.get $~lib/memory/__stack_pointer i32.const 0 local.get $4 - i32.const 16 + i32.const 12 i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor local.tee $5 @@ -8330,7 +8480,7 @@ local.get $6 local.get $0 i32.load offset=16 - i32.const 16 + i32.const 12 i32.mul i32.add local.set $7 @@ -8346,7 +8496,7 @@ local.get $6 local.set $10 local.get $10 - i32.load offset=12 + i32.load offset=8 i32.const 1 i32.and i32.eqz @@ -8354,16 +8504,16 @@ local.get $8 local.set $11 local.get $10 - i64.load + i32.load16_u local.set $12 local.get $11 local.get $12 - call $~lib/map/MapEntry#set:key + call $~lib/map/MapEntry#set:key local.get $11 local.get $10 - i32.load offset=8 - call $~lib/map/MapEntry#set:value - block $~lib/util/hash/HASH|inlined.2 (result i32) + i32.load offset=4 + call $~lib/map/MapEntry#set:value + block $~lib/util/hash/HASH|inlined.2 (result i32) local.get $12 local.set $13 i32.const 0 @@ -8372,49 +8522,41 @@ drop i32.const 0 drop - i32.const 8 + i32.const 2 i32.const 1 i32.eq drop - i32.const 8 i32.const 2 - i32.eq - drop - i32.const 8 - i32.const 4 - i32.eq - drop - i32.const 8 - i32.const 8 + i32.const 2 i32.eq drop local.get $13 - call $~lib/util/hash/hash64 - br $~lib/util/hash/HASH|inlined.2 + call $~lib/util/hash/hash16 + br $~lib/util/hash/HASH|inlined.2 end local.get $1 i32.and - local.set $14 + local.set $13 local.get $3 - local.get $14 + local.get $13 i32.const 4 i32.mul i32.add - local.set $15 + local.set $14 local.get $11 - local.get $15 + local.get $14 i32.load - call $~lib/map/MapEntry#set:taggedNext - local.get $15 + call $~lib/map/MapEntry#set:taggedNext + local.get $14 local.get $8 i32.store local.get $8 - i32.const 16 + i32.const 12 i32.add local.set $8 end local.get $6 - i32.const 16 + i32.const 12 i32.add local.set $6 br $while-continue|0 @@ -8422,30 +8564,73 @@ end local.get $0 local.get $3 - call $~lib/map/Map#set:buckets + call $~lib/map/Map#set:buckets local.get $0 local.get $1 - call $~lib/map/Map#set:bucketsMask + call $~lib/map/Map#set:bucketsMask local.get $0 local.get $5 - call $~lib/map/Map#set:entries + call $~lib/map/Map#set:entries local.get $0 local.get $4 - call $~lib/map/Map#set:entriesCapacity + call $~lib/map/Map#set:entriesCapacity local.get $0 local.get $0 i32.load offset=20 - call $~lib/map/Map#set:entriesOffset + call $~lib/map/Map#set:entriesOffset global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/map/Map#get:size (param $0 i32) (result i32) + (func $~lib/map/Map#get (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + local.get $0 + local.get $1 + block $~lib/util/hash/HASH|inlined.3 (result i32) + local.get $1 + local.set $2 + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 2 + i32.const 1 + i32.eq + drop + i32.const 2 + i32.const 2 + i32.eq + drop + local.get $2 + i32.const 65535 + i32.and + call $~lib/util/hash/hash16 + br $~lib/util/hash/HASH|inlined.3 + end + call $~lib/map/Map#find + local.set $3 + local.get $3 + i32.eqz + if + i32.const 592 + i32.const 656 + i32.const 105 + i32.const 17 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.load offset=4 + ) + (func $~lib/map/Map#get:size (param $0 i32) (result i32) local.get $0 i32.load offset=20 ) - (func $~lib/array/Array#set:buffer (param $0 i32) (param $1 i32) + (func $~lib/array/Array#set:buffer (param $0 i32) (param $1 i32) local.get $0 local.get $1 i32.store @@ -8454,43 +8639,77 @@ i32.const 0 call $~lib/rt/itcms/__link ) - (func $~lib/array/Array#set:dataStart (param $0 i32) (param $1 i32) + (func $~lib/array/Array#set:dataStart (param $0 i32) (param $1 i32) local.get $0 local.get $1 i32.store offset=4 ) - (func $~lib/array/Array#set:byteLength (param $0 i32) (param $1 i32) + (func $~lib/array/Array#set:byteLength (param $0 i32) (param $1 i32) local.get $0 local.get $1 i32.store offset=8 ) - (func $~lib/array/Array#set:length_ (param $0 i32) (param $1 i32) + (func $~lib/array/Array#set:length_ (param $0 i32) (param $1 i32) local.get $0 local.get $1 i32.store offset=12 ) - (func $~lib/array/Array#__uset (param $0 i32) (param $1 i32) (param $2 i64) + (func $~lib/array/Array#__uset (param $0 i32) (param $1 i32) (param $2 i32) local.get $0 i32.load offset=4 local.get $1 - i32.const 3 + i32.const 1 i32.shl i32.add local.get $2 - i64.store + i32.store16 i32.const 0 drop ) - (func $~lib/array/Array#set:length (param $0 i32) (param $1 i32) + (func $~lib/array/Array#__set (param $0 i32) (param $1 i32) (param $2 i32) + 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 224 + i32.const 704 + i32.const 108 + i32.const 22 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $1 + i32.const 1 + i32.add + i32.const 1 + call $~lib/array/ensureSize + local.get $0 + local.get $1 + i32.const 1 + i32.add + call $~lib/array/Array#set:length_ + end local.get $0 local.get $1 - i32.const 3 + local.get $2 + call $~lib/array/Array#__uset + ) + (func $~lib/array/Array#set:length (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.const 1 call $~lib/array/ensureSize local.get $0 local.get $1 - call $~lib/array/Array#set:length_ + call $~lib/array/Array#set:length_ ) - (func $~lib/map/Map#set:buckets (param $0 i32) (param $1 i32) + (func $~lib/map/Map#set:buckets (param $0 i32) (param $1 i32) local.get $0 local.get $1 i32.store @@ -8499,12 +8718,12 @@ i32.const 0 call $~lib/rt/itcms/__link ) - (func $~lib/map/Map#set:bucketsMask (param $0 i32) (param $1 i32) + (func $~lib/map/Map#set:bucketsMask (param $0 i32) (param $1 i32) local.get $0 local.get $1 i32.store offset=4 ) - (func $~lib/map/Map#set:entries (param $0 i32) (param $1 i32) + (func $~lib/map/Map#set:entries (param $0 i32) (param $1 i32) local.get $0 local.get $1 i32.store offset=8 @@ -8513,27 +8732,27 @@ i32.const 0 call $~lib/rt/itcms/__link ) - (func $~lib/map/Map#set:entriesCapacity (param $0 i32) (param $1 i32) + (func $~lib/map/Map#set:entriesCapacity (param $0 i32) (param $1 i32) local.get $0 local.get $1 i32.store offset=12 ) - (func $~lib/map/Map#set:entriesOffset (param $0 i32) (param $1 i32) + (func $~lib/map/Map#set:entriesOffset (param $0 i32) (param $1 i32) local.get $0 local.get $1 i32.store offset=16 ) - (func $~lib/map/Map#set:entriesCount (param $0 i32) (param $1 i32) + (func $~lib/map/Map#set:entriesCount (param $0 i32) (param $1 i32) local.get $0 local.get $1 i32.store offset=20 ) - (func $~lib/array/Array#get:length (param $0 i32) (result i32) + (func $~lib/array/Array#get:length (param $0 i32) (result i32) local.get $0 i32.load offset=12 ) - (func $~lib/array/Array#__get (param $0 i32) (param $1 i32) (result i64) - (local $2 i64) + (func $~lib/array/Array#__get (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) local.get $1 local.get $0 i32.load offset=12 @@ -8549,16 +8768,16 @@ local.get $0 i32.load offset=4 local.get $1 - i32.const 3 + i32.const 1 i32.shl i32.add - i64.load + i32.load16_u local.set $2 i32.const 0 drop local.get $2 ) - (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 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -8579,7 +8798,7 @@ local.get $4 if local.get $3 - i32.load offset=16 + i32.load offset=4 local.set $5 local.get $5 i32.const 1 @@ -8587,9 +8806,11 @@ i32.eqz if (result i32) local.get $3 - i64.load + i32.load16_u local.get $1 - i64.eq + i32.const 65535 + i32.and + i32.eq else i32.const 0 end @@ -8608,22 +8829,22 @@ end i32.const 0 ) - (func $~lib/map/MapEntry#set:value (param $0 i32) (param $1 i64) + (func $~lib/map/MapEntry#set:value (param $0 i32) (param $1 i32) local.get $0 local.get $1 - i64.store offset=8 + i32.store16 offset=2 ) - (func $~lib/map/MapEntry#set:key (param $0 i32) (param $1 i64) + (func $~lib/map/MapEntry#set:key (param $0 i32) (param $1 i32) local.get $0 local.get $1 - i64.store + i32.store16 ) - (func $~lib/map/MapEntry#set:taggedNext (param $0 i32) (param $1 i32) + (func $~lib/map/MapEntry#set:taggedNext (param $0 i32) (param $1 i32) local.get $0 local.get $1 - i32.store offset=16 + i32.store offset=4 ) - (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) @@ -8634,10 +8855,9 @@ (local $9 i32) (local $10 i32) (local $11 i32) - (local $12 i64) - (local $13 i64) + (local $12 i32) + (local $13 i32) (local $14 i32) - (local $15 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -8667,7 +8887,7 @@ global.get $~lib/memory/__stack_pointer i32.const 0 local.get $4 - i32.const 24 + i32.const 8 i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor local.tee $5 @@ -8678,7 +8898,7 @@ local.get $6 local.get $0 i32.load offset=16 - i32.const 24 + i32.const 8 i32.mul i32.add local.set $7 @@ -8694,7 +8914,7 @@ local.get $6 local.set $10 local.get $10 - i32.load offset=16 + i32.load offset=4 i32.const 1 i32.and i32.eqz @@ -8702,16 +8922,16 @@ local.get $8 local.set $11 local.get $10 - i64.load + i32.load16_u local.set $12 local.get $11 local.get $12 - call $~lib/map/MapEntry#set:key + call $~lib/map/MapEntry#set:key local.get $11 local.get $10 - i64.load offset=8 - call $~lib/map/MapEntry#set:value - block $~lib/util/hash/HASH|inlined.5 (result i32) + i32.load16_u offset=2 + call $~lib/map/MapEntry#set:value + block $~lib/util/hash/HASH|inlined.5 (result i32) local.get $12 local.set $13 i32.const 0 @@ -8720,49 +8940,41 @@ drop i32.const 0 drop - i32.const 8 + i32.const 2 i32.const 1 i32.eq drop - i32.const 8 i32.const 2 - i32.eq - drop - i32.const 8 - i32.const 4 - i32.eq - drop - i32.const 8 - i32.const 8 + i32.const 2 i32.eq drop local.get $13 - call $~lib/util/hash/hash64 - br $~lib/util/hash/HASH|inlined.5 + call $~lib/util/hash/hash16 + br $~lib/util/hash/HASH|inlined.5 end local.get $1 i32.and - local.set $14 + local.set $13 local.get $3 - local.get $14 + local.get $13 i32.const 4 i32.mul i32.add - local.set $15 + local.set $14 local.get $11 - local.get $15 + local.get $14 i32.load - call $~lib/map/MapEntry#set:taggedNext - local.get $15 + call $~lib/map/MapEntry#set:taggedNext + local.get $14 local.get $8 i32.store local.get $8 - i32.const 24 + i32.const 8 i32.add local.set $8 end local.get $6 - i32.const 24 + i32.const 8 i32.add local.set $6 br $while-continue|0 @@ -8770,163 +8982,150 @@ end local.get $0 local.get $3 - call $~lib/map/Map#set:buckets + call $~lib/map/Map#set:buckets local.get $0 local.get $1 - call $~lib/map/Map#set:bucketsMask + call $~lib/map/Map#set:bucketsMask local.get $0 local.get $5 - call $~lib/map/Map#set:entries + call $~lib/map/Map#set:entries local.get $0 local.get $4 - call $~lib/map/Map#set:entriesCapacity + call $~lib/map/Map#set:entriesCapacity local.get $0 local.get $0 i32.load offset=20 - call $~lib/map/Map#set:entriesOffset + call $~lib/map/Map#set:entriesOffset global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/map/Map#get:size (param $0 i32) (result i32) + (func $~lib/map/Map#get:size (param $0 i32) (result i32) local.get $0 i32.load offset=20 ) - (func $~lib/map/Map#clear (param $0 i32) + (func $~lib/map/Map#delete (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $0 + local.get $1 + block $~lib/util/hash/HASH|inlined.6 (result i32) + local.get $1 + local.set $2 + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 2 + i32.const 1 + i32.eq + drop + i32.const 2 + i32.const 2 + i32.eq + drop + local.get $2 + i32.const 65535 + i32.and + call $~lib/util/hash/hash16 + br $~lib/util/hash/HASH|inlined.6 + end + call $~lib/map/Map#find + local.set $3 + local.get $3 + i32.eqz + if + i32.const 0 + return + end + local.get $3 + local.get $3 + i32.load offset=8 + i32.const 1 + i32.or + call $~lib/map/MapEntry#set:taggedNext + local.get $0 + local.get $0 + i32.load offset=20 + i32.const 1 + i32.sub + call $~lib/map/Map#set:entriesCount + local.get $0 + i32.load offset=4 + i32.const 1 + i32.shr_u + local.set $4 + local.get $4 + i32.const 1 + i32.add + i32.const 4 + local.tee $2 + local.get $0 + i32.load offset=20 + local.tee $5 + local.get $2 + local.get $5 + i32.gt_u + select + i32.ge_u + if (result i32) + local.get $0 + i32.load offset=20 + 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 $0 + local.get $4 + call $~lib/map/Map#rehash + end + i32.const 1 + ) + (func $~lib/map/Map#clear (param $0 i32) local.get $0 i32.const 0 i32.const 4 i32.const 4 i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor - call $~lib/map/Map#set:buckets + call $~lib/map/Map#set:buckets local.get $0 i32.const 4 i32.const 1 i32.sub - call $~lib/map/Map#set:bucketsMask + call $~lib/map/Map#set:bucketsMask local.get $0 i32.const 0 i32.const 4 - i32.const 16 + i32.const 12 i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor - call $~lib/map/Map#set:entries + call $~lib/map/Map#set:entries local.get $0 i32.const 4 - call $~lib/map/Map#set:entriesCapacity - local.get $0 - i32.const 0 - call $~lib/map/Map#set:entriesOffset - local.get $0 - i32.const 0 - call $~lib/map/Map#set:entriesCount - ) - (func $~lib/map/Map#set:buckets (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - i32.store - local.get $0 - local.get $1 - i32.const 0 - call $~lib/rt/itcms/__link - ) - (func $~lib/map/Map#set:bucketsMask (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - i32.store offset=4 - ) - (func $~lib/map/Map#set:entries (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - i32.store offset=8 + call $~lib/map/Map#set:entriesCapacity local.get $0 - local.get $1 i32.const 0 - call $~lib/rt/itcms/__link - ) - (func $~lib/map/Map#set:entriesCapacity (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - i32.store offset=12 - ) - (func $~lib/map/Map#set:entriesOffset (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - i32.store offset=16 - ) - (func $~lib/map/Map#set:entriesCount (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - i32.store offset=20 - ) - (func $~lib/map/Map#find (param $0 i32) (param $1 f32) (param $2 i32) (result i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - local.get $0 - i32.load - local.get $2 + call $~lib/map/Map#set:entriesOffset local.get $0 - i32.load offset=4 - i32.and - i32.const 4 - i32.mul - i32.add - i32.load - local.set $3 - loop $while-continue|0 - local.get $3 - local.set $4 - local.get $4 - if - local.get $3 - i32.load offset=8 - local.set $5 - local.get $5 - i32.const 1 - i32.and - i32.eqz - if (result i32) - local.get $3 - f32.load - local.get $1 - f32.eq - else - i32.const 0 - end - if - local.get $3 - return - end - local.get $5 - i32.const 1 - i32.const -1 - i32.xor - i32.and - local.set $3 - br $while-continue|0 - end - end i32.const 0 + call $~lib/map/Map#set:entriesCount ) - (func $~lib/map/MapEntry#set:value (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - i32.store offset=4 - ) - (func $~lib/map/MapEntry#set:key (param $0 i32) (param $1 f32) - local.get $0 - local.get $1 - f32.store - ) - (func $~lib/map/MapEntry#set:taggedNext (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - i32.store offset=8 - ) - (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) @@ -8936,626 +9135,704 @@ (local $8 i32) (local $9 i32) (local $10 i32) - (local $11 i32) - (local $12 f32) - (local $13 f32) - (local $14 i32) - (local $15 i32) global.get $~lib/memory/__stack_pointer - i32.const 8 + 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 - local.get $1 - i32.const 1 - i32.add - local.set $2 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 global.get $~lib/memory/__stack_pointer i32.const 0 - local.get $2 - i32.const 4 - i32.mul - call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $3 - i32.store - local.get $2 - i32.const 8 - i32.mul - i32.const 3 - i32.div_s - local.set $4 + i32.store offset=16 global.get $~lib/memory/__stack_pointer i32.const 0 - local.get $4 - i32.const 12 - i32.mul - call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $5 - i32.store offset=4 - local.get $0 - i32.load offset=8 - local.set $6 - local.get $6 - local.get $0 - i32.load offset=16 - i32.const 12 - i32.mul - i32.add - local.set $7 - local.get $5 - local.set $8 - loop $while-continue|0 - local.get $6 - local.get $7 - i32.ne - local.set $9 - local.get $9 + call $~lib/map/Map#constructor + local.tee $0 + i32.store + i32.const 0 + local.set $1 + loop $for-loop|1 + local.get $1 + i32.const 65535 + i32.and + i32.const 100 + i32.lt_u + local.set $3 + local.get $3 if - local.get $6 - local.set $10 - local.get $10 - i32.load offset=8 - i32.const 1 + local.get $0 + local.get $1 + call $~lib/map/Map#has + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 6 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $1 + i32.const 10 + local.get $1 + i32.const 65535 i32.and + i32.add + call $~lib/map/Map#set + drop + local.get $0 + local.get $1 + call $~lib/map/Map#has i32.eqz if - local.get $8 - local.set $11 - local.get $10 - f32.load - local.set $12 - local.get $11 - local.get $12 - call $~lib/map/MapEntry#set:key - local.get $11 - local.get $10 - i32.load offset=4 - call $~lib/map/MapEntry#set:value - block $~lib/util/hash/HASH|inlined.2 (result i32) - local.get $12 - local.set $13 - i32.const 0 - drop - i32.const 0 - drop - i32.const 1 - drop - i32.const 4 - i32.const 4 - i32.eq - drop - local.get $13 - i32.reinterpret_f32 - call $~lib/util/hash/hash32 - br $~lib/util/hash/HASH|inlined.2 - end - local.get $1 - i32.and - local.set $14 - local.get $3 - local.get $14 - i32.const 4 - i32.mul - i32.add - local.set $15 - local.get $11 - local.get $15 - i32.load - call $~lib/map/MapEntry#set:taggedNext - local.get $15 - local.get $8 - i32.store - local.get $8 - i32.const 12 - i32.add - local.set $8 + i32.const 0 + i32.const 544 + i32.const 8 + i32.const 5 + call $~lib/builtins/abort + unreachable end - local.get $6 - i32.const 12 + local.get $0 + local.get $1 + call $~lib/map/Map#get + i32.const 10 + local.get $1 + i32.const 65535 + i32.and i32.add - local.set $6 - br $while-continue|0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 9 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|1 end end local.get $0 - local.get $3 - call $~lib/map/Map#set:buckets - local.get $0 - local.get $1 - call $~lib/map/Map#set:bucketsMask - local.get $0 - local.get $5 - call $~lib/map/Map#set:entries - local.get $0 - local.get $4 - call $~lib/map/Map#set:entriesCapacity - local.get $0 - local.get $0 - i32.load offset=20 - call $~lib/map/Map#set:entriesOffset - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/map/Map#get:size (param $0 i32) (result i32) - local.get $0 - i32.load offset=20 - ) - (func $~lib/array/Array#set:buffer (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - i32.store - local.get $0 - local.get $1 - i32.const 0 - call $~lib/rt/itcms/__link - ) - (func $~lib/array/Array#set:dataStart (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - i32.store offset=4 - ) - (func $~lib/array/Array#set:byteLength (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - i32.store offset=8 - ) - (func $~lib/array/Array#set:length_ (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - i32.store offset=12 - ) - (func $~lib/array/Array#__uset (param $0 i32) (param $1 i32) (param $2 f32) - local.get $0 - i32.load offset=4 - local.get $1 - i32.const 2 - i32.shl - i32.add - local.get $2 - f32.store - i32.const 0 - drop - ) - (func $~lib/array/Array#set:length (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - i32.const 2 - call $~lib/array/ensureSize - local.get $0 - local.get $1 - call $~lib/array/Array#set:length_ - ) - (func $~lib/map/Map#set:buckets (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - i32.store - local.get $0 - local.get $1 + call $~lib/map/Map#get:size + i32.const 100 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 11 + i32.const 3 + call $~lib/builtins/abort + unreachable + end i32.const 0 - call $~lib/rt/itcms/__link - ) - (func $~lib/map/Map#set:bucketsMask (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - i32.store offset=4 - ) - (func $~lib/map/Map#set:entries (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - i32.store offset=8 - local.get $0 - local.get $1 - i32.const 0 - call $~lib/rt/itcms/__link - ) - (func $~lib/map/Map#set:entriesCapacity (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - i32.store offset=12 - ) - (func $~lib/map/Map#set:entriesOffset (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - i32.store offset=16 - ) - (func $~lib/map/Map#set:entriesCount (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - i32.store offset=20 - ) - (func $~lib/array/Array#get:length (param $0 i32) (result i32) - local.get $0 - i32.load offset=12 - ) - (func $~lib/array/Array#__get (param $0 i32) (param $1 i32) (result f32) - (local $2 f32) - local.get $1 - local.get $0 - i32.load offset=12 - i32.ge_u - if - i32.const 224 - i32.const 704 - i32.const 92 - i32.const 42 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load offset=4 - local.get $1 - i32.const 2 - i32.shl - i32.add - f32.load - local.set $2 - i32.const 0 - drop - local.get $2 - ) - (func $~lib/map/Map#find (param $0 i32) (param $1 f32) (param $2 i32) (result i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - local.get $0 - i32.load - local.get $2 - local.get $0 - i32.load offset=4 - i32.and - i32.const 4 - i32.mul - i32.add - i32.load - local.set $3 - loop $while-continue|0 - local.get $3 + local.set $1 + loop $for-loop|3 + local.get $1 + i32.const 65535 + i32.and + i32.const 100 + i32.lt_u local.set $4 local.get $4 if - local.get $3 - i32.load offset=8 - local.set $5 - local.get $5 - i32.const 1 + local.get $0 + local.get $1 + call $~lib/map/Map#has + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 15 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $1 + call $~lib/map/Map#get + i32.const 10 + local.get $1 + i32.const 65535 i32.and + i32.add + i32.eq i32.eqz - if (result i32) - local.get $3 - f32.load - local.get $1 - f32.eq - else + if i32.const 0 + i32.const 544 + i32.const 16 + i32.const 5 + call $~lib/builtins/abort + unreachable end + local.get $0 + local.get $1 + i32.const 20 + local.get $1 + i32.const 65535 + i32.and + i32.add + call $~lib/map/Map#set + drop + local.get $0 + local.get $1 + call $~lib/map/Map#has + i32.eqz if - local.get $3 - return + i32.const 0 + i32.const 544 + i32.const 18 + i32.const 5 + call $~lib/builtins/abort + unreachable end - local.get $5 - i32.const 1 - i32.const -1 - i32.xor + local.get $0 + local.get $1 + call $~lib/map/Map#get + i32.const 20 + local.get $1 + i32.const 65535 i32.and - local.set $3 - br $while-continue|0 + i32.add + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 19 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|3 end end - i32.const 0 - ) - (func $~lib/map/MapEntry#set:value (param $0 i32) (param $1 f32) local.get $0 - local.get $1 - f32.store offset=4 - ) - (func $~lib/map/MapEntry#set:key (param $0 i32) (param $1 f32) + call $~lib/map/Map#get:size + i32.const 100 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 21 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $1 - f32.store - ) - (func $~lib/map/MapEntry#set:taggedNext (param $0 i32) (param $1 i32) + call $~lib/map/Map#keys + local.tee $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $1 + call $~lib/map/Map#values + local.tee $4 i32.store offset=8 - ) - (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) - (local $9 i32) - (local $10 i32) - (local $11 i32) - (local $12 f32) - (local $13 f32) - (local $14 i32) - (local $15 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 $1 - i32.const 1 - i32.add - local.set $2 global.get $~lib/memory/__stack_pointer i32.const 0 - local.get $2 - i32.const 4 - i32.mul - call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $3 - i32.store - local.get $2 - i32.const 8 - i32.mul - i32.const 3 - i32.div_s - local.set $4 + call $~lib/map/Map#constructor + local.tee $5 + i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 0 - local.get $4 - i32.const 12 - i32.mul - call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $5 - i32.store offset=4 - local.get $0 - i32.load offset=8 - local.set $6 - local.get $6 - local.get $0 - i32.load offset=16 - i32.const 12 - i32.mul - i32.add + call $~lib/map/Map#constructor + local.tee $6 + i32.store offset=16 + i32.const 0 local.set $7 - local.get $5 - local.set $8 - loop $while-continue|0 - local.get $6 + loop $for-loop|4 local.get $7 - i32.ne - local.set $9 - local.get $9 + local.get $1 + call $~lib/array/Array#get:length + i32.lt_s + local.set $8 + local.get $8 if - local.get $6 + local.get $1 + local.get $7 + call $~lib/array/Array#__get + local.set $9 + local.get $4 + local.get $7 + call $~lib/array/Array#__get local.set $10 + local.get $0 + local.get $9 + call $~lib/map/Map#has + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 31 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 local.get $10 - i32.load offset=8 - i32.const 1 - i32.and + i32.const 20 + i32.sub + call $~lib/map/Map#has i32.eqz if - local.get $8 - local.set $11 - local.get $10 - f32.load - local.set $12 - local.get $11 - local.get $12 - call $~lib/map/MapEntry#set:key - local.get $11 - local.get $10 - f32.load offset=4 - call $~lib/map/MapEntry#set:value - block $~lib/util/hash/HASH|inlined.5 (result i32) - local.get $12 - local.set $13 - i32.const 0 - drop - i32.const 0 - drop - i32.const 1 - drop - i32.const 4 - i32.const 4 - i32.eq - drop - local.get $13 - i32.reinterpret_f32 - call $~lib/util/hash/hash32 - br $~lib/util/hash/HASH|inlined.5 - end - local.get $1 - i32.and - local.set $14 - local.get $3 - local.get $14 - i32.const 4 - i32.mul - i32.add - local.set $15 - local.get $11 - local.get $15 - i32.load - call $~lib/map/MapEntry#set:taggedNext - local.get $15 - local.get $8 - i32.store - local.get $8 - i32.const 12 - i32.add - local.set $8 + i32.const 0 + i32.const 544 + i32.const 32 + i32.const 5 + call $~lib/builtins/abort + unreachable end + local.get $5 + local.get $9 + local.get $9 + call $~lib/map/Map#set + drop local.get $6 - i32.const 12 + local.get $10 + i32.const 20 + i32.sub + local.get $10 + i32.const 20 + i32.sub + call $~lib/map/Map#set + drop + local.get $7 + i32.const 1 i32.add - local.set $6 - br $while-continue|0 + local.set $7 + br $for-loop|4 end end - local.get $0 - local.get $3 - call $~lib/map/Map#set:buckets - local.get $0 - local.get $1 - call $~lib/map/Map#set:bucketsMask - local.get $0 local.get $5 - call $~lib/map/Map#set:entries - local.get $0 - local.get $4 - call $~lib/map/Map#set:entriesCapacity - local.get $0 - local.get $0 - i32.load offset=20 - call $~lib/map/Map#set:entriesOffset - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/map/Map#get:size (param $0 i32) (result i32) - local.get $0 - i32.load offset=20 - ) - (func $~lib/map/Map#clear (param $0 i32) - local.get $0 + call $~lib/map/Map#get:size + i32.const 100 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 36 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $6 + call $~lib/map/Map#get:size + i32.const 100 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 37 + i32.const 3 + call $~lib/builtins/abort + unreachable + end i32.const 0 - i32.const 4 - i32.const 4 - i32.mul - call $~lib/arraybuffer/ArrayBuffer#constructor - call $~lib/map/Map#set:buckets - local.get $0 - i32.const 4 - i32.const 1 - i32.sub - call $~lib/map/Map#set:bucketsMask + local.set $7 + loop $for-loop|6 + local.get $7 + i32.const 65535 + i32.and + i32.const 50 + i32.lt_u + local.set $10 + local.get $10 + if + local.get $0 + local.get $7 + call $~lib/map/Map#has + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 41 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $7 + call $~lib/map/Map#get + i32.const 20 + local.get $7 + i32.const 65535 + i32.and + i32.add + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 42 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $7 + call $~lib/map/Map#delete + drop + local.get $0 + local.get $7 + call $~lib/map/Map#has + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 44 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $7 + i32.const 1 + i32.add + local.set $7 + br $for-loop|6 + end + end local.get $0 + call $~lib/map/Map#get:size + i32.const 50 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 46 + i32.const 3 + call $~lib/builtins/abort + unreachable + end i32.const 0 - i32.const 4 - i32.const 12 - i32.mul - call $~lib/arraybuffer/ArrayBuffer#constructor - call $~lib/map/Map#set:entries - local.get $0 - i32.const 4 - call $~lib/map/Map#set:entriesCapacity - local.get $0 - i32.const 0 - call $~lib/map/Map#set:entriesOffset - local.get $0 - i32.const 0 - call $~lib/map/Map#set:entriesCount - ) - (func $~lib/map/Map#set:buckets (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - i32.store - local.get $0 - local.get $1 - i32.const 0 - call $~lib/rt/itcms/__link - ) - (func $~lib/map/Map#set:bucketsMask (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - i32.store offset=4 - ) - (func $~lib/map/Map#set:entries (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - i32.store offset=8 - local.get $0 - local.get $1 - i32.const 0 - call $~lib/rt/itcms/__link - ) - (func $~lib/map/Map#set:entriesCapacity (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - i32.store offset=12 - ) - (func $~lib/map/Map#set:entriesOffset (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - i32.store offset=16 - ) - (func $~lib/map/Map#set:entriesCount (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - i32.store offset=20 - ) - (func $~lib/map/Map#find (param $0 i32) (param $1 f64) (param $2 i32) (result i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - local.get $0 - i32.load - local.get $2 - local.get $0 - i32.load offset=4 - i32.and - i32.const 4 - i32.mul - i32.add - i32.load - local.set $3 - loop $while-continue|0 - local.get $3 - local.set $4 - local.get $4 + local.set $7 + loop $for-loop|8 + local.get $7 + i32.const 65535 + i32.and + i32.const 50 + i32.lt_u + local.set $9 + local.get $9 if - local.get $3 - i32.load offset=12 - local.set $5 - local.get $5 - i32.const 1 + local.get $0 + local.get $7 + call $~lib/map/Map#has + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 50 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $7 + i32.const 10 + local.get $7 + i32.const 65535 i32.and + i32.add + call $~lib/map/Map#set + drop + local.get $0 + local.get $7 + call $~lib/map/Map#has i32.eqz - if (result i32) - local.get $3 - f64.load - local.get $1 - f64.eq - else + if i32.const 0 + i32.const 544 + i32.const 52 + i32.const 5 + call $~lib/builtins/abort + unreachable end + local.get $0 + local.get $7 + call $~lib/map/Map#delete + drop + local.get $0 + local.get $7 + call $~lib/map/Map#has + i32.eqz + i32.eqz if - local.get $3 - return + i32.const 0 + i32.const 544 + i32.const 54 + i32.const 5 + call $~lib/builtins/abort + unreachable end - local.get $5 + local.get $7 i32.const 1 - i32.const -1 - i32.xor - i32.and - local.set $3 - br $while-continue|0 + i32.add + local.set $7 + br $for-loop|8 end end + local.get $0 + call $~lib/map/Map#get:size + i32.const 50 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 56 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + call $~lib/map/Map#clear + local.get $0 + call $~lib/map/Map#get:size i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 60 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.add + global.set $~lib/memory/__stack_pointer ) - (func $~lib/map/MapEntry#set:value (param $0 i32) (param $1 i32) + (func $~lib/map/Map#has (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) local.get $0 local.get $1 - i32.store offset=8 + block $~lib/util/hash/HASH|inlined.2 (result i32) + local.get $1 + local.set $2 + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 4 + i32.const 1 + i32.eq + drop + i32.const 4 + i32.const 2 + i32.eq + drop + i32.const 4 + i32.const 4 + i32.eq + drop + local.get $2 + call $~lib/util/hash/hash32 + br $~lib/util/hash/HASH|inlined.2 + end + call $~lib/map/Map#find + i32.const 0 + i32.ne ) - (func $~lib/map/MapEntry#set:key (param $0 i32) (param $1 f64) + (func $~lib/map/Map#get (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) local.get $0 local.get $1 - f64.store + block $~lib/util/hash/HASH|inlined.3 (result i32) + local.get $1 + local.set $2 + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 4 + i32.const 1 + i32.eq + drop + i32.const 4 + i32.const 2 + i32.eq + drop + i32.const 4 + i32.const 4 + i32.eq + drop + local.get $2 + call $~lib/util/hash/hash32 + br $~lib/util/hash/HASH|inlined.3 + end + call $~lib/map/Map#find + local.set $3 + local.get $3 + i32.eqz + if + i32.const 592 + i32.const 656 + i32.const 105 + i32.const 17 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.load offset=4 ) - (func $~lib/map/MapEntry#set:taggedNext (param $0 i32) (param $1 i32) + (func $~lib/array/Array#get:length (param $0 i32) (result i32) local.get $0 - local.get $1 - i32.store offset=12 + i32.load offset=12 ) - (func $~lib/map/Map#rehash (param $0 i32) (param $1 i32) + (func $~lib/map/Map#delete (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $0 + local.get $1 + block $~lib/util/hash/HASH|inlined.4 (result i32) + local.get $1 + local.set $2 + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 4 + i32.const 1 + i32.eq + drop + i32.const 4 + i32.const 2 + i32.eq + drop + i32.const 4 + i32.const 4 + i32.eq + drop + local.get $2 + call $~lib/util/hash/hash32 + br $~lib/util/hash/HASH|inlined.4 + end + call $~lib/map/Map#find + local.set $3 + local.get $3 + i32.eqz + if + i32.const 0 + return + end + local.get $3 + local.get $3 + i32.load offset=8 + i32.const 1 + i32.or + call $~lib/map/MapEntry#set:taggedNext + local.get $0 + local.get $0 + i32.load offset=20 + i32.const 1 + i32.sub + call $~lib/map/Map#set:entriesCount + local.get $0 + i32.load offset=4 + i32.const 1 + i32.shr_u + local.set $4 + local.get $4 + i32.const 1 + i32.add + i32.const 4 + local.tee $2 + local.get $0 + i32.load offset=20 + local.tee $5 + local.get $2 + local.get $5 + i32.gt_u + select + i32.ge_u + if (result i32) + local.get $0 + i32.load offset=20 + 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 $0 + local.get $4 + call $~lib/map/Map#rehash + end + i32.const 1 + ) + (func $~lib/map/Map#clear (param $0 i32) + local.get $0 + i32.const 0 + i32.const 4 + i32.const 4 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + call $~lib/map/Map#set:buckets + local.get $0 + i32.const 4 + i32.const 1 + i32.sub + call $~lib/map/Map#set:bucketsMask + local.get $0 + i32.const 0 + i32.const 4 + i32.const 12 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + call $~lib/map/Map#set:entries + local.get $0 + i32.const 4 + call $~lib/map/Map#set:entriesCapacity + local.get $0 + i32.const 0 + call $~lib/map/Map#set:entriesOffset + local.get $0 + i32.const 0 + call $~lib/map/Map#set:entriesCount + ) + (func $std/map/testNumeric + (local $0 i32) + (local $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -9563,6702 +9840,1208 @@ (local $6 i32) (local $7 i32) (local $8 i32) - (local $9 i32) - (local $10 i32) - (local $11 i32) - (local $12 f64) - (local $13 f64) - (local $14 i32) - (local $15 i32) global.get $~lib/memory/__stack_pointer - i32.const 8 + 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 - local.get $1 - i32.const 1 - i32.add - local.set $2 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 global.get $~lib/memory/__stack_pointer i32.const 0 - local.get $2 - i32.const 4 - i32.mul - call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $3 - i32.store - local.get $2 - i32.const 8 - i32.mul - i32.const 3 - i32.div_s - local.set $4 + i32.store offset=16 global.get $~lib/memory/__stack_pointer i32.const 0 - local.get $4 - i32.const 16 - i32.mul - call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $5 - i32.store offset=4 - local.get $0 - i32.load offset=8 - local.set $6 - local.get $6 - local.get $0 - i32.load offset=16 - i32.const 16 - i32.mul - i32.add - local.set $7 - local.get $5 - local.set $8 - loop $while-continue|0 - local.get $6 - local.get $7 - i32.ne - local.set $9 - local.get $9 + call $~lib/map/Map#constructor + local.tee $0 + i32.store + i32.const 0 + local.set $1 + loop $for-loop|0 + local.get $1 + i32.const 100 + i32.lt_s + local.set $2 + local.get $2 if - local.get $6 - local.set $10 - local.get $10 - i32.load offset=12 - i32.const 1 - i32.and + local.get $0 + local.get $1 + call $~lib/map/Map#has + i32.eqz i32.eqz if - local.get $8 - local.set $11 - local.get $10 - f64.load - local.set $12 - local.get $11 - local.get $12 - call $~lib/map/MapEntry#set:key - local.get $11 - local.get $10 - i32.load offset=8 - call $~lib/map/MapEntry#set:value - block $~lib/util/hash/HASH|inlined.2 (result i32) - local.get $12 - local.set $13 - i32.const 0 - drop - i32.const 0 - drop - i32.const 1 - drop - i32.const 8 - i32.const 4 - i32.eq - drop - i32.const 8 - i32.const 8 - i32.eq - drop - local.get $13 - i64.reinterpret_f64 - call $~lib/util/hash/hash64 - br $~lib/util/hash/HASH|inlined.2 - end - local.get $1 - i32.and - local.set $14 - local.get $3 - local.get $14 - i32.const 4 - i32.mul - i32.add - local.set $15 - local.get $11 - local.get $15 - i32.load - call $~lib/map/MapEntry#set:taggedNext - local.get $15 - local.get $8 - i32.store - local.get $8 - i32.const 16 - i32.add - local.set $8 - end - local.get $6 - i32.const 16 - i32.add - local.set $6 - br $while-continue|0 + i32.const 0 + i32.const 544 + i32.const 6 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $1 + i32.const 10 + local.get $1 + i32.add + call $~lib/map/Map#set + drop + local.get $0 + local.get $1 + call $~lib/map/Map#has + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 8 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $1 + call $~lib/map/Map#get + i32.const 10 + local.get $1 + i32.add + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 9 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|0 end end local.get $0 - local.get $3 - call $~lib/map/Map#set:buckets - local.get $0 - local.get $1 - call $~lib/map/Map#set:bucketsMask - local.get $0 - local.get $5 - call $~lib/map/Map#set:entries - local.get $0 - local.get $4 - call $~lib/map/Map#set:entriesCapacity - local.get $0 - local.get $0 - i32.load offset=20 - call $~lib/map/Map#set:entriesOffset - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/map/Map#get:size (param $0 i32) (result i32) - local.get $0 - i32.load offset=20 - ) - (func $~lib/array/Array#set:buffer (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - i32.store - local.get $0 - local.get $1 - i32.const 0 - call $~lib/rt/itcms/__link - ) - (func $~lib/array/Array#set:dataStart (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - i32.store offset=4 - ) - (func $~lib/array/Array#set:byteLength (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - i32.store offset=8 - ) - (func $~lib/array/Array#set:length_ (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - i32.store offset=12 - ) - (func $~lib/array/Array#__uset (param $0 i32) (param $1 i32) (param $2 f64) - local.get $0 - i32.load offset=4 - local.get $1 - i32.const 3 - i32.shl - i32.add - local.get $2 - f64.store - i32.const 0 - drop - ) - (func $~lib/array/Array#set:length (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - i32.const 3 - call $~lib/array/ensureSize - local.get $0 - local.get $1 - call $~lib/array/Array#set:length_ - ) - (func $~lib/map/Map#set:buckets (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - i32.store - local.get $0 - local.get $1 - i32.const 0 - call $~lib/rt/itcms/__link - ) - (func $~lib/map/Map#set:bucketsMask (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - i32.store offset=4 - ) - (func $~lib/map/Map#set:entries (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - i32.store offset=8 - local.get $0 - local.get $1 - i32.const 0 - call $~lib/rt/itcms/__link - ) - (func $~lib/map/Map#set:entriesCapacity (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - i32.store offset=12 - ) - (func $~lib/map/Map#set:entriesOffset (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - i32.store offset=16 - ) - (func $~lib/map/Map#set:entriesCount (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - i32.store offset=20 - ) - (func $~lib/array/Array#get:length (param $0 i32) (result i32) - local.get $0 - i32.load offset=12 - ) - (func $~lib/array/Array#__get (param $0 i32) (param $1 i32) (result f64) - (local $2 f64) - local.get $1 - local.get $0 - i32.load offset=12 - i32.ge_u + call $~lib/map/Map#get:size + i32.const 100 + i32.eq + i32.eqz if - i32.const 224 - i32.const 704 - i32.const 92 - i32.const 42 + i32.const 0 + i32.const 544 + i32.const 11 + i32.const 3 call $~lib/builtins/abort unreachable end - local.get $0 - i32.load offset=4 - local.get $1 - i32.const 3 - i32.shl - i32.add - f64.load - local.set $2 i32.const 0 - drop - local.get $2 - ) - (func $~lib/map/Map#find (param $0 i32) (param $1 f64) (param $2 i32) (result i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - local.get $0 - i32.load - local.get $2 - local.get $0 - i32.load offset=4 - i32.and - i32.const 4 - i32.mul - i32.add - i32.load - local.set $3 - loop $while-continue|0 - local.get $3 - local.set $4 - local.get $4 + local.set $1 + loop $for-loop|1 + local.get $1 + i32.const 100 + i32.lt_s + local.set $2 + local.get $2 if - local.get $3 - i32.load offset=16 - local.set $5 - local.get $5 - i32.const 1 - i32.and + local.get $0 + local.get $1 + call $~lib/map/Map#has i32.eqz - if (result i32) - local.get $3 - f64.load - local.get $1 - f64.eq - else + if i32.const 0 + i32.const 544 + i32.const 15 + i32.const 5 + call $~lib/builtins/abort + unreachable end + local.get $0 + local.get $1 + call $~lib/map/Map#get + i32.const 10 + local.get $1 + i32.add + i32.eq + i32.eqz if - local.get $3 - return + i32.const 0 + i32.const 544 + i32.const 16 + i32.const 5 + call $~lib/builtins/abort + unreachable end - local.get $5 - i32.const 1 - i32.const -1 - i32.xor - i32.and - local.set $3 - br $while-continue|0 + local.get $0 + local.get $1 + i32.const 20 + local.get $1 + i32.add + call $~lib/map/Map#set + drop + local.get $0 + local.get $1 + call $~lib/map/Map#has + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 18 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $1 + call $~lib/map/Map#get + i32.const 20 + local.get $1 + i32.add + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 19 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|1 end end - i32.const 0 - ) - (func $~lib/map/MapEntry#set:value (param $0 i32) (param $1 f64) - local.get $0 - local.get $1 - f64.store offset=8 - ) - (func $~lib/map/MapEntry#set:key (param $0 i32) (param $1 f64) - local.get $0 - local.get $1 - f64.store - ) - (func $~lib/map/MapEntry#set:taggedNext (param $0 i32) (param $1 i32) local.get $0 - local.get $1 - i32.store offset=16 - ) - (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) - (local $9 i32) - (local $10 i32) - (local $11 i32) - (local $12 f64) - (local $13 f64) - (local $14 i32) - (local $15 i32) + call $~lib/map/Map#get:size + i32.const 100 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 21 + i32.const 3 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check + local.get $0 + call $~lib/map/Map#keys + local.tee $1 + i32.store offset=4 global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - local.get $1 - i32.const 1 - i32.add - local.set $2 + local.get $0 + call $~lib/map/Map#values + local.tee $2 + i32.store offset=8 global.get $~lib/memory/__stack_pointer i32.const 0 - local.get $2 - i32.const 4 - i32.mul - call $~lib/arraybuffer/ArrayBuffer#constructor + call $~lib/map/Map#constructor local.tee $3 - i32.store - local.get $2 - i32.const 8 - i32.mul - i32.const 3 - i32.div_s - local.set $4 + i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 0 - local.get $4 - i32.const 24 - i32.mul - call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $5 - i32.store offset=4 - local.get $0 - i32.load offset=8 - local.set $6 - local.get $6 - local.get $0 - i32.load offset=16 - i32.const 24 - i32.mul - i32.add - local.set $7 - local.get $5 - local.set $8 - loop $while-continue|0 + call $~lib/map/Map#constructor + local.tee $4 + i32.store offset=16 + i32.const 0 + local.set $5 + loop $for-loop|2 + local.get $5 + local.get $1 + call $~lib/array/Array#get:length + i32.lt_s + local.set $6 local.get $6 - local.get $7 - i32.ne - local.set $9 - local.get $9 if - local.get $6 - local.set $10 - local.get $10 - i32.load offset=16 - i32.const 1 - i32.and + local.get $1 + local.get $5 + call $~lib/array/Array#__get + local.set $7 + local.get $2 + local.get $5 + call $~lib/array/Array#__get + local.set $8 + local.get $0 + local.get $7 + call $~lib/map/Map#has i32.eqz if - local.get $8 - local.set $11 - local.get $10 - f64.load - local.set $12 - local.get $11 - local.get $12 - call $~lib/map/MapEntry#set:key - local.get $11 - local.get $10 - f64.load offset=8 - call $~lib/map/MapEntry#set:value - block $~lib/util/hash/HASH|inlined.5 (result i32) - local.get $12 - local.set $13 - i32.const 0 - drop - i32.const 0 - drop - i32.const 1 - drop - i32.const 8 - i32.const 4 - i32.eq - drop - i32.const 8 - i32.const 8 - i32.eq - drop - local.get $13 - i64.reinterpret_f64 - call $~lib/util/hash/hash64 - br $~lib/util/hash/HASH|inlined.5 - end - local.get $1 - i32.and - local.set $14 - local.get $3 - local.get $14 - i32.const 4 - i32.mul - i32.add - local.set $15 - local.get $11 - local.get $15 - i32.load - call $~lib/map/MapEntry#set:taggedNext - local.get $15 - local.get $8 - i32.store - local.get $8 - i32.const 24 - i32.add - local.set $8 + i32.const 0 + i32.const 544 + i32.const 31 + i32.const 5 + call $~lib/builtins/abort + unreachable end - local.get $6 - i32.const 24 - i32.add - local.set $6 - br $while-continue|0 - end - end - local.get $0 - local.get $3 - call $~lib/map/Map#set:buckets - local.get $0 - local.get $1 - call $~lib/map/Map#set:bucketsMask - local.get $0 - local.get $5 - call $~lib/map/Map#set:entries - local.get $0 - local.get $4 - call $~lib/map/Map#set:entriesCapacity - local.get $0 - local.get $0 - i32.load offset=20 - call $~lib/map/Map#set:entriesOffset - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/map/Map#get:size (param $0 i32) (result i32) - local.get $0 - i32.load offset=20 - ) - (func $~lib/map/Map#clear (param $0 i32) - local.get $0 - i32.const 0 - i32.const 4 - i32.const 4 - i32.mul - call $~lib/arraybuffer/ArrayBuffer#constructor - call $~lib/map/Map#set:buckets - local.get $0 - i32.const 4 - i32.const 1 - i32.sub - call $~lib/map/Map#set:bucketsMask - local.get $0 - i32.const 0 - i32.const 4 - i32.const 16 - i32.mul - call $~lib/arraybuffer/ArrayBuffer#constructor - call $~lib/map/Map#set:entries - local.get $0 - i32.const 4 - call $~lib/map/Map#set:entriesCapacity - local.get $0 - i32.const 0 - call $~lib/map/Map#set:entriesOffset - local.get $0 - i32.const 0 - call $~lib/map/Map#set:entriesCount - ) - (func $~lib/rt/itcms/__collect - (local $0 i32) - 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 - local.set $0 local.get $0 + local.get $8 + i32.const 20 + i32.sub + call $~lib/map/Map#has + i32.eqz if - call $~lib/rt/itcms/step - drop - br $while-continue|0 + i32.const 0 + i32.const 544 + i32.const 32 + i32.const 5 + call $~lib/builtins/abort + unreachable end + local.get $3 + local.get $7 + local.get $7 + call $~lib/map/Map#set + drop + local.get $4 + local.get $8 + i32.const 20 + i32.sub + local.get $8 + i32.const 20 + i32.sub + call $~lib/map/Map#set + drop + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|2 end end - call $~lib/rt/itcms/step - drop - loop $while-continue|1 - global.get $~lib/rt/itcms/state + local.get $3 + call $~lib/map/Map#get:size + i32.const 100 + i32.eq + i32.eqz + if i32.const 0 - i32.ne - local.set $0 - local.get $0 + i32.const 544 + i32.const 36 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $4 + call $~lib/map/Map#get:size + i32.const 100 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 37 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $5 + loop $for-loop|3 + local.get $5 + i32.const 50 + i32.lt_s + local.set $6 + local.get $6 if - call $~lib/rt/itcms/step + local.get $0 + local.get $5 + call $~lib/map/Map#has + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 41 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $5 + call $~lib/map/Map#get + i32.const 20 + local.get $5 + i32.add + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 42 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $5 + call $~lib/map/Map#delete drop - br $while-continue|1 + local.get $0 + local.get $5 + call $~lib/map/Map#has + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 44 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|3 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.const 0 - drop - i32.const 0 - if (result i32) - i32.const 1 - else - i32.const 0 - end - drop - ) - (func $start:std/map - 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 - 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) - (local $1 i32) - i32.const 224 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 432 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 592 - 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 - i32.load - local.tee $2 + call $~lib/map/Map#get:size + i32.const 50 + i32.eq + i32.eqz if - local.get $2 - local.get $1 - call $~lib/rt/itcms/__visit + i32.const 0 + i32.const 544 + i32.const 46 + i32.const 3 + call $~lib/builtins/abort + unreachable end - ) - (func $~lib/map/Map#__visit (param $0 i32) (param $1 i32) - (local $2 i32) - local.get $0 - i32.load - local.get $1 - call $~lib/rt/itcms/__visit - local.get $0 - i32.load offset=8 - local.set $2 i32.const 0 - if (result i32) - i32.const 1 - else - i32.const 0 + local.set $5 + loop $for-loop|4 + local.get $5 + i32.const 50 + i32.lt_s + local.set $6 + local.get $6 + if + local.get $0 + local.get $5 + call $~lib/map/Map#has + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 50 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $5 + i32.const 10 + local.get $5 + i32.add + call $~lib/map/Map#set + drop + local.get $0 + local.get $5 + call $~lib/map/Map#has + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 52 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $5 + call $~lib/map/Map#delete + drop + local.get $0 + local.get $5 + call $~lib/map/Map#has + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 54 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|4 + end end - drop - local.get $2 - local.get $1 - call $~lib/rt/itcms/__visit - ) - (func $~lib/map/Map~visit (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - call $~lib/map/Map#__visit - ) - (func $~lib/array/Array#__visit (param $0 i32) (param $1 i32) - i32.const 0 - drop - local.get $0 - i32.load - local.get $1 - call $~lib/rt/itcms/__visit - ) - (func $~lib/array/Array~visit (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - call $~lib/array/Array#__visit - ) - (func $~lib/array/Array#__visit (param $0 i32) (param $1 i32) - i32.const 0 - drop - local.get $0 - i32.load - local.get $1 - call $~lib/rt/itcms/__visit - ) - (func $~lib/array/Array~visit (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - call $~lib/array/Array#__visit - ) - (func $~lib/map/Map#__visit (param $0 i32) (param $1 i32) - (local $2 i32) - local.get $0 - i32.load - local.get $1 - call $~lib/rt/itcms/__visit local.get $0 - i32.load offset=8 - local.set $2 - i32.const 0 - if (result i32) - i32.const 1 - else + call $~lib/map/Map#get:size + i32.const 50 + i32.eq + i32.eqz + if i32.const 0 + i32.const 544 + i32.const 56 + i32.const 3 + call $~lib/builtins/abort + unreachable end - drop - local.get $2 - local.get $1 - call $~lib/rt/itcms/__visit - ) - (func $~lib/map/Map~visit (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - call $~lib/map/Map#__visit - ) - (func $~lib/map/Map#__visit (param $0 i32) (param $1 i32) - (local $2 i32) local.get $0 - i32.load - local.get $1 - call $~lib/rt/itcms/__visit + call $~lib/map/Map#clear local.get $0 - i32.load offset=8 - local.set $2 + call $~lib/map/Map#get:size i32.const 0 - if (result i32) - i32.const 1 - else + i32.eq + i32.eqz + if i32.const 0 + i32.const 544 + i32.const 60 + i32.const 3 + call $~lib/builtins/abort + unreachable end - drop - local.get $2 - local.get $1 - call $~lib/rt/itcms/__visit + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.add + global.set $~lib/memory/__stack_pointer ) - (func $~lib/map/Map~visit (param $0 i32) (param $1 i32) + (func $~lib/map/Map#set:buckets (param $0 i32) (param $1 i32) local.get $0 local.get $1 - call $~lib/map/Map#__visit - ) - (func $~lib/map/Map#__visit (param $0 i32) (param $1 i32) - (local $2 i32) + i32.store local.get $0 - i32.load local.get $1 - call $~lib/rt/itcms/__visit - local.get $0 - i32.load offset=8 - local.set $2 i32.const 0 - if (result i32) - i32.const 1 - else - i32.const 0 - end - drop - local.get $2 - local.get $1 - call $~lib/rt/itcms/__visit - ) - (func $~lib/map/Map~visit (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - call $~lib/map/Map#__visit + call $~lib/rt/itcms/__link ) - (func $~lib/array/Array#__visit (param $0 i32) (param $1 i32) - i32.const 0 - drop + (func $~lib/map/Map#set:bucketsMask (param $0 i32) (param $1 i32) local.get $0 - i32.load local.get $1 - call $~lib/rt/itcms/__visit + i32.store offset=4 ) - (func $~lib/array/Array~visit (param $0 i32) (param $1 i32) + (func $~lib/map/Map#set:entries (param $0 i32) (param $1 i32) local.get $0 local.get $1 - call $~lib/array/Array#__visit - ) - (func $~lib/map/Map#__visit (param $0 i32) (param $1 i32) - (local $2 i32) + i32.store offset=8 local.get $0 - i32.load local.get $1 - call $~lib/rt/itcms/__visit - local.get $0 - i32.load offset=8 - local.set $2 i32.const 0 - if (result i32) - i32.const 1 - else - i32.const 0 - end - drop - local.get $2 - local.get $1 - call $~lib/rt/itcms/__visit + call $~lib/rt/itcms/__link ) - (func $~lib/map/Map~visit (param $0 i32) (param $1 i32) + (func $~lib/map/Map#set:entriesCapacity (param $0 i32) (param $1 i32) local.get $0 local.get $1 - call $~lib/map/Map#__visit + i32.store offset=12 ) - (func $~lib/map/Map#__visit (param $0 i32) (param $1 i32) - (local $2 i32) - local.get $0 - i32.load - local.get $1 - call $~lib/rt/itcms/__visit + (func $~lib/map/Map#set:entriesOffset (param $0 i32) (param $1 i32) local.get $0 - i32.load offset=8 - local.set $2 - i32.const 0 - if (result i32) - i32.const 1 - else - i32.const 0 - end - drop - local.get $2 local.get $1 - call $~lib/rt/itcms/__visit + i32.store offset=16 ) - (func $~lib/map/Map~visit (param $0 i32) (param $1 i32) + (func $~lib/map/Map#set:entriesCount (param $0 i32) (param $1 i32) local.get $0 local.get $1 - call $~lib/map/Map#__visit + i32.store offset=20 ) - (func $~lib/array/Array#__visit (param $0 i32) (param $1 i32) - i32.const 0 - drop + (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) local.get $0 i32.load - local.get $1 - call $~lib/rt/itcms/__visit - ) - (func $~lib/array/Array~visit (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - call $~lib/array/Array#__visit - ) - (func $~lib/map/Map#__visit (param $0 i32) (param $1 i32) - (local $2 i32) + local.get $2 local.get $0 + i32.load offset=4 + i32.and + i32.const 4 + i32.mul + i32.add i32.load - local.get $1 - call $~lib/rt/itcms/__visit - local.get $0 - i32.load offset=8 - local.set $2 - i32.const 0 - if (result i32) - i32.const 1 - else - i32.const 0 + local.set $3 + loop $while-continue|0 + local.get $3 + local.set $4 + local.get $4 + if + local.get $3 + i32.load offset=8 + local.set $5 + local.get $5 + i32.const 1 + i32.and + i32.eqz + if (result i32) + local.get $3 + i32.load + local.get $1 + i32.eq + else + i32.const 0 + end + if + local.get $3 + return + end + local.get $5 + i32.const 1 + i32.const -1 + i32.xor + i32.and + local.set $3 + br $while-continue|0 + end end - drop - local.get $2 - local.get $1 - call $~lib/rt/itcms/__visit - ) - (func $~lib/map/Map~visit (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - call $~lib/map/Map#__visit + i32.const 0 ) - (func $~lib/map/Map#__visit (param $0 i32) (param $1 i32) + (func $~lib/map/Map#has (param $0 i32) (param $1 i32) (result i32) (local $2 i32) local.get $0 - i32.load local.get $1 - call $~lib/rt/itcms/__visit - local.get $0 - i32.load offset=8 - local.set $2 - i32.const 0 - if (result i32) - i32.const 1 - else + block $~lib/util/hash/HASH|inlined.0 (result i32) + local.get $1 + local.set $2 + i32.const 0 + drop i32.const 0 + drop + i32.const 0 + drop + i32.const 4 + i32.const 1 + i32.eq + drop + i32.const 4 + i32.const 2 + i32.eq + drop + i32.const 4 + i32.const 4 + i32.eq + drop + local.get $2 + call $~lib/util/hash/hash32 + br $~lib/util/hash/HASH|inlined.0 end - drop - local.get $2 - local.get $1 - call $~lib/rt/itcms/__visit - ) - (func $~lib/map/Map~visit (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - call $~lib/map/Map#__visit - ) - (func $~lib/array/Array#__visit (param $0 i32) (param $1 i32) + call $~lib/map/Map#find i32.const 0 - drop - local.get $0 - i32.load - local.get $1 - call $~lib/rt/itcms/__visit + i32.ne ) - (func $~lib/array/Array~visit (param $0 i32) (param $1 i32) + (func $~lib/map/MapEntry#set:value (param $0 i32) (param $1 i32) local.get $0 local.get $1 - call $~lib/array/Array#__visit + i32.store offset=4 ) - (func $~lib/map/Map#__visit (param $0 i32) (param $1 i32) - (local $2 i32) - local.get $0 - i32.load - local.get $1 - call $~lib/rt/itcms/__visit + (func $~lib/map/MapEntry#set:key (param $0 i32) (param $1 i32) local.get $0 - i32.load offset=8 - local.set $2 - i32.const 0 - if (result i32) - i32.const 1 - else - i32.const 0 - end - drop - local.get $2 local.get $1 - call $~lib/rt/itcms/__visit + i32.store ) - (func $~lib/map/Map~visit (param $0 i32) (param $1 i32) + (func $~lib/map/MapEntry#set:taggedNext (param $0 i32) (param $1 i32) local.get $0 local.get $1 - call $~lib/map/Map#__visit + i32.store offset=8 ) - (func $~lib/map/Map#__visit (param $0 i32) (param $1 i32) + (func $~lib/map/Map#rehash (param $0 i32) (param $1 i32) (local $2 i32) - local.get $0 - i32.load + (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) + 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 $1 - call $~lib/rt/itcms/__visit - local.get $0 - i32.load offset=8 + i32.const 1 + i32.add local.set $2 + global.get $~lib/memory/__stack_pointer i32.const 0 - if (result i32) - i32.const 1 - else - i32.const 0 - end - drop local.get $2 - local.get $1 - call $~lib/rt/itcms/__visit - ) - (func $~lib/map/Map~visit (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - call $~lib/map/Map#__visit - ) - (func $~lib/array/Array#__visit (param $0 i32) (param $1 i32) + i32.const 4 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $3 + i32.store + local.get $2 + i32.const 8 + i32.mul + i32.const 3 + i32.div_s + local.set $4 + global.get $~lib/memory/__stack_pointer i32.const 0 - drop - local.get $0 - i32.load - local.get $1 - call $~lib/rt/itcms/__visit - ) - (func $~lib/array/Array~visit (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - call $~lib/array/Array#__visit - ) - (func $~lib/map/Map#__visit (param $0 i32) (param $1 i32) - (local $2 i32) - local.get $0 - i32.load - local.get $1 - call $~lib/rt/itcms/__visit + local.get $4 + i32.const 12 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $5 + i32.store offset=4 local.get $0 i32.load offset=8 - local.set $2 - i32.const 0 - if (result i32) - i32.const 1 - else - i32.const 0 - end - drop - local.get $2 - local.get $1 - call $~lib/rt/itcms/__visit - ) - (func $~lib/map/Map~visit (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - call $~lib/map/Map#__visit - ) - (func $~lib/map/Map#__visit (param $0 i32) (param $1 i32) - (local $2 i32) - local.get $0 - i32.load - local.get $1 - call $~lib/rt/itcms/__visit + local.set $6 + local.get $6 local.get $0 - i32.load offset=8 - local.set $2 - i32.const 0 - if (result i32) - i32.const 1 - else - i32.const 0 - end - drop - local.get $2 - local.get $1 - call $~lib/rt/itcms/__visit - ) - (func $~lib/map/Map~visit (param $0 i32) (param $1 i32) + i32.load offset=16 + i32.const 12 + i32.mul + i32.add + local.set $7 + local.get $5 + local.set $8 + loop $while-continue|0 + local.get $6 + local.get $7 + i32.ne + local.set $9 + local.get $9 + if + local.get $6 + local.set $10 + local.get $10 + i32.load offset=8 + i32.const 1 + i32.and + i32.eqz + if + local.get $8 + local.set $11 + local.get $10 + i32.load + local.set $12 + local.get $11 + local.get $12 + call $~lib/map/MapEntry#set:key + local.get $11 + local.get $10 + i32.load offset=4 + call $~lib/map/MapEntry#set:value + block $~lib/util/hash/HASH|inlined.2 (result i32) + local.get $12 + local.set $13 + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 4 + i32.const 1 + i32.eq + drop + i32.const 4 + i32.const 2 + i32.eq + drop + i32.const 4 + i32.const 4 + i32.eq + drop + local.get $13 + call $~lib/util/hash/hash32 + br $~lib/util/hash/HASH|inlined.2 + end + local.get $1 + i32.and + local.set $13 + local.get $3 + local.get $13 + i32.const 4 + i32.mul + i32.add + local.set $14 + local.get $11 + local.get $14 + i32.load + call $~lib/map/MapEntry#set:taggedNext + local.get $14 + local.get $8 + i32.store + local.get $8 + i32.const 12 + i32.add + local.set $8 + end + local.get $6 + i32.const 12 + i32.add + local.set $6 + br $while-continue|0 + end + end local.get $0 - local.get $1 - call $~lib/map/Map#__visit - ) - (func $~lib/array/Array#__visit (param $0 i32) (param $1 i32) - i32.const 0 - drop + local.get $3 + call $~lib/map/Map#set:buckets local.get $0 - i32.load local.get $1 - call $~lib/rt/itcms/__visit - ) - (func $~lib/array/Array~visit (param $0 i32) (param $1 i32) + call $~lib/map/Map#set:bucketsMask local.get $0 - local.get $1 - call $~lib/array/Array#__visit + local.get $5 + call $~lib/map/Map#set:entries + local.get $0 + local.get $4 + call $~lib/map/Map#set:entriesCapacity + local.get $0 + local.get $0 + i32.load offset=20 + call $~lib/map/Map#set:entriesOffset + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer ) - (func $~lib/map/Map#__visit (param $0 i32) (param $1 i32) + (func $~lib/map/Map#get (param $0 i32) (param $1 i32) (result i32) (local $2 i32) + (local $3 i32) local.get $0 - i32.load local.get $1 - call $~lib/rt/itcms/__visit - local.get $0 - i32.load offset=8 - local.set $2 - i32.const 0 - if (result i32) - i32.const 1 - else + block $~lib/util/hash/HASH|inlined.3 (result i32) + local.get $1 + local.set $2 i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 4 + i32.const 1 + i32.eq + drop + i32.const 4 + i32.const 2 + i32.eq + drop + i32.const 4 + i32.const 4 + i32.eq + drop + local.get $2 + call $~lib/util/hash/hash32 + br $~lib/util/hash/HASH|inlined.3 end - drop - local.get $2 - local.get $1 - call $~lib/rt/itcms/__visit + call $~lib/map/Map#find + local.set $3 + local.get $3 + i32.eqz + if + i32.const 592 + i32.const 656 + i32.const 105 + i32.const 17 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.load offset=4 ) - (func $~lib/map/Map~visit (param $0 i32) (param $1 i32) + (func $~lib/map/Map#get:size (param $0 i32) (result i32) local.get $0 - local.get $1 - call $~lib/map/Map#__visit + i32.load offset=20 ) - (func $~lib/map/Map#__visit (param $0 i32) (param $1 i32) - (local $2 i32) + (func $~lib/array/Array#set:buffer (param $0 i32) (param $1 i32) local.get $0 - i32.load local.get $1 - call $~lib/rt/itcms/__visit + i32.store local.get $0 - i32.load offset=8 - local.set $2 - i32.const 0 - if (result i32) - i32.const 1 - else - i32.const 0 - end - drop - local.get $2 local.get $1 - call $~lib/rt/itcms/__visit + i32.const 0 + call $~lib/rt/itcms/__link ) - (func $~lib/map/Map~visit (param $0 i32) (param $1 i32) + (func $~lib/array/Array#set:dataStart (param $0 i32) (param $1 i32) local.get $0 local.get $1 - call $~lib/map/Map#__visit + i32.store offset=4 ) - (func $~lib/array/Array#__visit (param $0 i32) (param $1 i32) - i32.const 0 - drop + (func $~lib/array/Array#set:byteLength (param $0 i32) (param $1 i32) local.get $0 - i32.load local.get $1 - call $~lib/rt/itcms/__visit + i32.store offset=8 ) - (func $~lib/array/Array~visit (param $0 i32) (param $1 i32) + (func $~lib/array/Array#set:length_ (param $0 i32) (param $1 i32) local.get $0 local.get $1 - call $~lib/array/Array#__visit + i32.store offset=12 ) - (func $~lib/map/Map#__visit (param $0 i32) (param $1 i32) - (local $2 i32) + (func $~lib/array/Array#__uset (param $0 i32) (param $1 i32) (param $2 i32) local.get $0 - i32.load + i32.load offset=4 local.get $1 - call $~lib/rt/itcms/__visit - local.get $0 - i32.load offset=8 - local.set $2 + i32.const 2 + i32.shl + i32.add + local.get $2 + i32.store i32.const 0 - if (result i32) - i32.const 1 - else - i32.const 0 - end drop - local.get $2 - local.get $1 - call $~lib/rt/itcms/__visit - ) - (func $~lib/map/Map~visit (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - call $~lib/map/Map#__visit ) - (func $~lib/map/Map#__visit (param $0 i32) (param $1 i32) - (local $2 i32) - local.get $0 - i32.load + (func $~lib/array/Array#__set (param $0 i32) (param $1 i32) (param $2 i32) local.get $1 - call $~lib/rt/itcms/__visit local.get $0 - i32.load offset=8 - local.set $2 - i32.const 0 - if (result i32) - i32.const 1 - else + i32.load offset=12 + i32.ge_u + if + local.get $1 i32.const 0 + i32.lt_s + if + i32.const 224 + i32.const 704 + i32.const 108 + i32.const 22 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $1 + i32.const 1 + i32.add + i32.const 2 + call $~lib/array/ensureSize + local.get $0 + local.get $1 + i32.const 1 + i32.add + call $~lib/array/Array#set:length_ end - drop - local.get $2 + local.get $0 local.get $1 - call $~lib/rt/itcms/__visit + local.get $2 + call $~lib/array/Array#__uset ) - (func $~lib/map/Map~visit (param $0 i32) (param $1 i32) + (func $~lib/array/Array#set:length (param $0 i32) (param $1 i32) local.get $0 local.get $1 - call $~lib/map/Map#__visit + i32.const 2 + call $~lib/array/ensureSize + local.get $0 + local.get $1 + call $~lib/array/Array#set:length_ ) - (func $~lib/array/Array#__visit (param $0 i32) (param $1 i32) - i32.const 0 - drop + (func $~lib/map/Map#set:buckets (param $0 i32) (param $1 i32) local.get $0 - i32.load local.get $1 - call $~lib/rt/itcms/__visit + i32.store + local.get $0 + local.get $1 + i32.const 0 + call $~lib/rt/itcms/__link ) - (func $~lib/array/Array~visit (param $0 i32) (param $1 i32) + (func $~lib/map/Map#set:bucketsMask (param $0 i32) (param $1 i32) local.get $0 local.get $1 - call $~lib/array/Array#__visit + i32.store offset=4 ) - (func $~lib/map/Map#__visit (param $0 i32) (param $1 i32) - (local $2 i32) + (func $~lib/map/Map#set:entries (param $0 i32) (param $1 i32) local.get $0 - i32.load local.get $1 - call $~lib/rt/itcms/__visit + i32.store offset=8 local.get $0 - i32.load offset=8 - local.set $2 + local.get $1 i32.const 0 - if (result i32) - i32.const 1 - else - i32.const 0 - end - drop - local.get $2 + call $~lib/rt/itcms/__link + ) + (func $~lib/map/Map#set:entriesCapacity (param $0 i32) (param $1 i32) + local.get $0 local.get $1 - call $~lib/rt/itcms/__visit + i32.store offset=12 ) - (func $~lib/map/Map~visit (param $0 i32) (param $1 i32) + (func $~lib/map/Map#set:entriesOffset (param $0 i32) (param $1 i32) local.get $0 local.get $1 - call $~lib/map/Map#__visit + i32.store offset=16 ) - (func $~lib/map/Map#__visit (param $0 i32) (param $1 i32) - (local $2 i32) + (func $~lib/map/Map#set:entriesCount (param $0 i32) (param $1 i32) local.get $0 - i32.load local.get $1 - call $~lib/rt/itcms/__visit + i32.store offset=20 + ) + (func $~lib/array/Array#get:length (param $0 i32) (result i32) local.get $0 - i32.load offset=8 + i32.load offset=12 + ) + (func $~lib/array/Array#__get (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + local.get $1 + local.get $0 + i32.load offset=12 + i32.ge_u + if + i32.const 224 + i32.const 704 + i32.const 92 + i32.const 42 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 2 + i32.shl + i32.add + i32.load local.set $2 i32.const 0 - if (result i32) - i32.const 1 - else - i32.const 0 - end drop local.get $2 - local.get $1 - call $~lib/rt/itcms/__visit ) - (func $~lib/map/Map~visit (param $0 i32) (param $1 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) + local.get $0 + i32.load + local.get $2 + local.get $0 + i32.load offset=4 + i32.and + i32.const 4 + i32.mul + i32.add + i32.load + local.set $3 + loop $while-continue|0 + local.get $3 + local.set $4 + local.get $4 + if + local.get $3 + i32.load offset=8 + local.set $5 + local.get $5 + i32.const 1 + i32.and + i32.eqz + if (result i32) + local.get $3 + i32.load + local.get $1 + i32.eq + else + i32.const 0 + end + if + local.get $3 + return + end + local.get $5 + i32.const 1 + i32.const -1 + i32.xor + i32.and + local.set $3 + br $while-continue|0 + end + end + i32.const 0 + ) + (func $~lib/map/MapEntry#set:value (param $0 i32) (param $1 i32) local.get $0 local.get $1 - call $~lib/map/Map#__visit + i32.store offset=4 ) - (func $~lib/array/Array#__visit (param $0 i32) (param $1 i32) - i32.const 0 - drop + (func $~lib/map/MapEntry#set:key (param $0 i32) (param $1 i32) local.get $0 - i32.load local.get $1 - call $~lib/rt/itcms/__visit + i32.store ) - (func $~lib/array/Array~visit (param $0 i32) (param $1 i32) + (func $~lib/map/MapEntry#set:taggedNext (param $0 i32) (param $1 i32) local.get $0 local.get $1 - call $~lib/array/Array#__visit + i32.store offset=8 ) - (func $~lib/map/Map#__visit (param $0 i32) (param $1 i32) + (func $~lib/map/Map#rehash (param $0 i32) (param $1 i32) (local $2 i32) - local.get $0 - i32.load + (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) + 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 $1 - call $~lib/rt/itcms/__visit - local.get $0 - i32.load offset=8 + i32.const 1 + i32.add local.set $2 + global.get $~lib/memory/__stack_pointer i32.const 0 - if (result i32) - i32.const 1 - else - i32.const 0 - end - drop local.get $2 - local.get $1 - call $~lib/rt/itcms/__visit - ) - (func $~lib/map/Map~visit (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - call $~lib/map/Map#__visit - ) - (func $~lib/rt/__visit_members (param $0 i32) (param $1 i32) - block $invalid - block $~lib/map/Map - block $~lib/array/Array - block $~lib/map/Map - block $~lib/map/Map - block $~lib/array/Array - block $~lib/map/Map - block $~lib/map/Map - block $~lib/array/Array - block $~lib/map/Map - block $~lib/map/Map - block $~lib/array/Array - block $~lib/map/Map - block $~lib/map/Map - block $~lib/array/Array - block $~lib/map/Map - block $~lib/map/Map - block $~lib/array/Array - block $~lib/map/Map - block $~lib/map/Map - block $~lib/array/Array - 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/array/Array - block $~lib/array/Array - block $~lib/map/Map - block $~lib/arraybuffer/ArrayBufferView - block $~lib/string/String - block $~lib/arraybuffer/ArrayBuffer - local.get $0 - i32.const 8 - i32.sub - i32.load - br_table $~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 - return - end - local.get $0 - local.get $1 - call $~lib/arraybuffer/ArrayBufferView~visit - return - end - local.get $0 - local.get $1 - call $~lib/map/Map~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/map/Map~visit - return - end - local.get $0 - local.get $1 - call $~lib/map/Map~visit - return - end - local.get $0 - local.get $1 - call $~lib/map/Map~visit - return - end - local.get $0 - local.get $1 - call $~lib/array/Array~visit - return - end - local.get $0 - local.get $1 - call $~lib/map/Map~visit - return - end - local.get $0 - local.get $1 - call $~lib/map/Map~visit - return - end - local.get $0 - local.get $1 - call $~lib/array/Array~visit - return - end - local.get $0 - local.get $1 - call $~lib/map/Map~visit - return - end - local.get $0 - local.get $1 - call $~lib/map/Map~visit - return - end - local.get $0 - local.get $1 - call $~lib/array/Array~visit - return - end - local.get $0 - local.get $1 - call $~lib/map/Map~visit - return - end - local.get $0 - local.get $1 - call $~lib/map/Map~visit - return - end - local.get $0 - local.get $1 - call $~lib/array/Array~visit - return - end - local.get $0 - local.get $1 - call $~lib/map/Map~visit - return - end - local.get $0 - local.get $1 - call $~lib/map/Map~visit - return - end - local.get $0 - local.get $1 - call $~lib/array/Array~visit - return - end - local.get $0 - local.get $1 - call $~lib/map/Map~visit - return - end - local.get $0 - local.get $1 - call $~lib/map/Map~visit - return - end - local.get $0 - local.get $1 - call $~lib/array/Array~visit - return - end - local.get $0 - local.get $1 - call $~lib/map/Map~visit - return - end - local.get $0 - local.get $1 - call $~lib/map/Map~visit - return - end - local.get $0 - local.get $1 - call $~lib/array/Array~visit - return - end - local.get $0 - local.get $1 - call $~lib/map/Map~visit - return - end - local.get $0 - local.get $1 - call $~lib/map/Map~visit - return - end - local.get $0 - local.get $1 - call $~lib/array/Array~visit - return - end - local.get $0 - local.get $1 - call $~lib/map/Map~visit - return - end - unreachable - ) - (func $~start - call $start:std/map - ) - (func $~stack_check - global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__data_end - i32.lt_s - if - i32.const 17408 - i32.const 17456 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - ) - (func $~lib/map/Map#has (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 - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - local.get $0 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store - local.get $3 - local.get $1 - block $~lib/util/hash/HASH|inlined.0 (result i32) - local.get $1 - local.set $2 - i32.const 0 - drop - i32.const 0 - drop - i32.const 0 - drop - i32.const 1 - i32.const 1 - i32.eq - drop - local.get $2 - i32.const 24 - i32.shl - i32.const 24 - i32.shr_s - call $~lib/util/hash/hash8 - br $~lib/util/hash/HASH|inlined.0 - end - call $~lib/map/Map#find - i32.const 0 - i32.ne - local.set $3 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $3 - ) - (func $~lib/map/Map#set (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 - call $~stack_check - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - block $~lib/util/hash/HASH|inlined.1 (result i32) - local.get $1 - local.set $3 - i32.const 0 - drop - i32.const 0 - drop - i32.const 0 - drop - i32.const 1 - i32.const 1 - i32.eq - drop - local.get $3 - i32.const 24 - i32.shl - i32.const 24 - i32.shr_s - call $~lib/util/hash/hash8 - br $~lib/util/hash/HASH|inlined.1 - end - local.set $4 - local.get $0 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store - local.get $7 - local.get $1 - local.get $4 - call $~lib/map/Map#find - local.set $5 - local.get $5 - if - local.get $5 - local.get $2 - call $~lib/map/MapEntry#set:value - i32.const 0 - drop - else - local.get $0 - i32.load offset=16 - local.get $0 - i32.load offset=12 - i32.eq - if - local.get $0 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store - local.get $7 - local.get $0 - i32.load offset=20 - 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 $0 - i32.load offset=4 - else - 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.load offset=8 - local.tee $3 - i32.store offset=4 - local.get $3 - local.get $0 - local.get $0 - i32.load offset=16 - local.tee $6 - i32.const 1 - i32.add - call $~lib/map/Map#set:entriesOffset - local.get $6 - i32.const 12 - i32.mul - i32.add - local.set $5 - local.get $5 - local.get $1 - call $~lib/map/MapEntry#set:key - i32.const 0 - drop - local.get $5 - local.get $2 - call $~lib/map/MapEntry#set:value - i32.const 0 - drop - local.get $0 - local.get $0 - i32.load offset=20 - i32.const 1 - i32.add - call $~lib/map/Map#set:entriesCount - local.get $0 - i32.load - local.get $4 - local.get $0 - i32.load offset=4 - i32.and - i32.const 4 - i32.mul - i32.add - local.set $6 - local.get $5 - local.get $6 - i32.load - call $~lib/map/MapEntry#set:taggedNext - local.get $6 - local.get $5 - i32.store - end - local.get $0 - local.set $7 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $7 - ) - (func $~lib/map/Map#get (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 - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - local.get $0 - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store - local.get $4 - local.get $1 - block $~lib/util/hash/HASH|inlined.3 (result i32) - local.get $1 - local.set $2 - i32.const 0 - drop - i32.const 0 - drop - i32.const 0 - drop - i32.const 1 - i32.const 1 - i32.eq - drop - local.get $2 - i32.const 24 - i32.shl - i32.const 24 - i32.shr_s - call $~lib/util/hash/hash8 - br $~lib/util/hash/HASH|inlined.3 - end - call $~lib/map/Map#find - local.set $3 - local.get $3 - i32.eqz - if - i32.const 592 - i32.const 656 - i32.const 105 - i32.const 17 - call $~lib/builtins/abort - unreachable - end - local.get $3 - i32.load offset=4 - local.set $4 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $4 - ) - (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 - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 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 224 - i32.const 704 - i32.const 108 - i32.const 22 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.get $1 - i32.const 1 - i32.add - i32.const 0 - call $~lib/array/ensureSize - local.get $0 - local.get $1 - i32.const 1 - i32.add - call $~lib/array/Array#set:length_ - end - local.get $0 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store - local.get $3 - local.get $1 - local.get $2 - call $~lib/array/Array#__uset - 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 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - local.get $0 - i32.load offset=8 - local.set $1 - local.get $0 - i32.load offset=16 - local.set $2 - global.get $~lib/memory/__stack_pointer - i32.const 0 - local.get $2 - call $~lib/array/Array#constructor - local.tee $3 - i32.store - i32.const 0 - local.set $4 - i32.const 0 - local.set $5 - loop $for-loop|0 - local.get $5 - local.get $2 - i32.lt_s - local.set $6 - local.get $6 - if - local.get $1 - local.get $5 - i32.const 12 - i32.mul - i32.add - local.set $7 - local.get $7 - i32.load offset=8 - i32.const 1 - i32.and - i32.eqz - if - local.get $3 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - local.get $4 - local.tee $8 - i32.const 1 - i32.add - local.set $4 - local.get $8 - local.get $7 - i32.load8_s - call $~lib/array/Array#__set - end - local.get $5 - i32.const 1 - i32.add - local.set $5 - br $for-loop|0 - end - end - local.get $3 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - local.get $4 - call $~lib/array/Array#set:length - local.get $3 - local.set $9 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $9 - ) - (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 - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 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 224 - i32.const 704 - i32.const 108 - i32.const 22 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.get $1 - i32.const 1 - i32.add - i32.const 2 - call $~lib/array/ensureSize - local.get $0 - local.get $1 - i32.const 1 - i32.add - call $~lib/array/Array#set:length_ - end - local.get $0 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store - local.get $3 - local.get $1 - local.get $2 - call $~lib/array/Array#__uset - 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) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - local.get $0 - i32.load offset=8 - local.set $1 - local.get $0 - i32.load offset=16 - local.set $2 - global.get $~lib/memory/__stack_pointer - i32.const 0 - local.get $2 - call $~lib/array/Array#constructor - local.tee $3 - i32.store - i32.const 0 - local.set $4 - i32.const 0 - local.set $5 - loop $for-loop|0 - local.get $5 - local.get $2 - i32.lt_s - local.set $6 - local.get $6 - if - local.get $1 - local.get $5 - i32.const 12 - i32.mul - i32.add - local.set $7 - local.get $7 - i32.load offset=8 - i32.const 1 - i32.and - i32.eqz - if - local.get $3 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - local.get $4 - local.tee $8 - i32.const 1 - i32.add - local.set $4 - local.get $8 - local.get $7 - i32.load offset=4 - call $~lib/array/Array#__set - end - local.get $5 - i32.const 1 - i32.add - local.set $5 - br $for-loop|0 - end - end - local.get $3 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - local.get $4 - call $~lib/array/Array#set:length - local.get $3 - local.set $9 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $9 - ) - (func $~lib/map/Map#set (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 - call $~stack_check - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - block $~lib/util/hash/HASH|inlined.4 (result i32) - local.get $1 - local.set $3 - i32.const 0 - drop - i32.const 0 - drop - i32.const 0 - drop - i32.const 1 - i32.const 1 - i32.eq - drop - local.get $3 - i32.const 24 - i32.shl - i32.const 24 - i32.shr_s - call $~lib/util/hash/hash8 - br $~lib/util/hash/HASH|inlined.4 - end - local.set $4 - local.get $0 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store - local.get $7 - local.get $1 - local.get $4 - call $~lib/map/Map#find - local.set $5 - local.get $5 - if - local.get $5 - local.get $2 - call $~lib/map/MapEntry#set:value - i32.const 0 - drop - else - local.get $0 - i32.load offset=16 - local.get $0 - i32.load offset=12 - i32.eq - if - local.get $0 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store - local.get $7 - local.get $0 - i32.load offset=20 - 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 $0 - i32.load offset=4 - else - 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.load offset=8 - local.tee $3 - i32.store offset=4 - local.get $3 - local.get $0 - local.get $0 - i32.load offset=16 - local.tee $6 - i32.const 1 - i32.add - call $~lib/map/Map#set:entriesOffset - local.get $6 - i32.const 8 - i32.mul - i32.add - local.set $5 - local.get $5 - local.get $1 - call $~lib/map/MapEntry#set:key - i32.const 0 - drop - local.get $5 - local.get $2 - call $~lib/map/MapEntry#set:value - i32.const 0 - drop - local.get $0 - local.get $0 - i32.load offset=20 - i32.const 1 - i32.add - call $~lib/map/Map#set:entriesCount - local.get $0 - i32.load - local.get $4 - local.get $0 - i32.load offset=4 - i32.and - i32.const 4 - i32.mul - i32.add - local.set $6 - local.get $5 - local.get $6 - i32.load - call $~lib/map/MapEntry#set:taggedNext - local.get $6 - local.get $5 - i32.store - end - local.get $0 - local.set $7 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $7 - ) - (func $~lib/map/Map#set (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 - call $~stack_check - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - block $~lib/util/hash/HASH|inlined.0 (result i32) - local.get $1 - local.set $3 - i32.const 0 - drop - i32.const 0 - drop - i32.const 0 - drop - i32.const 4 - i32.const 1 - i32.eq - drop - i32.const 4 - i32.const 2 - i32.eq - drop - i32.const 4 - i32.const 4 - i32.eq - drop - local.get $3 - call $~lib/util/hash/hash32 - br $~lib/util/hash/HASH|inlined.0 - end - local.set $4 - local.get $0 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store - local.get $7 - local.get $1 - local.get $4 - call $~lib/map/Map#find - local.set $5 - local.get $5 - if - local.get $5 - local.get $2 - call $~lib/map/MapEntry#set:value - i32.const 0 - drop - else - local.get $0 - i32.load offset=16 - local.get $0 - i32.load offset=12 - i32.eq - if - local.get $0 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store - local.get $7 - local.get $0 - i32.load offset=20 - 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 $0 - i32.load offset=4 - else - 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.load offset=8 - local.tee $3 - i32.store offset=4 - local.get $3 - local.get $0 - local.get $0 - i32.load offset=16 - local.tee $6 - i32.const 1 - i32.add - call $~lib/map/Map#set:entriesOffset - local.get $6 - i32.const 12 - i32.mul - i32.add - local.set $5 - local.get $5 - local.get $1 - call $~lib/map/MapEntry#set:key - i32.const 0 - drop - local.get $5 - local.get $2 - call $~lib/map/MapEntry#set:value - i32.const 0 - drop - local.get $0 - local.get $0 - i32.load offset=20 - i32.const 1 - i32.add - call $~lib/map/Map#set:entriesCount - local.get $0 - i32.load - local.get $4 - local.get $0 - i32.load offset=4 - i32.and - i32.const 4 - i32.mul - i32.add - local.set $6 - local.get $5 - local.get $6 - i32.load - call $~lib/map/MapEntry#set:taggedNext - local.get $6 - local.get $5 - i32.store - end - local.get $0 - local.set $7 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $7 - ) - (func $~lib/map/Map#delete (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.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - local.get $0 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - local.get $1 - block $~lib/util/hash/HASH|inlined.6 (result i32) - local.get $1 - local.set $2 - i32.const 0 - drop - i32.const 0 - drop - i32.const 0 - drop - i32.const 1 - i32.const 1 - i32.eq - drop - local.get $2 - i32.const 24 - i32.shl - i32.const 24 - i32.shr_s - call $~lib/util/hash/hash8 - br $~lib/util/hash/HASH|inlined.6 - end - call $~lib/map/Map#find - local.set $3 - local.get $3 - i32.eqz - if - i32.const 0 - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - return - end - local.get $3 - local.get $3 - i32.load offset=8 - i32.const 1 - i32.or - call $~lib/map/MapEntry#set:taggedNext - local.get $0 - local.get $0 - i32.load offset=20 - i32.const 1 - i32.sub - call $~lib/map/Map#set:entriesCount - local.get $0 - i32.load offset=4 - i32.const 1 - i32.shr_u - local.set $4 - local.get $4 - i32.const 1 - i32.add - i32.const 4 - local.tee $2 - local.get $0 - i32.load offset=20 - local.tee $5 - local.get $2 - local.get $5 - i32.gt_u - select - i32.ge_u - if (result i32) - local.get $0 - i32.load offset=20 - 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 $0 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - local.get $4 - call $~lib/map/Map#rehash - end - i32.const 1 - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - ) - (func $std/map/testNumeric - (local $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - (local $10 i32) - (local $11 i32) - global.get $~lib/memory/__stack_pointer - 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 - i64.const 0 - i64.store offset=8 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=16 - global.get $~lib/memory/__stack_pointer - i32.const 0 - call $~lib/map/Map#constructor - local.tee $0 - i32.store - i32.const 0 - local.set $1 - loop $for-loop|1 - local.get $1 - i32.const 24 - i32.shl - i32.const 24 - i32.shr_s - i32.const 100 - i32.lt_s - local.set $3 - local.get $3 - if - local.get $0 - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=4 - local.get $11 - local.get $1 - call $~lib/map/Map#has - i32.eqz - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 6 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=4 - local.get $11 - local.get $1 - i32.const 10 - local.get $1 - i32.const 24 - i32.shl - i32.const 24 - i32.shr_s - i32.add - call $~lib/map/Map#set - drop - local.get $0 - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=4 - local.get $11 - local.get $1 - call $~lib/map/Map#has - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 8 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=4 - local.get $11 - local.get $1 - call $~lib/map/Map#get - i32.const 10 - local.get $1 - i32.const 24 - i32.shl - i32.const 24 - i32.shr_s - i32.add - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 9 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i32.const 1 - i32.add - local.set $1 - br $for-loop|1 - end - end - local.get $0 - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=4 - local.get $11 - call $~lib/map/Map#get:size - i32.const 100 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 11 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 0 - local.set $1 - loop $for-loop|3 - local.get $1 - i32.const 24 - i32.shl - i32.const 24 - i32.shr_s - i32.const 100 - i32.lt_s - local.set $4 - local.get $4 - if - local.get $0 - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=4 - local.get $11 - local.get $1 - call $~lib/map/Map#has - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 15 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=4 - local.get $11 - local.get $1 - call $~lib/map/Map#get - i32.const 10 - local.get $1 - i32.const 24 - i32.shl - i32.const 24 - i32.shr_s - i32.add - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 16 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=4 - local.get $11 - local.get $1 - i32.const 20 - local.get $1 - i32.const 24 - i32.shl - i32.const 24 - i32.shr_s - i32.add - call $~lib/map/Map#set - drop - local.get $0 - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=4 - local.get $11 - local.get $1 - call $~lib/map/Map#has - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 18 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=4 - local.get $11 - local.get $1 - call $~lib/map/Map#get - i32.const 20 - local.get $1 - i32.const 24 - i32.shl - i32.const 24 - i32.shr_s - i32.add - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 19 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i32.const 1 - i32.add - local.set $1 - br $for-loop|3 - end - end - local.get $0 - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=4 - local.get $11 - call $~lib/map/Map#get:size - i32.const 100 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 21 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=4 - local.get $11 - call $~lib/map/Map#keys - local.tee $1 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=4 - local.get $11 - call $~lib/map/Map#values - local.tee $4 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 0 - call $~lib/map/Map#constructor - local.tee $5 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - i32.const 0 - call $~lib/map/Map#constructor - local.tee $6 - i32.store offset=20 - i32.const 0 - local.set $7 - loop $for-loop|4 - local.get $7 - local.get $1 - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=4 - local.get $11 - call $~lib/array/Array#get:length - i32.lt_s - local.set $8 - local.get $8 - if - local.get $1 - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=4 - local.get $11 - local.get $7 - call $~lib/array/Array#__get - local.set $9 - local.get $4 - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=4 - local.get $11 - local.get $7 - call $~lib/array/Array#__get - local.set $10 - local.get $0 - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=4 - local.get $11 - local.get $9 - call $~lib/map/Map#has - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 31 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=4 - local.get $11 - local.get $10 - i32.const 20 - i32.sub - call $~lib/map/Map#has - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 32 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $5 - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=4 - local.get $11 - local.get $9 - local.get $9 - call $~lib/map/Map#set - drop - local.get $6 - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=4 - local.get $11 - local.get $10 - i32.const 20 - i32.sub - local.get $10 - i32.const 20 - i32.sub - call $~lib/map/Map#set - drop - local.get $7 - i32.const 1 - i32.add - local.set $7 - br $for-loop|4 - end - end - local.get $5 - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=4 - local.get $11 - call $~lib/map/Map#get:size - i32.const 100 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 36 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $6 - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=4 - local.get $11 - call $~lib/map/Map#get:size - i32.const 100 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 37 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 0 - local.set $7 - loop $for-loop|6 - local.get $7 - i32.const 24 - i32.shl - i32.const 24 - i32.shr_s - i32.const 50 - i32.lt_s - local.set $10 - local.get $10 - if - local.get $0 - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=4 - local.get $11 - local.get $7 - call $~lib/map/Map#has - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 41 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=4 - local.get $11 - local.get $7 - call $~lib/map/Map#get - i32.const 20 - local.get $7 - i32.const 24 - i32.shl - i32.const 24 - i32.shr_s - i32.add - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 42 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=4 - local.get $11 - local.get $7 - call $~lib/map/Map#delete - drop - local.get $0 - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=4 - local.get $11 - local.get $7 - call $~lib/map/Map#has - i32.eqz - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 44 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $7 - i32.const 1 - i32.add - local.set $7 - br $for-loop|6 - end - end - local.get $0 - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=4 - local.get $11 - call $~lib/map/Map#get:size - i32.const 50 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 46 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 0 - local.set $7 - loop $for-loop|8 - local.get $7 - i32.const 24 - i32.shl - i32.const 24 - i32.shr_s - i32.const 50 - i32.lt_s - local.set $9 - local.get $9 - if - local.get $0 - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=4 - local.get $11 - local.get $7 - call $~lib/map/Map#has - i32.eqz - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 50 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=4 - local.get $11 - local.get $7 - i32.const 10 - local.get $7 - i32.const 24 - i32.shl - i32.const 24 - i32.shr_s - i32.add - call $~lib/map/Map#set - drop - local.get $0 - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=4 - local.get $11 - local.get $7 - call $~lib/map/Map#has - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 52 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=4 - local.get $11 - local.get $7 - call $~lib/map/Map#delete - drop - local.get $0 - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=4 - local.get $11 - local.get $7 - call $~lib/map/Map#has - i32.eqz - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 54 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $7 - i32.const 1 - i32.add - local.set $7 - br $for-loop|8 - end - end - local.get $0 - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=4 - local.get $11 - call $~lib/map/Map#get:size - i32.const 50 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 56 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=4 - local.get $11 - call $~lib/map/Map#clear - local.get $0 - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=4 - local.get $11 - call $~lib/map/Map#get:size - i32.const 0 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - 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 - ) - (func $~lib/map/Map#has (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 - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - local.get $0 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store - local.get $3 - local.get $1 - block $~lib/util/hash/HASH|inlined.0 (result i32) - local.get $1 - local.set $2 - i32.const 0 - drop - i32.const 0 - drop - i32.const 0 - drop - i32.const 1 - i32.const 1 - i32.eq - drop - local.get $2 - i32.const 255 - i32.and - call $~lib/util/hash/hash8 - br $~lib/util/hash/HASH|inlined.0 - end - call $~lib/map/Map#find - i32.const 0 - i32.ne - local.set $3 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $3 - ) - (func $~lib/map/Map#set (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 - call $~stack_check - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - block $~lib/util/hash/HASH|inlined.1 (result i32) - local.get $1 - local.set $3 - i32.const 0 - drop - i32.const 0 - drop - i32.const 0 - drop - i32.const 1 - i32.const 1 - i32.eq - drop - local.get $3 - i32.const 255 - i32.and - call $~lib/util/hash/hash8 - br $~lib/util/hash/HASH|inlined.1 - end - local.set $4 - local.get $0 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store - local.get $7 - local.get $1 - local.get $4 - call $~lib/map/Map#find - local.set $5 - local.get $5 - if - local.get $5 - local.get $2 - call $~lib/map/MapEntry#set:value - i32.const 0 - drop - else - local.get $0 - i32.load offset=16 - local.get $0 - i32.load offset=12 - i32.eq - if - local.get $0 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store - local.get $7 - local.get $0 - i32.load offset=20 - 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 $0 - i32.load offset=4 - else - 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.load offset=8 - local.tee $3 - i32.store offset=4 - local.get $3 - local.get $0 - local.get $0 - i32.load offset=16 - local.tee $6 - i32.const 1 - i32.add - call $~lib/map/Map#set:entriesOffset - local.get $6 - i32.const 12 - i32.mul - i32.add - local.set $5 - local.get $5 - local.get $1 - call $~lib/map/MapEntry#set:key - i32.const 0 - drop - local.get $5 - local.get $2 - call $~lib/map/MapEntry#set:value - i32.const 0 - drop - local.get $0 - local.get $0 - i32.load offset=20 - i32.const 1 - i32.add - call $~lib/map/Map#set:entriesCount - local.get $0 - i32.load - local.get $4 - local.get $0 - i32.load offset=4 - i32.and - i32.const 4 - i32.mul - i32.add - local.set $6 - local.get $5 - local.get $6 - i32.load - call $~lib/map/MapEntry#set:taggedNext - local.get $6 - local.get $5 - i32.store - end - local.get $0 - local.set $7 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $7 - ) - (func $~lib/map/Map#get (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 - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - local.get $0 - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store - local.get $4 - local.get $1 - block $~lib/util/hash/HASH|inlined.3 (result i32) - local.get $1 - local.set $2 - i32.const 0 - drop - i32.const 0 - drop - i32.const 0 - drop - i32.const 1 - i32.const 1 - i32.eq - drop - local.get $2 - i32.const 255 - i32.and - call $~lib/util/hash/hash8 - br $~lib/util/hash/HASH|inlined.3 - end - call $~lib/map/Map#find - local.set $3 - local.get $3 - i32.eqz - if - i32.const 592 - i32.const 656 - i32.const 105 - i32.const 17 - call $~lib/builtins/abort - unreachable - end - local.get $3 - i32.load offset=4 - local.set $4 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $4 - ) - (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 - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 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 224 - i32.const 704 - i32.const 108 - i32.const 22 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.get $1 - i32.const 1 - i32.add - i32.const 0 - call $~lib/array/ensureSize - local.get $0 - local.get $1 - i32.const 1 - i32.add - call $~lib/array/Array#set:length_ - end - local.get $0 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store - local.get $3 - local.get $1 - local.get $2 - call $~lib/array/Array#__uset - 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 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - local.get $0 - i32.load offset=8 - local.set $1 - local.get $0 - i32.load offset=16 - local.set $2 - global.get $~lib/memory/__stack_pointer - i32.const 0 - local.get $2 - call $~lib/array/Array#constructor - local.tee $3 - i32.store - i32.const 0 - local.set $4 - i32.const 0 - local.set $5 - loop $for-loop|0 - local.get $5 - local.get $2 - i32.lt_s - local.set $6 - local.get $6 - if - local.get $1 - local.get $5 - i32.const 12 - i32.mul - i32.add - local.set $7 - local.get $7 - i32.load offset=8 - i32.const 1 - i32.and - i32.eqz - if - local.get $3 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - local.get $4 - local.tee $8 - i32.const 1 - i32.add - local.set $4 - local.get $8 - local.get $7 - i32.load8_u - call $~lib/array/Array#__set - end - local.get $5 - i32.const 1 - i32.add - local.set $5 - br $for-loop|0 - end - end - local.get $3 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - local.get $4 - call $~lib/array/Array#set:length - local.get $3 - local.set $9 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $9 - ) - (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) - (local $9 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 $0 - i32.load offset=8 - local.set $1 - local.get $0 - i32.load offset=16 - local.set $2 - global.get $~lib/memory/__stack_pointer - i32.const 0 - local.get $2 - call $~lib/array/Array#constructor - local.tee $3 - i32.store - i32.const 0 - local.set $4 - i32.const 0 - local.set $5 - loop $for-loop|0 - local.get $5 - local.get $2 - i32.lt_s - local.set $6 - local.get $6 - if - local.get $1 - local.get $5 - i32.const 12 - i32.mul - i32.add - local.set $7 - local.get $7 - i32.load offset=8 - i32.const 1 - i32.and - i32.eqz - if - local.get $3 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - local.get $4 - local.tee $8 - i32.const 1 - i32.add - local.set $4 - local.get $8 - local.get $7 - i32.load offset=4 - call $~lib/array/Array#__set - end - local.get $5 - i32.const 1 - i32.add - local.set $5 - br $for-loop|0 - end - end - local.get $3 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - local.get $4 - call $~lib/array/Array#set:length - local.get $3 - local.set $9 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $9 - ) - (func $~lib/map/Map#set (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 - call $~stack_check - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - block $~lib/util/hash/HASH|inlined.4 (result i32) - local.get $1 - local.set $3 - i32.const 0 - drop - i32.const 0 - drop - i32.const 0 - drop - i32.const 1 - i32.const 1 - i32.eq - drop - local.get $3 - i32.const 255 - i32.and - call $~lib/util/hash/hash8 - br $~lib/util/hash/HASH|inlined.4 - end - local.set $4 - local.get $0 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store - local.get $7 - local.get $1 - local.get $4 - call $~lib/map/Map#find - local.set $5 - local.get $5 - if - local.get $5 - local.get $2 - call $~lib/map/MapEntry#set:value - i32.const 0 - drop - else - local.get $0 - i32.load offset=16 - local.get $0 - i32.load offset=12 - i32.eq - if - local.get $0 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store - local.get $7 - local.get $0 - i32.load offset=20 - 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 $0 - i32.load offset=4 - else - 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.load offset=8 - local.tee $3 - i32.store offset=4 - local.get $3 - local.get $0 - local.get $0 - i32.load offset=16 - local.tee $6 - i32.const 1 - i32.add - call $~lib/map/Map#set:entriesOffset - local.get $6 - i32.const 8 - i32.mul - i32.add - local.set $5 - local.get $5 - local.get $1 - call $~lib/map/MapEntry#set:key - i32.const 0 - drop - local.get $5 - local.get $2 - call $~lib/map/MapEntry#set:value - i32.const 0 - drop - local.get $0 - local.get $0 - i32.load offset=20 - i32.const 1 - i32.add - call $~lib/map/Map#set:entriesCount - local.get $0 - i32.load - local.get $4 - local.get $0 - i32.load offset=4 - i32.and - i32.const 4 - i32.mul - i32.add - local.set $6 - local.get $5 - local.get $6 - i32.load - call $~lib/map/MapEntry#set:taggedNext - local.get $6 - local.get $5 - i32.store - end - local.get $0 - local.set $7 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $7 - ) - (func $~lib/map/Map#delete (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.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - local.get $0 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - local.get $1 - block $~lib/util/hash/HASH|inlined.6 (result i32) - local.get $1 - local.set $2 - i32.const 0 - drop - i32.const 0 - drop - i32.const 0 - drop - i32.const 1 - i32.const 1 - i32.eq - drop - local.get $2 - i32.const 255 - i32.and - call $~lib/util/hash/hash8 - br $~lib/util/hash/HASH|inlined.6 - end - call $~lib/map/Map#find - local.set $3 - local.get $3 - i32.eqz - if - i32.const 0 - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - return - end - local.get $3 - local.get $3 - i32.load offset=8 - i32.const 1 - i32.or - call $~lib/map/MapEntry#set:taggedNext - local.get $0 - local.get $0 - i32.load offset=20 - i32.const 1 - i32.sub - call $~lib/map/Map#set:entriesCount - local.get $0 - i32.load offset=4 - i32.const 1 - i32.shr_u - local.set $4 - local.get $4 - i32.const 1 - i32.add - i32.const 4 - local.tee $2 - local.get $0 - i32.load offset=20 - local.tee $5 - local.get $2 - local.get $5 - i32.gt_u - select - i32.ge_u - if (result i32) - local.get $0 - i32.load offset=20 - 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 $0 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - local.get $4 - call $~lib/map/Map#rehash - end - i32.const 1 - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - ) - (func $std/map/testNumeric - (local $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - (local $10 i32) - (local $11 i32) - global.get $~lib/memory/__stack_pointer - 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 - i64.const 0 - i64.store offset=8 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=16 - global.get $~lib/memory/__stack_pointer - i32.const 0 - call $~lib/map/Map#constructor - local.tee $0 - i32.store - i32.const 0 - local.set $1 - loop $for-loop|1 - local.get $1 - i32.const 255 - i32.and - i32.const 100 - i32.lt_u - local.set $3 - local.get $3 - if - local.get $0 - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=4 - local.get $11 - local.get $1 - call $~lib/map/Map#has - i32.eqz - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 6 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=4 - local.get $11 - local.get $1 - i32.const 10 - local.get $1 - i32.const 255 - i32.and - i32.add - call $~lib/map/Map#set - drop - local.get $0 - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=4 - local.get $11 - local.get $1 - call $~lib/map/Map#has - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 8 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=4 - local.get $11 - local.get $1 - call $~lib/map/Map#get - i32.const 10 - local.get $1 - i32.const 255 - i32.and - i32.add - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 9 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i32.const 1 - i32.add - local.set $1 - br $for-loop|1 - end - end - local.get $0 - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=4 - local.get $11 - call $~lib/map/Map#get:size - i32.const 100 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 11 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 0 - local.set $1 - loop $for-loop|3 - local.get $1 - i32.const 255 - i32.and - i32.const 100 - i32.lt_u - local.set $4 - local.get $4 - if - local.get $0 - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=4 - local.get $11 - local.get $1 - call $~lib/map/Map#has - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 15 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=4 - local.get $11 - local.get $1 - call $~lib/map/Map#get - i32.const 10 - local.get $1 - i32.const 255 - i32.and - i32.add - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 16 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=4 - local.get $11 - local.get $1 - i32.const 20 - local.get $1 - i32.const 255 - i32.and - i32.add - call $~lib/map/Map#set - drop - local.get $0 - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=4 - local.get $11 - local.get $1 - call $~lib/map/Map#has - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 18 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=4 - local.get $11 - local.get $1 - call $~lib/map/Map#get - i32.const 20 - local.get $1 - i32.const 255 - i32.and - i32.add - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 19 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i32.const 1 - i32.add - local.set $1 - br $for-loop|3 - end - end - local.get $0 - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=4 - local.get $11 - call $~lib/map/Map#get:size - i32.const 100 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 21 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=4 - local.get $11 - call $~lib/map/Map#keys - local.tee $1 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=4 - local.get $11 - call $~lib/map/Map#values - local.tee $4 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 0 - call $~lib/map/Map#constructor - local.tee $5 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - i32.const 0 - call $~lib/map/Map#constructor - local.tee $6 - i32.store offset=20 - i32.const 0 - local.set $7 - loop $for-loop|4 - local.get $7 - local.get $1 - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=4 - local.get $11 - call $~lib/array/Array#get:length - i32.lt_s - local.set $8 - local.get $8 - if - local.get $1 - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=4 - local.get $11 - local.get $7 - call $~lib/array/Array#__get - local.set $9 - local.get $4 - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=4 - local.get $11 - local.get $7 - call $~lib/array/Array#__get - local.set $10 - local.get $0 - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=4 - local.get $11 - local.get $9 - call $~lib/map/Map#has - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 31 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=4 - local.get $11 - local.get $10 - i32.const 20 - i32.sub - call $~lib/map/Map#has - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 32 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $5 - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=4 - local.get $11 - local.get $9 - local.get $9 - call $~lib/map/Map#set - drop - local.get $6 - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=4 - local.get $11 - local.get $10 - i32.const 20 - i32.sub - local.get $10 - i32.const 20 - i32.sub - call $~lib/map/Map#set - drop - local.get $7 - i32.const 1 - i32.add - local.set $7 - br $for-loop|4 - end - end - local.get $5 - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=4 - local.get $11 - call $~lib/map/Map#get:size - i32.const 100 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 36 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $6 - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=4 - local.get $11 - call $~lib/map/Map#get:size - i32.const 100 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 37 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 0 - local.set $7 - loop $for-loop|6 - local.get $7 - i32.const 255 - i32.and - i32.const 50 - i32.lt_u - local.set $10 - local.get $10 - if - local.get $0 - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=4 - local.get $11 - local.get $7 - call $~lib/map/Map#has - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 41 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=4 - local.get $11 - local.get $7 - call $~lib/map/Map#get - i32.const 20 - local.get $7 - i32.const 255 - i32.and - i32.add - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 42 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=4 - local.get $11 - local.get $7 - call $~lib/map/Map#delete - drop - local.get $0 - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=4 - local.get $11 - local.get $7 - call $~lib/map/Map#has - i32.eqz - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 44 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $7 - i32.const 1 - i32.add - local.set $7 - br $for-loop|6 - end - end - local.get $0 - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=4 - local.get $11 - call $~lib/map/Map#get:size - i32.const 50 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 46 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 0 - local.set $7 - loop $for-loop|8 - local.get $7 - i32.const 255 - i32.and - i32.const 50 - i32.lt_u - local.set $9 - local.get $9 - if - local.get $0 - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=4 - local.get $11 - local.get $7 - call $~lib/map/Map#has - i32.eqz - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 50 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=4 - local.get $11 - local.get $7 - i32.const 10 - local.get $7 - i32.const 255 - i32.and - i32.add - call $~lib/map/Map#set - drop - local.get $0 - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=4 - local.get $11 - local.get $7 - call $~lib/map/Map#has - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 52 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=4 - local.get $11 - local.get $7 - call $~lib/map/Map#delete - drop - local.get $0 - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=4 - local.get $11 - local.get $7 - call $~lib/map/Map#has - i32.eqz - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 54 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $7 - i32.const 1 - i32.add - local.set $7 - br $for-loop|8 - end - end - local.get $0 - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=4 - local.get $11 - call $~lib/map/Map#get:size - i32.const 50 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 56 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=4 - local.get $11 - call $~lib/map/Map#clear - local.get $0 - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=4 - local.get $11 - call $~lib/map/Map#get:size - i32.const 0 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - 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 - ) - (func $~lib/map/Map#has (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 - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - local.get $0 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store - local.get $3 - local.get $1 - block $~lib/util/hash/HASH|inlined.0 (result i32) - local.get $1 - local.set $2 - i32.const 0 - drop - i32.const 0 - drop - i32.const 0 - drop - i32.const 2 - i32.const 1 - i32.eq - drop - i32.const 2 - i32.const 2 - i32.eq - drop - local.get $2 - i32.const 16 - i32.shl - i32.const 16 - i32.shr_s - call $~lib/util/hash/hash16 - br $~lib/util/hash/HASH|inlined.0 - end - call $~lib/map/Map#find - i32.const 0 - i32.ne - local.set $3 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $3 - ) - (func $~lib/map/Map#set (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 - call $~stack_check - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - block $~lib/util/hash/HASH|inlined.1 (result i32) - local.get $1 - local.set $3 - i32.const 0 - drop - i32.const 0 - drop - i32.const 0 - drop - i32.const 2 - i32.const 1 - i32.eq - drop - i32.const 2 - i32.const 2 - i32.eq - drop - local.get $3 - i32.const 16 - i32.shl - i32.const 16 - i32.shr_s - call $~lib/util/hash/hash16 - br $~lib/util/hash/HASH|inlined.1 - end - local.set $4 - local.get $0 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store - local.get $7 - local.get $1 - local.get $4 - call $~lib/map/Map#find - local.set $5 - local.get $5 - if - local.get $5 - local.get $2 - call $~lib/map/MapEntry#set:value - i32.const 0 - drop - else - local.get $0 - i32.load offset=16 - local.get $0 - i32.load offset=12 - i32.eq - if - local.get $0 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store - local.get $7 - local.get $0 - i32.load offset=20 - 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 $0 - i32.load offset=4 - else - 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.load offset=8 - local.tee $3 - i32.store offset=4 - local.get $3 - local.get $0 - local.get $0 - i32.load offset=16 - local.tee $6 - i32.const 1 - i32.add - call $~lib/map/Map#set:entriesOffset - local.get $6 - i32.const 12 - i32.mul - i32.add - local.set $5 - local.get $5 - local.get $1 - call $~lib/map/MapEntry#set:key - i32.const 0 - drop - local.get $5 - local.get $2 - call $~lib/map/MapEntry#set:value - i32.const 0 - drop - local.get $0 - local.get $0 - i32.load offset=20 - i32.const 1 - i32.add - call $~lib/map/Map#set:entriesCount - local.get $0 - i32.load - local.get $4 - local.get $0 - i32.load offset=4 - i32.and - i32.const 4 - i32.mul - i32.add - local.set $6 - local.get $5 - local.get $6 - i32.load - call $~lib/map/MapEntry#set:taggedNext - local.get $6 - local.get $5 - i32.store - end - local.get $0 - local.set $7 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $7 - ) - (func $~lib/map/Map#get (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 - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - local.get $0 - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store - local.get $4 - local.get $1 - block $~lib/util/hash/HASH|inlined.3 (result i32) - local.get $1 - local.set $2 - i32.const 0 - drop - i32.const 0 - drop - i32.const 0 - drop - i32.const 2 - i32.const 1 - i32.eq - drop - i32.const 2 - i32.const 2 - i32.eq - drop - local.get $2 - i32.const 16 - i32.shl - i32.const 16 - i32.shr_s - call $~lib/util/hash/hash16 - br $~lib/util/hash/HASH|inlined.3 - end - call $~lib/map/Map#find - local.set $3 - local.get $3 - i32.eqz - if - i32.const 592 - i32.const 656 - i32.const 105 - i32.const 17 - call $~lib/builtins/abort - unreachable - end - local.get $3 - i32.load offset=4 - local.set $4 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $4 - ) - (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 - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 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 224 - i32.const 704 - i32.const 108 - i32.const 22 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.get $1 - i32.const 1 - i32.add - i32.const 1 - call $~lib/array/ensureSize - local.get $0 - local.get $1 - i32.const 1 - i32.add - call $~lib/array/Array#set:length_ - end - local.get $0 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store - local.get $3 - local.get $1 - local.get $2 - call $~lib/array/Array#__uset - 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 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - local.get $0 - i32.load offset=8 - local.set $1 - local.get $0 - i32.load offset=16 - local.set $2 - global.get $~lib/memory/__stack_pointer - i32.const 0 - local.get $2 - call $~lib/array/Array#constructor - local.tee $3 - i32.store - i32.const 0 - local.set $4 - i32.const 0 - local.set $5 - loop $for-loop|0 - local.get $5 - local.get $2 - i32.lt_s - local.set $6 - local.get $6 - if - local.get $1 - local.get $5 - i32.const 12 - i32.mul - i32.add - local.set $7 - local.get $7 - i32.load offset=8 - i32.const 1 - i32.and - i32.eqz - if - local.get $3 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - local.get $4 - local.tee $8 - i32.const 1 - i32.add - local.set $4 - local.get $8 - local.get $7 - i32.load16_s - call $~lib/array/Array#__set - end - local.get $5 - i32.const 1 - i32.add - local.set $5 - br $for-loop|0 - end - end - local.get $3 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - local.get $4 - call $~lib/array/Array#set:length - local.get $3 - local.set $9 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $9 - ) - (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) - (local $9 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 $0 - i32.load offset=8 - local.set $1 - local.get $0 - i32.load offset=16 - local.set $2 - global.get $~lib/memory/__stack_pointer - i32.const 0 - local.get $2 - call $~lib/array/Array#constructor - local.tee $3 - i32.store - i32.const 0 - local.set $4 - i32.const 0 - local.set $5 - loop $for-loop|0 - local.get $5 - local.get $2 - i32.lt_s - local.set $6 - local.get $6 - if - local.get $1 - local.get $5 - i32.const 12 - i32.mul - i32.add - local.set $7 - local.get $7 - i32.load offset=8 - i32.const 1 - i32.and - i32.eqz - if - local.get $3 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - local.get $4 - local.tee $8 - i32.const 1 - i32.add - local.set $4 - local.get $8 - local.get $7 - i32.load offset=4 - call $~lib/array/Array#__set - end - local.get $5 - i32.const 1 - i32.add - local.set $5 - br $for-loop|0 - end - end - local.get $3 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - local.get $4 - call $~lib/array/Array#set:length - local.get $3 - local.set $9 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $9 - ) - (func $~lib/map/Map#set (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 - call $~stack_check - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - block $~lib/util/hash/HASH|inlined.4 (result i32) - local.get $1 - local.set $3 - i32.const 0 - drop - i32.const 0 - drop - i32.const 0 - drop - i32.const 2 - i32.const 1 - i32.eq - drop - i32.const 2 - i32.const 2 - i32.eq - drop - local.get $3 - i32.const 16 - i32.shl - i32.const 16 - i32.shr_s - call $~lib/util/hash/hash16 - br $~lib/util/hash/HASH|inlined.4 - end - local.set $4 - local.get $0 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store - local.get $7 - local.get $1 - local.get $4 - call $~lib/map/Map#find - local.set $5 - local.get $5 - if - local.get $5 - local.get $2 - call $~lib/map/MapEntry#set:value - i32.const 0 - drop - else - local.get $0 - i32.load offset=16 - local.get $0 - i32.load offset=12 - i32.eq - if - local.get $0 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store - local.get $7 - local.get $0 - i32.load offset=20 - 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 $0 - i32.load offset=4 - else - 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.load offset=8 - local.tee $3 - i32.store offset=4 - local.get $3 - local.get $0 - local.get $0 - i32.load offset=16 - local.tee $6 - i32.const 1 - i32.add - call $~lib/map/Map#set:entriesOffset - local.get $6 - i32.const 8 - i32.mul - i32.add - local.set $5 - local.get $5 - local.get $1 - call $~lib/map/MapEntry#set:key - i32.const 0 - drop - local.get $5 - local.get $2 - call $~lib/map/MapEntry#set:value - i32.const 0 - drop - local.get $0 - local.get $0 - i32.load offset=20 - i32.const 1 - i32.add - call $~lib/map/Map#set:entriesCount - local.get $0 - i32.load - local.get $4 - local.get $0 - i32.load offset=4 - i32.and - i32.const 4 - i32.mul - i32.add - local.set $6 - local.get $5 - local.get $6 - i32.load - call $~lib/map/MapEntry#set:taggedNext - local.get $6 - local.get $5 - i32.store - end - local.get $0 - local.set $7 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $7 - ) - (func $~lib/map/Map#delete (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.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - local.get $0 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - local.get $1 - block $~lib/util/hash/HASH|inlined.6 (result i32) - local.get $1 - local.set $2 - i32.const 0 - drop - i32.const 0 - drop - i32.const 0 - drop - i32.const 2 - i32.const 1 - i32.eq - drop - i32.const 2 - i32.const 2 - i32.eq - drop - local.get $2 - i32.const 16 - i32.shl - i32.const 16 - i32.shr_s - call $~lib/util/hash/hash16 - br $~lib/util/hash/HASH|inlined.6 - end - call $~lib/map/Map#find - local.set $3 - local.get $3 - i32.eqz - if - i32.const 0 - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - return - end - local.get $3 - local.get $3 - i32.load offset=8 - i32.const 1 - i32.or - call $~lib/map/MapEntry#set:taggedNext - local.get $0 - local.get $0 - i32.load offset=20 - i32.const 1 - i32.sub - call $~lib/map/Map#set:entriesCount - local.get $0 - i32.load offset=4 - i32.const 1 - i32.shr_u - local.set $4 - local.get $4 - i32.const 1 - i32.add - i32.const 4 - local.tee $2 - local.get $0 - i32.load offset=20 - local.tee $5 - local.get $2 - local.get $5 - i32.gt_u - select - i32.ge_u - if (result i32) - local.get $0 - i32.load offset=20 - 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 $0 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - local.get $4 - call $~lib/map/Map#rehash - end - i32.const 1 - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - ) - (func $std/map/testNumeric - (local $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - (local $10 i32) - (local $11 i32) - global.get $~lib/memory/__stack_pointer - 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 - i64.const 0 - i64.store offset=8 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=16 - global.get $~lib/memory/__stack_pointer - i32.const 0 - call $~lib/map/Map#constructor - local.tee $0 - i32.store - i32.const 0 - local.set $1 - loop $for-loop|1 - local.get $1 - i32.const 16 - i32.shl - i32.const 16 - i32.shr_s - i32.const 100 - i32.lt_s - local.set $3 - local.get $3 - if - local.get $0 - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=4 - local.get $11 - local.get $1 - call $~lib/map/Map#has - i32.eqz - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 6 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=4 - local.get $11 - local.get $1 - i32.const 10 - local.get $1 - i32.const 16 - i32.shl - i32.const 16 - i32.shr_s - i32.add - call $~lib/map/Map#set - drop - local.get $0 - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=4 - local.get $11 - local.get $1 - call $~lib/map/Map#has - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 8 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=4 - local.get $11 - local.get $1 - call $~lib/map/Map#get - i32.const 10 - local.get $1 - i32.const 16 - i32.shl - i32.const 16 - i32.shr_s - i32.add - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 9 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i32.const 1 - i32.add - local.set $1 - br $for-loop|1 - end - end - local.get $0 - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=4 - local.get $11 - call $~lib/map/Map#get:size - i32.const 100 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 11 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 0 - local.set $1 - loop $for-loop|3 - local.get $1 - i32.const 16 - i32.shl - i32.const 16 - i32.shr_s - i32.const 100 - i32.lt_s - local.set $4 - local.get $4 - if - local.get $0 - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=4 - local.get $11 - local.get $1 - call $~lib/map/Map#has - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 15 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=4 - local.get $11 - local.get $1 - call $~lib/map/Map#get - i32.const 10 - local.get $1 - i32.const 16 - i32.shl - i32.const 16 - i32.shr_s - i32.add - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 16 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=4 - local.get $11 - local.get $1 - i32.const 20 - local.get $1 - i32.const 16 - i32.shl - i32.const 16 - i32.shr_s - i32.add - call $~lib/map/Map#set - drop - local.get $0 - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=4 - local.get $11 - local.get $1 - call $~lib/map/Map#has - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 18 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=4 - local.get $11 - local.get $1 - call $~lib/map/Map#get - i32.const 20 - local.get $1 - i32.const 16 - i32.shl - i32.const 16 - i32.shr_s - i32.add - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 19 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i32.const 1 - i32.add - local.set $1 - br $for-loop|3 - end - end - local.get $0 - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=4 - local.get $11 - call $~lib/map/Map#get:size - i32.const 100 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 21 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=4 - local.get $11 - call $~lib/map/Map#keys - local.tee $1 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=4 - local.get $11 - call $~lib/map/Map#values - local.tee $4 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 0 - call $~lib/map/Map#constructor - local.tee $5 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - i32.const 0 - call $~lib/map/Map#constructor - local.tee $6 - i32.store offset=20 - i32.const 0 - local.set $7 - loop $for-loop|4 - local.get $7 - local.get $1 - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=4 - local.get $11 - call $~lib/array/Array#get:length - i32.lt_s - local.set $8 - local.get $8 - if - local.get $1 - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=4 - local.get $11 - local.get $7 - call $~lib/array/Array#__get - local.set $9 - local.get $4 - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=4 - local.get $11 - local.get $7 - call $~lib/array/Array#__get - local.set $10 - local.get $0 - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=4 - local.get $11 - local.get $9 - call $~lib/map/Map#has - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 31 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=4 - local.get $11 - local.get $10 - i32.const 20 - i32.sub - call $~lib/map/Map#has - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 32 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $5 - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=4 - local.get $11 - local.get $9 - local.get $9 - call $~lib/map/Map#set - drop - local.get $6 - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=4 - local.get $11 - local.get $10 - i32.const 20 - i32.sub - local.get $10 - i32.const 20 - i32.sub - call $~lib/map/Map#set - drop - local.get $7 - i32.const 1 - i32.add - local.set $7 - br $for-loop|4 - end - end - local.get $5 - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=4 - local.get $11 - call $~lib/map/Map#get:size - i32.const 100 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 36 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $6 - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=4 - local.get $11 - call $~lib/map/Map#get:size - i32.const 100 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 37 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 0 - local.set $7 - loop $for-loop|6 - local.get $7 - i32.const 16 - i32.shl - i32.const 16 - i32.shr_s - i32.const 50 - i32.lt_s - local.set $10 - local.get $10 - if - local.get $0 - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=4 - local.get $11 - local.get $7 - call $~lib/map/Map#has - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 41 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=4 - local.get $11 - local.get $7 - call $~lib/map/Map#get - i32.const 20 - local.get $7 - i32.const 16 - i32.shl - i32.const 16 - i32.shr_s - i32.add - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 42 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=4 - local.get $11 - local.get $7 - call $~lib/map/Map#delete - drop - local.get $0 - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=4 - local.get $11 - local.get $7 - call $~lib/map/Map#has - i32.eqz - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 44 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $7 - i32.const 1 - i32.add - local.set $7 - br $for-loop|6 - end - end - local.get $0 - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=4 - local.get $11 - call $~lib/map/Map#get:size - i32.const 50 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 46 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 0 - local.set $7 - loop $for-loop|8 - local.get $7 - i32.const 16 - i32.shl - i32.const 16 - i32.shr_s - i32.const 50 - i32.lt_s - local.set $9 - local.get $9 - if - local.get $0 - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=4 - local.get $11 - local.get $7 - call $~lib/map/Map#has - i32.eqz - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 50 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=4 - local.get $11 - local.get $7 - i32.const 10 - local.get $7 - i32.const 16 - i32.shl - i32.const 16 - i32.shr_s - i32.add - call $~lib/map/Map#set - drop - local.get $0 - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=4 - local.get $11 - local.get $7 - call $~lib/map/Map#has - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 52 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=4 - local.get $11 - local.get $7 - call $~lib/map/Map#delete - drop - local.get $0 - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=4 - local.get $11 - local.get $7 - call $~lib/map/Map#has - i32.eqz - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 54 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $7 - i32.const 1 - i32.add - local.set $7 - br $for-loop|8 - end - end - local.get $0 - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=4 - local.get $11 - call $~lib/map/Map#get:size - i32.const 50 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 56 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=4 - local.get $11 - call $~lib/map/Map#clear - local.get $0 - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=4 - local.get $11 - call $~lib/map/Map#get:size - i32.const 0 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - 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 - ) - (func $~lib/map/Map#has (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 - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - local.get $0 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store - local.get $3 - local.get $1 - block $~lib/util/hash/HASH|inlined.0 (result i32) - local.get $1 - local.set $2 - i32.const 0 - drop - i32.const 0 - drop - i32.const 0 - drop - i32.const 2 - i32.const 1 - i32.eq - drop - i32.const 2 - i32.const 2 - i32.eq - drop - local.get $2 - i32.const 65535 - i32.and - call $~lib/util/hash/hash16 - br $~lib/util/hash/HASH|inlined.0 - end - call $~lib/map/Map#find - i32.const 0 - i32.ne - local.set $3 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $3 - ) - (func $~lib/map/Map#set (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 - call $~stack_check - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - block $~lib/util/hash/HASH|inlined.1 (result i32) - local.get $1 - local.set $3 - i32.const 0 - drop - i32.const 0 - drop - i32.const 0 - drop - i32.const 2 - i32.const 1 - i32.eq - drop - i32.const 2 - i32.const 2 - i32.eq - drop - local.get $3 - i32.const 65535 - i32.and - call $~lib/util/hash/hash16 - br $~lib/util/hash/HASH|inlined.1 - end - local.set $4 - local.get $0 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store - local.get $7 - local.get $1 - local.get $4 - call $~lib/map/Map#find - local.set $5 - local.get $5 - if - local.get $5 - local.get $2 - call $~lib/map/MapEntry#set:value - i32.const 0 - drop - else - local.get $0 - i32.load offset=16 - local.get $0 - i32.load offset=12 - i32.eq - if - local.get $0 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store - local.get $7 - local.get $0 - i32.load offset=20 - 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 $0 - i32.load offset=4 - else - 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.load offset=8 - local.tee $3 - i32.store offset=4 - local.get $3 - local.get $0 - local.get $0 - i32.load offset=16 - local.tee $6 - i32.const 1 - i32.add - call $~lib/map/Map#set:entriesOffset - local.get $6 - i32.const 12 - i32.mul - i32.add - local.set $5 - local.get $5 - local.get $1 - call $~lib/map/MapEntry#set:key - i32.const 0 - drop - local.get $5 - local.get $2 - call $~lib/map/MapEntry#set:value - i32.const 0 - drop - local.get $0 - local.get $0 - i32.load offset=20 - i32.const 1 - i32.add - call $~lib/map/Map#set:entriesCount - local.get $0 - i32.load - local.get $4 - local.get $0 - i32.load offset=4 - i32.and - i32.const 4 - i32.mul - i32.add - local.set $6 - local.get $5 - local.get $6 - i32.load - call $~lib/map/MapEntry#set:taggedNext - local.get $6 - local.get $5 - i32.store - end - local.get $0 - local.set $7 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $7 - ) - (func $~lib/map/Map#get (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 - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - local.get $0 - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store - local.get $4 - local.get $1 - block $~lib/util/hash/HASH|inlined.3 (result i32) - local.get $1 - local.set $2 - i32.const 0 - drop - i32.const 0 - drop - i32.const 0 - drop - i32.const 2 - i32.const 1 - i32.eq - drop - i32.const 2 - i32.const 2 - i32.eq - drop - local.get $2 - i32.const 65535 - i32.and - call $~lib/util/hash/hash16 - br $~lib/util/hash/HASH|inlined.3 - end - call $~lib/map/Map#find - local.set $3 - local.get $3 - i32.eqz - if - i32.const 592 - i32.const 656 - i32.const 105 - i32.const 17 - call $~lib/builtins/abort - unreachable - end - local.get $3 - i32.load offset=4 - local.set $4 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $4 - ) - (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 - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 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 224 - i32.const 704 - i32.const 108 - i32.const 22 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.get $1 - i32.const 1 - i32.add - i32.const 1 - call $~lib/array/ensureSize - local.get $0 - local.get $1 - i32.const 1 - i32.add - call $~lib/array/Array#set:length_ - end - local.get $0 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store - local.get $3 - local.get $1 - local.get $2 - call $~lib/array/Array#__uset - 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 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - local.get $0 - i32.load offset=8 - local.set $1 - local.get $0 - i32.load offset=16 - local.set $2 - global.get $~lib/memory/__stack_pointer - i32.const 0 - local.get $2 - call $~lib/array/Array#constructor - local.tee $3 - i32.store - i32.const 0 - local.set $4 - i32.const 0 - local.set $5 - loop $for-loop|0 - local.get $5 - local.get $2 - i32.lt_s - local.set $6 - local.get $6 - if - local.get $1 - local.get $5 - i32.const 12 - i32.mul - i32.add - local.set $7 - local.get $7 - i32.load offset=8 - i32.const 1 - i32.and - i32.eqz - if - local.get $3 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - local.get $4 - local.tee $8 - i32.const 1 - i32.add - local.set $4 - local.get $8 - local.get $7 - i32.load16_u - call $~lib/array/Array#__set - end - local.get $5 - i32.const 1 - i32.add - local.set $5 - br $for-loop|0 - end - end - local.get $3 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - local.get $4 - call $~lib/array/Array#set:length - local.get $3 - local.set $9 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $9 - ) - (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) - (local $9 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 4 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $3 + i32.store + local.get $2 + i32.const 8 + i32.mul + i32.const 3 + i32.div_s + local.set $4 + global.get $~lib/memory/__stack_pointer + i32.const 0 + local.get $4 + i32.const 12 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $5 + i32.store offset=4 local.get $0 i32.load offset=8 - local.set $1 + local.set $6 + local.get $6 local.get $0 i32.load offset=16 - local.set $2 - global.get $~lib/memory/__stack_pointer - i32.const 0 - local.get $2 - call $~lib/array/Array#constructor - local.tee $3 - i32.store - i32.const 0 - local.set $4 - i32.const 0 - local.set $5 - loop $for-loop|0 - local.get $5 - local.get $2 - i32.lt_s - local.set $6 + i32.const 12 + i32.mul + i32.add + local.set $7 + local.get $5 + local.set $8 + loop $while-continue|0 local.get $6 + local.get $7 + i32.ne + local.set $9 + local.get $9 if - local.get $1 - local.get $5 - i32.const 12 - i32.mul - i32.add - local.set $7 - local.get $7 + local.get $6 + local.set $10 + local.get $10 i32.load offset=8 i32.const 1 i32.and i32.eqz if - local.get $3 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - local.get $4 - local.tee $8 - i32.const 1 - i32.add - local.set $4 local.get $8 - local.get $7 - i32.load offset=4 - call $~lib/array/Array#__set - end - local.get $5 - i32.const 1 - i32.add - local.set $5 - br $for-loop|0 - end - end - local.get $3 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - local.get $4 - call $~lib/array/Array#set:length - local.get $3 - local.set $9 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $9 - ) - (func $~lib/map/Map#set (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 - call $~stack_check - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - block $~lib/util/hash/HASH|inlined.4 (result i32) - local.get $1 - local.set $3 - i32.const 0 - drop - i32.const 0 - drop - i32.const 0 - drop - i32.const 2 - i32.const 1 - i32.eq - drop - i32.const 2 - i32.const 2 - i32.eq - drop - local.get $3 - i32.const 65535 - i32.and - call $~lib/util/hash/hash16 - br $~lib/util/hash/HASH|inlined.4 - end - local.set $4 - local.get $0 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store - local.get $7 - local.get $1 - local.get $4 - call $~lib/map/Map#find - local.set $5 - local.get $5 - if - local.get $5 - local.get $2 - call $~lib/map/MapEntry#set:value - i32.const 0 - drop - else - local.get $0 - i32.load offset=16 - local.get $0 - i32.load offset=12 - i32.eq - if - local.get $0 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store - local.get $7 - local.get $0 - i32.load offset=20 - 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 $0 - i32.load offset=4 - else - local.get $0 + local.set $11 + local.get $10 + i32.load + local.set $12 + local.get $11 + local.get $12 + call $~lib/map/MapEntry#set:key + local.get $11 + local.get $10 i32.load offset=4 - i32.const 1 - i32.shl - i32.const 1 - i32.or + call $~lib/map/MapEntry#set:value + block $~lib/util/hash/HASH|inlined.5 (result i32) + local.get $12 + local.set $13 + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 4 + i32.const 1 + i32.eq + drop + i32.const 4 + i32.const 2 + i32.eq + drop + i32.const 4 + i32.const 4 + i32.eq + drop + local.get $13 + call $~lib/util/hash/hash32 + br $~lib/util/hash/HASH|inlined.5 + end + local.get $1 + i32.and + local.set $13 + local.get $3 + local.get $13 + i32.const 4 + i32.mul + i32.add + local.set $14 + local.get $11 + local.get $14 + i32.load + call $~lib/map/MapEntry#set:taggedNext + local.get $14 + local.get $8 + i32.store + local.get $8 + i32.const 12 + i32.add + local.set $8 end - call $~lib/map/Map#rehash + local.get $6 + i32.const 12 + i32.add + local.set $6 + br $while-continue|0 end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.load offset=8 - local.tee $3 - i32.store offset=4 - local.get $3 - local.get $0 - local.get $0 - i32.load offset=16 - local.tee $6 - i32.const 1 - i32.add - call $~lib/map/Map#set:entriesOffset - local.get $6 - i32.const 8 - i32.mul - i32.add - local.set $5 - local.get $5 - local.get $1 - call $~lib/map/MapEntry#set:key - i32.const 0 - drop - local.get $5 - local.get $2 - call $~lib/map/MapEntry#set:value - i32.const 0 - drop - local.get $0 - local.get $0 - i32.load offset=20 - i32.const 1 - i32.add - call $~lib/map/Map#set:entriesCount - local.get $0 - i32.load - local.get $4 - local.get $0 - i32.load offset=4 - i32.and - i32.const 4 - i32.mul - i32.add - local.set $6 - local.get $5 - local.get $6 - i32.load - call $~lib/map/MapEntry#set:taggedNext - local.get $6 - local.get $5 - i32.store end local.get $0 - local.set $7 + local.get $3 + call $~lib/map/Map#set:buckets + local.get $0 + local.get $1 + call $~lib/map/Map#set:bucketsMask + local.get $0 + local.get $5 + call $~lib/map/Map#set:entries + local.get $0 + local.get $4 + call $~lib/map/Map#set:entriesCapacity + local.get $0 + local.get $0 + i32.load offset=20 + call $~lib/map/Map#set:entriesOffset global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $7 ) - (func $~lib/map/Map#delete (param $0 i32) (param $1 i32) (result i32) + (func $~lib/map/Map#get:size (param $0 i32) (result i32) + local.get $0 + i32.load offset=20 + ) + (func $~lib/map/Map#delete (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.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store local.get $0 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 local.get $1 - block $~lib/util/hash/HASH|inlined.6 (result i32) + block $~lib/util/hash/HASH|inlined.6 (result i32) local.get $1 local.set $2 i32.const 0 @@ -16267,32 +11050,28 @@ drop i32.const 0 drop - i32.const 2 + i32.const 4 i32.const 1 i32.eq drop + i32.const 4 i32.const 2 - i32.const 2 + i32.eq + drop + i32.const 4 + i32.const 4 i32.eq drop local.get $2 - i32.const 65535 - i32.and - call $~lib/util/hash/hash16 - br $~lib/util/hash/HASH|inlined.6 + call $~lib/util/hash/hash32 + br $~lib/util/hash/HASH|inlined.6 end - call $~lib/map/Map#find + call $~lib/map/Map#find local.set $3 local.get $3 i32.eqz if i32.const 0 - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 return end local.get $3 @@ -16300,13 +11079,13 @@ i32.load offset=8 i32.const 1 i32.or - call $~lib/map/MapEntry#set:taggedNext + call $~lib/map/MapEntry#set:taggedNext local.get $0 local.get $0 i32.load offset=20 i32.const 1 i32.sub - call $~lib/map/Map#set:entriesCount + call $~lib/map/Map#set:entriesCount local.get $0 i32.load offset=4 i32.const 1 @@ -16340,23 +11119,42 @@ end if local.get $0 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 local.get $4 - call $~lib/map/Map#rehash + call $~lib/map/Map#rehash end i32.const 1 - local.set $6 - global.get $~lib/memory/__stack_pointer + ) + (func $~lib/map/Map#clear (param $0 i32) + local.get $0 + i32.const 0 i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 + i32.const 4 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + call $~lib/map/Map#set:buckets + local.get $0 + i32.const 4 + i32.const 1 + i32.sub + call $~lib/map/Map#set:bucketsMask + local.get $0 + i32.const 0 + i32.const 4 + i32.const 12 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + call $~lib/map/Map#set:entries + local.get $0 + i32.const 4 + call $~lib/map/Map#set:entriesCapacity + local.get $0 + i32.const 0 + call $~lib/map/Map#set:entriesOffset + local.get $0 + i32.const 0 + call $~lib/map/Map#set:entriesCount ) - (func $std/map/testNumeric + (func $std/map/testNumeric (local $0 i32) (local $1 i32) (local $2 i32) @@ -16366,11 +11164,8 @@ (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 20 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check @@ -16381,32 +11176,25 @@ i64.const 0 i64.store offset=8 global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=16 + i32.const 0 + 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 $0 i32.store i32.const 0 local.set $1 - loop $for-loop|1 + loop $for-loop|0 local.get $1 - i32.const 65535 - i32.and i32.const 100 i32.lt_u - local.set $3 - local.get $3 + local.set $2 + local.get $2 if local.get $0 - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=4 - local.get $11 local.get $1 - call $~lib/map/Map#has + call $~lib/map/Map#has i32.eqz i32.eqz if @@ -16418,27 +11206,15 @@ unreachable end local.get $0 - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=4 - local.get $11 local.get $1 i32.const 10 local.get $1 - i32.const 65535 - i32.and i32.add - call $~lib/map/Map#set + call $~lib/map/Map#set drop local.get $0 - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=4 - local.get $11 local.get $1 - call $~lib/map/Map#has + call $~lib/map/Map#has i32.eqz if i32.const 0 @@ -16449,17 +11225,10 @@ unreachable end local.get $0 - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=4 - local.get $11 local.get $1 - call $~lib/map/Map#get + call $~lib/map/Map#get i32.const 10 local.get $1 - i32.const 65535 - i32.and i32.add i32.eq i32.eqz @@ -16474,17 +11243,12 @@ local.get $1 i32.const 1 i32.add - local.set $1 - br $for-loop|1 - end - end - local.get $0 - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=4 - local.get $11 - call $~lib/map/Map#get:size + local.set $1 + br $for-loop|0 + end + end + local.get $0 + call $~lib/map/Map#get:size i32.const 100 i32.eq i32.eqz @@ -16498,23 +11262,16 @@ end i32.const 0 local.set $1 - loop $for-loop|3 + loop $for-loop|1 local.get $1 - i32.const 65535 - i32.and i32.const 100 i32.lt_u - local.set $4 - local.get $4 + local.set $2 + local.get $2 if local.get $0 - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=4 - local.get $11 local.get $1 - call $~lib/map/Map#has + call $~lib/map/Map#has i32.eqz if i32.const 0 @@ -16525,17 +11282,10 @@ unreachable end local.get $0 - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=4 - local.get $11 local.get $1 - call $~lib/map/Map#get + call $~lib/map/Map#get i32.const 10 local.get $1 - i32.const 65535 - i32.and i32.add i32.eq i32.eqz @@ -16548,27 +11298,15 @@ unreachable end local.get $0 - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=4 - local.get $11 local.get $1 i32.const 20 local.get $1 - i32.const 65535 - i32.and i32.add - call $~lib/map/Map#set + call $~lib/map/Map#set drop local.get $0 - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=4 - local.get $11 local.get $1 - call $~lib/map/Map#has + call $~lib/map/Map#has i32.eqz if i32.const 0 @@ -16579,17 +11317,10 @@ unreachable end local.get $0 - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=4 - local.get $11 local.get $1 - call $~lib/map/Map#get + call $~lib/map/Map#get i32.const 20 local.get $1 - i32.const 65535 - i32.and i32.add i32.eq i32.eqz @@ -16605,16 +11336,11 @@ i32.const 1 i32.add local.set $1 - br $for-loop|3 + br $for-loop|1 end end local.get $0 - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=4 - local.get $11 - call $~lib/map/Map#get:size + call $~lib/map/Map#get:size i32.const 100 i32.eq i32.eqz @@ -16628,75 +11354,45 @@ end global.get $~lib/memory/__stack_pointer local.get $0 - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=4 - local.get $11 - call $~lib/map/Map#keys + call $~lib/map/Map#keys local.tee $1 - i32.store offset=8 + i32.store offset=4 global.get $~lib/memory/__stack_pointer local.get $0 - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=4 - local.get $11 - call $~lib/map/Map#values - local.tee $4 - i32.store offset=12 + call $~lib/map/Map#values + local.tee $2 + i32.store offset=8 global.get $~lib/memory/__stack_pointer i32.const 0 - call $~lib/map/Map#constructor - local.tee $5 - i32.store offset=16 + call $~lib/map/Map#constructor + local.tee $3 + i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 0 call $~lib/map/Map#constructor - local.tee $6 - i32.store offset=20 + local.tee $4 + i32.store offset=16 i32.const 0 - local.set $7 - loop $for-loop|4 - local.get $7 + local.set $5 + loop $for-loop|2 + local.get $5 local.get $1 - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=4 - local.get $11 - call $~lib/array/Array#get:length + call $~lib/array/Array#get:length i32.lt_s - local.set $8 - local.get $8 + local.set $6 + local.get $6 if local.get $1 - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=4 - local.get $11 - local.get $7 - call $~lib/array/Array#__get - local.set $9 - local.get $4 - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=4 - local.get $11 - local.get $7 + local.get $5 + call $~lib/array/Array#__get + local.set $7 + local.get $2 + local.get $5 call $~lib/array/Array#__get - local.set $10 + local.set $8 local.get $0 - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=4 - local.get $11 - local.get $9 - call $~lib/map/Map#has + local.get $7 + call $~lib/map/Map#has i32.eqz if i32.const 0 @@ -16707,15 +11403,10 @@ unreachable end local.get $0 - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=4 - local.get $11 - local.get $10 + local.get $8 i32.const 20 i32.sub - call $~lib/map/Map#has + call $~lib/map/Map#has i32.eqz if i32.const 0 @@ -16725,44 +11416,29 @@ call $~lib/builtins/abort unreachable end - local.get $5 - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=4 - local.get $11 - local.get $9 - local.get $9 - call $~lib/map/Map#set + local.get $3 + local.get $7 + local.get $7 + call $~lib/map/Map#set drop - local.get $6 - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=4 - local.get $11 - local.get $10 + local.get $4 + local.get $8 i32.const 20 i32.sub - local.get $10 + local.get $8 i32.const 20 i32.sub call $~lib/map/Map#set drop - local.get $7 + local.get $5 i32.const 1 i32.add - local.set $7 - br $for-loop|4 + local.set $5 + br $for-loop|2 end end - local.get $5 - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=4 - local.get $11 - call $~lib/map/Map#get:size + local.get $3 + call $~lib/map/Map#get:size i32.const 100 i32.eq i32.eqz @@ -16774,12 +11450,7 @@ call $~lib/builtins/abort unreachable end - local.get $6 - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=4 - local.get $11 + local.get $4 call $~lib/map/Map#get:size i32.const 100 i32.eq @@ -16793,24 +11464,17 @@ unreachable end i32.const 0 - local.set $7 - loop $for-loop|6 - local.get $7 - i32.const 65535 - i32.and + local.set $5 + loop $for-loop|3 + local.get $5 i32.const 50 i32.lt_u - local.set $10 - local.get $10 + local.set $6 + local.get $6 if local.get $0 - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=4 - local.get $11 - local.get $7 - call $~lib/map/Map#has + local.get $5 + call $~lib/map/Map#has i32.eqz if i32.const 0 @@ -16821,17 +11485,10 @@ unreachable end local.get $0 - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=4 - local.get $11 - local.get $7 - call $~lib/map/Map#get + local.get $5 + call $~lib/map/Map#get i32.const 20 - local.get $7 - i32.const 65535 - i32.and + local.get $5 i32.add i32.eq i32.eqz @@ -16844,22 +11501,12 @@ unreachable end local.get $0 - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=4 - local.get $11 - local.get $7 - call $~lib/map/Map#delete + local.get $5 + call $~lib/map/Map#delete drop local.get $0 - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=4 - local.get $11 - local.get $7 - call $~lib/map/Map#has + local.get $5 + call $~lib/map/Map#has i32.eqz i32.eqz if @@ -16870,20 +11517,15 @@ call $~lib/builtins/abort unreachable end - local.get $7 + local.get $5 i32.const 1 i32.add - local.set $7 - br $for-loop|6 + local.set $5 + br $for-loop|3 end end local.get $0 - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=4 - local.get $11 - call $~lib/map/Map#get:size + call $~lib/map/Map#get:size i32.const 50 i32.eq i32.eqz @@ -16892,28 +11534,21 @@ i32.const 544 i32.const 46 i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 0 - local.set $7 - loop $for-loop|8 - local.get $7 - i32.const 65535 - i32.and + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $5 + loop $for-loop|4 + local.get $5 i32.const 50 i32.lt_u - local.set $9 - local.get $9 + local.set $6 + local.get $6 if local.get $0 - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=4 - local.get $11 - local.get $7 - call $~lib/map/Map#has + local.get $5 + call $~lib/map/Map#has i32.eqz i32.eqz if @@ -16925,27 +11560,15 @@ unreachable end local.get $0 - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=4 - local.get $11 - local.get $7 + local.get $5 i32.const 10 - local.get $7 - i32.const 65535 - i32.and + local.get $5 i32.add - call $~lib/map/Map#set + call $~lib/map/Map#set drop local.get $0 - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=4 - local.get $11 - local.get $7 - call $~lib/map/Map#has + local.get $5 + call $~lib/map/Map#has i32.eqz if i32.const 0 @@ -16956,160 +11579,462 @@ unreachable end local.get $0 - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=4 - local.get $11 - local.get $7 - call $~lib/map/Map#delete + local.get $5 + call $~lib/map/Map#delete drop local.get $0 - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=4 - local.get $11 - local.get $7 - call $~lib/map/Map#has + local.get $5 + call $~lib/map/Map#has i32.eqz i32.eqz if i32.const 0 - i32.const 544 - i32.const 54 - i32.const 5 - call $~lib/builtins/abort - unreachable + i32.const 544 + i32.const 54 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|4 + end + end + local.get $0 + call $~lib/map/Map#get:size + i32.const 50 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 56 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + call $~lib/map/Map#clear + local.get $0 + call $~lib/map/Map#get:size + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 60 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/map/Map#set:buckets (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + local.get $0 + local.get $1 + i32.const 0 + call $~lib/rt/itcms/__link + ) + (func $~lib/map/Map#set:bucketsMask (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=4 + ) + (func $~lib/map/Map#set:entries (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=8 + local.get $0 + local.get $1 + i32.const 0 + call $~lib/rt/itcms/__link + ) + (func $~lib/map/Map#set:entriesCapacity (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=12 + ) + (func $~lib/map/Map#set:entriesOffset (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=16 + ) + (func $~lib/map/Map#set:entriesCount (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=20 + ) + (func $~lib/util/hash/hash64 (param $0 i64) (result i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + local.get $0 + i32.wrap_i64 + local.set $1 + local.get $0 + i64.const 32 + i64.shr_u + i32.wrap_i64 + local.set $2 + i32.const -2128831035 + local.set $3 + local.get $3 + local.get $1 + i32.const 255 + i32.and + i32.xor + i32.const 16777619 + i32.mul + local.set $3 + local.get $3 + local.get $1 + i32.const 8 + i32.shr_u + i32.const 255 + i32.and + i32.xor + i32.const 16777619 + i32.mul + local.set $3 + local.get $3 + local.get $1 + i32.const 16 + i32.shr_u + i32.const 255 + i32.and + i32.xor + i32.const 16777619 + i32.mul + local.set $3 + local.get $3 + local.get $1 + i32.const 24 + i32.shr_u + i32.xor + i32.const 16777619 + i32.mul + local.set $3 + local.get $3 + local.get $2 + i32.const 255 + i32.and + i32.xor + i32.const 16777619 + i32.mul + local.set $3 + local.get $3 + local.get $2 + i32.const 8 + i32.shr_u + i32.const 255 + i32.and + i32.xor + i32.const 16777619 + i32.mul + local.set $3 + local.get $3 + local.get $2 + i32.const 16 + i32.shr_u + i32.const 255 + i32.and + i32.xor + i32.const 16777619 + i32.mul + local.set $3 + local.get $3 + local.get $2 + i32.const 24 + i32.shr_u + i32.xor + i32.const 16777619 + i32.mul + local.set $3 + local.get $3 + ) + (func $~lib/map/Map#find (param $0 i32) (param $1 i64) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $0 + i32.load + local.get $2 + local.get $0 + i32.load offset=4 + i32.and + i32.const 4 + i32.mul + i32.add + i32.load + local.set $3 + loop $while-continue|0 + local.get $3 + local.set $4 + local.get $4 + if + local.get $3 + i32.load offset=12 + local.set $5 + local.get $5 + i32.const 1 + i32.and + i32.eqz + if (result i32) + local.get $3 + i64.load + local.get $1 + i64.eq + else + i32.const 0 end - local.get $7 + if + local.get $3 + return + end + local.get $5 i32.const 1 - i32.add - local.set $7 - br $for-loop|8 + i32.const -1 + i32.xor + i32.and + local.set $3 + br $while-continue|0 end end + i32.const 0 + ) + (func $~lib/map/Map#has (param $0 i32) (param $1 i64) (result i32) + (local $2 i64) local.get $0 - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=4 - local.get $11 - call $~lib/map/Map#get:size - i32.const 50 - i32.eq - i32.eqz - if + local.get $1 + block $~lib/util/hash/HASH|inlined.0 (result i32) + local.get $1 + local.set $2 i32.const 0 - i32.const 544 - i32.const 56 - i32.const 3 - call $~lib/builtins/abort - unreachable + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 8 + i32.const 1 + i32.eq + drop + i32.const 8 + i32.const 2 + i32.eq + drop + i32.const 8 + i32.const 4 + i32.eq + drop + i32.const 8 + i32.const 8 + i32.eq + drop + local.get $2 + call $~lib/util/hash/hash64 + br $~lib/util/hash/HASH|inlined.0 end + call $~lib/map/Map#find + i32.const 0 + i32.ne + ) + (func $~lib/map/MapEntry#set:value (param $0 i32) (param $1 i32) local.get $0 - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=4 - local.get $11 - call $~lib/map/Map#clear + local.get $1 + i32.store offset=8 + ) + (func $~lib/map/MapEntry#set:key (param $0 i32) (param $1 i64) local.get $0 - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=4 - local.get $11 - call $~lib/map/Map#get:size - i32.const 0 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - 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 + local.get $1 + i64.store ) - (func $~lib/map/Map#has (param $0 i32) (param $1 i32) (result i32) + (func $~lib/map/MapEntry#set:taggedNext (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=12 + ) + (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) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i64) + (local $13 i64) + (local $14 i32) + (local $15 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 + i64.const 0 + i64.store + local.get $1 + i32.const 1 + i32.add + local.set $2 + global.get $~lib/memory/__stack_pointer i32.const 0 + local.get $2 + i32.const 4 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $3 i32.store - local.get $0 - local.set $3 + local.get $2 + i32.const 8 + i32.mul + i32.const 3 + i32.div_s + local.set $4 global.get $~lib/memory/__stack_pointer + i32.const 0 + local.get $4 + i32.const 16 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $5 + i32.store offset=4 + local.get $0 + i32.load offset=8 + local.set $6 + local.get $6 + local.get $0 + i32.load offset=16 + i32.const 16 + i32.mul + i32.add + local.set $7 + local.get $5 + local.set $8 + loop $while-continue|0 + local.get $6 + local.get $7 + i32.ne + local.set $9 + local.get $9 + if + local.get $6 + local.set $10 + local.get $10 + i32.load offset=12 + i32.const 1 + i32.and + i32.eqz + if + local.get $8 + local.set $11 + local.get $10 + i64.load + local.set $12 + local.get $11 + local.get $12 + call $~lib/map/MapEntry#set:key + local.get $11 + local.get $10 + i32.load offset=8 + call $~lib/map/MapEntry#set:value + block $~lib/util/hash/HASH|inlined.2 (result i32) + local.get $12 + local.set $13 + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 8 + i32.const 1 + i32.eq + drop + i32.const 8 + i32.const 2 + i32.eq + drop + i32.const 8 + i32.const 4 + i32.eq + drop + i32.const 8 + i32.const 8 + i32.eq + drop + local.get $13 + call $~lib/util/hash/hash64 + br $~lib/util/hash/HASH|inlined.2 + end + local.get $1 + i32.and + local.set $14 + local.get $3 + local.get $14 + i32.const 4 + i32.mul + i32.add + local.set $15 + local.get $11 + local.get $15 + i32.load + call $~lib/map/MapEntry#set:taggedNext + local.get $15 + local.get $8 + i32.store + local.get $8 + i32.const 16 + i32.add + local.set $8 + end + local.get $6 + i32.const 16 + i32.add + local.set $6 + br $while-continue|0 + end + end + local.get $0 local.get $3 - i32.store - local.get $3 + call $~lib/map/Map#set:buckets + local.get $0 local.get $1 - block $~lib/util/hash/HASH|inlined.2 (result i32) - local.get $1 - local.set $2 - i32.const 0 - drop - i32.const 0 - drop - i32.const 0 - drop - i32.const 4 - i32.const 1 - i32.eq - drop - i32.const 4 - i32.const 2 - i32.eq - drop - i32.const 4 - i32.const 4 - i32.eq - drop - local.get $2 - call $~lib/util/hash/hash32 - br $~lib/util/hash/HASH|inlined.2 - end - call $~lib/map/Map#find - i32.const 0 - i32.ne - local.set $3 + call $~lib/map/Map#set:bucketsMask + local.get $0 + local.get $5 + call $~lib/map/Map#set:entries + local.get $0 + local.get $4 + call $~lib/map/Map#set:entriesCapacity + local.get $0 + local.get $0 + i32.load offset=20 + call $~lib/map/Map#set:entriesOffset global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $3 ) - (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 i64) (result i32) + (local $2 i64) (local $3 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 $0 - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store - local.get $4 local.get $1 - block $~lib/util/hash/HASH|inlined.3 (result i32) + block $~lib/util/hash/HASH|inlined.3 (result i32) local.get $1 local.set $2 i32.const 0 @@ -17118,23 +12043,27 @@ drop i32.const 0 drop - i32.const 4 + i32.const 8 i32.const 1 i32.eq drop - i32.const 4 + i32.const 8 i32.const 2 i32.eq drop + i32.const 8 i32.const 4 - i32.const 4 + i32.eq + drop + i32.const 8 + i32.const 8 i32.eq drop local.get $2 - call $~lib/util/hash/hash32 - br $~lib/util/hash/HASH|inlined.3 + call $~lib/util/hash/hash64 + br $~lib/util/hash/HASH|inlined.3 end - call $~lib/map/Map#find + call $~lib/map/Map#find local.set $3 local.get $3 i32.eqz @@ -17147,108 +12076,225 @@ unreachable end local.get $3 + i32.load offset=8 + ) + (func $~lib/map/Map#get:size (param $0 i32) (result i32) + local.get $0 + i32.load offset=20 + ) + (func $~lib/array/Array#set:buffer (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + local.get $0 + local.get $1 + i32.const 0 + call $~lib/rt/itcms/__link + ) + (func $~lib/array/Array#set:dataStart (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=4 + ) + (func $~lib/array/Array#set:byteLength (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=8 + ) + (func $~lib/array/Array#set:length_ (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=12 + ) + (func $~lib/array/Array#__uset (param $0 i32) (param $1 i32) (param $2 i64) + local.get $0 i32.load offset=4 - local.set $4 - global.get $~lib/memory/__stack_pointer - i32.const 4 + local.get $1 + i32.const 3 + i32.shl i32.add - global.set $~lib/memory/__stack_pointer - local.get $4 + local.get $2 + i64.store + i32.const 0 + drop ) - (func $~lib/map/Map#keys (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) + (func $~lib/array/Array#__set (param $0 i32) (param $1 i32) (param $2 i64) + 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 224 + i32.const 704 + i32.const 108 + i32.const 22 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $1 + i32.const 1 + i32.add + i32.const 3 + call $~lib/array/ensureSize + local.get $0 + local.get $1 + i32.const 1 + i32.add + call $~lib/array/Array#set:length_ + end + local.get $0 + local.get $1 + local.get $2 + call $~lib/array/Array#__uset + ) + (func $~lib/array/Array#set:length (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.const 3 + call $~lib/array/ensureSize + local.get $0 + local.get $1 + call $~lib/array/Array#set:length_ + ) + (func $~lib/map/Map#set:buckets (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + local.get $0 + local.get $1 + i32.const 0 + call $~lib/rt/itcms/__link + ) + (func $~lib/map/Map#set:bucketsMask (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=4 + ) + (func $~lib/map/Map#set:entries (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=8 + local.get $0 + local.get $1 + i32.const 0 + call $~lib/rt/itcms/__link + ) + (func $~lib/map/Map#set:entriesCapacity (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=12 + ) + (func $~lib/map/Map#set:entriesOffset (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=16 + ) + (func $~lib/map/Map#set:entriesCount (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=20 + ) + (func $~lib/array/Array#get:length (param $0 i32) (result i32) + local.get $0 + i32.load offset=12 + ) + (func $~lib/array/Array#__get (param $0 i32) (param $1 i32) (result i64) + (local $2 i64) + local.get $1 + local.get $0 + i32.load offset=12 + i32.ge_u + if + i32.const 224 + i32.const 704 + i32.const 92 + i32.const 42 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 3 + i32.shl + i32.add + i64.load + local.set $2 + i32.const 0 + drop + local.get $2 + ) + (func $~lib/map/Map#find (param $0 i32) (param $1 i64) (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) - 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 $0 - i32.load offset=8 - local.set $1 + (local $5 i32) local.get $0 - i32.load offset=16 - local.set $2 - global.get $~lib/memory/__stack_pointer - i32.const 0 + i32.load local.get $2 - call $~lib/array/Array#constructor - local.tee $3 - i32.store - i32.const 0 - local.set $4 - i32.const 0 - local.set $5 - loop $for-loop|0 - local.get $5 - local.get $2 - i32.lt_s - local.set $6 - local.get $6 + local.get $0 + i32.load offset=4 + i32.and + i32.const 4 + i32.mul + i32.add + i32.load + local.set $3 + loop $while-continue|0 + local.get $3 + local.set $4 + local.get $4 if - local.get $1 + local.get $3 + i32.load offset=16 + local.set $5 local.get $5 - i32.const 12 - i32.mul - i32.add - local.set $7 - local.get $7 - i32.load offset=8 i32.const 1 i32.and i32.eqz + if (result i32) + local.get $3 + i64.load + local.get $1 + i64.eq + else + i32.const 0 + end if local.get $3 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - local.get $4 - local.tee $8 - i32.const 1 - i32.add - local.set $4 - local.get $8 - local.get $7 - i32.load - call $~lib/array/Array#__set + return end local.get $5 i32.const 1 - i32.add - local.set $5 - br $for-loop|0 + i32.const -1 + i32.xor + i32.and + local.set $3 + br $while-continue|0 end end - local.get $3 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - local.get $4 - call $~lib/array/Array#set:length - local.get $3 - local.set $9 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $9 + i32.const 0 ) - (func $~lib/map/Map#values (param $0 i32) (result i32) - (local $1 i32) + (func $~lib/map/MapEntry#set:value (param $0 i32) (param $1 i64) + local.get $0 + local.get $1 + i64.store offset=8 + ) + (func $~lib/map/MapEntry#set:key (param $0 i32) (param $1 i64) + local.get $0 + local.get $1 + i64.store + ) + (func $~lib/map/MapEntry#set:taggedNext (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=16 + ) + (func $~lib/map/Map#rehash (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -17257,6 +12303,12 @@ (local $7 i32) (local $8 i32) (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i64) + (local $13 i64) + (local $14 i32) + (local $15 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -17265,102 +12317,162 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - local.get $0 - i32.load offset=8 - local.set $1 - local.get $0 - i32.load offset=16 + local.get $1 + i32.const 1 + i32.add local.set $2 global.get $~lib/memory/__stack_pointer i32.const 0 local.get $2 - call $~lib/array/Array#constructor + i32.const 4 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor local.tee $3 i32.store - i32.const 0 + local.get $2 + i32.const 8 + i32.mul + i32.const 3 + i32.div_s local.set $4 + global.get $~lib/memory/__stack_pointer i32.const 0 - local.set $5 - loop $for-loop|0 - local.get $5 - local.get $2 - i32.lt_s - local.set $6 + local.get $4 + i32.const 24 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $5 + i32.store offset=4 + local.get $0 + i32.load offset=8 + local.set $6 + local.get $6 + local.get $0 + i32.load offset=16 + i32.const 24 + i32.mul + i32.add + local.set $7 + local.get $5 + local.set $8 + loop $while-continue|0 local.get $6 + local.get $7 + i32.ne + local.set $9 + local.get $9 if - local.get $1 - local.get $5 - i32.const 12 - i32.mul - i32.add - local.set $7 - local.get $7 - i32.load offset=8 + local.get $6 + local.set $10 + local.get $10 + i32.load offset=16 i32.const 1 i32.and i32.eqz if + local.get $8 + local.set $11 + local.get $10 + i64.load + local.set $12 + local.get $11 + local.get $12 + call $~lib/map/MapEntry#set:key + local.get $11 + local.get $10 + i64.load offset=8 + call $~lib/map/MapEntry#set:value + block $~lib/util/hash/HASH|inlined.5 (result i32) + local.get $12 + local.set $13 + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 8 + i32.const 1 + i32.eq + drop + i32.const 8 + i32.const 2 + i32.eq + drop + i32.const 8 + i32.const 4 + i32.eq + drop + i32.const 8 + i32.const 8 + i32.eq + drop + local.get $13 + call $~lib/util/hash/hash64 + br $~lib/util/hash/HASH|inlined.5 + end + local.get $1 + i32.and + local.set $14 local.get $3 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - local.get $4 - local.tee $8 - i32.const 1 + local.get $14 + i32.const 4 + i32.mul i32.add - local.set $4 + local.set $15 + local.get $11 + local.get $15 + i32.load + call $~lib/map/MapEntry#set:taggedNext + local.get $15 local.get $8 - local.get $7 - i32.load offset=4 - call $~lib/array/Array#__set + i32.store + local.get $8 + i32.const 24 + i32.add + local.set $8 end - local.get $5 - i32.const 1 + local.get $6 + i32.const 24 i32.add - local.set $5 - br $for-loop|0 + local.set $6 + br $while-continue|0 end end + local.get $0 local.get $3 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 + call $~lib/map/Map#set:buckets + local.get $0 + local.get $1 + call $~lib/map/Map#set:bucketsMask + local.get $0 + local.get $5 + call $~lib/map/Map#set:entries + local.get $0 local.get $4 - call $~lib/array/Array#set:length - local.get $3 - local.set $9 + call $~lib/map/Map#set:entriesCapacity + local.get $0 + local.get $0 + i32.load offset=20 + call $~lib/map/Map#set:entriesOffset global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $9 ) - (func $~lib/map/Map#delete (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) + (func $~lib/map/Map#get:size (param $0 i32) (result i32) + local.get $0 + i32.load offset=20 + ) + (func $~lib/map/Map#delete (param $0 i32) (param $1 i64) (result i32) + (local $2 i64) (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 - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store local.get $0 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 local.get $1 - block $~lib/util/hash/HASH|inlined.4 (result i32) + block $~lib/util/hash/HASH|inlined.6 (result i32) local.get $1 local.set $2 i32.const 0 @@ -17369,48 +12481,46 @@ drop i32.const 0 drop - i32.const 4 + i32.const 8 i32.const 1 i32.eq drop - i32.const 4 + i32.const 8 i32.const 2 i32.eq drop - i32.const 4 + i32.const 8 i32.const 4 i32.eq drop + i32.const 8 + i32.const 8 + i32.eq + drop local.get $2 - call $~lib/util/hash/hash32 - br $~lib/util/hash/HASH|inlined.4 + call $~lib/util/hash/hash64 + br $~lib/util/hash/HASH|inlined.6 end - call $~lib/map/Map#find + call $~lib/map/Map#find local.set $3 local.get $3 i32.eqz if i32.const 0 - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 return end local.get $3 local.get $3 - i32.load offset=8 + i32.load offset=12 i32.const 1 i32.or - call $~lib/map/MapEntry#set:taggedNext + call $~lib/map/MapEntry#set:taggedNext local.get $0 local.get $0 i32.load offset=20 i32.const 1 i32.sub - call $~lib/map/Map#set:entriesCount + call $~lib/map/Map#set:entriesCount local.get $0 i32.load offset=4 i32.const 1 @@ -17420,12 +12530,12 @@ i32.const 1 i32.add i32.const 4 - local.tee $2 + local.tee $5 local.get $0 i32.load offset=20 - local.tee $5 - local.get $2 + local.tee $6 local.get $5 + local.get $6 i32.gt_u select i32.ge_u @@ -17444,25 +12554,44 @@ end if local.get $0 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 local.get $4 - call $~lib/map/Map#rehash + call $~lib/map/Map#rehash end i32.const 1 - local.set $6 - global.get $~lib/memory/__stack_pointer + ) + (func $~lib/map/Map#clear (param $0 i32) + local.get $0 + i32.const 0 i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 + i32.const 4 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + call $~lib/map/Map#set:buckets + local.get $0 + i32.const 4 + i32.const 1 + i32.sub + call $~lib/map/Map#set:bucketsMask + local.get $0 + i32.const 0 + i32.const 4 + i32.const 16 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + call $~lib/map/Map#set:entries + local.get $0 + i32.const 4 + call $~lib/map/Map#set:entriesCapacity + local.get $0 + i32.const 0 + call $~lib/map/Map#set:entriesOffset + local.get $0 + i32.const 0 + call $~lib/map/Map#set:entriesCount ) - (func $std/map/testNumeric + (func $std/map/testNumeric (local $0 i32) - (local $1 i32) + (local $1 i64) (local $2 i32) (local $3 i32) (local $4 i32) @@ -17470,9 +12599,8 @@ (local $6 i32) (local $7 i32) (local $8 i32) - (local $9 i32) global.get $~lib/memory/__stack_pointer - i32.const 24 + i32.const 20 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check @@ -17483,30 +12611,25 @@ i64.const 0 i64.store offset=8 global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=16 + i32.const 0 + 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 $0 i32.store - i32.const 0 + i64.const 0 local.set $1 loop $for-loop|0 local.get $1 - i32.const 100 - i32.lt_s + i64.const 100 + i64.lt_s local.set $2 local.get $2 if local.get $0 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 local.get $1 - call $~lib/map/Map#has + call $~lib/map/Map#has i32.eqz i32.eqz if @@ -17518,25 +12641,16 @@ unreachable end local.get $0 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 local.get $1 i32.const 10 local.get $1 + i32.wrap_i64 i32.add - call $~lib/map/Map#set + call $~lib/map/Map#set drop local.get $0 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 local.get $1 - call $~lib/map/Map#has + call $~lib/map/Map#has i32.eqz if i32.const 0 @@ -17547,15 +12661,11 @@ unreachable end local.get $0 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 local.get $1 - call $~lib/map/Map#get + call $~lib/map/Map#get i32.const 10 local.get $1 + i32.wrap_i64 i32.add i32.eq i32.eqz @@ -17568,19 +12678,14 @@ unreachable end local.get $1 - i32.const 1 - i32.add + i64.const 1 + i64.add local.set $1 br $for-loop|0 end end local.get $0 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - call $~lib/map/Map#get:size + call $~lib/map/Map#get:size i32.const 100 i32.eq i32.eqz @@ -17592,23 +12697,18 @@ call $~lib/builtins/abort unreachable end - i32.const 0 + i64.const 0 local.set $1 loop $for-loop|1 local.get $1 - i32.const 100 - i32.lt_s + i64.const 100 + i64.lt_s local.set $2 local.get $2 if local.get $0 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 local.get $1 - call $~lib/map/Map#has + call $~lib/map/Map#has i32.eqz if i32.const 0 @@ -17619,15 +12719,11 @@ unreachable end local.get $0 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 local.get $1 - call $~lib/map/Map#get + call $~lib/map/Map#get i32.const 10 local.get $1 + i32.wrap_i64 i32.add i32.eq i32.eqz @@ -17640,25 +12736,16 @@ unreachable end local.get $0 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 local.get $1 i32.const 20 local.get $1 + i32.wrap_i64 i32.add - call $~lib/map/Map#set + call $~lib/map/Map#set drop local.get $0 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 local.get $1 - call $~lib/map/Map#has + call $~lib/map/Map#has i32.eqz if i32.const 0 @@ -17669,15 +12756,11 @@ unreachable end local.get $0 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 local.get $1 - call $~lib/map/Map#get + call $~lib/map/Map#get i32.const 20 local.get $1 + i32.wrap_i64 i32.add i32.eq i32.eqz @@ -17690,19 +12773,14 @@ unreachable end local.get $1 - i32.const 1 - i32.add + i64.const 1 + i64.add local.set $1 br $for-loop|1 end end local.get $0 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - call $~lib/map/Map#get:size + call $~lib/map/Map#get:size i32.const 100 i32.eq i32.eqz @@ -17716,75 +12794,45 @@ end global.get $~lib/memory/__stack_pointer local.get $0 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 + call $~lib/map/Map#keys + local.tee $2 i32.store offset=4 - local.get $9 - call $~lib/map/Map#keys - local.tee $1 - i32.store offset=8 global.get $~lib/memory/__stack_pointer local.get $0 - local.set $9 + call $~lib/map/Map#values + local.tee $3 + i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - call $~lib/map/Map#values - local.tee $2 + i32.const 0 + call $~lib/map/Map#constructor + local.tee $4 i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 0 call $~lib/map/Map#constructor - local.tee $3 + local.tee $5 i32.store offset=16 - global.get $~lib/memory/__stack_pointer - i32.const 0 - call $~lib/map/Map#constructor - local.tee $4 - i32.store offset=20 i32.const 0 - local.set $5 + local.set $6 loop $for-loop|2 - local.get $5 - local.get $1 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - call $~lib/array/Array#get:length - i32.lt_s - local.set $6 local.get $6 + local.get $2 + call $~lib/array/Array#get:length + i32.lt_s + local.set $7 + local.get $7 if - local.get $1 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - local.get $5 - call $~lib/array/Array#__get - local.set $7 local.get $2 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - local.get $5 + local.get $6 + call $~lib/array/Array#__get + local.set $1 + local.get $3 + local.get $6 call $~lib/array/Array#__get local.set $8 local.get $0 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - local.get $7 - call $~lib/map/Map#has + local.get $1 + call $~lib/map/Map#has i32.eqz if i32.const 0 @@ -17795,15 +12843,11 @@ unreachable end local.get $0 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 local.get $8 i32.const 20 i32.sub - call $~lib/map/Map#has + i64.extend_i32_s + call $~lib/map/Map#has i32.eqz if i32.const 0 @@ -17813,22 +12857,12 @@ call $~lib/builtins/abort unreachable end - local.get $3 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - local.get $7 - local.get $7 - call $~lib/map/Map#set - drop local.get $4 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 + local.get $1 + local.get $1 + call $~lib/map/Map#set + drop + local.get $5 local.get $8 i32.const 20 i32.sub @@ -17837,20 +12871,15 @@ i32.sub call $~lib/map/Map#set drop - local.get $5 + local.get $6 i32.const 1 i32.add - local.set $5 + local.set $6 br $for-loop|2 end end - local.get $3 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - call $~lib/map/Map#get:size + local.get $4 + call $~lib/map/Map#get:size i32.const 100 i32.eq i32.eqz @@ -17862,12 +12891,7 @@ call $~lib/builtins/abort unreachable end - local.get $4 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 + local.get $5 call $~lib/map/Map#get:size i32.const 100 i32.eq @@ -17880,23 +12904,18 @@ call $~lib/builtins/abort unreachable end - i32.const 0 - local.set $5 + i64.const 0 + local.set $1 loop $for-loop|3 - local.get $5 - i32.const 50 - i32.lt_s + local.get $1 + i64.const 50 + i64.lt_s local.set $6 local.get $6 if local.get $0 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - local.get $5 - call $~lib/map/Map#has + local.get $1 + call $~lib/map/Map#has i32.eqz if i32.const 0 @@ -17907,15 +12926,11 @@ unreachable end local.get $0 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - local.get $5 - call $~lib/map/Map#get + local.get $1 + call $~lib/map/Map#get i32.const 20 - local.get $5 + local.get $1 + i32.wrap_i64 i32.add i32.eq i32.eqz @@ -17928,22 +12943,12 @@ unreachable end local.get $0 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - local.get $5 - call $~lib/map/Map#delete + local.get $1 + call $~lib/map/Map#delete drop local.get $0 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - local.get $5 - call $~lib/map/Map#has + local.get $1 + call $~lib/map/Map#has i32.eqz i32.eqz if @@ -17954,20 +12959,15 @@ call $~lib/builtins/abort unreachable end - local.get $5 - i32.const 1 - i32.add - local.set $5 + local.get $1 + i64.const 1 + i64.add + local.set $1 br $for-loop|3 end end local.get $0 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - call $~lib/map/Map#get:size + call $~lib/map/Map#get:size i32.const 50 i32.eq i32.eqz @@ -17979,23 +12979,18 @@ call $~lib/builtins/abort unreachable end - i32.const 0 - local.set $5 + i64.const 0 + local.set $1 loop $for-loop|4 - local.get $5 - i32.const 50 - i32.lt_s + local.get $1 + i64.const 50 + i64.lt_s local.set $6 local.get $6 if local.get $0 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - local.get $5 - call $~lib/map/Map#has + local.get $1 + call $~lib/map/Map#has i32.eqz i32.eqz if @@ -18007,25 +13002,16 @@ unreachable end local.get $0 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - local.get $5 + local.get $1 i32.const 10 - local.get $5 + local.get $1 + i32.wrap_i64 i32.add - call $~lib/map/Map#set + call $~lib/map/Map#set drop local.get $0 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - local.get $5 - call $~lib/map/Map#has + local.get $1 + call $~lib/map/Map#has i32.eqz if i32.const 0 @@ -18036,22 +13022,12 @@ unreachable end local.get $0 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - local.get $5 - call $~lib/map/Map#delete + local.get $1 + call $~lib/map/Map#delete drop local.get $0 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - local.get $5 - call $~lib/map/Map#has + local.get $1 + call $~lib/map/Map#has i32.eqz i32.eqz if @@ -18062,20 +13038,15 @@ call $~lib/builtins/abort unreachable end - local.get $5 - i32.const 1 - i32.add - local.set $5 + local.get $1 + i64.const 1 + i64.add + local.set $1 br $for-loop|4 end end local.get $0 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - call $~lib/map/Map#get:size + call $~lib/map/Map#get:size i32.const 50 i32.eq i32.eqz @@ -18088,19 +13059,9 @@ unreachable end local.get $0 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - call $~lib/map/Map#clear + call $~lib/map/Map#clear local.get $0 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - call $~lib/map/Map#get:size + call $~lib/map/Map#get:size i32.const 0 i32.eq i32.eqz @@ -18113,29 +13074,103 @@ unreachable end global.get $~lib/memory/__stack_pointer - i32.const 24 + i32.const 20 i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/map/Map#has (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) + (func $~lib/map/Map#set:buckets (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + local.get $0 + local.get $1 + i32.const 0 + call $~lib/rt/itcms/__link + ) + (func $~lib/map/Map#set:bucketsMask (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=4 + ) + (func $~lib/map/Map#set:entries (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=8 + local.get $0 + local.get $1 + i32.const 0 + call $~lib/rt/itcms/__link + ) + (func $~lib/map/Map#set:entriesCapacity (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=12 + ) + (func $~lib/map/Map#set:entriesOffset (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=16 + ) + (func $~lib/map/Map#set:entriesCount (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=20 + ) + (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 + (local $4 i32) + (local $5 i32) + local.get $0 + i32.load + local.get $2 + local.get $0 + i32.load offset=4 + i32.and i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer + i32.mul + i32.add + i32.load + local.set $3 + loop $while-continue|0 + local.get $3 + local.set $4 + local.get $4 + if + local.get $3 + i32.load offset=12 + local.set $5 + local.get $5 + i32.const 1 + i32.and + i32.eqz + if (result i32) + local.get $3 + i64.load + local.get $1 + i64.eq + else + i32.const 0 + end + if + local.get $3 + return + end + local.get $5 + i32.const 1 + i32.const -1 + i32.xor + i32.and + local.set $3 + br $while-continue|0 + end + end i32.const 0 - i32.store + ) + (func $~lib/map/Map#has (param $0 i32) (param $1 i64) (result i32) + (local $2 i64) local.get $0 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store - local.get $3 local.get $1 - block $~lib/util/hash/HASH|inlined.0 (result i32) + block $~lib/util/hash/HASH|inlined.0 (result i32) local.get $1 local.set $2 i32.const 0 @@ -18144,38 +13179,60 @@ drop i32.const 0 drop - i32.const 4 + i32.const 8 i32.const 1 i32.eq drop - i32.const 4 + i32.const 8 i32.const 2 i32.eq drop + i32.const 8 i32.const 4 - i32.const 4 + i32.eq + drop + i32.const 8 + i32.const 8 i32.eq drop local.get $2 - call $~lib/util/hash/hash32 - br $~lib/util/hash/HASH|inlined.0 + call $~lib/util/hash/hash64 + br $~lib/util/hash/HASH|inlined.0 end - call $~lib/map/Map#find + call $~lib/map/Map#find i32.const 0 i32.ne - local.set $3 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $3 ) - (func $~lib/map/Map#set (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/map/MapEntry#set:value (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=8 + ) + (func $~lib/map/MapEntry#set:key (param $0 i32) (param $1 i64) + local.get $0 + local.get $1 + i64.store + ) + (func $~lib/map/MapEntry#set:taggedNext (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=12 + ) + (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) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i64) + (local $13 i64) + (local $14 i32) + (local $15 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -18184,164 +13241,155 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - block $~lib/util/hash/HASH|inlined.1 (result i32) - local.get $1 - local.set $3 - i32.const 0 - drop - i32.const 0 - drop - i32.const 0 - drop - i32.const 4 - i32.const 1 - i32.eq - drop - i32.const 4 - i32.const 2 - i32.eq - drop - i32.const 4 - i32.const 4 - i32.eq - drop - local.get $3 - call $~lib/util/hash/hash32 - br $~lib/util/hash/HASH|inlined.1 - end - local.set $4 - local.get $0 - local.set $7 + local.get $1 + i32.const 1 + i32.add + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $7 + i32.const 0 + local.get $2 + i32.const 4 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $3 i32.store - local.get $7 - local.get $1 + local.get $2 + i32.const 8 + i32.mul + i32.const 3 + i32.div_s + local.set $4 + global.get $~lib/memory/__stack_pointer + i32.const 0 local.get $4 - call $~lib/map/Map#find - local.set $5 + i32.const 16 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $5 + i32.store offset=4 + local.get $0 + i32.load offset=8 + local.set $6 + local.get $6 + local.get $0 + i32.load offset=16 + i32.const 16 + i32.mul + i32.add + local.set $7 local.get $5 - if - local.get $5 - local.get $2 - call $~lib/map/MapEntry#set:value - i32.const 0 - drop - else - local.get $0 - i32.load offset=16 - local.get $0 - i32.load offset=12 - i32.eq + local.set $8 + loop $while-continue|0 + local.get $6 + local.get $7 + i32.ne + local.set $9 + local.get $9 if - local.get $0 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store - local.get $7 - local.get $0 - i32.load offset=20 - local.get $0 + local.get $6 + local.set $10 + local.get $10 i32.load offset=12 - i32.const 3 - i32.mul - i32.const 4 - i32.div_s - i32.lt_s - if (result i32) - local.get $0 - i32.load offset=4 - else - local.get $0 - i32.load offset=4 - i32.const 1 - i32.shl - i32.const 1 - i32.or + i32.const 1 + i32.and + i32.eqz + if + local.get $8 + local.set $11 + local.get $10 + i64.load + local.set $12 + local.get $11 + local.get $12 + call $~lib/map/MapEntry#set:key + local.get $11 + local.get $10 + i32.load offset=8 + call $~lib/map/MapEntry#set:value + block $~lib/util/hash/HASH|inlined.2 (result i32) + local.get $12 + local.set $13 + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 8 + i32.const 1 + i32.eq + drop + i32.const 8 + i32.const 2 + i32.eq + drop + i32.const 8 + i32.const 4 + i32.eq + drop + i32.const 8 + i32.const 8 + i32.eq + drop + local.get $13 + call $~lib/util/hash/hash64 + br $~lib/util/hash/HASH|inlined.2 + end + local.get $1 + i32.and + local.set $14 + local.get $3 + local.get $14 + i32.const 4 + i32.mul + i32.add + local.set $15 + local.get $11 + local.get $15 + i32.load + call $~lib/map/MapEntry#set:taggedNext + local.get $15 + local.get $8 + i32.store + local.get $8 + i32.const 16 + i32.add + local.set $8 end - call $~lib/map/Map#rehash + local.get $6 + i32.const 16 + i32.add + local.set $6 + br $while-continue|0 end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.load offset=8 - local.tee $3 - i32.store offset=4 - local.get $3 - local.get $0 - local.get $0 - i32.load offset=16 - local.tee $6 - i32.const 1 - i32.add - call $~lib/map/Map#set:entriesOffset - local.get $6 - i32.const 12 - i32.mul - i32.add - local.set $5 - local.get $5 - local.get $1 - call $~lib/map/MapEntry#set:key - i32.const 0 - drop - local.get $5 - local.get $2 - call $~lib/map/MapEntry#set:value - i32.const 0 - drop - local.get $0 - local.get $0 - i32.load offset=20 - i32.const 1 - i32.add - call $~lib/map/Map#set:entriesCount - local.get $0 - i32.load - local.get $4 - local.get $0 - i32.load offset=4 - i32.and - i32.const 4 - i32.mul - i32.add - local.set $6 - local.get $5 - local.get $6 - i32.load - call $~lib/map/MapEntry#set:taggedNext - local.get $6 - local.get $5 - i32.store end local.get $0 - local.set $7 + local.get $3 + call $~lib/map/Map#set:buckets + local.get $0 + local.get $1 + call $~lib/map/Map#set:bucketsMask + local.get $0 + local.get $5 + call $~lib/map/Map#set:entries + local.get $0 + local.get $4 + call $~lib/map/Map#set:entriesCapacity + local.get $0 + local.get $0 + i32.load offset=20 + call $~lib/map/Map#set:entriesOffset global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $7 ) - (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 i64) (result i32) + (local $2 i64) (local $3 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 $0 - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store - local.get $4 local.get $1 - block $~lib/util/hash/HASH|inlined.3 (result i32) + block $~lib/util/hash/HASH|inlined.3 (result i32) local.get $1 local.set $2 i32.const 0 @@ -18350,23 +13398,27 @@ drop i32.const 0 drop - i32.const 4 + i32.const 8 i32.const 1 i32.eq drop - i32.const 4 + i32.const 8 i32.const 2 i32.eq drop + i32.const 8 i32.const 4 - i32.const 4 + i32.eq + drop + i32.const 8 + i32.const 8 i32.eq drop local.get $2 - call $~lib/util/hash/hash32 - br $~lib/util/hash/HASH|inlined.3 + call $~lib/util/hash/hash64 + br $~lib/util/hash/HASH|inlined.3 end - call $~lib/map/Map#find + call $~lib/map/Map#find local.set $3 local.get $3 i32.eqz @@ -18379,160 +13431,225 @@ unreachable end local.get $3 + i32.load offset=8 + ) + (func $~lib/map/Map#get:size (param $0 i32) (result i32) + local.get $0 + i32.load offset=20 + ) + (func $~lib/array/Array#set:buffer (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + local.get $0 + local.get $1 + i32.const 0 + call $~lib/rt/itcms/__link + ) + (func $~lib/array/Array#set:dataStart (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=4 + ) + (func $~lib/array/Array#set:byteLength (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=8 + ) + (func $~lib/array/Array#set:length_ (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=12 + ) + (func $~lib/array/Array#__uset (param $0 i32) (param $1 i32) (param $2 i64) + local.get $0 i32.load offset=4 - local.set $4 - global.get $~lib/memory/__stack_pointer - i32.const 4 + local.get $1 + i32.const 3 + i32.shl i32.add - global.set $~lib/memory/__stack_pointer - local.get $4 + local.get $2 + i64.store + i32.const 0 + drop ) - (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 - call $~stack_check - global.get $~lib/memory/__stack_pointer + (func $~lib/array/Array#__set (param $0 i32) (param $1 i32) (param $2 i64) + 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 224 + i32.const 704 + i32.const 108 + i32.const 22 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $1 + i32.const 1 + i32.add + i32.const 3 + call $~lib/array/ensureSize + local.get $0 + local.get $1 + i32.const 1 + i32.add + call $~lib/array/Array#set:length_ + end + local.get $0 + local.get $1 + local.get $2 + call $~lib/array/Array#__uset + ) + (func $~lib/array/Array#set:length (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.const 3 + call $~lib/array/ensureSize + local.get $0 + local.get $1 + call $~lib/array/Array#set:length_ + ) + (func $~lib/map/Map#set:buckets (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + local.get $0 + local.get $1 + i32.const 0 + call $~lib/rt/itcms/__link + ) + (func $~lib/map/Map#set:bucketsMask (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=4 + ) + (func $~lib/map/Map#set:entries (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=8 + local.get $0 + local.get $1 i32.const 0 - i32.store + call $~lib/rt/itcms/__link + ) + (func $~lib/map/Map#set:entriesCapacity (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=12 + ) + (func $~lib/map/Map#set:entriesOffset (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=16 + ) + (func $~lib/map/Map#set:entriesCount (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=20 + ) + (func $~lib/array/Array#get:length (param $0 i32) (result i32) + local.get $0 + i32.load offset=12 + ) + (func $~lib/array/Array#__get (param $0 i32) (param $1 i32) (result i64) + (local $2 i64) 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 224 - i32.const 704 - i32.const 108 - i32.const 22 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.get $1 - i32.const 1 - i32.add - i32.const 2 - call $~lib/array/ensureSize - local.get $0 - local.get $1 - i32.const 1 - i32.add - call $~lib/array/Array#set:length_ + i32.const 224 + i32.const 704 + i32.const 92 + i32.const 42 + call $~lib/builtins/abort + unreachable end local.get $0 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store - local.get $3 + i32.load offset=4 local.get $1 - local.get $2 - call $~lib/array/Array#__uset - global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 3 + i32.shl i32.add - global.set $~lib/memory/__stack_pointer + i64.load + local.set $2 + i32.const 0 + drop + local.get $2 ) - (func $~lib/map/Map#keys (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) + (func $~lib/map/Map#find (param $0 i32) (param $1 i64) (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) - 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 $0 - i32.load offset=8 - local.set $1 local.get $0 - i32.load offset=16 - local.set $2 - global.get $~lib/memory/__stack_pointer - i32.const 0 + i32.load local.get $2 - call $~lib/array/Array#constructor - local.tee $3 - i32.store - i32.const 0 - local.set $4 - i32.const 0 - local.set $5 - loop $for-loop|0 - local.get $5 - local.get $2 - i32.lt_s - local.set $6 - local.get $6 + local.get $0 + i32.load offset=4 + i32.and + i32.const 4 + i32.mul + i32.add + i32.load + local.set $3 + loop $while-continue|0 + local.get $3 + local.set $4 + local.get $4 if - local.get $1 + local.get $3 + i32.load offset=16 + local.set $5 local.get $5 - i32.const 12 - i32.mul - i32.add - local.set $7 - local.get $7 - i32.load offset=8 i32.const 1 i32.and i32.eqz + if (result i32) + local.get $3 + i64.load + local.get $1 + i64.eq + else + i32.const 0 + end if local.get $3 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - local.get $4 - local.tee $8 - i32.const 1 - i32.add - local.set $4 - local.get $8 - local.get $7 - i32.load - call $~lib/array/Array#__set + return end local.get $5 i32.const 1 - i32.add - local.set $5 - br $for-loop|0 + i32.const -1 + i32.xor + i32.and + local.set $3 + br $while-continue|0 end end - local.get $3 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - local.get $4 - call $~lib/array/Array#set:length - local.get $3 - local.set $9 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $9 + i32.const 0 ) - (func $~lib/map/Map#values (param $0 i32) (result i32) - (local $1 i32) + (func $~lib/map/MapEntry#set:value (param $0 i32) (param $1 i64) + local.get $0 + local.get $1 + i64.store offset=8 + ) + (func $~lib/map/MapEntry#set:key (param $0 i32) (param $1 i64) + local.get $0 + local.get $1 + i64.store + ) + (func $~lib/map/MapEntry#set:taggedNext (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=16 + ) + (func $~lib/map/Map#rehash (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -18541,6 +13658,12 @@ (local $7 i32) (local $8 i32) (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i64) + (local $13 i64) + (local $14 i32) + (local $15 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -18549,1724 +13672,2372 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - local.get $0 - i32.load offset=8 - local.set $1 - local.get $0 - i32.load offset=16 + local.get $1 + i32.const 1 + i32.add local.set $2 global.get $~lib/memory/__stack_pointer i32.const 0 local.get $2 - call $~lib/array/Array#constructor + i32.const 4 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor local.tee $3 i32.store - i32.const 0 + local.get $2 + i32.const 8 + i32.mul + i32.const 3 + i32.div_s local.set $4 + global.get $~lib/memory/__stack_pointer i32.const 0 - local.set $5 - loop $for-loop|0 - local.get $5 - local.get $2 - i32.lt_s - local.set $6 + local.get $4 + i32.const 24 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $5 + i32.store offset=4 + local.get $0 + i32.load offset=8 + local.set $6 + local.get $6 + local.get $0 + i32.load offset=16 + i32.const 24 + i32.mul + i32.add + local.set $7 + local.get $5 + local.set $8 + loop $while-continue|0 local.get $6 + local.get $7 + i32.ne + local.set $9 + local.get $9 if - local.get $1 - local.get $5 - i32.const 12 - i32.mul - i32.add - local.set $7 - local.get $7 - i32.load offset=8 + local.get $6 + local.set $10 + local.get $10 + i32.load offset=16 i32.const 1 i32.and i32.eqz if + local.get $8 + local.set $11 + local.get $10 + i64.load + local.set $12 + local.get $11 + local.get $12 + call $~lib/map/MapEntry#set:key + local.get $11 + local.get $10 + i64.load offset=8 + call $~lib/map/MapEntry#set:value + block $~lib/util/hash/HASH|inlined.5 (result i32) + local.get $12 + local.set $13 + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 8 + i32.const 1 + i32.eq + drop + i32.const 8 + i32.const 2 + i32.eq + drop + i32.const 8 + i32.const 4 + i32.eq + drop + i32.const 8 + i32.const 8 + i32.eq + drop + local.get $13 + call $~lib/util/hash/hash64 + br $~lib/util/hash/HASH|inlined.5 + end + local.get $1 + i32.and + local.set $14 local.get $3 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - local.get $4 - local.tee $8 - i32.const 1 + local.get $14 + i32.const 4 + i32.mul i32.add - local.set $4 + local.set $15 + local.get $11 + local.get $15 + i32.load + call $~lib/map/MapEntry#set:taggedNext + local.get $15 local.get $8 - local.get $7 - i32.load offset=4 - call $~lib/array/Array#__set + i32.store + local.get $8 + i32.const 24 + i32.add + local.set $8 end - local.get $5 - i32.const 1 + local.get $6 + i32.const 24 i32.add - local.set $5 - br $for-loop|0 + local.set $6 + br $while-continue|0 end end + local.get $0 local.get $3 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 + call $~lib/map/Map#set:buckets + local.get $0 + local.get $1 + call $~lib/map/Map#set:bucketsMask + local.get $0 + local.get $5 + call $~lib/map/Map#set:entries + local.get $0 local.get $4 - call $~lib/array/Array#set:length - local.get $3 - local.set $9 + call $~lib/map/Map#set:entriesCapacity + local.get $0 + local.get $0 + i32.load offset=20 + call $~lib/map/Map#set:entriesOffset global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $9 ) - (func $~lib/map/Map#set (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/map/Map#get:size (param $0 i32) (result i32) + local.get $0 + i32.load offset=20 + ) + (func $~lib/map/Map#delete (param $0 i32) (param $1 i64) (result 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 - call $~stack_check - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - block $~lib/util/hash/HASH|inlined.4 (result i32) + local.get $0 + local.get $1 + block $~lib/util/hash/HASH|inlined.6 (result i32) local.get $1 - local.set $3 + local.set $2 i32.const 0 drop i32.const 0 drop i32.const 0 drop - i32.const 4 + i32.const 8 i32.const 1 i32.eq drop - i32.const 4 + i32.const 8 i32.const 2 i32.eq drop - i32.const 4 + i32.const 8 i32.const 4 i32.eq drop - local.get $3 - call $~lib/util/hash/hash32 - br $~lib/util/hash/HASH|inlined.4 + i32.const 8 + i32.const 8 + i32.eq + drop + local.get $2 + call $~lib/util/hash/hash64 + br $~lib/util/hash/HASH|inlined.6 end - local.set $4 + call $~lib/map/Map#find + local.set $3 + local.get $3 + i32.eqz + if + i32.const 0 + return + end + local.get $3 + local.get $3 + i32.load offset=12 + i32.const 1 + i32.or + call $~lib/map/MapEntry#set:taggedNext local.get $0 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store - local.get $7 - local.get $1 + local.get $0 + i32.load offset=20 + i32.const 1 + i32.sub + call $~lib/map/Map#set:entriesCount + local.get $0 + i32.load offset=4 + i32.const 1 + i32.shr_u + local.set $4 local.get $4 - call $~lib/map/Map#find - local.set $5 + i32.const 1 + i32.add + i32.const 4 + local.tee $5 + local.get $0 + i32.load offset=20 + local.tee $6 local.get $5 - if - local.get $5 - local.get $2 - call $~lib/map/MapEntry#set:value - i32.const 0 - drop - else + local.get $6 + i32.gt_u + select + i32.ge_u + if (result i32) local.get $0 - i32.load offset=16 + i32.load offset=20 local.get $0 i32.load offset=12 - i32.eq - if - local.get $0 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store - local.get $7 - local.get $0 - i32.load offset=20 - 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 $0 - i32.load offset=4 - else - 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.load offset=8 - local.tee $3 - i32.store offset=4 - local.get $3 - local.get $0 - local.get $0 - i32.load offset=16 - local.tee $6 - i32.const 1 - i32.add - call $~lib/map/Map#set:entriesOffset - local.get $6 - i32.const 12 + i32.const 3 i32.mul - i32.add - local.set $5 - local.get $5 - local.get $1 - call $~lib/map/MapEntry#set:key - i32.const 0 - drop - local.get $5 - local.get $2 - call $~lib/map/MapEntry#set:value - i32.const 0 - drop - local.get $0 - local.get $0 - i32.load offset=20 - i32.const 1 - i32.add - call $~lib/map/Map#set:entriesCount + i32.const 4 + i32.div_s + i32.lt_s + else + i32.const 0 + end + if local.get $0 - i32.load local.get $4 - local.get $0 - i32.load offset=4 - i32.and - i32.const 4 - i32.mul - i32.add - local.set $6 - local.get $5 - local.get $6 - i32.load - call $~lib/map/MapEntry#set:taggedNext - local.get $6 - local.get $5 - i32.store + call $~lib/map/Map#rehash end + i32.const 1 + ) + (func $~lib/map/Map#clear (param $0 i32) local.get $0 - local.set $7 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $7 + i32.const 0 + i32.const 4 + i32.const 4 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + call $~lib/map/Map#set:buckets + local.get $0 + i32.const 4 + i32.const 1 + i32.sub + call $~lib/map/Map#set:bucketsMask + local.get $0 + i32.const 0 + i32.const 4 + i32.const 16 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + call $~lib/map/Map#set:entries + local.get $0 + i32.const 4 + call $~lib/map/Map#set:entriesCapacity + local.get $0 + i32.const 0 + call $~lib/map/Map#set:entriesOffset + local.get $0 + i32.const 0 + call $~lib/map/Map#set:entriesCount ) - (func $~lib/map/Map#delete (param $0 i32) (param $1 i32) (result i32) + (func $std/map/testNumeric + (local $0 i32) + (local $1 i64) (local $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) (local $6 i32) + (local $7 i32) + (local $8 i32) global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 20 i32.sub global.set $~lib/memory/__stack_pointer 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 + global.get $~lib/memory/__stack_pointer i32.const 0 - i32.store - local.get $0 - local.set $6 + i32.store offset=16 global.get $~lib/memory/__stack_pointer - local.get $6 + i32.const 0 + call $~lib/map/Map#constructor + local.tee $0 i32.store - local.get $6 - local.get $1 - block $~lib/util/hash/HASH|inlined.6 (result i32) + i64.const 0 + local.set $1 + loop $for-loop|0 local.get $1 + i64.const 100 + i64.lt_u local.set $2 + local.get $2 + if + local.get $0 + local.get $1 + call $~lib/map/Map#has + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 6 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $1 + i32.const 10 + local.get $1 + i32.wrap_i64 + i32.add + call $~lib/map/Map#set + drop + local.get $0 + local.get $1 + call $~lib/map/Map#has + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 8 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $1 + call $~lib/map/Map#get + i32.const 10 + local.get $1 + i32.wrap_i64 + i32.add + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 9 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i64.const 1 + i64.add + local.set $1 + br $for-loop|0 + end + end + local.get $0 + call $~lib/map/Map#get:size + i32.const 100 + i32.eq + i32.eqz + if i32.const 0 - drop - i32.const 0 - drop - i32.const 0 - drop - i32.const 4 - i32.const 1 - i32.eq - drop - i32.const 4 - i32.const 2 - i32.eq - drop - i32.const 4 - i32.const 4 - i32.eq - drop + i32.const 544 + i32.const 11 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i64.const 0 + local.set $1 + loop $for-loop|1 + local.get $1 + i64.const 100 + i64.lt_u + local.set $2 local.get $2 - call $~lib/util/hash/hash32 - br $~lib/util/hash/HASH|inlined.6 + if + local.get $0 + local.get $1 + call $~lib/map/Map#has + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 15 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $1 + call $~lib/map/Map#get + i32.const 10 + local.get $1 + i32.wrap_i64 + i32.add + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 16 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $1 + i32.const 20 + local.get $1 + i32.wrap_i64 + i32.add + call $~lib/map/Map#set + drop + local.get $0 + local.get $1 + call $~lib/map/Map#has + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 18 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $1 + call $~lib/map/Map#get + i32.const 20 + local.get $1 + i32.wrap_i64 + i32.add + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 19 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i64.const 1 + i64.add + local.set $1 + br $for-loop|1 + end end - call $~lib/map/Map#find - local.set $3 - local.get $3 + local.get $0 + call $~lib/map/Map#get:size + i32.const 100 + i32.eq i32.eqz if i32.const 0 - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - return + i32.const 544 + i32.const 21 + i32.const 3 + call $~lib/builtins/abort + unreachable end - local.get $3 - local.get $3 - i32.load offset=8 - i32.const 1 - i32.or - call $~lib/map/MapEntry#set:taggedNext - local.get $0 - local.get $0 - i32.load offset=20 - i32.const 1 - i32.sub - call $~lib/map/Map#set:entriesCount + global.get $~lib/memory/__stack_pointer local.get $0 - i32.load offset=4 - i32.const 1 - i32.shr_u - local.set $4 - local.get $4 - i32.const 1 - i32.add - i32.const 4 + call $~lib/map/Map#keys local.tee $2 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer local.get $0 - i32.load offset=20 + call $~lib/map/Map#values + local.tee $3 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 0 + call $~lib/map/Map#constructor + local.tee $4 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 0 + call $~lib/map/Map#constructor local.tee $5 - local.get $2 - local.get $5 - i32.gt_u - select - i32.ge_u - if (result i32) - local.get $0 - i32.load offset=20 - local.get $0 - i32.load offset=12 - i32.const 3 - i32.mul - i32.const 4 - i32.div_s + i32.store offset=16 + i32.const 0 + local.set $6 + loop $for-loop|2 + local.get $6 + local.get $2 + call $~lib/array/Array#get:length i32.lt_s - else + local.set $7 + local.get $7 + if + local.get $2 + local.get $6 + call $~lib/array/Array#__get + local.set $1 + local.get $3 + local.get $6 + call $~lib/array/Array#__get + local.set $8 + local.get $0 + local.get $1 + call $~lib/map/Map#has + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 31 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $8 + i32.const 20 + i32.sub + i64.extend_i32_s + call $~lib/map/Map#has + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 32 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $4 + local.get $1 + local.get $1 + call $~lib/map/Map#set + drop + local.get $5 + local.get $8 + i32.const 20 + i32.sub + local.get $8 + i32.const 20 + i32.sub + call $~lib/map/Map#set + drop + local.get $6 + i32.const 1 + i32.add + local.set $6 + br $for-loop|2 + end + end + local.get $4 + call $~lib/map/Map#get:size + i32.const 100 + i32.eq + i32.eqz + if i32.const 0 + i32.const 544 + i32.const 36 + i32.const 3 + call $~lib/builtins/abort + unreachable end + local.get $5 + call $~lib/map/Map#get:size + i32.const 100 + i32.eq + i32.eqz if - local.get $0 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - local.get $4 - call $~lib/map/Map#rehash + i32.const 0 + i32.const 544 + i32.const 37 + i32.const 3 + call $~lib/builtins/abort + unreachable end - i32.const 1 - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - ) - (func $std/map/testNumeric - (local $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - global.get $~lib/memory/__stack_pointer - i32.const 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 i64.const 0 - i64.store offset=8 - global.get $~lib/memory/__stack_pointer + local.set $1 + loop $for-loop|3 + local.get $1 + i64.const 50 + i64.lt_u + local.set $6 + local.get $6 + if + local.get $0 + local.get $1 + call $~lib/map/Map#has + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 41 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $1 + call $~lib/map/Map#get + i32.const 20 + local.get $1 + i32.wrap_i64 + i32.add + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 42 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $1 + call $~lib/map/Map#delete + drop + local.get $0 + local.get $1 + call $~lib/map/Map#has + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 44 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i64.const 1 + i64.add + local.set $1 + br $for-loop|3 + end + end + local.get $0 + call $~lib/map/Map#get:size + i32.const 50 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 46 + i32.const 3 + call $~lib/builtins/abort + unreachable + end i64.const 0 - i64.store offset=16 - global.get $~lib/memory/__stack_pointer - i32.const 0 - call $~lib/map/Map#constructor - local.tee $0 - i32.store - i32.const 0 local.set $1 - loop $for-loop|0 + loop $for-loop|4 local.get $1 - i32.const 100 - i32.lt_u - local.set $2 - local.get $2 + i64.const 50 + i64.lt_u + local.set $6 + local.get $6 if local.get $0 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 local.get $1 - call $~lib/map/Map#has + call $~lib/map/Map#has i32.eqz i32.eqz if i32.const 0 i32.const 544 - i32.const 6 + i32.const 50 i32.const 5 call $~lib/builtins/abort unreachable end local.get $0 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 local.get $1 i32.const 10 local.get $1 + i32.wrap_i64 i32.add - call $~lib/map/Map#set + call $~lib/map/Map#set drop local.get $0 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 local.get $1 - call $~lib/map/Map#has + call $~lib/map/Map#has i32.eqz if i32.const 0 i32.const 544 - i32.const 8 + i32.const 52 i32.const 5 call $~lib/builtins/abort unreachable end local.get $0 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 local.get $1 - call $~lib/map/Map#get - i32.const 10 + call $~lib/map/Map#delete + drop + local.get $0 local.get $1 - i32.add - i32.eq + call $~lib/map/Map#has + i32.eqz i32.eqz if i32.const 0 i32.const 544 - i32.const 9 + i32.const 54 i32.const 5 call $~lib/builtins/abort unreachable end local.get $1 - i32.const 1 - i32.add + i64.const 1 + i64.add local.set $1 - br $for-loop|0 + br $for-loop|4 end end local.get $0 - local.set $9 + call $~lib/map/Map#get:size + i32.const 50 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 56 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + call $~lib/map/Map#clear + local.get $0 + call $~lib/map/Map#get:size + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 60 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/map/Map#set:buckets (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + local.get $0 + local.get $1 + i32.const 0 + call $~lib/rt/itcms/__link + ) + (func $~lib/map/Map#set:bucketsMask (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=4 + ) + (func $~lib/map/Map#set:entries (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=8 + local.get $0 + local.get $1 + i32.const 0 + call $~lib/rt/itcms/__link + ) + (func $~lib/map/Map#set:entriesCapacity (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=12 + ) + (func $~lib/map/Map#set:entriesOffset (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=16 + ) + (func $~lib/map/Map#set:entriesCount (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=20 + ) + (func $~lib/map/Map#find (param $0 i32) (param $1 f32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $0 + i32.load + local.get $2 + local.get $0 + i32.load offset=4 + i32.and + i32.const 4 + i32.mul + i32.add + i32.load + local.set $3 + loop $while-continue|0 + local.get $3 + local.set $4 + local.get $4 + if + local.get $3 + i32.load offset=8 + local.set $5 + local.get $5 + i32.const 1 + i32.and + i32.eqz + if (result i32) + local.get $3 + f32.load + local.get $1 + f32.eq + else + i32.const 0 + end + if + local.get $3 + return + end + local.get $5 + i32.const 1 + i32.const -1 + i32.xor + i32.and + local.set $3 + br $while-continue|0 + end + end + i32.const 0 + ) + (func $~lib/map/Map#has (param $0 i32) (param $1 f32) (result i32) + (local $2 f32) + local.get $0 + local.get $1 + block $~lib/util/hash/HASH|inlined.0 (result i32) + local.get $1 + local.set $2 + i32.const 0 + drop + i32.const 0 + drop + i32.const 1 + drop + i32.const 4 + i32.const 4 + i32.eq + drop + local.get $2 + i32.reinterpret_f32 + call $~lib/util/hash/hash32 + br $~lib/util/hash/HASH|inlined.0 + end + call $~lib/map/Map#find + i32.const 0 + i32.ne + ) + (func $~lib/map/MapEntry#set:value (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=4 + ) + (func $~lib/map/MapEntry#set:key (param $0 i32) (param $1 f32) + local.get $0 + local.get $1 + f32.store + ) + (func $~lib/map/MapEntry#set:taggedNext (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=8 + ) + (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) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 f32) + (local $13 f32) + (local $14 i32) + (local $15 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 $1 + i32.const 1 + i32.add + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - call $~lib/map/Map#get:size - i32.const 100 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 11 - i32.const 3 - call $~lib/builtins/abort - unreachable - end i32.const 0 - local.set $1 - loop $for-loop|1 - local.get $1 - i32.const 100 - i32.lt_u - local.set $2 - local.get $2 + local.get $2 + i32.const 4 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $3 + i32.store + local.get $2 + i32.const 8 + i32.mul + i32.const 3 + i32.div_s + local.set $4 + global.get $~lib/memory/__stack_pointer + i32.const 0 + local.get $4 + i32.const 12 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $5 + i32.store offset=4 + local.get $0 + i32.load offset=8 + local.set $6 + local.get $6 + local.get $0 + i32.load offset=16 + i32.const 12 + i32.mul + i32.add + local.set $7 + local.get $5 + local.set $8 + loop $while-continue|0 + local.get $6 + local.get $7 + i32.ne + local.set $9 + local.get $9 if - local.get $0 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - local.get $1 - call $~lib/map/Map#has - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 15 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - local.get $1 - call $~lib/map/Map#get - i32.const 10 - local.get $1 - i32.add - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 16 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - local.get $1 - i32.const 20 - local.get $1 - i32.add - call $~lib/map/Map#set - drop - local.get $0 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - local.get $1 - call $~lib/map/Map#has - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 18 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - local.get $1 - call $~lib/map/Map#get - i32.const 20 - local.get $1 - i32.add - i32.eq + local.get $6 + local.set $10 + local.get $10 + i32.load offset=8 + i32.const 1 + i32.and i32.eqz if - i32.const 0 - i32.const 544 - i32.const 19 - i32.const 5 - call $~lib/builtins/abort - unreachable + local.get $8 + local.set $11 + local.get $10 + f32.load + local.set $12 + local.get $11 + local.get $12 + call $~lib/map/MapEntry#set:key + local.get $11 + local.get $10 + i32.load offset=4 + call $~lib/map/MapEntry#set:value + block $~lib/util/hash/HASH|inlined.2 (result i32) + local.get $12 + local.set $13 + i32.const 0 + drop + i32.const 0 + drop + i32.const 1 + drop + i32.const 4 + i32.const 4 + i32.eq + drop + local.get $13 + i32.reinterpret_f32 + call $~lib/util/hash/hash32 + br $~lib/util/hash/HASH|inlined.2 + end + local.get $1 + i32.and + local.set $14 + local.get $3 + local.get $14 + i32.const 4 + i32.mul + i32.add + local.set $15 + local.get $11 + local.get $15 + i32.load + call $~lib/map/MapEntry#set:taggedNext + local.get $15 + local.get $8 + i32.store + local.get $8 + i32.const 12 + i32.add + local.set $8 end - local.get $1 - i32.const 1 + local.get $6 + i32.const 12 i32.add - local.set $1 - br $for-loop|1 + local.set $6 + br $while-continue|0 end end local.get $0 - local.set $9 + local.get $3 + call $~lib/map/Map#set:buckets + local.get $0 + local.get $1 + call $~lib/map/Map#set:bucketsMask + local.get $0 + local.get $5 + call $~lib/map/Map#set:entries + local.get $0 + local.get $4 + call $~lib/map/Map#set:entriesCapacity + local.get $0 + local.get $0 + i32.load offset=20 + call $~lib/map/Map#set:entriesOffset global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - call $~lib/map/Map#get:size - i32.const 100 - i32.eq + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/map/Map#get (param $0 i32) (param $1 f32) (result i32) + (local $2 f32) + (local $3 i32) + local.get $0 + local.get $1 + block $~lib/util/hash/HASH|inlined.3 (result i32) + local.get $1 + local.set $2 + i32.const 0 + drop + i32.const 0 + drop + i32.const 1 + drop + i32.const 4 + i32.const 4 + i32.eq + drop + local.get $2 + i32.reinterpret_f32 + call $~lib/util/hash/hash32 + br $~lib/util/hash/HASH|inlined.3 + end + call $~lib/map/Map#find + local.set $3 + local.get $3 i32.eqz if - i32.const 0 - i32.const 544 - i32.const 21 - i32.const 3 + i32.const 592 + i32.const 656 + i32.const 105 + i32.const 17 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer + local.get $3 + i32.load offset=4 + ) + (func $~lib/map/Map#get:size (param $0 i32) (result i32) local.get $0 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 + i32.load offset=20 + ) + (func $~lib/array/Array#set:buffer (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + local.get $0 + local.get $1 + i32.const 0 + call $~lib/rt/itcms/__link + ) + (func $~lib/array/Array#set:dataStart (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 i32.store offset=4 - local.get $9 - call $~lib/map/Map#keys - local.tee $1 + ) + (func $~lib/array/Array#set:byteLength (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 i32.store offset=8 - global.get $~lib/memory/__stack_pointer + ) + (func $~lib/array/Array#set:length_ (param $0 i32) (param $1 i32) local.get $0 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - call $~lib/map/Map#values - local.tee $2 + local.get $1 i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 0 - call $~lib/map/Map#constructor - local.tee $3 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - i32.const 0 - call $~lib/map/Map#constructor - local.tee $4 - i32.store offset=20 + ) + (func $~lib/array/Array#__uset (param $0 i32) (param $1 i32) (param $2 f32) + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 2 + i32.shl + i32.add + local.get $2 + f32.store i32.const 0 - local.set $5 - loop $for-loop|2 - local.get $5 + drop + ) + (func $~lib/array/Array#__set (param $0 i32) (param $1 i32) (param $2 f32) + local.get $1 + local.get $0 + i32.load offset=12 + i32.ge_u + if local.get $1 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - call $~lib/array/Array#get:length + i32.const 0 i32.lt_s - local.set $6 - local.get $6 if - local.get $1 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - local.get $5 - call $~lib/array/Array#__get - local.set $7 - local.get $2 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - local.get $5 - call $~lib/array/Array#__get - local.set $8 - local.get $0 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - local.get $7 - call $~lib/map/Map#has - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 31 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - local.get $8 - i32.const 20 - i32.sub - call $~lib/map/Map#has - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 32 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $3 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - local.get $7 - local.get $7 - call $~lib/map/Map#set - drop - local.get $4 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - local.get $8 - i32.const 20 - i32.sub - local.get $8 - i32.const 20 - i32.sub - call $~lib/map/Map#set - drop - local.get $5 - i32.const 1 - i32.add - local.set $5 - br $for-loop|2 + i32.const 224 + i32.const 704 + i32.const 108 + i32.const 22 + call $~lib/builtins/abort + unreachable end + local.get $0 + local.get $1 + i32.const 1 + i32.add + i32.const 2 + call $~lib/array/ensureSize + local.get $0 + local.get $1 + i32.const 1 + i32.add + call $~lib/array/Array#set:length_ end - local.get $3 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - call $~lib/map/Map#get:size - i32.const 100 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 36 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $4 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $0 + local.get $1 + local.get $2 + call $~lib/array/Array#__uset + ) + (func $~lib/array/Array#set:length (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.const 2 + call $~lib/array/ensureSize + local.get $0 + local.get $1 + call $~lib/array/Array#set:length_ + ) + (func $~lib/map/Map#set:buckets (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + local.get $0 + local.get $1 + i32.const 0 + call $~lib/rt/itcms/__link + ) + (func $~lib/map/Map#set:bucketsMask (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 i32.store offset=4 - local.get $9 - call $~lib/map/Map#get:size - i32.const 100 - i32.eq - i32.eqz + ) + (func $~lib/map/Map#set:entries (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=8 + local.get $0 + local.get $1 + i32.const 0 + call $~lib/rt/itcms/__link + ) + (func $~lib/map/Map#set:entriesCapacity (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=12 + ) + (func $~lib/map/Map#set:entriesOffset (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=16 + ) + (func $~lib/map/Map#set:entriesCount (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=20 + ) + (func $~lib/array/Array#get:length (param $0 i32) (result i32) + local.get $0 + i32.load offset=12 + ) + (func $~lib/array/Array#__get (param $0 i32) (param $1 i32) (result f32) + (local $2 f32) + local.get $1 + local.get $0 + i32.load offset=12 + i32.ge_u if - i32.const 0 - i32.const 544 - i32.const 37 - i32.const 3 + i32.const 224 + i32.const 704 + i32.const 92 + i32.const 42 call $~lib/builtins/abort unreachable end + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 2 + i32.shl + i32.add + f32.load + local.set $2 i32.const 0 - local.set $5 - loop $for-loop|3 - local.get $5 - i32.const 50 - i32.lt_u - local.set $6 - local.get $6 + drop + local.get $2 + ) + (func $~lib/map/Map#find (param $0 i32) (param $1 f32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $0 + i32.load + local.get $2 + local.get $0 + i32.load offset=4 + i32.and + i32.const 4 + i32.mul + i32.add + i32.load + local.set $3 + loop $while-continue|0 + local.get $3 + local.set $4 + local.get $4 if - local.get $0 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 + local.get $3 + i32.load offset=8 + local.set $5 local.get $5 - call $~lib/map/Map#has + i32.const 1 + i32.and i32.eqz - if + if (result i32) + local.get $3 + f32.load + local.get $1 + f32.eq + else i32.const 0 - i32.const 544 - i32.const 41 - i32.const 5 - call $~lib/builtins/abort - unreachable end - local.get $0 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - local.get $5 - call $~lib/map/Map#get - i32.const 20 - local.get $5 - i32.add - i32.eq - i32.eqz if - i32.const 0 - i32.const 544 - i32.const 42 - i32.const 5 - call $~lib/builtins/abort - unreachable + local.get $3 + return end - local.get $0 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - local.get $5 - call $~lib/map/Map#delete - drop - local.get $0 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 local.get $5 - call $~lib/map/Map#has - i32.eqz + i32.const 1 + i32.const -1 + i32.xor + i32.and + local.set $3 + br $while-continue|0 + end + end + i32.const 0 + ) + (func $~lib/map/MapEntry#set:value (param $0 i32) (param $1 f32) + local.get $0 + local.get $1 + f32.store offset=4 + ) + (func $~lib/map/MapEntry#set:key (param $0 i32) (param $1 f32) + local.get $0 + local.get $1 + f32.store + ) + (func $~lib/map/MapEntry#set:taggedNext (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=8 + ) + (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) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 f32) + (local $13 f32) + (local $14 i32) + (local $15 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 $1 + i32.const 1 + i32.add + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 0 + local.get $2 + i32.const 4 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $3 + i32.store + local.get $2 + i32.const 8 + i32.mul + i32.const 3 + i32.div_s + local.set $4 + global.get $~lib/memory/__stack_pointer + i32.const 0 + local.get $4 + i32.const 12 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $5 + i32.store offset=4 + local.get $0 + i32.load offset=8 + local.set $6 + local.get $6 + local.get $0 + i32.load offset=16 + i32.const 12 + i32.mul + i32.add + local.set $7 + local.get $5 + local.set $8 + loop $while-continue|0 + local.get $6 + local.get $7 + i32.ne + local.set $9 + local.get $9 + if + local.get $6 + local.set $10 + local.get $10 + i32.load offset=8 + i32.const 1 + i32.and i32.eqz if - i32.const 0 - i32.const 544 - i32.const 44 - i32.const 5 - call $~lib/builtins/abort - unreachable + local.get $8 + local.set $11 + local.get $10 + f32.load + local.set $12 + local.get $11 + local.get $12 + call $~lib/map/MapEntry#set:key + local.get $11 + local.get $10 + f32.load offset=4 + call $~lib/map/MapEntry#set:value + block $~lib/util/hash/HASH|inlined.5 (result i32) + local.get $12 + local.set $13 + i32.const 0 + drop + i32.const 0 + drop + i32.const 1 + drop + i32.const 4 + i32.const 4 + i32.eq + drop + local.get $13 + i32.reinterpret_f32 + call $~lib/util/hash/hash32 + br $~lib/util/hash/HASH|inlined.5 + end + local.get $1 + i32.and + local.set $14 + local.get $3 + local.get $14 + i32.const 4 + i32.mul + i32.add + local.set $15 + local.get $11 + local.get $15 + i32.load + call $~lib/map/MapEntry#set:taggedNext + local.get $15 + local.get $8 + i32.store + local.get $8 + i32.const 12 + i32.add + local.set $8 end - local.get $5 - i32.const 1 + local.get $6 + i32.const 12 i32.add - local.set $5 - br $for-loop|3 + local.set $6 + br $while-continue|0 end end local.get $0 - local.set $9 + local.get $3 + call $~lib/map/Map#set:buckets + local.get $0 + local.get $1 + call $~lib/map/Map#set:bucketsMask + local.get $0 + local.get $5 + call $~lib/map/Map#set:entries + local.get $0 + local.get $4 + call $~lib/map/Map#set:entriesCapacity + local.get $0 + local.get $0 + i32.load offset=20 + call $~lib/map/Map#set:entriesOffset global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - call $~lib/map/Map#get:size - i32.const 50 - i32.eq + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/map/Map#get:size (param $0 i32) (result i32) + local.get $0 + i32.load offset=20 + ) + (func $~lib/map/Map#delete (param $0 i32) (param $1 f32) (result i32) + (local $2 f32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + local.get $0 + local.get $1 + block $~lib/util/hash/HASH|inlined.6 (result i32) + local.get $1 + local.set $2 + i32.const 0 + drop + i32.const 0 + drop + i32.const 1 + drop + i32.const 4 + i32.const 4 + i32.eq + drop + local.get $2 + i32.reinterpret_f32 + call $~lib/util/hash/hash32 + br $~lib/util/hash/HASH|inlined.6 + end + call $~lib/map/Map#find + local.set $3 + local.get $3 i32.eqz if i32.const 0 - i32.const 544 - i32.const 46 + return + end + local.get $3 + local.get $3 + i32.load offset=8 + i32.const 1 + i32.or + call $~lib/map/MapEntry#set:taggedNext + local.get $0 + local.get $0 + i32.load offset=20 + i32.const 1 + i32.sub + call $~lib/map/Map#set:entriesCount + local.get $0 + i32.load offset=4 + i32.const 1 + i32.shr_u + local.set $4 + local.get $4 + i32.const 1 + i32.add + i32.const 4 + local.tee $5 + local.get $0 + i32.load offset=20 + local.tee $6 + local.get $5 + local.get $6 + i32.gt_u + select + i32.ge_u + if (result i32) + local.get $0 + i32.load offset=20 + local.get $0 + i32.load offset=12 i32.const 3 - call $~lib/builtins/abort - unreachable + i32.mul + i32.const 4 + i32.div_s + i32.lt_s + else + i32.const 0 + end + if + local.get $0 + local.get $4 + call $~lib/map/Map#rehash end + i32.const 1 + ) + (func $~lib/map/Map#clear (param $0 i32) + local.get $0 i32.const 0 - local.set $5 - loop $for-loop|4 - local.get $5 - i32.const 50 - i32.lt_u - local.set $6 - local.get $6 + i32.const 4 + i32.const 4 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + call $~lib/map/Map#set:buckets + local.get $0 + i32.const 4 + i32.const 1 + i32.sub + call $~lib/map/Map#set:bucketsMask + local.get $0 + i32.const 0 + i32.const 4 + i32.const 12 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + call $~lib/map/Map#set:entries + local.get $0 + i32.const 4 + call $~lib/map/Map#set:entriesCapacity + local.get $0 + i32.const 0 + call $~lib/map/Map#set:entriesOffset + local.get $0 + i32.const 0 + call $~lib/map/Map#set:entriesCount + ) + (func $std/map/testNumeric + (local $0 i32) + (local $1 f32) + (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.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 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + i32.const 0 + call $~lib/map/Map#constructor + local.tee $0 + i32.store + f32.const 0 + local.set $1 + loop $for-loop|0 + local.get $1 + f32.const 100 + f32.lt + local.set $2 + local.get $2 if local.get $0 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - local.get $5 - call $~lib/map/Map#has + local.get $1 + call $~lib/map/Map#has i32.eqz i32.eqz if i32.const 0 i32.const 544 - i32.const 50 + i32.const 6 i32.const 5 call $~lib/builtins/abort unreachable end local.get $0 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - local.get $5 + local.get $1 i32.const 10 - local.get $5 + local.get $1 + i32.trunc_f32_s i32.add - call $~lib/map/Map#set + call $~lib/map/Map#set drop local.get $0 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - local.get $5 - call $~lib/map/Map#has + local.get $1 + call $~lib/map/Map#has i32.eqz if i32.const 0 i32.const 544 - i32.const 52 + i32.const 8 i32.const 5 call $~lib/builtins/abort unreachable end local.get $0 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - local.get $5 - call $~lib/map/Map#delete - drop - local.get $0 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - local.get $5 - call $~lib/map/Map#has - i32.eqz + local.get $1 + call $~lib/map/Map#get + i32.const 10 + local.get $1 + i32.trunc_f32_s + i32.add + i32.eq i32.eqz if i32.const 0 i32.const 544 - i32.const 54 + i32.const 9 i32.const 5 call $~lib/builtins/abort unreachable end - local.get $5 - i32.const 1 - i32.add - local.set $5 - br $for-loop|4 + local.get $1 + f32.const 1 + f32.add + local.set $1 + br $for-loop|0 end end local.get $0 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - call $~lib/map/Map#get:size - i32.const 50 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 56 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - call $~lib/map/Map#clear - local.get $0 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - call $~lib/map/Map#get:size - i32.const 0 + call $~lib/map/Map#get:size + i32.const 100 i32.eq i32.eqz if i32.const 0 i32.const 544 - i32.const 60 + i32.const 11 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/map/Map#has (param $0 i32) (param $1 i64) (result i32) - (local $2 i64) - (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 $0 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store - local.get $3 - local.get $1 - block $~lib/util/hash/HASH|inlined.0 (result i32) + f32.const 0 + local.set $1 + loop $for-loop|1 local.get $1 + f32.const 100 + f32.lt local.set $2 - i32.const 0 - drop - i32.const 0 - drop - i32.const 0 - drop - i32.const 8 - i32.const 1 - i32.eq - drop - i32.const 8 - i32.const 2 - i32.eq - drop - i32.const 8 - i32.const 4 - i32.eq - drop - i32.const 8 - i32.const 8 - i32.eq - drop - local.get $2 - call $~lib/util/hash/hash64 - br $~lib/util/hash/HASH|inlined.0 - end - call $~lib/map/Map#find - i32.const 0 - i32.ne - local.set $3 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $3 - ) - (func $~lib/map/Map#set (param $0 i32) (param $1 i64) (param $2 i32) (result i32) - (local $3 i64) - (local $4 i32) - (local $5 i32) - (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 - call $~stack_check - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - block $~lib/util/hash/HASH|inlined.1 (result i32) - local.get $1 - local.set $3 - i32.const 0 - drop - i32.const 0 - drop - i32.const 0 - drop - i32.const 8 - i32.const 1 - i32.eq - drop - i32.const 8 - i32.const 2 - i32.eq - drop - i32.const 8 - i32.const 4 - i32.eq - drop - i32.const 8 - i32.const 8 - i32.eq - drop - local.get $3 - call $~lib/util/hash/hash64 - br $~lib/util/hash/HASH|inlined.1 - end - local.set $4 - local.get $0 - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store - local.get $8 - local.get $1 - local.get $4 - call $~lib/map/Map#find - local.set $5 - local.get $5 - if - local.get $5 local.get $2 - call $~lib/map/MapEntry#set:value - i32.const 0 - drop - else - local.get $0 - i32.load offset=16 - local.get $0 - i32.load offset=12 - i32.eq if local.get $0 - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store - local.get $8 + local.get $1 + call $~lib/map/Map#has + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 15 + i32.const 5 + call $~lib/builtins/abort + unreachable + end local.get $0 - i32.load offset=20 + local.get $1 + call $~lib/map/Map#get + i32.const 10 + local.get $1 + i32.trunc_f32_s + i32.add + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 16 + i32.const 5 + call $~lib/builtins/abort + unreachable + end 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 $0 - i32.load offset=4 - else - local.get $0 - i32.load offset=4 - i32.const 1 - i32.shl - i32.const 1 - i32.or + local.get $1 + i32.const 20 + local.get $1 + i32.trunc_f32_s + i32.add + call $~lib/map/Map#set + drop + local.get $0 + local.get $1 + call $~lib/map/Map#has + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 18 + i32.const 5 + call $~lib/builtins/abort + unreachable end - call $~lib/map/Map#rehash + local.get $0 + local.get $1 + call $~lib/map/Map#get + i32.const 20 + local.get $1 + i32.trunc_f32_s + i32.add + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 19 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $1 + f32.const 1 + f32.add + local.set $1 + br $for-loop|1 end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.load offset=8 - local.tee $6 - i32.store offset=4 - local.get $6 - local.get $0 - local.get $0 - i32.load offset=16 - local.tee $7 - i32.const 1 - i32.add - call $~lib/map/Map#set:entriesOffset - local.get $7 - i32.const 16 - i32.mul - i32.add - local.set $5 - local.get $5 - local.get $1 - call $~lib/map/MapEntry#set:key - i32.const 0 - drop - local.get $5 - local.get $2 - call $~lib/map/MapEntry#set:value - i32.const 0 - drop - local.get $0 - local.get $0 - i32.load offset=20 - i32.const 1 - i32.add - call $~lib/map/Map#set:entriesCount - local.get $0 - i32.load - local.get $4 - local.get $0 - i32.load offset=4 - i32.and - i32.const 4 - i32.mul - i32.add - local.set $7 - local.get $5 - local.get $7 - i32.load - call $~lib/map/MapEntry#set:taggedNext - local.get $7 - local.get $5 - i32.store end local.get $0 - local.set $8 + call $~lib/map/Map#get:size + i32.const 100 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 21 + 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 $8 - ) - (func $~lib/map/Map#get (param $0 i32) (param $1 i64) (result i32) - (local $2 i64) - (local $3 i32) - (local $4 i32) + local.get $0 + call $~lib/map/Map#keys + local.tee $2 + i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check + local.get $0 + call $~lib/map/Map#values + local.tee $3 + i32.store offset=8 global.get $~lib/memory/__stack_pointer i32.const 0 - i32.store - local.get $0 - local.set $4 + call $~lib/map/Map#constructor + local.tee $4 + i32.store offset=12 global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store - local.get $4 - local.get $1 - block $~lib/util/hash/HASH|inlined.3 (result i32) - local.get $1 - local.set $2 - i32.const 0 - drop - i32.const 0 - drop - i32.const 0 - drop - i32.const 8 - i32.const 1 - i32.eq - drop - i32.const 8 - i32.const 2 - i32.eq - drop - i32.const 8 - i32.const 4 - i32.eq - drop - i32.const 8 - i32.const 8 - i32.eq - drop + i32.const 0 + call $~lib/map/Map#constructor + local.tee $5 + i32.store offset=16 + i32.const 0 + local.set $6 + loop $for-loop|2 + local.get $6 local.get $2 - call $~lib/util/hash/hash64 - br $~lib/util/hash/HASH|inlined.3 + call $~lib/array/Array#get:length + i32.lt_s + local.set $7 + local.get $7 + if + local.get $2 + local.get $6 + call $~lib/array/Array#__get + local.set $1 + local.get $3 + local.get $6 + call $~lib/array/Array#__get + local.set $8 + local.get $0 + local.get $1 + call $~lib/map/Map#has + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 31 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $8 + i32.const 20 + i32.sub + f32.convert_i32_s + call $~lib/map/Map#has + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 32 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $4 + local.get $1 + local.get $1 + call $~lib/map/Map#set + drop + local.get $5 + local.get $8 + i32.const 20 + i32.sub + local.get $8 + i32.const 20 + i32.sub + call $~lib/map/Map#set + drop + local.get $6 + i32.const 1 + i32.add + local.set $6 + br $for-loop|2 + end end - call $~lib/map/Map#find - local.set $3 - local.get $3 + local.get $4 + call $~lib/map/Map#get:size + i32.const 100 + i32.eq i32.eqz if - i32.const 592 - i32.const 656 - i32.const 105 - i32.const 17 + i32.const 0 + i32.const 544 + i32.const 36 + i32.const 3 call $~lib/builtins/abort unreachable end - local.get $3 - i32.load offset=8 - local.set $4 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $4 - ) - (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 - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - local.get $1 - local.get $0 - i32.load offset=12 - i32.ge_u + local.get $5 + call $~lib/map/Map#get:size + i32.const 100 + i32.eq + i32.eqz if - local.get $1 i32.const 0 - i32.lt_s - if - i32.const 224 - i32.const 704 - i32.const 108 - i32.const 22 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.get $1 - i32.const 1 - i32.add + i32.const 544 + i32.const 37 i32.const 3 - call $~lib/array/ensureSize - local.get $0 - local.get $1 - i32.const 1 - i32.add - call $~lib/array/Array#set:length_ + call $~lib/builtins/abort + unreachable end - local.get $0 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store - local.get $3 - local.get $1 - local.get $2 - call $~lib/array/Array#__uset - 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 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - local.get $0 - i32.load offset=8 + f32.const 0 local.set $1 - local.get $0 - i32.load offset=16 - local.set $2 - global.get $~lib/memory/__stack_pointer - i32.const 0 - local.get $2 - call $~lib/array/Array#constructor - local.tee $3 - i32.store - i32.const 0 - local.set $4 - i32.const 0 - local.set $5 - loop $for-loop|0 - local.get $5 - local.get $2 - i32.lt_s + loop $for-loop|3 + local.get $1 + f32.const 50 + f32.lt local.set $6 local.get $6 if + local.get $0 local.get $1 - local.get $5 - i32.const 16 - i32.mul - i32.add - local.set $7 - local.get $7 - i32.load offset=12 - i32.const 1 - i32.and + call $~lib/map/Map#has i32.eqz if - local.get $3 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - local.get $4 - local.tee $8 - i32.const 1 - i32.add - local.set $4 - local.get $8 - local.get $7 - i64.load - call $~lib/array/Array#__set + i32.const 0 + i32.const 544 + i32.const 41 + i32.const 5 + call $~lib/builtins/abort + unreachable end - local.get $5 - i32.const 1 + local.get $0 + local.get $1 + call $~lib/map/Map#get + i32.const 20 + local.get $1 + i32.trunc_f32_s i32.add - local.set $5 - br $for-loop|0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 42 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $1 + call $~lib/map/Map#delete + drop + local.get $0 + local.get $1 + call $~lib/map/Map#has + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 544 + 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 - local.get $3 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - local.get $4 - call $~lib/array/Array#set:length - local.get $3 - local.set $9 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $9 - ) - (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) - (local $9 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 $0 - i32.load offset=8 + call $~lib/map/Map#get:size + i32.const 50 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 46 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + f32.const 0 local.set $1 - local.get $0 - i32.load offset=16 - local.set $2 - global.get $~lib/memory/__stack_pointer - i32.const 0 - local.get $2 - call $~lib/array/Array#constructor - local.tee $3 - i32.store - i32.const 0 - local.set $4 - i32.const 0 - local.set $5 - loop $for-loop|0 - local.get $5 - local.get $2 - i32.lt_s + loop $for-loop|4 + local.get $1 + f32.const 50 + f32.lt local.set $6 local.get $6 if + local.get $0 + local.get $1 + call $~lib/map/Map#has + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 50 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $1 + i32.const 10 + local.get $1 + i32.trunc_f32_s + i32.add + call $~lib/map/Map#set + drop + local.get $0 + local.get $1 + call $~lib/map/Map#has + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 52 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 local.get $1 - local.get $5 - i32.const 16 - i32.mul - i32.add - local.set $7 - local.get $7 - i32.load offset=12 - i32.const 1 - i32.and + call $~lib/map/Map#delete + drop + local.get $0 + local.get $1 + call $~lib/map/Map#has + i32.eqz i32.eqz if - local.get $3 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - local.get $4 - local.tee $8 - i32.const 1 - i32.add - local.set $4 - local.get $8 - local.get $7 - i32.load offset=8 - call $~lib/array/Array#__set + i32.const 0 + i32.const 544 + i32.const 54 + i32.const 5 + call $~lib/builtins/abort + unreachable end - local.get $5 - i32.const 1 - i32.add - local.set $5 - br $for-loop|0 + local.get $1 + f32.const 1 + f32.add + local.set $1 + br $for-loop|4 end end - local.get $3 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - local.get $4 - call $~lib/array/Array#set:length - local.get $3 - local.set $9 + local.get $0 + call $~lib/map/Map#get:size + i32.const 50 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 56 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + call $~lib/map/Map#clear + local.get $0 + call $~lib/map/Map#get:size + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 60 + 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 - local.get $9 ) - (func $~lib/map/Map#set (param $0 i32) (param $1 i64) (param $2 i64) (result i32) - (local $3 i64) - (local $4 i32) - (local $5 i32) - (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 - call $~stack_check - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - block $~lib/util/hash/HASH|inlined.4 (result i32) - local.get $1 - local.set $3 - i32.const 0 - drop - i32.const 0 - drop - i32.const 0 - drop - i32.const 8 - i32.const 1 - i32.eq - drop - i32.const 8 - i32.const 2 - i32.eq - drop - i32.const 8 - i32.const 4 - i32.eq - drop - i32.const 8 - i32.const 8 - i32.eq - drop - local.get $3 - call $~lib/util/hash/hash64 - br $~lib/util/hash/HASH|inlined.4 - end - local.set $4 + (func $~lib/map/Map#set:buckets (param $0 i32) (param $1 i32) local.get $0 - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $1 i32.store - local.get $8 + local.get $0 local.get $1 - local.get $4 - call $~lib/map/Map#find - local.set $5 - local.get $5 - if - local.get $5 - local.get $2 - call $~lib/map/MapEntry#set:value - i32.const 0 - drop - else - local.get $0 - i32.load offset=16 - local.get $0 - i32.load offset=12 - i32.eq + i32.const 0 + call $~lib/rt/itcms/__link + ) + (func $~lib/map/Map#set:bucketsMask (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=4 + ) + (func $~lib/map/Map#set:entries (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=8 + local.get $0 + local.get $1 + i32.const 0 + call $~lib/rt/itcms/__link + ) + (func $~lib/map/Map#set:entriesCapacity (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=12 + ) + (func $~lib/map/Map#set:entriesOffset (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=16 + ) + (func $~lib/map/Map#set:entriesCount (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=20 + ) + (func $~lib/map/Map#find (param $0 i32) (param $1 f64) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $0 + i32.load + local.get $2 + local.get $0 + i32.load offset=4 + i32.and + i32.const 4 + i32.mul + i32.add + i32.load + local.set $3 + loop $while-continue|0 + local.get $3 + local.set $4 + local.get $4 if - local.get $0 - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store - local.get $8 - local.get $0 - i32.load offset=20 - local.get $0 + local.get $3 i32.load offset=12 - i32.const 3 - i32.mul - i32.const 4 - i32.div_s - i32.lt_s + local.set $5 + local.get $5 + i32.const 1 + i32.and + i32.eqz if (result i32) - local.get $0 - i32.load offset=4 - else - 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.load offset=8 - local.tee $6 - i32.store offset=4 - local.get $6 - local.get $0 - local.get $0 - i32.load offset=16 - local.tee $7 - i32.const 1 - i32.add - call $~lib/map/Map#set:entriesOffset - local.get $7 - i32.const 24 - i32.mul - i32.add - local.set $5 - local.get $5 + local.get $3 + f64.load + local.get $1 + f64.eq + else + i32.const 0 + end + if + local.get $3 + return + end + local.get $5 + i32.const 1 + i32.const -1 + i32.xor + i32.and + local.set $3 + br $while-continue|0 + end + end + i32.const 0 + ) + (func $~lib/map/Map#has (param $0 i32) (param $1 f64) (result i32) + (local $2 f64) + local.get $0 + local.get $1 + block $~lib/util/hash/HASH|inlined.0 (result i32) local.get $1 - call $~lib/map/MapEntry#set:key + local.set $2 i32.const 0 drop - local.get $5 - local.get $2 - call $~lib/map/MapEntry#set:value i32.const 0 drop - local.get $0 - local.get $0 - i32.load offset=20 i32.const 1 - i32.add - call $~lib/map/Map#set:entriesCount - local.get $0 - i32.load - local.get $4 - local.get $0 - i32.load offset=4 - i32.and + drop + i32.const 8 i32.const 4 - i32.mul - i32.add - local.set $7 - local.get $5 - local.get $7 - i32.load - call $~lib/map/MapEntry#set:taggedNext - local.get $7 - local.get $5 - i32.store + i32.eq + drop + i32.const 8 + i32.const 8 + i32.eq + drop + local.get $2 + i64.reinterpret_f64 + call $~lib/util/hash/hash64 + br $~lib/util/hash/HASH|inlined.0 end + call $~lib/map/Map#find + i32.const 0 + i32.ne + ) + (func $~lib/map/MapEntry#set:value (param $0 i32) (param $1 i32) local.get $0 - local.set $8 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $8 + local.get $1 + i32.store offset=8 ) - (func $~lib/map/Map#delete (param $0 i32) (param $1 i64) (result i32) - (local $2 i64) + (func $~lib/map/MapEntry#set:key (param $0 i32) (param $1 f64) + local.get $0 + local.get $1 + f64.store + ) + (func $~lib/map/MapEntry#set:taggedNext (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=12 + ) + (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) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 f64) + (local $13 f64) + (local $14 i32) + (local $15 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 + i64.const 0 + i64.store + local.get $1 + i32.const 1 + i32.add + local.set $2 + global.get $~lib/memory/__stack_pointer i32.const 0 + local.get $2 + i32.const 4 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $3 i32.store + local.get $2 + i32.const 8 + i32.mul + i32.const 3 + i32.div_s + local.set $4 + global.get $~lib/memory/__stack_pointer + i32.const 0 + local.get $4 + i32.const 16 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $5 + i32.store offset=4 + local.get $0 + i32.load offset=8 + local.set $6 + local.get $6 local.get $0 + i32.load offset=16 + i32.const 16 + i32.mul + i32.add local.set $7 + local.get $5 + local.set $8 + loop $while-continue|0 + local.get $6 + local.get $7 + i32.ne + local.set $9 + local.get $9 + if + local.get $6 + local.set $10 + local.get $10 + i32.load offset=12 + i32.const 1 + i32.and + i32.eqz + if + local.get $8 + local.set $11 + local.get $10 + f64.load + local.set $12 + local.get $11 + local.get $12 + call $~lib/map/MapEntry#set:key + local.get $11 + local.get $10 + i32.load offset=8 + call $~lib/map/MapEntry#set:value + block $~lib/util/hash/HASH|inlined.2 (result i32) + local.get $12 + local.set $13 + i32.const 0 + drop + i32.const 0 + drop + i32.const 1 + drop + i32.const 8 + i32.const 4 + i32.eq + drop + i32.const 8 + i32.const 8 + i32.eq + drop + local.get $13 + i64.reinterpret_f64 + call $~lib/util/hash/hash64 + br $~lib/util/hash/HASH|inlined.2 + end + local.get $1 + i32.and + local.set $14 + local.get $3 + local.get $14 + i32.const 4 + i32.mul + i32.add + local.set $15 + local.get $11 + local.get $15 + i32.load + call $~lib/map/MapEntry#set:taggedNext + local.get $15 + local.get $8 + i32.store + local.get $8 + i32.const 16 + i32.add + local.set $8 + end + local.get $6 + i32.const 16 + i32.add + local.set $6 + br $while-continue|0 + end + end + local.get $0 + local.get $3 + call $~lib/map/Map#set:buckets + local.get $0 + local.get $1 + call $~lib/map/Map#set:bucketsMask + local.get $0 + local.get $5 + call $~lib/map/Map#set:entries + local.get $0 + local.get $4 + call $~lib/map/Map#set:entriesCapacity + local.get $0 + local.get $0 + i32.load offset=20 + call $~lib/map/Map#set:entriesOffset global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store - local.get $7 + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/map/Map#get (param $0 i32) (param $1 f64) (result i32) + (local $2 f64) + (local $3 i32) + local.get $0 local.get $1 - block $~lib/util/hash/HASH|inlined.6 (result i32) + block $~lib/util/hash/HASH|inlined.3 (result i32) local.get $1 local.set $2 i32.const 0 drop i32.const 0 drop - i32.const 0 - drop - i32.const 8 i32.const 1 - i32.eq - drop - i32.const 8 - i32.const 2 - i32.eq drop i32.const 8 i32.const 4 @@ -20277,87 +16048,242 @@ i32.eq drop local.get $2 + i64.reinterpret_f64 call $~lib/util/hash/hash64 - br $~lib/util/hash/HASH|inlined.6 + br $~lib/util/hash/HASH|inlined.3 end - call $~lib/map/Map#find + call $~lib/map/Map#find local.set $3 local.get $3 i32.eqz if - i32.const 0 - local.set $7 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $7 - return + i32.const 592 + i32.const 656 + i32.const 105 + i32.const 17 + call $~lib/builtins/abort + unreachable end local.get $3 - local.get $3 - i32.load offset=12 - i32.const 1 - i32.or - call $~lib/map/MapEntry#set:taggedNext - local.get $0 + i32.load offset=8 + ) + (func $~lib/map/Map#get:size (param $0 i32) (result i32) local.get $0 i32.load offset=20 - i32.const 1 - i32.sub - call $~lib/map/Map#set:entriesCount + ) + (func $~lib/array/Array#set:buffer (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + local.get $0 + local.get $1 + i32.const 0 + call $~lib/rt/itcms/__link + ) + (func $~lib/array/Array#set:dataStart (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=4 + ) + (func $~lib/array/Array#set:byteLength (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=8 + ) + (func $~lib/array/Array#set:length_ (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=12 + ) + (func $~lib/array/Array#__uset (param $0 i32) (param $1 i32) (param $2 f64) local.get $0 i32.load offset=4 - i32.const 1 - i32.shr_u - local.set $4 - local.get $4 - i32.const 1 + local.get $1 + i32.const 3 + i32.shl i32.add - i32.const 4 - local.tee $5 + local.get $2 + f64.store + i32.const 0 + drop + ) + (func $~lib/array/Array#__set (param $0 i32) (param $1 i32) (param $2 f64) + local.get $1 local.get $0 - i32.load offset=20 - local.tee $6 - local.get $5 - local.get $6 - i32.gt_u - select + i32.load offset=12 i32.ge_u - if (result i32) - local.get $0 - i32.load offset=20 + if + local.get $1 + i32.const 0 + i32.lt_s + if + i32.const 224 + i32.const 704 + i32.const 108 + i32.const 22 + call $~lib/builtins/abort + unreachable + end local.get $0 - i32.load offset=12 + local.get $1 + i32.const 1 + i32.add i32.const 3 - i32.mul - i32.const 4 - i32.div_s - i32.lt_s - else - i32.const 0 + call $~lib/array/ensureSize + local.get $0 + local.get $1 + i32.const 1 + i32.add + call $~lib/array/Array#set:length_ end + local.get $0 + local.get $1 + local.get $2 + call $~lib/array/Array#__uset + ) + (func $~lib/array/Array#set:length (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.const 3 + call $~lib/array/ensureSize + local.get $0 + local.get $1 + call $~lib/array/Array#set:length_ + ) + (func $~lib/map/Map#set:buckets (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + local.get $0 + local.get $1 + i32.const 0 + call $~lib/rt/itcms/__link + ) + (func $~lib/map/Map#set:bucketsMask (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=4 + ) + (func $~lib/map/Map#set:entries (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=8 + local.get $0 + local.get $1 + i32.const 0 + call $~lib/rt/itcms/__link + ) + (func $~lib/map/Map#set:entriesCapacity (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=12 + ) + (func $~lib/map/Map#set:entriesOffset (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=16 + ) + (func $~lib/map/Map#set:entriesCount (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=20 + ) + (func $~lib/array/Array#get:length (param $0 i32) (result i32) + local.get $0 + i32.load offset=12 + ) + (func $~lib/array/Array#__get (param $0 i32) (param $1 i32) (result f64) + (local $2 f64) + local.get $1 + local.get $0 + i32.load offset=12 + i32.ge_u if - local.get $0 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store - local.get $7 - local.get $4 - call $~lib/map/Map#rehash + i32.const 224 + i32.const 704 + i32.const 92 + i32.const 42 + call $~lib/builtins/abort + unreachable end - i32.const 1 - local.set $7 - 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 + local.set $2 + i32.const 0 + drop + local.get $2 + ) + (func $~lib/map/Map#find (param $0 i32) (param $1 f64) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $0 + i32.load + local.get $2 + local.get $0 + i32.load offset=4 + i32.and i32.const 4 + i32.mul i32.add - global.set $~lib/memory/__stack_pointer - local.get $7 + i32.load + local.set $3 + loop $while-continue|0 + local.get $3 + local.set $4 + local.get $4 + if + local.get $3 + i32.load offset=16 + local.set $5 + local.get $5 + i32.const 1 + i32.and + i32.eqz + if (result i32) + local.get $3 + f64.load + local.get $1 + f64.eq + else + i32.const 0 + end + if + local.get $3 + return + end + local.get $5 + i32.const 1 + i32.const -1 + i32.xor + i32.and + local.set $3 + br $while-continue|0 + end + end + i32.const 0 + ) + (func $~lib/map/MapEntry#set:value (param $0 i32) (param $1 f64) + local.get $0 + local.get $1 + f64.store offset=8 + ) + (func $~lib/map/MapEntry#set:key (param $0 i32) (param $1 f64) + local.get $0 + local.get $1 + f64.store ) - (func $std/map/testNumeric - (local $0 i32) - (local $1 i64) + (func $~lib/map/MapEntry#set:taggedNext (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=16 + ) + (func $~lib/map/Map#rehash (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -20366,2130 +16292,1729 @@ (local $7 i32) (local $8 i32) (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 f64) + (local $13 f64) + (local $14 i32) + (local $15 i32) global.get $~lib/memory/__stack_pointer - i32.const 24 + 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 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=16 + local.get $1 + i32.const 1 + i32.add + local.set $2 global.get $~lib/memory/__stack_pointer i32.const 0 - call $~lib/map/Map#constructor - local.tee $0 + local.get $2 + i32.const 4 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $3 i32.store - i64.const 0 - local.set $1 - loop $for-loop|0 - local.get $1 - i64.const 100 - i64.lt_s - local.set $2 - local.get $2 - if - local.get $0 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - local.get $1 - call $~lib/map/Map#has - i32.eqz - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 6 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - local.get $1 - i32.const 10 - local.get $1 - i32.wrap_i64 - i32.add - call $~lib/map/Map#set - drop - local.get $0 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - local.get $1 - call $~lib/map/Map#has - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 8 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - local.get $1 - call $~lib/map/Map#get - i32.const 10 - local.get $1 - i32.wrap_i64 - i32.add - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 9 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i64.const 1 - i64.add - local.set $1 - br $for-loop|0 - end - end - local.get $0 - local.set $9 + local.get $2 + i32.const 8 + i32.mul + i32.const 3 + i32.div_s + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $9 + i32.const 0 + local.get $4 + i32.const 24 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $5 i32.store offset=4 - local.get $9 - call $~lib/map/Map#get:size - i32.const 100 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 11 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i64.const 0 - local.set $1 - loop $for-loop|1 - local.get $1 - i64.const 100 - i64.lt_s - local.set $2 - local.get $2 + local.get $0 + i32.load offset=8 + local.set $6 + local.get $6 + local.get $0 + i32.load offset=16 + i32.const 24 + i32.mul + i32.add + local.set $7 + local.get $5 + local.set $8 + loop $while-continue|0 + local.get $6 + local.get $7 + i32.ne + local.set $9 + local.get $9 if - local.get $0 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - local.get $1 - call $~lib/map/Map#has - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 15 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - local.get $1 - call $~lib/map/Map#get - i32.const 10 - local.get $1 - i32.wrap_i64 - i32.add - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 16 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - local.get $1 - i32.const 20 - local.get $1 - i32.wrap_i64 - i32.add - call $~lib/map/Map#set - drop - local.get $0 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - local.get $1 - call $~lib/map/Map#has + local.get $6 + local.set $10 + local.get $10 + i32.load offset=16 + i32.const 1 + i32.and i32.eqz if - i32.const 0 - i32.const 544 - i32.const 18 - i32.const 5 - call $~lib/builtins/abort - unreachable + local.get $8 + local.set $11 + local.get $10 + f64.load + local.set $12 + local.get $11 + local.get $12 + call $~lib/map/MapEntry#set:key + local.get $11 + local.get $10 + f64.load offset=8 + call $~lib/map/MapEntry#set:value + block $~lib/util/hash/HASH|inlined.5 (result i32) + local.get $12 + local.set $13 + i32.const 0 + drop + i32.const 0 + drop + i32.const 1 + drop + i32.const 8 + i32.const 4 + i32.eq + drop + i32.const 8 + i32.const 8 + i32.eq + drop + local.get $13 + i64.reinterpret_f64 + call $~lib/util/hash/hash64 + br $~lib/util/hash/HASH|inlined.5 + end + local.get $1 + i32.and + local.set $14 + local.get $3 + local.get $14 + i32.const 4 + i32.mul + i32.add + local.set $15 + local.get $11 + local.get $15 + i32.load + call $~lib/map/MapEntry#set:taggedNext + local.get $15 + local.get $8 + i32.store + local.get $8 + i32.const 24 + i32.add + local.set $8 end - local.get $0 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - local.get $1 - call $~lib/map/Map#get - i32.const 20 - local.get $1 - i32.wrap_i64 + local.get $6 + i32.const 24 i32.add - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 19 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i64.const 1 - i64.add - local.set $1 - br $for-loop|1 + local.set $6 + br $while-continue|0 end end local.get $0 - local.set $9 + local.get $3 + call $~lib/map/Map#set:buckets + local.get $0 + local.get $1 + call $~lib/map/Map#set:bucketsMask + local.get $0 + local.get $5 + call $~lib/map/Map#set:entries + local.get $0 + local.get $4 + call $~lib/map/Map#set:entriesCapacity + local.get $0 + local.get $0 + i32.load offset=20 + call $~lib/map/Map#set:entriesOffset global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - call $~lib/map/Map#get:size - i32.const 100 - i32.eq + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/map/Map#get:size (param $0 i32) (result i32) + local.get $0 + i32.load offset=20 + ) + (func $~lib/map/Map#delete (param $0 i32) (param $1 f64) (result i32) + (local $2 f64) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + local.get $0 + local.get $1 + block $~lib/util/hash/HASH|inlined.6 (result i32) + local.get $1 + local.set $2 + i32.const 0 + drop + i32.const 0 + drop + i32.const 1 + drop + i32.const 8 + i32.const 4 + i32.eq + drop + i32.const 8 + i32.const 8 + i32.eq + drop + local.get $2 + i64.reinterpret_f64 + call $~lib/util/hash/hash64 + br $~lib/util/hash/HASH|inlined.6 + end + call $~lib/map/Map#find + local.set $3 + local.get $3 i32.eqz if i32.const 0 - i32.const 544 - i32.const 21 + return + end + local.get $3 + local.get $3 + i32.load offset=12 + i32.const 1 + i32.or + call $~lib/map/MapEntry#set:taggedNext + local.get $0 + local.get $0 + i32.load offset=20 + i32.const 1 + i32.sub + call $~lib/map/Map#set:entriesCount + local.get $0 + i32.load offset=4 + i32.const 1 + i32.shr_u + local.set $4 + local.get $4 + i32.const 1 + i32.add + i32.const 4 + local.tee $5 + local.get $0 + i32.load offset=20 + local.tee $6 + local.get $5 + local.get $6 + i32.gt_u + select + i32.ge_u + if (result i32) + local.get $0 + i32.load offset=20 + local.get $0 + i32.load offset=12 i32.const 3 - call $~lib/builtins/abort - unreachable + i32.mul + i32.const 4 + i32.div_s + i32.lt_s + else + i32.const 0 end - global.get $~lib/memory/__stack_pointer + if + local.get $0 + local.get $4 + call $~lib/map/Map#rehash + end + i32.const 1 + ) + (func $~lib/map/Map#clear (param $0 i32) local.get $0 - local.set $9 + i32.const 0 + i32.const 4 + i32.const 4 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + call $~lib/map/Map#set:buckets + local.get $0 + i32.const 4 + i32.const 1 + i32.sub + call $~lib/map/Map#set:bucketsMask + local.get $0 + i32.const 0 + i32.const 4 + i32.const 16 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + call $~lib/map/Map#set:entries + local.get $0 + i32.const 4 + call $~lib/map/Map#set:entriesCapacity + local.get $0 + i32.const 0 + call $~lib/map/Map#set:entriesOffset + local.get $0 + i32.const 0 + call $~lib/map/Map#set:entriesCount + ) + (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) + (local $8 i32) global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - call $~lib/map/Map#keys - local.tee $2 - i32.store offset=8 + i32.const 20 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check global.get $~lib/memory/__stack_pointer - local.get $0 - local.set $9 + i64.const 0 + i64.store global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - call $~lib/map/Map#values - local.tee $3 - i32.store offset=12 + i64.const 0 + i64.store offset=8 global.get $~lib/memory/__stack_pointer i32.const 0 - call $~lib/map/Map#constructor - local.tee $4 i32.store offset=16 global.get $~lib/memory/__stack_pointer i32.const 0 - call $~lib/map/Map#constructor - local.tee $5 - i32.store offset=20 - i32.const 0 - local.set $6 - loop $for-loop|2 - local.get $6 + call $~lib/map/Map#constructor + local.tee $0 + i32.store + f64.const 0 + local.set $1 + loop $for-loop|0 + local.get $1 + f64.const 100 + f64.lt + local.set $2 local.get $2 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - call $~lib/array/Array#get:length - i32.lt_s - local.set $7 - local.get $7 if - local.get $2 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - local.get $6 - call $~lib/array/Array#__get - local.set $1 - local.get $3 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - local.get $6 - call $~lib/array/Array#__get - local.set $8 local.get $0 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 local.get $1 - call $~lib/map/Map#has + call $~lib/map/Map#has + i32.eqz i32.eqz if i32.const 0 i32.const 544 - i32.const 31 + i32.const 6 i32.const 5 call $~lib/builtins/abort unreachable end local.get $0 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - local.get $8 - i32.const 20 - i32.sub - i64.extend_i32_s - call $~lib/map/Map#has + local.get $1 + i32.const 10 + local.get $1 + i32.trunc_f64_s + i32.add + call $~lib/map/Map#set + drop + local.get $0 + local.get $1 + call $~lib/map/Map#has i32.eqz if i32.const 0 i32.const 544 - i32.const 32 + i32.const 8 i32.const 5 call $~lib/builtins/abort unreachable end - local.get $4 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 + local.get $0 local.get $1 + call $~lib/map/Map#get + i32.const 10 local.get $1 - call $~lib/map/Map#set - drop - local.get $5 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - local.get $8 - i32.const 20 - i32.sub - local.get $8 - i32.const 20 - i32.sub - call $~lib/map/Map#set - drop - local.get $6 - i32.const 1 + i32.trunc_f64_s i32.add - local.set $6 - br $for-loop|2 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + 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 - local.get $4 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - call $~lib/map/Map#get:size - i32.const 100 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 36 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $5 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - call $~lib/map/Map#get:size + local.get $0 + call $~lib/map/Map#get:size i32.const 100 i32.eq i32.eqz if i32.const 0 i32.const 544 - i32.const 37 + i32.const 11 i32.const 3 call $~lib/builtins/abort unreachable end - i64.const 0 + f64.const 0 local.set $1 - loop $for-loop|3 + loop $for-loop|1 local.get $1 - i64.const 50 - i64.lt_s - local.set $6 - local.get $6 + f64.const 100 + f64.lt + local.set $2 + local.get $2 if local.get $0 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 local.get $1 - call $~lib/map/Map#has + call $~lib/map/Map#has i32.eqz if i32.const 0 i32.const 544 - i32.const 41 + i32.const 15 i32.const 5 call $~lib/builtins/abort unreachable end local.get $0 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 local.get $1 - call $~lib/map/Map#get - i32.const 20 + call $~lib/map/Map#get + i32.const 10 local.get $1 - i32.wrap_i64 + i32.trunc_f64_s i32.add i32.eq i32.eqz if i32.const 0 i32.const 544 - i32.const 42 + i32.const 16 i32.const 5 call $~lib/builtins/abort unreachable end local.get $0 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 local.get $1 - call $~lib/map/Map#delete + i32.const 20 + local.get $1 + i32.trunc_f64_s + i32.add + call $~lib/map/Map#set drop local.get $0 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 local.get $1 - call $~lib/map/Map#has + call $~lib/map/Map#has i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 18 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $1 + call $~lib/map/Map#get + i32.const 20 + local.get $1 + i32.trunc_f64_s + i32.add + i32.eq i32.eqz if i32.const 0 i32.const 544 - i32.const 44 + i32.const 19 i32.const 5 call $~lib/builtins/abort unreachable end local.get $1 - i64.const 1 - i64.add + f64.const 1 + f64.add local.set $1 - br $for-loop|3 + br $for-loop|1 end end local.get $0 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - call $~lib/map/Map#get:size - i32.const 50 + call $~lib/map/Map#get:size + i32.const 100 i32.eq i32.eqz if i32.const 0 i32.const 544 - i32.const 46 + i32.const 21 i32.const 3 call $~lib/builtins/abort unreachable end - i64.const 0 - local.set $1 - loop $for-loop|4 - local.get $1 - i64.const 50 - i64.lt_s - local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $0 + call $~lib/map/Map#keys + local.tee $2 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + call $~lib/map/Map#values + local.tee $3 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 0 + call $~lib/map/Map#constructor + local.tee $4 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 0 + call $~lib/map/Map#constructor + local.tee $5 + i32.store offset=16 + i32.const 0 + local.set $6 + loop $for-loop|2 local.get $6 + local.get $2 + call $~lib/array/Array#get:length + i32.lt_s + local.set $7 + local.get $7 if + local.get $2 + local.get $6 + call $~lib/array/Array#__get + local.set $1 + local.get $3 + local.get $6 + call $~lib/array/Array#__get + local.set $8 local.get $0 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 local.get $1 - call $~lib/map/Map#has - i32.eqz + call $~lib/map/Map#has i32.eqz if i32.const 0 i32.const 544 - i32.const 50 + i32.const 31 i32.const 5 call $~lib/builtins/abort unreachable end local.get $0 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - local.get $1 - i32.const 10 - local.get $1 - i32.wrap_i64 - i32.add - call $~lib/map/Map#set - drop - local.get $0 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - local.get $1 - call $~lib/map/Map#has + local.get $8 + i32.const 20 + i32.sub + f64.convert_i32_s + call $~lib/map/Map#has i32.eqz if i32.const 0 i32.const 544 - i32.const 52 + i32.const 32 i32.const 5 call $~lib/builtins/abort unreachable end - local.get $0 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - local.get $1 - call $~lib/map/Map#delete - drop - local.get $0 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 + local.get $4 local.get $1 - call $~lib/map/Map#has - i32.eqz - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 54 - i32.const 5 - call $~lib/builtins/abort - unreachable - end local.get $1 - i64.const 1 - i64.add - local.set $1 - br $for-loop|4 + call $~lib/map/Map#set + drop + local.get $5 + local.get $8 + i32.const 20 + i32.sub + local.get $8 + i32.const 20 + i32.sub + call $~lib/map/Map#set + drop + local.get $6 + i32.const 1 + i32.add + local.set $6 + br $for-loop|2 end end - local.get $0 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - call $~lib/map/Map#get:size - i32.const 50 + local.get $4 + call $~lib/map/Map#get:size + i32.const 100 i32.eq i32.eqz if i32.const 0 i32.const 544 - i32.const 56 + i32.const 36 i32.const 3 call $~lib/builtins/abort unreachable end - local.get $0 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - call $~lib/map/Map#clear - local.get $0 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - call $~lib/map/Map#get:size - i32.const 0 + local.get $5 + call $~lib/map/Map#get:size + i32.const 100 i32.eq i32.eqz if i32.const 0 i32.const 544 - 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 - ) - (func $~lib/map/Map#has (param $0 i32) (param $1 i64) (result i32) - (local $2 i64) - (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 $0 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store - local.get $3 - local.get $1 - block $~lib/util/hash/HASH|inlined.0 (result i32) - local.get $1 - local.set $2 - i32.const 0 - drop - i32.const 0 - drop - i32.const 0 - drop - i32.const 8 - i32.const 1 - i32.eq - drop - i32.const 8 - i32.const 2 - i32.eq - drop - i32.const 8 - i32.const 4 - i32.eq - drop - i32.const 8 - i32.const 8 - i32.eq - drop - local.get $2 - call $~lib/util/hash/hash64 - br $~lib/util/hash/HASH|inlined.0 - end - call $~lib/map/Map#find - i32.const 0 - i32.ne - local.set $3 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $3 - ) - (func $~lib/map/Map#set (param $0 i32) (param $1 i64) (param $2 i32) (result i32) - (local $3 i64) - (local $4 i32) - (local $5 i32) - (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 - call $~stack_check - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - block $~lib/util/hash/HASH|inlined.1 (result i32) + f64.const 0 + local.set $1 + loop $for-loop|3 local.get $1 - local.set $3 - i32.const 0 - drop - i32.const 0 - drop - i32.const 0 - drop - i32.const 8 - i32.const 1 - i32.eq - drop - i32.const 8 - i32.const 2 - i32.eq - drop - i32.const 8 - i32.const 4 - i32.eq - drop - i32.const 8 - i32.const 8 - i32.eq - drop - local.get $3 - call $~lib/util/hash/hash64 - br $~lib/util/hash/HASH|inlined.1 + f64.const 50 + f64.lt + local.set $6 + local.get $6 + if + local.get $0 + local.get $1 + call $~lib/map/Map#has + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 41 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $1 + call $~lib/map/Map#get + i32.const 20 + local.get $1 + i32.trunc_f64_s + i32.add + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 42 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $1 + call $~lib/map/Map#delete + drop + local.get $0 + local.get $1 + call $~lib/map/Map#has + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 544 + 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 - local.set $4 local.get $0 - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store - local.get $8 - local.get $1 - local.get $4 - call $~lib/map/Map#find - local.set $5 - local.get $5 + call $~lib/map/Map#get:size + i32.const 50 + i32.eq + i32.eqz if - local.get $5 - local.get $2 - call $~lib/map/MapEntry#set:value i32.const 0 - drop - else - local.get $0 - i32.load offset=16 - local.get $0 - i32.load offset=12 - i32.eq + i32.const 544 + 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 + local.set $6 + local.get $6 if local.get $0 - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store - local.get $8 + local.get $1 + call $~lib/map/Map#has + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 50 + i32.const 5 + call $~lib/builtins/abort + unreachable + end local.get $0 - i32.load offset=20 + local.get $1 + i32.const 10 + local.get $1 + i32.trunc_f64_s + i32.add + call $~lib/map/Map#set + drop 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 $0 - i32.load offset=4 - else - local.get $0 - i32.load offset=4 - i32.const 1 - i32.shl - i32.const 1 - i32.or + local.get $1 + call $~lib/map/Map#has + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 52 + i32.const 5 + call $~lib/builtins/abort + unreachable end - call $~lib/map/Map#rehash + local.get $0 + local.get $1 + call $~lib/map/Map#delete + drop + local.get $0 + local.get $1 + call $~lib/map/Map#has + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 544 + 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 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.load offset=8 - local.tee $6 - i32.store offset=4 - local.get $6 - local.get $0 - local.get $0 - i32.load offset=16 - local.tee $7 - i32.const 1 - i32.add - call $~lib/map/Map#set:entriesOffset - local.get $7 - i32.const 16 - i32.mul - i32.add - local.set $5 - local.get $5 - local.get $1 - call $~lib/map/MapEntry#set:key - i32.const 0 - drop - local.get $5 - local.get $2 - call $~lib/map/MapEntry#set:value - i32.const 0 - drop - local.get $0 - local.get $0 - i32.load offset=20 - i32.const 1 - i32.add - call $~lib/map/Map#set:entriesCount - local.get $0 - i32.load - local.get $4 - local.get $0 - i32.load offset=4 - i32.and - i32.const 4 - i32.mul - i32.add - local.set $7 - local.get $5 - local.get $7 - i32.load - call $~lib/map/MapEntry#set:taggedNext - local.get $7 - local.get $5 - i32.store end local.get $0 - local.set $8 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $8 - ) - (func $~lib/map/Map#get (param $0 i32) (param $1 i64) (result i32) - (local $2 i64) - (local $3 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 $0 - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store - local.get $4 - local.get $1 - block $~lib/util/hash/HASH|inlined.3 (result i32) - local.get $1 - local.set $2 - i32.const 0 - drop - i32.const 0 - drop + call $~lib/map/Map#get:size + i32.const 50 + i32.eq + i32.eqz + if i32.const 0 - drop - i32.const 8 - i32.const 1 - i32.eq - drop - i32.const 8 - i32.const 2 - i32.eq - drop - i32.const 8 - i32.const 4 - i32.eq - drop - i32.const 8 - i32.const 8 - i32.eq - drop - local.get $2 - call $~lib/util/hash/hash64 - br $~lib/util/hash/HASH|inlined.3 + i32.const 544 + i32.const 56 + i32.const 3 + call $~lib/builtins/abort + unreachable end - call $~lib/map/Map#find - local.set $3 - local.get $3 + local.get $0 + call $~lib/map/Map#clear + local.get $0 + call $~lib/map/Map#get:size + i32.const 0 + i32.eq i32.eqz if - i32.const 592 - i32.const 656 - i32.const 105 - i32.const 17 + i32.const 0 + i32.const 544 + i32.const 60 + i32.const 3 call $~lib/builtins/abort unreachable end - local.get $3 - i32.load offset=8 - local.set $4 global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 20 i32.add global.set $~lib/memory/__stack_pointer - local.get $4 ) - (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 - call $~stack_check - global.get $~lib/memory/__stack_pointer + (func $~lib/rt/itcms/__collect + (local $0 i32) i32.const 0 - i32.store - local.get $1 - local.get $0 - i32.load offset=12 - i32.ge_u + drop + global.get $~lib/rt/itcms/state + i32.const 0 + i32.gt_s if - local.get $1 + loop $while-continue|0 + global.get $~lib/rt/itcms/state + i32.const 0 + i32.ne + local.set $0 + local.get $0 + 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.lt_s + i32.ne + local.set $0 + local.get $0 if - i32.const 224 - i32.const 704 - i32.const 108 - i32.const 22 - call $~lib/builtins/abort - unreachable + call $~lib/rt/itcms/step + drop + br $while-continue|1 end - local.get $0 - local.get $1 - i32.const 1 - i32.add - i32.const 3 - call $~lib/array/ensureSize - local.get $0 - local.get $1 - i32.const 1 - i32.add - call $~lib/array/Array#set:length_ end - local.get $0 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store - local.get $3 - local.get $1 - local.get $2 - call $~lib/array/Array#__uset - global.get $~lib/memory/__stack_pointer - i32.const 4 + 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 + i32.const 0 + drop + i32.const 0 + if (result i32) + i32.const 1 + else + i32.const 0 + end + drop ) - (func $~lib/map/Map#keys (param $0 i32) (result i32) + (func $start:std/map + 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 + 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) (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store + i32.const 224 local.get $0 - i32.load offset=8 - local.set $1 + call $~lib/rt/itcms/__visit + i32.const 432 local.get $0 - i32.load offset=16 - local.set $2 - global.get $~lib/memory/__stack_pointer - i32.const 0 - local.get $2 - call $~lib/array/Array#constructor - local.tee $3 - i32.store - i32.const 0 - local.set $4 - i32.const 0 - local.set $5 - loop $for-loop|0 - local.get $5 + call $~lib/rt/itcms/__visit + i32.const 592 + 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 + i32.load + local.tee $2 + if local.get $2 - i32.lt_s - local.set $6 - local.get $6 - if - local.get $1 - local.get $5 - i32.const 16 - i32.mul - i32.add - local.set $7 - local.get $7 - i32.load offset=12 - i32.const 1 - i32.and - i32.eqz - if - local.get $3 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - local.get $4 - local.tee $8 - i32.const 1 - i32.add - local.set $4 - local.get $8 - local.get $7 - i64.load - call $~lib/array/Array#__set - end - local.get $5 - i32.const 1 - i32.add - local.set $5 - br $for-loop|0 - end + local.get $1 + call $~lib/rt/itcms/__visit end - local.get $3 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - local.get $4 - call $~lib/array/Array#set:length - local.get $3 - local.set $9 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $9 ) - (func $~lib/map/Map#values (param $0 i32) (result i32) - (local $1 i32) + (func $~lib/map/Map#__visit (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 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 $0 - i32.load offset=8 - local.set $1 + i32.load + local.get $1 + call $~lib/rt/itcms/__visit local.get $0 - i32.load offset=16 + i32.load offset=8 local.set $2 - global.get $~lib/memory/__stack_pointer i32.const 0 + if (result i32) + i32.const 1 + else + i32.const 0 + end + drop local.get $2 - call $~lib/array/Array#constructor - local.tee $3 - i32.store + local.get $1 + call $~lib/rt/itcms/__visit + ) + (func $~lib/map/Map~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/map/Map#__visit + ) + (func $~lib/array/Array#__visit (param $0 i32) (param $1 i32) i32.const 0 - local.set $4 + drop + local.get $0 + i32.load + local.get $1 + call $~lib/rt/itcms/__visit + ) + (func $~lib/array/Array~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/array/Array#__visit + ) + (func $~lib/array/Array#__visit (param $0 i32) (param $1 i32) i32.const 0 - local.set $5 - loop $for-loop|0 - local.get $5 - local.get $2 - i32.lt_s - local.set $6 - local.get $6 - if - local.get $1 - local.get $5 - i32.const 16 - i32.mul - i32.add - local.set $7 - local.get $7 - i32.load offset=12 - i32.const 1 - i32.and - i32.eqz - if - local.get $3 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - local.get $4 - local.tee $8 - i32.const 1 - i32.add - local.set $4 - local.get $8 - local.get $7 - i32.load offset=8 - call $~lib/array/Array#__set - end - local.get $5 - i32.const 1 - i32.add - local.set $5 - br $for-loop|0 - end - end - local.get $3 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - local.get $4 - call $~lib/array/Array#set:length - local.get $3 - local.set $9 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $9 + drop + local.get $0 + i32.load + local.get $1 + call $~lib/rt/itcms/__visit ) - (func $~lib/map/Map#set (param $0 i32) (param $1 i64) (param $2 i64) (result i32) - (local $3 i64) - (local $4 i32) - (local $5 i32) - (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 - call $~stack_check - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - block $~lib/util/hash/HASH|inlined.4 (result i32) - local.get $1 - local.set $3 - i32.const 0 - drop - i32.const 0 - drop - i32.const 0 - drop - i32.const 8 + (func $~lib/array/Array~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/array/Array#__visit + ) + (func $~lib/map/Map#__visit (param $0 i32) (param $1 i32) + (local $2 i32) + local.get $0 + i32.load + local.get $1 + call $~lib/rt/itcms/__visit + local.get $0 + i32.load offset=8 + local.set $2 + i32.const 0 + if (result i32) i32.const 1 - i32.eq - drop - i32.const 8 - i32.const 2 - i32.eq - drop - i32.const 8 - i32.const 4 - i32.eq - drop - i32.const 8 - i32.const 8 - i32.eq - drop - local.get $3 - call $~lib/util/hash/hash64 - br $~lib/util/hash/HASH|inlined.4 + else + i32.const 0 end - local.set $4 + drop + local.get $2 + local.get $1 + call $~lib/rt/itcms/__visit + ) + (func $~lib/map/Map~visit (param $0 i32) (param $1 i32) local.get $0 - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store - local.get $8 local.get $1 - local.get $4 - call $~lib/map/Map#find - local.set $5 - local.get $5 - if - local.get $5 - local.get $2 - call $~lib/map/MapEntry#set:value - i32.const 0 - drop + call $~lib/map/Map#__visit + ) + (func $~lib/map/Map#__visit (param $0 i32) (param $1 i32) + (local $2 i32) + local.get $0 + i32.load + local.get $1 + call $~lib/rt/itcms/__visit + local.get $0 + i32.load offset=8 + local.set $2 + i32.const 0 + if (result i32) + i32.const 1 else - local.get $0 - i32.load offset=16 - local.get $0 - i32.load offset=12 - i32.eq - if - local.get $0 - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store - local.get $8 - local.get $0 - i32.load offset=20 - 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 $0 - i32.load offset=4 - else - 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.load offset=8 - local.tee $6 - i32.store offset=4 - local.get $6 - local.get $0 - local.get $0 - i32.load offset=16 - local.tee $7 + i32.const 0 + end + drop + local.get $2 + local.get $1 + call $~lib/rt/itcms/__visit + ) + (func $~lib/map/Map~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/map/Map#__visit + ) + (func $~lib/map/Map#__visit (param $0 i32) (param $1 i32) + (local $2 i32) + local.get $0 + i32.load + local.get $1 + call $~lib/rt/itcms/__visit + local.get $0 + i32.load offset=8 + local.set $2 + i32.const 0 + if (result i32) i32.const 1 - i32.add - call $~lib/map/Map#set:entriesOffset - local.get $7 - i32.const 24 - i32.mul - i32.add - local.set $5 - local.get $5 - local.get $1 - call $~lib/map/MapEntry#set:key - i32.const 0 - drop - local.get $5 - local.get $2 - call $~lib/map/MapEntry#set:value + else i32.const 0 - drop - local.get $0 - local.get $0 - i32.load offset=20 - i32.const 1 - i32.add - call $~lib/map/Map#set:entriesCount - local.get $0 - i32.load - local.get $4 - local.get $0 - i32.load offset=4 - i32.and - i32.const 4 - i32.mul - i32.add - local.set $7 - local.get $5 - local.get $7 - i32.load - call $~lib/map/MapEntry#set:taggedNext - local.get $7 - local.get $5 - i32.store end + drop + local.get $2 + local.get $1 + call $~lib/rt/itcms/__visit + ) + (func $~lib/map/Map~visit (param $0 i32) (param $1 i32) local.get $0 - local.set $8 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $8 + local.get $1 + call $~lib/map/Map#__visit ) - (func $~lib/map/Map#delete (param $0 i32) (param $1 i64) (result 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 4 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer + (func $~lib/array/Array#__visit (param $0 i32) (param $1 i32) i32.const 0 - i32.store + drop local.get $0 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store - local.get $7 + i32.load local.get $1 - block $~lib/util/hash/HASH|inlined.6 (result i32) - local.get $1 - local.set $2 - i32.const 0 - drop - i32.const 0 - drop - i32.const 0 - drop - i32.const 8 + call $~lib/rt/itcms/__visit + ) + (func $~lib/array/Array~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/array/Array#__visit + ) + (func $~lib/map/Map#__visit (param $0 i32) (param $1 i32) + (local $2 i32) + local.get $0 + i32.load + local.get $1 + call $~lib/rt/itcms/__visit + local.get $0 + i32.load offset=8 + local.set $2 + i32.const 0 + if (result i32) i32.const 1 - i32.eq - drop - i32.const 8 - i32.const 2 - i32.eq - drop - i32.const 8 - i32.const 4 - i32.eq - drop - i32.const 8 - i32.const 8 - i32.eq - drop - local.get $2 - call $~lib/util/hash/hash64 - br $~lib/util/hash/HASH|inlined.6 - end - call $~lib/map/Map#find - local.set $3 - local.get $3 - i32.eqz - if + else i32.const 0 - local.set $7 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $7 - return end - local.get $3 - local.get $3 - i32.load offset=12 - i32.const 1 - i32.or - call $~lib/map/MapEntry#set:taggedNext - local.get $0 + drop + local.get $2 + local.get $1 + call $~lib/rt/itcms/__visit + ) + (func $~lib/map/Map~visit (param $0 i32) (param $1 i32) local.get $0 - i32.load offset=20 - i32.const 1 - i32.sub - call $~lib/map/Map#set:entriesCount + local.get $1 + call $~lib/map/Map#__visit + ) + (func $~lib/map/Map#__visit (param $0 i32) (param $1 i32) + (local $2 i32) local.get $0 - i32.load offset=4 - i32.const 1 - i32.shr_u - local.set $4 - local.get $4 - i32.const 1 - i32.add - i32.const 4 - local.tee $5 + i32.load + local.get $1 + call $~lib/rt/itcms/__visit local.get $0 - i32.load offset=20 - local.tee $6 - local.get $5 - local.get $6 - i32.gt_u - select - i32.ge_u + i32.load offset=8 + local.set $2 + i32.const 0 if (result i32) - local.get $0 - i32.load offset=20 - local.get $0 - i32.load offset=12 - i32.const 3 - i32.mul - i32.const 4 - i32.div_s - i32.lt_s + i32.const 1 else i32.const 0 end - if - local.get $0 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store - local.get $7 - local.get $4 - call $~lib/map/Map#rehash - end - i32.const 1 - local.set $7 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $7 + drop + local.get $2 + local.get $1 + call $~lib/rt/itcms/__visit ) - (func $std/map/testNumeric - (local $0 i32) - (local $1 i64) + (func $~lib/map/Map~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/map/Map#__visit + ) + (func $~lib/array/Array#__visit (param $0 i32) (param $1 i32) + i32.const 0 + drop + local.get $0 + i32.load + local.get $1 + call $~lib/rt/itcms/__visit + ) + (func $~lib/array/Array~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/array/Array#__visit + ) + (func $~lib/map/Map#__visit (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 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 - i64.const 0 - i64.store offset=8 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=16 - global.get $~lib/memory/__stack_pointer + local.get $0 + i32.load + local.get $1 + call $~lib/rt/itcms/__visit + local.get $0 + i32.load offset=8 + local.set $2 i32.const 0 - call $~lib/map/Map#constructor - local.tee $0 - i32.store - i64.const 0 - local.set $1 - loop $for-loop|0 - local.get $1 - i64.const 100 - i64.lt_u - local.set $2 - local.get $2 - if - local.get $0 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - local.get $1 - call $~lib/map/Map#has - i32.eqz - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 6 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - local.get $1 - i32.const 10 - local.get $1 - i32.wrap_i64 - i32.add - call $~lib/map/Map#set - drop - local.get $0 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - local.get $1 - call $~lib/map/Map#has - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 8 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - local.get $1 - call $~lib/map/Map#get - i32.const 10 - local.get $1 - i32.wrap_i64 - i32.add - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 9 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i64.const 1 - i64.add - local.set $1 - br $for-loop|0 - end + if (result i32) + i32.const 1 + else + i32.const 0 end + drop + local.get $2 + local.get $1 + call $~lib/rt/itcms/__visit + ) + (func $~lib/map/Map~visit (param $0 i32) (param $1 i32) local.get $0 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - call $~lib/map/Map#get:size - i32.const 100 - i32.eq - i32.eqz - if + local.get $1 + call $~lib/map/Map#__visit + ) + (func $~lib/map/Map#__visit (param $0 i32) (param $1 i32) + (local $2 i32) + local.get $0 + i32.load + local.get $1 + call $~lib/rt/itcms/__visit + local.get $0 + i32.load offset=8 + local.set $2 + i32.const 0 + if (result i32) + i32.const 1 + else i32.const 0 - i32.const 544 - i32.const 11 - i32.const 3 - call $~lib/builtins/abort - unreachable end - i64.const 0 - local.set $1 - loop $for-loop|1 - local.get $1 - i64.const 100 - i64.lt_u - local.set $2 - local.get $2 - if - local.get $0 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - local.get $1 - call $~lib/map/Map#has - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 15 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - local.get $1 - call $~lib/map/Map#get - i32.const 10 - local.get $1 - i32.wrap_i64 - i32.add - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 16 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - local.get $1 - i32.const 20 - local.get $1 - i32.wrap_i64 - i32.add - call $~lib/map/Map#set - drop - local.get $0 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - local.get $1 - call $~lib/map/Map#has - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 18 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - local.get $1 - call $~lib/map/Map#get - i32.const 20 - local.get $1 - i32.wrap_i64 - i32.add - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 19 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i64.const 1 - i64.add - local.set $1 - br $for-loop|1 - end + drop + local.get $2 + local.get $1 + call $~lib/rt/itcms/__visit + ) + (func $~lib/map/Map~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/map/Map#__visit + ) + (func $~lib/array/Array#__visit (param $0 i32) (param $1 i32) + i32.const 0 + drop + local.get $0 + i32.load + local.get $1 + call $~lib/rt/itcms/__visit + ) + (func $~lib/array/Array~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/array/Array#__visit + ) + (func $~lib/map/Map#__visit (param $0 i32) (param $1 i32) + (local $2 i32) + local.get $0 + i32.load + local.get $1 + call $~lib/rt/itcms/__visit + local.get $0 + i32.load offset=8 + local.set $2 + i32.const 0 + if (result i32) + i32.const 1 + else + i32.const 0 end + drop + local.get $2 + local.get $1 + call $~lib/rt/itcms/__visit + ) + (func $~lib/map/Map~visit (param $0 i32) (param $1 i32) local.get $0 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - call $~lib/map/Map#get:size - i32.const 100 - i32.eq - i32.eqz - if + local.get $1 + call $~lib/map/Map#__visit + ) + (func $~lib/map/Map#__visit (param $0 i32) (param $1 i32) + (local $2 i32) + local.get $0 + i32.load + local.get $1 + call $~lib/rt/itcms/__visit + local.get $0 + i32.load offset=8 + local.set $2 + i32.const 0 + if (result i32) + i32.const 1 + else i32.const 0 - i32.const 544 - i32.const 21 - i32.const 3 - call $~lib/builtins/abort - unreachable end - global.get $~lib/memory/__stack_pointer + drop + local.get $2 + local.get $1 + call $~lib/rt/itcms/__visit + ) + (func $~lib/map/Map~visit (param $0 i32) (param $1 i32) local.get $0 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - call $~lib/map/Map#keys - local.tee $2 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer + local.get $1 + call $~lib/map/Map#__visit + ) + (func $~lib/array/Array#__visit (param $0 i32) (param $1 i32) + i32.const 0 + drop local.get $0 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - call $~lib/map/Map#values - local.tee $3 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer + i32.load + local.get $1 + call $~lib/rt/itcms/__visit + ) + (func $~lib/array/Array~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/array/Array#__visit + ) + (func $~lib/map/Map#__visit (param $0 i32) (param $1 i32) + (local $2 i32) + local.get $0 + i32.load + local.get $1 + call $~lib/rt/itcms/__visit + local.get $0 + i32.load offset=8 + local.set $2 i32.const 0 - call $~lib/map/Map#constructor - local.tee $4 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer + if (result i32) + i32.const 1 + else + i32.const 0 + end + drop + local.get $2 + local.get $1 + call $~lib/rt/itcms/__visit + ) + (func $~lib/map/Map~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/map/Map#__visit + ) + (func $~lib/map/Map#__visit (param $0 i32) (param $1 i32) + (local $2 i32) + local.get $0 + i32.load + local.get $1 + call $~lib/rt/itcms/__visit + local.get $0 + i32.load offset=8 + local.set $2 i32.const 0 - call $~lib/map/Map#constructor - local.tee $5 - i32.store offset=20 + if (result i32) + i32.const 1 + else + i32.const 0 + end + drop + local.get $2 + local.get $1 + call $~lib/rt/itcms/__visit + ) + (func $~lib/map/Map~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/map/Map#__visit + ) + (func $~lib/array/Array#__visit (param $0 i32) (param $1 i32) i32.const 0 - local.set $6 - loop $for-loop|2 - local.get $6 - local.get $2 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - call $~lib/array/Array#get:length - i32.lt_s - local.set $7 - local.get $7 - if - local.get $2 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - local.get $6 - call $~lib/array/Array#__get - local.set $1 - local.get $3 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - local.get $6 - call $~lib/array/Array#__get - local.set $8 - local.get $0 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - local.get $1 - call $~lib/map/Map#has - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 31 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - local.get $8 - i32.const 20 - i32.sub - i64.extend_i32_s - call $~lib/map/Map#has - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 32 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $4 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - local.get $1 - local.get $1 - call $~lib/map/Map#set - drop - local.get $5 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - local.get $8 - i32.const 20 - i32.sub - local.get $8 - i32.const 20 - i32.sub - call $~lib/map/Map#set - drop - local.get $6 - i32.const 1 - i32.add - local.set $6 - br $for-loop|2 - end + drop + local.get $0 + i32.load + local.get $1 + call $~lib/rt/itcms/__visit + ) + (func $~lib/array/Array~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/array/Array#__visit + ) + (func $~lib/map/Map#__visit (param $0 i32) (param $1 i32) + (local $2 i32) + local.get $0 + i32.load + local.get $1 + call $~lib/rt/itcms/__visit + local.get $0 + i32.load offset=8 + local.set $2 + i32.const 0 + if (result i32) + i32.const 1 + else + i32.const 0 end - local.get $4 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - call $~lib/map/Map#get:size - i32.const 100 - i32.eq - i32.eqz - if + drop + local.get $2 + local.get $1 + call $~lib/rt/itcms/__visit + ) + (func $~lib/map/Map~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/map/Map#__visit + ) + (func $~lib/map/Map#__visit (param $0 i32) (param $1 i32) + (local $2 i32) + local.get $0 + i32.load + local.get $1 + call $~lib/rt/itcms/__visit + local.get $0 + i32.load offset=8 + local.set $2 + i32.const 0 + if (result i32) + i32.const 1 + else i32.const 0 - i32.const 544 - i32.const 36 - i32.const 3 - call $~lib/builtins/abort - unreachable end - local.get $5 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - call $~lib/map/Map#get:size - i32.const 100 - i32.eq - i32.eqz - if + drop + local.get $2 + local.get $1 + call $~lib/rt/itcms/__visit + ) + (func $~lib/map/Map~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/map/Map#__visit + ) + (func $~lib/array/Array#__visit (param $0 i32) (param $1 i32) + i32.const 0 + drop + local.get $0 + i32.load + local.get $1 + call $~lib/rt/itcms/__visit + ) + (func $~lib/array/Array~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/array/Array#__visit + ) + (func $~lib/map/Map#__visit (param $0 i32) (param $1 i32) + (local $2 i32) + local.get $0 + i32.load + local.get $1 + call $~lib/rt/itcms/__visit + local.get $0 + i32.load offset=8 + local.set $2 + i32.const 0 + if (result i32) + i32.const 1 + else i32.const 0 - i32.const 544 - i32.const 37 - i32.const 3 - call $~lib/builtins/abort - unreachable end - i64.const 0 - local.set $1 - loop $for-loop|3 - local.get $1 - i64.const 50 - i64.lt_u - local.set $6 - local.get $6 - if - local.get $0 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - local.get $1 - call $~lib/map/Map#has - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 41 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - local.get $1 - call $~lib/map/Map#get - i32.const 20 - local.get $1 - i32.wrap_i64 - i32.add - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 42 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - local.get $1 - call $~lib/map/Map#delete - drop - local.get $0 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - local.get $1 - call $~lib/map/Map#has - i32.eqz - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 44 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i64.const 1 - i64.add - local.set $1 - br $for-loop|3 - end + drop + local.get $2 + local.get $1 + call $~lib/rt/itcms/__visit + ) + (func $~lib/map/Map~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/map/Map#__visit + ) + (func $~lib/map/Map#__visit (param $0 i32) (param $1 i32) + (local $2 i32) + local.get $0 + i32.load + local.get $1 + call $~lib/rt/itcms/__visit + local.get $0 + i32.load offset=8 + local.set $2 + i32.const 0 + if (result i32) + i32.const 1 + else + i32.const 0 + end + drop + local.get $2 + local.get $1 + call $~lib/rt/itcms/__visit + ) + (func $~lib/map/Map~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/map/Map#__visit + ) + (func $~lib/array/Array#__visit (param $0 i32) (param $1 i32) + i32.const 0 + drop + local.get $0 + i32.load + local.get $1 + call $~lib/rt/itcms/__visit + ) + (func $~lib/array/Array~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/array/Array#__visit + ) + (func $~lib/map/Map#__visit (param $0 i32) (param $1 i32) + (local $2 i32) + local.get $0 + i32.load + local.get $1 + call $~lib/rt/itcms/__visit + local.get $0 + i32.load offset=8 + local.set $2 + i32.const 0 + if (result i32) + i32.const 1 + else + i32.const 0 + end + drop + local.get $2 + local.get $1 + call $~lib/rt/itcms/__visit + ) + (func $~lib/map/Map~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/map/Map#__visit + ) + (func $~lib/map/Map#__visit (param $0 i32) (param $1 i32) + (local $2 i32) + local.get $0 + i32.load + local.get $1 + call $~lib/rt/itcms/__visit + local.get $0 + i32.load offset=8 + local.set $2 + i32.const 0 + if (result i32) + i32.const 1 + else + i32.const 0 end + drop + local.get $2 + local.get $1 + call $~lib/rt/itcms/__visit + ) + (func $~lib/map/Map~visit (param $0 i32) (param $1 i32) local.get $0 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - call $~lib/map/Map#get:size - i32.const 50 - i32.eq - i32.eqz - if + local.get $1 + call $~lib/map/Map#__visit + ) + (func $~lib/array/Array#__visit (param $0 i32) (param $1 i32) + i32.const 0 + drop + local.get $0 + i32.load + local.get $1 + call $~lib/rt/itcms/__visit + ) + (func $~lib/array/Array~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/array/Array#__visit + ) + (func $~lib/map/Map#__visit (param $0 i32) (param $1 i32) + (local $2 i32) + local.get $0 + i32.load + local.get $1 + call $~lib/rt/itcms/__visit + local.get $0 + i32.load offset=8 + local.set $2 + i32.const 0 + if (result i32) + i32.const 1 + else i32.const 0 - i32.const 544 - i32.const 46 - i32.const 3 - call $~lib/builtins/abort - unreachable end - i64.const 0 - local.set $1 - loop $for-loop|4 - local.get $1 - i64.const 50 - i64.lt_u - local.set $6 - local.get $6 - if - local.get $0 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - local.get $1 - call $~lib/map/Map#has - i32.eqz - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 50 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - local.get $1 - i32.const 10 - local.get $1 - i32.wrap_i64 - i32.add - call $~lib/map/Map#set - drop - local.get $0 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - local.get $1 - call $~lib/map/Map#has - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 52 - i32.const 5 - call $~lib/builtins/abort - unreachable + drop + local.get $2 + local.get $1 + call $~lib/rt/itcms/__visit + ) + (func $~lib/map/Map~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/map/Map#__visit + ) + (func $~lib/rt/__visit_members (param $0 i32) (param $1 i32) + block $invalid + block $~lib/map/Map + block $~lib/array/Array + block $~lib/map/Map + block $~lib/map/Map + block $~lib/array/Array + block $~lib/map/Map + block $~lib/map/Map + block $~lib/array/Array + block $~lib/map/Map + block $~lib/map/Map + block $~lib/array/Array + block $~lib/map/Map + block $~lib/map/Map + block $~lib/array/Array + block $~lib/map/Map + block $~lib/map/Map + block $~lib/array/Array + block $~lib/map/Map + block $~lib/map/Map + block $~lib/array/Array + 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/array/Array + block $~lib/array/Array + block $~lib/map/Map + block $~lib/arraybuffer/ArrayBufferView + block $~lib/string/String + block $~lib/arraybuffer/ArrayBuffer + local.get $0 + i32.const 8 + i32.sub + i32.load + br_table $~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 + return + end + local.get $0 + local.get $1 + call $~lib/arraybuffer/ArrayBufferView~visit + return + end + local.get $0 + local.get $1 + call $~lib/map/Map~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/map/Map~visit + return + end + local.get $0 + local.get $1 + call $~lib/map/Map~visit + return + end + local.get $0 + local.get $1 + call $~lib/map/Map~visit + return + end + local.get $0 + local.get $1 + call $~lib/array/Array~visit + return + end + local.get $0 + local.get $1 + call $~lib/map/Map~visit + return + end + local.get $0 + local.get $1 + call $~lib/map/Map~visit + return + end + local.get $0 + local.get $1 + call $~lib/array/Array~visit + return + end + local.get $0 + local.get $1 + call $~lib/map/Map~visit + return + end + local.get $0 + local.get $1 + call $~lib/map/Map~visit + return + end + local.get $0 + local.get $1 + call $~lib/array/Array~visit + return + end + local.get $0 + local.get $1 + call $~lib/map/Map~visit + return + end + local.get $0 + local.get $1 + call $~lib/map/Map~visit + return + end + local.get $0 + local.get $1 + call $~lib/array/Array~visit + return + end + local.get $0 + local.get $1 + call $~lib/map/Map~visit + return + end + local.get $0 + local.get $1 + call $~lib/map/Map~visit + return + end + local.get $0 + local.get $1 + call $~lib/array/Array~visit + return + end + local.get $0 + local.get $1 + call $~lib/map/Map~visit + return + end + local.get $0 + local.get $1 + call $~lib/map/Map~visit + return + end + local.get $0 + local.get $1 + call $~lib/array/Array~visit + return + end + local.get $0 + local.get $1 + call $~lib/map/Map~visit + return + end + local.get $0 + local.get $1 + call $~lib/map/Map~visit + return + end + local.get $0 + local.get $1 + call $~lib/array/Array~visit + return + end + local.get $0 + local.get $1 + call $~lib/map/Map~visit + return + end + local.get $0 + local.get $1 + call $~lib/map/Map~visit + return end local.get $0 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - local.get $1 - call $~lib/map/Map#delete - drop - local.get $0 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - local.get $1 - call $~lib/map/Map#has - i32.eqz - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 54 - i32.const 5 - call $~lib/builtins/abort - unreachable - end local.get $1 - i64.const 1 - i64.add - local.set $1 - br $for-loop|4 + call $~lib/array/Array~visit + return end + local.get $0 + local.get $1 + call $~lib/map/Map~visit + return end - local.get $0 - local.set $9 + unreachable + ) + (func $~start + call $start:std/map + ) + (func $~stack_check global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - call $~lib/map/Map#get:size - i32.const 50 - i32.eq - i32.eqz + global.get $~lib/memory/__data_end + i32.lt_s if - i32.const 0 - i32.const 544 - i32.const 56 - i32.const 3 + i32.const 17408 + i32.const 17456 + i32.const 1 + i32.const 1 call $~lib/builtins/abort unreachable end - local.get $0 - local.set $9 + ) + (func $~lib/arraybuffer/ArrayBuffer#constructor (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - call $~lib/map/Map#clear - local.get $0 - local.set $9 + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - call $~lib/map/Map#get:size i32.const 0 - i32.eq - i32.eqz + i32.store + local.get $1 + i32.const 1073741820 + i32.gt_u if - i32.const 0 - i32.const 544 - i32.const 60 - i32.const 3 + i32.const 432 + i32.const 480 + i32.const 49 + i32.const 43 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 24 + local.get $1 + i32.const 0 + call $~lib/rt/itcms/__new + local.tee $2 + i32.store + local.get $2 + i32.const 0 + local.get $1 + call $~lib/memory/memory.fill + local.get $2 + local.set $3 + global.get $~lib/memory/__stack_pointer + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer + local.get $3 ) - (func $~lib/map/Map#has (param $0 i32) (param $1 f32) (result i32) - (local $2 f32) - (local $3 i32) + (func $~lib/map/Map#constructor (param $0 i32) (result i32) + (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -22499,89 +18024,97 @@ i32.const 0 i32.store local.get $0 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store - local.get $3 - local.get $1 - block $~lib/util/hash/HASH|inlined.0 (result i32) - local.get $1 - local.set $2 - i32.const 0 - drop - i32.const 0 - drop - i32.const 1 - drop - i32.const 4 - i32.const 4 - i32.eq - drop - local.get $2 - i32.reinterpret_f32 - call $~lib/util/hash/hash32 - br $~lib/util/hash/HASH|inlined.0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 24 + i32.const 3 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store end - call $~lib/map/Map#find + local.get $0 i32.const 0 - i32.ne - local.set $3 + i32.const 4 + i32.const 4 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + call $~lib/map/Map#set:buckets + local.get $0 + i32.const 4 + i32.const 1 + i32.sub + call $~lib/map/Map#set:bucketsMask + local.get $0 + i32.const 0 + i32.const 4 + i32.const 12 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + call $~lib/map/Map#set:entries + local.get $0 + i32.const 4 + call $~lib/map/Map#set:entriesCapacity + local.get $0 + i32.const 0 + call $~lib/map/Map#set:entriesOffset + local.get $0 + i32.const 0 + call $~lib/map/Map#set:entriesCount + local.get $0 + local.set $1 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $3 + local.get $1 ) - (func $~lib/map/Map#set (param $0 i32) (param $1 f32) (param $2 i32) (result i32) - (local $3 f32) + (func $~lib/map/Map#set (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 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 - block $~lib/util/hash/HASH|inlined.1 (result i32) + i32.const 0 + i32.store + block $~lib/util/hash/HASH|inlined.1 (result i32) local.get $1 local.set $3 i32.const 0 drop i32.const 0 drop - i32.const 1 + i32.const 0 drop - i32.const 4 - i32.const 4 + i32.const 1 + i32.const 1 i32.eq drop local.get $3 - i32.reinterpret_f32 - call $~lib/util/hash/hash32 - br $~lib/util/hash/HASH|inlined.1 + i32.const 24 + i32.shl + i32.const 24 + i32.shr_s + call $~lib/util/hash/hash8 + br $~lib/util/hash/HASH|inlined.1 end local.set $4 local.get $0 - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store - local.get $8 local.get $1 local.get $4 - call $~lib/map/Map#find + call $~lib/map/Map#find local.set $5 local.get $5 if local.get $5 local.get $2 - call $~lib/map/MapEntry#set:value + call $~lib/map/MapEntry#set:value i32.const 0 drop else @@ -22592,11 +18125,6 @@ i32.eq if local.get $0 - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store - local.get $8 local.get $0 i32.load offset=20 local.get $0 @@ -22617,34 +18145,34 @@ 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 i32.load offset=8 - local.tee $6 - i32.store offset=4 - local.get $6 + local.tee $3 + i32.store + local.get $3 local.get $0 local.get $0 i32.load offset=16 - local.tee $7 + local.tee $6 i32.const 1 i32.add - call $~lib/map/Map#set:entriesOffset - local.get $7 + call $~lib/map/Map#set:entriesOffset + local.get $6 i32.const 12 i32.mul i32.add local.set $5 local.get $5 local.get $1 - call $~lib/map/MapEntry#set:key + call $~lib/map/MapEntry#set:key i32.const 0 drop local.get $5 local.get $2 - call $~lib/map/MapEntry#set:value + call $~lib/map/MapEntry#set:value i32.const 0 drop local.get $0 @@ -22652,7 +18180,7 @@ i32.load offset=20 i32.const 1 i32.add - call $~lib/map/Map#set:entriesCount + call $~lib/map/Map#set:entriesCount local.get $0 i32.load local.get $4 @@ -22662,134 +18190,105 @@ i32.const 4 i32.mul i32.add - local.set $7 + local.set $6 local.get $5 - local.get $7 + local.get $6 i32.load - call $~lib/map/MapEntry#set:taggedNext - local.get $7 + call $~lib/map/MapEntry#set:taggedNext + local.get $6 local.get $5 i32.store end local.get $0 - local.set $8 + local.set $7 global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $8 + local.get $7 ) - (func $~lib/map/Map#get (param $0 i32) (param $1 f32) (result i32) - (local $2 f32) + (func $~lib/array/Array#constructor (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 call $~stack_check global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store + i64.const 0 + i64.store local.get $0 - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store - local.get $4 - local.get $1 - block $~lib/util/hash/HASH|inlined.3 (result i32) - local.get $1 - local.set $2 - i32.const 0 - drop - i32.const 0 - drop - i32.const 1 - drop - i32.const 4 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 16 i32.const 4 - i32.eq - drop - local.get $2 - i32.reinterpret_f32 - call $~lib/util/hash/hash32 - br $~lib/util/hash/HASH|inlined.3 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store end - call $~lib/map/Map#find - local.set $3 - local.get $3 - i32.eqz + local.get $0 + i32.const 0 + call $~lib/array/Array#set:buffer + local.get $0 + i32.const 0 + call $~lib/array/Array#set:dataStart + local.get $0 + i32.const 0 + call $~lib/array/Array#set:byteLength + local.get $0 + i32.const 0 + call $~lib/array/Array#set:length_ + local.get $1 + i32.const 1073741820 + i32.const 0 + i32.shr_u + i32.gt_u if - i32.const 592 - i32.const 656 - i32.const 105 - i32.const 17 + i32.const 432 + i32.const 704 + i32.const 58 + i32.const 60 call $~lib/builtins/abort unreachable end - local.get $3 - i32.load offset=4 - local.set $4 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $4 - ) - (func $~lib/array/Array#__set (param $0 i32) (param $1 i32) (param $2 f32) - (local $3 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check + local.get $1 + i32.const 0 + i32.shl + local.set $2 global.get $~lib/memory/__stack_pointer + local.get $2 i32.const 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 224 - i32.const 704 - i32.const 108 - i32.const 22 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.get $1 - i32.const 1 - i32.add - i32.const 2 - call $~lib/array/ensureSize - local.get $0 - local.get $1 - i32.const 1 - i32.add - call $~lib/array/Array#set:length_ - end + call $~lib/rt/itcms/__new + local.tee $3 + i32.store offset=4 + local.get $3 + i32.const 0 + local.get $2 + call $~lib/memory/memory.fill local.get $0 - local.set $3 - global.get $~lib/memory/__stack_pointer local.get $3 - i32.store + call $~lib/array/Array#set:buffer + local.get $0 local.get $3 - local.get $1 + call $~lib/array/Array#set:dataStart + local.get $0 local.get $2 - call $~lib/array/Array#__uset + call $~lib/array/Array#set:byteLength + local.get $0 + local.get $1 + call $~lib/array/Array#set:length_ + local.get $0 + 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 $4 ) - (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) @@ -22800,13 +18299,13 @@ (local $8 i32) (local $9 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 $0 i32.load offset=8 local.set $1 @@ -22816,7 +18315,7 @@ global.get $~lib/memory/__stack_pointer i32.const 0 local.get $2 - call $~lib/array/Array#constructor + call $~lib/array/Array#constructor local.tee $3 i32.store i32.const 0 @@ -22843,11 +18342,6 @@ i32.eqz if local.get $3 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 local.get $4 local.tee $8 i32.const 1 @@ -22855,8 +18349,8 @@ local.set $4 local.get $8 local.get $7 - f32.load - call $~lib/array/Array#__set + i32.load8_s + call $~lib/array/Array#__set end local.get $5 i32.const 1 @@ -22866,22 +18360,98 @@ end end local.get $3 + local.get $4 + call $~lib/array/Array#set:length + local.get $3 local.set $9 global.get $~lib/memory/__stack_pointer - local.get $9 + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $9 + ) + (func $~lib/array/Array#constructor (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 + call $~stack_check + 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 + i32.const 5 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + local.get $0 + i32.const 0 + call $~lib/array/Array#set:buffer + local.get $0 + i32.const 0 + call $~lib/array/Array#set:dataStart + local.get $0 + i32.const 0 + call $~lib/array/Array#set:byteLength + local.get $0 + i32.const 0 + call $~lib/array/Array#set:length_ + local.get $1 + i32.const 1073741820 + i32.const 2 + i32.shr_u + i32.gt_u + if + i32.const 432 + i32.const 704 + i32.const 58 + i32.const 60 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 2 + i32.shl + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.const 0 + call $~lib/rt/itcms/__new + local.tee $3 i32.store offset=4 - local.get $9 - local.get $4 - call $~lib/array/Array#set:length local.get $3 - local.set $9 + i32.const 0 + local.get $2 + call $~lib/memory/memory.fill + local.get $0 + local.get $3 + call $~lib/array/Array#set:buffer + local.get $0 + local.get $3 + call $~lib/array/Array#set:dataStart + local.get $0 + local.get $2 + call $~lib/array/Array#set:byteLength + local.get $0 + local.get $1 + call $~lib/array/Array#set:length_ + local.get $0 + local.set $4 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $9 + local.get $4 ) - (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) @@ -22892,13 +18462,13 @@ (local $8 i32) (local $9 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 $0 i32.load offset=8 local.set $1 @@ -22935,11 +18505,6 @@ i32.eqz if local.get $3 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 local.get $4 local.tee $8 i32.const 1 @@ -22958,174 +18523,74 @@ end end local.get $3 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 local.get $4 call $~lib/array/Array#set:length local.get $3 local.set $9 global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer local.get $9 ) - (func $~lib/map/Map#set (param $0 i32) (param $1 f32) (param $2 f32) (result i32) - (local $3 f32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) + (func $~lib/map/Map#constructor (param $0 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 - block $~lib/util/hash/HASH|inlined.4 (result i32) - local.get $1 - local.set $3 - i32.const 0 - drop - i32.const 0 - drop - i32.const 1 - drop - i32.const 4 - i32.const 4 - i32.eq - drop - local.get $3 - i32.reinterpret_f32 - call $~lib/util/hash/hash32 - br $~lib/util/hash/HASH|inlined.4 - end - local.set $4 - local.get $0 - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 + i32.const 0 i32.store - local.get $8 - local.get $1 - local.get $4 - call $~lib/map/Map#find - local.set $5 - local.get $5 + local.get $0 + i32.eqz if - local.get $5 - local.get $2 - call $~lib/map/MapEntry#set:value - i32.const 0 - drop - else - local.get $0 - i32.load offset=16 - local.get $0 - i32.load offset=12 - i32.eq - if - local.get $0 - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store - local.get $8 - local.get $0 - i32.load offset=20 - 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 $0 - i32.load offset=4 - else - 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.load offset=8 - local.tee $6 - i32.store offset=4 - local.get $6 - local.get $0 - local.get $0 - i32.load offset=16 - local.tee $7 - i32.const 1 - i32.add - call $~lib/map/Map#set:entriesOffset - local.get $7 - i32.const 12 - i32.mul - i32.add - local.set $5 - local.get $5 - local.get $1 - call $~lib/map/MapEntry#set:key - i32.const 0 - drop - local.get $5 - local.get $2 - call $~lib/map/MapEntry#set:value - i32.const 0 - drop - local.get $0 - local.get $0 - i32.load offset=20 - i32.const 1 - i32.add - call $~lib/map/Map#set:entriesCount - local.get $0 - i32.load - local.get $4 - local.get $0 - i32.load offset=4 - i32.and - i32.const 4 - i32.mul - i32.add - local.set $7 - local.get $5 - local.get $7 - i32.load - call $~lib/map/MapEntry#set:taggedNext - local.get $7 - local.get $5 + i32.const 24 + i32.const 6 + call $~lib/rt/itcms/__new + local.tee $0 i32.store end local.get $0 - local.set $8 - global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 4 + i32.const 4 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + call $~lib/map/Map#set:buckets + local.get $0 + i32.const 4 + i32.const 1 + i32.sub + call $~lib/map/Map#set:bucketsMask + local.get $0 + i32.const 0 + i32.const 4 i32.const 8 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + call $~lib/map/Map#set:entries + local.get $0 + i32.const 4 + call $~lib/map/Map#set:entriesCapacity + local.get $0 + i32.const 0 + call $~lib/map/Map#set:entriesOffset + local.get $0 + i32.const 0 + call $~lib/map/Map#set:entriesCount + local.get $0 + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $8 + local.get $1 ) - (func $~lib/map/Map#delete (param $0 i32) (param $1 f32) (result i32) - (local $2 f32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) + (func $~lib/map/Map#constructor (param $0 i32) (result i32) + (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -23135,773 +18600,830 @@ i32.const 0 i32.store local.get $0 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store - local.get $7 - local.get $1 - block $~lib/util/hash/HASH|inlined.6 (result i32) - local.get $1 - local.set $2 - i32.const 0 - drop - i32.const 0 - drop - i32.const 1 - drop - i32.const 4 - i32.const 4 - i32.eq - drop - local.get $2 - i32.reinterpret_f32 - call $~lib/util/hash/hash32 - br $~lib/util/hash/HASH|inlined.6 - end - call $~lib/map/Map#find - local.set $3 - local.get $3 i32.eqz if - i32.const 0 - local.set $7 global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $7 - return + i32.const 24 + i32.const 7 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store end - local.get $3 - local.get $3 - i32.load offset=8 - i32.const 1 - i32.or - call $~lib/map/MapEntry#set:taggedNext local.get $0 + i32.const 0 + i32.const 4 + i32.const 4 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + call $~lib/map/Map#set:buckets local.get $0 - i32.load offset=20 + i32.const 4 i32.const 1 i32.sub - call $~lib/map/Map#set:entriesCount + call $~lib/map/Map#set:bucketsMask local.get $0 - i32.load offset=4 - i32.const 1 - i32.shr_u - local.set $4 - local.get $4 - i32.const 1 - i32.add + i32.const 0 i32.const 4 - local.tee $5 + i32.const 12 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + call $~lib/map/Map#set:entries local.get $0 - i32.load offset=20 - local.tee $6 - local.get $5 - local.get $6 - i32.gt_u - select - i32.ge_u - if (result i32) - local.get $0 - i32.load offset=20 - 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 $0 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store - local.get $7 - local.get $4 - call $~lib/map/Map#rehash - end - i32.const 1 - local.set $7 + i32.const 4 + call $~lib/map/Map#set:entriesCapacity + local.get $0 + i32.const 0 + call $~lib/map/Map#set:entriesOffset + local.get $0 + i32.const 0 + call $~lib/map/Map#set:entriesCount + local.get $0 + local.set $1 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $7 + local.get $1 ) - (func $std/map/testNumeric - (local $0 i32) - (local $1 f32) - (local $2 i32) + (func $~lib/map/Map#set (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) global.get $~lib/memory/__stack_pointer - i32.const 24 + i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=8 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=16 - global.get $~lib/memory/__stack_pointer i32.const 0 - call $~lib/map/Map#constructor - local.tee $0 i32.store - f32.const 0 - local.set $1 - loop $for-loop|0 + block $~lib/util/hash/HASH|inlined.4 (result i32) local.get $1 - f32.const 100 - f32.lt - local.set $2 + local.set $3 + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 1 + i32.const 1 + i32.eq + drop + local.get $3 + i32.const 24 + i32.shl + i32.const 24 + i32.shr_s + call $~lib/util/hash/hash8 + br $~lib/util/hash/HASH|inlined.4 + end + local.set $4 + local.get $0 + local.get $1 + local.get $4 + call $~lib/map/Map#find + local.set $5 + local.get $5 + if + local.get $5 local.get $2 + call $~lib/map/MapEntry#set:value + i32.const 0 + drop + else + local.get $0 + i32.load offset=16 + local.get $0 + i32.load offset=12 + i32.eq if local.get $0 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - local.get $1 - call $~lib/map/Map#has - i32.eqz - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 6 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - local.get $1 - i32.const 10 - local.get $1 - i32.trunc_f32_s - i32.add - call $~lib/map/Map#set - drop local.get $0 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - local.get $1 - call $~lib/map/Map#has - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 8 - i32.const 5 - call $~lib/builtins/abort - unreachable - end + i32.load offset=20 local.get $0 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - local.get $1 - call $~lib/map/Map#get - i32.const 10 - local.get $1 - i32.trunc_f32_s - i32.add - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 9 - 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) + local.get $0 + i32.load offset=4 + else + local.get $0 + i32.load offset=4 + i32.const 1 + i32.shl + i32.const 1 + i32.or end - local.get $1 - f32.const 1 - f32.add - local.set $1 - br $for-loop|0 + call $~lib/map/Map#rehash end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.load offset=8 + local.tee $3 + i32.store + local.get $3 + local.get $0 + local.get $0 + i32.load offset=16 + local.tee $6 + i32.const 1 + i32.add + call $~lib/map/Map#set:entriesOffset + local.get $6 + i32.const 8 + i32.mul + i32.add + local.set $5 + local.get $5 + local.get $1 + call $~lib/map/MapEntry#set:key + i32.const 0 + drop + local.get $5 + local.get $2 + call $~lib/map/MapEntry#set:value + i32.const 0 + drop + local.get $0 + local.get $0 + i32.load offset=20 + i32.const 1 + i32.add + call $~lib/map/Map#set:entriesCount + local.get $0 + i32.load + local.get $4 + local.get $0 + i32.load offset=4 + i32.and + i32.const 4 + i32.mul + i32.add + local.set $6 + local.get $5 + local.get $6 + i32.load + call $~lib/map/MapEntry#set:taggedNext + local.get $6 + local.get $5 + i32.store end local.get $0 - local.set $9 + local.set $7 global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - call $~lib/map/Map#get:size - i32.const 100 - i32.eq - i32.eqz - if + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $7 + ) + (func $~lib/map/Map#set (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 + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + block $~lib/util/hash/HASH|inlined.0 (result i32) + local.get $1 + local.set $3 i32.const 0 - i32.const 544 - i32.const 11 - i32.const 3 - call $~lib/builtins/abort - unreachable + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 4 + i32.const 1 + i32.eq + drop + i32.const 4 + i32.const 2 + i32.eq + drop + i32.const 4 + i32.const 4 + i32.eq + drop + local.get $3 + call $~lib/util/hash/hash32 + br $~lib/util/hash/HASH|inlined.0 end - f32.const 0 - local.set $1 - loop $for-loop|1 - local.get $1 - f32.const 100 - f32.lt - local.set $2 + local.set $4 + local.get $0 + local.get $1 + local.get $4 + call $~lib/map/Map#find + local.set $5 + local.get $5 + if + local.get $5 local.get $2 + call $~lib/map/MapEntry#set:value + i32.const 0 + drop + else + local.get $0 + i32.load offset=16 + local.get $0 + i32.load offset=12 + i32.eq if local.get $0 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - local.get $1 - call $~lib/map/Map#has - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 15 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - local.get $1 - call $~lib/map/Map#get - i32.const 10 - local.get $1 - i32.trunc_f32_s - i32.add - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 16 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - local.get $1 - i32.const 20 - local.get $1 - i32.trunc_f32_s - i32.add - call $~lib/map/Map#set - drop local.get $0 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - local.get $1 - call $~lib/map/Map#has - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 18 - i32.const 5 - call $~lib/builtins/abort - unreachable - end + i32.load offset=20 local.get $0 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - local.get $1 - call $~lib/map/Map#get - i32.const 20 - local.get $1 - i32.trunc_f32_s - i32.add - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 19 - 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) + local.get $0 + i32.load offset=4 + else + local.get $0 + i32.load offset=4 + i32.const 1 + i32.shl + i32.const 1 + i32.or end - local.get $1 - f32.const 1 - f32.add - local.set $1 - br $for-loop|1 + call $~lib/map/Map#rehash end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.load offset=8 + local.tee $3 + i32.store + local.get $3 + local.get $0 + local.get $0 + i32.load offset=16 + local.tee $6 + i32.const 1 + i32.add + call $~lib/map/Map#set:entriesOffset + local.get $6 + i32.const 12 + i32.mul + i32.add + local.set $5 + local.get $5 + local.get $1 + call $~lib/map/MapEntry#set:key + i32.const 0 + drop + local.get $5 + local.get $2 + call $~lib/map/MapEntry#set:value + i32.const 0 + drop + local.get $0 + local.get $0 + i32.load offset=20 + i32.const 1 + i32.add + call $~lib/map/Map#set:entriesCount + local.get $0 + i32.load + local.get $4 + local.get $0 + i32.load offset=4 + i32.and + i32.const 4 + i32.mul + i32.add + local.set $6 + local.get $5 + local.get $6 + i32.load + call $~lib/map/MapEntry#set:taggedNext + local.get $6 + local.get $5 + i32.store end local.get $0 - local.set $9 + local.set $7 global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - call $~lib/map/Map#get:size - i32.const 100 - i32.eq + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $7 + ) + (func $~lib/map/Map#constructor (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 + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 i32.eqz if - i32.const 0 - i32.const 544 - i32.const 21 - i32.const 3 - call $~lib/builtins/abort - unreachable + global.get $~lib/memory/__stack_pointer + i32.const 24 + i32.const 8 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store end - global.get $~lib/memory/__stack_pointer local.get $0 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - call $~lib/map/Map#keys - local.tee $2 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 4 + i32.const 4 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + call $~lib/map/Map#set:buckets local.get $0 - local.set $9 + i32.const 4 + i32.const 1 + i32.sub + call $~lib/map/Map#set:bucketsMask + local.get $0 + i32.const 0 + i32.const 4 + i32.const 12 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + call $~lib/map/Map#set:entries + local.get $0 + i32.const 4 + call $~lib/map/Map#set:entriesCapacity + local.get $0 + i32.const 0 + call $~lib/map/Map#set:entriesOffset + local.get $0 + i32.const 0 + call $~lib/map/Map#set:entriesCount + local.get $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - call $~lib/map/Map#values - local.tee $3 - i32.store offset=12 + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $~lib/map/Map#set (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 0 - call $~lib/map/Map#constructor - local.tee $4 - i32.store offset=16 + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check global.get $~lib/memory/__stack_pointer i32.const 0 - call $~lib/map/Map#constructor - local.tee $5 - i32.store offset=20 - i32.const 0 - local.set $6 - loop $for-loop|2 - local.get $6 + i32.store + block $~lib/util/hash/HASH|inlined.1 (result i32) + local.get $1 + local.set $3 + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 1 + i32.const 1 + i32.eq + drop + local.get $3 + i32.const 255 + i32.and + call $~lib/util/hash/hash8 + br $~lib/util/hash/HASH|inlined.1 + end + local.set $4 + local.get $0 + local.get $1 + local.get $4 + call $~lib/map/Map#find + local.set $5 + local.get $5 + if + local.get $5 local.get $2 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - call $~lib/array/Array#get:length - i32.lt_s - local.set $7 - local.get $7 + call $~lib/map/MapEntry#set:value + i32.const 0 + drop + else + local.get $0 + i32.load offset=16 + local.get $0 + i32.load offset=12 + i32.eq if - local.get $2 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - local.get $6 - call $~lib/array/Array#__get - local.set $1 - local.get $3 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - local.get $6 - call $~lib/array/Array#__get - local.set $8 local.get $0 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - local.get $1 - call $~lib/map/Map#has - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 31 - i32.const 5 - call $~lib/builtins/abort - unreachable - end local.get $0 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - local.get $8 - i32.const 20 - i32.sub - f32.convert_i32_s - call $~lib/map/Map#has - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 32 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $4 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - local.get $1 - local.get $1 - call $~lib/map/Map#set - drop - local.get $5 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - local.get $8 - i32.const 20 - i32.sub - local.get $8 - i32.const 20 - i32.sub - call $~lib/map/Map#set - drop - local.get $6 - i32.const 1 - i32.add - local.set $6 - br $for-loop|2 + i32.load offset=20 + 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 $0 + i32.load offset=4 + else + 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.load offset=8 + local.tee $3 + i32.store + local.get $3 + local.get $0 + local.get $0 + i32.load offset=16 + local.tee $6 + i32.const 1 + i32.add + call $~lib/map/Map#set:entriesOffset + local.get $6 + i32.const 12 + i32.mul + i32.add + local.set $5 + local.get $5 + local.get $1 + call $~lib/map/MapEntry#set:key + i32.const 0 + drop + local.get $5 + local.get $2 + call $~lib/map/MapEntry#set:value + i32.const 0 + drop + local.get $0 + local.get $0 + i32.load offset=20 + i32.const 1 + i32.add + call $~lib/map/Map#set:entriesCount + local.get $0 + i32.load + local.get $4 + local.get $0 + i32.load offset=4 + i32.and + i32.const 4 + i32.mul + i32.add + local.set $6 + local.get $5 + local.get $6 + i32.load + call $~lib/map/MapEntry#set:taggedNext + local.get $6 + local.get $5 + i32.store end - local.get $4 - local.set $9 + local.get $0 + local.set $7 global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - call $~lib/map/Map#get:size - i32.const 100 - i32.eq + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $7 + ) + (func $~lib/array/Array#constructor (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 + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + local.get $0 i32.eqz if - i32.const 0 - i32.const 544 - i32.const 36 - i32.const 3 - call $~lib/builtins/abort - unreachable + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.const 9 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store end - local.get $5 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - call $~lib/map/Map#get:size - i32.const 100 - i32.eq - i32.eqz + local.get $0 + i32.const 0 + call $~lib/array/Array#set:buffer + local.get $0 + i32.const 0 + call $~lib/array/Array#set:dataStart + local.get $0 + i32.const 0 + call $~lib/array/Array#set:byteLength + local.get $0 + i32.const 0 + call $~lib/array/Array#set:length_ + local.get $1 + i32.const 1073741820 + i32.const 0 + i32.shr_u + i32.gt_u if - i32.const 0 - i32.const 544 - i32.const 37 - i32.const 3 + i32.const 432 + i32.const 704 + i32.const 58 + i32.const 60 call $~lib/builtins/abort unreachable end - f32.const 0 + local.get $1 + i32.const 0 + i32.shl + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.const 0 + call $~lib/rt/itcms/__new + local.tee $3 + i32.store offset=4 + local.get $3 + i32.const 0 + local.get $2 + call $~lib/memory/memory.fill + local.get $0 + local.get $3 + call $~lib/array/Array#set:buffer + local.get $0 + local.get $3 + call $~lib/array/Array#set:dataStart + local.get $0 + local.get $2 + call $~lib/array/Array#set:byteLength + local.get $0 + local.get $1 + call $~lib/array/Array#set:length_ + local.get $0 + local.set $4 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $4 + ) + (func $~lib/map/Map#keys (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 + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.load offset=8 local.set $1 - loop $for-loop|3 - local.get $1 - f32.const 50 - f32.lt + local.get $0 + i32.load offset=16 + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 0 + local.get $2 + call $~lib/array/Array#constructor + local.tee $3 + i32.store + i32.const 0 + local.set $4 + i32.const 0 + local.set $5 + loop $for-loop|0 + local.get $5 + local.get $2 + i32.lt_s local.set $6 local.get $6 - if - local.get $0 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - local.get $1 - call $~lib/map/Map#has - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 41 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - local.get $1 - call $~lib/map/Map#get - i32.const 20 - local.get $1 - i32.trunc_f32_s - i32.add - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 42 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - local.get $1 - call $~lib/map/Map#delete - drop - local.get $0 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 + if local.get $1 - call $~lib/map/Map#has - i32.eqz + local.get $5 + i32.const 12 + i32.mul + i32.add + local.set $7 + local.get $7 + i32.load offset=8 + i32.const 1 + i32.and i32.eqz if - i32.const 0 - i32.const 544 - i32.const 44 - i32.const 5 - call $~lib/builtins/abort - unreachable + local.get $3 + local.get $4 + local.tee $8 + i32.const 1 + i32.add + local.set $4 + local.get $8 + local.get $7 + i32.load8_u + call $~lib/array/Array#__set end - local.get $1 - f32.const 1 - f32.add - local.set $1 - br $for-loop|3 + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|0 end end - local.get $0 + local.get $3 + local.get $4 + call $~lib/array/Array#set:length + local.get $3 local.set $9 global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer local.get $9 - i32.store offset=4 - local.get $9 - call $~lib/map/Map#get:size - i32.const 50 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 46 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - f32.const 0 + ) + (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) + (local $9 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 $0 + i32.load offset=8 local.set $1 - loop $for-loop|4 - local.get $1 - f32.const 50 - f32.lt + local.get $0 + i32.load offset=16 + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 0 + local.get $2 + call $~lib/array/Array#constructor + local.tee $3 + i32.store + i32.const 0 + local.set $4 + i32.const 0 + local.set $5 + loop $for-loop|0 + local.get $5 + local.get $2 + i32.lt_s local.set $6 local.get $6 if - local.get $0 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - local.get $1 - call $~lib/map/Map#has - i32.eqz - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 50 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - local.get $1 - i32.const 10 local.get $1 - i32.trunc_f32_s + local.get $5 + i32.const 12 + i32.mul i32.add - call $~lib/map/Map#set - drop - local.get $0 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - local.get $1 - call $~lib/map/Map#has - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 52 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - local.get $1 - call $~lib/map/Map#delete - drop - local.get $0 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - local.get $1 - call $~lib/map/Map#has - i32.eqz + local.set $7 + local.get $7 + i32.load offset=8 + i32.const 1 + i32.and i32.eqz if - i32.const 0 - i32.const 544 - i32.const 54 - i32.const 5 - call $~lib/builtins/abort - unreachable + local.get $3 + local.get $4 + local.tee $8 + i32.const 1 + i32.add + local.set $4 + local.get $8 + local.get $7 + i32.load offset=4 + call $~lib/array/Array#__set end - local.get $1 - f32.const 1 - f32.add - local.set $1 - br $for-loop|4 + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|0 end end - local.get $0 + local.get $3 + local.get $4 + call $~lib/array/Array#set:length + local.get $3 local.set $9 global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer local.get $9 - i32.store offset=4 - local.get $9 - call $~lib/map/Map#get:size - i32.const 50 - i32.eq + ) + (func $~lib/map/Map#constructor (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 + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 i32.eqz if - i32.const 0 - i32.const 544 - i32.const 56 - i32.const 3 - call $~lib/builtins/abort - unreachable + global.get $~lib/memory/__stack_pointer + i32.const 24 + i32.const 10 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store end local.get $0 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - call $~lib/map/Map#clear + i32.const 0 + i32.const 4 + i32.const 4 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + call $~lib/map/Map#set:buckets + local.get $0 + i32.const 4 + i32.const 1 + i32.sub + call $~lib/map/Map#set:bucketsMask + local.get $0 + i32.const 0 + i32.const 4 + i32.const 8 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + call $~lib/map/Map#set:entries + local.get $0 + i32.const 4 + call $~lib/map/Map#set:entriesCapacity local.get $0 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - call $~lib/map/Map#get:size i32.const 0 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 60 - i32.const 3 - call $~lib/builtins/abort - unreachable - end + call $~lib/map/Map#set:entriesOffset + local.get $0 + i32.const 0 + call $~lib/map/Map#set:entriesCount + local.get $0 + local.set $1 global.get $~lib/memory/__stack_pointer - i32.const 24 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer + local.get $1 ) - (func $~lib/map/Map#has (param $0 i32) (param $1 f64) (result i32) - (local $2 f64) + (func $~lib/map/Map#set (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 @@ -23910,98 +19432,234 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - local.get $0 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store - local.get $3 - local.get $1 - block $~lib/util/hash/HASH|inlined.0 (result i32) + block $~lib/util/hash/HASH|inlined.4 (result i32) local.get $1 - local.set $2 + local.set $3 i32.const 0 drop i32.const 0 drop - i32.const 1 + i32.const 0 drop - i32.const 8 - i32.const 4 + i32.const 1 + i32.const 1 i32.eq drop - i32.const 8 - i32.const 8 + local.get $3 + i32.const 255 + i32.and + call $~lib/util/hash/hash8 + br $~lib/util/hash/HASH|inlined.4 + end + local.set $4 + local.get $0 + local.get $1 + local.get $4 + call $~lib/map/Map#find + local.set $5 + local.get $5 + if + local.get $5 + local.get $2 + call $~lib/map/MapEntry#set:value + i32.const 0 + drop + else + local.get $0 + i32.load offset=16 + local.get $0 + i32.load offset=12 i32.eq + if + local.get $0 + local.get $0 + i32.load offset=20 + 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 $0 + i32.load offset=4 + else + 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.load offset=8 + local.tee $3 + i32.store + local.get $3 + local.get $0 + local.get $0 + i32.load offset=16 + local.tee $6 + i32.const 1 + i32.add + call $~lib/map/Map#set:entriesOffset + local.get $6 + i32.const 8 + i32.mul + i32.add + local.set $5 + local.get $5 + local.get $1 + call $~lib/map/MapEntry#set:key + i32.const 0 drop + local.get $5 local.get $2 - i64.reinterpret_f64 - call $~lib/util/hash/hash64 - br $~lib/util/hash/HASH|inlined.0 + call $~lib/map/MapEntry#set:value + i32.const 0 + drop + local.get $0 + local.get $0 + i32.load offset=20 + i32.const 1 + i32.add + call $~lib/map/Map#set:entriesCount + local.get $0 + i32.load + local.get $4 + local.get $0 + i32.load offset=4 + i32.and + i32.const 4 + i32.mul + i32.add + local.set $6 + local.get $5 + local.get $6 + i32.load + call $~lib/map/MapEntry#set:taggedNext + local.get $6 + local.get $5 + i32.store end - call $~lib/map/Map#find + local.get $0 + local.set $7 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $7 + ) + (func $~lib/map/Map#constructor (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 + call $~stack_check + global.get $~lib/memory/__stack_pointer i32.const 0 - i32.ne - local.set $3 + i32.store + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 24 + i32.const 11 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + local.get $0 + i32.const 0 + i32.const 4 + i32.const 4 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + call $~lib/map/Map#set:buckets + local.get $0 + i32.const 4 + i32.const 1 + i32.sub + call $~lib/map/Map#set:bucketsMask + local.get $0 + i32.const 0 + i32.const 4 + i32.const 12 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + call $~lib/map/Map#set:entries + local.get $0 + i32.const 4 + call $~lib/map/Map#set:entriesCapacity + local.get $0 + i32.const 0 + call $~lib/map/Map#set:entriesOffset + local.get $0 + i32.const 0 + call $~lib/map/Map#set:entriesCount + local.get $0 + local.set $1 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $3 + local.get $1 ) - (func $~lib/map/Map#set (param $0 i32) (param $1 f64) (param $2 i32) (result i32) - (local $3 f64) + (func $~lib/map/Map#set (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 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 - block $~lib/util/hash/HASH|inlined.1 (result i32) + i32.const 0 + i32.store + block $~lib/util/hash/HASH|inlined.1 (result i32) local.get $1 local.set $3 i32.const 0 drop i32.const 0 drop - i32.const 1 + i32.const 0 drop - i32.const 8 - i32.const 4 + i32.const 2 + i32.const 1 i32.eq drop - i32.const 8 - i32.const 8 + i32.const 2 + i32.const 2 i32.eq drop local.get $3 - i64.reinterpret_f64 - call $~lib/util/hash/hash64 - br $~lib/util/hash/HASH|inlined.1 - end - local.set $4 - local.get $0 - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store - local.get $8 + i32.const 16 + i32.shl + i32.const 16 + i32.shr_s + call $~lib/util/hash/hash16 + br $~lib/util/hash/HASH|inlined.1 + end + local.set $4 + local.get $0 local.get $1 local.get $4 - call $~lib/map/Map#find + call $~lib/map/Map#find local.set $5 local.get $5 if local.get $5 local.get $2 - call $~lib/map/MapEntry#set:value + call $~lib/map/MapEntry#set:value i32.const 0 drop else @@ -24012,11 +19670,6 @@ i32.eq if local.get $0 - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store - local.get $8 local.get $0 i32.load offset=20 local.get $0 @@ -24037,34 +19690,34 @@ 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 i32.load offset=8 - local.tee $6 - i32.store offset=4 - local.get $6 + local.tee $3 + i32.store + local.get $3 local.get $0 local.get $0 i32.load offset=16 - local.tee $7 + local.tee $6 i32.const 1 i32.add - call $~lib/map/Map#set:entriesOffset - local.get $7 - i32.const 16 + call $~lib/map/Map#set:entriesOffset + local.get $6 + i32.const 12 i32.mul i32.add local.set $5 local.get $5 local.get $1 - call $~lib/map/MapEntry#set:key + call $~lib/map/MapEntry#set:key i32.const 0 drop local.get $5 local.get $2 - call $~lib/map/MapEntry#set:value + call $~lib/map/MapEntry#set:value i32.const 0 drop local.get $0 @@ -24072,7 +19725,7 @@ i32.load offset=20 i32.const 1 i32.add - call $~lib/map/Map#set:entriesCount + call $~lib/map/Map#set:entriesCount local.get $0 i32.load local.get $4 @@ -24082,138 +19735,105 @@ i32.const 4 i32.mul i32.add - local.set $7 + local.set $6 local.get $5 - local.get $7 + local.get $6 i32.load - call $~lib/map/MapEntry#set:taggedNext - local.get $7 + call $~lib/map/MapEntry#set:taggedNext + local.get $6 local.get $5 i32.store end local.get $0 - local.set $8 + local.set $7 global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $8 + local.get $7 ) - (func $~lib/map/Map#get (param $0 i32) (param $1 f64) (result i32) - (local $2 f64) + (func $~lib/array/Array#constructor (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 call $~stack_check 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 + i32.const 12 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + local.get $0 i32.const 0 - i32.store + call $~lib/array/Array#set:buffer local.get $0 - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store - local.get $4 + i32.const 0 + call $~lib/array/Array#set:dataStart + local.get $0 + i32.const 0 + call $~lib/array/Array#set:byteLength + local.get $0 + i32.const 0 + call $~lib/array/Array#set:length_ local.get $1 - block $~lib/util/hash/HASH|inlined.3 (result i32) - local.get $1 - local.set $2 - i32.const 0 - drop - i32.const 0 - drop - i32.const 1 - drop - i32.const 8 - i32.const 4 - i32.eq - drop - i32.const 8 - i32.const 8 - i32.eq - drop - local.get $2 - i64.reinterpret_f64 - call $~lib/util/hash/hash64 - br $~lib/util/hash/HASH|inlined.3 - end - call $~lib/map/Map#find - local.set $3 - local.get $3 - i32.eqz + i32.const 1073741820 + i32.const 1 + i32.shr_u + i32.gt_u if - i32.const 592 - i32.const 656 - i32.const 105 - i32.const 17 + i32.const 432 + i32.const 704 + i32.const 58 + i32.const 60 call $~lib/builtins/abort unreachable end - local.get $3 - i32.load offset=8 - local.set $4 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $4 - ) - (func $~lib/array/Array#__set (param $0 i32) (param $1 i32) (param $2 f64) - (local $3 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check + local.get $1 + i32.const 1 + i32.shl + local.set $2 global.get $~lib/memory/__stack_pointer + local.get $2 i32.const 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 224 - i32.const 704 - i32.const 108 - i32.const 22 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.get $1 - i32.const 1 - i32.add - i32.const 3 - call $~lib/array/ensureSize - local.get $0 - local.get $1 - i32.const 1 - i32.add - call $~lib/array/Array#set:length_ - end + call $~lib/rt/itcms/__new + local.tee $3 + i32.store offset=4 + local.get $3 + i32.const 0 + local.get $2 + call $~lib/memory/memory.fill local.get $0 - local.set $3 - global.get $~lib/memory/__stack_pointer local.get $3 - i32.store + call $~lib/array/Array#set:buffer + local.get $0 local.get $3 - local.get $1 + call $~lib/array/Array#set:dataStart + local.get $0 local.get $2 - call $~lib/array/Array#__uset + call $~lib/array/Array#set:byteLength + local.get $0 + local.get $1 + call $~lib/array/Array#set:length_ + local.get $0 + 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 $4 ) - (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) @@ -24224,13 +19844,13 @@ (local $8 i32) (local $9 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 $0 i32.load offset=8 local.set $1 @@ -24240,7 +19860,7 @@ global.get $~lib/memory/__stack_pointer i32.const 0 local.get $2 - call $~lib/array/Array#constructor + call $~lib/array/Array#constructor local.tee $3 i32.store i32.const 0 @@ -24256,22 +19876,17 @@ if local.get $1 local.get $5 - i32.const 16 + i32.const 12 i32.mul i32.add local.set $7 local.get $7 - i32.load offset=12 + i32.load offset=8 i32.const 1 i32.and i32.eqz if local.get $3 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 local.get $4 local.tee $8 i32.const 1 @@ -24279,8 +19894,8 @@ local.set $4 local.get $8 local.get $7 - f64.load - call $~lib/array/Array#__set + i32.load16_s + call $~lib/array/Array#__set end local.get $5 i32.const 1 @@ -24290,22 +19905,17 @@ end end local.get $3 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 local.get $4 - call $~lib/array/Array#set:length + call $~lib/array/Array#set:length local.get $3 local.set $9 global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer local.get $9 ) - (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) @@ -24316,13 +19926,13 @@ (local $8 i32) (local $9 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 $0 i32.load offset=8 local.set $1 @@ -24348,22 +19958,17 @@ if local.get $1 local.get $5 - i32.const 16 + i32.const 12 i32.mul i32.add local.set $7 local.get $7 - i32.load offset=12 + i32.load offset=8 i32.const 1 i32.and i32.eqz if local.get $3 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 local.get $4 local.tee $8 i32.const 1 @@ -24371,7 +19976,7 @@ local.set $4 local.get $8 local.get $7 - i32.load offset=8 + i32.load offset=4 call $~lib/array/Array#__set end local.get $5 @@ -24382,74 +19987,122 @@ end end local.get $3 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 local.get $4 call $~lib/array/Array#set:length local.get $3 local.set $9 global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $9 + ) + (func $~lib/map/Map#constructor (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 + call $~stack_check + 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 24 + i32.const 13 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + local.get $0 + i32.const 0 + i32.const 4 + i32.const 4 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + call $~lib/map/Map#set:buckets + local.get $0 + i32.const 4 + i32.const 1 + i32.sub + call $~lib/map/Map#set:bucketsMask + local.get $0 + i32.const 0 + i32.const 4 i32.const 8 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + call $~lib/map/Map#set:entries + local.get $0 + i32.const 4 + call $~lib/map/Map#set:entriesCapacity + local.get $0 + i32.const 0 + call $~lib/map/Map#set:entriesOffset + local.get $0 + i32.const 0 + call $~lib/map/Map#set:entriesCount + local.get $0 + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $9 + local.get $1 ) - (func $~lib/map/Map#set (param $0 i32) (param $1 f64) (param $2 f64) (result i32) - (local $3 f64) + (func $~lib/map/Map#set (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 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 - block $~lib/util/hash/HASH|inlined.4 (result i32) + i32.const 0 + i32.store + block $~lib/util/hash/HASH|inlined.4 (result i32) local.get $1 local.set $3 i32.const 0 drop i32.const 0 drop - i32.const 1 + i32.const 0 drop - i32.const 8 - i32.const 4 + i32.const 2 + i32.const 1 i32.eq drop - i32.const 8 - i32.const 8 + i32.const 2 + i32.const 2 i32.eq drop local.get $3 - i64.reinterpret_f64 - call $~lib/util/hash/hash64 - br $~lib/util/hash/HASH|inlined.4 + i32.const 16 + i32.shl + i32.const 16 + i32.shr_s + call $~lib/util/hash/hash16 + br $~lib/util/hash/HASH|inlined.4 end local.set $4 local.get $0 - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store - local.get $8 local.get $1 local.get $4 - call $~lib/map/Map#find + call $~lib/map/Map#find local.set $5 local.get $5 if local.get $5 local.get $2 - call $~lib/map/MapEntry#set:value + call $~lib/map/MapEntry#set:value i32.const 0 drop else @@ -24460,11 +20113,6 @@ i32.eq if local.get $0 - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store - local.get $8 local.get $0 i32.load offset=20 local.get $0 @@ -24485,34 +20133,34 @@ 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 i32.load offset=8 - local.tee $6 - i32.store offset=4 - local.get $6 + local.tee $3 + i32.store + local.get $3 local.get $0 local.get $0 i32.load offset=16 - local.tee $7 + local.tee $6 i32.const 1 i32.add - call $~lib/map/Map#set:entriesOffset - local.get $7 - i32.const 24 + call $~lib/map/Map#set:entriesOffset + local.get $6 + i32.const 8 i32.mul i32.add local.set $5 local.get $5 local.get $1 - call $~lib/map/MapEntry#set:key + call $~lib/map/MapEntry#set:key i32.const 0 drop local.get $5 local.get $2 - call $~lib/map/MapEntry#set:value + call $~lib/map/MapEntry#set:value i32.const 0 drop local.get $0 @@ -24520,7 +20168,7 @@ i32.load offset=20 i32.const 1 i32.add - call $~lib/map/Map#set:entriesCount + call $~lib/map/Map#set:entriesCount local.get $0 i32.load local.get $4 @@ -24530,25 +20178,80 @@ i32.const 4 i32.mul i32.add - local.set $7 + local.set $6 local.get $5 - local.get $7 + local.get $6 i32.load - call $~lib/map/MapEntry#set:taggedNext - local.get $7 + call $~lib/map/MapEntry#set:taggedNext + local.get $6 local.get $5 i32.store end local.get $0 - local.set $8 + local.set $7 global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $8 + local.get $7 ) - (func $~lib/map/Map#delete (param $0 i32) (param $1 f64) (result i32) - (local $2 f64) + (func $~lib/map/Map#constructor (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 + call $~stack_check + 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 24 + i32.const 14 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + local.get $0 + i32.const 0 + i32.const 4 + i32.const 4 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + call $~lib/map/Map#set:buckets + local.get $0 + i32.const 4 + i32.const 1 + i32.sub + call $~lib/map/Map#set:bucketsMask + local.get $0 + i32.const 0 + i32.const 4 + i32.const 12 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + call $~lib/map/Map#set:entries + local.get $0 + i32.const 4 + call $~lib/map/Map#set:entriesCapacity + local.get $0 + i32.const 0 + call $~lib/map/Map#set:entriesOffset + local.get $0 + i32.const 0 + call $~lib/map/Map#set:entriesCount + local.get $0 + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $~lib/map/Map#set (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -24562,103 +20265,125 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store + block $~lib/util/hash/HASH|inlined.1 (result i32) + local.get $1 + local.set $3 + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 2 + i32.const 1 + i32.eq + drop + i32.const 2 + i32.const 2 + i32.eq + drop + local.get $3 + i32.const 65535 + i32.and + call $~lib/util/hash/hash16 + br $~lib/util/hash/HASH|inlined.1 + end + local.set $4 local.get $0 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store - local.get $7 local.get $1 - block $~lib/util/hash/HASH|inlined.6 (result i32) + local.get $4 + call $~lib/map/Map#find + local.set $5 + local.get $5 + if + local.get $5 + local.get $2 + call $~lib/map/MapEntry#set:value + i32.const 0 + drop + else + local.get $0 + i32.load offset=16 + local.get $0 + i32.load offset=12 + i32.eq + if + local.get $0 + local.get $0 + i32.load offset=20 + 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 $0 + i32.load offset=4 + else + 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.load offset=8 + local.tee $3 + i32.store + local.get $3 + local.get $0 + local.get $0 + i32.load offset=16 + local.tee $6 + i32.const 1 + i32.add + call $~lib/map/Map#set:entriesOffset + local.get $6 + i32.const 12 + i32.mul + i32.add + local.set $5 + local.get $5 local.get $1 - local.set $2 + call $~lib/map/MapEntry#set:key i32.const 0 drop + local.get $5 + local.get $2 + call $~lib/map/MapEntry#set:value i32.const 0 drop + local.get $0 + local.get $0 + i32.load offset=20 i32.const 1 - drop - i32.const 8 - i32.const 4 - i32.eq - drop - i32.const 8 - i32.const 8 - i32.eq - drop - local.get $2 - i64.reinterpret_f64 - call $~lib/util/hash/hash64 - br $~lib/util/hash/HASH|inlined.6 - end - call $~lib/map/Map#find - local.set $3 - local.get $3 - i32.eqz - if - i32.const 0 - local.set $7 - global.get $~lib/memory/__stack_pointer - i32.const 4 i32.add - global.set $~lib/memory/__stack_pointer - local.get $7 - return - end - local.get $3 - local.get $3 - i32.load offset=12 - i32.const 1 - i32.or - call $~lib/map/MapEntry#set:taggedNext - local.get $0 - local.get $0 - i32.load offset=20 - i32.const 1 - i32.sub - call $~lib/map/Map#set:entriesCount - local.get $0 - i32.load offset=4 - i32.const 1 - i32.shr_u - local.set $4 - local.get $4 - i32.const 1 - i32.add - i32.const 4 - local.tee $5 - local.get $0 - i32.load offset=20 - local.tee $6 - local.get $5 - local.get $6 - i32.gt_u - select - i32.ge_u - if (result i32) + call $~lib/map/Map#set:entriesCount local.get $0 - i32.load offset=20 + i32.load + local.get $4 local.get $0 - i32.load offset=12 - i32.const 3 - i32.mul + i32.load offset=4 + i32.and i32.const 4 - i32.div_s - i32.lt_s - else - i32.const 0 - end - if - local.get $0 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 + i32.mul + i32.add + local.set $6 + local.get $5 + local.get $6 + i32.load + call $~lib/map/MapEntry#set:taggedNext + local.get $6 + local.get $5 i32.store - local.get $7 - local.get $4 - call $~lib/map/Map#rehash end - i32.const 1 + local.get $0 local.set $7 global.get $~lib/memory/__stack_pointer i32.const 4 @@ -24666,674 +20391,613 @@ global.set $~lib/memory/__stack_pointer local.get $7 ) - (func $std/map/testNumeric - (local $0 i32) - (local $1 f64) + (func $~lib/array/Array#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) - (local $8 i32) - (local $9 i32) global.get $~lib/memory/__stack_pointer - i32.const 24 + 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 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=16 - global.get $~lib/memory/__stack_pointer - i32.const 0 - call $~lib/map/Map#constructor - local.tee $0 - i32.store - f64.const 0 - local.set $1 - loop $for-loop|0 - local.get $1 - f64.const 100 - f64.lt - local.set $2 - local.get $2 - if - local.get $0 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - local.get $1 - call $~lib/map/Map#has - i32.eqz - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 6 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - local.get $1 - i32.const 10 - local.get $1 - i32.trunc_f64_s - i32.add - call $~lib/map/Map#set - drop - local.get $0 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - local.get $1 - call $~lib/map/Map#has - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 8 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - local.get $1 - call $~lib/map/Map#get - i32.const 10 - local.get $1 - i32.trunc_f64_s - i32.add - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - 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 local.get $0 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - call $~lib/map/Map#get:size - i32.const 100 - i32.eq i32.eqz if - i32.const 0 - i32.const 544 - i32.const 11 - i32.const 3 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.const 15 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + local.get $0 + i32.const 0 + call $~lib/array/Array#set:buffer + local.get $0 + i32.const 0 + call $~lib/array/Array#set:dataStart + local.get $0 + i32.const 0 + call $~lib/array/Array#set:byteLength + local.get $0 + i32.const 0 + call $~lib/array/Array#set:length_ + local.get $1 + i32.const 1073741820 + i32.const 1 + i32.shr_u + i32.gt_u + if + i32.const 432 + i32.const 704 + i32.const 58 + i32.const 60 call $~lib/builtins/abort unreachable end - f64.const 0 + local.get $1 + i32.const 1 + i32.shl + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.const 0 + call $~lib/rt/itcms/__new + local.tee $3 + i32.store offset=4 + local.get $3 + i32.const 0 + local.get $2 + call $~lib/memory/memory.fill + local.get $0 + local.get $3 + call $~lib/array/Array#set:buffer + local.get $0 + local.get $3 + call $~lib/array/Array#set:dataStart + local.get $0 + local.get $2 + call $~lib/array/Array#set:byteLength + local.get $0 + local.get $1 + call $~lib/array/Array#set:length_ + local.get $0 + local.set $4 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $4 + ) + (func $~lib/map/Map#keys (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 + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.load offset=8 local.set $1 - loop $for-loop|1 - local.get $1 - f64.const 100 - f64.lt - local.set $2 + local.get $0 + i32.load offset=16 + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 0 + local.get $2 + call $~lib/array/Array#constructor + local.tee $3 + i32.store + i32.const 0 + local.set $4 + i32.const 0 + local.set $5 + loop $for-loop|0 + local.get $5 local.get $2 + i32.lt_s + local.set $6 + local.get $6 if - local.get $0 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - local.get $1 - call $~lib/map/Map#has - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 15 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - local.get $1 - call $~lib/map/Map#get - i32.const 10 - local.get $1 - i32.trunc_f64_s - i32.add - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 16 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - local.get $1 - i32.const 20 local.get $1 - i32.trunc_f64_s + local.get $5 + i32.const 12 + i32.mul i32.add - call $~lib/map/Map#set - drop - local.get $0 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - local.get $1 - call $~lib/map/Map#has + local.set $7 + local.get $7 + i32.load offset=8 + i32.const 1 + i32.and i32.eqz if - i32.const 0 - i32.const 544 - i32.const 18 - i32.const 5 - call $~lib/builtins/abort - unreachable + local.get $3 + local.get $4 + local.tee $8 + i32.const 1 + i32.add + local.set $4 + local.get $8 + local.get $7 + i32.load16_u + call $~lib/array/Array#__set end - local.get $0 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - local.get $1 - call $~lib/map/Map#get - i32.const 20 - local.get $1 - i32.trunc_f64_s + local.get $5 + i32.const 1 i32.add - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - 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 + local.set $5 + br $for-loop|0 end end - local.get $0 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - call $~lib/map/Map#get:size - i32.const 100 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 21 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $3 + local.get $4 + call $~lib/array/Array#set:length + local.get $3 local.set $9 global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer local.get $9 - i32.store offset=4 - local.get $9 - call $~lib/map/Map#keys - local.tee $2 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - local.set $9 + ) + (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) + (local $9 i32) global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - call $~lib/map/Map#values - local.tee $3 - i32.store offset=12 + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check global.get $~lib/memory/__stack_pointer i32.const 0 - call $~lib/map/Map#constructor - local.tee $4 - i32.store offset=16 + i32.store + local.get $0 + i32.load offset=8 + local.set $1 + local.get $0 + i32.load offset=16 + local.set $2 global.get $~lib/memory/__stack_pointer i32.const 0 - call $~lib/map/Map#constructor - local.tee $5 - i32.store offset=20 + local.get $2 + call $~lib/array/Array#constructor + local.tee $3 + i32.store i32.const 0 - local.set $6 - loop $for-loop|2 - local.get $6 + local.set $4 + i32.const 0 + local.set $5 + loop $for-loop|0 + local.get $5 local.get $2 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - call $~lib/array/Array#get:length i32.lt_s - local.set $7 - local.get $7 + local.set $6 + local.get $6 if - local.get $2 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - local.get $6 - call $~lib/array/Array#__get - local.set $1 - local.get $3 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - local.get $6 - call $~lib/array/Array#__get - local.set $8 - local.get $0 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 local.get $1 - call $~lib/map/Map#has - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 31 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - local.get $8 - i32.const 20 - i32.sub - f64.convert_i32_s - call $~lib/map/Map#has + local.get $5 + i32.const 12 + i32.mul + i32.add + local.set $7 + local.get $7 + i32.load offset=8 + i32.const 1 + i32.and i32.eqz if - i32.const 0 - i32.const 544 - i32.const 32 - i32.const 5 - call $~lib/builtins/abort - unreachable + local.get $3 + local.get $4 + local.tee $8 + i32.const 1 + i32.add + local.set $4 + local.get $8 + local.get $7 + i32.load offset=4 + call $~lib/array/Array#__set end - local.get $4 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - local.get $1 - local.get $1 - call $~lib/map/Map#set - drop local.get $5 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - local.get $8 - i32.const 20 - i32.sub - local.get $8 - i32.const 20 - i32.sub - call $~lib/map/Map#set - drop - local.get $6 i32.const 1 i32.add - local.set $6 - br $for-loop|2 + local.set $5 + br $for-loop|0 end end + local.get $3 local.get $4 + call $~lib/array/Array#set:length + local.get $3 local.set $9 global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer local.get $9 - i32.store offset=4 - local.get $9 - call $~lib/map/Map#get:size - i32.const 100 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 36 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $5 - local.set $9 + ) + (func $~lib/map/Map#constructor (param $0 i32) (result i32) + (local $1 i32) global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - call $~lib/map/Map#get:size - i32.const 100 - i32.eq + 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 $0 i32.eqz if - i32.const 0 - i32.const 544 - i32.const 37 - i32.const 3 - call $~lib/builtins/abort - unreachable + global.get $~lib/memory/__stack_pointer + i32.const 24 + i32.const 16 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store end - f64.const 0 + local.get $0 + i32.const 0 + i32.const 4 + i32.const 4 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + call $~lib/map/Map#set:buckets + local.get $0 + i32.const 4 + i32.const 1 + i32.sub + call $~lib/map/Map#set:bucketsMask + local.get $0 + i32.const 0 + i32.const 4 + i32.const 8 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + call $~lib/map/Map#set:entries + local.get $0 + i32.const 4 + call $~lib/map/Map#set:entriesCapacity + local.get $0 + i32.const 0 + call $~lib/map/Map#set:entriesOffset + local.get $0 + i32.const 0 + call $~lib/map/Map#set:entriesCount + local.get $0 local.set $1 - loop $for-loop|3 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $~lib/map/Map#set (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 + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + block $~lib/util/hash/HASH|inlined.4 (result i32) local.get $1 - f64.const 50 - f64.lt - local.set $6 - local.get $6 + local.set $3 + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 2 + i32.const 1 + i32.eq + drop + i32.const 2 + i32.const 2 + i32.eq + drop + local.get $3 + i32.const 65535 + i32.and + call $~lib/util/hash/hash16 + br $~lib/util/hash/HASH|inlined.4 + end + local.set $4 + local.get $0 + local.get $1 + local.get $4 + call $~lib/map/Map#find + local.set $5 + local.get $5 + if + local.get $5 + local.get $2 + call $~lib/map/MapEntry#set:value + i32.const 0 + drop + else + local.get $0 + i32.load offset=16 + local.get $0 + i32.load offset=12 + i32.eq if local.get $0 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - local.get $1 - call $~lib/map/Map#has - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 41 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - local.get $1 - call $~lib/map/Map#get - i32.const 20 - local.get $1 - i32.trunc_f64_s - i32.add - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 42 - i32.const 5 - call $~lib/builtins/abort - unreachable - end local.get $0 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - local.get $1 - call $~lib/map/Map#delete - drop + i32.load offset=20 local.get $0 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - local.get $1 - call $~lib/map/Map#has - i32.eqz - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 44 - 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) + local.get $0 + i32.load offset=4 + else + local.get $0 + i32.load offset=4 + i32.const 1 + i32.shl + i32.const 1 + i32.or end - local.get $1 - f64.const 1 - f64.add - local.set $1 - br $for-loop|3 + call $~lib/map/Map#rehash end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.load offset=8 + local.tee $3 + i32.store + local.get $3 + local.get $0 + local.get $0 + i32.load offset=16 + local.tee $6 + i32.const 1 + i32.add + call $~lib/map/Map#set:entriesOffset + local.get $6 + i32.const 8 + i32.mul + i32.add + local.set $5 + local.get $5 + local.get $1 + call $~lib/map/MapEntry#set:key + i32.const 0 + drop + local.get $5 + local.get $2 + call $~lib/map/MapEntry#set:value + i32.const 0 + drop + local.get $0 + local.get $0 + i32.load offset=20 + i32.const 1 + i32.add + call $~lib/map/Map#set:entriesCount + local.get $0 + i32.load + local.get $4 + local.get $0 + i32.load offset=4 + i32.and + i32.const 4 + i32.mul + i32.add + local.set $6 + local.get $5 + local.get $6 + i32.load + call $~lib/map/MapEntry#set:taggedNext + local.get $6 + local.get $5 + i32.store end local.get $0 - local.set $9 + local.set $7 global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - call $~lib/map/Map#get:size - i32.const 50 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 46 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - f64.const 0 + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $7 + ) + (func $~lib/map/Map#keys (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 + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.load offset=8 local.set $1 - loop $for-loop|4 - local.get $1 - f64.const 50 - f64.lt - local.set $6 - local.get $6 - if - local.get $0 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - local.get $1 - call $~lib/map/Map#has - i32.eqz - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 50 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - local.get $1 - i32.const 10 - local.get $1 - i32.trunc_f64_s - i32.add - call $~lib/map/Map#set - drop - local.get $0 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - local.get $1 - call $~lib/map/Map#has - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 52 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - local.get $1 - call $~lib/map/Map#delete - drop - local.get $0 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 + local.get $0 + i32.load offset=16 + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 0 + local.get $2 + call $~lib/array/Array#constructor + local.tee $3 + i32.store + i32.const 0 + local.set $4 + i32.const 0 + local.set $5 + loop $for-loop|0 + local.get $5 + local.get $2 + i32.lt_s + local.set $6 + local.get $6 + if local.get $1 - call $~lib/map/Map#has - i32.eqz + local.get $5 + i32.const 12 + i32.mul + i32.add + local.set $7 + local.get $7 + i32.load offset=8 + i32.const 1 + i32.and i32.eqz if - i32.const 0 - i32.const 544 - i32.const 54 - i32.const 5 - call $~lib/builtins/abort - unreachable + local.get $3 + local.get $4 + local.tee $8 + i32.const 1 + i32.add + local.set $4 + local.get $8 + local.get $7 + i32.load + call $~lib/array/Array#__set end - local.get $1 - f64.const 1 - f64.add - local.set $1 - br $for-loop|4 + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|0 end end - local.get $0 + local.get $3 + local.get $4 + call $~lib/array/Array#set:length + local.get $3 local.set $9 global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer local.get $9 - i32.store offset=4 - local.get $9 - call $~lib/map/Map#get:size - i32.const 50 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 56 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.set $9 + ) + (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) + (local $9 i32) global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - call $~lib/map/Map#clear + 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 $0 - local.set $9 + i32.load offset=8 + local.set $1 + local.get $0 + i32.load offset=16 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - call $~lib/map/Map#get:size i32.const 0 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 60 - i32.const 3 - call $~lib/builtins/abort - unreachable + local.get $2 + call $~lib/array/Array#constructor + local.tee $3 + i32.store + i32.const 0 + local.set $4 + i32.const 0 + local.set $5 + loop $for-loop|0 + local.get $5 + local.get $2 + i32.lt_s + local.set $6 + local.get $6 + if + local.get $1 + local.get $5 + i32.const 12 + i32.mul + i32.add + local.set $7 + local.get $7 + i32.load offset=8 + i32.const 1 + i32.and + i32.eqz + if + local.get $3 + local.get $4 + local.tee $8 + i32.const 1 + i32.add + local.set $4 + local.get $8 + local.get $7 + i32.load offset=4 + call $~lib/array/Array#__set + end + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|0 + end end + local.get $3 + local.get $4 + call $~lib/array/Array#set:length + local.get $3 + local.set $9 global.get $~lib/memory/__stack_pointer - i32.const 24 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer + local.get $9 ) - (func $~lib/arraybuffer/ArrayBuffer#constructor (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) + (func $~lib/map/Map#constructor (param $0 i32) (result i32) + (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -25342,37 +21006,58 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - local.get $1 - i32.const 1073741820 - i32.gt_u + local.get $0 + i32.eqz if - i32.const 432 - i32.const 480 - i32.const 49 - i32.const 43 - call $~lib/builtins/abort - unreachable + global.get $~lib/memory/__stack_pointer + i32.const 24 + i32.const 17 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store end - global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.const 0 - call $~lib/rt/itcms/__new - local.tee $2 - i32.store - local.get $2 + i32.const 4 + i32.const 4 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + call $~lib/map/Map#set:buckets + local.get $0 + i32.const 4 + i32.const 1 + i32.sub + call $~lib/map/Map#set:bucketsMask + local.get $0 i32.const 0 - local.get $1 - call $~lib/memory/memory.fill - local.get $2 - local.set $3 + i32.const 4 + i32.const 12 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + call $~lib/map/Map#set:entries + local.get $0 + i32.const 4 + call $~lib/map/Map#set:entriesCapacity + local.get $0 + i32.const 0 + call $~lib/map/Map#set:entriesOffset + local.get $0 + i32.const 0 + call $~lib/map/Map#set:entriesCount + local.get $0 + local.set $1 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $3 + local.get $1 ) - (func $~lib/map/Map#constructor (param $0 i32) (result i32) - (local $1 i32) + (func $~lib/map/Map#set (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 @@ -25381,53 +21066,135 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store + block $~lib/util/hash/HASH|inlined.1 (result i32) + local.get $1 + local.set $3 + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 4 + i32.const 1 + i32.eq + drop + i32.const 4 + i32.const 2 + i32.eq + drop + i32.const 4 + i32.const 4 + i32.eq + drop + local.get $3 + call $~lib/util/hash/hash32 + br $~lib/util/hash/HASH|inlined.1 + end + local.set $4 local.get $0 - i32.eqz + local.get $1 + local.get $4 + call $~lib/map/Map#find + local.set $5 + local.get $5 if + local.get $5 + local.get $2 + call $~lib/map/MapEntry#set:value + i32.const 0 + drop + else + local.get $0 + i32.load offset=16 + local.get $0 + i32.load offset=12 + i32.eq + if + local.get $0 + local.get $0 + i32.load offset=20 + 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 $0 + i32.load offset=4 + else + 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 - i32.const 24 - i32.const 3 - call $~lib/rt/itcms/__new - local.tee $0 + local.get $0 + i32.load offset=8 + local.tee $3 + i32.store + local.get $3 + local.get $0 + local.get $0 + i32.load offset=16 + local.tee $6 + i32.const 1 + i32.add + call $~lib/map/Map#set:entriesOffset + local.get $6 + i32.const 12 + i32.mul + i32.add + local.set $5 + local.get $5 + local.get $1 + call $~lib/map/MapEntry#set:key + i32.const 0 + drop + local.get $5 + local.get $2 + call $~lib/map/MapEntry#set:value + i32.const 0 + drop + local.get $0 + local.get $0 + i32.load offset=20 + i32.const 1 + i32.add + call $~lib/map/Map#set:entriesCount + local.get $0 + i32.load + local.get $4 + local.get $0 + i32.load offset=4 + i32.and + i32.const 4 + i32.mul + i32.add + local.set $6 + local.get $5 + local.get $6 + i32.load + call $~lib/map/MapEntry#set:taggedNext + local.get $6 + local.get $5 i32.store end local.get $0 - i32.const 0 - i32.const 4 - i32.const 4 - i32.mul - call $~lib/arraybuffer/ArrayBuffer#constructor - call $~lib/map/Map#set:buckets - local.get $0 - i32.const 4 - i32.const 1 - i32.sub - call $~lib/map/Map#set:bucketsMask - local.get $0 - i32.const 0 - i32.const 4 - i32.const 12 - i32.mul - call $~lib/arraybuffer/ArrayBuffer#constructor - call $~lib/map/Map#set:entries - local.get $0 - i32.const 4 - call $~lib/map/Map#set:entriesCapacity - local.get $0 - i32.const 0 - call $~lib/map/Map#set:entriesOffset - local.get $0 - i32.const 0 - call $~lib/map/Map#set:entriesCount - local.get $0 - local.set $1 + local.set $7 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 + local.get $7 ) - (func $~lib/array/Array#constructor (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#constructor (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -25444,26 +21211,26 @@ if global.get $~lib/memory/__stack_pointer i32.const 16 - i32.const 4 + i32.const 18 call $~lib/rt/itcms/__new local.tee $0 i32.store end local.get $0 i32.const 0 - call $~lib/array/Array#set:buffer + call $~lib/array/Array#set:buffer local.get $0 i32.const 0 - call $~lib/array/Array#set:dataStart + call $~lib/array/Array#set:dataStart local.get $0 i32.const 0 - call $~lib/array/Array#set:byteLength + call $~lib/array/Array#set:byteLength local.get $0 i32.const 0 - call $~lib/array/Array#set:length_ + call $~lib/array/Array#set:length_ local.get $1 i32.const 1073741820 - i32.const 0 + i32.const 2 i32.shr_u i32.gt_u if @@ -25475,7 +21242,7 @@ unreachable end local.get $1 - i32.const 0 + i32.const 2 i32.shl local.set $2 global.get $~lib/memory/__stack_pointer @@ -25490,16 +21257,16 @@ call $~lib/memory/memory.fill local.get $0 local.get $3 - call $~lib/array/Array#set:buffer + call $~lib/array/Array#set:buffer local.get $0 local.get $3 - call $~lib/array/Array#set:dataStart + call $~lib/array/Array#set:dataStart local.get $0 local.get $2 - call $~lib/array/Array#set:byteLength + call $~lib/array/Array#set:byteLength local.get $0 local.get $1 - call $~lib/array/Array#set:length_ + call $~lib/array/Array#set:length_ local.get $0 local.set $4 global.get $~lib/memory/__stack_pointer @@ -25508,88 +21275,171 @@ global.set $~lib/memory/__stack_pointer local.get $4 ) - (func $~lib/array/Array#constructor (param $0 i32) (param $1 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 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 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 $0 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.const 5 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - end + i32.load offset=8 + local.set $1 local.get $0 + i32.load offset=16 + local.set $2 + global.get $~lib/memory/__stack_pointer i32.const 0 - call $~lib/array/Array#set:buffer - local.get $0 + local.get $2 + call $~lib/array/Array#constructor + local.tee $3 + i32.store + i32.const 0 + local.set $4 + i32.const 0 + local.set $5 + loop $for-loop|0 + local.get $5 + local.get $2 + i32.lt_s + local.set $6 + local.get $6 + if + local.get $1 + local.get $5 + i32.const 12 + i32.mul + i32.add + local.set $7 + local.get $7 + i32.load offset=8 + i32.const 1 + i32.and + i32.eqz + if + local.get $3 + local.get $4 + local.tee $8 + i32.const 1 + i32.add + local.set $4 + local.get $8 + local.get $7 + i32.load + call $~lib/array/Array#__set + end + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|0 + end + end + local.get $3 + local.get $4 + call $~lib/array/Array#set:length + local.get $3 + local.set $9 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $9 + ) + (func $~lib/map/Map#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) + (local $9 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer i32.const 0 - call $~lib/array/Array#set:dataStart + i32.store local.get $0 - i32.const 0 - call $~lib/array/Array#set:byteLength + i32.load offset=8 + local.set $1 local.get $0 - i32.const 0 - call $~lib/array/Array#set:length_ - local.get $1 - i32.const 1073741820 - i32.const 2 - i32.shr_u - i32.gt_u - if - i32.const 432 - i32.const 704 - i32.const 58 - i32.const 60 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i32.const 2 - i32.shl + i32.load offset=16 local.set $2 global.get $~lib/memory/__stack_pointer - local.get $2 i32.const 0 - call $~lib/rt/itcms/__new + local.get $2 + call $~lib/array/Array#constructor local.tee $3 - i32.store offset=4 - local.get $3 + i32.store i32.const 0 - local.get $2 - call $~lib/memory/memory.fill - local.get $0 + local.set $4 + i32.const 0 + local.set $5 + loop $for-loop|0 + local.get $5 + local.get $2 + i32.lt_s + local.set $6 + local.get $6 + if + local.get $1 + local.get $5 + i32.const 12 + i32.mul + i32.add + local.set $7 + local.get $7 + i32.load offset=8 + i32.const 1 + i32.and + i32.eqz + if + local.get $3 + local.get $4 + local.tee $8 + i32.const 1 + i32.add + local.set $4 + local.get $8 + local.get $7 + i32.load offset=4 + call $~lib/array/Array#__set + end + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|0 + end + end local.get $3 - call $~lib/array/Array#set:buffer - local.get $0 + local.get $4 + call $~lib/array/Array#set:length local.get $3 - call $~lib/array/Array#set:dataStart - local.get $0 - local.get $2 - call $~lib/array/Array#set:byteLength - local.get $0 - local.get $1 - call $~lib/array/Array#set:length_ - local.get $0 - local.set $4 + local.set $9 global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $4 + local.get $9 ) - (func $~lib/map/Map#constructor (param $0 i32) (result i32) + (func $~lib/map/Map#constructor (param $0 i32) (result i32) (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 4 @@ -25604,7 +21454,7 @@ if global.get $~lib/memory/__stack_pointer i32.const 24 - i32.const 6 + i32.const 19 call $~lib/rt/itcms/__new local.tee $0 i32.store @@ -25615,37 +21465,179 @@ i32.const 4 i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor - call $~lib/map/Map#set:buckets + call $~lib/map/Map#set:buckets local.get $0 i32.const 4 i32.const 1 i32.sub - call $~lib/map/Map#set:bucketsMask + call $~lib/map/Map#set:bucketsMask local.get $0 i32.const 0 i32.const 4 - i32.const 8 + i32.const 12 i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor - call $~lib/map/Map#set:entries + call $~lib/map/Map#set:entries local.get $0 i32.const 4 - call $~lib/map/Map#set:entriesCapacity + call $~lib/map/Map#set:entriesCapacity local.get $0 i32.const 0 - call $~lib/map/Map#set:entriesOffset + call $~lib/map/Map#set:entriesOffset local.get $0 i32.const 0 - call $~lib/map/Map#set:entriesCount + call $~lib/map/Map#set:entriesCount local.get $0 local.set $1 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 + local.get $1 + ) + (func $~lib/map/Map#set (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 + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + block $~lib/util/hash/HASH|inlined.4 (result i32) + local.get $1 + local.set $3 + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 4 + i32.const 1 + i32.eq + drop + i32.const 4 + i32.const 2 + i32.eq + drop + i32.const 4 + i32.const 4 + i32.eq + drop + local.get $3 + call $~lib/util/hash/hash32 + br $~lib/util/hash/HASH|inlined.4 + end + local.set $4 + local.get $0 + local.get $1 + local.get $4 + call $~lib/map/Map#find + local.set $5 + local.get $5 + if + local.get $5 + local.get $2 + call $~lib/map/MapEntry#set:value + i32.const 0 + drop + else + local.get $0 + i32.load offset=16 + local.get $0 + i32.load offset=12 + i32.eq + if + local.get $0 + local.get $0 + i32.load offset=20 + 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 $0 + i32.load offset=4 + else + 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.load offset=8 + local.tee $3 + i32.store + local.get $3 + local.get $0 + local.get $0 + i32.load offset=16 + local.tee $6 + i32.const 1 + i32.add + call $~lib/map/Map#set:entriesOffset + local.get $6 + i32.const 12 + i32.mul + i32.add + local.set $5 + local.get $5 + local.get $1 + call $~lib/map/MapEntry#set:key + i32.const 0 + drop + local.get $5 + local.get $2 + call $~lib/map/MapEntry#set:value + i32.const 0 + drop + local.get $0 + local.get $0 + i32.load offset=20 + i32.const 1 + i32.add + call $~lib/map/Map#set:entriesCount + local.get $0 + i32.load + local.get $4 + local.get $0 + i32.load offset=4 + i32.and + i32.const 4 + i32.mul + i32.add + local.set $6 + local.get $5 + local.get $6 + i32.load + call $~lib/map/MapEntry#set:taggedNext + local.get $6 + local.get $5 + i32.store + end + local.get $0 + local.set $7 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $7 ) - (func $~lib/map/Map#constructor (param $0 i32) (result i32) + (func $~lib/map/Map#constructor (param $0 i32) (result i32) (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 4 @@ -25660,7 +21652,7 @@ if global.get $~lib/memory/__stack_pointer i32.const 24 - i32.const 7 + i32.const 20 call $~lib/rt/itcms/__new local.tee $0 i32.store @@ -25671,28 +21663,28 @@ i32.const 4 i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor - call $~lib/map/Map#set:buckets + call $~lib/map/Map#set:buckets local.get $0 i32.const 4 i32.const 1 i32.sub - call $~lib/map/Map#set:bucketsMask + call $~lib/map/Map#set:bucketsMask local.get $0 i32.const 0 i32.const 4 - i32.const 12 + i32.const 16 i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor - call $~lib/map/Map#set:entries + call $~lib/map/Map#set:entries local.get $0 i32.const 4 - call $~lib/map/Map#set:entriesCapacity + call $~lib/map/Map#set:entriesCapacity local.get $0 i32.const 0 - call $~lib/map/Map#set:entriesOffset + call $~lib/map/Map#set:entriesOffset local.get $0 i32.const 0 - call $~lib/map/Map#set:entriesCount + call $~lib/map/Map#set:entriesCount local.get $0 local.set $1 global.get $~lib/memory/__stack_pointer @@ -25701,8 +21693,13 @@ global.set $~lib/memory/__stack_pointer local.get $1 ) - (func $~lib/map/Map#constructor (param $0 i32) (result i32) - (local $1 i32) + (func $~lib/map/Map#set (param $0 i32) (param $1 i64) (param $2 i32) (result i32) + (local $3 i64) + (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 @@ -25711,53 +21708,139 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store + block $~lib/util/hash/HASH|inlined.1 (result i32) + local.get $1 + local.set $3 + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 8 + i32.const 1 + i32.eq + drop + i32.const 8 + i32.const 2 + i32.eq + drop + i32.const 8 + i32.const 4 + i32.eq + drop + i32.const 8 + i32.const 8 + i32.eq + drop + local.get $3 + call $~lib/util/hash/hash64 + br $~lib/util/hash/HASH|inlined.1 + end + local.set $4 local.get $0 - i32.eqz + local.get $1 + local.get $4 + call $~lib/map/Map#find + local.set $5 + local.get $5 if + local.get $5 + local.get $2 + call $~lib/map/MapEntry#set:value + i32.const 0 + drop + else + local.get $0 + i32.load offset=16 + local.get $0 + i32.load offset=12 + i32.eq + if + local.get $0 + local.get $0 + i32.load offset=20 + 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 $0 + i32.load offset=4 + else + 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 - i32.const 24 - i32.const 8 - call $~lib/rt/itcms/__new - local.tee $0 + local.get $0 + i32.load offset=8 + local.tee $6 + i32.store + local.get $6 + local.get $0 + local.get $0 + i32.load offset=16 + local.tee $7 + i32.const 1 + i32.add + call $~lib/map/Map#set:entriesOffset + local.get $7 + i32.const 16 + i32.mul + i32.add + local.set $5 + local.get $5 + local.get $1 + call $~lib/map/MapEntry#set:key + i32.const 0 + drop + local.get $5 + local.get $2 + call $~lib/map/MapEntry#set:value + i32.const 0 + drop + local.get $0 + local.get $0 + i32.load offset=20 + i32.const 1 + i32.add + call $~lib/map/Map#set:entriesCount + local.get $0 + i32.load + local.get $4 + local.get $0 + i32.load offset=4 + i32.and + i32.const 4 + i32.mul + i32.add + local.set $7 + local.get $5 + local.get $7 + i32.load + call $~lib/map/MapEntry#set:taggedNext + local.get $7 + local.get $5 i32.store end local.get $0 - i32.const 0 - i32.const 4 - i32.const 4 - i32.mul - call $~lib/arraybuffer/ArrayBuffer#constructor - call $~lib/map/Map#set:buckets - local.get $0 - i32.const 4 - i32.const 1 - i32.sub - call $~lib/map/Map#set:bucketsMask - local.get $0 - i32.const 0 - i32.const 4 - i32.const 12 - i32.mul - call $~lib/arraybuffer/ArrayBuffer#constructor - call $~lib/map/Map#set:entries - local.get $0 - i32.const 4 - call $~lib/map/Map#set:entriesCapacity - local.get $0 - i32.const 0 - call $~lib/map/Map#set:entriesOffset - local.get $0 - i32.const 0 - call $~lib/map/Map#set:entriesCount - local.get $0 - local.set $1 + local.set $8 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 + local.get $8 ) - (func $~lib/array/Array#constructor (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#constructor (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -25774,26 +21857,26 @@ if global.get $~lib/memory/__stack_pointer i32.const 16 - i32.const 9 + i32.const 21 call $~lib/rt/itcms/__new local.tee $0 i32.store end local.get $0 i32.const 0 - call $~lib/array/Array#set:buffer + call $~lib/array/Array#set:buffer local.get $0 i32.const 0 - call $~lib/array/Array#set:dataStart + call $~lib/array/Array#set:dataStart local.get $0 i32.const 0 - call $~lib/array/Array#set:byteLength + call $~lib/array/Array#set:byteLength local.get $0 i32.const 0 - call $~lib/array/Array#set:length_ + call $~lib/array/Array#set:length_ local.get $1 i32.const 1073741820 - i32.const 0 + i32.const 3 i32.shr_u i32.gt_u if @@ -25805,7 +21888,7 @@ unreachable end local.get $1 - i32.const 0 + i32.const 3 i32.shl local.set $2 global.get $~lib/memory/__stack_pointer @@ -25816,30 +21899,120 @@ i32.store offset=4 local.get $3 i32.const 0 - local.get $2 - call $~lib/memory/memory.fill - local.get $0 + local.get $2 + call $~lib/memory/memory.fill + local.get $0 + local.get $3 + call $~lib/array/Array#set:buffer + local.get $0 + local.get $3 + call $~lib/array/Array#set:dataStart + local.get $0 + local.get $2 + call $~lib/array/Array#set:byteLength + local.get $0 + local.get $1 + call $~lib/array/Array#set:length_ + local.get $0 + local.set $4 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $4 + ) + (func $~lib/map/Map#keys (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 + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.load offset=8 + local.set $1 + local.get $0 + i32.load offset=16 + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 0 + local.get $2 + call $~lib/array/Array#constructor + local.tee $3 + i32.store + i32.const 0 + local.set $4 + i32.const 0 + local.set $5 + loop $for-loop|0 + local.get $5 + local.get $2 + i32.lt_s + local.set $6 + local.get $6 + if + local.get $1 + local.get $5 + i32.const 16 + i32.mul + i32.add + local.set $7 + local.get $7 + i32.load offset=12 + i32.const 1 + i32.and + i32.eqz + if + local.get $3 + local.get $4 + local.tee $8 + i32.const 1 + i32.add + local.set $4 + local.get $8 + local.get $7 + i64.load + call $~lib/array/Array#__set + end + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|0 + end + end local.get $3 - call $~lib/array/Array#set:buffer - local.get $0 + local.get $4 + call $~lib/array/Array#set:length local.get $3 - call $~lib/array/Array#set:dataStart - local.get $0 - local.get $2 - call $~lib/array/Array#set:byteLength - local.get $0 - local.get $1 - call $~lib/array/Array#set:length_ - local.get $0 - local.set $4 + local.set $9 global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $4 + local.get $9 ) - (func $~lib/map/Map#constructor (param $0 i32) (result 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) + (local $9 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -25849,52 +22022,70 @@ i32.const 0 i32.store local.get $0 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.const 10 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - end - local.get $0 - i32.const 0 - i32.const 4 - i32.const 4 - i32.mul - call $~lib/arraybuffer/ArrayBuffer#constructor - call $~lib/map/Map#set:buckets - local.get $0 - i32.const 4 - i32.const 1 - i32.sub - call $~lib/map/Map#set:bucketsMask + i32.load offset=8 + local.set $1 local.get $0 + i32.load offset=16 + local.set $2 + global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 4 - i32.const 8 - i32.mul - call $~lib/arraybuffer/ArrayBuffer#constructor - call $~lib/map/Map#set:entries - local.get $0 - i32.const 4 - call $~lib/map/Map#set:entriesCapacity - local.get $0 + local.get $2 + call $~lib/array/Array#constructor + local.tee $3 + i32.store i32.const 0 - call $~lib/map/Map#set:entriesOffset - local.get $0 + local.set $4 i32.const 0 - call $~lib/map/Map#set:entriesCount - local.get $0 - local.set $1 + local.set $5 + loop $for-loop|0 + local.get $5 + local.get $2 + i32.lt_s + local.set $6 + local.get $6 + if + local.get $1 + local.get $5 + i32.const 16 + i32.mul + i32.add + local.set $7 + local.get $7 + i32.load offset=12 + i32.const 1 + i32.and + i32.eqz + if + local.get $3 + local.get $4 + local.tee $8 + i32.const 1 + i32.add + local.set $4 + local.get $8 + local.get $7 + i32.load offset=8 + call $~lib/array/Array#__set + end + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|0 + end + end + local.get $3 + local.get $4 + call $~lib/array/Array#set:length + local.get $3 + local.set $9 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 + local.get $9 ) - (func $~lib/map/Map#constructor (param $0 i32) (result i32) + (func $~lib/map/Map#constructor (param $0 i32) (result i32) (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 4 @@ -25909,7 +22100,7 @@ if global.get $~lib/memory/__stack_pointer i32.const 24 - i32.const 11 + i32.const 22 call $~lib/rt/itcms/__new local.tee $0 i32.store @@ -25920,28 +22111,28 @@ i32.const 4 i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor - call $~lib/map/Map#set:buckets + call $~lib/map/Map#set:buckets local.get $0 i32.const 4 i32.const 1 i32.sub - call $~lib/map/Map#set:bucketsMask + call $~lib/map/Map#set:bucketsMask local.get $0 i32.const 0 i32.const 4 - i32.const 12 + i32.const 24 i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor - call $~lib/map/Map#set:entries + call $~lib/map/Map#set:entries local.get $0 i32.const 4 - call $~lib/map/Map#set:entriesCapacity + call $~lib/map/Map#set:entriesCapacity local.get $0 i32.const 0 - call $~lib/map/Map#set:entriesOffset + call $~lib/map/Map#set:entriesOffset local.get $0 i32.const 0 - call $~lib/map/Map#set:entriesCount + call $~lib/map/Map#set:entriesCount local.get $0 local.set $1 global.get $~lib/memory/__stack_pointer @@ -25950,88 +22141,154 @@ global.set $~lib/memory/__stack_pointer local.get $1 ) - (func $~lib/array/Array#constructor (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) + (func $~lib/map/Map#set (param $0 i32) (param $1 i64) (param $2 i64) (result i32) + (local $3 i64) (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 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 + block $~lib/util/hash/HASH|inlined.4 (result i32) + local.get $1 + local.set $3 + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 8 + i32.const 1 + i32.eq + drop + i32.const 8 + i32.const 2 + i32.eq + drop + i32.const 8 + i32.const 4 + i32.eq + drop + i32.const 8 + i32.const 8 + i32.eq + drop + local.get $3 + call $~lib/util/hash/hash64 + br $~lib/util/hash/HASH|inlined.4 + end + local.set $4 local.get $0 - i32.eqz + local.get $1 + local.get $4 + call $~lib/map/Map#find + local.set $5 + local.get $5 if + local.get $5 + local.get $2 + call $~lib/map/MapEntry#set:value + i32.const 0 + drop + else + local.get $0 + i32.load offset=16 + local.get $0 + i32.load offset=12 + i32.eq + if + local.get $0 + local.get $0 + i32.load offset=20 + 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 $0 + i32.load offset=4 + else + 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 - i32.const 16 - i32.const 12 - call $~lib/rt/itcms/__new - local.tee $0 + local.get $0 + i32.load offset=8 + local.tee $6 + i32.store + local.get $6 + local.get $0 + local.get $0 + i32.load offset=16 + local.tee $7 + i32.const 1 + i32.add + call $~lib/map/Map#set:entriesOffset + local.get $7 + i32.const 24 + i32.mul + i32.add + local.set $5 + local.get $5 + local.get $1 + call $~lib/map/MapEntry#set:key + i32.const 0 + drop + local.get $5 + local.get $2 + call $~lib/map/MapEntry#set:value + i32.const 0 + drop + local.get $0 + local.get $0 + i32.load offset=20 + i32.const 1 + i32.add + call $~lib/map/Map#set:entriesCount + local.get $0 + i32.load + local.get $4 + local.get $0 + i32.load offset=4 + i32.and + i32.const 4 + i32.mul + i32.add + local.set $7 + local.get $5 + local.get $7 + i32.load + call $~lib/map/MapEntry#set:taggedNext + local.get $7 + local.get $5 i32.store end local.get $0 - i32.const 0 - call $~lib/array/Array#set:buffer - local.get $0 - i32.const 0 - call $~lib/array/Array#set:dataStart - local.get $0 - i32.const 0 - call $~lib/array/Array#set:byteLength - local.get $0 - i32.const 0 - call $~lib/array/Array#set:length_ - local.get $1 - i32.const 1073741820 - i32.const 1 - i32.shr_u - i32.gt_u - if - i32.const 432 - i32.const 704 - i32.const 58 - i32.const 60 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i32.const 1 - i32.shl - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.const 0 - call $~lib/rt/itcms/__new - local.tee $3 - i32.store offset=4 - local.get $3 - i32.const 0 - local.get $2 - call $~lib/memory/memory.fill - local.get $0 - local.get $3 - call $~lib/array/Array#set:buffer - local.get $0 - local.get $3 - call $~lib/array/Array#set:dataStart - local.get $0 - local.get $2 - call $~lib/array/Array#set:byteLength - local.get $0 - local.get $1 - call $~lib/array/Array#set:length_ - local.get $0 - local.set $4 + local.set $8 global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $4 + local.get $8 ) - (func $~lib/map/Map#constructor (param $0 i32) (result i32) + (func $~lib/map/Map#constructor (param $0 i32) (result i32) (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 4 @@ -26046,7 +22303,7 @@ if global.get $~lib/memory/__stack_pointer i32.const 24 - i32.const 13 + i32.const 23 call $~lib/rt/itcms/__new local.tee $0 i32.store @@ -26057,28 +22314,28 @@ i32.const 4 i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor - call $~lib/map/Map#set:buckets + call $~lib/map/Map#set:buckets local.get $0 i32.const 4 i32.const 1 i32.sub - call $~lib/map/Map#set:bucketsMask + call $~lib/map/Map#set:bucketsMask local.get $0 i32.const 0 i32.const 4 - i32.const 8 + i32.const 16 i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor - call $~lib/map/Map#set:entries + call $~lib/map/Map#set:entries local.get $0 i32.const 4 - call $~lib/map/Map#set:entriesCapacity + call $~lib/map/Map#set:entriesCapacity local.get $0 i32.const 0 - call $~lib/map/Map#set:entriesOffset + call $~lib/map/Map#set:entriesOffset local.get $0 i32.const 0 - call $~lib/map/Map#set:entriesCount + call $~lib/map/Map#set:entriesCount local.get $0 local.set $1 global.get $~lib/memory/__stack_pointer @@ -26087,8 +22344,13 @@ global.set $~lib/memory/__stack_pointer local.get $1 ) - (func $~lib/map/Map#constructor (param $0 i32) (result i32) - (local $1 i32) + (func $~lib/map/Map#set (param $0 i32) (param $1 i64) (param $2 i32) (result i32) + (local $3 i64) + (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 @@ -26097,53 +22359,139 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store + block $~lib/util/hash/HASH|inlined.1 (result i32) + local.get $1 + local.set $3 + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 8 + i32.const 1 + i32.eq + drop + i32.const 8 + i32.const 2 + i32.eq + drop + i32.const 8 + i32.const 4 + i32.eq + drop + i32.const 8 + i32.const 8 + i32.eq + drop + local.get $3 + call $~lib/util/hash/hash64 + br $~lib/util/hash/HASH|inlined.1 + end + local.set $4 local.get $0 - i32.eqz + local.get $1 + local.get $4 + call $~lib/map/Map#find + local.set $5 + local.get $5 if + local.get $5 + local.get $2 + call $~lib/map/MapEntry#set:value + i32.const 0 + drop + else + local.get $0 + i32.load offset=16 + local.get $0 + i32.load offset=12 + i32.eq + if + local.get $0 + local.get $0 + i32.load offset=20 + 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 $0 + i32.load offset=4 + else + 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 - i32.const 24 - i32.const 14 - call $~lib/rt/itcms/__new - local.tee $0 + local.get $0 + i32.load offset=8 + local.tee $6 + i32.store + local.get $6 + local.get $0 + local.get $0 + i32.load offset=16 + local.tee $7 + i32.const 1 + i32.add + call $~lib/map/Map#set:entriesOffset + local.get $7 + i32.const 16 + i32.mul + i32.add + local.set $5 + local.get $5 + local.get $1 + call $~lib/map/MapEntry#set:key + i32.const 0 + drop + local.get $5 + local.get $2 + call $~lib/map/MapEntry#set:value + i32.const 0 + drop + local.get $0 + local.get $0 + i32.load offset=20 + i32.const 1 + i32.add + call $~lib/map/Map#set:entriesCount + local.get $0 + i32.load + local.get $4 + local.get $0 + i32.load offset=4 + i32.and + i32.const 4 + i32.mul + i32.add + local.set $7 + local.get $5 + local.get $7 + i32.load + call $~lib/map/MapEntry#set:taggedNext + local.get $7 + local.get $5 i32.store end local.get $0 - i32.const 0 - i32.const 4 - i32.const 4 - i32.mul - call $~lib/arraybuffer/ArrayBuffer#constructor - call $~lib/map/Map#set:buckets - local.get $0 - i32.const 4 - i32.const 1 - i32.sub - call $~lib/map/Map#set:bucketsMask - local.get $0 - i32.const 0 - i32.const 4 - i32.const 12 - i32.mul - call $~lib/arraybuffer/ArrayBuffer#constructor - call $~lib/map/Map#set:entries - local.get $0 - i32.const 4 - call $~lib/map/Map#set:entriesCapacity - local.get $0 - i32.const 0 - call $~lib/map/Map#set:entriesOffset - local.get $0 - i32.const 0 - call $~lib/map/Map#set:entriesCount - local.get $0 - local.set $1 + local.set $8 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 + local.get $8 ) - (func $~lib/array/Array#constructor (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#constructor (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -26160,26 +22508,26 @@ if global.get $~lib/memory/__stack_pointer i32.const 16 - i32.const 15 + i32.const 24 call $~lib/rt/itcms/__new local.tee $0 i32.store end local.get $0 i32.const 0 - call $~lib/array/Array#set:buffer + call $~lib/array/Array#set:buffer local.get $0 i32.const 0 - call $~lib/array/Array#set:dataStart + call $~lib/array/Array#set:dataStart local.get $0 i32.const 0 - call $~lib/array/Array#set:byteLength + call $~lib/array/Array#set:byteLength local.get $0 i32.const 0 - call $~lib/array/Array#set:length_ + call $~lib/array/Array#set:length_ local.get $1 i32.const 1073741820 - i32.const 1 + i32.const 3 i32.shr_u i32.gt_u if @@ -26191,7 +22539,7 @@ unreachable end local.get $1 - i32.const 1 + i32.const 3 i32.shl local.set $2 global.get $~lib/memory/__stack_pointer @@ -26206,16 +22554,16 @@ call $~lib/memory/memory.fill local.get $0 local.get $3 - call $~lib/array/Array#set:buffer + call $~lib/array/Array#set:buffer local.get $0 local.get $3 - call $~lib/array/Array#set:dataStart + call $~lib/array/Array#set:dataStart local.get $0 local.get $2 - call $~lib/array/Array#set:byteLength + call $~lib/array/Array#set:byteLength local.get $0 local.get $1 - call $~lib/array/Array#set:length_ + call $~lib/array/Array#set:length_ local.get $0 local.set $4 global.get $~lib/memory/__stack_pointer @@ -26224,8 +22572,16 @@ global.set $~lib/memory/__stack_pointer local.get $4 ) - (func $~lib/map/Map#constructor (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 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -26235,190 +22591,79 @@ i32.const 0 i32.store local.get $0 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.const 16 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - end - local.get $0 - i32.const 0 - i32.const 4 - i32.const 4 - i32.mul - call $~lib/arraybuffer/ArrayBuffer#constructor - call $~lib/map/Map#set:buckets - local.get $0 - i32.const 4 - i32.const 1 - i32.sub - call $~lib/map/Map#set:bucketsMask - local.get $0 - i32.const 0 - i32.const 4 - i32.const 8 - i32.mul - call $~lib/arraybuffer/ArrayBuffer#constructor - call $~lib/map/Map#set:entries - local.get $0 - i32.const 4 - call $~lib/map/Map#set:entriesCapacity - local.get $0 - i32.const 0 - call $~lib/map/Map#set:entriesOffset - local.get $0 - i32.const 0 - call $~lib/map/Map#set:entriesCount - local.get $0 + i32.load offset=8 local.set $1 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $1 - ) - (func $~lib/map/Map#constructor (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 - call $~stack_check - 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 24 - i32.const 17 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - end - local.get $0 - i32.const 0 - i32.const 4 - i32.const 4 - i32.mul - call $~lib/arraybuffer/ArrayBuffer#constructor - call $~lib/map/Map#set:buckets - local.get $0 - i32.const 4 - i32.const 1 - i32.sub - call $~lib/map/Map#set:bucketsMask - local.get $0 - i32.const 0 - i32.const 4 - i32.const 12 - i32.mul - call $~lib/arraybuffer/ArrayBuffer#constructor - call $~lib/map/Map#set:entries - local.get $0 - i32.const 4 - call $~lib/map/Map#set:entriesCapacity - local.get $0 - i32.const 0 - call $~lib/map/Map#set:entriesOffset local.get $0 - i32.const 0 - call $~lib/map/Map#set:entriesCount - local.get $0 - local.set $1 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $1 - ) - (func $~lib/array/Array#constructor (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 - call $~stack_check + i32.load offset=16 + local.set $2 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 - i32.const 18 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - end - local.get $0 - i32.const 0 - call $~lib/array/Array#set:buffer - local.get $0 i32.const 0 - call $~lib/array/Array#set:dataStart - local.get $0 + local.get $2 + call $~lib/array/Array#constructor + local.tee $3 + i32.store i32.const 0 - call $~lib/array/Array#set:byteLength - local.get $0 + local.set $4 i32.const 0 - call $~lib/array/Array#set:length_ - local.get $1 - i32.const 1073741820 - i32.const 2 - i32.shr_u - i32.gt_u - if - i32.const 432 - i32.const 704 - i32.const 58 - i32.const 60 - call $~lib/builtins/abort - unreachable + local.set $5 + loop $for-loop|0 + local.get $5 + local.get $2 + i32.lt_s + local.set $6 + local.get $6 + if + local.get $1 + local.get $5 + i32.const 16 + i32.mul + i32.add + local.set $7 + local.get $7 + i32.load offset=12 + i32.const 1 + i32.and + i32.eqz + if + local.get $3 + local.get $4 + local.tee $8 + i32.const 1 + i32.add + local.set $4 + local.get $8 + local.get $7 + i64.load + call $~lib/array/Array#__set + end + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|0 + end end - local.get $1 - i32.const 2 - i32.shl - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.const 0 - call $~lib/rt/itcms/__new - local.tee $3 - i32.store offset=4 - local.get $3 - i32.const 0 - local.get $2 - call $~lib/memory/memory.fill - local.get $0 local.get $3 - call $~lib/array/Array#set:buffer - local.get $0 + local.get $4 + call $~lib/array/Array#set:length local.get $3 - call $~lib/array/Array#set:dataStart - local.get $0 - local.get $2 - call $~lib/array/Array#set:byteLength - local.get $0 - local.get $1 - call $~lib/array/Array#set:length_ - local.get $0 - local.set $4 + local.set $9 global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $4 + local.get $9 ) - (func $~lib/map/Map#constructor (param $0 i32) (result 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) + (local $9 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -26428,52 +22673,70 @@ i32.const 0 i32.store local.get $0 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.const 19 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - end - local.get $0 - i32.const 0 - i32.const 4 - i32.const 4 - i32.mul - call $~lib/arraybuffer/ArrayBuffer#constructor - call $~lib/map/Map#set:buckets - local.get $0 - i32.const 4 - i32.const 1 - i32.sub - call $~lib/map/Map#set:bucketsMask + i32.load offset=8 + local.set $1 local.get $0 + i32.load offset=16 + local.set $2 + global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 4 - i32.const 12 - i32.mul - call $~lib/arraybuffer/ArrayBuffer#constructor - call $~lib/map/Map#set:entries - local.get $0 - i32.const 4 - call $~lib/map/Map#set:entriesCapacity - local.get $0 + local.get $2 + call $~lib/array/Array#constructor + local.tee $3 + i32.store i32.const 0 - call $~lib/map/Map#set:entriesOffset - local.get $0 + local.set $4 i32.const 0 - call $~lib/map/Map#set:entriesCount - local.get $0 - local.set $1 + local.set $5 + loop $for-loop|0 + local.get $5 + local.get $2 + i32.lt_s + local.set $6 + local.get $6 + if + local.get $1 + local.get $5 + i32.const 16 + i32.mul + i32.add + local.set $7 + local.get $7 + i32.load offset=12 + i32.const 1 + i32.and + i32.eqz + if + local.get $3 + local.get $4 + local.tee $8 + i32.const 1 + i32.add + local.set $4 + local.get $8 + local.get $7 + i32.load offset=8 + call $~lib/array/Array#__set + end + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|0 + end + end + local.get $3 + local.get $4 + call $~lib/array/Array#set:length + local.get $3 + local.set $9 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 + local.get $9 ) - (func $~lib/map/Map#constructor (param $0 i32) (result i32) + (func $~lib/map/Map#constructor (param $0 i32) (result i32) (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 4 @@ -26488,7 +22751,7 @@ if global.get $~lib/memory/__stack_pointer i32.const 24 - i32.const 20 + i32.const 25 call $~lib/rt/itcms/__new local.tee $0 i32.store @@ -26499,28 +22762,28 @@ i32.const 4 i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor - call $~lib/map/Map#set:buckets + call $~lib/map/Map#set:buckets local.get $0 i32.const 4 i32.const 1 i32.sub - call $~lib/map/Map#set:bucketsMask + call $~lib/map/Map#set:bucketsMask local.get $0 i32.const 0 i32.const 4 - i32.const 16 + i32.const 24 i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor - call $~lib/map/Map#set:entries + call $~lib/map/Map#set:entries local.get $0 i32.const 4 - call $~lib/map/Map#set:entriesCapacity + call $~lib/map/Map#set:entriesCapacity local.get $0 i32.const 0 - call $~lib/map/Map#set:entriesOffset + call $~lib/map/Map#set:entriesOffset local.get $0 i32.const 0 - call $~lib/map/Map#set:entriesCount + call $~lib/map/Map#set:entriesCount local.get $0 local.set $1 global.get $~lib/memory/__stack_pointer @@ -26529,88 +22792,154 @@ global.set $~lib/memory/__stack_pointer local.get $1 ) - (func $~lib/array/Array#constructor (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) + (func $~lib/map/Map#set (param $0 i32) (param $1 i64) (param $2 i64) (result i32) + (local $3 i64) (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 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 $0 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.const 21 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - end - local.get $0 - i32.const 0 - call $~lib/array/Array#set:buffer - local.get $0 - i32.const 0 - call $~lib/array/Array#set:dataStart - local.get $0 - i32.const 0 - call $~lib/array/Array#set:byteLength - local.get $0 - i32.const 0 - call $~lib/array/Array#set:length_ - local.get $1 - i32.const 1073741820 - i32.const 3 - i32.shr_u - i32.gt_u - if - i32.const 432 - i32.const 704 - i32.const 58 - i32.const 60 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i32.const 3 - i32.shl - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.const 0 - call $~lib/rt/itcms/__new - local.tee $3 - i32.store offset=4 - local.get $3 i32.const 0 - local.get $2 - call $~lib/memory/memory.fill - local.get $0 - local.get $3 - call $~lib/array/Array#set:buffer - local.get $0 - local.get $3 - call $~lib/array/Array#set:dataStart - local.get $0 - local.get $2 - call $~lib/array/Array#set:byteLength + i32.store + block $~lib/util/hash/HASH|inlined.4 (result i32) + local.get $1 + local.set $3 + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 8 + i32.const 1 + i32.eq + drop + i32.const 8 + i32.const 2 + i32.eq + drop + i32.const 8 + i32.const 4 + i32.eq + drop + i32.const 8 + i32.const 8 + i32.eq + drop + local.get $3 + call $~lib/util/hash/hash64 + br $~lib/util/hash/HASH|inlined.4 + end + local.set $4 local.get $0 local.get $1 - call $~lib/array/Array#set:length_ + local.get $4 + call $~lib/map/Map#find + local.set $5 + local.get $5 + if + local.get $5 + local.get $2 + call $~lib/map/MapEntry#set:value + i32.const 0 + drop + else + local.get $0 + i32.load offset=16 + local.get $0 + i32.load offset=12 + i32.eq + if + local.get $0 + local.get $0 + i32.load offset=20 + 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 $0 + i32.load offset=4 + else + 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.load offset=8 + local.tee $6 + i32.store + local.get $6 + local.get $0 + local.get $0 + i32.load offset=16 + local.tee $7 + i32.const 1 + i32.add + call $~lib/map/Map#set:entriesOffset + local.get $7 + i32.const 24 + i32.mul + i32.add + local.set $5 + local.get $5 + local.get $1 + call $~lib/map/MapEntry#set:key + i32.const 0 + drop + local.get $5 + local.get $2 + call $~lib/map/MapEntry#set:value + i32.const 0 + drop + local.get $0 + local.get $0 + i32.load offset=20 + i32.const 1 + i32.add + call $~lib/map/Map#set:entriesCount + local.get $0 + i32.load + local.get $4 + local.get $0 + i32.load offset=4 + i32.and + i32.const 4 + i32.mul + i32.add + local.set $7 + local.get $5 + local.get $7 + i32.load + call $~lib/map/MapEntry#set:taggedNext + local.get $7 + local.get $5 + i32.store + end local.get $0 - local.set $4 + local.set $8 global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $4 + local.get $8 ) - (func $~lib/map/Map#constructor (param $0 i32) (result i32) + (func $~lib/map/Map#constructor (param $0 i32) (result i32) (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 4 @@ -26625,7 +22954,7 @@ if global.get $~lib/memory/__stack_pointer i32.const 24 - i32.const 22 + i32.const 26 call $~lib/rt/itcms/__new local.tee $0 i32.store @@ -26636,28 +22965,28 @@ i32.const 4 i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor - call $~lib/map/Map#set:buckets + call $~lib/map/Map#set:buckets local.get $0 i32.const 4 i32.const 1 i32.sub - call $~lib/map/Map#set:bucketsMask + call $~lib/map/Map#set:bucketsMask local.get $0 i32.const 0 i32.const 4 - i32.const 24 + i32.const 12 i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor - call $~lib/map/Map#set:entries + call $~lib/map/Map#set:entries local.get $0 i32.const 4 - call $~lib/map/Map#set:entriesCapacity + call $~lib/map/Map#set:entriesCapacity local.get $0 i32.const 0 - call $~lib/map/Map#set:entriesOffset + call $~lib/map/Map#set:entriesOffset local.get $0 i32.const 0 - call $~lib/map/Map#set:entriesCount + call $~lib/map/Map#set:entriesCount local.get $0 local.set $1 global.get $~lib/memory/__stack_pointer @@ -26666,8 +22995,13 @@ global.set $~lib/memory/__stack_pointer local.get $1 ) - (func $~lib/map/Map#constructor (param $0 i32) (result i32) - (local $1 i32) + (func $~lib/map/Map#set (param $0 i32) (param $1 f32) (param $2 i32) (result i32) + (local $3 f32) + (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 @@ -26676,53 +23010,128 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store + block $~lib/util/hash/HASH|inlined.1 (result i32) + local.get $1 + local.set $3 + i32.const 0 + drop + i32.const 0 + drop + i32.const 1 + drop + i32.const 4 + i32.const 4 + i32.eq + drop + local.get $3 + i32.reinterpret_f32 + call $~lib/util/hash/hash32 + br $~lib/util/hash/HASH|inlined.1 + end + local.set $4 local.get $0 - i32.eqz + local.get $1 + local.get $4 + call $~lib/map/Map#find + local.set $5 + local.get $5 if + local.get $5 + local.get $2 + call $~lib/map/MapEntry#set:value + i32.const 0 + drop + else + local.get $0 + i32.load offset=16 + local.get $0 + i32.load offset=12 + i32.eq + if + local.get $0 + local.get $0 + i32.load offset=20 + 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 $0 + i32.load offset=4 + else + 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 - i32.const 24 - i32.const 23 - call $~lib/rt/itcms/__new - local.tee $0 + local.get $0 + i32.load offset=8 + local.tee $6 i32.store - end - local.get $0 - i32.const 0 - i32.const 4 - i32.const 4 - i32.mul - call $~lib/arraybuffer/ArrayBuffer#constructor - call $~lib/map/Map#set:buckets - local.get $0 - i32.const 4 - i32.const 1 - i32.sub - call $~lib/map/Map#set:bucketsMask - local.get $0 - i32.const 0 - i32.const 4 - i32.const 16 - i32.mul - call $~lib/arraybuffer/ArrayBuffer#constructor - call $~lib/map/Map#set:entries - local.get $0 - i32.const 4 - call $~lib/map/Map#set:entriesCapacity - local.get $0 - i32.const 0 - call $~lib/map/Map#set:entriesOffset - local.get $0 - i32.const 0 - call $~lib/map/Map#set:entriesCount + local.get $6 + local.get $0 + local.get $0 + i32.load offset=16 + local.tee $7 + i32.const 1 + i32.add + call $~lib/map/Map#set:entriesOffset + local.get $7 + i32.const 12 + i32.mul + i32.add + local.set $5 + local.get $5 + local.get $1 + call $~lib/map/MapEntry#set:key + i32.const 0 + drop + local.get $5 + local.get $2 + call $~lib/map/MapEntry#set:value + i32.const 0 + drop + local.get $0 + local.get $0 + i32.load offset=20 + i32.const 1 + i32.add + call $~lib/map/Map#set:entriesCount + local.get $0 + i32.load + local.get $4 + local.get $0 + i32.load offset=4 + i32.and + i32.const 4 + i32.mul + i32.add + local.set $7 + local.get $5 + local.get $7 + i32.load + call $~lib/map/MapEntry#set:taggedNext + local.get $7 + local.get $5 + i32.store + end local.get $0 - local.set $1 + local.set $8 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 + local.get $8 ) - (func $~lib/array/Array#constructor (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#constructor (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -26739,26 +23148,26 @@ if global.get $~lib/memory/__stack_pointer i32.const 16 - i32.const 24 + i32.const 27 call $~lib/rt/itcms/__new local.tee $0 i32.store end local.get $0 i32.const 0 - call $~lib/array/Array#set:buffer + call $~lib/array/Array#set:buffer local.get $0 i32.const 0 - call $~lib/array/Array#set:dataStart + call $~lib/array/Array#set:dataStart local.get $0 i32.const 0 - call $~lib/array/Array#set:byteLength + call $~lib/array/Array#set:byteLength local.get $0 i32.const 0 - call $~lib/array/Array#set:length_ + call $~lib/array/Array#set:length_ local.get $1 i32.const 1073741820 - i32.const 3 + i32.const 2 i32.shr_u i32.gt_u if @@ -26770,7 +23179,7 @@ unreachable end local.get $1 - i32.const 3 + i32.const 2 i32.shl local.set $2 global.get $~lib/memory/__stack_pointer @@ -26784,26 +23193,382 @@ local.get $2 call $~lib/memory/memory.fill local.get $0 - local.get $3 - call $~lib/array/Array#set:buffer + local.get $3 + call $~lib/array/Array#set:buffer + local.get $0 + local.get $3 + call $~lib/array/Array#set:dataStart + local.get $0 + local.get $2 + call $~lib/array/Array#set:byteLength + local.get $0 + local.get $1 + call $~lib/array/Array#set:length_ + local.get $0 + local.set $4 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $4 + ) + (func $~lib/map/Map#keys (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 + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.load offset=8 + local.set $1 + local.get $0 + i32.load offset=16 + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 0 + local.get $2 + call $~lib/array/Array#constructor + local.tee $3 + i32.store + i32.const 0 + local.set $4 + i32.const 0 + local.set $5 + loop $for-loop|0 + local.get $5 + local.get $2 + i32.lt_s + local.set $6 + local.get $6 + if + local.get $1 + local.get $5 + i32.const 12 + i32.mul + i32.add + local.set $7 + local.get $7 + i32.load offset=8 + i32.const 1 + i32.and + i32.eqz + if + local.get $3 + local.get $4 + local.tee $8 + i32.const 1 + i32.add + local.set $4 + local.get $8 + local.get $7 + f32.load + call $~lib/array/Array#__set + end + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|0 + end + end + local.get $3 + local.get $4 + call $~lib/array/Array#set:length + local.get $3 + local.set $9 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $9 + ) + (func $~lib/map/Map#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) + (local $9 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 $0 + i32.load offset=8 + local.set $1 + local.get $0 + i32.load offset=16 + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 0 + local.get $2 + call $~lib/array/Array#constructor + local.tee $3 + i32.store + i32.const 0 + local.set $4 + i32.const 0 + local.set $5 + loop $for-loop|0 + local.get $5 + local.get $2 + i32.lt_s + local.set $6 + local.get $6 + if + local.get $1 + local.get $5 + i32.const 12 + i32.mul + i32.add + local.set $7 + local.get $7 + i32.load offset=8 + i32.const 1 + i32.and + i32.eqz + if + local.get $3 + local.get $4 + local.tee $8 + i32.const 1 + i32.add + local.set $4 + local.get $8 + local.get $7 + i32.load offset=4 + call $~lib/array/Array#__set + end + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|0 + end + end + local.get $3 + local.get $4 + call $~lib/array/Array#set:length + local.get $3 + local.set $9 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $9 + ) + (func $~lib/map/Map#constructor (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 + call $~stack_check + 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 24 + i32.const 28 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + local.get $0 + i32.const 0 + i32.const 4 + i32.const 4 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + call $~lib/map/Map#set:buckets + local.get $0 + i32.const 4 + i32.const 1 + i32.sub + call $~lib/map/Map#set:bucketsMask + local.get $0 + i32.const 0 + i32.const 4 + i32.const 12 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + call $~lib/map/Map#set:entries + local.get $0 + i32.const 4 + call $~lib/map/Map#set:entriesCapacity local.get $0 - local.get $3 - call $~lib/array/Array#set:dataStart + i32.const 0 + call $~lib/map/Map#set:entriesOffset local.get $0 - local.get $2 - call $~lib/array/Array#set:byteLength + i32.const 0 + call $~lib/map/Map#set:entriesCount local.get $0 + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer local.get $1 - call $~lib/array/Array#set:length_ - local.get $0 + ) + (func $~lib/map/Map#set (param $0 i32) (param $1 f32) (param $2 f32) (result i32) + (local $3 f32) + (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 + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + block $~lib/util/hash/HASH|inlined.4 (result i32) + local.get $1 + local.set $3 + i32.const 0 + drop + i32.const 0 + drop + i32.const 1 + drop + i32.const 4 + i32.const 4 + i32.eq + drop + local.get $3 + i32.reinterpret_f32 + call $~lib/util/hash/hash32 + br $~lib/util/hash/HASH|inlined.4 + end local.set $4 + local.get $0 + local.get $1 + local.get $4 + call $~lib/map/Map#find + local.set $5 + local.get $5 + if + local.get $5 + local.get $2 + call $~lib/map/MapEntry#set:value + i32.const 0 + drop + else + local.get $0 + i32.load offset=16 + local.get $0 + i32.load offset=12 + i32.eq + if + local.get $0 + local.get $0 + i32.load offset=20 + 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 $0 + i32.load offset=4 + else + 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.load offset=8 + local.tee $6 + i32.store + local.get $6 + local.get $0 + local.get $0 + i32.load offset=16 + local.tee $7 + i32.const 1 + i32.add + call $~lib/map/Map#set:entriesOffset + local.get $7 + i32.const 12 + i32.mul + i32.add + local.set $5 + local.get $5 + local.get $1 + call $~lib/map/MapEntry#set:key + i32.const 0 + drop + local.get $5 + local.get $2 + call $~lib/map/MapEntry#set:value + i32.const 0 + drop + local.get $0 + local.get $0 + i32.load offset=20 + i32.const 1 + i32.add + call $~lib/map/Map#set:entriesCount + local.get $0 + i32.load + local.get $4 + local.get $0 + i32.load offset=4 + i32.and + i32.const 4 + i32.mul + i32.add + local.set $7 + local.get $5 + local.get $7 + i32.load + call $~lib/map/MapEntry#set:taggedNext + local.get $7 + local.get $5 + i32.store + end + local.get $0 + local.set $8 global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $4 + local.get $8 ) - (func $~lib/map/Map#constructor (param $0 i32) (result i32) + (func $~lib/map/Map#constructor (param $0 i32) (result i32) (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 4 @@ -26818,7 +23583,7 @@ if global.get $~lib/memory/__stack_pointer i32.const 24 - i32.const 25 + i32.const 29 call $~lib/rt/itcms/__new local.tee $0 i32.store @@ -26829,28 +23594,28 @@ i32.const 4 i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor - call $~lib/map/Map#set:buckets + call $~lib/map/Map#set:buckets local.get $0 i32.const 4 i32.const 1 i32.sub - call $~lib/map/Map#set:bucketsMask + call $~lib/map/Map#set:bucketsMask local.get $0 i32.const 0 i32.const 4 - i32.const 24 + i32.const 16 i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor - call $~lib/map/Map#set:entries + call $~lib/map/Map#set:entries local.get $0 i32.const 4 - call $~lib/map/Map#set:entriesCapacity + call $~lib/map/Map#set:entriesCapacity local.get $0 i32.const 0 - call $~lib/map/Map#set:entriesOffset + call $~lib/map/Map#set:entriesOffset local.get $0 i32.const 0 - call $~lib/map/Map#set:entriesCount + call $~lib/map/Map#set:entriesCount local.get $0 local.set $1 global.get $~lib/memory/__stack_pointer @@ -26859,8 +23624,13 @@ global.set $~lib/memory/__stack_pointer local.get $1 ) - (func $~lib/map/Map#constructor (param $0 i32) (result i32) - (local $1 i32) + (func $~lib/map/Map#set (param $0 i32) (param $1 f64) (param $2 i32) (result i32) + (local $3 f64) + (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 @@ -26869,53 +23639,132 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store + block $~lib/util/hash/HASH|inlined.1 (result i32) + local.get $1 + local.set $3 + i32.const 0 + drop + i32.const 0 + drop + i32.const 1 + drop + i32.const 8 + i32.const 4 + i32.eq + drop + i32.const 8 + i32.const 8 + i32.eq + drop + local.get $3 + i64.reinterpret_f64 + call $~lib/util/hash/hash64 + br $~lib/util/hash/HASH|inlined.1 + end + local.set $4 local.get $0 - i32.eqz + local.get $1 + local.get $4 + call $~lib/map/Map#find + local.set $5 + local.get $5 if + local.get $5 + local.get $2 + call $~lib/map/MapEntry#set:value + i32.const 0 + drop + else + local.get $0 + i32.load offset=16 + local.get $0 + i32.load offset=12 + i32.eq + if + local.get $0 + local.get $0 + i32.load offset=20 + 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 $0 + i32.load offset=4 + else + 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 - i32.const 24 - i32.const 26 - call $~lib/rt/itcms/__new - local.tee $0 + local.get $0 + i32.load offset=8 + local.tee $6 + i32.store + local.get $6 + local.get $0 + local.get $0 + i32.load offset=16 + local.tee $7 + i32.const 1 + i32.add + call $~lib/map/Map#set:entriesOffset + local.get $7 + i32.const 16 + i32.mul + i32.add + local.set $5 + local.get $5 + local.get $1 + call $~lib/map/MapEntry#set:key + i32.const 0 + drop + local.get $5 + local.get $2 + call $~lib/map/MapEntry#set:value + i32.const 0 + drop + local.get $0 + local.get $0 + i32.load offset=20 + i32.const 1 + i32.add + call $~lib/map/Map#set:entriesCount + local.get $0 + i32.load + local.get $4 + local.get $0 + i32.load offset=4 + i32.and + i32.const 4 + i32.mul + i32.add + local.set $7 + local.get $5 + local.get $7 + i32.load + call $~lib/map/MapEntry#set:taggedNext + local.get $7 + local.get $5 i32.store end local.get $0 - i32.const 0 - i32.const 4 - i32.const 4 - i32.mul - call $~lib/arraybuffer/ArrayBuffer#constructor - call $~lib/map/Map#set:buckets - local.get $0 - i32.const 4 - i32.const 1 - i32.sub - call $~lib/map/Map#set:bucketsMask - local.get $0 - i32.const 0 - i32.const 4 - i32.const 12 - i32.mul - call $~lib/arraybuffer/ArrayBuffer#constructor - call $~lib/map/Map#set:entries - local.get $0 - i32.const 4 - call $~lib/map/Map#set:entriesCapacity - local.get $0 - i32.const 0 - call $~lib/map/Map#set:entriesOffset - local.get $0 - i32.const 0 - call $~lib/map/Map#set:entriesCount - local.get $0 - local.set $1 + local.set $8 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 + local.get $8 ) - (func $~lib/array/Array#constructor (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#constructor (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -26932,26 +23781,26 @@ if global.get $~lib/memory/__stack_pointer i32.const 16 - i32.const 27 + i32.const 30 call $~lib/rt/itcms/__new local.tee $0 i32.store end local.get $0 i32.const 0 - call $~lib/array/Array#set:buffer + call $~lib/array/Array#set:buffer local.get $0 i32.const 0 - call $~lib/array/Array#set:dataStart + call $~lib/array/Array#set:dataStart local.get $0 i32.const 0 - call $~lib/array/Array#set:byteLength + call $~lib/array/Array#set:byteLength local.get $0 i32.const 0 - call $~lib/array/Array#set:length_ + call $~lib/array/Array#set:length_ local.get $1 i32.const 1073741820 - i32.const 2 + i32.const 3 i32.shr_u i32.gt_u if @@ -26963,7 +23812,7 @@ unreachable end local.get $1 - i32.const 2 + i32.const 3 i32.shl local.set $2 global.get $~lib/memory/__stack_pointer @@ -26978,16 +23827,16 @@ call $~lib/memory/memory.fill local.get $0 local.get $3 - call $~lib/array/Array#set:buffer + call $~lib/array/Array#set:buffer local.get $0 local.get $3 - call $~lib/array/Array#set:dataStart + call $~lib/array/Array#set:dataStart local.get $0 local.get $2 - call $~lib/array/Array#set:byteLength + call $~lib/array/Array#set:byteLength local.get $0 local.get $1 - call $~lib/array/Array#set:length_ + call $~lib/array/Array#set:length_ local.get $0 local.set $4 global.get $~lib/memory/__stack_pointer @@ -26996,8 +23845,16 @@ global.set $~lib/memory/__stack_pointer local.get $4 ) - (func $~lib/map/Map#constructor (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 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -27007,187 +23864,150 @@ i32.const 0 i32.store local.get $0 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.const 28 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - end - local.get $0 - i32.const 0 - i32.const 4 - i32.const 4 - i32.mul - call $~lib/arraybuffer/ArrayBuffer#constructor - call $~lib/map/Map#set:buckets - local.get $0 - i32.const 4 - i32.const 1 - i32.sub - call $~lib/map/Map#set:bucketsMask - local.get $0 - i32.const 0 - i32.const 4 - i32.const 12 - i32.mul - call $~lib/arraybuffer/ArrayBuffer#constructor - call $~lib/map/Map#set:entries - local.get $0 - i32.const 4 - call $~lib/map/Map#set:entriesCapacity - local.get $0 - i32.const 0 - call $~lib/map/Map#set:entriesOffset - local.get $0 - i32.const 0 - call $~lib/map/Map#set:entriesCount - local.get $0 + i32.load offset=8 local.set $1 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $1 - ) - (func $~lib/map/Map#constructor (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 - call $~stack_check + local.get $0 + i32.load offset=16 + local.set $2 global.get $~lib/memory/__stack_pointer i32.const 0 + local.get $2 + call $~lib/array/Array#constructor + local.tee $3 i32.store - local.get $0 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.const 29 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - end - local.get $0 - i32.const 0 - i32.const 4 - i32.const 4 - i32.mul - call $~lib/arraybuffer/ArrayBuffer#constructor - call $~lib/map/Map#set:buckets - local.get $0 - i32.const 4 - i32.const 1 - i32.sub - call $~lib/map/Map#set:bucketsMask - local.get $0 i32.const 0 - i32.const 4 - i32.const 16 - i32.mul - call $~lib/arraybuffer/ArrayBuffer#constructor - call $~lib/map/Map#set:entries - local.get $0 - i32.const 4 - call $~lib/map/Map#set:entriesCapacity - local.get $0 - i32.const 0 - call $~lib/map/Map#set:entriesOffset - local.get $0 + local.set $4 i32.const 0 - call $~lib/map/Map#set:entriesCount - local.get $0 - local.set $1 + local.set $5 + loop $for-loop|0 + local.get $5 + local.get $2 + i32.lt_s + local.set $6 + local.get $6 + if + local.get $1 + local.get $5 + i32.const 16 + i32.mul + i32.add + local.set $7 + local.get $7 + i32.load offset=12 + i32.const 1 + i32.and + i32.eqz + if + local.get $3 + local.get $4 + local.tee $8 + i32.const 1 + i32.add + local.set $4 + local.get $8 + local.get $7 + f64.load + call $~lib/array/Array#__set + end + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|0 + end + end + local.get $3 + local.get $4 + call $~lib/array/Array#set:length + local.get $3 + local.set $9 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 + local.get $9 ) - (func $~lib/array/Array#constructor (param $0 i32) (param $1 i32) (result 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) + (local $9 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 $0 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.const 30 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - end - local.get $0 i32.const 0 - call $~lib/array/Array#set:buffer - local.get $0 - i32.const 0 - call $~lib/array/Array#set:dataStart + i32.store local.get $0 - i32.const 0 - call $~lib/array/Array#set:byteLength + i32.load offset=8 + local.set $1 local.get $0 - i32.const 0 - call $~lib/array/Array#set:length_ - local.get $1 - i32.const 1073741820 - i32.const 3 - i32.shr_u - i32.gt_u - if - i32.const 432 - i32.const 704 - i32.const 58 - i32.const 60 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i32.const 3 - i32.shl + i32.load offset=16 local.set $2 global.get $~lib/memory/__stack_pointer - local.get $2 i32.const 0 - call $~lib/rt/itcms/__new + local.get $2 + call $~lib/array/Array#constructor local.tee $3 - i32.store offset=4 - local.get $3 + i32.store i32.const 0 - local.get $2 - call $~lib/memory/memory.fill - local.get $0 + local.set $4 + i32.const 0 + local.set $5 + loop $for-loop|0 + local.get $5 + local.get $2 + i32.lt_s + local.set $6 + local.get $6 + if + local.get $1 + local.get $5 + i32.const 16 + i32.mul + i32.add + local.set $7 + local.get $7 + i32.load offset=12 + i32.const 1 + i32.and + i32.eqz + if + local.get $3 + local.get $4 + local.tee $8 + i32.const 1 + i32.add + local.set $4 + local.get $8 + local.get $7 + i32.load offset=8 + call $~lib/array/Array#__set + end + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|0 + end + end local.get $3 - call $~lib/array/Array#set:buffer - local.get $0 + local.get $4 + call $~lib/array/Array#set:length local.get $3 - call $~lib/array/Array#set:dataStart - local.get $0 - local.get $2 - call $~lib/array/Array#set:byteLength - local.get $0 - local.get $1 - call $~lib/array/Array#set:length_ - local.get $0 - local.set $4 + local.set $9 global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $4 + local.get $9 ) (func $~lib/map/Map#constructor (param $0 i32) (result i32) (local $1 i32) @@ -27245,4 +24065,144 @@ global.set $~lib/memory/__stack_pointer local.get $1 ) + (func $~lib/map/Map#set (param $0 i32) (param $1 f64) (param $2 f64) (result i32) + (local $3 f64) + (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 + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + block $~lib/util/hash/HASH|inlined.4 (result i32) + local.get $1 + local.set $3 + i32.const 0 + drop + i32.const 0 + drop + i32.const 1 + drop + i32.const 8 + i32.const 4 + i32.eq + drop + i32.const 8 + i32.const 8 + i32.eq + drop + local.get $3 + i64.reinterpret_f64 + call $~lib/util/hash/hash64 + br $~lib/util/hash/HASH|inlined.4 + end + local.set $4 + local.get $0 + local.get $1 + local.get $4 + call $~lib/map/Map#find + local.set $5 + local.get $5 + if + local.get $5 + local.get $2 + call $~lib/map/MapEntry#set:value + i32.const 0 + drop + else + local.get $0 + i32.load offset=16 + local.get $0 + i32.load offset=12 + i32.eq + if + local.get $0 + local.get $0 + i32.load offset=20 + 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 $0 + i32.load offset=4 + else + 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.load offset=8 + local.tee $6 + i32.store + local.get $6 + local.get $0 + local.get $0 + i32.load offset=16 + local.tee $7 + i32.const 1 + i32.add + call $~lib/map/Map#set:entriesOffset + local.get $7 + i32.const 24 + i32.mul + i32.add + local.set $5 + local.get $5 + local.get $1 + call $~lib/map/MapEntry#set:key + i32.const 0 + drop + local.get $5 + local.get $2 + call $~lib/map/MapEntry#set:value + i32.const 0 + drop + local.get $0 + local.get $0 + i32.load offset=20 + i32.const 1 + i32.add + call $~lib/map/Map#set:entriesCount + local.get $0 + i32.load + local.get $4 + local.get $0 + i32.load offset=4 + i32.and + i32.const 4 + i32.mul + i32.add + local.set $7 + local.get $5 + local.get $7 + i32.load + call $~lib/map/MapEntry#set:taggedNext + local.get $7 + local.get $5 + i32.store + end + local.get $0 + local.set $8 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $8 + ) ) diff --git a/tests/compiler/std/object.optimized.wat b/tests/compiler/std/object.optimized.wat index 978fcfe3e6..8fbd296da9 100644 --- a/tests/compiler/std/object.optimized.wat +++ b/tests/compiler/std/object.optimized.wat @@ -68,66 +68,33 @@ i32.ne i32.eq ) - (func $~start - call $start:std/object - ) - (func $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 1212 - i32.lt_s - if - i32.const 17616 - i32.const 17664 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - ) - (func $~lib/string/String.__eq (param $0 i32) (param $1 i32) (result i32) + (func $~lib/object/Object.is<~lib/string/String> (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 - call $~stack_check - 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 + block $__inlined_func$~lib/string/String.__eq (result i32) i32.const 1 - return - end - block $folding-inner0 + local.get $0 + local.get $1 + i32.eq + br_if $__inlined_func$~lib/string/String.__eq + drop + i32.const 0 local.get $1 i32.eqz i32.const 1 local.get $0 select - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store + br_if $__inlined_func$~lib/string/String.__eq + drop + i32.const 0 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.tee $2 local.get $1 i32.const 20 i32.sub @@ -135,13 +102,8 @@ 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 + br_if $__inlined_func$~lib/string/String.__eq + drop block $__inlined_func$~lib/util/string/compareImpl (result i32) local.get $0 local.tee $3 @@ -154,6 +116,7 @@ i32.eqz i32.const 0 local.get $2 + local.tee $0 i32.const 4 i32.ge_u select @@ -173,10 +136,10 @@ i32.const 8 i32.add local.set $1 - local.get $2 + local.get $0 i32.const 4 i32.sub - local.tee $2 + local.tee $0 i32.const 4 i32.ge_u br_if $do-continue|0 @@ -184,23 +147,23 @@ end end loop $while-continue|1 - local.get $2 - local.tee $0 + local.get $0 + local.tee $2 i32.const 1 i32.sub - local.set $2 - local.get $0 + local.set $0 + local.get $2 if local.get $3 i32.load16_u - local.tee $4 + local.tee $2 local.get $1 i32.load16_u - local.tee $0 + local.tee $4 i32.ne if + local.get $2 local.get $4 - local.get $0 i32.sub br $__inlined_func$~lib/util/string/compareImpl end @@ -217,48 +180,28 @@ end i32.const 0 end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer 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.is<~lib/string/String> (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 - call $~stack_check - 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 - local.get $0 - local.get $1 - call $~lib/string/String.__eq - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer + (func $~start + call $start:std/object ) (func $start:std/object 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 + i32.const 1212 + i32.lt_s + if + i32.const 17616 + i32.const 17664 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer i64.const 0 i64.store diff --git a/tests/compiler/std/object.untouched.wat b/tests/compiler/std/object.untouched.wat index 02e116ff40..eaba429dbf 100644 --- a/tests/compiler/std/object.untouched.wat +++ b/tests/compiler/std/object.untouched.wat @@ -207,44 +207,13 @@ end i32.const 0 ) - (func $~start - call $start:std/object - ) - (func $~stack_check - global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__data_end - i32.lt_s - if - i32.const 16592 - i32.const 16640 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - ) (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 - call $~stack_check - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store local.get $0 local.get $1 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 $0 @@ -259,128 +228,56 @@ 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 $0 - 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 $2 local.get $2 local.get $1 - 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 $0 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store - local.get $3 i32.const 0 local.get $1 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 i32.const 0 local.get $2 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 ) (func $~lib/object/Object.is<~lib/string/String> (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 - call $~stack_check - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store i32.const 0 drop local.get $0 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $2 local.get $1 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 call $~lib/string/String.__eq - local.set $2 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $2 ) (func $~lib/object/Object.is<~lib/string/String|null> (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 - call $~stack_check - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store i32.const 0 drop local.get $0 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $2 local.get $1 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 call $~lib/string/String.__eq - local.set $2 + ) + (func $~start + call $start:std/object + ) + (func $~stack_check global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $2 + global.get $~lib/memory/__data_end + i32.lt_s + if + i32.const 16592 + i32.const 16640 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end ) (func $start:std/object (local $0 i32) diff --git a/tests/compiler/std/operator-overloading.optimized.wat b/tests/compiler/std/operator-overloading.optimized.wat index b4569b335d..c6e3861f26 100644 --- a/tests/compiler/std/operator-overloading.optimized.wat +++ b/tests/compiler/std/operator-overloading.optimized.wat @@ -3091,9 +3091,6 @@ global.get $std/operator-overloading/incdec local.tee $0 i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store local.get $0 i32.load i32.const 1 @@ -3150,9 +3147,6 @@ global.get $std/operator-overloading/incdec local.tee $0 i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store local.get $0 i32.load i32.const 1 diff --git a/tests/compiler/std/operator-overloading.untouched.wat b/tests/compiler/std/operator-overloading.untouched.wat index 9a06ab7d90..8bf60e4114 100644 --- a/tests/compiler/std/operator-overloading.untouched.wat +++ b/tests/compiler/std/operator-overloading.untouched.wat @@ -4541,11 +4541,6 @@ local.tee $0 i32.store offset=8 local.get $0 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $2 call $std/operator-overloading/Tester#postInc global.set $std/operator-overloading/incdec local.get $0 @@ -4597,11 +4592,6 @@ local.tee $0 i32.store offset=8 local.get $0 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $2 call $std/operator-overloading/Tester#postDec global.set $std/operator-overloading/incdec local.get $0 diff --git a/tests/compiler/std/set.optimized.wat b/tests/compiler/std/set.optimized.wat index fc350bf5c1..bfcef01962 100644 --- a/tests/compiler/std/set.optimized.wat +++ b/tests/compiler/std/set.optimized.wat @@ -2,11 +2,11 @@ (type $i32_i32_=>_none (func (param i32 i32))) (type $i32_i32_=>_i32 (func (param i32 i32) (result i32))) (type $none_=>_none (func)) - (type $i32_=>_i32 (func (param i32) (result i32))) (type $none_=>_i32 (func (result i32))) (type $i32_i32_i32_=>_none (func (param i32 i32 i32))) (type $i32_=>_none (func (param i32))) (type $i32_i64_=>_none (func (param i32 i64))) + (type $i32_=>_i32 (func (param i32) (result i32))) (type $i32_i32_i32_=>_i32 (func (param i32 i32 i32) (result i32))) (type $i32_f32_=>_none (func (param i32 f32))) (type $i32_f64_=>_none (func (param i32 f64))) @@ -1862,6 +1862,22 @@ end i32.const 0 ) + (func $~lib/set/Set#has (param $0 i32) (param $1 i32) (result i32) + local.get $0 + local.get $1 + local.get $1 + i32.const 24 + i32.shl + i32.const 24 + i32.shr_s + i32.const -2128831035 + i32.xor + i32.const 16777619 + i32.mul + call $~lib/set/Set#find + i32.const 0 + i32.ne + ) (func $~lib/set/Set#rehash (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) @@ -1978,6 +1994,96 @@ 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) + local.get $1 + i32.const 24 + i32.shl + i32.const 24 + i32.shr_s + i32.const -2128831035 + i32.xor + i32.const 16777619 + i32.mul + local.tee $2 + local.set $3 + local.get $0 + local.get $1 + local.get $2 + call $~lib/set/Set#find + i32.eqz + if + local.get $0 + i32.load offset=16 + local.get $0 + i32.load offset=12 + i32.eq + if + local.get $0 + local.get $0 + i32.load offset=20 + 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 $0 + i32.load offset=4 + else + local.get $0 + i32.load offset=4 + i32.const 1 + i32.shl + i32.const 1 + i32.or + end + call $~lib/set/Set#rehash + end + local.get $0 + i32.load offset=8 + 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 + local.get $0 + local.get $0 + i32.load offset=20 + i32.const 1 + i32.add + i32.store offset=20 + local.get $2 + local.get $0 + i32.load + 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 + ) (func $~lib/memory/memory.copy (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) @@ -2248,6 +2354,42 @@ i32.store offset=8 end ) + (func $~lib/array/Array#__set (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + 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 108 + 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/ensureSize + local.get $0 + local.get $3 + i32.store offset=12 + end + local.get $1 + local.get $0 + i32.load offset=4 + i32.add + local.get $2 + i32.store8 + ) (func $~lib/array/Array#set:length (param $0 i32) (param $1 i32) local.get $0 local.get $1 @@ -2276,6 +2418,72 @@ i32.add i32.load8_s ) + (func $~lib/set/Set#delete (param $0 i32) (param $1 i32) + (local $2 i32) + local.get $0 + local.get $1 + local.get $1 + i32.const 24 + i32.shl + i32.const 24 + i32.shr_s + i32.const -2128831035 + i32.xor + i32.const 16777619 + i32.mul + call $~lib/set/Set#find + local.tee $1 + i32.eqz + if + return + end + local.get $1 + local.get $1 + i32.load offset=4 + i32.const 1 + i32.or + i32.store offset=4 + local.get $0 + local.get $0 + i32.load offset=20 + i32.const 1 + i32.sub + i32.store offset=20 + local.get $0 + i32.load offset=4 + i32.const 1 + i32.shr_u + local.tee $2 + i32.const 1 + i32.add + i32.const 4 + local.get $0 + i32.load offset=20 + local.tee $1 + local.get $1 + i32.const 4 + i32.lt_u + select + i32.ge_u + if (result i32) + local.get $0 + i32.load offset=20 + 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 $0 + local.get $2 + call $~lib/set/Set#rehash + end + ) (func $~lib/set/Set#clear (param $0 i32) local.get $0 i32.const 16 @@ -2298,7 +2506,9 @@ i32.const 0 i32.store offset=20 ) - (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) @@ -2306,8 +2516,10 @@ (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 12 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check @@ -2315,2196 +2527,14 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - local.get $1 - i32.const 1 - i32.add + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + call $~lib/set/Set#constructor 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 3 - i32.shl - call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $3 - i32.store offset=4 - local.get $0 - i32.load offset=8 - local.tee $8 - local.get $0 - i32.load offset=16 - i32.const 3 - i32.shl - i32.add - local.set $4 - local.get $3 - local.set $2 - loop $while-continue|0 - local.get $4 - local.get $8 - i32.ne - if - local.get $8 - i32.load offset=4 - i32.const 1 - i32.and - i32.eqz - if - local.get $2 - local.get $8 - i32.load8_u - local.tee $7 - i32.store8 - local.get $2 - local.get $6 - local.get $1 - local.get $7 - i32.const -2128831035 - i32.xor - i32.const 16777619 - i32.mul - i32.and - i32.const 2 - i32.shl - i32.add - local.tee $7 - i32.load - i32.store offset=4 - local.get $7 - local.get $2 - i32.store - local.get $2 - i32.const 8 - i32.add - local.set $2 - end - local.get $8 - i32.const 8 - i32.add - local.set $8 - br $while-continue|0 - end - end - local.get $0 - local.get $6 - call $~lib/set/Set#set:buckets - local.get $0 - local.get $1 - i32.store offset=4 - local.get $0 - local.get $3 - call $~lib/set/Set#set:entries - local.get $0 - local.get $5 - 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.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/array/Array#__get (param $0 i32) (param $1 i32) (result i32) - local.get $1 - local.get $0 - i32.load offset=12 - i32.ge_u - if - i32.const 1248 - i32.const 1616 - i32.const 92 - i32.const 42 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load offset=4 - local.get $1 - i32.add - i32.load8_u - ) - (func $~lib/util/hash/hash16 (param $0 i32) (result i32) - local.get $0 - i32.const 255 - i32.and - i32.const -2128831035 - i32.xor - i32.const 16777619 - i32.mul - local.get $0 - i32.const 8 - i32.shr_u - i32.xor - i32.const 16777619 - i32.mul - ) - (func $~lib/set/Set#find (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - local.get $0 - i32.load - 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 - 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 - ) - (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 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 - 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 3 - i32.shl - call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $3 - i32.store offset=4 - local.get $0 - i32.load offset=8 - local.tee $8 - local.get $0 - i32.load offset=16 - i32.const 3 - i32.shl - i32.add - local.set $4 - local.get $3 - local.set $2 - loop $while-continue|0 - local.get $4 - local.get $8 - i32.ne - if - local.get $8 - i32.load offset=4 - i32.const 1 - i32.and - i32.eqz - if - local.get $2 - local.get $8 - i32.load16_s - local.tee $7 - i32.store16 - local.get $2 - local.get $6 - local.get $7 - call $~lib/util/hash/hash16 - local.get $1 - i32.and - i32.const 2 - i32.shl - i32.add - local.tee $7 - i32.load - i32.store offset=4 - local.get $7 - local.get $2 - i32.store - local.get $2 - i32.const 8 - i32.add - local.set $2 - end - local.get $8 - i32.const 8 - i32.add - local.set $8 - br $while-continue|0 - end - end - local.get $0 - local.get $6 - call $~lib/set/Set#set:buckets - local.get $0 - local.get $1 - i32.store offset=4 - local.get $0 - local.get $3 - call $~lib/set/Set#set:entries - local.get $0 - local.get $5 - 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.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/array/Array#set:length (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - i32.const 1 - call $~lib/array/ensureSize - local.get $0 - local.get $1 - i32.store offset=12 - ) - (func $~lib/array/Array#__get (param $0 i32) (param $1 i32) (result i32) - local.get $1 - local.get $0 - i32.load offset=12 - i32.ge_u - if - i32.const 1248 - i32.const 1616 - i32.const 92 - i32.const 42 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load offset=4 - local.get $1 - i32.const 1 - i32.shl - i32.add - i32.load16_s - ) - (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 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 - 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 3 - i32.shl - call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $3 - i32.store offset=4 - local.get $0 - i32.load offset=8 - local.tee $8 - local.get $0 - i32.load offset=16 - i32.const 3 - i32.shl - i32.add - local.set $4 - local.get $3 - local.set $2 - loop $while-continue|0 - local.get $4 - local.get $8 - i32.ne - if - local.get $8 - i32.load offset=4 - i32.const 1 - i32.and - i32.eqz - if - local.get $2 - local.get $8 - i32.load16_u - local.tee $7 - i32.store16 - local.get $2 - local.get $6 - local.get $7 - call $~lib/util/hash/hash16 - local.get $1 - i32.and - i32.const 2 - i32.shl - i32.add - local.tee $7 - i32.load - i32.store offset=4 - local.get $7 - local.get $2 - i32.store - local.get $2 - i32.const 8 - i32.add - local.set $2 - end - local.get $8 - i32.const 8 - i32.add - local.set $8 - br $while-continue|0 - end - end - local.get $0 - local.get $6 - call $~lib/set/Set#set:buckets - local.get $0 - local.get $1 - i32.store offset=4 - local.get $0 - local.get $3 - call $~lib/set/Set#set:entries - local.get $0 - local.get $5 - 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.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/array/Array#__get (param $0 i32) (param $1 i32) (result i32) - local.get $1 - local.get $0 - i32.load offset=12 - i32.ge_u - if - i32.const 1248 - i32.const 1616 - i32.const 92 - i32.const 42 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load offset=4 - local.get $1 - i32.const 1 - i32.shl - i32.add - i32.load16_u - ) - (func $~lib/util/hash/hash32 (param $0 i32) (result i32) - local.get $0 - i32.const 255 - i32.and - i32.const -2128831035 - i32.xor - i32.const 16777619 - i32.mul - local.get $0 - i32.const 8 - i32.shr_u - i32.const 255 - i32.and - i32.xor - i32.const 16777619 - i32.mul - local.get $0 - i32.const 16 - i32.shr_u - i32.const 255 - i32.and - i32.xor - i32.const 16777619 - i32.mul - local.get $0 - i32.const 24 - i32.shr_u - i32.xor - i32.const 16777619 - i32.mul - ) - (func $~lib/set/Set#find (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - local.get $0 - i32.load - 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 - 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 - ) - (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 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 - 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 3 - i32.shl - call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $3 - i32.store offset=4 - local.get $0 - i32.load offset=8 - local.tee $8 - local.get $0 - i32.load offset=16 - i32.const 3 - i32.shl - i32.add - local.set $4 - local.get $3 - local.set $2 - loop $while-continue|0 - local.get $4 - local.get $8 - i32.ne - if - local.get $8 - i32.load offset=4 - i32.const 1 - i32.and - i32.eqz - if - local.get $2 - local.get $8 - i32.load - local.tee $7 - i32.store - local.get $2 - local.get $6 - local.get $7 - call $~lib/util/hash/hash32 - local.get $1 - i32.and - i32.const 2 - i32.shl - i32.add - local.tee $7 - i32.load - i32.store offset=4 - local.get $7 - local.get $2 - i32.store - local.get $2 - i32.const 8 - i32.add - local.set $2 - end - local.get $8 - i32.const 8 - i32.add - local.set $8 - br $while-continue|0 - end - end - local.get $0 - local.get $6 - call $~lib/set/Set#set:buckets - local.get $0 - local.get $1 - i32.store offset=4 - local.get $0 - local.get $3 - call $~lib/set/Set#set:entries - local.get $0 - local.get $5 - 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.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/array/Array#set:length (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - i32.const 2 - call $~lib/array/ensureSize - local.get $0 - local.get $1 - i32.store offset=12 - ) - (func $~lib/array/Array#__get (param $0 i32) (param $1 i32) (result i32) - local.get $1 - local.get $0 - i32.load offset=12 - i32.ge_u - if - i32.const 1248 - i32.const 1616 - i32.const 92 - i32.const 42 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load offset=4 - local.get $1 - i32.const 2 - i32.shl - i32.add - i32.load - ) - (func $~lib/set/Set#find (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - local.get $0 - i32.load - 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 - 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 - ) - (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 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 - 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 3 - i32.shl - call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $3 - i32.store offset=4 - local.get $0 - i32.load offset=8 - local.tee $8 - local.get $0 - i32.load offset=16 - i32.const 3 - i32.shl - i32.add - local.set $4 - local.get $3 - local.set $2 - loop $while-continue|0 - local.get $4 - local.get $8 - i32.ne - if - local.get $8 - i32.load offset=4 - i32.const 1 - i32.and - i32.eqz - if - local.get $2 - local.get $8 - i32.load - local.tee $7 - i32.store - local.get $2 - local.get $6 - local.get $7 - call $~lib/util/hash/hash32 - local.get $1 - i32.and - i32.const 2 - i32.shl - i32.add - local.tee $7 - i32.load - i32.store offset=4 - local.get $7 - local.get $2 - i32.store - local.get $2 - i32.const 8 - i32.add - local.set $2 - end - local.get $8 - i32.const 8 - i32.add - local.set $8 - br $while-continue|0 - end - end - local.get $0 - local.get $6 - call $~lib/set/Set#set:buckets - local.get $0 - local.get $1 - i32.store offset=4 - local.get $0 - local.get $3 - call $~lib/set/Set#set:entries - local.get $0 - local.get $5 - 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.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/array/Array#__get (param $0 i32) (param $1 i32) (result i32) - local.get $1 - local.get $0 - i32.load offset=12 - i32.ge_u - if - i32.const 1248 - i32.const 1616 - i32.const 92 - i32.const 42 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load offset=4 - local.get $1 - i32.const 2 - i32.shl - i32.add - i32.load - ) - (func $~lib/util/hash/hash64 (param $0 i64) (result i32) - (local $1 i32) - local.get $0 - i32.wrap_i64 - local.tee $1 - i32.const 255 - i32.and - i32.const -2128831035 - i32.xor - i32.const 16777619 - i32.mul - local.get $1 - i32.const 8 - i32.shr_u - i32.const 255 - i32.and - i32.xor - i32.const 16777619 - i32.mul - local.get $1 - i32.const 16 - i32.shr_u - i32.const 255 - i32.and - i32.xor - i32.const 16777619 - i32.mul - local.get $1 - i32.const 24 - i32.shr_u - i32.xor - i32.const 16777619 - i32.mul - local.get $0 - i64.const 32 - i64.shr_u - i32.wrap_i64 - local.tee $1 - i32.const 255 - i32.and - i32.xor - i32.const 16777619 - i32.mul - local.get $1 - i32.const 8 - i32.shr_u - i32.const 255 - i32.and - i32.xor - i32.const 16777619 - i32.mul - local.get $1 - i32.const 16 - i32.shr_u - i32.const 255 - i32.and - i32.xor - i32.const 16777619 - i32.mul - local.get $1 - i32.const 24 - i32.shr_u - i32.xor - i32.const 16777619 - i32.mul - ) - (func $~lib/set/Set#find (param $0 i32) (param $1 i64) (param $2 i32) (result i32) - local.get $0 - i32.load - 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 - 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 - ) - (func $~lib/set/Set#rehash (param $0 i32) (param $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i64) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - 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 - local.get $0 - i32.load offset=8 - local.tee $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 - i32.ne - if - local.get $9 - i32.load offset=8 - i32.const 1 - i32.and - i32.eqz - if - local.get $2 - local.get $9 - i64.load - local.tee $5 - i64.store - local.get $2 - local.get $8 - local.get $5 - call $~lib/util/hash/hash64 - local.get $1 - 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 16 - i32.add - local.set $2 - end - local.get $9 - i32.const 16 - i32.add - local.set $9 - br $while-continue|0 - end - end - local.get $0 - local.get $8 - call $~lib/set/Set#set:buckets - local.get $0 - local.get $1 - i32.store offset=4 - local.get $0 - local.get $3 - call $~lib/set/Set#set:entries - local.get $0 - local.get $7 - 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.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/array/Array#set:length (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - i32.const 3 - call $~lib/array/ensureSize - local.get $0 - local.get $1 - i32.store offset=12 - ) - (func $~lib/array/Array#__get (param $0 i32) (param $1 i32) (result i64) - local.get $1 - local.get $0 - i32.load offset=12 - i32.ge_u - if - i32.const 1248 - i32.const 1616 - i32.const 92 - i32.const 42 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load offset=4 - local.get $1 - i32.const 3 - i32.shl - i32.add - i64.load - ) - (func $~lib/set/Set#clear (param $0 i32) - local.get $0 - i32.const 16 - call $~lib/arraybuffer/ArrayBuffer#constructor - call $~lib/set/Set#set:buckets - local.get $0 - i32.const 3 - i32.store offset=4 - local.get $0 - i32.const 64 - call $~lib/arraybuffer/ArrayBuffer#constructor - call $~lib/set/Set#set:entries - local.get $0 - i32.const 4 - i32.store offset=12 - local.get $0 - i32.const 0 - i32.store offset=16 - local.get $0 - i32.const 0 - i32.store offset=20 - ) - (func $~lib/set/Set#find (param $0 i32) (param $1 i64) (param $2 i32) (result i32) - local.get $0 - i32.load - 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 - 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 - ) - (func $~lib/set/Set#rehash (param $0 i32) (param $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i64) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - 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 - local.get $0 - i32.load offset=8 - local.tee $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 - i32.ne - if - local.get $9 - i32.load offset=8 - i32.const 1 - i32.and - i32.eqz - if - local.get $2 - local.get $9 - i64.load - local.tee $5 - i64.store - local.get $2 - local.get $8 - local.get $5 - call $~lib/util/hash/hash64 - local.get $1 - 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 16 - i32.add - local.set $2 - end - local.get $9 - i32.const 16 - i32.add - local.set $9 - br $while-continue|0 - end - end - local.get $0 - local.get $8 - call $~lib/set/Set#set:buckets - local.get $0 - local.get $1 - i32.store offset=4 - local.get $0 - local.get $3 - call $~lib/set/Set#set:entries - local.get $0 - local.get $7 - 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.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/array/Array#__get (param $0 i32) (param $1 i32) (result i64) - local.get $1 - local.get $0 - i32.load offset=12 - i32.ge_u - if - i32.const 1248 - i32.const 1616 - i32.const 92 - i32.const 42 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load offset=4 - local.get $1 - i32.const 3 - i32.shl - i32.add - i64.load - ) - (func $~lib/set/Set#find (param $0 i32) (param $1 f32) (param $2 i32) (result i32) - local.get $0 - i32.load - 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 - f32.load - f32.eq - end - if - 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 - ) - (func $~lib/set/Set#rehash (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) - (local $9 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 - 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 3 - i32.shl - call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $3 - i32.store offset=4 - local.get $0 - i32.load offset=8 - local.tee $9 - local.get $0 - i32.load offset=16 - i32.const 3 - i32.shl - i32.add - local.set $6 - local.get $3 - local.set $2 - loop $while-continue|0 - local.get $6 - local.get $9 - i32.ne - if - local.get $9 - i32.load offset=4 - i32.const 1 - i32.and - i32.eqz - if - local.get $2 - local.get $9 - f32.load - local.tee $5 - f32.store - local.get $2 - local.get $8 - local.get $5 - i32.reinterpret_f32 - call $~lib/util/hash/hash32 - local.get $1 - i32.and - i32.const 2 - i32.shl - i32.add - local.tee $4 - i32.load - i32.store offset=4 - local.get $4 - local.get $2 - i32.store - local.get $2 - i32.const 8 - i32.add - local.set $2 - end - local.get $9 - i32.const 8 - i32.add - local.set $9 - br $while-continue|0 - end - end - local.get $0 - local.get $8 - call $~lib/set/Set#set:buckets - local.get $0 - local.get $1 - i32.store offset=4 - local.get $0 - local.get $3 - call $~lib/set/Set#set:entries - local.get $0 - local.get $7 - 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.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/array/Array#__get (param $0 i32) (param $1 i32) (result f32) - local.get $1 - local.get $0 - i32.load offset=12 - i32.ge_u - if - i32.const 1248 - i32.const 1616 - i32.const 92 - i32.const 42 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load offset=4 - local.get $1 - i32.const 2 - i32.shl - i32.add - f32.load - ) - (func $~lib/set/Set#find (param $0 i32) (param $1 f64) (param $2 i32) (result i32) - local.get $0 - i32.load - 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 - f64.load - f64.eq - end - if - 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 - ) - (func $~lib/set/Set#rehash (param $0 i32) (param $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 f64) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - 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 - local.get $0 - i32.load offset=8 - local.tee $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 - i32.ne - if - local.get $9 - i32.load offset=8 - i32.const 1 - i32.and - i32.eqz - if - local.get $2 - local.get $9 - f64.load - local.tee $5 - f64.store - local.get $2 - local.get $8 - local.get $5 - i64.reinterpret_f64 - call $~lib/util/hash/hash64 - local.get $1 - 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 16 - i32.add - local.set $2 - end - local.get $9 - i32.const 16 - i32.add - local.set $9 - br $while-continue|0 - end - end - local.get $0 - local.get $8 - call $~lib/set/Set#set:buckets - local.get $0 - local.get $1 - i32.store offset=4 - local.get $0 - local.get $3 - call $~lib/set/Set#set:entries - local.get $0 - local.get $7 - 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.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/array/Array#__get (param $0 i32) (param $1 i32) (result f64) - local.get $1 - local.get $0 - i32.load offset=12 - i32.ge_u - if - i32.const 1248 - i32.const 1616 - i32.const 92 - i32.const 42 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load offset=4 - local.get $1 - i32.const 3 - i32.shl - i32.add - f64.load - ) - (func $~lib/rt/__visit_members (param $0 i32) - block $folding-inner1 - block $folding-inner0 - block $invalid - block $~lib/arraybuffer/ArrayBufferView - block $~lib/string/String - block $~lib/arraybuffer/ArrayBuffer - local.get $0 - i32.const 8 - i32.sub - i32.load - br_table $~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 - local.get $0 - i32.load - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end - return - end - unreachable - end - local.get $0 - i32.load - call $~lib/rt/itcms/__visit - local.get $0 - i32.load offset=8 - call $~lib/rt/itcms/__visit - return - end - local.get $0 - i32.load - call $~lib/rt/itcms/__visit - ) - (func $~start - i32.const 1168 - call $~lib/rt/itcms/initLazy - global.set $~lib/rt/itcms/pinSpace - i32.const 1200 - call $~lib/rt/itcms/initLazy - global.set $~lib/rt/itcms/toSpace - i32.const 1344 - call $~lib/rt/itcms/initLazy - 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 - 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 $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 1836 - i32.lt_s - if - i32.const 18240 - i32.const 18288 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - ) - (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 - call $~stack_check - global.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 24 - i32.shl - i32.const 24 - i32.shr_s - i32.const -2128831035 - i32.xor - i32.const 16777619 - i32.mul - 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#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.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 - local.get $0 - i32.store - local.get $1 - i32.const 24 - i32.shl - i32.const 24 - i32.shr_s - i32.const -2128831035 - i32.xor - i32.const 16777619 - i32.mul - local.tee $2 - local.set $3 - local.get $0 - local.get $1 - local.get $2 - call $~lib/set/Set#find - i32.eqz - if - local.get $0 - i32.load offset=16 - local.get $0 - i32.load offset=12 - i32.eq - if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - local.get $0 - i32.load offset=20 - 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 $0 - i32.load offset=4 - else - local.get $0 - i32.load offset=4 - i32.const 1 - i32.shl - i32.const 1 - i32.or - end - call $~lib/set/Set#rehash - end - local.get $0 - i32.load offset=8 - 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 - local.get $0 - local.get $0 - i32.load offset=20 - i32.const 1 - i32.add - i32.store offset=20 - local.get $2 - local.get $0 - i32.load - 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 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 - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 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 108 - 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/ensureSize - 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/set/Set#values (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 - call $~stack_check - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - local.get $0 - i32.load offset=8 - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.load offset=16 - local.set $0 - 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 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.const 4 - call $~lib/rt/itcms/__new - local.tee $2 - i32.store - local.get $2 - i32.const 0 - call $~lib/set/Set#set:buckets - local.get $2 - i32.const 0 - i32.store offset=4 - local.get $2 - i32.const 0 - i32.store offset=8 - local.get $2 - i32.const 0 - i32.store offset=12 - local.get $0 - i32.const 1073741820 - i32.gt_u - if - i32.const 1456 - i32.const 1616 - i32.const 58 - i32.const 60 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.const 0 - call $~lib/rt/itcms/__new - local.tee $3 - i32.store offset=4 - local.get $3 - local.get $0 - call $~lib/memory/memory.fill - local.get $2 - local.get $3 - call $~lib/set/Set#set:buckets - local.get $2 - local.get $3 - i32.store offset=4 - local.get $2 - local.get $0 - i32.store offset=8 - local.get $2 - local.get $0 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $2 - i32.store - loop $for-loop|0 - local.get $0 - local.get $4 - i32.gt_s - if - local.get $5 - local.get $4 - i32.const 3 - i32.shl - i32.add - local.tee $3 - i32.load offset=4 - i32.const 1 - i32.and - i32.eqz - if - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - local.get $1 - local.get $3 - i32.load8_s - call $~lib/array/Array#__set - local.get $1 - i32.const 1 - i32.add - local.set $1 - end - local.get $4 - i32.const 1 - i32.add - local.set $4 - br $for-loop|0 - end - end - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - 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 $2 - ) - (func $~lib/set/Set#delete (param $0 i32) (param $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 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - local.get $1 - local.get $1 - i32.const 24 - i32.shl - i32.const 24 - i32.shr_s - i32.const -2128831035 - i32.xor - i32.const 16777619 - i32.mul - call $~lib/set/Set#find - local.tee $1 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 4 - 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 - local.get $0 - local.get $0 - i32.load offset=20 - i32.const 1 - i32.sub - i32.store offset=20 - local.get $0 - i32.load offset=4 - i32.const 1 - i32.shr_u - local.tee $2 - i32.const 1 - i32.add - i32.const 4 - local.get $0 - i32.load offset=20 - local.tee $1 - local.get $1 - i32.const 4 - i32.lt_u - select - i32.ge_u - if (result i32) - local.get $0 - i32.load offset=20 - 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 4 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $std/set/testNumeric - (local $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 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 - 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 0 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - call $~lib/set/Set#constructor - local.tee $0 i32.store loop $for-loop|1 - local.get $2 + local.get $1 i32.const 24 i32.shl i32.const 24 @@ -4512,11 +2542,8 @@ i32.const 100 i32.lt_s if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 local.get $2 + local.get $1 call $~lib/set/Set#has if i32.const 0 @@ -4526,17 +2553,11 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 local.get $2 + 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 $2 + local.get $1 call $~lib/set/Set#has i32.eqz if @@ -4547,17 +2568,14 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $1 i32.const 1 i32.add - local.set $2 + local.set $1 br $for-loop|1 end end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 + local.get $2 i32.load offset=20 i32.const 100 i32.ne @@ -4570,9 +2588,9 @@ unreachable end i32.const 50 - local.set $2 + local.set $1 loop $for-loop|3 - local.get $2 + local.get $1 i32.const 24 i32.shl i32.const 24 @@ -4580,11 +2598,8 @@ i32.const 100 i32.lt_s if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 local.get $2 + local.get $1 call $~lib/set/Set#has i32.eqz if @@ -4595,17 +2610,11 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 local.get $2 + 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 $2 + local.get $1 call $~lib/set/Set#has i32.eqz if @@ -4616,17 +2625,14 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $1 i32.const 1 i32.add - local.set $2 + local.set $1 br $for-loop|3 end end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 + local.get $2 i32.load offset=20 i32.const 100 i32.ne @@ -4639,35 +2645,141 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $0 + 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 $2 + i32.load offset=8 + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.load offset=16 + local.tee $10 + local.set $4 + 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 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.const 4 + call $~lib/rt/itcms/__new + local.tee $1 + i32.store + local.get $1 + i32.const 0 + call $~lib/set/Set#set:buckets + 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 0 + i32.store offset=12 + local.get $4 + i32.const 1073741820 + i32.gt_u + if + i32.const 1456 + i32.const 1616 + i32.const 58 + i32.const 60 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.const 0 + call $~lib/rt/itcms/__new + local.tee $5 + i32.store offset=4 + local.get $5 + local.get $4 + call $~lib/memory/memory.fill + local.get $1 + local.get $5 + call $~lib/set/Set#set:buckets + local.get $1 + local.get $5 i32.store offset=4 + local.get $1 + local.get $4 + i32.store offset=8 + local.get $1 + local.get $4 + i32.store offset=12 global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + i32.store + loop $for-loop|0 + local.get $6 + local.get $10 + i32.lt_s + if + local.get $8 + local.get $6 + i32.const 3 + i32.shl + i32.add + local.tee $4 + i32.load offset=4 + i32.const 1 + i32.and + i32.eqz + if + local.get $1 + local.get $0 + local.get $4 + i32.load8_s + call $~lib/array/Array#__set + local.get $0 + i32.const 1 + i32.add + local.set $0 + end + local.get $6 + i32.const 1 + i32.add + local.set $6 + br $for-loop|0 + end + end + local.get $1 local.get $0 - call $~lib/set/Set#values - local.tee $2 - i32.store offset=8 + call $~lib/array/Array#set:length + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 global.get $~lib/memory/__stack_pointer call $~lib/set/Set#constructor - local.tee $3 - i32.store offset=12 + local.tee $4 + i32.store offset=8 loop $for-loop|4 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 + local.get $3 local.get $1 - local.get $2 i32.load offset=12 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 $2 - i32.store offset=16 - local.get $0 local.get $2 local.get $1 + local.get $3 call $~lib/array/Array#__get call $~lib/set/Set#has i32.eqz @@ -4679,33 +2791,21 @@ 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 $2 - i32.store offset=16 - local.get $3 - local.get $2 + local.get $4 local.get $1 + local.get $3 call $~lib/array/Array#__get call $~lib/set/Set#add - local.get $1 + local.get $3 i32.const 1 i32.add - local.set $1 + local.set $3 br $for-loop|4 end end - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 + local.get $4 i32.load offset=20 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 + local.get $2 i32.load offset=20 i32.ne if @@ -4717,9 +2817,9 @@ unreachable end i32.const 0 - local.set $1 + local.set $3 loop $for-loop|6 - local.get $1 + local.get $3 i32.const 24 i32.shl i32.const 24 @@ -4727,11 +2827,8 @@ i32.const 50 i32.lt_s if - 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 call $~lib/set/Set#has i32.eqz if @@ -4741,18 +2838,12 @@ 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 + end + local.get $2 + local.get $3 call $~lib/set/Set#delete - 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 call $~lib/set/Set#has if i32.const 0 @@ -4762,17 +2853,14 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $3 i32.const 1 i32.add - local.set $1 + local.set $3 br $for-loop|6 end end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 + local.get $2 i32.load offset=20 i32.const 50 i32.ne @@ -4785,9 +2873,9 @@ unreachable end i32.const 0 - local.set $1 + local.set $3 loop $for-loop|8 - local.get $1 + local.get $3 i32.const 24 i32.shl i32.const 24 @@ -4795,11 +2883,8 @@ i32.const 50 i32.lt_s if - 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 call $~lib/set/Set#has if i32.const 0 @@ -4809,17 +2894,11 @@ 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 $2 + local.get $3 call $~lib/set/Set#add - 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 call $~lib/set/Set#has i32.eqz if @@ -4830,17 +2909,11 @@ 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 $2 + local.get $3 call $~lib/set/Set#delete - 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 call $~lib/set/Set#has if i32.const 0 @@ -4850,17 +2923,14 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $3 i32.const 1 i32.add - local.set $1 + local.set $3 br $for-loop|8 end end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 + local.get $2 i32.load offset=20 i32.const 50 i32.ne @@ -4872,15 +2942,9 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 + local.get $2 call $~lib/set/Set#clear - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 + local.get $2 i32.load offset=20 if i32.const 0 @@ -4891,22 +2955,11 @@ unreachable end global.get $~lib/memory/__stack_pointer - i32.const 20 + i32.const 12 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 - call $~stack_check - global.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 @@ -4919,26 +2972,127 @@ 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#add (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) 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 + 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 3 + i32.shl + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $3 + i32.store offset=4 local.get $0 - i32.store + i32.load offset=8 + local.tee $8 + local.get $0 + i32.load offset=16 + i32.const 3 + i32.shl + i32.add + local.set $4 + local.get $3 + local.set $2 + loop $while-continue|0 + local.get $4 + local.get $8 + i32.ne + if + local.get $8 + i32.load offset=4 + i32.const 1 + i32.and + i32.eqz + if + local.get $2 + local.get $8 + i32.load8_u + local.tee $7 + i32.store8 + local.get $2 + local.get $6 + local.get $1 + local.get $7 + i32.const -2128831035 + i32.xor + i32.const 16777619 + i32.mul + i32.and + i32.const 2 + i32.shl + i32.add + local.tee $7 + i32.load + i32.store offset=4 + local.get $7 + local.get $2 + i32.store + local.get $2 + i32.const 8 + i32.add + local.set $2 + end + local.get $8 + i32.const 8 + i32.add + local.set $8 + br $while-continue|0 + end + end + local.get $0 + local.get $6 + call $~lib/set/Set#set:buckets + local.get $0 + local.get $1 + i32.store offset=4 + local.get $0 + local.get $3 + call $~lib/set/Set#set:entries + local.get $0 + local.get $5 + 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.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) local.get $1 i32.const 255 i32.and @@ -4960,9 +3114,6 @@ i32.load offset=12 i32.eq if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store local.get $0 local.get $0 i32.load offset=20 @@ -5025,158 +3176,28 @@ local.get $2 i32.store end - global.get $~lib/memory/__stack_pointer - i32.const 4 - 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 i32) - (local $5 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 $0 - i32.load offset=8 - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.load offset=16 - local.set $0 - 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 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.const 6 - call $~lib/rt/itcms/__new - local.tee $2 - i32.store - local.get $2 - i32.const 0 - call $~lib/set/Set#set:buckets - local.get $2 - i32.const 0 - i32.store offset=4 - local.get $2 - i32.const 0 - i32.store offset=8 - local.get $2 - i32.const 0 - i32.store offset=12 - local.get $0 - i32.const 1073741820 - i32.gt_u + (func $~lib/array/Array#__get (param $0 i32) (param $1 i32) (result i32) + local.get $1 + local.get $0 + i32.load offset=12 + i32.ge_u if - i32.const 1456 + i32.const 1248 i32.const 1616 - i32.const 58 - i32.const 60 + i32.const 92 + i32.const 42 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.const 0 - call $~lib/rt/itcms/__new - local.tee $3 - i32.store offset=4 - local.get $3 local.get $0 - call $~lib/memory/memory.fill - local.get $2 - local.get $3 - call $~lib/set/Set#set:buckets - local.get $2 - local.get $3 - i32.store offset=4 - local.get $2 - local.get $0 - i32.store offset=8 - local.get $2 - local.get $0 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $2 - i32.store - loop $for-loop|0 - local.get $0 - local.get $4 - i32.gt_s - if - local.get $5 - local.get $4 - i32.const 3 - i32.shl - i32.add - local.tee $3 - i32.load offset=4 - i32.const 1 - i32.and - i32.eqz - if - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - local.get $1 - local.get $3 - i32.load8_u - call $~lib/array/Array#__set - local.get $1 - i32.const 1 - i32.add - local.set $1 - end - local.get $4 - i32.const 1 - i32.add - local.set $4 - br $for-loop|0 - end - end - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 + i32.load offset=4 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 $2 + i32.load8_u ) (func $~lib/set/Set#delete (param $0 i32) (param $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 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store local.get $0 local.get $1 local.get $1 @@ -5190,10 +3211,6 @@ local.tee $1 i32.eqz if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer return end local.get $1 @@ -5238,25 +3255,25 @@ 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 4 - 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) + (local $8 i32) + (local $9 i32) + (local $10 i32) global.get $~lib/memory/__stack_pointer - i32.const 20 + i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check @@ -5264,27 +3281,21 @@ 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 0 - i32.store offset=16 + i32.store offset=8 global.get $~lib/memory/__stack_pointer call $~lib/set/Set#constructor - local.tee $0 + local.tee $2 i32.store loop $for-loop|1 - local.get $2 + local.get $1 i32.const 255 i32.and i32.const 100 i32.lt_u if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 local.get $2 + local.get $1 call $~lib/set/Set#has if i32.const 0 @@ -5294,17 +3305,11 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 local.get $2 + 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 $2 + local.get $1 call $~lib/set/Set#has i32.eqz if @@ -5315,17 +3320,14 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $1 i32.const 1 i32.add - local.set $2 + local.set $1 br $for-loop|1 end end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 + local.get $2 i32.load offset=20 i32.const 100 i32.ne @@ -5338,102 +3340,196 @@ unreachable end i32.const 50 - local.set $2 + local.set $1 loop $for-loop|3 - local.get $2 + local.get $1 i32.const 255 i32.and i32.const 100 i32.lt_u if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - 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 $0 - i32.store offset=4 - local.get $0 - local.get $2 - call $~lib/set/Set#add - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - local.get $2 - call $~lib/set/Set#has + local.get $2 + 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 + local.get $2 + local.get $1 + call $~lib/set/Set#add + local.get $2 + 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 + i32.const 1 + i32.add + local.set $1 + br $for-loop|3 + end + end + local.get $2 + i32.load offset=20 + 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 + 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 $2 + i32.load offset=8 + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.load offset=16 + local.tee $10 + local.set $4 + 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 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.const 6 + call $~lib/rt/itcms/__new + local.tee $1 + i32.store + local.get $1 + i32.const 0 + call $~lib/set/Set#set:buckets + 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 0 + i32.store offset=12 + local.get $4 + i32.const 1073741820 + i32.gt_u + if + i32.const 1456 + i32.const 1616 + i32.const 58 + i32.const 60 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.const 0 + call $~lib/rt/itcms/__new + local.tee $5 + i32.store offset=4 + local.get $5 + local.get $4 + call $~lib/memory/memory.fill + local.get $1 + local.get $5 + call $~lib/set/Set#set:buckets + local.get $1 + local.get $5 + i32.store offset=4 + local.get $1 + local.get $4 + i32.store offset=8 + local.get $1 + local.get $4 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + i32.store + loop $for-loop|0 + local.get $6 + local.get $10 + i32.lt_s + if + local.get $8 + local.get $6 + i32.const 3 + i32.shl + i32.add + local.tee $4 + i32.load offset=4 + i32.const 1 + i32.and i32.eqz if - i32.const 0 - i32.const 1568 - i32.const 16 - i32.const 5 - call $~lib/builtins/abort - unreachable + local.get $1 + local.get $0 + local.get $4 + i32.load8_u + call $~lib/array/Array#__set + local.get $0 + i32.const 1 + i32.add + local.set $0 end - local.get $2 + local.get $6 i32.const 1 i32.add - local.set $2 - br $for-loop|3 + local.set $6 + br $for-loop|0 end end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 + local.get $1 local.get $0 - i32.load offset=20 - i32.const 100 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 18 - i32.const 3 - call $~lib/builtins/abort - unreachable - end + call $~lib/array/Array#set:length global.get $~lib/memory/__stack_pointer - local.get $0 + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $0 - call $~lib/set/Set#values - local.tee $2 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer call $~lib/set/Set#constructor - local.tee $3 - i32.store offset=12 + local.tee $4 + i32.store offset=8 loop $for-loop|4 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 + local.get $3 local.get $1 - local.get $2 i32.load offset=12 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 $2 - i32.store offset=16 - local.get $0 local.get $2 local.get $1 + local.get $3 call $~lib/array/Array#__get call $~lib/set/Set#has i32.eqz @@ -5445,33 +3541,21 @@ 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 $2 - i32.store offset=16 - local.get $3 - local.get $2 + local.get $4 local.get $1 + local.get $3 call $~lib/array/Array#__get call $~lib/set/Set#add - local.get $1 + local.get $3 i32.const 1 i32.add - local.set $1 + local.set $3 br $for-loop|4 end end - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 + local.get $4 i32.load offset=20 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 + local.get $2 i32.load offset=20 i32.ne if @@ -5483,19 +3567,16 @@ unreachable end i32.const 0 - local.set $1 + local.set $3 loop $for-loop|6 - local.get $1 + local.get $3 i32.const 255 i32.and i32.const 50 i32.lt_u if - 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 call $~lib/set/Set#has i32.eqz if @@ -5506,17 +3587,11 @@ 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 $2 + local.get $3 call $~lib/set/Set#delete - 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 call $~lib/set/Set#has if i32.const 0 @@ -5526,17 +3601,14 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $3 i32.const 1 i32.add - local.set $1 + local.set $3 br $for-loop|6 end end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 + local.get $2 i32.load offset=20 i32.const 50 i32.ne @@ -5549,19 +3621,16 @@ unreachable end i32.const 0 - local.set $1 + local.set $3 loop $for-loop|8 - local.get $1 + local.get $3 i32.const 255 i32.and i32.const 50 i32.lt_u if - 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 call $~lib/set/Set#has if i32.const 0 @@ -5571,17 +3640,11 @@ 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 $2 + local.get $3 call $~lib/set/Set#add - 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 call $~lib/set/Set#has i32.eqz if @@ -5592,17 +3655,11 @@ 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 $2 + local.get $3 call $~lib/set/Set#delete - 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 call $~lib/set/Set#has if i32.const 0 @@ -5612,17 +3669,14 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $3 i32.const 1 i32.add - local.set $1 + local.set $3 br $for-loop|8 end end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 + local.get $2 i32.load offset=20 i32.const 50 i32.ne @@ -5634,15 +3688,9 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 + local.get $2 call $~lib/set/Set#clear - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 + local.get $2 i32.load offset=20 if i32.const 0 @@ -5652,23 +3700,70 @@ 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 12 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/util/hash/hash16 (param $0 i32) (result i32) + local.get $0 + i32.const 255 + i32.and + i32.const -2128831035 + i32.xor + i32.const 16777619 + i32.mul + local.get $0 + i32.const 8 + i32.shr_u + i32.xor + i32.const 16777619 + i32.mul + ) + (func $~lib/set/Set#find (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + local.get $0 + i32.load + 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 + 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 ) (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 - call $~stack_check - global.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 @@ -5680,36 +3775,133 @@ 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#add (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) 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 + global.get $~lib/memory/__stack_pointer local.get $1 - i32.const 16 + i32.const 1 + i32.add + local.tee $2 + i32.const 2 i32.shl - i32.const 16 - i32.shr_s - call $~lib/util/hash/hash16 - local.set $3 + 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 3 + i32.shl + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $3 + i32.store offset=4 local.get $0 - i32.store + i32.load offset=8 + local.tee $8 + local.get $0 + i32.load offset=16 + i32.const 3 + i32.shl + i32.add + local.set $4 + local.get $3 + local.set $2 + loop $while-continue|0 + local.get $4 + local.get $8 + i32.ne + if + local.get $8 + i32.load offset=4 + i32.const 1 + i32.and + i32.eqz + if + local.get $2 + local.get $8 + i32.load16_s + local.tee $7 + i32.store16 + local.get $2 + local.get $6 + local.get $7 + call $~lib/util/hash/hash16 + local.get $1 + i32.and + i32.const 2 + i32.shl + i32.add + local.tee $7 + i32.load + i32.store offset=4 + local.get $7 + local.get $2 + i32.store + local.get $2 + i32.const 8 + i32.add + local.set $2 + end + local.get $8 + i32.const 8 + i32.add + local.set $8 + br $while-continue|0 + end + end + local.get $0 + local.get $6 + call $~lib/set/Set#set:buckets local.get $0 local.get $1 + i32.store offset=4 + local.get $0 local.get $3 + call $~lib/set/Set#set:entries + local.get $0 + local.get $5 + 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.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) + local.get $0 + local.get $1 + local.get $1 + i32.const 16 + i32.shl + i32.const 16 + i32.shr_s + call $~lib/util/hash/hash16 + local.tee $3 call $~lib/set/Set#find i32.eqz if @@ -5719,9 +3911,6 @@ i32.load offset=12 i32.eq if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store local.get $0 local.get $0 i32.load offset=20 @@ -5784,21 +3973,9 @@ local.get $2 i32.store 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 - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store local.get $1 local.get $0 i32.load offset=12 @@ -5826,9 +4003,6 @@ 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 @@ -5837,164 +4011,39 @@ 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/set/Set#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 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 $0 - i32.load offset=8 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.load offset=16 - local.tee $8 - local.set $2 - 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 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.const 8 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - local.get $0 - i32.const 0 - call $~lib/set/Set#set:buckets - local.get $0 - i32.const 0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=8 + (func $~lib/array/Array#set:length (param $0 i32) (param $1 i32) local.get $0 - i32.const 0 - i32.store offset=12 - local.get $2 - i32.const 536870910 - i32.gt_u - if - i32.const 1456 - i32.const 1616 - i32.const 58 - i32.const 60 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.const 1 - i32.shl - local.tee $5 - i32.const 0 - call $~lib/rt/itcms/__new - local.tee $3 - i32.store offset=4 - local.get $3 - local.get $5 - call $~lib/memory/memory.fill - local.get $0 - local.get $3 - call $~lib/set/Set#set:buckets - local.get $0 - local.get $3 - i32.store offset=4 - local.get $0 - local.get $5 - i32.store offset=8 + call $~lib/array/ensureSize local.get $0 - local.get $2 + local.get $1 i32.store offset=12 - 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) + local.get $1 local.get $0 - i32.store - loop $for-loop|0 - local.get $4 - local.get $8 - i32.lt_s - if - local.get $6 - local.get $4 - i32.const 3 - i32.shl - i32.add - local.tee $2 - i32.load offset=4 - i32.const 1 - i32.and - i32.eqz - if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - local.get $1 - local.get $2 - i32.load16_s - call $~lib/array/Array#__set - local.get $1 - i32.const 1 - i32.add - local.set $1 - end - local.get $4 - i32.const 1 - i32.add - local.set $4 - br $for-loop|0 - end + i32.load offset=12 + i32.ge_u + if + i32.const 1248 + i32.const 1616 + i32.const 92 + i32.const 42 + 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 local.get $1 - call $~lib/array/Array#set:length - global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 1 + i32.shl i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 + i32.load16_s ) (func $~lib/set/Set#delete (param $0 i32) (param $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 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store local.get $0 local.get $1 local.get $1 @@ -6007,10 +4056,6 @@ local.tee $1 i32.eqz if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer return end local.get $1 @@ -6055,25 +4100,26 @@ 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 4 - 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) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) global.get $~lib/memory/__stack_pointer - i32.const 20 + i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check @@ -6081,17 +4127,14 @@ 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 0 - i32.store offset=16 + i32.store offset=8 global.get $~lib/memory/__stack_pointer call $~lib/set/Set#constructor - local.tee $0 + local.tee $2 i32.store loop $for-loop|1 - local.get $2 + local.get $1 i32.const 16 i32.shl i32.const 16 @@ -6099,11 +4142,8 @@ i32.const 100 i32.lt_s if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 local.get $2 + local.get $1 call $~lib/set/Set#has if i32.const 0 @@ -6113,17 +4153,11 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 local.get $2 + 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 $2 + local.get $1 call $~lib/set/Set#has i32.eqz if @@ -6134,17 +4168,14 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $1 i32.const 1 i32.add - local.set $2 + local.set $1 br $for-loop|1 end end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 + local.get $2 i32.load offset=20 i32.const 100 i32.ne @@ -6157,9 +4188,9 @@ unreachable end i32.const 50 - local.set $2 + local.set $1 loop $for-loop|3 - local.get $2 + local.get $1 i32.const 16 i32.shl i32.const 16 @@ -6167,11 +4198,8 @@ i32.const 100 i32.lt_s if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 local.get $2 + local.get $1 call $~lib/set/Set#has i32.eqz if @@ -6182,79 +4210,179 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 local.get $2 + 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 $2 + 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 + i32.const 0 + i32.const 1568 + i32.const 16 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|3 + end + end + local.get $2 + i32.load offset=20 + 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 + 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 $2 + i32.load offset=8 + local.set $10 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.load offset=16 + local.tee $6 + local.set $7 + 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 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.const 8 + call $~lib/rt/itcms/__new + local.tee $1 + i32.store + local.get $1 + i32.const 0 + call $~lib/set/Set#set:buckets + 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 0 + i32.store offset=12 + local.get $6 + i32.const 536870910 + i32.gt_u + if + i32.const 1456 + i32.const 1616 + i32.const 58 + i32.const 60 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.const 1 + i32.shl + local.tee $8 + i32.const 0 + call $~lib/rt/itcms/__new + local.tee $4 + i32.store offset=4 + local.get $4 + local.get $8 + call $~lib/memory/memory.fill + local.get $1 + local.get $4 + call $~lib/set/Set#set:buckets + local.get $1 + local.get $4 + i32.store offset=4 + local.get $1 + local.get $8 + i32.store offset=8 + local.get $1 + local.get $7 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + i32.store + loop $for-loop|0 + local.get $5 + local.get $6 + i32.lt_s + if + local.get $10 + local.get $5 + i32.const 3 + i32.shl + i32.add + local.tee $4 + i32.load offset=4 + i32.const 1 + i32.and + i32.eqz + if + local.get $1 + local.get $0 + local.get $4 + i32.load16_s + call $~lib/array/Array#__set + local.get $0 + i32.const 1 + i32.add + local.set $0 end - local.get $2 + local.get $5 i32.const 1 i32.add - local.set $2 - br $for-loop|3 + local.set $5 + br $for-loop|0 end end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 + local.get $1 local.get $0 - i32.load offset=20 - i32.const 100 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 18 - i32.const 3 - call $~lib/builtins/abort - unreachable - end + call $~lib/array/Array#set:length global.get $~lib/memory/__stack_pointer - local.get $0 + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $0 - call $~lib/set/Set#values - local.tee $2 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer call $~lib/set/Set#constructor - local.tee $3 - i32.store offset=12 + local.tee $4 + i32.store offset=8 loop $for-loop|4 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 + local.get $3 local.get $1 - local.get $2 i32.load offset=12 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 $2 - i32.store offset=16 - local.get $0 local.get $2 local.get $1 + local.get $3 call $~lib/array/Array#__get call $~lib/set/Set#has i32.eqz @@ -6266,33 +4394,21 @@ 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 $2 - i32.store offset=16 - local.get $3 - local.get $2 + local.get $4 local.get $1 + local.get $3 call $~lib/array/Array#__get call $~lib/set/Set#add - local.get $1 + local.get $3 i32.const 1 i32.add - local.set $1 + local.set $3 br $for-loop|4 end end - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 + local.get $4 i32.load offset=20 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 + local.get $2 i32.load offset=20 i32.ne if @@ -6304,9 +4420,9 @@ unreachable end i32.const 0 - local.set $1 + local.set $3 loop $for-loop|6 - local.get $1 + local.get $3 i32.const 16 i32.shl i32.const 16 @@ -6314,11 +4430,8 @@ i32.const 50 i32.lt_s if - 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 call $~lib/set/Set#has i32.eqz if @@ -6329,17 +4442,11 @@ 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 $2 + local.get $3 call $~lib/set/Set#delete - 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 call $~lib/set/Set#has if i32.const 0 @@ -6349,17 +4456,14 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $3 i32.const 1 i32.add - local.set $1 + local.set $3 br $for-loop|6 end end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 + local.get $2 i32.load offset=20 i32.const 50 i32.ne @@ -6372,9 +4476,9 @@ unreachable end i32.const 0 - local.set $1 + local.set $3 loop $for-loop|8 - local.get $1 + local.get $3 i32.const 16 i32.shl i32.const 16 @@ -6382,11 +4486,8 @@ i32.const 50 i32.lt_s if - 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 call $~lib/set/Set#has if i32.const 0 @@ -6396,17 +4497,11 @@ 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 $2 + local.get $3 call $~lib/set/Set#add - 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 call $~lib/set/Set#has i32.eqz if @@ -6417,94 +4512,177 @@ 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 $2 + local.get $3 call $~lib/set/Set#delete - 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 call $~lib/set/Set#has if - i32.const 0 - i32.const 1568 - i32.const 43 - i32.const 5 - call $~lib/builtins/abort - unreachable + i32.const 0 + i32.const 1568 + i32.const 43 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $for-loop|8 + end + end + local.get $2 + i32.load offset=20 + i32.const 50 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 45 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + call $~lib/set/Set#clear + local.get $2 + i32.load offset=20 + 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 12 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/set/Set#has (param $0 i32) (param $1 i32) (result i32) + local.get $0 + local.get $1 + local.get $1 + i32.const 65535 + i32.and + call $~lib/util/hash/hash16 + call $~lib/set/Set#find + i32.const 0 + i32.ne + ) + (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 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 + 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 3 + i32.shl + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $3 + i32.store offset=4 + local.get $0 + i32.load offset=8 + local.tee $8 + local.get $0 + i32.load offset=16 + i32.const 3 + i32.shl + i32.add + local.set $4 + local.get $3 + local.set $2 + loop $while-continue|0 + local.get $4 + local.get $8 + i32.ne + if + local.get $8 + i32.load offset=4 + i32.const 1 + i32.and + i32.eqz + if + local.get $2 + local.get $8 + i32.load16_u + local.tee $7 + i32.store16 + local.get $2 + local.get $6 + local.get $7 + call $~lib/util/hash/hash16 + local.get $1 + i32.and + i32.const 2 + i32.shl + i32.add + local.tee $7 + i32.load + i32.store offset=4 + local.get $7 + local.get $2 + i32.store + local.get $2 + i32.const 8 + i32.add + local.set $2 end - local.get $1 - i32.const 1 + local.get $8 + i32.const 8 i32.add - local.set $1 - br $for-loop|8 + local.set $8 + br $while-continue|0 end end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 local.get $0 - i32.load offset=20 - 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 $6 + call $~lib/set/Set#set:buckets local.get $0 + local.get $1 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 $3 + call $~lib/set/Set#set:entries local.get $0 - i32.load offset=20 - 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 - ) - (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 - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=12 local.get $0 - i32.store local.get $0 - local.get $1 - local.get $1 - i32.const 65535 - i32.and - call $~lib/util/hash/hash16 - call $~lib/set/Set#find - i32.const 0 - i32.ne + i32.load offset=20 + i32.store offset=16 global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer ) @@ -6512,25 +4690,13 @@ (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 - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store + local.get $0 + local.get $1 local.get $1 i32.const 65535 i32.and call $~lib/util/hash/hash16 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - local.get $1 - local.get $3 + local.tee $3 call $~lib/set/Set#find i32.eqz if @@ -6540,9 +4706,6 @@ i32.load offset=12 i32.eq if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store local.get $0 local.get $0 i32.load offset=20 @@ -6605,164 +4768,30 @@ local.get $2 i32.store end - global.get $~lib/memory/__stack_pointer - i32.const 4 - 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 i32) - (local $5 i32) - (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 - call $~stack_check - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - local.get $0 - i32.load offset=8 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.load offset=16 - local.tee $8 - local.set $2 - 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 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.const 10 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - local.get $0 - i32.const 0 - call $~lib/set/Set#set:buckets - local.get $0 - i32.const 0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=8 - local.get $0 - i32.const 0 - i32.store offset=12 - local.get $2 - i32.const 536870910 - i32.gt_u - if - i32.const 1456 - i32.const 1616 - i32.const 58 - i32.const 60 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.const 1 - i32.shl - local.tee $5 - i32.const 0 - call $~lib/rt/itcms/__new - local.tee $3 - i32.store offset=4 - local.get $3 - local.get $5 - call $~lib/memory/memory.fill - local.get $0 - local.get $3 - call $~lib/set/Set#set:buckets - local.get $0 - local.get $3 - i32.store offset=4 - local.get $0 - local.get $5 - i32.store offset=8 - local.get $0 - local.get $2 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - i32.store - loop $for-loop|0 - local.get $4 - local.get $8 - i32.lt_s - if - local.get $6 - local.get $4 - i32.const 3 - i32.shl - i32.add - local.tee $2 - i32.load offset=4 - i32.const 1 - i32.and - i32.eqz - if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - local.get $1 - local.get $2 - i32.load16_u - call $~lib/array/Array#__set - local.get $1 - i32.const 1 - i32.add - local.set $1 - end - local.get $4 - i32.const 1 - i32.add - local.set $4 - br $for-loop|0 - end - end - global.get $~lib/memory/__stack_pointer + (func $~lib/array/Array#__get (param $0 i32) (param $1 i32) (result i32) + local.get $1 local.get $0 - i32.store offset=4 + i32.load offset=12 + i32.ge_u + if + i32.const 1248 + i32.const 1616 + i32.const 92 + i32.const 42 + call $~lib/builtins/abort + unreachable + end local.get $0 + i32.load offset=4 local.get $1 - call $~lib/array/Array#set:length - global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 1 + i32.shl i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 + i32.load16_u ) (func $~lib/set/Set#delete (param $0 i32) (param $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 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store local.get $0 local.get $1 local.get $1 @@ -6773,10 +4802,6 @@ local.tee $1 i32.eqz if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer return end local.get $1 @@ -6821,25 +4846,26 @@ 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 4 - 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) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) global.get $~lib/memory/__stack_pointer - i32.const 20 + i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check @@ -6847,27 +4873,21 @@ 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 0 - i32.store offset=16 + i32.store offset=8 global.get $~lib/memory/__stack_pointer call $~lib/set/Set#constructor - local.tee $0 + local.tee $2 i32.store loop $for-loop|1 - local.get $2 + local.get $1 i32.const 65535 i32.and i32.const 100 i32.lt_u if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 local.get $2 + local.get $1 call $~lib/set/Set#has if i32.const 0 @@ -6877,17 +4897,11 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 local.get $2 + 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 $2 + local.get $1 call $~lib/set/Set#has i32.eqz if @@ -6898,17 +4912,14 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $1 i32.const 1 i32.add - local.set $2 + local.set $1 br $for-loop|1 end end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 + local.get $2 i32.load offset=20 i32.const 100 i32.ne @@ -6921,19 +4932,16 @@ unreachable end i32.const 50 - local.set $2 + local.set $1 loop $for-loop|3 - local.get $2 + local.get $1 i32.const 65535 i32.and i32.const 100 i32.lt_u if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 local.get $2 + local.get $1 call $~lib/set/Set#has i32.eqz if @@ -6944,17 +4952,11 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 local.get $2 + 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 $2 + local.get $1 call $~lib/set/Set#has i32.eqz if @@ -6965,17 +4967,14 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $1 i32.const 1 i32.add - local.set $2 + local.set $1 br $for-loop|3 end end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 + local.get $2 i32.load offset=20 i32.const 100 i32.ne @@ -6988,35 +4987,144 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $0 + 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 $2 + i32.load offset=8 + local.set $10 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.load offset=16 + local.tee $6 + local.set $7 + 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 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.const 10 + call $~lib/rt/itcms/__new + local.tee $1 + i32.store + local.get $1 + i32.const 0 + call $~lib/set/Set#set:buckets + 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 0 + i32.store offset=12 + local.get $6 + i32.const 536870910 + i32.gt_u + if + i32.const 1456 + i32.const 1616 + i32.const 58 + i32.const 60 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer - local.get $0 - call $~lib/set/Set#values - local.tee $2 + local.get $7 + i32.const 1 + i32.shl + local.tee $8 + i32.const 0 + call $~lib/rt/itcms/__new + local.tee $4 + i32.store offset=4 + local.get $4 + local.get $8 + call $~lib/memory/memory.fill + local.get $1 + local.get $4 + call $~lib/set/Set#set:buckets + local.get $1 + local.get $4 + i32.store offset=4 + local.get $1 + local.get $8 i32.store offset=8 + local.get $1 + local.get $7 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + i32.store + loop $for-loop|0 + local.get $5 + local.get $6 + i32.lt_s + if + local.get $10 + local.get $5 + i32.const 3 + i32.shl + i32.add + local.tee $4 + i32.load offset=4 + i32.const 1 + i32.and + i32.eqz + if + local.get $1 + local.get $0 + local.get $4 + i32.load16_u + call $~lib/array/Array#__set + local.get $0 + i32.const 1 + i32.add + local.set $0 + end + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|0 + end + end + local.get $1 + local.get $0 + call $~lib/array/Array#set:length + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 global.get $~lib/memory/__stack_pointer call $~lib/set/Set#constructor - local.tee $3 - i32.store offset=12 + local.tee $4 + i32.store offset=8 loop $for-loop|4 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 + local.get $3 local.get $1 - local.get $2 i32.load offset=12 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 $2 - i32.store offset=16 - local.get $0 local.get $2 local.get $1 + local.get $3 call $~lib/array/Array#__get call $~lib/set/Set#has i32.eqz @@ -7028,33 +5136,21 @@ 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 $2 - i32.store offset=16 - local.get $3 - local.get $2 + local.get $4 local.get $1 + local.get $3 call $~lib/array/Array#__get call $~lib/set/Set#add - local.get $1 + local.get $3 i32.const 1 i32.add - local.set $1 + local.set $3 br $for-loop|4 end end - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - i32.load offset=20 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 + local.get $4 + i32.load offset=20 + local.get $2 i32.load offset=20 i32.ne if @@ -7066,19 +5162,16 @@ unreachable end i32.const 0 - local.set $1 + local.set $3 loop $for-loop|6 - local.get $1 + local.get $3 i32.const 65535 i32.and i32.const 50 i32.lt_u if - 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 call $~lib/set/Set#has i32.eqz if @@ -7089,17 +5182,11 @@ 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 $2 + local.get $3 call $~lib/set/Set#delete - 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 call $~lib/set/Set#has if i32.const 0 @@ -7109,17 +5196,14 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $3 i32.const 1 i32.add - local.set $1 + local.set $3 br $for-loop|6 end end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 + local.get $2 i32.load offset=20 i32.const 50 i32.ne @@ -7132,19 +5216,16 @@ unreachable end i32.const 0 - local.set $1 + local.set $3 loop $for-loop|8 - local.get $1 + local.get $3 i32.const 65535 i32.and i32.const 50 i32.lt_u if - 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 call $~lib/set/Set#has if i32.const 0 @@ -7154,17 +5235,11 @@ 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 $2 + local.get $3 call $~lib/set/Set#add - 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 call $~lib/set/Set#has i32.eqz if @@ -7175,17 +5250,11 @@ 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 $2 + local.get $3 call $~lib/set/Set#delete - 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 call $~lib/set/Set#has if i32.const 0 @@ -7195,72 +5264,233 @@ call $~lib/builtins/abort unreachable end - local.get $1 - i32.const 1 + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $for-loop|8 + end + end + local.get $2 + i32.load offset=20 + i32.const 50 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 45 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + call $~lib/set/Set#clear + local.get $2 + i32.load offset=20 + 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 12 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/util/hash/hash32 (param $0 i32) (result i32) + local.get $0 + i32.const 255 + i32.and + i32.const -2128831035 + i32.xor + i32.const 16777619 + i32.mul + local.get $0 + i32.const 8 + i32.shr_u + i32.const 255 + i32.and + i32.xor + i32.const 16777619 + i32.mul + local.get $0 + i32.const 16 + i32.shr_u + i32.const 255 + i32.and + i32.xor + i32.const 16777619 + i32.mul + local.get $0 + i32.const 24 + i32.shr_u + i32.xor + i32.const 16777619 + i32.mul + ) + (func $~lib/set/Set#find (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + local.get $0 + i32.load + 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 + 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 + ) + (func $~lib/set/Set#has (param $0 i32) (param $1 i32) (result i32) + local.get $0 + local.get $1 + local.get $1 + call $~lib/util/hash/hash32 + call $~lib/set/Set#find + i32.const 0 + i32.ne + ) + (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 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 + 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 3 + i32.shl + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $3 + i32.store offset=4 + local.get $0 + i32.load offset=8 + local.tee $8 + local.get $0 + i32.load offset=16 + i32.const 3 + i32.shl + i32.add + local.set $4 + local.get $3 + local.set $2 + loop $while-continue|0 + local.get $4 + local.get $8 + i32.ne + if + local.get $8 + i32.load offset=4 + i32.const 1 + i32.and + i32.eqz + if + local.get $2 + local.get $8 + i32.load + local.tee $7 + i32.store + local.get $2 + local.get $6 + local.get $7 + call $~lib/util/hash/hash32 + local.get $1 + i32.and + i32.const 2 + i32.shl + i32.add + local.tee $7 + i32.load + i32.store offset=4 + local.get $7 + local.get $2 + i32.store + local.get $2 + i32.const 8 + i32.add + local.set $2 + end + local.get $8 + i32.const 8 i32.add - local.set $1 - br $for-loop|8 + local.set $8 + br $while-continue|0 end end - global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=4 - local.get $0 - i32.load offset=20 - 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 $6 + call $~lib/set/Set#set:buckets local.get $0 + local.get $1 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 $3 + call $~lib/set/Set#set:entries local.get $0 - i32.load offset=20 - 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 - ) - (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 - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=12 local.get $0 - i32.store local.get $0 - local.get $1 - local.get $1 - call $~lib/util/hash/hash32 - call $~lib/set/Set#find - i32.const 0 - i32.ne + i32.load offset=20 + i32.store offset=16 global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer ) @@ -7268,23 +5498,11 @@ (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 - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - local.get $1 - call $~lib/util/hash/hash32 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store local.get $0 local.get $1 - local.get $3 + local.get $1 + call $~lib/util/hash/hash32 + local.tee $3 call $~lib/set/Set#find i32.eqz if @@ -7294,9 +5512,6 @@ i32.load offset=12 i32.eq if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store local.get $0 local.get $0 i32.load offset=20 @@ -7359,21 +5574,9 @@ local.get $2 i32.store 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 - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store local.get $1 local.get $0 i32.load offset=12 @@ -7398,178 +5601,50 @@ i32.const 2 call $~lib/array/ensureSize 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/set/Set#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 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 $0 - i32.load offset=8 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.load offset=16 - local.tee $8 - local.set $2 - 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 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.const 12 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - local.get $0 - i32.const 0 - call $~lib/set/Set#set:buckets - local.get $0 - i32.const 0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=8 - local.get $0 - i32.const 0 - i32.store offset=12 - local.get $2 - i32.const 268435455 - i32.gt_u - if - i32.const 1456 - i32.const 1616 - i32.const 58 - i32.const 60 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.const 2 - i32.shl - local.tee $5 - i32.const 0 - call $~lib/rt/itcms/__new - local.tee $3 - i32.store offset=4 - local.get $3 - local.get $5 - call $~lib/memory/memory.fill - local.get $0 - local.get $3 - call $~lib/set/Set#set:buckets - local.get $0 - local.get $3 - i32.store offset=4 - local.get $0 - local.get $5 - i32.store offset=8 - local.get $0 - local.get $2 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - i32.store - loop $for-loop|0 - local.get $4 - local.get $8 - i32.lt_s - if - local.get $6 - local.get $4 - i32.const 3 - i32.shl - i32.add - local.tee $2 - i32.load offset=4 - i32.const 1 - i32.and - i32.eqz - if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - local.get $1 - local.get $2 - i32.load - call $~lib/array/Array#__set - local.get $1 - i32.const 1 - i32.add - local.set $1 - end - local.get $4 - i32.const 1 - i32.add - local.set $4 - br $for-loop|0 - end + local.get $3 + i32.store offset=12 end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 local.get $0 + i32.load offset=4 local.get $1 - call $~lib/array/Array#set:length - global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 2 + i32.shl i32.add - global.set $~lib/memory/__stack_pointer + local.get $2 + i32.store + ) + (func $~lib/array/Array#set:length (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.const 2 + call $~lib/array/ensureSize + local.get $0 + local.get $1 + i32.store offset=12 + ) + (func $~lib/array/Array#__get (param $0 i32) (param $1 i32) (result i32) + local.get $1 + local.get $0 + i32.load offset=12 + i32.ge_u + if + i32.const 1248 + i32.const 1616 + i32.const 92 + i32.const 42 + call $~lib/builtins/abort + unreachable + end local.get $0 + i32.load offset=4 + local.get $1 + i32.const 2 + i32.shl + i32.add + i32.load ) (func $~lib/set/Set#delete (param $0 i32) (param $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 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store local.get $0 local.get $1 local.get $1 @@ -7578,10 +5653,6 @@ local.tee $1 i32.eqz if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer return end local.get $1 @@ -7626,25 +5697,26 @@ 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 4 - 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) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) global.get $~lib/memory/__stack_pointer - i32.const 20 + i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check @@ -7652,25 +5724,19 @@ 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 0 - i32.store offset=16 + i32.store offset=8 global.get $~lib/memory/__stack_pointer call $~lib/set/Set#constructor - local.tee $0 + local.tee $2 i32.store loop $for-loop|0 - local.get $2 + local.get $1 i32.const 100 i32.lt_s if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 local.get $2 + local.get $1 call $~lib/set/Set#has if i32.const 0 @@ -7680,17 +5746,11 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 local.get $2 + 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 $2 + local.get $1 call $~lib/set/Set#has i32.eqz if @@ -7701,17 +5761,14 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $1 i32.const 1 i32.add - local.set $2 + local.set $1 br $for-loop|0 end end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 + local.get $2 i32.load offset=20 i32.const 100 i32.ne @@ -7724,17 +5781,14 @@ unreachable end i32.const 50 - local.set $2 + local.set $1 loop $for-loop|1 - local.get $2 + local.get $1 i32.const 100 i32.lt_s if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 local.get $2 + local.get $1 call $~lib/set/Set#has i32.eqz if @@ -7745,17 +5799,11 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 local.get $2 + 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 $2 + local.get $1 call $~lib/set/Set#has i32.eqz if @@ -7766,17 +5814,14 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $1 i32.const 1 i32.add - local.set $2 + local.set $1 br $for-loop|1 end end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 + local.get $2 i32.load offset=20 i32.const 100 i32.ne @@ -7789,35 +5834,144 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $0 + 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 $2 + i32.load offset=8 + local.set $10 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.load offset=16 + local.tee $6 + local.set $7 + 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 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.const 12 + call $~lib/rt/itcms/__new + local.tee $1 + i32.store + local.get $1 + i32.const 0 + call $~lib/set/Set#set:buckets + 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 0 + i32.store offset=12 + local.get $6 + i32.const 268435455 + i32.gt_u + if + i32.const 1456 + i32.const 1616 + i32.const 58 + i32.const 60 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer - local.get $0 - call $~lib/set/Set#values - local.tee $2 + local.get $7 + i32.const 2 + i32.shl + local.tee $8 + i32.const 0 + call $~lib/rt/itcms/__new + local.tee $4 + i32.store offset=4 + local.get $4 + local.get $8 + call $~lib/memory/memory.fill + local.get $1 + local.get $4 + call $~lib/set/Set#set:buckets + local.get $1 + local.get $4 + i32.store offset=4 + local.get $1 + local.get $8 i32.store offset=8 + local.get $1 + local.get $7 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + i32.store + loop $for-loop|01 + local.get $5 + local.get $6 + i32.lt_s + if + local.get $10 + local.get $5 + i32.const 3 + i32.shl + i32.add + local.tee $4 + i32.load offset=4 + i32.const 1 + i32.and + i32.eqz + if + local.get $1 + local.get $0 + local.get $4 + i32.load + call $~lib/array/Array#__set + local.get $0 + i32.const 1 + i32.add + local.set $0 + end + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|01 + end + end + local.get $1 + local.get $0 + call $~lib/array/Array#set:length + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 global.get $~lib/memory/__stack_pointer call $~lib/set/Set#constructor - local.tee $3 - i32.store offset=12 + local.tee $4 + i32.store offset=8 loop $for-loop|2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 + local.get $3 local.get $1 - local.get $2 i32.load offset=12 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 $2 - i32.store offset=16 - local.get $0 + if local.get $2 local.get $1 + local.get $3 call $~lib/array/Array#__get call $~lib/set/Set#has i32.eqz @@ -7829,33 +5983,21 @@ 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 $2 - i32.store offset=16 - local.get $3 - local.get $2 + local.get $4 local.get $1 + local.get $3 call $~lib/array/Array#__get call $~lib/set/Set#add - local.get $1 + local.get $3 i32.const 1 i32.add - local.set $1 + local.set $3 br $for-loop|2 end end - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 + local.get $4 i32.load offset=20 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 + local.get $2 i32.load offset=20 i32.ne if @@ -7867,17 +6009,14 @@ unreachable end i32.const 0 - local.set $1 + local.set $3 loop $for-loop|3 - local.get $1 + local.get $3 i32.const 50 i32.lt_s if - 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 call $~lib/set/Set#has i32.eqz if @@ -7888,17 +6027,11 @@ 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 $2 + local.get $3 call $~lib/set/Set#delete - 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 call $~lib/set/Set#has if i32.const 0 @@ -7908,17 +6041,14 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $3 i32.const 1 i32.add - local.set $1 + local.set $3 br $for-loop|3 end end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 + local.get $2 i32.load offset=20 i32.const 50 i32.ne @@ -7931,17 +6061,14 @@ unreachable end i32.const 0 - local.set $1 + local.set $3 loop $for-loop|4 - local.get $1 + local.get $3 i32.const 50 i32.lt_s if - 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 call $~lib/set/Set#has if i32.const 0 @@ -7951,17 +6078,11 @@ 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 $2 + local.get $3 call $~lib/set/Set#add - 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 call $~lib/set/Set#has i32.eqz if @@ -7972,17 +6093,11 @@ 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 $2 + local.get $3 call $~lib/set/Set#delete - 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 call $~lib/set/Set#has if i32.const 0 @@ -7992,72 +6107,202 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $for-loop|4 + end + end + local.get $2 + i32.load offset=20 + i32.const 50 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 45 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + call $~lib/set/Set#clear + local.get $2 + i32.load offset=20 + 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 12 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/set/Set#find (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + local.get $0 + i32.load + 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 + 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 + ) + (func $~lib/set/Set#has (param $0 i32) (param $1 i32) (result i32) + local.get $0 + local.get $1 + local.get $1 + call $~lib/util/hash/hash32 + call $~lib/set/Set#find + i32.const 0 + i32.ne + ) + (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 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 + 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 3 + i32.shl + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $3 + i32.store offset=4 + local.get $0 + i32.load offset=8 + local.tee $8 + local.get $0 + i32.load offset=16 + i32.const 3 + i32.shl + i32.add + local.set $4 + local.get $3 + local.set $2 + loop $while-continue|0 + local.get $4 + local.get $8 + i32.ne + if + local.get $8 + i32.load offset=4 i32.const 1 + i32.and + i32.eqz + if + local.get $2 + local.get $8 + i32.load + local.tee $7 + i32.store + local.get $2 + local.get $6 + local.get $7 + call $~lib/util/hash/hash32 + local.get $1 + i32.and + i32.const 2 + i32.shl + i32.add + local.tee $7 + i32.load + i32.store offset=4 + local.get $7 + local.get $2 + i32.store + local.get $2 + i32.const 8 + i32.add + local.set $2 + end + local.get $8 + i32.const 8 i32.add - local.set $1 - br $for-loop|4 + local.set $8 + br $while-continue|0 end end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 local.get $0 - i32.load offset=20 - 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 $6 + call $~lib/set/Set#set:buckets local.get $0 + local.get $1 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 $3 + call $~lib/set/Set#set:entries local.get $0 - i32.load offset=20 - 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 - ) - (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 - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=12 local.get $0 - i32.store local.get $0 - local.get $1 - local.get $1 - call $~lib/util/hash/hash32 - call $~lib/set/Set#find - i32.const 0 - i32.ne + i32.load offset=20 + i32.store offset=16 global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer ) @@ -8065,23 +6310,11 @@ (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 - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - local.get $1 - call $~lib/util/hash/hash32 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store local.get $0 local.get $1 - local.get $3 + local.get $1 + call $~lib/util/hash/hash32 + local.tee $3 call $~lib/set/Set#find i32.eqz if @@ -8091,9 +6324,6 @@ i32.load offset=12 i32.eq if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store local.get $0 local.get $0 i32.load offset=20 @@ -8117,203 +6347,69 @@ end call $~lib/set/Set#rehash end - local.get $0 - i32.load offset=8 - 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 - local.get $0 - local.get $0 - i32.load offset=20 - i32.const 1 - i32.add - i32.store offset=20 - local.get $2 - local.get $0 - i32.load - 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 4 - 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 i32) - (local $5 i32) - (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 - call $~stack_check - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - local.get $0 - i32.load offset=8 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.load offset=16 - local.tee $8 - local.set $2 - 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 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.const 14 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - local.get $0 - i32.const 0 - call $~lib/set/Set#set:buckets - local.get $0 - i32.const 0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=8 - local.get $0 - i32.const 0 - i32.store offset=12 - local.get $2 - i32.const 268435455 - i32.gt_u - if - i32.const 1456 - i32.const 1616 - i32.const 58 - i32.const 60 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.const 2 - i32.shl - local.tee $5 - i32.const 0 - call $~lib/rt/itcms/__new - local.tee $3 - i32.store offset=4 - local.get $3 - local.get $5 - call $~lib/memory/memory.fill - local.get $0 - local.get $3 - call $~lib/set/Set#set:buckets - local.get $0 - local.get $3 - i32.store offset=4 - local.get $0 - local.get $5 - i32.store offset=8 - local.get $0 - local.get $2 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - i32.store - loop $for-loop|0 - local.get $4 - local.get $8 - i32.lt_s - if - local.get $6 - local.get $4 - i32.const 3 - i32.shl - i32.add - local.tee $2 - i32.load offset=4 - i32.const 1 - i32.and - i32.eqz - if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - local.get $1 - local.get $2 - i32.load - call $~lib/array/Array#__set - local.get $1 - i32.const 1 - i32.add - local.set $1 - end - local.get $4 - i32.const 1 - i32.add - local.set $4 - br $for-loop|0 - end + local.get $0 + i32.load offset=8 + 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 + local.get $0 + local.get $0 + i32.load offset=20 + i32.const 1 + i32.add + i32.store offset=20 + local.get $2 + local.get $0 + i32.load + 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 + ) + (func $~lib/array/Array#__get (param $0 i32) (param $1 i32) (result i32) + local.get $1 local.get $0 - i32.store offset=4 + i32.load offset=12 + i32.ge_u + if + i32.const 1248 + i32.const 1616 + i32.const 92 + i32.const 42 + call $~lib/builtins/abort + unreachable + end local.get $0 + i32.load offset=4 local.get $1 - call $~lib/array/Array#set:length - global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 2 + i32.shl i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 + i32.load ) (func $~lib/set/Set#delete (param $0 i32) (param $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 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store local.get $0 local.get $1 local.get $1 @@ -8322,10 +6418,6 @@ local.tee $1 i32.eqz if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer return end local.get $1 @@ -8370,25 +6462,26 @@ 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 4 - 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) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) global.get $~lib/memory/__stack_pointer - i32.const 20 + i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check @@ -8396,25 +6489,19 @@ 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 0 - i32.store offset=16 + i32.store offset=8 global.get $~lib/memory/__stack_pointer call $~lib/set/Set#constructor - local.tee $0 + local.tee $2 i32.store loop $for-loop|0 - local.get $2 + local.get $1 i32.const 100 i32.lt_u if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 local.get $2 + local.get $1 call $~lib/set/Set#has if i32.const 0 @@ -8424,17 +6511,11 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 local.get $2 + 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 $2 + local.get $1 call $~lib/set/Set#has i32.eqz if @@ -8445,17 +6526,14 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $1 i32.const 1 i32.add - local.set $2 + local.set $1 br $for-loop|0 end end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 + local.get $2 i32.load offset=20 i32.const 100 i32.ne @@ -8468,17 +6546,14 @@ unreachable end i32.const 50 - local.set $2 + local.set $1 loop $for-loop|1 - local.get $2 + local.get $1 i32.const 100 i32.lt_u if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 local.get $2 + local.get $1 call $~lib/set/Set#has i32.eqz if @@ -8489,17 +6564,11 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 local.get $2 + 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 $2 + local.get $1 call $~lib/set/Set#has i32.eqz if @@ -8510,58 +6579,164 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|1 + end + end + local.get $2 + i32.load offset=20 + 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 + 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 $2 + i32.load offset=8 + local.set $10 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.load offset=16 + local.tee $6 + local.set $7 + 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 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.const 14 + call $~lib/rt/itcms/__new + local.tee $1 + i32.store + local.get $1 + i32.const 0 + call $~lib/set/Set#set:buckets + 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 0 + i32.store offset=12 + local.get $6 + i32.const 268435455 + i32.gt_u + if + i32.const 1456 + i32.const 1616 + i32.const 58 + i32.const 60 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.const 2 + i32.shl + local.tee $8 + i32.const 0 + call $~lib/rt/itcms/__new + local.tee $4 + i32.store offset=4 + local.get $4 + local.get $8 + call $~lib/memory/memory.fill + local.get $1 + local.get $4 + call $~lib/set/Set#set:buckets + local.get $1 + local.get $4 + i32.store offset=4 + local.get $1 + local.get $8 + i32.store offset=8 + local.get $1 + local.get $7 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + i32.store + loop $for-loop|01 + local.get $5 + local.get $6 + i32.lt_s + if + local.get $10 + local.get $5 + i32.const 3 + i32.shl + i32.add + local.tee $4 + i32.load offset=4 + i32.const 1 + i32.and + i32.eqz + if + local.get $1 + local.get $0 + local.get $4 + i32.load + call $~lib/array/Array#__set + local.get $0 + i32.const 1 + i32.add + local.set $0 + end + local.get $5 i32.const 1 i32.add - local.set $2 - br $for-loop|1 + local.set $5 + br $for-loop|01 end end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 + local.get $1 local.get $0 - i32.load offset=20 - i32.const 100 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 18 - i32.const 3 - call $~lib/builtins/abort - unreachable - end + call $~lib/array/Array#set:length global.get $~lib/memory/__stack_pointer - local.get $0 + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $0 - call $~lib/set/Set#values - local.tee $2 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer call $~lib/set/Set#constructor - local.tee $3 - i32.store offset=12 + local.tee $4 + i32.store offset=8 loop $for-loop|2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 + local.get $3 local.get $1 - local.get $2 i32.load offset=12 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 $2 - i32.store offset=16 - local.get $0 local.get $2 local.get $1 + local.get $3 call $~lib/array/Array#__get call $~lib/set/Set#has i32.eqz @@ -8573,33 +6748,21 @@ 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 $2 - i32.store offset=16 - local.get $3 - local.get $2 + local.get $4 local.get $1 + local.get $3 call $~lib/array/Array#__get call $~lib/set/Set#add - local.get $1 + local.get $3 i32.const 1 i32.add - local.set $1 + local.set $3 br $for-loop|2 end end - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 + local.get $4 i32.load offset=20 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 + local.get $2 i32.load offset=20 i32.ne if @@ -8611,17 +6774,14 @@ unreachable end i32.const 0 - local.set $1 + local.set $3 loop $for-loop|3 - local.get $1 + local.get $3 i32.const 50 i32.lt_u if - 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 call $~lib/set/Set#has i32.eqz if @@ -8632,17 +6792,11 @@ 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 $2 + local.get $3 call $~lib/set/Set#delete - 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 call $~lib/set/Set#has if i32.const 0 @@ -8652,17 +6806,14 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $3 i32.const 1 i32.add - local.set $1 + local.set $3 br $for-loop|3 end end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 + local.get $2 i32.load offset=20 i32.const 50 i32.ne @@ -8675,17 +6826,14 @@ unreachable end i32.const 0 - local.set $1 + local.set $3 loop $for-loop|4 - local.get $1 + local.get $3 i32.const 50 i32.lt_u if - 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 call $~lib/set/Set#has if i32.const 0 @@ -8695,17 +6843,11 @@ 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 $2 + local.get $3 call $~lib/set/Set#add - 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 call $~lib/set/Set#has i32.eqz if @@ -8716,17 +6858,11 @@ 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 $2 + local.get $3 call $~lib/set/Set#delete - 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 call $~lib/set/Set#has if i32.const 0 @@ -8736,17 +6872,14 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $3 i32.const 1 i32.add - local.set $1 + local.set $3 br $for-loop|4 end end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 + local.get $2 i32.load offset=20 i32.const 50 i32.ne @@ -8758,15 +6891,9 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 + local.get $2 call $~lib/set/Set#clear - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 + local.get $2 i32.load offset=20 if i32.const 0 @@ -8776,23 +6903,119 @@ 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 12 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/util/hash/hash64 (param $0 i64) (result i32) + (local $1 i32) + local.get $0 + i32.wrap_i64 + local.tee $1 + i32.const 255 + i32.and + i32.const -2128831035 + i32.xor + i32.const 16777619 + i32.mul + local.get $1 + i32.const 8 + i32.shr_u + i32.const 255 + i32.and + i32.xor + i32.const 16777619 + i32.mul + local.get $1 + i32.const 16 + i32.shr_u + i32.const 255 + i32.and + i32.xor + i32.const 16777619 + i32.mul + local.get $1 + i32.const 24 + i32.shr_u + i32.xor + i32.const 16777619 + i32.mul + local.get $0 + i64.const 32 + i64.shr_u + i32.wrap_i64 + local.tee $1 + i32.const 255 + i32.and + i32.xor + i32.const 16777619 + i32.mul + local.get $1 + i32.const 8 + i32.shr_u + i32.const 255 + i32.and + i32.xor + i32.const 16777619 + i32.mul + local.get $1 + i32.const 16 + i32.shr_u + i32.const 255 + i32.and + i32.xor + i32.const 16777619 + i32.mul + local.get $1 + i32.const 24 + i32.shr_u + i32.xor + i32.const 16777619 + i32.mul + ) + (func $~lib/set/Set#find (param $0 i32) (param $1 i64) (param $2 i32) (result i32) + local.get $0 + i32.load + 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 + 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 ) (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 - call $~stack_check - global.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 @@ -8800,32 +7023,130 @@ 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#add (param $0 i32) (param $1 i64) + (func $~lib/set/Set#rehash (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) + (local $5 i64) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 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 + global.get $~lib/memory/__stack_pointer local.get $1 - call $~lib/util/hash/hash64 - local.set $3 + 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 local.get $0 - i32.store + i32.load offset=8 + local.tee $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 + i32.ne + if + local.get $9 + i32.load offset=8 + i32.const 1 + i32.and + i32.eqz + if + local.get $2 + local.get $9 + i64.load + local.tee $5 + i64.store + local.get $2 + local.get $8 + local.get $5 + call $~lib/util/hash/hash64 + local.get $1 + 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 16 + i32.add + local.set $2 + end + local.get $9 + i32.const 16 + i32.add + local.set $9 + br $while-continue|0 + end + end + local.get $0 + local.get $8 + call $~lib/set/Set#set:buckets local.get $0 local.get $1 + i32.store offset=4 + local.get $0 local.get $3 + call $~lib/set/Set#set:entries + local.get $0 + local.get $7 + 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.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) + local.get $0 + local.get $1 + local.get $1 + call $~lib/util/hash/hash64 + local.tee $3 call $~lib/set/Set#find i32.eqz if @@ -8835,9 +7156,6 @@ i32.load offset=12 i32.eq if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store local.get $0 local.get $0 i32.load offset=20 @@ -8888,230 +7206,90 @@ i32.load 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 $2 - i32.store - 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 i64) - (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 $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 108 - 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 - call $~lib/array/ensureSize - 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/set/Set#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 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 $0 - i32.load offset=8 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.load offset=16 - local.tee $8 - local.set $2 - 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 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.const 16 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - local.get $0 - i32.const 0 - call $~lib/set/Set#set:buckets - local.get $0 - i32.const 0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=8 + 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 + ) + (func $~lib/array/Array#__set (param $0 i32) (param $1 i32) (param $2 i64) + (local $3 i32) + local.get $1 local.get $0 - i32.const 0 - i32.store offset=12 - local.get $2 - i32.const 134217727 - i32.gt_u + i32.load offset=12 + i32.ge_u if - i32.const 1456 - i32.const 1616 - i32.const 58 - i32.const 60 - call $~lib/builtins/abort - unreachable + local.get $1 + i32.const 0 + i32.lt_s + if + i32.const 1248 + i32.const 1616 + i32.const 108 + 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 + call $~lib/array/ensureSize + local.get $0 + local.get $3 + i32.store offset=12 end - global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 + i32.load offset=4 + local.get $1 i32.const 3 i32.shl - local.tee $5 - i32.const 0 - call $~lib/rt/itcms/__new - local.tee $3 - i32.store offset=4 - local.get $3 - local.get $5 - call $~lib/memory/memory.fill - local.get $0 - local.get $3 - call $~lib/set/Set#set:buckets - local.get $0 - local.get $3 - i32.store offset=4 + i32.add + local.get $2 + i64.store + ) + (func $~lib/array/Array#set:length (param $0 i32) (param $1 i32) local.get $0 - local.get $5 - i32.store offset=8 + local.get $1 + i32.const 3 + call $~lib/array/ensureSize local.get $0 - local.get $2 + local.get $1 i32.store offset=12 - 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.get $1 local.get $0 - i32.store - loop $for-loop|0 - local.get $4 - local.get $8 - i32.lt_s - if - local.get $6 - local.get $4 - i32.const 4 - i32.shl - i32.add - local.tee $2 - i32.load offset=8 - i32.const 1 - i32.and - i32.eqz - if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - local.get $1 - local.get $2 - i64.load - call $~lib/array/Array#__set - local.get $1 - i32.const 1 - i32.add - local.set $1 - end - local.get $4 - i32.const 1 - i32.add - local.set $4 - br $for-loop|0 - end + i32.load offset=12 + i32.ge_u + if + i32.const 1248 + i32.const 1616 + i32.const 92 + i32.const 42 + 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 local.get $1 - call $~lib/array/Array#set:length - global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 3 + i32.shl i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 + i64.load ) (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 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 - local.get $0 - i32.store local.get $0 local.get $1 local.get $1 @@ -9120,10 +7298,6 @@ local.tee $2 i32.eqz if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer return end local.get $2 @@ -9168,17 +7342,32 @@ i32.const 0 end if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store local.get $0 local.get $3 call $~lib/set/Set#rehash end - global.get $~lib/memory/__stack_pointer + ) + (func $~lib/set/Set#clear (param $0 i32) + local.get $0 + i32.const 16 + call $~lib/arraybuffer/ArrayBuffer#constructor + call $~lib/set/Set#set:buckets + local.get $0 + i32.const 3 + i32.store offset=4 + local.get $0 + i32.const 64 + call $~lib/arraybuffer/ArrayBuffer#constructor + call $~lib/set/Set#set:entries + local.get $0 i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer + i32.store offset=12 + local.get $0 + i32.const 0 + i32.store offset=16 + local.get $0 + i32.const 0 + i32.store offset=20 ) (func $std/set/testNumeric (local $0 i32) @@ -9186,8 +7375,16 @@ (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 20 + i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check @@ -9195,24 +7392,18 @@ 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 0 - i32.store offset=16 + i32.store offset=8 global.get $~lib/memory/__stack_pointer call $~lib/set/Set#constructor - local.tee $0 + local.tee $2 i32.store loop $for-loop|0 local.get $1 i64.const 100 i64.lt_s if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 + local.get $2 local.get $1 call $~lib/set/Set#has if @@ -9223,16 +7414,10 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 + local.get $2 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 $2 local.get $1 call $~lib/set/Set#has i32.eqz @@ -9251,10 +7436,7 @@ br $for-loop|0 end end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 + local.get $2 i32.load offset=20 i32.const 100 i32.ne @@ -9273,10 +7455,7 @@ i64.const 100 i64.lt_s if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 + local.get $2 local.get $1 call $~lib/set/Set#has i32.eqz @@ -9288,16 +7467,10 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 + local.get $2 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 $2 local.get $1 call $~lib/set/Set#has i32.eqz @@ -9316,51 +7489,157 @@ br $for-loop|1 end end + local.get $2 + i32.load offset=20 + 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 + 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 $2 + i32.load offset=8 + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.load offset=16 + local.tee $7 + local.set $8 + 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 - local.get $0 + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.const 16 + call $~lib/rt/itcms/__new + local.tee $3 + i32.store + local.get $3 + i32.const 0 + call $~lib/set/Set#set:buckets + local.get $3 + i32.const 0 i32.store offset=4 - local.get $0 - i32.load offset=20 - i32.const 100 - i32.ne + local.get $3 + i32.const 0 + i32.store offset=8 + local.get $3 + i32.const 0 + i32.store offset=12 + local.get $7 + i32.const 134217727 + i32.gt_u if - i32.const 0 - i32.const 1568 - i32.const 18 - i32.const 3 + i32.const 1456 + i32.const 1616 + i32.const 58 + i32.const 60 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $8 + i32.const 3 + i32.shl + local.tee $9 + i32.const 0 + call $~lib/rt/itcms/__new + local.tee $4 + i32.store offset=4 + local.get $4 + local.get $9 + call $~lib/memory/memory.fill + local.get $3 + local.get $4 + call $~lib/set/Set#set:buckets + local.get $3 + local.get $4 i32.store offset=4 + local.get $3 + local.get $9 + i32.store offset=8 + local.get $3 + local.get $8 + i32.store offset=12 global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 + i32.store + loop $for-loop|01 + local.get $6 + local.get $7 + i32.lt_s + if + local.get $11 + local.get $6 + i32.const 4 + i32.shl + i32.add + local.tee $4 + i32.load offset=8 + i32.const 1 + i32.and + i32.eqz + if + local.get $3 + local.get $0 + local.get $4 + i64.load + call $~lib/array/Array#__set + local.get $0 + i32.const 1 + i32.add + local.set $0 + end + local.get $6 + i32.const 1 + i32.add + local.set $6 + br $for-loop|01 + end + end + local.get $3 local.get $0 - call $~lib/set/Set#values - local.tee $2 - i32.store offset=8 + call $~lib/array/Array#set:length + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 global.get $~lib/memory/__stack_pointer call $~lib/set/Set#constructor - local.tee $3 - i32.store offset=12 + local.tee $4 + i32.store offset=8 loop $for-loop|2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $4 - local.get $2 + local.get $5 + local.get $3 i32.load offset=12 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 $2 - i32.store offset=16 - local.get $0 local.get $2 - local.get $4 + local.get $3 + local.get $5 call $~lib/array/Array#__get call $~lib/set/Set#has i32.eqz @@ -9372,33 +7651,21 @@ 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 $2 - i32.store offset=16 - local.get $3 - local.get $2 local.get $4 + local.get $3 + local.get $5 call $~lib/array/Array#__get call $~lib/set/Set#add - local.get $4 + local.get $5 i32.const 1 i32.add - local.set $4 + local.set $5 br $for-loop|2 end end - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 + local.get $4 i32.load offset=20 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 + local.get $2 i32.load offset=20 i32.ne if @@ -9416,10 +7683,7 @@ i64.const 50 i64.lt_s if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 + local.get $2 local.get $1 call $~lib/set/Set#has i32.eqz @@ -9431,16 +7695,10 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 + local.get $2 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 $2 local.get $1 call $~lib/set/Set#has if @@ -9458,10 +7716,7 @@ br $for-loop|3 end end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 + local.get $2 i32.load offset=20 i32.const 50 i32.ne @@ -9480,10 +7735,7 @@ i64.const 50 i64.lt_s if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 + local.get $2 local.get $1 call $~lib/set/Set#has if @@ -9494,16 +7746,10 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 + local.get $2 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 $2 local.get $1 call $~lib/set/Set#has i32.eqz @@ -9515,16 +7761,10 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 + local.get $2 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 $2 local.get $1 call $~lib/set/Set#has if @@ -9542,10 +7782,7 @@ br $for-loop|4 end end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 + local.get $2 i32.load offset=20 i32.const 50 i32.ne @@ -9557,15 +7794,9 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 + local.get $2 call $~lib/set/Set#clear - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 + local.get $2 i32.load offset=20 if i32.const 0 @@ -9576,143 +7807,69 @@ unreachable end global.get $~lib/memory/__stack_pointer - i32.const 20 + i32.const 12 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 - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer + (func $~lib/set/Set#find (param $0 i32) (param $1 i64) (param $2 i32) (result i32) local.get $0 - i32.store + i32.load + local.get $2 local.get $0 - local.get $1 - local.get $1 - call $~lib/util/hash/hash64 - call $~lib/set/Set#find - i32.const 0 - i32.ne - global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.load offset=4 + i32.and + i32.const 2 + i32.shl 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 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 $1 - call $~lib/util/hash/hash64 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - local.get $1 - local.get $3 - call $~lib/set/Set#find - i32.eqz - if - local.get $0 - i32.load offset=16 - local.get $0 - i32.load offset=12 - i32.eq - if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - local.get $0 - i32.load offset=20 + i32.load + local.set $0 + loop $while-continue|0 + local.get $0 + if 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) - local.get $0 - i32.load offset=4 + i32.const 0 else + local.get $1 local.get $0 - i32.load offset=4 - i32.const 1 - i32.shl - i32.const 1 - i32.or + i64.load + i64.eq end - call $~lib/set/Set#rehash + if + local.get $0 + return + end + local.get $2 + i32.const -2 + i32.and + local.set $0 + br $while-continue|0 end - local.get $0 - i32.load offset=8 - 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 $2 - local.get $1 - i64.store - local.get $0 - local.get $0 - i32.load offset=20 - i32.const 1 - i32.add - i32.store offset=20 - local.get $2 - local.get $0 - i32.load - 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 $2 - i32.store 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#values (param $0 i32) (result i32) - (local $1 i32) + (func $~lib/set/Set#has (param $0 i32) (param $1 i64) (result i32) + local.get $0 + local.get $1 + local.get $1 + call $~lib/util/hash/hash64 + call $~lib/set/Set#find + i32.const 0 + i32.ne + ) + (func $~lib/set/Set#rehash (param $0 i32) (param $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 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -9721,143 +7878,208 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - local.get $0 - i32.load offset=8 - local.set $6 global.get $~lib/memory/__stack_pointer - local.get $0 - i32.load offset=16 + local.get $1 + i32.const 1 + i32.add + local.tee $2 + i32.const 2 + i32.shl + call $~lib/arraybuffer/ArrayBuffer#constructor local.tee $8 - local.set $2 - 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 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.const 18 - call $~lib/rt/itcms/__new - local.tee $0 i32.store - local.get $0 - i32.const 0 - call $~lib/set/Set#set:buckets - local.get $0 - i32.const 0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=8 - local.get $0 - i32.const 0 - i32.store offset=12 - local.get $2 - i32.const 134217727 - i32.gt_u - if - i32.const 1456 - i32.const 1616 - i32.const 58 - i32.const 60 - call $~lib/builtins/abort - unreachable - end global.get $~lib/memory/__stack_pointer local.get $2 i32.const 3 i32.shl - local.tee $5 - i32.const 0 - call $~lib/rt/itcms/__new + 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 - local.get $3 - local.get $5 - call $~lib/memory/memory.fill local.get $0 + i32.load offset=8 + local.tee $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 + i32.ne + if + local.get $9 + i32.load offset=8 + i32.const 1 + i32.and + i32.eqz + if + local.get $2 + local.get $9 + i64.load + local.tee $5 + i64.store + local.get $2 + local.get $8 + local.get $5 + call $~lib/util/hash/hash64 + local.get $1 + 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 16 + i32.add + local.set $2 + end + local.get $9 + i32.const 16 + i32.add + local.set $9 + br $while-continue|0 + end + end + local.get $0 + local.get $8 call $~lib/set/Set#set:buckets local.get $0 - local.get $3 + local.get $1 i32.store offset=4 local.get $0 - local.get $5 - i32.store offset=8 + local.get $3 + call $~lib/set/Set#set:entries local.get $0 - local.get $2 + local.get $7 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.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) local.get $0 - i32.store - loop $for-loop|0 - local.get $4 - local.get $8 - i32.lt_s + local.get $1 + local.get $1 + call $~lib/util/hash/hash64 + local.tee $3 + call $~lib/set/Set#find + i32.eqz + if + local.get $0 + i32.load offset=16 + local.get $0 + i32.load offset=12 + i32.eq if - local.get $6 - local.get $4 - i32.const 4 - i32.shl - i32.add - local.tee $2 - i32.load offset=8 - i32.const 1 - i32.and - i32.eqz - if - global.get $~lib/memory/__stack_pointer + local.get $0 + local.get $0 + i32.load offset=20 + 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 $0 - i32.store offset=4 + i32.load offset=4 + else local.get $0 - local.get $1 - local.get $2 - i64.load - call $~lib/array/Array#__set - local.get $1 + i32.load offset=4 i32.const 1 - i32.add - local.set $1 + i32.shl + i32.const 1 + i32.or end - local.get $4 - i32.const 1 - i32.add - local.set $4 - br $for-loop|0 + call $~lib/set/Set#rehash end + local.get $0 + i32.load offset=8 + 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 $2 + local.get $1 + i64.store + local.get $0 + local.get $0 + i32.load offset=20 + i32.const 1 + i32.add + i32.store offset=20 + local.get $2 + local.get $0 + i32.load + 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 $2 + i32.store end - global.get $~lib/memory/__stack_pointer + ) + (func $~lib/array/Array#__get (param $0 i32) (param $1 i32) (result i64) + local.get $1 local.get $0 - i32.store offset=4 + i32.load offset=12 + i32.ge_u + if + i32.const 1248 + i32.const 1616 + i32.const 92 + i32.const 42 + call $~lib/builtins/abort + unreachable + end local.get $0 + i32.load offset=4 local.get $1 - call $~lib/array/Array#set:length - global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 3 + i32.shl i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 + i64.load ) (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 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 - local.get $0 - i32.store local.get $0 local.get $1 local.get $1 @@ -9866,10 +8088,6 @@ local.tee $2 i32.eqz if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer return end local.get $2 @@ -9914,17 +8132,10 @@ i32.const 0 end if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store local.get $0 local.get $3 call $~lib/set/Set#rehash end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer ) (func $std/set/testNumeric (local $0 i32) @@ -9932,8 +8143,16 @@ (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 20 + i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check @@ -9941,24 +8160,18 @@ 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 0 - i32.store offset=16 + i32.store offset=8 global.get $~lib/memory/__stack_pointer call $~lib/set/Set#constructor - local.tee $0 + local.tee $2 i32.store loop $for-loop|0 local.get $1 i64.const 100 i64.lt_u if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 + local.get $2 local.get $1 call $~lib/set/Set#has if @@ -9969,16 +8182,10 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 + local.get $2 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 $2 local.get $1 call $~lib/set/Set#has i32.eqz @@ -9997,10 +8204,7 @@ br $for-loop|0 end end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 + local.get $2 i32.load offset=20 i32.const 100 i32.ne @@ -10019,10 +8223,7 @@ i64.const 100 i64.lt_u if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 + local.get $2 local.get $1 call $~lib/set/Set#has i32.eqz @@ -10034,16 +8235,10 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 + local.get $2 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 $2 local.get $1 call $~lib/set/Set#has i32.eqz @@ -10062,10 +8257,7 @@ br $for-loop|1 end end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 + local.get $2 i32.load offset=20 i32.const 100 i32.ne @@ -10077,36 +8269,145 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + 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 $2 + i32.load offset=8 + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.load offset=16 + local.tee $7 + local.set $8 + 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 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.const 18 + call $~lib/rt/itcms/__new + local.tee $3 + i32.store + local.get $3 + i32.const 0 + call $~lib/set/Set#set:buckets + local.get $3 + i32.const 0 + i32.store offset=4 + local.get $3 + i32.const 0 + i32.store offset=8 + local.get $3 + i32.const 0 + i32.store offset=12 + local.get $7 + i32.const 134217727 + i32.gt_u + if + i32.const 1456 + i32.const 1616 + i32.const 58 + i32.const 60 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.const 3 + i32.shl + local.tee $9 + i32.const 0 + call $~lib/rt/itcms/__new + local.tee $4 + i32.store offset=4 + local.get $4 + local.get $9 + call $~lib/memory/memory.fill + local.get $3 + local.get $4 + call $~lib/set/Set#set:buckets + local.get $3 + local.get $4 + i32.store offset=4 + local.get $3 + local.get $9 + i32.store offset=8 + local.get $3 + local.get $8 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 + i32.store + loop $for-loop|01 + local.get $6 + local.get $7 + i32.lt_s + if + local.get $11 + local.get $6 + i32.const 4 + i32.shl + i32.add + local.tee $4 + i32.load offset=8 + i32.const 1 + i32.and + i32.eqz + if + local.get $3 + local.get $0 + local.get $4 + i64.load + call $~lib/array/Array#__set + local.get $0 + i32.const 1 + i32.add + local.set $0 + end + local.get $6 + i32.const 1 + i32.add + local.set $6 + br $for-loop|01 + end + end + local.get $3 local.get $0 - i32.store offset=4 + call $~lib/array/Array#set:length global.get $~lib/memory/__stack_pointer - local.get $0 - call $~lib/set/Set#values - local.tee $2 - i32.store offset=8 + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 global.get $~lib/memory/__stack_pointer call $~lib/set/Set#constructor - local.tee $3 - i32.store offset=12 + local.tee $4 + i32.store offset=8 loop $for-loop|2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $4 - local.get $2 + local.get $5 + local.get $3 i32.load offset=12 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 $2 - i32.store offset=16 - local.get $0 - local.get $2 - local.get $4 + local.get $3 + local.get $5 call $~lib/array/Array#__get call $~lib/set/Set#has i32.eqz @@ -10118,33 +8419,21 @@ 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 $2 - i32.store offset=16 - local.get $3 - local.get $2 local.get $4 + local.get $3 + local.get $5 call $~lib/array/Array#__get call $~lib/set/Set#add - local.get $4 + local.get $5 i32.const 1 i32.add - local.set $4 + local.set $5 br $for-loop|2 end end - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 + local.get $4 i32.load offset=20 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 + local.get $2 i32.load offset=20 i32.ne if @@ -10162,10 +8451,7 @@ i64.const 50 i64.lt_u if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 + local.get $2 local.get $1 call $~lib/set/Set#has i32.eqz @@ -10177,16 +8463,10 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 + local.get $2 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 $2 local.get $1 call $~lib/set/Set#has if @@ -10204,10 +8484,7 @@ br $for-loop|3 end end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 + local.get $2 i32.load offset=20 i32.const 50 i32.ne @@ -10226,10 +8503,7 @@ i64.const 50 i64.lt_u if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 + local.get $2 local.get $1 call $~lib/set/Set#has if @@ -10240,16 +8514,10 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 + local.get $2 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 $2 local.get $1 call $~lib/set/Set#has i32.eqz @@ -10261,16 +8529,10 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 + local.get $2 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 $2 local.get $1 call $~lib/set/Set#has if @@ -10288,10 +8550,7 @@ br $for-loop|4 end end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 + local.get $2 i32.load offset=20 i32.const 50 i32.ne @@ -10303,51 +8562,186 @@ call $~lib/builtins/abort unreachable end + local.get $2 + call $~lib/set/Set#clear + local.get $2 + i32.load offset=20 + 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 12 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/set/Set#find (param $0 i32) (param $1 f32) (param $2 i32) (result i32) + local.get $0 + i32.load + 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 + f32.load + f32.eq + end + if + 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 + ) + (func $~lib/set/Set#has (param $0 i32) (param $1 f32) (result i32) local.get $0 + local.get $1 + local.get $1 + i32.reinterpret_f32 + call $~lib/util/hash/hash32 + call $~lib/set/Set#find + i32.const 0 + i32.ne + ) + (func $~lib/set/Set#rehash (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) + (local $9 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 + 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 3 + i32.shl + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $3 i32.store offset=4 local.get $0 - call $~lib/set/Set#clear - global.get $~lib/memory/__stack_pointer + i32.load offset=8 + local.tee $9 + local.get $0 + i32.load offset=16 + i32.const 3 + i32.shl + i32.add + local.set $6 + local.get $3 + local.set $2 + loop $while-continue|0 + local.get $6 + local.get $9 + i32.ne + if + local.get $9 + i32.load offset=4 + i32.const 1 + i32.and + i32.eqz + if + local.get $2 + local.get $9 + f32.load + local.tee $5 + f32.store + local.get $2 + local.get $8 + local.get $5 + i32.reinterpret_f32 + call $~lib/util/hash/hash32 + local.get $1 + i32.and + i32.const 2 + i32.shl + i32.add + local.tee $4 + i32.load + i32.store offset=4 + local.get $4 + local.get $2 + i32.store + local.get $2 + i32.const 8 + i32.add + local.set $2 + end + local.get $9 + i32.const 8 + i32.add + local.set $9 + br $while-continue|0 + end + end + local.get $0 + local.get $8 + call $~lib/set/Set#set:buckets local.get $0 + local.get $1 i32.store offset=4 local.get $0 - i32.load offset=20 - 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 - ) - (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 - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer + local.get $3 + call $~lib/set/Set#set:entries local.get $0 - i32.store + local.get $7 + i32.store offset=12 local.get $0 - local.get $1 - local.get $1 - i32.reinterpret_f32 - call $~lib/util/hash/hash32 - call $~lib/set/Set#find - i32.const 0 - i32.ne + local.get $0 + i32.load offset=20 + i32.store offset=16 global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer ) @@ -10355,24 +8749,12 @@ (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 - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store + local.get $0 + local.get $1 local.get $1 i32.reinterpret_f32 call $~lib/util/hash/hash32 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - local.get $1 - local.get $3 + local.tee $3 call $~lib/set/Set#find i32.eqz if @@ -10382,9 +8764,6 @@ i32.load offset=12 i32.eq if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store local.get $0 local.get $0 i32.load offset=20 @@ -10427,234 +8806,51 @@ local.get $0 local.get $0 i32.load offset=20 - i32.const 1 - i32.add - i32.store offset=20 - local.get $2 - local.get $0 - i32.load - 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 4 - 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 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 f32) - 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 $0 - i32.load offset=8 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.load offset=16 - local.tee $8 - local.set $2 - 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 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.const 20 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - local.get $0 - i32.const 0 - call $~lib/set/Set#set:buckets - local.get $0 - i32.const 0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=8 - local.get $0 - i32.const 0 - i32.store offset=12 - local.get $2 - i32.const 268435455 - i32.gt_u - if - i32.const 1456 - i32.const 1616 - i32.const 58 - i32.const 60 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.const 2 - i32.shl - local.tee $5 - i32.const 0 - call $~lib/rt/itcms/__new - local.tee $3 - i32.store offset=4 - local.get $3 - local.get $5 - call $~lib/memory/memory.fill - local.get $0 - local.get $3 - call $~lib/set/Set#set:buckets - local.get $0 - local.get $3 - i32.store offset=4 - local.get $0 - local.get $5 - i32.store offset=8 - local.get $0 - local.get $2 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - i32.store - loop $for-loop|0 - local.get $4 - local.get $8 - i32.lt_s - if - local.get $6 - local.get $4 - i32.const 3 - i32.shl - i32.add - local.tee $2 - i32.load offset=4 - i32.const 1 - i32.and - i32.eqz - if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $2 - f32.load - local.set $9 - 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 $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 108 - i32.const 22 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.get $1 - i32.const 1 - i32.add - local.tee $2 - i32.const 2 - call $~lib/array/ensureSize - local.get $0 - local.get $2 - 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 $9 - f32.store - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $1 - i32.const 1 - i32.add - local.set $1 - end - local.get $4 - i32.const 1 - i32.add - local.set $4 - br $for-loop|0 - end + i32.const 1 + i32.add + i32.store offset=20 + local.get $2 + local.get $0 + i32.load + 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 + ) + (func $~lib/array/Array#__get (param $0 i32) (param $1 i32) (result f32) + local.get $1 local.get $0 - i32.store offset=4 + i32.load offset=12 + i32.ge_u + if + i32.const 1248 + i32.const 1616 + i32.const 92 + i32.const 42 + call $~lib/builtins/abort + unreachable + end local.get $0 + i32.load offset=4 local.get $1 - call $~lib/array/Array#set:length - global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 2 + i32.shl i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 + f32.load ) (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 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 - local.get $0 - i32.store local.get $0 local.get $1 local.get $1 @@ -10664,10 +8860,6 @@ local.tee $2 i32.eqz if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer return end local.get $2 @@ -10712,17 +8904,10 @@ i32.const 0 end if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store local.get $0 local.get $3 call $~lib/set/Set#rehash end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer ) (func $std/set/testNumeric (local $0 i32) @@ -10730,8 +8915,16 @@ (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 20 + i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check @@ -10739,24 +8932,18 @@ 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 0 - i32.store offset=16 + i32.store offset=8 global.get $~lib/memory/__stack_pointer call $~lib/set/Set#constructor - local.tee $0 + local.tee $2 i32.store loop $for-loop|0 local.get $1 f32.const 100 f32.lt if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 + local.get $2 local.get $1 call $~lib/set/Set#has if @@ -10767,16 +8954,10 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 + local.get $2 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 $2 local.get $1 call $~lib/set/Set#has i32.eqz @@ -10795,10 +8976,7 @@ br $for-loop|0 end end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 + local.get $2 i32.load offset=20 i32.const 100 i32.ne @@ -10817,10 +8995,7 @@ f32.const 100 f32.lt if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 + local.get $2 local.get $1 call $~lib/set/Set#has i32.eqz @@ -10832,16 +9007,10 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 + local.get $2 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 $2 local.get $1 call $~lib/set/Set#has i32.eqz @@ -10853,58 +9022,197 @@ call $~lib/builtins/abort unreachable end - local.get $1 - f32.const 1 - f32.add - local.set $1 - br $for-loop|1 + local.get $1 + f32.const 1 + f32.add + local.set $1 + br $for-loop|1 + end + end + local.get $2 + i32.load offset=20 + 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 + 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 $2 + i32.load offset=8 + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.load offset=16 + local.tee $7 + local.set $8 + 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 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.const 20 + call $~lib/rt/itcms/__new + local.tee $3 + i32.store + local.get $3 + i32.const 0 + call $~lib/set/Set#set:buckets + local.get $3 + i32.const 0 + i32.store offset=4 + local.get $3 + i32.const 0 + i32.store offset=8 + local.get $3 + i32.const 0 + i32.store offset=12 + local.get $7 + i32.const 268435455 + i32.gt_u + if + i32.const 1456 + i32.const 1616 + i32.const 58 + i32.const 60 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.const 2 + i32.shl + local.tee $9 + i32.const 0 + call $~lib/rt/itcms/__new + local.tee $4 + i32.store offset=4 + local.get $4 + local.get $9 + call $~lib/memory/memory.fill + local.get $3 + local.get $4 + call $~lib/set/Set#set:buckets + local.get $3 + local.get $4 + i32.store offset=4 + local.get $3 + local.get $9 + i32.store offset=8 + local.get $3 + local.get $8 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 + i32.store + loop $for-loop|01 + local.get $6 + local.get $7 + i32.lt_s + if + local.get $11 + local.get $6 + i32.const 3 + i32.shl + i32.add + local.tee $4 + i32.load offset=4 + i32.const 1 + i32.and + i32.eqz + if + local.get $4 + f32.load + local.set $1 + local.get $0 + local.get $3 + 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 108 + i32.const 22 + call $~lib/builtins/abort + unreachable + end + local.get $3 + local.get $0 + i32.const 1 + i32.add + local.tee $4 + i32.const 2 + call $~lib/array/ensureSize + local.get $3 + local.get $4 + i32.store offset=12 + end + local.get $3 + i32.load offset=4 + local.get $0 + i32.const 2 + i32.shl + i32.add + local.get $1 + f32.store + local.get $0 + i32.const 1 + i32.add + local.set $0 + end + local.get $6 + i32.const 1 + i32.add + local.set $6 + br $for-loop|01 end end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 + local.get $3 local.get $0 - i32.load offset=20 - i32.const 100 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 18 - i32.const 3 - call $~lib/builtins/abort - unreachable - end + call $~lib/array/Array#set:length global.get $~lib/memory/__stack_pointer - local.get $0 + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $0 - call $~lib/set/Set#values - local.tee $2 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer call $~lib/set/Set#constructor - local.tee $3 - i32.store offset=12 + local.tee $0 + i32.store offset=8 loop $for-loop|2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $4 - local.get $2 + local.get $5 + local.get $3 i32.load offset=12 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 $2 - i32.store offset=16 - local.get $0 local.get $2 - local.get $4 + local.get $3 + local.get $5 call $~lib/array/Array#__get call $~lib/set/Set#has i32.eqz @@ -10916,34 +9224,22 @@ 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 $2 - i32.store offset=16 + local.get $0 local.get $3 - local.get $2 - local.get $4 + local.get $5 call $~lib/array/Array#__get call $~lib/set/Set#add - local.get $4 + local.get $5 i32.const 1 i32.add - local.set $4 + local.set $5 br $for-loop|2 end end - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - i32.load offset=20 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 local.get $0 i32.load offset=20 + local.get $2 + i32.load offset=20 i32.ne if i32.const 0 @@ -10960,10 +9256,7 @@ f32.const 50 f32.lt if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 + local.get $2 local.get $1 call $~lib/set/Set#has i32.eqz @@ -10975,16 +9268,10 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 + local.get $2 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 $2 local.get $1 call $~lib/set/Set#has if @@ -11002,10 +9289,7 @@ br $for-loop|3 end end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 + local.get $2 i32.load offset=20 i32.const 50 i32.ne @@ -11024,10 +9308,7 @@ f32.const 50 f32.lt if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 + local.get $2 local.get $1 call $~lib/set/Set#has if @@ -11038,16 +9319,10 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 + local.get $2 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 $2 local.get $1 call $~lib/set/Set#has i32.eqz @@ -11059,16 +9334,10 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 + local.get $2 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 $2 local.get $1 call $~lib/set/Set#has if @@ -11086,10 +9355,7 @@ br $for-loop|4 end end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 + local.get $2 i32.load offset=20 i32.const 50 i32.ne @@ -11101,15 +9367,9 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 + local.get $2 call $~lib/set/Set#clear - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 + local.get $2 i32.load offset=20 if i32.const 0 @@ -11120,146 +9380,70 @@ unreachable end global.get $~lib/memory/__stack_pointer - i32.const 20 + i32.const 12 i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/set/Set#has (param $0 i32) (param $1 f64) (result 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 + (func $~lib/set/Set#find (param $0 i32) (param $1 f64) (param $2 i32) (result i32) local.get $0 - i32.store + i32.load + local.get $2 local.get $0 - local.get $1 - local.get $1 - i64.reinterpret_f64 - call $~lib/util/hash/hash64 - call $~lib/set/Set#find - i32.const 0 - i32.ne - global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.load offset=4 + i32.and + i32.const 2 + i32.shl i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/set/Set#add (param $0 i32) (param $1 f64) - (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 - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - local.get $1 - i64.reinterpret_f64 - call $~lib/util/hash/hash64 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - local.get $1 - local.get $3 - call $~lib/set/Set#find - i32.eqz - if - local.get $0 - i32.load offset=16 + 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 - local.get $0 local.get $0 - i32.load offset=20 - 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) - local.get $0 - i32.load offset=4 + i32.const 0 else + local.get $1 local.get $0 - i32.load offset=4 - i32.const 1 - i32.shl - i32.const 1 - i32.or - end - call $~lib/set/Set#rehash - end - local.get $0 - i32.load offset=8 - 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 $2 - local.get $1 - f64.store - local.get $0 - local.get $0 - i32.load offset=20 - i32.const 1 - i32.add - i32.store offset=20 - local.get $2 - local.get $0 - i32.load - 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 $2 - i32.store + f64.load + f64.eq + end + if + 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#values (param $0 i32) (result i32) - (local $1 i32) + (func $~lib/set/Set#has (param $0 i32) (param $1 f64) (result i32) + local.get $0 + local.get $1 + local.get $1 + i64.reinterpret_f64 + call $~lib/util/hash/hash64 + call $~lib/set/Set#find + i32.const 0 + i32.ne + ) + (func $~lib/set/Set#rehash (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) - (local $5 i32) + (local $5 f64) (local $6 i32) (local $7 i32) (local $8 i32) - (local $9 f64) + (local $9 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -11268,191 +9452,210 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - local.get $0 - i32.load offset=8 - local.set $6 global.get $~lib/memory/__stack_pointer - local.get $0 - i32.load offset=16 + local.get $1 + i32.const 1 + i32.add + local.tee $2 + i32.const 2 + i32.shl + call $~lib/arraybuffer/ArrayBuffer#constructor local.tee $8 - local.set $2 - 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 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.const 22 - call $~lib/rt/itcms/__new - local.tee $0 i32.store - local.get $0 - i32.const 0 - call $~lib/set/Set#set:buckets - local.get $0 - i32.const 0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=8 - local.get $0 - i32.const 0 - i32.store offset=12 - local.get $2 - i32.const 134217727 - i32.gt_u - if - i32.const 1456 - i32.const 1616 - i32.const 58 - i32.const 60 - call $~lib/builtins/abort - unreachable - end global.get $~lib/memory/__stack_pointer local.get $2 i32.const 3 i32.shl - local.tee $5 - i32.const 0 - call $~lib/rt/itcms/__new + 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 - local.get $3 - local.get $5 - call $~lib/memory/memory.fill local.get $0 + i32.load offset=8 + local.tee $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 + i32.ne + if + local.get $9 + i32.load offset=8 + i32.const 1 + i32.and + i32.eqz + if + local.get $2 + local.get $9 + f64.load + local.tee $5 + f64.store + local.get $2 + local.get $8 + local.get $5 + i64.reinterpret_f64 + call $~lib/util/hash/hash64 + local.get $1 + 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 16 + i32.add + local.set $2 + end + local.get $9 + i32.const 16 + i32.add + local.set $9 + br $while-continue|0 + end + end + local.get $0 + local.get $8 call $~lib/set/Set#set:buckets local.get $0 - local.get $3 + local.get $1 i32.store offset=4 local.get $0 - local.get $5 - i32.store offset=8 + local.get $3 + call $~lib/set/Set#set:entries local.get $0 - local.get $2 + local.get $7 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.add global.set $~lib/memory/__stack_pointer + ) + (func $~lib/set/Set#add (param $0 i32) (param $1 f64) + (local $2 i32) + (local $3 i32) + (local $4 i32) local.get $0 - i32.store - loop $for-loop|0 - local.get $4 - local.get $8 - i32.lt_s + local.get $1 + local.get $1 + i64.reinterpret_f64 + call $~lib/util/hash/hash64 + local.tee $3 + call $~lib/set/Set#find + i32.eqz + if + local.get $0 + i32.load offset=16 + local.get $0 + i32.load offset=12 + i32.eq if - local.get $6 - local.get $4 + local.get $0 + local.get $0 + i32.load offset=20 + local.get $0 + i32.load offset=12 + i32.const 3 + i32.mul i32.const 4 - i32.shl - i32.add - local.tee $2 - i32.load offset=8 - i32.const 1 - i32.and - i32.eqz - if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $2 - f64.load - local.set $9 - 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 $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 108 - i32.const 22 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.get $1 - i32.const 1 - i32.add - local.tee $2 - i32.const 3 - call $~lib/array/ensureSize - local.get $0 - local.get $2 - i32.store offset=12 - end - global.get $~lib/memory/__stack_pointer + i32.div_s + i32.lt_s + if (result i32) local.get $0 - i32.store + i32.load offset=4 + else local.get $0 i32.load offset=4 - local.get $1 - i32.const 3 + i32.const 1 i32.shl - i32.add - local.get $9 - f64.store - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $1 i32.const 1 - i32.add - local.set $1 - end - local.get $4 - i32.const 1 - i32.add - local.set $4 - br $for-loop|0 + i32.or + end + call $~lib/set/Set#rehash end + local.get $0 + i32.load offset=8 + 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 $2 + local.get $1 + f64.store + local.get $0 + local.get $0 + i32.load offset=20 + i32.const 1 + i32.add + i32.store offset=20 + local.get $2 + local.get $0 + i32.load + 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 $2 + i32.store end - global.get $~lib/memory/__stack_pointer + ) + (func $~lib/array/Array#__get (param $0 i32) (param $1 i32) (result f64) + local.get $1 local.get $0 - i32.store offset=4 + i32.load offset=12 + i32.ge_u + if + i32.const 1248 + i32.const 1616 + i32.const 92 + i32.const 42 + call $~lib/builtins/abort + unreachable + end local.get $0 + i32.load offset=4 local.get $1 - call $~lib/array/Array#set:length - global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 3 + i32.shl i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 + f64.load ) (func $~lib/set/Set#delete (param $0 i32) (param $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 - call $~stack_check - global.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 @@ -11462,10 +9665,6 @@ local.tee $2 i32.eqz if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer return end local.get $2 @@ -11510,17 +9709,10 @@ i32.const 0 end if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store local.get $0 local.get $3 call $~lib/set/Set#rehash end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer ) (func $std/set/testNumeric (local $0 i32) @@ -11528,8 +9720,16 @@ (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 20 + i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check @@ -11537,24 +9737,18 @@ 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 0 - i32.store offset=16 + i32.store offset=8 global.get $~lib/memory/__stack_pointer call $~lib/set/Set#constructor - local.tee $0 + local.tee $2 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 $2 local.get $1 call $~lib/set/Set#has if @@ -11565,16 +9759,10 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 + local.get $2 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 $2 local.get $1 call $~lib/set/Set#has i32.eqz @@ -11593,10 +9781,7 @@ br $for-loop|0 end end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 + local.get $2 i32.load offset=20 i32.const 100 i32.ne @@ -11615,10 +9800,7 @@ f64.const 100 f64.lt if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 + local.get $2 local.get $1 call $~lib/set/Set#has i32.eqz @@ -11630,16 +9812,10 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 + local.get $2 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 $2 local.get $1 call $~lib/set/Set#has i32.eqz @@ -11651,58 +9827,197 @@ call $~lib/builtins/abort unreachable end - local.get $1 - f64.const 1 - f64.add - local.set $1 - br $for-loop|1 + local.get $1 + f64.const 1 + f64.add + local.set $1 + br $for-loop|1 + end + end + local.get $2 + i32.load offset=20 + 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 + 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 $2 + i32.load offset=8 + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.load offset=16 + local.tee $7 + local.set $8 + 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 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.const 22 + call $~lib/rt/itcms/__new + local.tee $3 + i32.store + local.get $3 + i32.const 0 + call $~lib/set/Set#set:buckets + local.get $3 + i32.const 0 + i32.store offset=4 + local.get $3 + i32.const 0 + i32.store offset=8 + local.get $3 + i32.const 0 + i32.store offset=12 + local.get $7 + i32.const 134217727 + i32.gt_u + if + i32.const 1456 + i32.const 1616 + i32.const 58 + i32.const 60 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.const 3 + i32.shl + local.tee $9 + i32.const 0 + call $~lib/rt/itcms/__new + local.tee $4 + i32.store offset=4 + local.get $4 + local.get $9 + call $~lib/memory/memory.fill + local.get $3 + local.get $4 + call $~lib/set/Set#set:buckets + local.get $3 + local.get $4 + i32.store offset=4 + local.get $3 + local.get $9 + i32.store offset=8 + local.get $3 + local.get $8 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 + i32.store + loop $for-loop|01 + local.get $6 + local.get $7 + i32.lt_s + if + local.get $11 + local.get $6 + i32.const 4 + i32.shl + i32.add + local.tee $4 + i32.load offset=8 + i32.const 1 + i32.and + i32.eqz + if + local.get $4 + f64.load + local.set $1 + local.get $0 + local.get $3 + 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 108 + i32.const 22 + call $~lib/builtins/abort + unreachable + end + local.get $3 + local.get $0 + i32.const 1 + i32.add + local.tee $4 + i32.const 3 + call $~lib/array/ensureSize + local.get $3 + local.get $4 + i32.store offset=12 + end + local.get $3 + i32.load offset=4 + local.get $0 + i32.const 3 + i32.shl + i32.add + local.get $1 + f64.store + local.get $0 + i32.const 1 + i32.add + local.set $0 + end + local.get $6 + i32.const 1 + i32.add + local.set $6 + br $for-loop|01 end end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 + local.get $3 local.get $0 - i32.load offset=20 - i32.const 100 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 18 - i32.const 3 - call $~lib/builtins/abort - unreachable - end + call $~lib/array/Array#set:length global.get $~lib/memory/__stack_pointer - local.get $0 + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $0 - call $~lib/set/Set#values - local.tee $2 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer call $~lib/set/Set#constructor - local.tee $3 - i32.store offset=12 + local.tee $0 + i32.store offset=8 loop $for-loop|2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $4 - local.get $2 + local.get $5 + local.get $3 i32.load offset=12 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 $2 - i32.store offset=16 - local.get $0 local.get $2 - local.get $4 + local.get $3 + local.get $5 call $~lib/array/Array#__get call $~lib/set/Set#has i32.eqz @@ -11714,34 +10029,22 @@ 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 $2 - i32.store offset=16 + local.get $0 local.get $3 - local.get $2 - local.get $4 + local.get $5 call $~lib/array/Array#__get call $~lib/set/Set#add - local.get $4 + local.get $5 i32.const 1 i32.add - local.set $4 + local.set $5 br $for-loop|2 end end - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - i32.load offset=20 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 local.get $0 i32.load offset=20 + local.get $2 + i32.load offset=20 i32.ne if i32.const 0 @@ -11758,10 +10061,7 @@ f64.const 50 f64.lt if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 + local.get $2 local.get $1 call $~lib/set/Set#has i32.eqz @@ -11773,16 +10073,10 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 + local.get $2 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 $2 local.get $1 call $~lib/set/Set#has if @@ -11800,10 +10094,7 @@ br $for-loop|3 end end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 + local.get $2 i32.load offset=20 i32.const 50 i32.ne @@ -11822,10 +10113,7 @@ f64.const 50 f64.lt if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 + local.get $2 local.get $1 call $~lib/set/Set#has if @@ -11836,16 +10124,10 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 + local.get $2 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 $2 local.get $1 call $~lib/set/Set#has i32.eqz @@ -11857,16 +10139,10 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 + local.get $2 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 $2 local.get $1 call $~lib/set/Set#has if @@ -11884,10 +10160,7 @@ br $for-loop|4 end end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 + local.get $2 i32.load offset=20 i32.const 50 i32.ne @@ -11899,15 +10172,9 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 + local.get $2 call $~lib/set/Set#clear - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 + local.get $2 i32.load offset=20 if i32.const 0 @@ -11918,10 +10185,117 @@ unreachable end global.get $~lib/memory/__stack_pointer - i32.const 20 + i32.const 12 i32.add global.set $~lib/memory/__stack_pointer ) + (func $~lib/rt/__visit_members (param $0 i32) + block $folding-inner1 + block $folding-inner0 + block $invalid + block $~lib/arraybuffer/ArrayBufferView + block $~lib/string/String + block $~lib/arraybuffer/ArrayBuffer + local.get $0 + i32.const 8 + i32.sub + i32.load + br_table $~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 + local.get $0 + i32.load + local.tee $0 + if + local.get $0 + call $~lib/rt/itcms/__visit + end + return + end + unreachable + end + local.get $0 + i32.load + call $~lib/rt/itcms/__visit + local.get $0 + i32.load offset=8 + call $~lib/rt/itcms/__visit + return + end + local.get $0 + i32.load + call $~lib/rt/itcms/__visit + ) + (func $~start + i32.const 1168 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/pinSpace + i32.const 1200 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/toSpace + i32.const 1344 + call $~lib/rt/itcms/initLazy + 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 + 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 $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 1836 + i32.lt_s + if + i32.const 18240 + i32.const 18288 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + ) (func $~lib/arraybuffer/ArrayBuffer#constructor (param $0 i32) (result i32) (local $1 i32) global.get $~lib/memory/__stack_pointer diff --git a/tests/compiler/std/set.untouched.wat b/tests/compiler/std/set.untouched.wat index b8021d9ff5..c9a6ae950c 100644 --- a/tests/compiler/std/set.untouched.wat +++ b/tests/compiler/std/set.untouched.wat @@ -2538,6 +2538,35 @@ end i32.const 0 ) + (func $~lib/set/Set#has (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + local.get $0 + local.get $1 + block $~lib/util/hash/HASH|inlined.0 (result i32) + local.get $1 + local.set $2 + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 1 + i32.const 1 + i32.eq + drop + local.get $2 + i32.const 24 + i32.shl + i32.const 24 + i32.shr_s + call $~lib/util/hash/hash8 + br $~lib/util/hash/HASH|inlined.0 + end + call $~lib/set/Set#find + i32.const 0 + i32.ne + ) (func $~lib/set/SetEntry#set:key (param $0 i32) (param $1 i32) local.get $0 local.get $1 @@ -2697,6 +2726,114 @@ i32.add global.set $~lib/memory/__stack_pointer ) + (func $~lib/set/Set#add (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + block $~lib/util/hash/HASH|inlined.1 (result i32) + local.get $1 + local.set $2 + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 1 + i32.const 1 + i32.eq + drop + local.get $2 + i32.const 24 + i32.shl + i32.const 24 + i32.shr_s + call $~lib/util/hash/hash8 + br $~lib/util/hash/HASH|inlined.1 + end + local.set $3 + local.get $0 + local.get $1 + local.get $3 + call $~lib/set/Set#find + local.set $4 + local.get $4 + i32.eqz + if + local.get $0 + i32.load offset=16 + local.get $0 + i32.load offset=12 + i32.eq + if + local.get $0 + local.get $0 + i32.load offset=20 + 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 $0 + i32.load offset=4 + else + local.get $0 + i32.load offset=4 + i32.const 1 + i32.shl + i32.const 1 + i32.or + end + call $~lib/set/Set#rehash + end + local.get $0 + i32.load offset=8 + local.get $0 + local.get $0 + i32.load offset=16 + local.tee $2 + i32.const 1 + i32.add + call $~lib/set/Set#set:entriesOffset + local.get $2 + i32.const 8 + i32.mul + i32.add + local.set $4 + local.get $4 + local.get $1 + call $~lib/set/SetEntry#set:key + i32.const 0 + drop + local.get $0 + local.get $0 + i32.load offset=20 + i32.const 1 + i32.add + call $~lib/set/Set#set:entriesCount + local.get $0 + i32.load + local.get $3 + local.get $0 + i32.load offset=4 + i32.and + i32.const 4 + i32.mul + i32.add + local.set $2 + local.get $4 + local.get $2 + i32.load + call $~lib/set/SetEntry#set:taggedNext + local.get $2 + local.get $4 + i32.store + end + local.get $0 + ) (func $~lib/set/Set#get:size (param $0 i32) (result i32) local.get $0 i32.load offset=20 @@ -4101,6 +4238,40 @@ i32.const 0 drop ) + (func $~lib/array/Array#__set (param $0 i32) (param $1 i32) (param $2 i32) + 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 224 + i32.const 592 + i32.const 108 + i32.const 22 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $1 + i32.const 1 + i32.add + i32.const 0 + call $~lib/array/ensureSize + local.get $0 + local.get $1 + i32.const 1 + i32.add + call $~lib/array/Array#set:length_ + end + local.get $0 + local.get $1 + local.get $2 + call $~lib/array/Array#__uset + ) (func $~lib/array/Array#set:length (param $0 i32) (param $1 i32) local.get $0 local.get $1 @@ -4140,137 +4311,125 @@ drop local.get $2 ) - (func $~lib/set/Set#clear (param $0 i32) - local.get $0 - i32.const 0 - i32.const 4 - i32.const 4 - i32.mul - call $~lib/arraybuffer/ArrayBuffer#constructor - call $~lib/set/Set#set:buckets + (func $~lib/set/Set#delete (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) local.get $0 - i32.const 4 + local.get $1 + block $~lib/util/hash/HASH|inlined.3 (result i32) + local.get $1 + local.set $2 + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 1 + i32.const 1 + i32.eq + drop + local.get $2 + i32.const 24 + i32.shl + i32.const 24 + i32.shr_s + call $~lib/util/hash/hash8 + br $~lib/util/hash/HASH|inlined.3 + end + call $~lib/set/Set#find + local.set $3 + local.get $3 + i32.eqz + if + i32.const 0 + return + end + local.get $3 + local.get $3 + i32.load offset=4 i32.const 1 - i32.sub - call $~lib/set/Set#set:bucketsMask - local.get $0 - i32.const 0 - i32.const 4 - i32.const 8 - i32.mul - call $~lib/arraybuffer/ArrayBuffer#constructor - call $~lib/set/Set#set:entries - local.get $0 - i32.const 4 - call $~lib/set/Set#set:entriesCapacity + i32.or + call $~lib/set/SetEntry#set:taggedNext local.get $0 - i32.const 0 - call $~lib/set/Set#set:entriesOffset local.get $0 - i32.const 0 + i32.load offset=20 + i32.const 1 + i32.sub call $~lib/set/Set#set:entriesCount - ) - (func $~lib/set/Set#set:buckets (param $0 i32) (param $1 i32) local.get $0 - local.get $1 - i32.store + i32.load offset=4 + i32.const 1 + i32.shr_u + local.set $4 + local.get $4 + i32.const 1 + i32.add + i32.const 4 + local.tee $2 local.get $0 - local.get $1 - i32.const 0 - call $~lib/rt/itcms/__link - ) - (func $~lib/set/Set#set:bucketsMask (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - i32.store offset=4 + i32.load offset=20 + local.tee $5 + local.get $2 + local.get $5 + i32.gt_u + select + i32.ge_u + if (result i32) + local.get $0 + i32.load offset=20 + 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 $0 + local.get $4 + call $~lib/set/Set#rehash + end + i32.const 1 ) - (func $~lib/set/Set#set:entries (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - i32.store offset=8 + (func $~lib/set/Set#clear (param $0 i32) local.get $0 - local.get $1 i32.const 0 - call $~lib/rt/itcms/__link - ) - (func $~lib/set/Set#set:entriesCapacity (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - i32.store offset=12 - ) - (func $~lib/set/Set#set:entriesOffset (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - i32.store offset=16 - ) - (func $~lib/set/Set#set:entriesCount (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - i32.store offset=20 - ) - (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) + i32.const 4 + i32.const 4 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + call $~lib/set/Set#set:buckets local.get $0 - i32.load - local.get $2 + i32.const 4 + i32.const 1 + i32.sub + call $~lib/set/Set#set:bucketsMask local.get $0 - i32.load offset=4 - i32.and + i32.const 0 i32.const 4 + i32.const 8 i32.mul - i32.add - i32.load - local.set $3 - loop $while-continue|0 - local.get $3 - local.set $4 - local.get $4 - if - local.get $3 - i32.load offset=4 - local.set $5 - local.get $5 - i32.const 1 - i32.and - i32.eqz - if (result i32) - local.get $3 - i32.load8_u - local.get $1 - i32.const 255 - i32.and - i32.eq - else - i32.const 0 - end - if - local.get $3 - return - end - local.get $5 - i32.const 1 - i32.const -1 - i32.xor - i32.and - local.set $3 - br $while-continue|0 - end - end - i32.const 0 - ) - (func $~lib/set/SetEntry#set:key (param $0 i32) (param $1 i32) + call $~lib/arraybuffer/ArrayBuffer#constructor + call $~lib/set/Set#set:entries local.get $0 - local.get $1 - i32.store8 - ) - (func $~lib/set/SetEntry#set:taggedNext (param $0 i32) (param $1 i32) + i32.const 4 + call $~lib/set/Set#set:entriesCapacity local.get $0 - local.get $1 - i32.store offset=4 + i32.const 0 + call $~lib/set/Set#set:entriesOffset + local.get $0 + i32.const 0 + call $~lib/set/Set#set:entriesCount ) - (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) @@ -4278,257 +4437,368 @@ (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) 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 - local.get $1 - i32.const 1 - i32.add - local.set $2 global.get $~lib/memory/__stack_pointer i32.const 0 - local.get $2 - i32.const 4 - i32.mul - call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $3 - i32.store - local.get $2 - i32.const 8 - i32.mul - i32.const 3 - i32.div_s - local.set $4 + i32.store offset=8 global.get $~lib/memory/__stack_pointer i32.const 0 - local.get $4 - i32.const 8 - i32.mul - call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $5 - i32.store offset=4 - local.get $0 - i32.load offset=8 - local.set $6 - local.get $6 - local.get $0 - i32.load offset=16 - i32.const 8 - i32.mul - i32.add - local.set $7 - local.get $5 - local.set $8 - loop $while-continue|0 - local.get $6 - local.get $7 - i32.ne - local.set $9 - local.get $9 + call $~lib/set/Set#constructor + local.tee $0 + i32.store + i32.const 0 + local.set $1 + loop $for-loop|1 + local.get $1 + i32.const 24 + i32.shl + i32.const 24 + i32.shr_s + i32.const 100 + i32.lt_s + local.set $3 + local.get $3 if - local.get $6 - local.set $10 - local.get $10 - i32.load offset=4 - i32.const 1 - i32.and + local.get $0 + local.get $1 + call $~lib/set/Set#has + i32.eqz i32.eqz if - local.get $8 - local.set $11 - local.get $10 - i32.load8_u - local.set $12 - local.get $11 - local.get $12 - call $~lib/set/SetEntry#set:key - block $~lib/util/hash/HASH|inlined.2 (result i32) - local.get $12 - local.set $13 - i32.const 0 - drop - i32.const 0 - drop - i32.const 0 - drop - i32.const 1 - i32.const 1 - i32.eq - drop - local.get $13 - call $~lib/util/hash/hash8 - br $~lib/util/hash/HASH|inlined.2 - end - local.get $1 - i32.and - local.set $13 - local.get $3 - local.get $13 - i32.const 4 - i32.mul - i32.add - local.set $14 - local.get $11 - local.get $14 - i32.load - call $~lib/set/SetEntry#set:taggedNext - local.get $14 - local.get $8 - i32.store - local.get $8 - i32.const 8 - i32.add - local.set $8 + i32.const 0 + i32.const 544 + i32.const 6 + i32.const 5 + call $~lib/builtins/abort + unreachable end - local.get $6 - i32.const 8 + local.get $0 + local.get $1 + call $~lib/set/Set#add + drop + local.get $0 + local.get $1 + call $~lib/set/Set#has + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 8 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 1 i32.add - local.set $6 - br $while-continue|0 + local.set $1 + br $for-loop|1 end end local.get $0 - local.get $3 - call $~lib/set/Set#set:buckets - local.get $0 - local.get $1 - call $~lib/set/Set#set:bucketsMask - local.get $0 - local.get $5 - call $~lib/set/Set#set:entries - local.get $0 - local.get $4 - call $~lib/set/Set#set:entriesCapacity - local.get $0 + call $~lib/set/Set#get:size + i32.const 100 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 10 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 50 + local.set $1 + loop $for-loop|3 + local.get $1 + i32.const 24 + i32.shl + i32.const 24 + i32.shr_s + i32.const 100 + i32.lt_s + local.set $4 + local.get $4 + if + local.get $0 + local.get $1 + call $~lib/set/Set#has + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 14 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $1 + call $~lib/set/Set#add + drop + local.get $0 + local.get $1 + call $~lib/set/Set#has + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 16 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|3 + end + end local.get $0 - i32.load offset=20 - call $~lib/set/Set#set:entriesOffset + call $~lib/set/Set#get:size + i32.const 100 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + 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 - ) - (func $~lib/set/Set#get:size (param $0 i32) (result i32) - local.get $0 - i32.load offset=20 - ) - (func $~lib/array/Array#set:buffer (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - i32.store - local.get $0 - local.get $1 - i32.const 0 - call $~lib/rt/itcms/__link - ) - (func $~lib/array/Array#set:dataStart (param $0 i32) (param $1 i32) local.get $0 - local.get $1 + call $~lib/set/Set#values + local.tee $1 i32.store offset=4 - ) - (func $~lib/array/Array#set:byteLength (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - i32.store offset=8 - ) - (func $~lib/array/Array#set:length_ (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - i32.store offset=12 - ) - (func $~lib/array/Array#__uset (param $0 i32) (param $1 i32) (param $2 i32) - local.get $0 - i32.load offset=4 - local.get $1 - i32.const 0 - i32.shl - i32.add - local.get $2 - i32.store8 + global.get $~lib/memory/__stack_pointer i32.const 0 - drop - ) - (func $~lib/array/Array#set:length (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + call $~lib/set/Set#constructor + local.tee $4 + i32.store offset=8 i32.const 0 - call $~lib/array/ensureSize - local.get $0 - local.get $1 - call $~lib/array/Array#set:length_ - ) - (func $~lib/array/Array#get:length (param $0 i32) (result i32) - local.get $0 - i32.load offset=12 - ) - (func $~lib/array/Array#__get (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - local.get $1 + local.set $5 + loop $for-loop|4 + local.get $5 + local.get $1 + call $~lib/array/Array#get:length + i32.lt_s + local.set $6 + local.get $6 + if + local.get $0 + local.get $1 + local.get $5 + call $~lib/array/Array#__get + call $~lib/set/Set#has + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 24 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $4 + local.get $1 + local.get $5 + call $~lib/array/Array#__get + call $~lib/set/Set#add + drop + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|4 + end + end + local.get $4 + call $~lib/set/Set#get:size local.get $0 - i32.load offset=12 - i32.ge_u + call $~lib/set/Set#get:size + i32.eq + i32.eqz if - i32.const 224 - i32.const 592 - i32.const 92 - i32.const 42 + i32.const 0 + i32.const 544 + i32.const 27 + i32.const 3 call $~lib/builtins/abort unreachable end - local.get $0 - i32.load offset=4 - local.get $1 - i32.const 0 - i32.shl - i32.add - i32.load8_u - local.set $2 - i32.const 0 - drop - local.get $2 - ) - (func $~lib/set/Set#clear (param $0 i32) - local.get $0 - i32.const 0 - i32.const 4 - i32.const 4 - i32.mul - call $~lib/arraybuffer/ArrayBuffer#constructor - call $~lib/set/Set#set:buckets - local.get $0 - i32.const 4 - i32.const 1 - i32.sub - call $~lib/set/Set#set:bucketsMask - local.get $0 i32.const 0 - i32.const 4 - i32.const 8 - i32.mul - call $~lib/arraybuffer/ArrayBuffer#constructor - call $~lib/set/Set#set:entries - local.get $0 - i32.const 4 - call $~lib/set/Set#set:entriesCapacity + local.set $5 + loop $for-loop|6 + local.get $5 + i32.const 24 + i32.shl + i32.const 24 + i32.shr_s + i32.const 50 + i32.lt_s + local.set $7 + local.get $7 + if + local.get $0 + local.get $5 + call $~lib/set/Set#has + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 31 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $5 + call $~lib/set/Set#delete + drop + local.get $0 + local.get $5 + call $~lib/set/Set#has + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 33 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|6 + end + end local.get $0 + call $~lib/set/Set#get:size + i32.const 50 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 35 + i32.const 3 + call $~lib/builtins/abort + unreachable + end i32.const 0 - call $~lib/set/Set#set:entriesOffset + local.set $5 + loop $for-loop|8 + local.get $5 + i32.const 24 + i32.shl + i32.const 24 + i32.shr_s + i32.const 50 + i32.lt_s + local.set $8 + local.get $8 + if + local.get $0 + local.get $5 + call $~lib/set/Set#has + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 39 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $5 + call $~lib/set/Set#add + drop + local.get $0 + local.get $5 + call $~lib/set/Set#has + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 41 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $5 + call $~lib/set/Set#delete + drop + local.get $0 + local.get $5 + call $~lib/set/Set#has + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 43 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|8 + end + end + local.get $0 + call $~lib/set/Set#get:size + i32.const 50 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 45 + i32.const 3 + call $~lib/builtins/abort + unreachable + end local.get $0 + call $~lib/set/Set#clear + local.get $0 + call $~lib/set/Set#get:size i32.const 0 - call $~lib/set/Set#set:entriesCount + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 49 + 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/set/Set#set:buckets (param $0 i32) (param $1 i32) + (func $~lib/set/Set#set:buckets (param $0 i32) (param $1 i32) local.get $0 local.get $1 i32.store @@ -4537,12 +4807,12 @@ i32.const 0 call $~lib/rt/itcms/__link ) - (func $~lib/set/Set#set:bucketsMask (param $0 i32) (param $1 i32) + (func $~lib/set/Set#set:bucketsMask (param $0 i32) (param $1 i32) local.get $0 local.get $1 i32.store offset=4 ) - (func $~lib/set/Set#set:entries (param $0 i32) (param $1 i32) + (func $~lib/set/Set#set:entries (param $0 i32) (param $1 i32) local.get $0 local.get $1 i32.store offset=8 @@ -4551,44 +4821,22 @@ i32.const 0 call $~lib/rt/itcms/__link ) - (func $~lib/set/Set#set:entriesCapacity (param $0 i32) (param $1 i32) + (func $~lib/set/Set#set:entriesCapacity (param $0 i32) (param $1 i32) local.get $0 local.get $1 i32.store offset=12 ) - (func $~lib/set/Set#set:entriesOffset (param $0 i32) (param $1 i32) + (func $~lib/set/Set#set:entriesOffset (param $0 i32) (param $1 i32) local.get $0 local.get $1 i32.store offset=16 ) - (func $~lib/set/Set#set:entriesCount (param $0 i32) (param $1 i32) + (func $~lib/set/Set#set:entriesCount (param $0 i32) (param $1 i32) local.get $0 local.get $1 i32.store offset=20 ) - (func $~lib/util/hash/hash16 (param $0 i32) (result i32) - (local $1 i32) - i32.const -2128831035 - local.set $1 - local.get $1 - local.get $0 - i32.const 255 - i32.and - i32.xor - i32.const 16777619 - i32.mul - local.set $1 - local.get $1 - local.get $0 - i32.const 8 - i32.shr_u - i32.xor - i32.const 16777619 - i32.mul - local.set $1 - local.get $1 - ) - (func $~lib/set/Set#find (param $0 i32) (param $1 i32) (param $2 i32) (result 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) @@ -4617,12 +4865,10 @@ i32.eqz if (result i32) local.get $3 - i32.load16_s + i32.load8_u local.get $1 - i32.const 16 - i32.shl - i32.const 16 - i32.shr_s + i32.const 255 + i32.and i32.eq else i32.const 0 @@ -4642,17 +4888,44 @@ end i32.const 0 ) - (func $~lib/set/SetEntry#set:key (param $0 i32) (param $1 i32) + (func $~lib/set/Set#has (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) local.get $0 local.get $1 - i32.store16 + block $~lib/util/hash/HASH|inlined.0 (result i32) + local.get $1 + local.set $2 + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 1 + i32.const 1 + i32.eq + drop + local.get $2 + i32.const 255 + i32.and + call $~lib/util/hash/hash8 + br $~lib/util/hash/HASH|inlined.0 + end + call $~lib/set/Set#find + i32.const 0 + i32.ne ) - (func $~lib/set/SetEntry#set:taggedNext (param $0 i32) (param $1 i32) + (func $~lib/set/SetEntry#set:key (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store8 + ) + (func $~lib/set/SetEntry#set:taggedNext (param $0 i32) (param $1 i32) local.get $0 local.get $1 i32.store offset=4 ) - (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) @@ -4730,12 +5003,12 @@ local.get $8 local.set $11 local.get $10 - i32.load16_s + i32.load8_u local.set $12 local.get $11 local.get $12 - call $~lib/set/SetEntry#set:key - block $~lib/util/hash/HASH|inlined.2 (result i32) + call $~lib/set/SetEntry#set:key + block $~lib/util/hash/HASH|inlined.2 (result i32) local.get $12 local.set $13 i32.const 0 @@ -4744,17 +5017,13 @@ drop i32.const 0 drop - i32.const 2 i32.const 1 - i32.eq - drop - i32.const 2 - i32.const 2 + i32.const 1 i32.eq drop local.get $13 - call $~lib/util/hash/hash16 - br $~lib/util/hash/HASH|inlined.2 + call $~lib/util/hash/hash8 + br $~lib/util/hash/HASH|inlined.2 end local.get $1 i32.and @@ -4768,7 +5037,7 @@ local.get $11 local.get $14 i32.load - call $~lib/set/SetEntry#set:taggedNext + call $~lib/set/SetEntry#set:taggedNext local.get $14 local.get $8 i32.store @@ -4786,30 +5055,136 @@ end local.get $0 local.get $3 - call $~lib/set/Set#set:buckets + call $~lib/set/Set#set:buckets local.get $0 local.get $1 - call $~lib/set/Set#set:bucketsMask + call $~lib/set/Set#set:bucketsMask local.get $0 local.get $5 - call $~lib/set/Set#set:entries + call $~lib/set/Set#set:entries local.get $0 local.get $4 - call $~lib/set/Set#set:entriesCapacity + call $~lib/set/Set#set:entriesCapacity local.get $0 local.get $0 i32.load offset=20 - call $~lib/set/Set#set:entriesOffset + call $~lib/set/Set#set:entriesOffset 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) + (func $~lib/set/Set#add (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + block $~lib/util/hash/HASH|inlined.1 (result i32) + local.get $1 + local.set $2 + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 1 + i32.const 1 + i32.eq + drop + local.get $2 + i32.const 255 + i32.and + call $~lib/util/hash/hash8 + br $~lib/util/hash/HASH|inlined.1 + end + local.set $3 + local.get $0 + local.get $1 + local.get $3 + call $~lib/set/Set#find + local.set $4 + local.get $4 + i32.eqz + if + local.get $0 + i32.load offset=16 + local.get $0 + i32.load offset=12 + i32.eq + if + local.get $0 + local.get $0 + i32.load offset=20 + 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 $0 + i32.load offset=4 + else + local.get $0 + i32.load offset=4 + i32.const 1 + i32.shl + i32.const 1 + i32.or + end + call $~lib/set/Set#rehash + end + local.get $0 + i32.load offset=8 + local.get $0 + local.get $0 + i32.load offset=16 + local.tee $2 + i32.const 1 + i32.add + call $~lib/set/Set#set:entriesOffset + local.get $2 + i32.const 8 + i32.mul + i32.add + local.set $4 + local.get $4 + local.get $1 + call $~lib/set/SetEntry#set:key + i32.const 0 + drop + local.get $0 + local.get $0 + i32.load offset=20 + i32.const 1 + i32.add + call $~lib/set/Set#set:entriesCount + local.get $0 + i32.load + local.get $3 + local.get $0 + i32.load offset=4 + i32.and + i32.const 4 + i32.mul + i32.add + local.set $2 + local.get $4 + local.get $2 + i32.load + call $~lib/set/SetEntry#set:taggedNext + local.get $2 + local.get $4 + i32.store + end + local.get $0 + ) + (func $~lib/set/Set#get:size (param $0 i32) (result i32) local.get $0 i32.load offset=20 ) - (func $~lib/array/Array#set:buffer (param $0 i32) (param $1 i32) + (func $~lib/array/Array#set:buffer (param $0 i32) (param $1 i32) local.get $0 local.get $1 i32.store @@ -4818,47 +5193,81 @@ i32.const 0 call $~lib/rt/itcms/__link ) - (func $~lib/array/Array#set:dataStart (param $0 i32) (param $1 i32) + (func $~lib/array/Array#set:dataStart (param $0 i32) (param $1 i32) local.get $0 local.get $1 i32.store offset=4 ) - (func $~lib/array/Array#set:byteLength (param $0 i32) (param $1 i32) + (func $~lib/array/Array#set:byteLength (param $0 i32) (param $1 i32) local.get $0 local.get $1 i32.store offset=8 ) - (func $~lib/array/Array#set:length_ (param $0 i32) (param $1 i32) + (func $~lib/array/Array#set:length_ (param $0 i32) (param $1 i32) local.get $0 local.get $1 i32.store offset=12 ) - (func $~lib/array/Array#__uset (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/array/Array#__uset (param $0 i32) (param $1 i32) (param $2 i32) local.get $0 i32.load offset=4 local.get $1 - i32.const 1 + i32.const 0 i32.shl i32.add local.get $2 - i32.store16 + i32.store8 i32.const 0 drop ) - (func $~lib/array/Array#set:length (param $0 i32) (param $1 i32) + (func $~lib/array/Array#__set (param $0 i32) (param $1 i32) (param $2 i32) + 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 224 + i32.const 592 + i32.const 108 + i32.const 22 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $1 + i32.const 1 + i32.add + i32.const 0 + call $~lib/array/ensureSize + local.get $0 + local.get $1 + i32.const 1 + i32.add + call $~lib/array/Array#set:length_ + end local.get $0 local.get $1 - i32.const 1 + local.get $2 + call $~lib/array/Array#__uset + ) + (func $~lib/array/Array#set:length (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.const 0 call $~lib/array/ensureSize local.get $0 local.get $1 - call $~lib/array/Array#set:length_ + call $~lib/array/Array#set:length_ ) - (func $~lib/array/Array#get:length (param $0 i32) (result i32) + (func $~lib/array/Array#get:length (param $0 i32) (result i32) local.get $0 i32.load offset=12 ) - (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 i32) (local $2 i32) local.get $1 local.get $0 @@ -4875,146 +5284,132 @@ local.get $0 i32.load offset=4 local.get $1 - i32.const 1 + i32.const 0 i32.shl i32.add - i32.load16_s + i32.load8_u local.set $2 i32.const 0 drop local.get $2 ) - (func $~lib/set/Set#clear (param $0 i32) + (func $~lib/set/Set#delete (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) local.get $0 - i32.const 0 - i32.const 4 - i32.const 4 - i32.mul - call $~lib/arraybuffer/ArrayBuffer#constructor - call $~lib/set/Set#set:buckets + local.get $1 + block $~lib/util/hash/HASH|inlined.3 (result i32) + local.get $1 + local.set $2 + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 1 + i32.const 1 + i32.eq + drop + local.get $2 + i32.const 255 + i32.and + call $~lib/util/hash/hash8 + br $~lib/util/hash/HASH|inlined.3 + end + call $~lib/set/Set#find + local.set $3 + local.get $3 + i32.eqz + if + i32.const 0 + return + end + local.get $3 + local.get $3 + i32.load offset=4 + i32.const 1 + i32.or + call $~lib/set/SetEntry#set:taggedNext local.get $0 - i32.const 4 + local.get $0 + i32.load offset=20 i32.const 1 i32.sub - call $~lib/set/Set#set:bucketsMask - local.get $0 - i32.const 0 - i32.const 4 - i32.const 8 - i32.mul - call $~lib/arraybuffer/ArrayBuffer#constructor - call $~lib/set/Set#set:entries + call $~lib/set/Set#set:entriesCount local.get $0 + i32.load offset=4 + i32.const 1 + i32.shr_u + local.set $4 + local.get $4 + i32.const 1 + i32.add i32.const 4 - call $~lib/set/Set#set:entriesCapacity - local.get $0 - i32.const 0 - call $~lib/set/Set#set:entriesOffset - local.get $0 - i32.const 0 - call $~lib/set/Set#set:entriesCount - ) - (func $~lib/set/Set#set:buckets (param $0 i32) (param $1 i32) + local.tee $2 local.get $0 - local.get $1 - i32.store - local.get $0 - local.get $1 - i32.const 0 - call $~lib/rt/itcms/__link - ) - (func $~lib/set/Set#set:bucketsMask (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - i32.store offset=4 + i32.load offset=20 + local.tee $5 + local.get $2 + local.get $5 + i32.gt_u + select + i32.ge_u + if (result i32) + local.get $0 + i32.load offset=20 + 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 $0 + local.get $4 + call $~lib/set/Set#rehash + end + i32.const 1 ) - (func $~lib/set/Set#set:entries (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - i32.store offset=8 + (func $~lib/set/Set#clear (param $0 i32) local.get $0 - local.get $1 i32.const 0 - call $~lib/rt/itcms/__link - ) - (func $~lib/set/Set#set:entriesCapacity (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - i32.store offset=12 - ) - (func $~lib/set/Set#set:entriesOffset (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - i32.store offset=16 - ) - (func $~lib/set/Set#set:entriesCount (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - i32.store offset=20 - ) - (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) + i32.const 4 + i32.const 4 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + call $~lib/set/Set#set:buckets local.get $0 - i32.load - local.get $2 + i32.const 4 + i32.const 1 + i32.sub + call $~lib/set/Set#set:bucketsMask local.get $0 - i32.load offset=4 - i32.and + i32.const 0 i32.const 4 + i32.const 8 i32.mul - i32.add - i32.load - local.set $3 - loop $while-continue|0 - local.get $3 - local.set $4 - local.get $4 - if - local.get $3 - i32.load offset=4 - local.set $5 - local.get $5 - i32.const 1 - i32.and - i32.eqz - if (result i32) - local.get $3 - i32.load16_u - local.get $1 - i32.const 65535 - i32.and - i32.eq - else - i32.const 0 - end - if - local.get $3 - return - end - local.get $5 - i32.const 1 - i32.const -1 - i32.xor - i32.and - local.set $3 - br $while-continue|0 - end - end - i32.const 0 - ) - (func $~lib/set/SetEntry#set:key (param $0 i32) (param $1 i32) + call $~lib/arraybuffer/ArrayBuffer#constructor + call $~lib/set/Set#set:entries local.get $0 - local.get $1 - i32.store16 - ) - (func $~lib/set/SetEntry#set:taggedNext (param $0 i32) (param $1 i32) + i32.const 4 + call $~lib/set/Set#set:entriesCapacity local.get $0 - local.get $1 - i32.store offset=4 + i32.const 0 + call $~lib/set/Set#set:entriesOffset + local.get $0 + i32.const 0 + call $~lib/set/Set#set:entriesCount ) - (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) @@ -5022,261 +5417,360 @@ (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) 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 - local.get $1 - i32.const 1 - i32.add - local.set $2 global.get $~lib/memory/__stack_pointer i32.const 0 - local.get $2 - i32.const 4 - i32.mul - call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $3 - i32.store - local.get $2 - i32.const 8 - i32.mul - i32.const 3 - i32.div_s - local.set $4 + i32.store offset=8 global.get $~lib/memory/__stack_pointer i32.const 0 - local.get $4 - i32.const 8 - i32.mul - call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $5 - i32.store offset=4 - local.get $0 - i32.load offset=8 - local.set $6 - local.get $6 - local.get $0 - i32.load offset=16 - i32.const 8 - i32.mul - i32.add - local.set $7 - local.get $5 - local.set $8 - loop $while-continue|0 - local.get $6 - local.get $7 - i32.ne - local.set $9 - local.get $9 + call $~lib/set/Set#constructor + local.tee $0 + i32.store + i32.const 0 + local.set $1 + loop $for-loop|1 + local.get $1 + i32.const 255 + i32.and + i32.const 100 + i32.lt_u + local.set $3 + local.get $3 if - local.get $6 - local.set $10 - local.get $10 - i32.load offset=4 - i32.const 1 - i32.and + local.get $0 + local.get $1 + call $~lib/set/Set#has + i32.eqz i32.eqz if - local.get $8 - local.set $11 - local.get $10 - i32.load16_u - local.set $12 - local.get $11 - local.get $12 - call $~lib/set/SetEntry#set:key - block $~lib/util/hash/HASH|inlined.2 (result i32) - local.get $12 - local.set $13 - i32.const 0 - drop - i32.const 0 - drop - i32.const 0 - drop - i32.const 2 - i32.const 1 - i32.eq - drop - i32.const 2 - i32.const 2 - i32.eq - drop - local.get $13 - call $~lib/util/hash/hash16 - br $~lib/util/hash/HASH|inlined.2 - end - local.get $1 - i32.and - local.set $13 - local.get $3 - local.get $13 - i32.const 4 - i32.mul - i32.add - local.set $14 - local.get $11 - local.get $14 - i32.load - call $~lib/set/SetEntry#set:taggedNext - local.get $14 - local.get $8 - i32.store - local.get $8 - i32.const 8 - i32.add - local.set $8 + i32.const 0 + i32.const 544 + i32.const 6 + i32.const 5 + call $~lib/builtins/abort + unreachable end - local.get $6 - i32.const 8 + local.get $0 + local.get $1 + call $~lib/set/Set#add + drop + local.get $0 + local.get $1 + call $~lib/set/Set#has + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 8 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 1 i32.add - local.set $6 - br $while-continue|0 + local.set $1 + br $for-loop|1 end end local.get $0 - local.get $3 - call $~lib/set/Set#set:buckets - local.get $0 - local.get $1 - call $~lib/set/Set#set:bucketsMask - local.get $0 - local.get $5 - call $~lib/set/Set#set:entries - local.get $0 - local.get $4 - call $~lib/set/Set#set:entriesCapacity - local.get $0 + call $~lib/set/Set#get:size + i32.const 100 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 10 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 50 + local.set $1 + loop $for-loop|3 + local.get $1 + i32.const 255 + i32.and + i32.const 100 + i32.lt_u + local.set $4 + local.get $4 + if + local.get $0 + local.get $1 + call $~lib/set/Set#has + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 14 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $1 + call $~lib/set/Set#add + drop + local.get $0 + local.get $1 + call $~lib/set/Set#has + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 16 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|3 + end + end local.get $0 - i32.load offset=20 - call $~lib/set/Set#set:entriesOffset + call $~lib/set/Set#get:size + i32.const 100 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + 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 - ) - (func $~lib/set/Set#get:size (param $0 i32) (result i32) - local.get $0 - i32.load offset=20 - ) - (func $~lib/array/Array#set:buffer (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - i32.store local.get $0 - local.get $1 - i32.const 0 - call $~lib/rt/itcms/__link - ) - (func $~lib/array/Array#set:dataStart (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + call $~lib/set/Set#values + local.tee $1 i32.store offset=4 - ) - (func $~lib/array/Array#set:byteLength (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + global.get $~lib/memory/__stack_pointer + i32.const 0 + call $~lib/set/Set#constructor + local.tee $4 i32.store offset=8 - ) - (func $~lib/array/Array#set:length_ (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - i32.store offset=12 - ) - (func $~lib/array/Array#__uset (param $0 i32) (param $1 i32) (param $2 i32) - local.get $0 - i32.load offset=4 - local.get $1 - i32.const 1 - i32.shl - i32.add - local.get $2 - i32.store16 i32.const 0 - drop - ) - (func $~lib/array/Array#set:length (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - i32.const 1 - call $~lib/array/ensureSize - local.get $0 - local.get $1 - call $~lib/array/Array#set:length_ - ) - (func $~lib/array/Array#get:length (param $0 i32) (result i32) - local.get $0 - i32.load offset=12 - ) - (func $~lib/array/Array#__get (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - local.get $1 + local.set $5 + loop $for-loop|4 + local.get $5 + local.get $1 + call $~lib/array/Array#get:length + i32.lt_s + local.set $6 + local.get $6 + if + local.get $0 + local.get $1 + local.get $5 + call $~lib/array/Array#__get + call $~lib/set/Set#has + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 24 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $4 + local.get $1 + local.get $5 + call $~lib/array/Array#__get + call $~lib/set/Set#add + drop + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|4 + end + end + local.get $4 + call $~lib/set/Set#get:size local.get $0 - i32.load offset=12 - i32.ge_u + call $~lib/set/Set#get:size + i32.eq + i32.eqz if - i32.const 224 - i32.const 592 - i32.const 92 - i32.const 42 + i32.const 0 + i32.const 544 + i32.const 27 + i32.const 3 call $~lib/builtins/abort unreachable end - local.get $0 - i32.load offset=4 - local.get $1 - i32.const 1 - i32.shl - i32.add - i32.load16_u - local.set $2 - i32.const 0 - drop - local.get $2 - ) - (func $~lib/set/Set#clear (param $0 i32) - local.get $0 - i32.const 0 - i32.const 4 - i32.const 4 - i32.mul - call $~lib/arraybuffer/ArrayBuffer#constructor - call $~lib/set/Set#set:buckets - local.get $0 - i32.const 4 - i32.const 1 - i32.sub - call $~lib/set/Set#set:bucketsMask - local.get $0 i32.const 0 - i32.const 4 - i32.const 8 - i32.mul - call $~lib/arraybuffer/ArrayBuffer#constructor - call $~lib/set/Set#set:entries - local.get $0 - i32.const 4 - call $~lib/set/Set#set:entriesCapacity + local.set $5 + loop $for-loop|6 + local.get $5 + i32.const 255 + i32.and + i32.const 50 + i32.lt_u + local.set $7 + local.get $7 + if + local.get $0 + local.get $5 + call $~lib/set/Set#has + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 31 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $5 + call $~lib/set/Set#delete + drop + local.get $0 + local.get $5 + call $~lib/set/Set#has + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 33 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|6 + end + end local.get $0 + call $~lib/set/Set#get:size + i32.const 50 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 35 + i32.const 3 + call $~lib/builtins/abort + unreachable + end i32.const 0 - call $~lib/set/Set#set:entriesOffset + local.set $5 + loop $for-loop|8 + local.get $5 + i32.const 255 + i32.and + i32.const 50 + i32.lt_u + local.set $8 + local.get $8 + if + local.get $0 + local.get $5 + call $~lib/set/Set#has + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 39 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $5 + call $~lib/set/Set#add + drop + local.get $0 + local.get $5 + call $~lib/set/Set#has + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 41 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $5 + call $~lib/set/Set#delete + drop + local.get $0 + local.get $5 + call $~lib/set/Set#has + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 43 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|8 + end + end + local.get $0 + call $~lib/set/Set#get:size + i32.const 50 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 45 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + call $~lib/set/Set#clear local.get $0 + call $~lib/set/Set#get:size i32.const 0 - call $~lib/set/Set#set:entriesCount + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 49 + 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/set/Set#set:buckets (param $0 i32) (param $1 i32) + (func $~lib/set/Set#set:buckets (param $0 i32) (param $1 i32) local.get $0 local.get $1 i32.store @@ -5285,12 +5779,12 @@ i32.const 0 call $~lib/rt/itcms/__link ) - (func $~lib/set/Set#set:bucketsMask (param $0 i32) (param $1 i32) + (func $~lib/set/Set#set:bucketsMask (param $0 i32) (param $1 i32) local.get $0 local.get $1 i32.store offset=4 ) - (func $~lib/set/Set#set:entries (param $0 i32) (param $1 i32) + (func $~lib/set/Set#set:entries (param $0 i32) (param $1 i32) local.get $0 local.get $1 i32.store offset=8 @@ -5299,22 +5793,22 @@ i32.const 0 call $~lib/rt/itcms/__link ) - (func $~lib/set/Set#set:entriesCapacity (param $0 i32) (param $1 i32) + (func $~lib/set/Set#set:entriesCapacity (param $0 i32) (param $1 i32) local.get $0 local.get $1 i32.store offset=12 ) - (func $~lib/set/Set#set:entriesOffset (param $0 i32) (param $1 i32) + (func $~lib/set/Set#set:entriesOffset (param $0 i32) (param $1 i32) local.get $0 local.get $1 i32.store offset=16 ) - (func $~lib/set/Set#set:entriesCount (param $0 i32) (param $1 i32) + (func $~lib/set/Set#set:entriesCount (param $0 i32) (param $1 i32) local.get $0 local.get $1 i32.store offset=20 ) - (func $~lib/util/hash/hash32 (param $0 i32) (result i32) + (func $~lib/util/hash/hash16 (param $0 i32) (result i32) (local $1 i32) i32.const -2128831035 local.set $1 @@ -5330,33 +5824,13 @@ local.get $0 i32.const 8 i32.shr_u - i32.const 255 - i32.and - i32.xor - i32.const 16777619 - i32.mul - local.set $1 - local.get $1 - local.get $0 - i32.const 16 - i32.shr_u - i32.const 255 - i32.and - i32.xor - i32.const 16777619 - i32.mul - local.set $1 - local.get $1 - local.get $0 - i32.const 24 - i32.shr_u i32.xor i32.const 16777619 i32.mul local.set $1 local.get $1 ) - (func $~lib/set/Set#find (param $0 i32) (param $1 i32) (param $2 i32) (result 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) @@ -5385,8 +5859,12 @@ i32.eqz if (result i32) local.get $3 - i32.load + i32.load16_s local.get $1 + i32.const 16 + i32.shl + i32.const 16 + i32.shr_s i32.eq else i32.const 0 @@ -5406,17 +5884,50 @@ end i32.const 0 ) - (func $~lib/set/SetEntry#set:key (param $0 i32) (param $1 i32) + (func $~lib/set/Set#has (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) local.get $0 local.get $1 - i32.store + block $~lib/util/hash/HASH|inlined.0 (result i32) + local.get $1 + local.set $2 + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 2 + i32.const 1 + i32.eq + drop + i32.const 2 + i32.const 2 + i32.eq + drop + local.get $2 + i32.const 16 + i32.shl + i32.const 16 + i32.shr_s + call $~lib/util/hash/hash16 + br $~lib/util/hash/HASH|inlined.0 + end + call $~lib/set/Set#find + i32.const 0 + i32.ne ) - (func $~lib/set/SetEntry#set:taggedNext (param $0 i32) (param $1 i32) + (func $~lib/set/SetEntry#set:key (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store16 + ) + (func $~lib/set/SetEntry#set:taggedNext (param $0 i32) (param $1 i32) local.get $0 local.get $1 i32.store offset=4 ) - (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) @@ -5494,12 +6005,12 @@ local.get $8 local.set $11 local.get $10 - i32.load + i32.load16_s local.set $12 local.get $11 local.get $12 - call $~lib/set/SetEntry#set:key - block $~lib/util/hash/HASH|inlined.2 (result i32) + call $~lib/set/SetEntry#set:key + block $~lib/util/hash/HASH|inlined.2 (result i32) local.get $12 local.set $13 i32.const 0 @@ -5508,21 +6019,17 @@ drop i32.const 0 drop - i32.const 4 + i32.const 2 i32.const 1 i32.eq drop - i32.const 4 i32.const 2 - i32.eq - drop - i32.const 4 - i32.const 4 + i32.const 2 i32.eq drop local.get $13 - call $~lib/util/hash/hash32 - br $~lib/util/hash/HASH|inlined.2 + call $~lib/util/hash/hash16 + br $~lib/util/hash/HASH|inlined.2 end local.get $1 i32.and @@ -5536,7 +6043,7 @@ local.get $11 local.get $14 i32.load - call $~lib/set/SetEntry#set:taggedNext + call $~lib/set/SetEntry#set:taggedNext local.get $14 local.get $8 i32.store @@ -5554,30 +6061,142 @@ end local.get $0 local.get $3 - call $~lib/set/Set#set:buckets + call $~lib/set/Set#set:buckets local.get $0 local.get $1 - call $~lib/set/Set#set:bucketsMask + call $~lib/set/Set#set:bucketsMask local.get $0 local.get $5 - call $~lib/set/Set#set:entries + call $~lib/set/Set#set:entries local.get $0 local.get $4 - call $~lib/set/Set#set:entriesCapacity + call $~lib/set/Set#set:entriesCapacity local.get $0 local.get $0 i32.load offset=20 - call $~lib/set/Set#set:entriesOffset + call $~lib/set/Set#set:entriesOffset 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) + (func $~lib/set/Set#add (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + block $~lib/util/hash/HASH|inlined.1 (result i32) + local.get $1 + local.set $2 + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 2 + i32.const 1 + i32.eq + drop + i32.const 2 + i32.const 2 + i32.eq + drop + local.get $2 + i32.const 16 + i32.shl + i32.const 16 + i32.shr_s + call $~lib/util/hash/hash16 + br $~lib/util/hash/HASH|inlined.1 + end + local.set $3 + local.get $0 + local.get $1 + local.get $3 + call $~lib/set/Set#find + local.set $4 + local.get $4 + i32.eqz + if + local.get $0 + i32.load offset=16 + local.get $0 + i32.load offset=12 + i32.eq + if + local.get $0 + local.get $0 + i32.load offset=20 + 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 $0 + i32.load offset=4 + else + local.get $0 + i32.load offset=4 + i32.const 1 + i32.shl + i32.const 1 + i32.or + end + call $~lib/set/Set#rehash + end + local.get $0 + i32.load offset=8 + local.get $0 + local.get $0 + i32.load offset=16 + local.tee $2 + i32.const 1 + i32.add + call $~lib/set/Set#set:entriesOffset + local.get $2 + i32.const 8 + i32.mul + i32.add + local.set $4 + local.get $4 + local.get $1 + call $~lib/set/SetEntry#set:key + i32.const 0 + drop + local.get $0 + local.get $0 + i32.load offset=20 + i32.const 1 + i32.add + call $~lib/set/Set#set:entriesCount + local.get $0 + i32.load + local.get $3 + local.get $0 + i32.load offset=4 + i32.and + i32.const 4 + i32.mul + i32.add + local.set $2 + local.get $4 + local.get $2 + i32.load + call $~lib/set/SetEntry#set:taggedNext + local.get $2 + local.get $4 + i32.store + end + local.get $0 + ) + (func $~lib/set/Set#get:size (param $0 i32) (result i32) local.get $0 i32.load offset=20 ) - (func $~lib/array/Array#set:buffer (param $0 i32) (param $1 i32) + (func $~lib/array/Array#set:buffer (param $0 i32) (param $1 i32) local.get $0 local.get $1 i32.store @@ -5586,47 +6205,81 @@ i32.const 0 call $~lib/rt/itcms/__link ) - (func $~lib/array/Array#set:dataStart (param $0 i32) (param $1 i32) + (func $~lib/array/Array#set:dataStart (param $0 i32) (param $1 i32) local.get $0 local.get $1 i32.store offset=4 ) - (func $~lib/array/Array#set:byteLength (param $0 i32) (param $1 i32) + (func $~lib/array/Array#set:byteLength (param $0 i32) (param $1 i32) local.get $0 local.get $1 i32.store offset=8 ) - (func $~lib/array/Array#set:length_ (param $0 i32) (param $1 i32) + (func $~lib/array/Array#set:length_ (param $0 i32) (param $1 i32) local.get $0 local.get $1 i32.store offset=12 ) - (func $~lib/array/Array#__uset (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/array/Array#__uset (param $0 i32) (param $1 i32) (param $2 i32) local.get $0 i32.load offset=4 local.get $1 - i32.const 2 + i32.const 1 i32.shl i32.add local.get $2 - i32.store + i32.store16 i32.const 0 drop ) - (func $~lib/array/Array#set:length (param $0 i32) (param $1 i32) + (func $~lib/array/Array#__set (param $0 i32) (param $1 i32) (param $2 i32) + 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 224 + i32.const 592 + i32.const 108 + i32.const 22 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $1 + i32.const 1 + i32.add + i32.const 1 + call $~lib/array/ensureSize + local.get $0 + local.get $1 + i32.const 1 + i32.add + call $~lib/array/Array#set:length_ + end local.get $0 local.get $1 - i32.const 2 + local.get $2 + call $~lib/array/Array#__uset + ) + (func $~lib/array/Array#set:length (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.const 1 call $~lib/array/ensureSize local.get $0 local.get $1 - call $~lib/array/Array#set:length_ + call $~lib/array/Array#set:length_ ) - (func $~lib/array/Array#get:length (param $0 i32) (result i32) + (func $~lib/array/Array#get:length (param $0 i32) (result i32) local.get $0 i32.load offset=12 ) - (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 i32) (local $2 i32) local.get $1 local.get $0 @@ -5643,144 +6296,138 @@ local.get $0 i32.load offset=4 local.get $1 - i32.const 2 + i32.const 1 i32.shl i32.add - i32.load + i32.load16_s local.set $2 i32.const 0 drop local.get $2 ) - (func $~lib/set/Set#clear (param $0 i32) + (func $~lib/set/Set#delete (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) local.get $0 - i32.const 0 - i32.const 4 - i32.const 4 - i32.mul - call $~lib/arraybuffer/ArrayBuffer#constructor - call $~lib/set/Set#set:buckets + local.get $1 + block $~lib/util/hash/HASH|inlined.3 (result i32) + local.get $1 + local.set $2 + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 2 + i32.const 1 + i32.eq + drop + i32.const 2 + i32.const 2 + i32.eq + drop + local.get $2 + i32.const 16 + i32.shl + i32.const 16 + i32.shr_s + call $~lib/util/hash/hash16 + br $~lib/util/hash/HASH|inlined.3 + end + call $~lib/set/Set#find + local.set $3 + local.get $3 + i32.eqz + if + i32.const 0 + return + end + local.get $3 + local.get $3 + i32.load offset=4 + i32.const 1 + i32.or + call $~lib/set/SetEntry#set:taggedNext local.get $0 - i32.const 4 + local.get $0 + i32.load offset=20 i32.const 1 i32.sub - call $~lib/set/Set#set:bucketsMask - local.get $0 - i32.const 0 - i32.const 4 - i32.const 8 - i32.mul - call $~lib/arraybuffer/ArrayBuffer#constructor - call $~lib/set/Set#set:entries + call $~lib/set/Set#set:entriesCount local.get $0 + i32.load offset=4 + i32.const 1 + i32.shr_u + local.set $4 + local.get $4 + i32.const 1 + i32.add i32.const 4 - call $~lib/set/Set#set:entriesCapacity - local.get $0 - i32.const 0 - call $~lib/set/Set#set:entriesOffset + local.tee $2 local.get $0 - i32.const 0 - call $~lib/set/Set#set:entriesCount + i32.load offset=20 + local.tee $5 + local.get $2 + local.get $5 + i32.gt_u + select + i32.ge_u + if (result i32) + local.get $0 + i32.load offset=20 + 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 $0 + local.get $4 + call $~lib/set/Set#rehash + end + i32.const 1 ) - (func $~lib/set/Set#set:buckets (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - i32.store + (func $~lib/set/Set#clear (param $0 i32) local.get $0 - local.get $1 i32.const 0 - call $~lib/rt/itcms/__link - ) - (func $~lib/set/Set#set:bucketsMask (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - i32.store offset=4 - ) - (func $~lib/set/Set#set:entries (param $0 i32) (param $1 i32) + i32.const 4 + i32.const 4 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + call $~lib/set/Set#set:buckets local.get $0 - local.get $1 - i32.store offset=8 + i32.const 4 + i32.const 1 + i32.sub + call $~lib/set/Set#set:bucketsMask local.get $0 - local.get $1 i32.const 0 - call $~lib/rt/itcms/__link - ) - (func $~lib/set/Set#set:entriesCapacity (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - i32.store offset=12 - ) - (func $~lib/set/Set#set:entriesOffset (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - i32.store offset=16 - ) - (func $~lib/set/Set#set:entriesCount (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - i32.store offset=20 - ) - (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.get $0 - i32.load - local.get $2 - local.get $0 - i32.load offset=4 - i32.and i32.const 4 + i32.const 8 i32.mul - i32.add - i32.load - local.set $3 - loop $while-continue|0 - local.get $3 - local.set $4 - local.get $4 - if - local.get $3 - i32.load offset=4 - local.set $5 - local.get $5 - i32.const 1 - i32.and - i32.eqz - if (result i32) - local.get $3 - i32.load - local.get $1 - i32.eq - else - i32.const 0 - end - if - local.get $3 - return - end - local.get $5 - i32.const 1 - i32.const -1 - i32.xor - i32.and - local.set $3 - br $while-continue|0 - end - end - i32.const 0 - ) - (func $~lib/set/SetEntry#set:key (param $0 i32) (param $1 i32) + call $~lib/arraybuffer/ArrayBuffer#constructor + call $~lib/set/Set#set:entries local.get $0 - local.get $1 - i32.store - ) - (func $~lib/set/SetEntry#set:taggedNext (param $0 i32) (param $1 i32) + i32.const 4 + call $~lib/set/Set#set:entriesCapacity local.get $0 - local.get $1 - i32.store offset=4 + i32.const 0 + call $~lib/set/Set#set:entriesOffset + local.get $0 + i32.const 0 + call $~lib/set/Set#set:entriesCount ) - (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) @@ -5788,265 +6435,368 @@ (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) 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 - local.get $1 - i32.const 1 - i32.add - local.set $2 global.get $~lib/memory/__stack_pointer i32.const 0 - local.get $2 - i32.const 4 - i32.mul - call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $3 - i32.store - local.get $2 - i32.const 8 - i32.mul - i32.const 3 - i32.div_s - local.set $4 + i32.store offset=8 global.get $~lib/memory/__stack_pointer i32.const 0 - local.get $4 - i32.const 8 - i32.mul - call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $5 - i32.store offset=4 - local.get $0 - i32.load offset=8 - local.set $6 - local.get $6 - local.get $0 - i32.load offset=16 - i32.const 8 - i32.mul - i32.add - local.set $7 - local.get $5 - local.set $8 - loop $while-continue|0 - local.get $6 - local.get $7 - i32.ne - local.set $9 - local.get $9 + call $~lib/set/Set#constructor + local.tee $0 + i32.store + i32.const 0 + local.set $1 + loop $for-loop|1 + local.get $1 + i32.const 16 + i32.shl + i32.const 16 + i32.shr_s + i32.const 100 + i32.lt_s + local.set $3 + local.get $3 if - local.get $6 - local.set $10 - local.get $10 - i32.load offset=4 - i32.const 1 - i32.and + local.get $0 + local.get $1 + call $~lib/set/Set#has + i32.eqz i32.eqz if - local.get $8 - local.set $11 - local.get $10 - i32.load - local.set $12 - local.get $11 - local.get $12 - call $~lib/set/SetEntry#set:key - block $~lib/util/hash/HASH|inlined.2 (result i32) - local.get $12 - local.set $13 - i32.const 0 - drop - i32.const 0 - drop - i32.const 0 - drop - i32.const 4 - i32.const 1 - i32.eq - drop - i32.const 4 - i32.const 2 - i32.eq - drop - i32.const 4 - i32.const 4 - i32.eq - drop - local.get $13 - call $~lib/util/hash/hash32 - br $~lib/util/hash/HASH|inlined.2 - end - local.get $1 - i32.and - local.set $13 - local.get $3 - local.get $13 - i32.const 4 - i32.mul - i32.add - local.set $14 - local.get $11 - local.get $14 - i32.load - call $~lib/set/SetEntry#set:taggedNext - local.get $14 - local.get $8 - i32.store - local.get $8 + i32.const 0 + i32.const 544 + i32.const 6 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $1 + call $~lib/set/Set#add + drop + local.get $0 + local.get $1 + call $~lib/set/Set#has + i32.eqz + if + i32.const 0 + i32.const 544 i32.const 8 - i32.add - local.set $8 + i32.const 5 + call $~lib/builtins/abort + unreachable end - local.get $6 - i32.const 8 + local.get $1 + i32.const 1 i32.add - local.set $6 - br $while-continue|0 + local.set $1 + br $for-loop|1 end end local.get $0 - local.get $3 - call $~lib/set/Set#set:buckets - local.get $0 - local.get $1 - call $~lib/set/Set#set:bucketsMask - local.get $0 - local.get $5 - call $~lib/set/Set#set:entries - local.get $0 - local.get $4 - call $~lib/set/Set#set:entriesCapacity - local.get $0 + call $~lib/set/Set#get:size + i32.const 100 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 10 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 50 + local.set $1 + loop $for-loop|3 + local.get $1 + i32.const 16 + i32.shl + i32.const 16 + i32.shr_s + i32.const 100 + i32.lt_s + local.set $4 + local.get $4 + if + local.get $0 + local.get $1 + call $~lib/set/Set#has + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 14 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $1 + call $~lib/set/Set#add + drop + local.get $0 + local.get $1 + call $~lib/set/Set#has + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 16 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|3 + end + end local.get $0 - i32.load offset=20 - call $~lib/set/Set#set:entriesOffset + call $~lib/set/Set#get:size + i32.const 100 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + 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 - ) - (func $~lib/set/Set#get:size (param $0 i32) (result i32) - local.get $0 - i32.load offset=20 - ) - (func $~lib/array/Array#set:buffer (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - i32.store - local.get $0 - local.get $1 - i32.const 0 - call $~lib/rt/itcms/__link - ) - (func $~lib/array/Array#set:dataStart (param $0 i32) (param $1 i32) local.get $0 - local.get $1 + call $~lib/set/Set#values + local.tee $1 i32.store offset=4 - ) - (func $~lib/array/Array#set:byteLength (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + global.get $~lib/memory/__stack_pointer + i32.const 0 + call $~lib/set/Set#constructor + local.tee $4 i32.store offset=8 - ) - (func $~lib/array/Array#set:length_ (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - i32.store offset=12 - ) - (func $~lib/array/Array#__uset (param $0 i32) (param $1 i32) (param $2 i32) - local.get $0 - i32.load offset=4 - local.get $1 - i32.const 2 - i32.shl - i32.add - local.get $2 - i32.store i32.const 0 - drop - ) - (func $~lib/array/Array#set:length (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - i32.const 2 - call $~lib/array/ensureSize - local.get $0 - local.get $1 - call $~lib/array/Array#set:length_ - ) - (func $~lib/array/Array#get:length (param $0 i32) (result i32) - local.get $0 - i32.load offset=12 - ) - (func $~lib/array/Array#__get (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - local.get $1 + local.set $5 + loop $for-loop|4 + local.get $5 + local.get $1 + call $~lib/array/Array#get:length + i32.lt_s + local.set $6 + local.get $6 + if + local.get $0 + local.get $1 + local.get $5 + call $~lib/array/Array#__get + call $~lib/set/Set#has + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 24 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $4 + local.get $1 + local.get $5 + call $~lib/array/Array#__get + call $~lib/set/Set#add + drop + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|4 + end + end + local.get $4 + call $~lib/set/Set#get:size local.get $0 - i32.load offset=12 - i32.ge_u + call $~lib/set/Set#get:size + i32.eq + i32.eqz if - i32.const 224 - i32.const 592 - i32.const 92 - i32.const 42 + i32.const 0 + i32.const 544 + i32.const 27 + i32.const 3 call $~lib/builtins/abort unreachable end - local.get $0 - i32.load offset=4 - local.get $1 - i32.const 2 - i32.shl - i32.add - i32.load - local.set $2 - i32.const 0 - drop - local.get $2 - ) - (func $~lib/set/Set#clear (param $0 i32) - local.get $0 i32.const 0 - i32.const 4 - i32.const 4 - i32.mul - call $~lib/arraybuffer/ArrayBuffer#constructor - call $~lib/set/Set#set:buckets - local.get $0 - i32.const 4 - i32.const 1 - i32.sub - call $~lib/set/Set#set:bucketsMask + local.set $5 + loop $for-loop|6 + local.get $5 + i32.const 16 + i32.shl + i32.const 16 + i32.shr_s + i32.const 50 + i32.lt_s + local.set $7 + local.get $7 + if + local.get $0 + local.get $5 + call $~lib/set/Set#has + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 31 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $5 + call $~lib/set/Set#delete + drop + local.get $0 + local.get $5 + call $~lib/set/Set#has + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 33 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|6 + end + end local.get $0 + call $~lib/set/Set#get:size + i32.const 50 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 35 + i32.const 3 + call $~lib/builtins/abort + unreachable + end i32.const 0 - i32.const 4 - i32.const 8 - i32.mul - call $~lib/arraybuffer/ArrayBuffer#constructor - call $~lib/set/Set#set:entries + local.set $5 + loop $for-loop|8 + local.get $5 + i32.const 16 + i32.shl + i32.const 16 + i32.shr_s + i32.const 50 + i32.lt_s + local.set $8 + local.get $8 + if + local.get $0 + local.get $5 + call $~lib/set/Set#has + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 39 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $5 + call $~lib/set/Set#add + drop + local.get $0 + local.get $5 + call $~lib/set/Set#has + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 41 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $5 + call $~lib/set/Set#delete + drop + local.get $0 + local.get $5 + call $~lib/set/Set#has + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 43 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|8 + end + end local.get $0 - i32.const 4 - call $~lib/set/Set#set:entriesCapacity + call $~lib/set/Set#get:size + i32.const 50 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 45 + i32.const 3 + call $~lib/builtins/abort + unreachable + end local.get $0 - i32.const 0 - call $~lib/set/Set#set:entriesOffset + call $~lib/set/Set#clear local.get $0 + call $~lib/set/Set#get:size i32.const 0 - call $~lib/set/Set#set:entriesCount + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 49 + 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/set/Set#set:buckets (param $0 i32) (param $1 i32) + (func $~lib/set/Set#set:buckets (param $0 i32) (param $1 i32) local.get $0 local.get $1 i32.store @@ -6055,12 +6805,12 @@ i32.const 0 call $~lib/rt/itcms/__link ) - (func $~lib/set/Set#set:bucketsMask (param $0 i32) (param $1 i32) + (func $~lib/set/Set#set:bucketsMask (param $0 i32) (param $1 i32) local.get $0 local.get $1 i32.store offset=4 ) - (func $~lib/set/Set#set:entries (param $0 i32) (param $1 i32) + (func $~lib/set/Set#set:entries (param $0 i32) (param $1 i32) local.get $0 local.get $1 i32.store offset=8 @@ -6069,123 +6819,35 @@ i32.const 0 call $~lib/rt/itcms/__link ) - (func $~lib/set/Set#set:entriesCapacity (param $0 i32) (param $1 i32) + (func $~lib/set/Set#set:entriesCapacity (param $0 i32) (param $1 i32) local.get $0 local.get $1 i32.store offset=12 ) - (func $~lib/set/Set#set:entriesOffset (param $0 i32) (param $1 i32) + (func $~lib/set/Set#set:entriesOffset (param $0 i32) (param $1 i32) local.get $0 local.get $1 i32.store offset=16 ) - (func $~lib/set/Set#set:entriesCount (param $0 i32) (param $1 i32) + (func $~lib/set/Set#set:entriesCount (param $0 i32) (param $1 i32) local.get $0 local.get $1 i32.store offset=20 ) - (func $~lib/util/hash/hash64 (param $0 i64) (result i32) - (local $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.get $0 - i32.wrap_i64 - local.set $1 - local.get $0 - i64.const 32 - i64.shr_u - i32.wrap_i64 - local.set $2 - i32.const -2128831035 - local.set $3 - local.get $3 - local.get $1 - i32.const 255 - i32.and - i32.xor - i32.const 16777619 - i32.mul - local.set $3 - local.get $3 - local.get $1 - i32.const 8 - i32.shr_u - i32.const 255 - i32.and - i32.xor - i32.const 16777619 - i32.mul - local.set $3 - local.get $3 - local.get $1 - i32.const 16 - i32.shr_u - i32.const 255 - i32.and - i32.xor - i32.const 16777619 - i32.mul - local.set $3 - local.get $3 - local.get $1 - i32.const 24 - i32.shr_u - i32.xor - i32.const 16777619 - i32.mul - local.set $3 - local.get $3 + i32.load local.get $2 - i32.const 255 + local.get $0 + i32.load offset=4 i32.and - i32.xor - i32.const 16777619 + i32.const 4 i32.mul - local.set $3 - local.get $3 - local.get $2 - i32.const 8 - i32.shr_u - i32.const 255 - i32.and - i32.xor - i32.const 16777619 - i32.mul - local.set $3 - local.get $3 - local.get $2 - i32.const 16 - i32.shr_u - i32.const 255 - i32.and - i32.xor - i32.const 16777619 - i32.mul - local.set $3 - local.get $3 - local.get $2 - i32.const 24 - i32.shr_u - i32.xor - i32.const 16777619 - i32.mul - local.set $3 - local.get $3 - ) - (func $~lib/set/Set#find (param $0 i32) (param $1 i64) (param $2 i32) (result i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - local.get $0 - i32.load - local.get $2 - local.get $0 - i32.load offset=4 - i32.and - i32.const 4 - i32.mul - i32.add - i32.load + i32.add + i32.load local.set $3 loop $while-continue|0 local.get $3 @@ -6193,7 +6855,7 @@ local.get $4 if local.get $3 - i32.load offset=8 + i32.load offset=4 local.set $5 local.get $5 i32.const 1 @@ -6201,9 +6863,11 @@ i32.eqz if (result i32) local.get $3 - i64.load + i32.load16_u local.get $1 - i64.eq + i32.const 65535 + i32.and + i32.eq else i32.const 0 end @@ -6222,17 +6886,48 @@ end i32.const 0 ) - (func $~lib/set/SetEntry#set:key (param $0 i32) (param $1 i64) + (func $~lib/set/Set#has (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) local.get $0 local.get $1 - i64.store + block $~lib/util/hash/HASH|inlined.0 (result i32) + local.get $1 + local.set $2 + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 2 + i32.const 1 + i32.eq + drop + i32.const 2 + i32.const 2 + i32.eq + drop + local.get $2 + i32.const 65535 + i32.and + call $~lib/util/hash/hash16 + br $~lib/util/hash/HASH|inlined.0 + end + call $~lib/set/Set#find + i32.const 0 + i32.ne ) - (func $~lib/set/SetEntry#set:taggedNext (param $0 i32) (param $1 i32) + (func $~lib/set/SetEntry#set:key (param $0 i32) (param $1 i32) local.get $0 local.get $1 - i32.store offset=8 + i32.store16 ) - (func $~lib/set/Set#rehash (param $0 i32) (param $1 i32) + (func $~lib/set/SetEntry#set:taggedNext (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=4 + ) + (func $~lib/set/Set#rehash (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -6243,10 +6938,9 @@ (local $9 i32) (local $10 i32) (local $11 i32) - (local $12 i64) - (local $13 i64) + (local $12 i32) + (local $13 i32) (local $14 i32) - (local $15 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -6276,7 +6970,7 @@ global.get $~lib/memory/__stack_pointer i32.const 0 local.get $4 - i32.const 16 + i32.const 8 i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor local.tee $5 @@ -6287,7 +6981,7 @@ local.get $6 local.get $0 i32.load offset=16 - i32.const 16 + i32.const 8 i32.mul i32.add local.set $7 @@ -6303,7 +6997,7 @@ local.get $6 local.set $10 local.get $10 - i32.load offset=8 + i32.load offset=4 i32.const 1 i32.and i32.eqz @@ -6311,12 +7005,12 @@ local.get $8 local.set $11 local.get $10 - i64.load + i32.load16_u local.set $12 local.get $11 local.get $12 - call $~lib/set/SetEntry#set:key - block $~lib/util/hash/HASH|inlined.2 (result i32) + call $~lib/set/SetEntry#set:key + block $~lib/util/hash/HASH|inlined.2 (result i32) local.get $12 local.set $13 i32.const 0 @@ -6325,49 +7019,41 @@ drop i32.const 0 drop - i32.const 8 + i32.const 2 i32.const 1 i32.eq drop - i32.const 8 i32.const 2 - i32.eq - drop - i32.const 8 - i32.const 4 - i32.eq - drop - i32.const 8 - i32.const 8 + i32.const 2 i32.eq drop local.get $13 - call $~lib/util/hash/hash64 - br $~lib/util/hash/HASH|inlined.2 + call $~lib/util/hash/hash16 + br $~lib/util/hash/HASH|inlined.2 end local.get $1 i32.and - local.set $14 + local.set $13 local.get $3 - local.get $14 + local.get $13 i32.const 4 i32.mul i32.add - local.set $15 + local.set $14 local.get $11 - local.get $15 + local.get $14 i32.load - call $~lib/set/SetEntry#set:taggedNext - local.get $15 + call $~lib/set/SetEntry#set:taggedNext + local.get $14 local.get $8 i32.store local.get $8 - i32.const 16 + i32.const 8 i32.add local.set $8 end local.get $6 - i32.const 16 + i32.const 8 i32.add local.set $6 br $while-continue|0 @@ -6375,135 +7061,140 @@ end local.get $0 local.get $3 - call $~lib/set/Set#set:buckets + call $~lib/set/Set#set:buckets local.get $0 local.get $1 - call $~lib/set/Set#set:bucketsMask + call $~lib/set/Set#set:bucketsMask local.get $0 local.get $5 - call $~lib/set/Set#set:entries + call $~lib/set/Set#set:entries local.get $0 local.get $4 - call $~lib/set/Set#set:entriesCapacity + call $~lib/set/Set#set:entriesCapacity local.get $0 local.get $0 i32.load offset=20 - call $~lib/set/Set#set:entriesOffset + call $~lib/set/Set#set:entriesOffset 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) - local.get $0 - i32.load offset=20 - ) - (func $~lib/array/Array#set:buffer (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - i32.store - local.get $0 - local.get $1 - i32.const 0 - call $~lib/rt/itcms/__link - ) - (func $~lib/array/Array#set:dataStart (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - i32.store offset=4 - ) - (func $~lib/array/Array#set:byteLength (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - i32.store offset=8 - ) - (func $~lib/array/Array#set:length_ (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - i32.store offset=12 - ) - (func $~lib/array/Array#__uset (param $0 i32) (param $1 i32) (param $2 i64) - local.get $0 - i32.load offset=4 - local.get $1 - i32.const 3 - i32.shl - i32.add - local.get $2 - i64.store - i32.const 0 - drop - ) - (func $~lib/array/Array#set:length (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - i32.const 3 - call $~lib/array/ensureSize - local.get $0 - local.get $1 - call $~lib/array/Array#set:length_ - ) - (func $~lib/array/Array#get:length (param $0 i32) (result i32) - local.get $0 - i32.load offset=12 - ) - (func $~lib/array/Array#__get (param $0 i32) (param $1 i32) (result i64) - (local $2 i64) - local.get $1 - local.get $0 - i32.load offset=12 - i32.ge_u - if - i32.const 224 - i32.const 592 - i32.const 92 - i32.const 42 - call $~lib/builtins/abort - unreachable + (func $~lib/set/Set#add (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + block $~lib/util/hash/HASH|inlined.1 (result i32) + local.get $1 + local.set $2 + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 2 + i32.const 1 + i32.eq + drop + i32.const 2 + i32.const 2 + i32.eq + drop + local.get $2 + i32.const 65535 + i32.and + call $~lib/util/hash/hash16 + br $~lib/util/hash/HASH|inlined.1 end + local.set $3 local.get $0 - i32.load offset=4 local.get $1 - i32.const 3 - i32.shl - i32.add - i64.load - local.set $2 - i32.const 0 - drop - local.get $2 - ) - (func $~lib/set/Set#clear (param $0 i32) - local.get $0 - i32.const 0 - i32.const 4 - i32.const 4 - i32.mul - call $~lib/arraybuffer/ArrayBuffer#constructor - call $~lib/set/Set#set:buckets - local.get $0 - i32.const 4 - i32.const 1 - i32.sub - call $~lib/set/Set#set:bucketsMask - local.get $0 - i32.const 0 - i32.const 4 - i32.const 16 - i32.mul - call $~lib/arraybuffer/ArrayBuffer#constructor - call $~lib/set/Set#set:entries - local.get $0 - i32.const 4 - call $~lib/set/Set#set:entriesCapacity + local.get $3 + call $~lib/set/Set#find + local.set $4 + local.get $4 + i32.eqz + if + local.get $0 + i32.load offset=16 + local.get $0 + i32.load offset=12 + i32.eq + if + local.get $0 + local.get $0 + i32.load offset=20 + 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 $0 + i32.load offset=4 + else + local.get $0 + i32.load offset=4 + i32.const 1 + i32.shl + i32.const 1 + i32.or + end + call $~lib/set/Set#rehash + end + local.get $0 + i32.load offset=8 + local.get $0 + local.get $0 + i32.load offset=16 + local.tee $2 + i32.const 1 + i32.add + call $~lib/set/Set#set:entriesOffset + local.get $2 + i32.const 8 + i32.mul + i32.add + local.set $4 + local.get $4 + local.get $1 + call $~lib/set/SetEntry#set:key + i32.const 0 + drop + local.get $0 + local.get $0 + i32.load offset=20 + i32.const 1 + i32.add + call $~lib/set/Set#set:entriesCount + local.get $0 + i32.load + local.get $3 + local.get $0 + i32.load offset=4 + i32.and + i32.const 4 + i32.mul + i32.add + local.set $2 + local.get $4 + local.get $2 + i32.load + call $~lib/set/SetEntry#set:taggedNext + local.get $2 + local.get $4 + i32.store + end local.get $0 - i32.const 0 - call $~lib/set/Set#set:entriesOffset + ) + (func $~lib/set/Set#get:size (param $0 i32) (result i32) local.get $0 - i32.const 0 - call $~lib/set/Set#set:entriesCount + i32.load offset=20 ) - (func $~lib/set/Set#set:buckets (param $0 i32) (param $1 i32) + (func $~lib/array/Array#set:buffer (param $0 i32) (param $1 i32) local.get $0 local.get $1 i32.store @@ -6512,465 +7203,227 @@ i32.const 0 call $~lib/rt/itcms/__link ) - (func $~lib/set/Set#set:bucketsMask (param $0 i32) (param $1 i32) + (func $~lib/array/Array#set:dataStart (param $0 i32) (param $1 i32) local.get $0 local.get $1 i32.store offset=4 ) - (func $~lib/set/Set#set:entries (param $0 i32) (param $1 i32) + (func $~lib/array/Array#set:byteLength (param $0 i32) (param $1 i32) local.get $0 local.get $1 i32.store offset=8 - local.get $0 - local.get $1 - i32.const 0 - call $~lib/rt/itcms/__link ) - (func $~lib/set/Set#set:entriesCapacity (param $0 i32) (param $1 i32) + (func $~lib/array/Array#set:length_ (param $0 i32) (param $1 i32) local.get $0 local.get $1 i32.store offset=12 ) - (func $~lib/set/Set#set:entriesOffset (param $0 i32) (param $1 i32) + (func $~lib/array/Array#__uset (param $0 i32) (param $1 i32) (param $2 i32) local.get $0 + i32.load offset=4 local.get $1 - i32.store offset=16 + i32.const 1 + i32.shl + i32.add + local.get $2 + i32.store16 + i32.const 0 + drop ) - (func $~lib/set/Set#set:entriesCount (param $0 i32) (param $1 i32) - local.get $0 + (func $~lib/array/Array#__set (param $0 i32) (param $1 i32) (param $2 i32) local.get $1 - i32.store offset=20 - ) - (func $~lib/set/Set#find (param $0 i32) (param $1 i64) (param $2 i32) (result i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - local.get $0 - i32.load - local.get $2 local.get $0 - i32.load offset=4 - i32.and - i32.const 4 - i32.mul - i32.add - i32.load - local.set $3 - loop $while-continue|0 - local.get $3 - local.set $4 - local.get $4 + i32.load offset=12 + i32.ge_u + if + local.get $1 + i32.const 0 + i32.lt_s if - local.get $3 - i32.load offset=8 - local.set $5 - local.get $5 - i32.const 1 - i32.and - i32.eqz - if (result i32) - local.get $3 - i64.load - local.get $1 - i64.eq - else - i32.const 0 - end - if - local.get $3 - return - end - local.get $5 - i32.const 1 - i32.const -1 - i32.xor - i32.and - local.set $3 - br $while-continue|0 + i32.const 224 + i32.const 592 + i32.const 108 + i32.const 22 + call $~lib/builtins/abort + unreachable end + local.get $0 + local.get $1 + i32.const 1 + i32.add + i32.const 1 + call $~lib/array/ensureSize + local.get $0 + local.get $1 + i32.const 1 + i32.add + call $~lib/array/Array#set:length_ end - i32.const 0 + local.get $0 + local.get $1 + local.get $2 + call $~lib/array/Array#__uset ) - (func $~lib/set/SetEntry#set:key (param $0 i32) (param $1 i64) + (func $~lib/array/Array#set:length (param $0 i32) (param $1 i32) local.get $0 local.get $1 - i64.store + i32.const 1 + call $~lib/array/ensureSize + local.get $0 + local.get $1 + call $~lib/array/Array#set:length_ ) - (func $~lib/set/SetEntry#set:taggedNext (param $0 i32) (param $1 i32) + (func $~lib/array/Array#get:length (param $0 i32) (result i32) local.get $0 + i32.load offset=12 + ) + (func $~lib/array/Array#__get (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) local.get $1 - i32.store offset=8 + local.get $0 + i32.load offset=12 + i32.ge_u + if + i32.const 224 + i32.const 592 + i32.const 92 + i32.const 42 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 1 + i32.shl + i32.add + i32.load16_u + local.set $2 + i32.const 0 + drop + local.get $2 ) - (func $~lib/set/Set#rehash (param $0 i32) (param $1 i32) + (func $~lib/set/Set#delete (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) - (local $12 i64) - (local $13 i64) - (local $14 i32) - (local $15 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 $1 - i32.const 1 - i32.add - local.set $2 - global.get $~lib/memory/__stack_pointer - i32.const 0 - local.get $2 - i32.const 4 - i32.mul - call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $3 - i32.store - local.get $2 - i32.const 8 - i32.mul - i32.const 3 - i32.div_s - local.set $4 - global.get $~lib/memory/__stack_pointer - i32.const 0 - local.get $4 - i32.const 16 - i32.mul - call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $5 - i32.store offset=4 - local.get $0 - i32.load offset=8 - local.set $6 - local.get $6 local.get $0 - i32.load offset=16 - i32.const 16 - i32.mul - i32.add - local.set $7 - local.get $5 - local.set $8 - loop $while-continue|0 - local.get $6 - local.get $7 - i32.ne - local.set $9 - local.get $9 - if - local.get $6 - local.set $10 - local.get $10 - i32.load offset=8 - i32.const 1 - i32.and - i32.eqz - if - local.get $8 - local.set $11 - local.get $10 - i64.load - local.set $12 - local.get $11 - local.get $12 - call $~lib/set/SetEntry#set:key - block $~lib/util/hash/HASH|inlined.2 (result i32) - local.get $12 - local.set $13 - i32.const 0 - drop - i32.const 0 - drop - i32.const 0 - drop - i32.const 8 - i32.const 1 - i32.eq - drop - i32.const 8 - i32.const 2 - i32.eq - drop - i32.const 8 - i32.const 4 - i32.eq - drop - i32.const 8 - i32.const 8 - i32.eq - drop - local.get $13 - call $~lib/util/hash/hash64 - br $~lib/util/hash/HASH|inlined.2 - end - local.get $1 - i32.and - local.set $14 - local.get $3 - local.get $14 - i32.const 4 - i32.mul - i32.add - local.set $15 - local.get $11 - local.get $15 - i32.load - call $~lib/set/SetEntry#set:taggedNext - local.get $15 - local.get $8 - i32.store - local.get $8 - i32.const 16 - i32.add - local.set $8 - end - local.get $6 - i32.const 16 - i32.add - local.set $6 - br $while-continue|0 - end + local.get $1 + block $~lib/util/hash/HASH|inlined.3 (result i32) + local.get $1 + local.set $2 + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 2 + i32.const 1 + i32.eq + drop + i32.const 2 + i32.const 2 + i32.eq + drop + local.get $2 + i32.const 65535 + i32.and + call $~lib/util/hash/hash16 + br $~lib/util/hash/HASH|inlined.3 end - local.get $0 + call $~lib/set/Set#find + local.set $3 local.get $3 - call $~lib/set/Set#set:buckets + i32.eqz + if + i32.const 0 + return + end + local.get $3 + local.get $3 + i32.load offset=4 + i32.const 1 + i32.or + call $~lib/set/SetEntry#set:taggedNext local.get $0 - local.get $1 - call $~lib/set/Set#set:bucketsMask local.get $0 - local.get $5 - call $~lib/set/Set#set:entries + i32.load offset=20 + i32.const 1 + i32.sub + call $~lib/set/Set#set:entriesCount local.get $0 + i32.load offset=4 + i32.const 1 + i32.shr_u + local.set $4 local.get $4 - call $~lib/set/Set#set:entriesCapacity - local.get $0 - local.get $0 - i32.load offset=20 - call $~lib/set/Set#set:entriesOffset - global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 1 i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/set/Set#get:size (param $0 i32) (result i32) + i32.const 4 + local.tee $2 local.get $0 i32.load offset=20 + local.tee $5 + local.get $2 + local.get $5 + i32.gt_u + select + i32.ge_u + if (result i32) + local.get $0 + i32.load offset=20 + 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 $0 + local.get $4 + call $~lib/set/Set#rehash + end + i32.const 1 ) - (func $~lib/array/Array#set:buffer (param $0 i32) (param $1 i32) + (func $~lib/set/Set#clear (param $0 i32) local.get $0 - local.get $1 - i32.store + i32.const 0 + i32.const 4 + i32.const 4 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + call $~lib/set/Set#set:buckets + local.get $0 + i32.const 4 + i32.const 1 + i32.sub + call $~lib/set/Set#set:bucketsMask local.get $0 - local.get $1 i32.const 0 - call $~lib/rt/itcms/__link - ) - (func $~lib/array/Array#set:dataStart (param $0 i32) (param $1 i32) + i32.const 4 + i32.const 8 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + call $~lib/set/Set#set:entries local.get $0 - local.get $1 - i32.store offset=4 - ) - (func $~lib/array/Array#set:byteLength (param $0 i32) (param $1 i32) + i32.const 4 + call $~lib/set/Set#set:entriesCapacity local.get $0 - local.get $1 - i32.store offset=8 - ) - (func $~lib/array/Array#set:length_ (param $0 i32) (param $1 i32) + i32.const 0 + call $~lib/set/Set#set:entriesOffset local.get $0 - local.get $1 - i32.store offset=12 + i32.const 0 + call $~lib/set/Set#set:entriesCount ) - (func $~lib/array/Array#__uset (param $0 i32) (param $1 i32) (param $2 i64) - local.get $0 - i32.load offset=4 - local.get $1 - i32.const 3 - i32.shl - i32.add - local.get $2 - i64.store - i32.const 0 - drop - ) - (func $~lib/array/Array#set:length (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - i32.const 3 - call $~lib/array/ensureSize - local.get $0 - local.get $1 - call $~lib/array/Array#set:length_ - ) - (func $~lib/array/Array#get:length (param $0 i32) (result i32) - local.get $0 - i32.load offset=12 - ) - (func $~lib/array/Array#__get (param $0 i32) (param $1 i32) (result i64) - (local $2 i64) - local.get $1 - local.get $0 - i32.load offset=12 - i32.ge_u - if - i32.const 224 - i32.const 592 - i32.const 92 - i32.const 42 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load offset=4 - local.get $1 - i32.const 3 - i32.shl - i32.add - i64.load - local.set $2 - i32.const 0 - drop - local.get $2 - ) - (func $~lib/set/Set#clear (param $0 i32) - local.get $0 - i32.const 0 - i32.const 4 - i32.const 4 - i32.mul - call $~lib/arraybuffer/ArrayBuffer#constructor - call $~lib/set/Set#set:buckets - local.get $0 - i32.const 4 - i32.const 1 - i32.sub - call $~lib/set/Set#set:bucketsMask - local.get $0 - i32.const 0 - i32.const 4 - i32.const 16 - i32.mul - call $~lib/arraybuffer/ArrayBuffer#constructor - call $~lib/set/Set#set:entries - local.get $0 - i32.const 4 - call $~lib/set/Set#set:entriesCapacity - local.get $0 - i32.const 0 - call $~lib/set/Set#set:entriesOffset - local.get $0 - i32.const 0 - call $~lib/set/Set#set:entriesCount - ) - (func $~lib/set/Set#set:buckets (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - i32.store - local.get $0 - local.get $1 - i32.const 0 - call $~lib/rt/itcms/__link - ) - (func $~lib/set/Set#set:bucketsMask (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - i32.store offset=4 - ) - (func $~lib/set/Set#set:entries (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - i32.store offset=8 - local.get $0 - local.get $1 - i32.const 0 - call $~lib/rt/itcms/__link - ) - (func $~lib/set/Set#set:entriesCapacity (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - i32.store offset=12 - ) - (func $~lib/set/Set#set:entriesOffset (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - i32.store offset=16 - ) - (func $~lib/set/Set#set:entriesCount (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - i32.store offset=20 - ) - (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.get $0 - i32.load - local.get $2 - local.get $0 - i32.load offset=4 - i32.and - i32.const 4 - i32.mul - i32.add - i32.load - local.set $3 - loop $while-continue|0 - local.get $3 - local.set $4 - local.get $4 - if - local.get $3 - i32.load offset=4 - local.set $5 - local.get $5 - i32.const 1 - i32.and - i32.eqz - if (result i32) - local.get $3 - f32.load - local.get $1 - f32.eq - else - i32.const 0 - end - if - local.get $3 - return - end - local.get $5 - i32.const 1 - i32.const -1 - i32.xor - i32.and - local.set $3 - br $while-continue|0 - end - end - i32.const 0 - ) - (func $~lib/set/SetEntry#set:key (param $0 i32) (param $1 f32) - local.get $0 - local.get $1 - f32.store - ) - (func $~lib/set/SetEntry#set:taggedNext (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - i32.store offset=4 - ) - (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) @@ -6978,259 +7431,360 @@ (local $6 i32) (local $7 i32) (local $8 i32) - (local $9 i32) - (local $10 i32) - (local $11 i32) - (local $12 f32) - (local $13 f32) - (local $14 i32) - (local $15 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 - local.get $1 - i32.const 1 - i32.add - local.set $2 global.get $~lib/memory/__stack_pointer i32.const 0 - local.get $2 - i32.const 4 - i32.mul - call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $3 - i32.store - local.get $2 - i32.const 8 - i32.mul - i32.const 3 - i32.div_s - local.set $4 + i32.store offset=8 global.get $~lib/memory/__stack_pointer i32.const 0 - local.get $4 - i32.const 8 - i32.mul - call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $5 - i32.store offset=4 - local.get $0 - i32.load offset=8 - local.set $6 - local.get $6 - local.get $0 - i32.load offset=16 - i32.const 8 - i32.mul - i32.add - local.set $7 - local.get $5 - local.set $8 - loop $while-continue|0 - local.get $6 - local.get $7 - i32.ne - local.set $9 - local.get $9 + call $~lib/set/Set#constructor + local.tee $0 + i32.store + i32.const 0 + local.set $1 + loop $for-loop|1 + local.get $1 + i32.const 65535 + i32.and + i32.const 100 + i32.lt_u + local.set $3 + local.get $3 if - local.get $6 - local.set $10 - local.get $10 - i32.load offset=4 - i32.const 1 - i32.and + local.get $0 + local.get $1 + call $~lib/set/Set#has + i32.eqz i32.eqz if - local.get $8 - local.set $11 - local.get $10 - f32.load - local.set $12 - local.get $11 - local.get $12 - call $~lib/set/SetEntry#set:key - block $~lib/util/hash/HASH|inlined.2 (result i32) - local.get $12 - local.set $13 - i32.const 0 - drop - i32.const 0 - drop - i32.const 1 - drop - i32.const 4 - i32.const 4 - i32.eq - drop - local.get $13 - i32.reinterpret_f32 - call $~lib/util/hash/hash32 - br $~lib/util/hash/HASH|inlined.2 - end - local.get $1 - i32.and - local.set $14 - local.get $3 - local.get $14 - i32.const 4 - i32.mul - i32.add - local.set $15 - local.get $11 - local.get $15 - i32.load - call $~lib/set/SetEntry#set:taggedNext - local.get $15 - local.get $8 - i32.store - local.get $8 + i32.const 0 + i32.const 544 + i32.const 6 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $1 + call $~lib/set/Set#add + drop + local.get $0 + local.get $1 + call $~lib/set/Set#has + i32.eqz + if + i32.const 0 + i32.const 544 i32.const 8 - i32.add - local.set $8 + i32.const 5 + call $~lib/builtins/abort + unreachable end - local.get $6 - i32.const 8 + local.get $1 + i32.const 1 i32.add - local.set $6 - br $while-continue|0 + local.set $1 + br $for-loop|1 end end local.get $0 - local.get $3 - call $~lib/set/Set#set:buckets - local.get $0 - local.get $1 - call $~lib/set/Set#set:bucketsMask - local.get $0 - local.get $5 - call $~lib/set/Set#set:entries - local.get $0 - local.get $4 - call $~lib/set/Set#set:entriesCapacity - local.get $0 - local.get $0 - i32.load offset=20 - call $~lib/set/Set#set:entriesOffset - 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) - local.get $0 - i32.load offset=20 - ) - (func $~lib/array/Array#set:buffer (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - i32.store - local.get $0 - local.get $1 - i32.const 0 - call $~lib/rt/itcms/__link - ) - (func $~lib/array/Array#set:dataStart (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - i32.store offset=4 - ) - (func $~lib/array/Array#set:byteLength (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - i32.store offset=8 - ) - (func $~lib/array/Array#set:length_ (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - i32.store offset=12 - ) - (func $~lib/array/Array#__uset (param $0 i32) (param $1 i32) (param $2 f32) - local.get $0 - i32.load offset=4 - local.get $1 - i32.const 2 - i32.shl - i32.add - local.get $2 - f32.store - i32.const 0 - drop - ) - (func $~lib/array/Array#set:length (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - i32.const 2 - call $~lib/array/ensureSize - local.get $0 - local.get $1 - call $~lib/array/Array#set:length_ - ) - (func $~lib/array/Array#get:length (param $0 i32) (result i32) - local.get $0 - i32.load offset=12 - ) - (func $~lib/array/Array#__get (param $0 i32) (param $1 i32) (result f32) - (local $2 f32) - local.get $1 - local.get $0 - i32.load offset=12 - i32.ge_u + call $~lib/set/Set#get:size + i32.const 100 + i32.eq + i32.eqz if - i32.const 224 - i32.const 592 - i32.const 92 - i32.const 42 + i32.const 0 + i32.const 544 + i32.const 10 + i32.const 3 call $~lib/builtins/abort unreachable end + i32.const 50 + local.set $1 + loop $for-loop|3 + local.get $1 + i32.const 65535 + i32.and + i32.const 100 + i32.lt_u + local.set $4 + local.get $4 + if + local.get $0 + local.get $1 + call $~lib/set/Set#has + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 14 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $1 + call $~lib/set/Set#add + drop + local.get $0 + local.get $1 + call $~lib/set/Set#has + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 16 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|3 + end + end local.get $0 - i32.load offset=4 - local.get $1 - i32.const 2 - i32.shl - i32.add - f32.load - local.set $2 - i32.const 0 - drop - local.get $2 - ) - (func $~lib/set/Set#clear (param $0 i32) + call $~lib/set/Set#get:size + i32.const 100 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 18 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer local.get $0 + call $~lib/set/Set#values + local.tee $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 4 - i32.const 4 - i32.mul - call $~lib/arraybuffer/ArrayBuffer#constructor - call $~lib/set/Set#set:buckets - local.get $0 - i32.const 4 - i32.const 1 - i32.sub - call $~lib/set/Set#set:bucketsMask - local.get $0 + call $~lib/set/Set#constructor + local.tee $4 + i32.store offset=8 i32.const 0 - i32.const 4 - i32.const 8 - i32.mul - call $~lib/arraybuffer/ArrayBuffer#constructor - call $~lib/set/Set#set:entries - local.get $0 - i32.const 4 - call $~lib/set/Set#set:entriesCapacity + local.set $5 + loop $for-loop|4 + local.get $5 + local.get $1 + call $~lib/array/Array#get:length + i32.lt_s + local.set $6 + local.get $6 + if + local.get $0 + local.get $1 + local.get $5 + call $~lib/array/Array#__get + call $~lib/set/Set#has + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 24 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $4 + local.get $1 + local.get $5 + call $~lib/array/Array#__get + call $~lib/set/Set#add + drop + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|4 + end + end + local.get $4 + call $~lib/set/Set#get:size local.get $0 + call $~lib/set/Set#get:size + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 27 + i32.const 3 + call $~lib/builtins/abort + unreachable + end i32.const 0 - call $~lib/set/Set#set:entriesOffset + local.set $5 + loop $for-loop|6 + local.get $5 + i32.const 65535 + i32.and + i32.const 50 + i32.lt_u + local.set $7 + local.get $7 + if + local.get $0 + local.get $5 + call $~lib/set/Set#has + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 31 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $5 + call $~lib/set/Set#delete + drop + local.get $0 + local.get $5 + call $~lib/set/Set#has + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 33 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|6 + end + end local.get $0 + call $~lib/set/Set#get:size + i32.const 50 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 35 + i32.const 3 + call $~lib/builtins/abort + unreachable + end i32.const 0 - call $~lib/set/Set#set:entriesCount + local.set $5 + loop $for-loop|8 + local.get $5 + i32.const 65535 + i32.and + i32.const 50 + i32.lt_u + local.set $8 + local.get $8 + if + local.get $0 + local.get $5 + call $~lib/set/Set#has + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 39 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $5 + call $~lib/set/Set#add + drop + local.get $0 + local.get $5 + call $~lib/set/Set#has + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 41 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $5 + call $~lib/set/Set#delete + drop + local.get $0 + local.get $5 + call $~lib/set/Set#has + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 43 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|8 + end + end + local.get $0 + call $~lib/set/Set#get:size + i32.const 50 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 45 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + call $~lib/set/Set#clear + local.get $0 + call $~lib/set/Set#get:size + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 49 + 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/set/Set#set:buckets (param $0 i32) (param $1 i32) + (func $~lib/set/Set#set:buckets (param $0 i32) (param $1 i32) local.get $0 local.get $1 i32.store @@ -7239,12 +7793,12 @@ i32.const 0 call $~lib/rt/itcms/__link ) - (func $~lib/set/Set#set:bucketsMask (param $0 i32) (param $1 i32) + (func $~lib/set/Set#set:bucketsMask (param $0 i32) (param $1 i32) local.get $0 local.get $1 i32.store offset=4 ) - (func $~lib/set/Set#set:entries (param $0 i32) (param $1 i32) + (func $~lib/set/Set#set:entries (param $0 i32) (param $1 i32) local.get $0 local.get $1 i32.store offset=8 @@ -7253,53 +7807,95 @@ i32.const 0 call $~lib/rt/itcms/__link ) - (func $~lib/set/Set#set:entriesCapacity (param $0 i32) (param $1 i32) + (func $~lib/set/Set#set:entriesCapacity (param $0 i32) (param $1 i32) local.get $0 local.get $1 i32.store offset=12 ) - (func $~lib/set/Set#set:entriesOffset (param $0 i32) (param $1 i32) + (func $~lib/set/Set#set:entriesOffset (param $0 i32) (param $1 i32) local.get $0 local.get $1 i32.store offset=16 ) - (func $~lib/set/Set#set:entriesCount (param $0 i32) (param $1 i32) + (func $~lib/set/Set#set:entriesCount (param $0 i32) (param $1 i32) local.get $0 local.get $1 i32.store offset=20 ) - (func $~lib/set/Set#find (param $0 i32) (param $1 f64) (param $2 i32) (result i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) + (func $~lib/util/hash/hash32 (param $0 i32) (result i32) + (local $1 i32) + i32.const -2128831035 + local.set $1 + local.get $1 local.get $0 - i32.load - local.get $2 + i32.const 255 + i32.and + i32.xor + i32.const 16777619 + i32.mul + local.set $1 + local.get $1 local.get $0 - i32.load offset=4 + i32.const 8 + i32.shr_u + i32.const 255 i32.and - i32.const 4 + i32.xor + i32.const 16777619 i32.mul - i32.add - i32.load - local.set $3 - loop $while-continue|0 - local.get $3 - local.set $4 - local.get $4 - if - local.get $3 - i32.load offset=8 - local.set $5 - local.get $5 - i32.const 1 + local.set $1 + local.get $1 + local.get $0 + i32.const 16 + i32.shr_u + i32.const 255 + i32.and + i32.xor + i32.const 16777619 + i32.mul + local.set $1 + local.get $1 + local.get $0 + i32.const 24 + i32.shr_u + i32.xor + i32.const 16777619 + i32.mul + local.set $1 + local.get $1 + ) + (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.get $0 + i32.load + local.get $2 + local.get $0 + i32.load offset=4 + i32.and + i32.const 4 + i32.mul + i32.add + i32.load + local.set $3 + loop $while-continue|0 + local.get $3 + local.set $4 + local.get $4 + if + local.get $3 + i32.load offset=4 + local.set $5 + local.get $5 + i32.const 1 i32.and i32.eqz if (result i32) local.get $3 - f64.load + i32.load local.get $1 - f64.eq + i32.eq else i32.const 0 end @@ -7318,17 +7914,50 @@ end i32.const 0 ) - (func $~lib/set/SetEntry#set:key (param $0 i32) (param $1 f64) + (func $~lib/set/Set#has (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) local.get $0 local.get $1 - f64.store + block $~lib/util/hash/HASH|inlined.0 (result i32) + local.get $1 + local.set $2 + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 4 + i32.const 1 + i32.eq + drop + i32.const 4 + i32.const 2 + i32.eq + drop + i32.const 4 + i32.const 4 + i32.eq + drop + local.get $2 + call $~lib/util/hash/hash32 + br $~lib/util/hash/HASH|inlined.0 + end + call $~lib/set/Set#find + i32.const 0 + i32.ne ) - (func $~lib/set/SetEntry#set:taggedNext (param $0 i32) (param $1 i32) + (func $~lib/set/SetEntry#set:key (param $0 i32) (param $1 i32) local.get $0 local.get $1 - i32.store offset=8 + i32.store ) - (func $~lib/set/Set#rehash (param $0 i32) (param $1 i32) + (func $~lib/set/SetEntry#set:taggedNext (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=4 + ) + (func $~lib/set/Set#rehash (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -7339,10 +7968,9 @@ (local $9 i32) (local $10 i32) (local $11 i32) - (local $12 f64) - (local $13 f64) + (local $12 i32) + (local $13 i32) (local $14 i32) - (local $15 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -7372,7 +8000,7 @@ global.get $~lib/memory/__stack_pointer i32.const 0 local.get $4 - i32.const 16 + i32.const 8 i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor local.tee $5 @@ -7383,7 +8011,7 @@ local.get $6 local.get $0 i32.load offset=16 - i32.const 16 + i32.const 8 i32.mul i32.add local.set $7 @@ -7399,7 +8027,7 @@ local.get $6 local.set $10 local.get $10 - i32.load offset=8 + i32.load offset=4 i32.const 1 i32.and i32.eqz @@ -7407,56 +8035,59 @@ local.get $8 local.set $11 local.get $10 - f64.load + i32.load local.set $12 local.get $11 local.get $12 - call $~lib/set/SetEntry#set:key - block $~lib/util/hash/HASH|inlined.2 (result i32) + call $~lib/set/SetEntry#set:key + block $~lib/util/hash/HASH|inlined.2 (result i32) local.get $12 local.set $13 i32.const 0 drop i32.const 0 drop + i32.const 0 + drop + i32.const 4 i32.const 1 + i32.eq drop - i32.const 8 i32.const 4 + i32.const 2 i32.eq drop - i32.const 8 - i32.const 8 + i32.const 4 + i32.const 4 i32.eq drop local.get $13 - i64.reinterpret_f64 - call $~lib/util/hash/hash64 - br $~lib/util/hash/HASH|inlined.2 + call $~lib/util/hash/hash32 + br $~lib/util/hash/HASH|inlined.2 end local.get $1 i32.and - local.set $14 + local.set $13 local.get $3 - local.get $14 + local.get $13 i32.const 4 i32.mul i32.add - local.set $15 + local.set $14 local.get $11 - local.get $15 + local.get $14 i32.load - call $~lib/set/SetEntry#set:taggedNext - local.get $15 + call $~lib/set/SetEntry#set:taggedNext + local.get $14 local.get $8 i32.store local.get $8 - i32.const 16 + i32.const 8 i32.add local.set $8 end local.get $6 - i32.const 16 + i32.const 8 i32.add local.set $6 br $while-continue|0 @@ -7464,741 +8095,814 @@ end local.get $0 local.get $3 - call $~lib/set/Set#set:buckets + call $~lib/set/Set#set:buckets local.get $0 local.get $1 - call $~lib/set/Set#set:bucketsMask + call $~lib/set/Set#set:bucketsMask local.get $0 local.get $5 - call $~lib/set/Set#set:entries + call $~lib/set/Set#set:entries local.get $0 local.get $4 - call $~lib/set/Set#set:entriesCapacity + call $~lib/set/Set#set:entriesCapacity local.get $0 local.get $0 i32.load offset=20 - call $~lib/set/Set#set:entriesOffset + call $~lib/set/Set#set:entriesOffset 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) - local.get $0 - i32.load offset=20 - ) - (func $~lib/array/Array#set:buffer (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - i32.store - local.get $0 - local.get $1 - i32.const 0 - call $~lib/rt/itcms/__link - ) - (func $~lib/array/Array#set:dataStart (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - i32.store offset=4 - ) - (func $~lib/array/Array#set:byteLength (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - i32.store offset=8 - ) - (func $~lib/array/Array#set:length_ (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - i32.store offset=12 - ) - (func $~lib/array/Array#__uset (param $0 i32) (param $1 i32) (param $2 f64) - local.get $0 - i32.load offset=4 - local.get $1 - i32.const 3 - i32.shl - i32.add - local.get $2 - f64.store - i32.const 0 - drop - ) - (func $~lib/array/Array#set:length (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - i32.const 3 - call $~lib/array/ensureSize - local.get $0 - local.get $1 - call $~lib/array/Array#set:length_ - ) - (func $~lib/array/Array#get:length (param $0 i32) (result i32) - local.get $0 - i32.load offset=12 - ) - (func $~lib/array/Array#__get (param $0 i32) (param $1 i32) (result f64) - (local $2 f64) - local.get $1 - local.get $0 - i32.load offset=12 - i32.ge_u - if - i32.const 224 - i32.const 592 - i32.const 92 - i32.const 42 - call $~lib/builtins/abort - unreachable + (func $~lib/set/Set#add (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + block $~lib/util/hash/HASH|inlined.1 (result i32) + local.get $1 + local.set $2 + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 4 + i32.const 1 + i32.eq + drop + i32.const 4 + i32.const 2 + i32.eq + drop + i32.const 4 + i32.const 4 + i32.eq + drop + local.get $2 + call $~lib/util/hash/hash32 + br $~lib/util/hash/HASH|inlined.1 end + local.set $3 local.get $0 - i32.load offset=4 local.get $1 - i32.const 3 - i32.shl - i32.add - f64.load - local.set $2 - i32.const 0 - drop - local.get $2 - ) - (func $~lib/set/Set#clear (param $0 i32) - local.get $0 - i32.const 0 - i32.const 4 - i32.const 4 - i32.mul - call $~lib/arraybuffer/ArrayBuffer#constructor - call $~lib/set/Set#set:buckets - local.get $0 - i32.const 4 - i32.const 1 - i32.sub - call $~lib/set/Set#set:bucketsMask - local.get $0 - i32.const 0 - i32.const 4 - i32.const 16 - i32.mul - call $~lib/arraybuffer/ArrayBuffer#constructor - call $~lib/set/Set#set:entries - local.get $0 - i32.const 4 - call $~lib/set/Set#set:entriesCapacity - local.get $0 - i32.const 0 - call $~lib/set/Set#set:entriesOffset - local.get $0 - i32.const 0 - call $~lib/set/Set#set:entriesCount - ) - (func $~lib/rt/itcms/__collect - (local $0 i32) - i32.const 0 - drop - global.get $~lib/rt/itcms/state - i32.const 0 - i32.gt_s + local.get $3 + call $~lib/set/Set#find + local.set $4 + local.get $4 + i32.eqz if - loop $while-continue|0 - global.get $~lib/rt/itcms/state - i32.const 0 - i32.ne - local.set $0 + local.get $0 + i32.load offset=16 + local.get $0 + i32.load offset=12 + i32.eq + if local.get $0 - if - call $~lib/rt/itcms/step - drop - br $while-continue|0 + local.get $0 + i32.load offset=20 + 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 $0 + i32.load offset=4 + else + local.get $0 + i32.load offset=4 + i32.const 1 + i32.shl + i32.const 1 + i32.or end + call $~lib/set/Set#rehash end - end - call $~lib/rt/itcms/step - drop - loop $while-continue|1 - global.get $~lib/rt/itcms/state - i32.const 0 - i32.ne - local.set $0 local.get $0 - 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.const 0 - drop - i32.const 0 - if (result i32) + i32.load offset=8 + local.get $0 + local.get $0 + i32.load offset=16 + local.tee $2 i32.const 1 - else + i32.add + call $~lib/set/Set#set:entriesOffset + local.get $2 + i32.const 8 + i32.mul + i32.add + local.set $4 + local.get $4 + local.get $1 + call $~lib/set/SetEntry#set:key i32.const 0 + drop + local.get $0 + local.get $0 + i32.load offset=20 + i32.const 1 + i32.add + call $~lib/set/Set#set:entriesCount + local.get $0 + i32.load + local.get $3 + local.get $0 + i32.load offset=4 + i32.and + i32.const 4 + i32.mul + i32.add + local.set $2 + local.get $4 + local.get $2 + i32.load + call $~lib/set/SetEntry#set:taggedNext + local.get $2 + local.get $4 + i32.store end - drop - ) - (func $start:std/set - 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 - 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 - call $~lib/rt/itcms/__collect - ) - (func $~lib/rt/__visit_globals (param $0 i32) - (local $1 i32) - i32.const 224 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 432 - 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) + (func $~lib/set/Set#get:size (param $0 i32) (result i32) local.get $0 - i32.load - local.tee $2 - if - local.get $2 - local.get $1 - call $~lib/rt/itcms/__visit - end + i32.load offset=20 ) - (func $~lib/set/Set#__visit (param $0 i32) (param $1 i32) - (local $2 i32) + (func $~lib/array/Array#set:buffer (param $0 i32) (param $1 i32) local.get $0 - i32.load local.get $1 - call $~lib/rt/itcms/__visit + i32.store local.get $0 - i32.load offset=8 - local.set $2 - i32.const 0 - drop - local.get $2 local.get $1 - call $~lib/rt/itcms/__visit + i32.const 0 + call $~lib/rt/itcms/__link ) - (func $~lib/set/Set~visit (param $0 i32) (param $1 i32) + (func $~lib/array/Array#set:dataStart (param $0 i32) (param $1 i32) local.get $0 local.get $1 - call $~lib/set/Set#__visit + i32.store offset=4 ) - (func $~lib/array/Array#__visit (param $0 i32) (param $1 i32) - i32.const 0 - drop + (func $~lib/array/Array#set:byteLength (param $0 i32) (param $1 i32) local.get $0 - i32.load local.get $1 - call $~lib/rt/itcms/__visit + i32.store offset=8 ) - (func $~lib/array/Array~visit (param $0 i32) (param $1 i32) + (func $~lib/array/Array#set:length_ (param $0 i32) (param $1 i32) local.get $0 local.get $1 - call $~lib/array/Array#__visit + i32.store offset=12 ) - (func $~lib/set/Set#__visit (param $0 i32) (param $1 i32) - (local $2 i32) + (func $~lib/array/Array#__uset (param $0 i32) (param $1 i32) (param $2 i32) local.get $0 - i32.load + i32.load offset=4 local.get $1 - call $~lib/rt/itcms/__visit - local.get $0 - i32.load offset=8 - local.set $2 - i32.const 0 - drop + i32.const 2 + i32.shl + i32.add local.get $2 - local.get $1 - call $~lib/rt/itcms/__visit - ) - (func $~lib/set/Set~visit (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - call $~lib/set/Set#__visit - ) - (func $~lib/array/Array#__visit (param $0 i32) (param $1 i32) + i32.store i32.const 0 drop - local.get $0 - i32.load - local.get $1 - call $~lib/rt/itcms/__visit ) - (func $~lib/array/Array~visit (param $0 i32) (param $1 i32) - local.get $0 + (func $~lib/array/Array#__set (param $0 i32) (param $1 i32) (param $2 i32) local.get $1 - call $~lib/array/Array#__visit - ) - (func $~lib/set/Set#__visit (param $0 i32) (param $1 i32) - (local $2 i32) local.get $0 - i32.load - local.get $1 - call $~lib/rt/itcms/__visit + i32.load offset=12 + i32.ge_u + if + local.get $1 + i32.const 0 + i32.lt_s + if + i32.const 224 + i32.const 592 + i32.const 108 + i32.const 22 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $1 + i32.const 1 + i32.add + i32.const 2 + call $~lib/array/ensureSize + local.get $0 + local.get $1 + i32.const 1 + i32.add + call $~lib/array/Array#set:length_ + end local.get $0 - i32.load offset=8 - local.set $2 - i32.const 0 - drop - local.get $2 local.get $1 - call $~lib/rt/itcms/__visit + local.get $2 + call $~lib/array/Array#__uset ) - (func $~lib/set/Set~visit (param $0 i32) (param $1 i32) + (func $~lib/array/Array#set:length (param $0 i32) (param $1 i32) local.get $0 local.get $1 - call $~lib/set/Set#__visit - ) - (func $~lib/array/Array#__visit (param $0 i32) (param $1 i32) - i32.const 0 - drop + i32.const 2 + call $~lib/array/ensureSize local.get $0 - i32.load local.get $1 - call $~lib/rt/itcms/__visit + call $~lib/array/Array#set:length_ ) - (func $~lib/array/Array~visit (param $0 i32) (param $1 i32) + (func $~lib/array/Array#get:length (param $0 i32) (result i32) local.get $0 - local.get $1 - call $~lib/array/Array#__visit + i32.load offset=12 ) - (func $~lib/set/Set#__visit (param $0 i32) (param $1 i32) + (func $~lib/array/Array#__get (param $0 i32) (param $1 i32) (result i32) (local $2 i32) - local.get $0 - i32.load local.get $1 - call $~lib/rt/itcms/__visit local.get $0 - i32.load offset=8 + i32.load offset=12 + i32.ge_u + if + i32.const 224 + i32.const 592 + i32.const 92 + i32.const 42 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 2 + i32.shl + i32.add + i32.load local.set $2 i32.const 0 drop local.get $2 - local.get $1 - call $~lib/rt/itcms/__visit ) - (func $~lib/set/Set~visit (param $0 i32) (param $1 i32) + (func $~lib/set/Set#delete (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) local.get $0 local.get $1 - call $~lib/set/Set#__visit - ) - (func $~lib/array/Array#__visit (param $0 i32) (param $1 i32) - i32.const 0 - drop + block $~lib/util/hash/HASH|inlined.3 (result i32) + local.get $1 + local.set $2 + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 4 + i32.const 1 + i32.eq + drop + i32.const 4 + i32.const 2 + i32.eq + drop + i32.const 4 + i32.const 4 + i32.eq + drop + local.get $2 + call $~lib/util/hash/hash32 + br $~lib/util/hash/HASH|inlined.3 + end + call $~lib/set/Set#find + local.set $3 + local.get $3 + i32.eqz + if + i32.const 0 + return + end + local.get $3 + local.get $3 + i32.load offset=4 + i32.const 1 + i32.or + call $~lib/set/SetEntry#set:taggedNext local.get $0 - i32.load - local.get $1 - call $~lib/rt/itcms/__visit - ) - (func $~lib/array/Array~visit (param $0 i32) (param $1 i32) local.get $0 - local.get $1 - call $~lib/array/Array#__visit - ) - (func $~lib/set/Set#__visit (param $0 i32) (param $1 i32) - (local $2 i32) + i32.load offset=20 + i32.const 1 + i32.sub + call $~lib/set/Set#set:entriesCount local.get $0 - i32.load - local.get $1 - call $~lib/rt/itcms/__visit + i32.load offset=4 + i32.const 1 + i32.shr_u + local.set $4 + local.get $4 + i32.const 1 + i32.add + i32.const 4 + local.tee $2 local.get $0 - i32.load offset=8 - local.set $2 - i32.const 0 - drop + i32.load offset=20 + local.tee $5 local.get $2 - local.get $1 - call $~lib/rt/itcms/__visit + local.get $5 + i32.gt_u + select + i32.ge_u + if (result i32) + local.get $0 + i32.load offset=20 + 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 $0 + local.get $4 + call $~lib/set/Set#rehash + end + i32.const 1 ) - (func $~lib/set/Set~visit (param $0 i32) (param $1 i32) + (func $~lib/set/Set#clear (param $0 i32) local.get $0 - local.get $1 - call $~lib/set/Set#__visit - ) - (func $~lib/array/Array#__visit (param $0 i32) (param $1 i32) i32.const 0 - drop + i32.const 4 + i32.const 4 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + call $~lib/set/Set#set:buckets local.get $0 - i32.load - local.get $1 - call $~lib/rt/itcms/__visit - ) - (func $~lib/array/Array~visit (param $0 i32) (param $1 i32) + i32.const 4 + i32.const 1 + i32.sub + call $~lib/set/Set#set:bucketsMask local.get $0 - local.get $1 - call $~lib/array/Array#__visit - ) - (func $~lib/set/Set#__visit (param $0 i32) (param $1 i32) - (local $2 i32) + i32.const 0 + i32.const 4 + i32.const 8 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + call $~lib/set/Set#set:entries local.get $0 - i32.load - local.get $1 - call $~lib/rt/itcms/__visit + i32.const 4 + call $~lib/set/Set#set:entriesCapacity local.get $0 - i32.load offset=8 - local.set $2 i32.const 0 - drop - local.get $2 - local.get $1 - call $~lib/rt/itcms/__visit - ) - (func $~lib/set/Set~visit (param $0 i32) (param $1 i32) + call $~lib/set/Set#set:entriesOffset local.get $0 - local.get $1 - call $~lib/set/Set#__visit - ) - (func $~lib/array/Array#__visit (param $0 i32) (param $1 i32) i32.const 0 - drop - local.get $0 - i32.load - local.get $1 - call $~lib/rt/itcms/__visit - ) - (func $~lib/array/Array~visit (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - call $~lib/array/Array#__visit + call $~lib/set/Set#set:entriesCount ) - (func $~lib/set/Set#__visit (param $0 i32) (param $1 i32) + (func $std/set/testNumeric + (local $0 i32) + (local $1 i32) (local $2 i32) - local.get $0 - i32.load - local.get $1 - call $~lib/rt/itcms/__visit - local.get $0 - i32.load offset=8 - local.set $2 - i32.const 0 - drop - local.get $2 - local.get $1 - call $~lib/rt/itcms/__visit - ) - (func $~lib/set/Set~visit (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - call $~lib/set/Set#__visit - ) - (func $~lib/array/Array#__visit (param $0 i32) (param $1 i32) + (local $3 i32) + (local $4 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 - drop - local.get $0 - i32.load - local.get $1 - call $~lib/rt/itcms/__visit - ) - (func $~lib/array/Array~visit (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - call $~lib/array/Array#__visit - ) - (func $~lib/set/Set#__visit (param $0 i32) (param $1 i32) - (local $2 i32) - local.get $0 - i32.load - local.get $1 - call $~lib/rt/itcms/__visit - local.get $0 - i32.load offset=8 - local.set $2 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer i32.const 0 - drop - local.get $2 - local.get $1 - call $~lib/rt/itcms/__visit - ) - (func $~lib/set/Set~visit (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - call $~lib/set/Set#__visit - ) - (func $~lib/array/Array#__visit (param $0 i32) (param $1 i32) + call $~lib/set/Set#constructor + local.tee $0 + i32.store i32.const 0 - drop - local.get $0 - i32.load - local.get $1 - call $~lib/rt/itcms/__visit - ) - (func $~lib/array/Array~visit (param $0 i32) (param $1 i32) + local.set $1 + loop $for-loop|0 + local.get $1 + i32.const 100 + i32.lt_s + local.set $2 + local.get $2 + if + local.get $0 + local.get $1 + call $~lib/set/Set#has + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 6 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $1 + call $~lib/set/Set#add + drop + local.get $0 + local.get $1 + call $~lib/set/Set#has + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 8 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|0 + end + end local.get $0 - local.get $1 - call $~lib/array/Array#__visit - ) - (func $~lib/set/Set#__visit (param $0 i32) (param $1 i32) - (local $2 i32) + call $~lib/set/Set#get:size + i32.const 100 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 10 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 50 + local.set $1 + loop $for-loop|1 + local.get $1 + i32.const 100 + i32.lt_s + local.set $2 + local.get $2 + if + local.get $0 + local.get $1 + call $~lib/set/Set#has + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 14 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $1 + call $~lib/set/Set#add + drop + local.get $0 + local.get $1 + call $~lib/set/Set#has + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 16 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|1 + end + end local.get $0 - i32.load - local.get $1 - call $~lib/rt/itcms/__visit + call $~lib/set/Set#get:size + i32.const 100 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 18 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer local.get $0 - i32.load offset=8 - local.set $2 + call $~lib/set/Set#values + local.tee $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer i32.const 0 - drop + call $~lib/set/Set#constructor + local.tee $2 + i32.store offset=8 + i32.const 0 + local.set $3 + loop $for-loop|2 + local.get $3 + local.get $1 + call $~lib/array/Array#get:length + i32.lt_s + local.set $4 + local.get $4 + if + local.get $0 + local.get $1 + local.get $3 + call $~lib/array/Array#__get + call $~lib/set/Set#has + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 24 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $2 + local.get $1 + local.get $3 + call $~lib/array/Array#__get + call $~lib/set/Set#add + drop + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $for-loop|2 + end + end local.get $2 - local.get $1 - call $~lib/rt/itcms/__visit - ) - (func $~lib/set/Set~visit (param $0 i32) (param $1 i32) + call $~lib/set/Set#get:size local.get $0 - local.get $1 - call $~lib/set/Set#__visit - ) - (func $~lib/array/Array#__visit (param $0 i32) (param $1 i32) + call $~lib/set/Set#get:size + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 27 + i32.const 3 + call $~lib/builtins/abort + unreachable + end i32.const 0 - drop - local.get $0 - i32.load + local.set $3 + loop $for-loop|3 + local.get $3 + i32.const 50 + i32.lt_s + local.set $4 + local.get $4 + if + local.get $0 + local.get $3 + call $~lib/set/Set#has + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 31 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $3 + call $~lib/set/Set#delete + drop + local.get $0 + local.get $3 + call $~lib/set/Set#has + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 33 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $for-loop|3 + end + end + local.get $0 + call $~lib/set/Set#get:size + i32.const 50 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 35 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $3 + loop $for-loop|4 + local.get $3 + i32.const 50 + i32.lt_s + local.set $4 + local.get $4 + if + local.get $0 + local.get $3 + call $~lib/set/Set#has + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 39 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $3 + call $~lib/set/Set#add + drop + local.get $0 + local.get $3 + call $~lib/set/Set#has + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 41 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $3 + call $~lib/set/Set#delete + drop + local.get $0 + local.get $3 + call $~lib/set/Set#has + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 43 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $for-loop|4 + end + end + local.get $0 + call $~lib/set/Set#get:size + i32.const 50 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 45 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + call $~lib/set/Set#clear + local.get $0 + call $~lib/set/Set#get:size + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 49 + 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/set/Set#set:buckets (param $0 i32) (param $1 i32) + local.get $0 local.get $1 - call $~lib/rt/itcms/__visit + i32.store + local.get $0 + local.get $1 + i32.const 0 + call $~lib/rt/itcms/__link ) - (func $~lib/array/Array~visit (param $0 i32) (param $1 i32) + (func $~lib/set/Set#set:bucketsMask (param $0 i32) (param $1 i32) local.get $0 local.get $1 - call $~lib/array/Array#__visit + i32.store offset=4 ) - (func $~lib/set/Set#__visit (param $0 i32) (param $1 i32) - (local $2 i32) + (func $~lib/set/Set#set:entries (param $0 i32) (param $1 i32) local.get $0 - i32.load local.get $1 - call $~lib/rt/itcms/__visit + i32.store offset=8 local.get $0 - i32.load offset=8 - local.set $2 - i32.const 0 - drop - local.get $2 local.get $1 - call $~lib/rt/itcms/__visit + i32.const 0 + call $~lib/rt/itcms/__link ) - (func $~lib/set/Set~visit (param $0 i32) (param $1 i32) + (func $~lib/set/Set#set:entriesCapacity (param $0 i32) (param $1 i32) local.get $0 local.get $1 - call $~lib/set/Set#__visit + i32.store offset=12 ) - (func $~lib/array/Array#__visit (param $0 i32) (param $1 i32) - i32.const 0 - drop + (func $~lib/set/Set#set:entriesOffset (param $0 i32) (param $1 i32) local.get $0 - i32.load local.get $1 - call $~lib/rt/itcms/__visit + i32.store offset=16 ) - (func $~lib/array/Array~visit (param $0 i32) (param $1 i32) + (func $~lib/set/Set#set:entriesCount (param $0 i32) (param $1 i32) local.get $0 local.get $1 - call $~lib/array/Array#__visit + i32.store offset=20 ) - (func $~lib/rt/__visit_members (param $0 i32) (param $1 i32) - block $invalid - block $~lib/array/Array - block $~lib/set/Set - block $~lib/array/Array - block $~lib/set/Set - block $~lib/array/Array - block $~lib/set/Set - block $~lib/array/Array - block $~lib/set/Set - block $~lib/array/Array - block $~lib/set/Set - block $~lib/array/Array - block $~lib/set/Set - block $~lib/array/Array - block $~lib/set/Set - block $~lib/array/Array - block $~lib/set/Set - block $~lib/array/Array - block $~lib/set/Set - block $~lib/array/Array - block $~lib/set/Set - block $~lib/arraybuffer/ArrayBufferView - block $~lib/string/String - block $~lib/arraybuffer/ArrayBuffer - local.get $0 - i32.const 8 - i32.sub - i32.load - br_table $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $~lib/set/Set $~lib/array/Array $~lib/set/Set $~lib/array/Array $~lib/set/Set $~lib/array/Array $~lib/set/Set $~lib/array/Array $~lib/set/Set $~lib/array/Array $~lib/set/Set $~lib/array/Array $~lib/set/Set $~lib/array/Array $~lib/set/Set $~lib/array/Array $~lib/set/Set $~lib/array/Array $~lib/set/Set $~lib/array/Array $invalid - 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/set/Set~visit - return - end - local.get $0 - local.get $1 - call $~lib/array/Array~visit - return - end - local.get $0 - local.get $1 - call $~lib/set/Set~visit - return - end - local.get $0 - local.get $1 - call $~lib/array/Array~visit - return - end - local.get $0 - local.get $1 - call $~lib/set/Set~visit - return - end - local.get $0 - local.get $1 - call $~lib/array/Array~visit - return - end - local.get $0 - local.get $1 - call $~lib/set/Set~visit - return - end - local.get $0 - local.get $1 - call $~lib/array/Array~visit - return - end - local.get $0 - local.get $1 - call $~lib/set/Set~visit - return - end - local.get $0 - local.get $1 - call $~lib/array/Array~visit - return - end - local.get $0 - local.get $1 - call $~lib/set/Set~visit - return - end - local.get $0 - local.get $1 - call $~lib/array/Array~visit - return - end - local.get $0 - local.get $1 - call $~lib/set/Set~visit - return - end - local.get $0 - local.get $1 - call $~lib/array/Array~visit - return - end - local.get $0 - local.get $1 - call $~lib/set/Set~visit - return - end - local.get $0 - local.get $1 - call $~lib/array/Array~visit - return - end - local.get $0 - local.get $1 - call $~lib/set/Set~visit - return - end - local.get $0 + (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.get $0 + i32.load + local.get $2 + local.get $0 + i32.load offset=4 + i32.and + i32.const 4 + i32.mul + i32.add + i32.load + local.set $3 + loop $while-continue|0 + local.get $3 + local.set $4 + local.get $4 + if + local.get $3 + i32.load offset=4 + local.set $5 + local.get $5 + i32.const 1 + i32.and + i32.eqz + if (result i32) + local.get $3 + i32.load local.get $1 - call $~lib/array/Array~visit + i32.eq + else + i32.const 0 + end + if + local.get $3 return end - local.get $0 - local.get $1 - call $~lib/set/Set~visit - return + local.get $5 + i32.const 1 + i32.const -1 + i32.xor + i32.and + local.set $3 + br $while-continue|0 end - local.get $0 - local.get $1 - call $~lib/array/Array~visit - return - end - unreachable - ) - (func $~start - call $start:std/set - ) - (func $~stack_check - global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__data_end - i32.lt_s - if - i32.const 17216 - i32.const 17264 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable end + i32.const 0 ) - (func $~lib/set/Set#has (param $0 i32) (param $1 i32) (result i32) + (func $~lib/set/Set#has (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 - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store local.get $0 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store - local.get $3 local.get $1 - block $~lib/util/hash/HASH|inlined.0 (result i32) + block $~lib/util/hash/HASH|inlined.0 (result i32) local.get $1 local.set $2 i32.const 0 @@ -8207,88 +8911,238 @@ drop i32.const 0 drop + i32.const 4 i32.const 1 - i32.const 1 + i32.eq + drop + i32.const 4 + i32.const 2 + i32.eq + drop + i32.const 4 + i32.const 4 i32.eq drop local.get $2 - i32.const 24 - i32.shl - i32.const 24 - i32.shr_s - call $~lib/util/hash/hash8 - br $~lib/util/hash/HASH|inlined.0 + call $~lib/util/hash/hash32 + br $~lib/util/hash/HASH|inlined.0 end - call $~lib/set/Set#find + call $~lib/set/Set#find i32.const 0 i32.ne - 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/set/Set#add (param $0 i32) (param $1 i32) (result i32) + (func $~lib/set/SetEntry#set:key (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + ) + (func $~lib/set/SetEntry#set:taggedNext (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=4 + ) + (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 $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 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 - block $~lib/util/hash/HASH|inlined.1 (result i32) - local.get $1 - local.set $2 - i32.const 0 - drop - i32.const 0 - drop - i32.const 0 - drop - i32.const 1 - i32.const 1 - i32.eq - drop - local.get $2 - i32.const 24 - i32.shl - i32.const 24 - i32.shr_s - call $~lib/util/hash/hash8 - br $~lib/util/hash/HASH|inlined.1 - end - local.set $3 - local.get $0 - local.set $5 + i64.const 0 + i64.store + local.get $1 + i32.const 1 + i32.add + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $5 + i32.const 0 + local.get $2 + i32.const 4 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $3 i32.store - local.get $5 - local.get $1 - local.get $3 - call $~lib/set/Set#find + local.get $2 + i32.const 8 + i32.mul + i32.const 3 + i32.div_s local.set $4 + global.get $~lib/memory/__stack_pointer + i32.const 0 local.get $4 - i32.eqz - if - local.get $0 - i32.load offset=16 - local.get $0 + i32.const 8 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $5 + i32.store offset=4 + local.get $0 + i32.load offset=8 + local.set $6 + local.get $6 + local.get $0 + i32.load offset=16 + i32.const 8 + i32.mul + i32.add + local.set $7 + local.get $5 + local.set $8 + loop $while-continue|0 + local.get $6 + local.get $7 + i32.ne + local.set $9 + local.get $9 + if + local.get $6 + local.set $10 + local.get $10 + i32.load offset=4 + i32.const 1 + i32.and + i32.eqz + if + local.get $8 + local.set $11 + local.get $10 + i32.load + local.set $12 + local.get $11 + local.get $12 + call $~lib/set/SetEntry#set:key + block $~lib/util/hash/HASH|inlined.2 (result i32) + local.get $12 + local.set $13 + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 4 + i32.const 1 + i32.eq + drop + i32.const 4 + i32.const 2 + i32.eq + drop + i32.const 4 + i32.const 4 + i32.eq + drop + local.get $13 + call $~lib/util/hash/hash32 + br $~lib/util/hash/HASH|inlined.2 + end + local.get $1 + i32.and + local.set $13 + local.get $3 + local.get $13 + i32.const 4 + i32.mul + i32.add + local.set $14 + local.get $11 + local.get $14 + i32.load + call $~lib/set/SetEntry#set:taggedNext + local.get $14 + local.get $8 + i32.store + local.get $8 + i32.const 8 + i32.add + local.set $8 + end + local.get $6 + i32.const 8 + i32.add + local.set $6 + br $while-continue|0 + end + end + local.get $0 + local.get $3 + call $~lib/set/Set#set:buckets + local.get $0 + local.get $1 + call $~lib/set/Set#set:bucketsMask + local.get $0 + local.get $5 + call $~lib/set/Set#set:entries + local.get $0 + local.get $4 + call $~lib/set/Set#set:entriesCapacity + local.get $0 + local.get $0 + i32.load offset=20 + call $~lib/set/Set#set:entriesOffset + 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 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + block $~lib/util/hash/HASH|inlined.1 (result i32) + local.get $1 + local.set $2 + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 4 + i32.const 1 + i32.eq + drop + i32.const 4 + i32.const 2 + i32.eq + drop + i32.const 4 + i32.const 4 + i32.eq + drop + local.get $2 + call $~lib/util/hash/hash32 + br $~lib/util/hash/HASH|inlined.1 + end + local.set $3 + local.get $0 + local.get $1 + local.get $3 + call $~lib/set/Set#find + local.set $4 + local.get $4 + i32.eqz + if + local.get $0 + i32.load offset=16 + local.get $0 i32.load offset=12 i32.eq if local.get $0 - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - local.get $5 local.get $0 i32.load offset=20 local.get $0 @@ -8309,7 +9163,7 @@ i32.const 1 i32.or end - call $~lib/set/Set#rehash + call $~lib/set/Set#rehash end local.get $0 i32.load offset=8 @@ -8319,7 +9173,7 @@ local.tee $2 i32.const 1 i32.add - call $~lib/set/Set#set:entriesOffset + call $~lib/set/Set#set:entriesOffset local.get $2 i32.const 8 i32.mul @@ -8327,7 +9181,7 @@ local.set $4 local.get $4 local.get $1 - call $~lib/set/SetEntry#set:key + call $~lib/set/SetEntry#set:key i32.const 0 drop local.get $0 @@ -8335,7 +9189,7 @@ i32.load offset=20 i32.const 1 i32.add - call $~lib/set/Set#set:entriesCount + call $~lib/set/Set#set:entriesCount local.get $0 i32.load local.get $3 @@ -8349,29 +9203,54 @@ local.get $4 local.get $2 i32.load - call $~lib/set/SetEntry#set:taggedNext + call $~lib/set/SetEntry#set:taggedNext local.get $2 local.get $4 i32.store end local.get $0 - local.set $5 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $5 ) - (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 - call $~stack_check - global.get $~lib/memory/__stack_pointer + (func $~lib/set/Set#get:size (param $0 i32) (result i32) + local.get $0 + i32.load offset=20 + ) + (func $~lib/array/Array#set:buffer (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + local.get $0 + local.get $1 i32.const 0 + call $~lib/rt/itcms/__link + ) + (func $~lib/array/Array#set:dataStart (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=4 + ) + (func $~lib/array/Array#set:byteLength (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=8 + ) + (func $~lib/array/Array#set:length_ (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=12 + ) + (func $~lib/array/Array#__uset (param $0 i32) (param $1 i32) (param $2 i32) + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 2 + i32.shl + i32.add + local.get $2 i32.store + i32.const 0 + drop + ) + (func $~lib/array/Array#__set (param $0 i32) (param $1 i32) (param $2 i32) local.get $1 local.get $0 i32.load offset=12 @@ -8392,142 +9271,66 @@ local.get $1 i32.const 1 i32.add - i32.const 0 + i32.const 2 call $~lib/array/ensureSize local.get $0 local.get $1 i32.const 1 i32.add - call $~lib/array/Array#set:length_ + call $~lib/array/Array#set:length_ end local.get $0 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store - local.get $3 local.get $1 local.get $2 - call $~lib/array/Array#__uset - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer + call $~lib/array/Array#__uset ) - (func $~lib/set/Set#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) - (local $9 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 + (func $~lib/array/Array#set:length (param $0 i32) (param $1 i32) local.get $0 - i32.load offset=8 - local.set $1 + local.get $1 + i32.const 2 + call $~lib/array/ensureSize local.get $0 - i32.load offset=16 + local.get $1 + call $~lib/array/Array#set:length_ + ) + (func $~lib/array/Array#get:length (param $0 i32) (result i32) + local.get $0 + i32.load offset=12 + ) + (func $~lib/array/Array#__get (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + local.get $1 + local.get $0 + i32.load offset=12 + i32.ge_u + if + i32.const 224 + i32.const 592 + i32.const 92 + i32.const 42 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 2 + i32.shl + i32.add + i32.load local.set $2 - global.get $~lib/memory/__stack_pointer i32.const 0 + drop local.get $2 - call $~lib/array/Array#constructor - local.tee $3 - i32.store - i32.const 0 - local.set $4 - i32.const 0 - local.set $5 - loop $for-loop|0 - local.get $5 - local.get $2 - i32.lt_s - local.set $6 - local.get $6 - if - local.get $1 - local.get $5 - i32.const 8 - i32.mul - i32.add - local.set $7 - local.get $7 - i32.load offset=4 - i32.const 1 - i32.and - i32.eqz - if - local.get $3 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - local.get $4 - local.tee $8 - i32.const 1 - i32.add - local.set $4 - local.get $8 - local.get $7 - i32.load8_s - call $~lib/array/Array#__set - end - local.get $5 - i32.const 1 - i32.add - local.set $5 - br $for-loop|0 - end - end - local.get $3 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - local.get $4 - call $~lib/array/Array#set:length - local.get $3 - local.set $9 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $9 ) - (func $~lib/set/Set#delete (param $0 i32) (param $1 i32) (result i32) + (func $~lib/set/Set#delete (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.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store local.get $0 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 local.get $1 - block $~lib/util/hash/HASH|inlined.3 (result i32) + block $~lib/util/hash/HASH|inlined.3 (result i32) local.get $1 local.set $2 i32.const 0 @@ -8536,30 +9339,28 @@ drop i32.const 0 drop + i32.const 4 i32.const 1 - i32.const 1 + i32.eq + drop + i32.const 4 + i32.const 2 + i32.eq + drop + i32.const 4 + i32.const 4 i32.eq drop local.get $2 - i32.const 24 - i32.shl - i32.const 24 - i32.shr_s - call $~lib/util/hash/hash8 - br $~lib/util/hash/HASH|inlined.3 + call $~lib/util/hash/hash32 + br $~lib/util/hash/HASH|inlined.3 end - call $~lib/set/Set#find + call $~lib/set/Set#find local.set $3 local.get $3 i32.eqz if i32.const 0 - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 return end local.get $3 @@ -8567,13 +9368,13 @@ i32.load offset=4 i32.const 1 i32.or - call $~lib/set/SetEntry#set:taggedNext + call $~lib/set/SetEntry#set:taggedNext local.get $0 local.get $0 i32.load offset=20 i32.const 1 i32.sub - call $~lib/set/Set#set:entriesCount + call $~lib/set/Set#set:entriesCount local.get $0 i32.load offset=4 i32.const 1 @@ -8607,35 +9408,49 @@ end if local.get $0 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 local.get $4 - call $~lib/set/Set#rehash + call $~lib/set/Set#rehash end i32.const 1 - local.set $6 - global.get $~lib/memory/__stack_pointer + ) + (func $~lib/set/Set#clear (param $0 i32) + local.get $0 + i32.const 0 i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 + i32.const 4 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + call $~lib/set/Set#set:buckets + local.get $0 + i32.const 4 + i32.const 1 + i32.sub + call $~lib/set/Set#set:bucketsMask + local.get $0 + i32.const 0 + i32.const 4 + i32.const 8 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + call $~lib/set/Set#set:entries + local.get $0 + i32.const 4 + call $~lib/set/Set#set:entriesCapacity + local.get $0 + i32.const 0 + call $~lib/set/Set#set:entriesOffset + local.get $0 + i32.const 0 + call $~lib/set/Set#set:entriesCount ) - (func $std/set/testNumeric + (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 i32) - (local $9 i32) global.get $~lib/memory/__stack_pointer - i32.const 20 + i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check @@ -8643,37 +9458,25 @@ 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 0 - i32.store offset=16 + i32.store offset=8 global.get $~lib/memory/__stack_pointer i32.const 0 - call $~lib/set/Set#constructor + call $~lib/set/Set#constructor local.tee $0 i32.store i32.const 0 local.set $1 - loop $for-loop|1 + loop $for-loop|0 local.get $1 - i32.const 24 - i32.shl - i32.const 24 - i32.shr_s i32.const 100 - i32.lt_s - local.set $3 - local.get $3 + i32.lt_u + local.set $2 + local.get $2 if local.get $0 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 local.get $1 - call $~lib/set/Set#has + call $~lib/set/Set#has i32.eqz i32.eqz if @@ -8685,22 +9488,12 @@ unreachable end local.get $0 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 local.get $1 - call $~lib/set/Set#add + call $~lib/set/Set#add drop local.get $0 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 local.get $1 - call $~lib/set/Set#has + call $~lib/set/Set#has i32.eqz if i32.const 0 @@ -8714,16 +9507,11 @@ i32.const 1 i32.add local.set $1 - br $for-loop|1 + br $for-loop|0 end end local.get $0 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - call $~lib/set/Set#get:size + call $~lib/set/Set#get:size i32.const 100 i32.eq i32.eqz @@ -8737,25 +9525,16 @@ end i32.const 50 local.set $1 - loop $for-loop|3 + loop $for-loop|1 local.get $1 - i32.const 24 - i32.shl - i32.const 24 - i32.shr_s i32.const 100 - i32.lt_s - local.set $4 - local.get $4 + i32.lt_u + local.set $2 + local.get $2 if local.get $0 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 local.get $1 - call $~lib/set/Set#has + call $~lib/set/Set#has i32.eqz if i32.const 0 @@ -8766,22 +9545,12 @@ unreachable end local.get $0 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 local.get $1 - call $~lib/set/Set#add + call $~lib/set/Set#add drop local.get $0 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 local.get $1 - call $~lib/set/Set#has + call $~lib/set/Set#has i32.eqz if i32.const 0 @@ -8795,16 +9564,11 @@ i32.const 1 i32.add local.set $1 - br $for-loop|3 + br $for-loop|1 end end local.get $0 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - call $~lib/set/Set#get:size + call $~lib/set/Set#get:size i32.const 100 i32.eq i32.eqz @@ -8818,49 +9582,29 @@ end global.get $~lib/memory/__stack_pointer local.get $0 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - call $~lib/set/Set#values + call $~lib/set/Set#values local.tee $1 - i32.store offset=8 + i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 0 - call $~lib/set/Set#constructor - local.tee $4 - i32.store offset=12 + call $~lib/set/Set#constructor + local.tee $2 + i32.store offset=8 i32.const 0 - local.set $5 - loop $for-loop|4 - local.get $5 + local.set $3 + loop $for-loop|2 + local.get $3 local.get $1 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - call $~lib/array/Array#get:length + call $~lib/array/Array#get:length i32.lt_s - local.set $6 - local.get $6 + local.set $4 + local.get $4 if local.get $0 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 local.get $1 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=16 - local.get $9 - local.get $5 - call $~lib/array/Array#__get - call $~lib/set/Set#has + local.get $3 + call $~lib/array/Array#__get + call $~lib/set/Set#has i32.eqz if i32.const 0 @@ -8870,43 +9614,23 @@ call $~lib/builtins/abort unreachable end - local.get $4 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 + local.get $2 local.get $1 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=16 - local.get $9 - local.get $5 - call $~lib/array/Array#__get - call $~lib/set/Set#add + local.get $3 + call $~lib/array/Array#__get + call $~lib/set/Set#add drop - local.get $5 + local.get $3 i32.const 1 i32.add - local.set $5 - br $for-loop|4 + local.set $3 + br $for-loop|2 end end - local.get $4 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - call $~lib/set/Set#get:size + local.get $2 + call $~lib/set/Set#get:size local.get $0 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - call $~lib/set/Set#get:size + call $~lib/set/Set#get:size i32.eq i32.eqz if @@ -8918,26 +9642,17 @@ unreachable end i32.const 0 - local.set $5 - loop $for-loop|6 - local.get $5 - i32.const 24 - i32.shl - i32.const 24 - i32.shr_s + local.set $3 + loop $for-loop|3 + local.get $3 i32.const 50 - i32.lt_s - local.set $7 - local.get $7 + i32.lt_u + local.set $4 + local.get $4 if local.get $0 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - local.get $5 - call $~lib/set/Set#has + local.get $3 + call $~lib/set/Set#has i32.eqz if i32.const 0 @@ -8948,22 +9663,12 @@ unreachable end local.get $0 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - local.get $5 - call $~lib/set/Set#delete + local.get $3 + call $~lib/set/Set#delete drop local.get $0 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - local.get $5 - call $~lib/set/Set#has + local.get $3 + call $~lib/set/Set#has i32.eqz i32.eqz if @@ -8974,20 +9679,15 @@ call $~lib/builtins/abort unreachable end - local.get $5 + local.get $3 i32.const 1 i32.add - local.set $5 - br $for-loop|6 + local.set $3 + br $for-loop|3 end end local.get $0 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - call $~lib/set/Set#get:size + call $~lib/set/Set#get:size i32.const 50 i32.eq i32.eqz @@ -9000,26 +9700,17 @@ unreachable end i32.const 0 - local.set $5 - loop $for-loop|8 - local.get $5 - i32.const 24 - i32.shl - i32.const 24 - i32.shr_s + local.set $3 + loop $for-loop|4 + local.get $3 i32.const 50 - i32.lt_s - local.set $8 - local.get $8 + i32.lt_u + local.set $4 + local.get $4 if local.get $0 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - local.get $5 - call $~lib/set/Set#has + local.get $3 + call $~lib/set/Set#has i32.eqz i32.eqz if @@ -9031,22 +9722,12 @@ unreachable end local.get $0 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - local.get $5 - call $~lib/set/Set#add + local.get $3 + call $~lib/set/Set#add drop local.get $0 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - local.get $5 - call $~lib/set/Set#has + local.get $3 + call $~lib/set/Set#has i32.eqz if i32.const 0 @@ -9057,22 +9738,12 @@ unreachable end local.get $0 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - local.get $5 - call $~lib/set/Set#delete + local.get $3 + call $~lib/set/Set#delete drop local.get $0 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - local.get $5 - call $~lib/set/Set#has + local.get $3 + call $~lib/set/Set#has i32.eqz i32.eqz if @@ -9083,20 +9754,15 @@ call $~lib/builtins/abort unreachable end - local.get $5 + local.get $3 i32.const 1 i32.add - local.set $5 - br $for-loop|8 + local.set $3 + br $for-loop|4 end end local.get $0 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - call $~lib/set/Set#get:size + call $~lib/set/Set#get:size i32.const 50 i32.eq i32.eqz @@ -9109,19 +9775,9 @@ unreachable end local.get $0 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - call $~lib/set/Set#clear + call $~lib/set/Set#clear local.get $0 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - call $~lib/set/Set#get:size + call $~lib/set/Set#get:size i32.const 0 i32.eq i32.eqz @@ -9134,29 +9790,191 @@ unreachable end global.get $~lib/memory/__stack_pointer - i32.const 20 + i32.const 12 i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/set/Set#has (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 - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 + (func $~lib/set/Set#set:buckets (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 i32.store local.get $0 - local.set $3 - global.get $~lib/memory/__stack_pointer + local.get $1 + i32.const 0 + call $~lib/rt/itcms/__link + ) + (func $~lib/set/Set#set:bucketsMask (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=4 + ) + (func $~lib/set/Set#set:entries (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=8 + local.get $0 + local.get $1 + i32.const 0 + call $~lib/rt/itcms/__link + ) + (func $~lib/set/Set#set:entriesCapacity (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=12 + ) + (func $~lib/set/Set#set:entriesOffset (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=16 + ) + (func $~lib/set/Set#set:entriesCount (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=20 + ) + (func $~lib/util/hash/hash64 (param $0 i64) (result i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + local.get $0 + i32.wrap_i64 + local.set $1 + local.get $0 + i64.const 32 + i64.shr_u + i32.wrap_i64 + local.set $2 + i32.const -2128831035 + local.set $3 local.get $3 - i32.store + local.get $1 + i32.const 255 + i32.and + i32.xor + i32.const 16777619 + i32.mul + local.set $3 local.get $3 local.get $1 - block $~lib/util/hash/HASH|inlined.0 (result i32) + i32.const 8 + i32.shr_u + i32.const 255 + i32.and + i32.xor + i32.const 16777619 + i32.mul + local.set $3 + local.get $3 + local.get $1 + i32.const 16 + i32.shr_u + i32.const 255 + i32.and + i32.xor + i32.const 16777619 + i32.mul + local.set $3 + local.get $3 + local.get $1 + i32.const 24 + i32.shr_u + i32.xor + i32.const 16777619 + i32.mul + local.set $3 + local.get $3 + local.get $2 + i32.const 255 + i32.and + i32.xor + i32.const 16777619 + i32.mul + local.set $3 + local.get $3 + local.get $2 + i32.const 8 + i32.shr_u + i32.const 255 + i32.and + i32.xor + i32.const 16777619 + i32.mul + local.set $3 + local.get $3 + local.get $2 + i32.const 16 + i32.shr_u + i32.const 255 + i32.and + i32.xor + i32.const 16777619 + i32.mul + local.set $3 + local.get $3 + local.get $2 + i32.const 24 + i32.shr_u + i32.xor + i32.const 16777619 + i32.mul + local.set $3 + local.get $3 + ) + (func $~lib/set/Set#find (param $0 i32) (param $1 i64) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $0 + i32.load + local.get $2 + local.get $0 + i32.load offset=4 + i32.and + i32.const 4 + i32.mul + i32.add + i32.load + local.set $3 + loop $while-continue|0 + local.get $3 + local.set $4 + local.get $4 + if + local.get $3 + i32.load offset=8 + local.set $5 + local.get $5 + i32.const 1 + i32.and + i32.eqz + if (result i32) + local.get $3 + i64.load + local.get $1 + i64.eq + else + i32.const 0 + end + if + local.get $3 + return + end + local.get $5 + i32.const 1 + i32.const -1 + i32.xor + i32.and + local.set $3 + br $while-continue|0 + end + end + i32.const 0 + ) + (func $~lib/set/Set#has (param $0 i32) (param $1 i64) (result i32) + (local $2 i64) + local.get $0 + local.get $1 + block $~lib/util/hash/HASH|inlined.0 (result i32) local.get $1 local.set $2 i32.const 0 @@ -9165,68 +9983,241 @@ drop i32.const 0 drop + i32.const 8 i32.const 1 - i32.const 1 + i32.eq + drop + i32.const 8 + i32.const 2 + i32.eq + drop + i32.const 8 + i32.const 4 + i32.eq + drop + i32.const 8 + i32.const 8 i32.eq drop local.get $2 - i32.const 255 - i32.and - call $~lib/util/hash/hash8 - br $~lib/util/hash/HASH|inlined.0 + call $~lib/util/hash/hash64 + br $~lib/util/hash/HASH|inlined.0 end - call $~lib/set/Set#find + call $~lib/set/Set#find i32.const 0 i32.ne - 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/set/Set#add (param $0 i32) (param $1 i32) (result i32) + (func $~lib/set/SetEntry#set:key (param $0 i32) (param $1 i64) + local.get $0 + local.get $1 + i64.store + ) + (func $~lib/set/SetEntry#set:taggedNext (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=8 + ) + (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 $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i64) + (local $13 i64) + (local $14 i32) + (local $15 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 + i64.const 0 + i64.store + local.get $1 + i32.const 1 + i32.add + local.set $2 + global.get $~lib/memory/__stack_pointer i32.const 0 + local.get $2 + i32.const 4 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $3 i32.store - block $~lib/util/hash/HASH|inlined.1 (result i32) - local.get $1 - local.set $2 - i32.const 0 - drop - i32.const 0 - drop - i32.const 0 - drop - i32.const 1 - i32.const 1 - i32.eq - drop - local.get $2 - i32.const 255 - i32.and - call $~lib/util/hash/hash8 - br $~lib/util/hash/HASH|inlined.1 - end - local.set $3 - local.get $0 - local.set $5 + local.get $2 + i32.const 8 + i32.mul + i32.const 3 + i32.div_s + local.set $4 global.get $~lib/memory/__stack_pointer + i32.const 0 + local.get $4 + i32.const 16 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $5 + i32.store offset=4 + local.get $0 + i32.load offset=8 + local.set $6 + local.get $6 + local.get $0 + i32.load offset=16 + i32.const 16 + i32.mul + i32.add + local.set $7 local.get $5 - i32.store + local.set $8 + loop $while-continue|0 + local.get $6 + local.get $7 + i32.ne + local.set $9 + local.get $9 + if + local.get $6 + local.set $10 + local.get $10 + i32.load offset=8 + i32.const 1 + i32.and + i32.eqz + if + local.get $8 + local.set $11 + local.get $10 + i64.load + local.set $12 + local.get $11 + local.get $12 + call $~lib/set/SetEntry#set:key + block $~lib/util/hash/HASH|inlined.2 (result i32) + local.get $12 + local.set $13 + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 8 + i32.const 1 + i32.eq + drop + i32.const 8 + i32.const 2 + i32.eq + drop + i32.const 8 + i32.const 4 + i32.eq + drop + i32.const 8 + i32.const 8 + i32.eq + drop + local.get $13 + call $~lib/util/hash/hash64 + br $~lib/util/hash/HASH|inlined.2 + end + local.get $1 + i32.and + local.set $14 + local.get $3 + local.get $14 + i32.const 4 + i32.mul + i32.add + local.set $15 + local.get $11 + local.get $15 + i32.load + call $~lib/set/SetEntry#set:taggedNext + local.get $15 + local.get $8 + i32.store + local.get $8 + i32.const 16 + i32.add + local.set $8 + end + local.get $6 + i32.const 16 + i32.add + local.set $6 + br $while-continue|0 + end + end + local.get $0 + local.get $3 + call $~lib/set/Set#set:buckets + local.get $0 + local.get $1 + call $~lib/set/Set#set:bucketsMask + local.get $0 local.get $5 + call $~lib/set/Set#set:entries + local.get $0 + local.get $4 + call $~lib/set/Set#set:entriesCapacity + local.get $0 + local.get $0 + i32.load offset=20 + call $~lib/set/Set#set:entriesOffset + 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 i64) (result i32) + (local $2 i64) + (local $3 i32) + (local $4 i32) + (local $5 i32) + block $~lib/util/hash/HASH|inlined.1 (result i32) + local.get $1 + local.set $2 + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 8 + i32.const 1 + i32.eq + drop + i32.const 8 + i32.const 2 + i32.eq + drop + i32.const 8 + i32.const 4 + i32.eq + drop + i32.const 8 + i32.const 8 + i32.eq + drop + local.get $2 + call $~lib/util/hash/hash64 + br $~lib/util/hash/HASH|inlined.1 + end + local.set $3 + local.get $0 local.get $1 local.get $3 - call $~lib/set/Set#find + call $~lib/set/Set#find local.set $4 local.get $4 i32.eqz @@ -9238,11 +10229,6 @@ i32.eq if local.get $0 - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - local.get $5 local.get $0 i32.load offset=20 local.get $0 @@ -9263,25 +10249,25 @@ i32.const 1 i32.or end - call $~lib/set/Set#rehash + call $~lib/set/Set#rehash end local.get $0 i32.load offset=8 local.get $0 local.get $0 i32.load offset=16 - local.tee $2 + local.tee $5 i32.const 1 i32.add - call $~lib/set/Set#set:entriesOffset - local.get $2 - i32.const 8 + call $~lib/set/Set#set:entriesOffset + local.get $5 + i32.const 16 i32.mul i32.add local.set $4 local.get $4 local.get $1 - call $~lib/set/SetEntry#set:key + call $~lib/set/SetEntry#set:key i32.const 0 drop local.get $0 @@ -9289,7 +10275,7 @@ i32.load offset=20 i32.const 1 i32.add - call $~lib/set/Set#set:entriesCount + call $~lib/set/Set#set:entriesCount local.get $0 i32.load local.get $3 @@ -9299,33 +10285,58 @@ i32.const 4 i32.mul i32.add - local.set $2 + local.set $5 local.get $4 - local.get $2 + local.get $5 i32.load - call $~lib/set/SetEntry#set:taggedNext - local.get $2 + call $~lib/set/SetEntry#set:taggedNext + local.get $5 local.get $4 i32.store end local.get $0 - local.set $5 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $5 ) - (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 - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 + (func $~lib/set/Set#get:size (param $0 i32) (result i32) + local.get $0 + i32.load offset=20 + ) + (func $~lib/array/Array#set:buffer (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 i32.store + local.get $0 + local.get $1 + i32.const 0 + call $~lib/rt/itcms/__link + ) + (func $~lib/array/Array#set:dataStart (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=4 + ) + (func $~lib/array/Array#set:byteLength (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=8 + ) + (func $~lib/array/Array#set:length_ (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=12 + ) + (func $~lib/array/Array#__uset (param $0 i32) (param $1 i32) (param $2 i64) + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 3 + i32.shl + i32.add + local.get $2 + i64.store + i32.const 0 + drop + ) + (func $~lib/array/Array#__set (param $0 i32) (param $1 i32) (param $2 i64) local.get $1 local.get $0 i32.load offset=12 @@ -9346,142 +10357,67 @@ local.get $1 i32.const 1 i32.add - i32.const 0 + i32.const 3 call $~lib/array/ensureSize local.get $0 local.get $1 i32.const 1 i32.add - call $~lib/array/Array#set:length_ + call $~lib/array/Array#set:length_ end local.get $0 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store - local.get $3 local.get $1 local.get $2 - call $~lib/array/Array#__uset - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer + call $~lib/array/Array#__uset ) - (func $~lib/set/Set#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) - (local $9 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 + (func $~lib/array/Array#set:length (param $0 i32) (param $1 i32) local.get $0 - i32.load offset=8 - local.set $1 + local.get $1 + i32.const 3 + call $~lib/array/ensureSize local.get $0 - i32.load offset=16 + local.get $1 + call $~lib/array/Array#set:length_ + ) + (func $~lib/array/Array#get:length (param $0 i32) (result i32) + local.get $0 + i32.load offset=12 + ) + (func $~lib/array/Array#__get (param $0 i32) (param $1 i32) (result i64) + (local $2 i64) + local.get $1 + local.get $0 + i32.load offset=12 + i32.ge_u + if + i32.const 224 + i32.const 592 + i32.const 92 + i32.const 42 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 3 + i32.shl + i32.add + i64.load local.set $2 - global.get $~lib/memory/__stack_pointer i32.const 0 + drop local.get $2 - call $~lib/array/Array#constructor - local.tee $3 - i32.store - i32.const 0 - local.set $4 - i32.const 0 - local.set $5 - loop $for-loop|0 - local.get $5 - local.get $2 - i32.lt_s - local.set $6 - local.get $6 - if - local.get $1 - local.get $5 - i32.const 8 - i32.mul - i32.add - local.set $7 - local.get $7 - i32.load offset=4 - i32.const 1 - i32.and - i32.eqz - if - local.get $3 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - local.get $4 - local.tee $8 - i32.const 1 - i32.add - local.set $4 - local.get $8 - local.get $7 - i32.load8_u - call $~lib/array/Array#__set - end - local.get $5 - i32.const 1 - i32.add - local.set $5 - br $for-loop|0 - end - end - local.get $3 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - local.get $4 - call $~lib/array/Array#set:length - local.get $3 - local.set $9 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $9 ) - (func $~lib/set/Set#delete (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) + (func $~lib/set/Set#delete (param $0 i32) (param $1 i64) (result i32) + (local $2 i64) (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 - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store local.get $0 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 local.get $1 - block $~lib/util/hash/HASH|inlined.3 (result i32) + block $~lib/util/hash/HASH|inlined.3 (result i32) local.get $1 local.set $2 i32.const 0 @@ -9490,42 +10426,46 @@ drop i32.const 0 drop + i32.const 8 i32.const 1 - i32.const 1 + i32.eq + drop + i32.const 8 + i32.const 2 + i32.eq + drop + i32.const 8 + i32.const 4 + i32.eq + drop + i32.const 8 + i32.const 8 i32.eq drop local.get $2 - i32.const 255 - i32.and - call $~lib/util/hash/hash8 - br $~lib/util/hash/HASH|inlined.3 + call $~lib/util/hash/hash64 + br $~lib/util/hash/HASH|inlined.3 end - call $~lib/set/Set#find + call $~lib/set/Set#find local.set $3 local.get $3 i32.eqz if i32.const 0 - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 return end local.get $3 local.get $3 - i32.load offset=4 + i32.load offset=8 i32.const 1 i32.or - call $~lib/set/SetEntry#set:taggedNext + call $~lib/set/SetEntry#set:taggedNext local.get $0 local.get $0 i32.load offset=20 i32.const 1 i32.sub - call $~lib/set/Set#set:entriesCount + call $~lib/set/Set#set:entriesCount local.get $0 i32.load offset=4 i32.const 1 @@ -9535,12 +10475,12 @@ i32.const 1 i32.add i32.const 4 - local.tee $2 + local.tee $5 local.get $0 i32.load offset=20 - local.tee $5 - local.get $2 + local.tee $6 local.get $5 + local.get $6 i32.gt_u select i32.ge_u @@ -9559,35 +10499,50 @@ end if local.get $0 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 local.get $4 - call $~lib/set/Set#rehash + call $~lib/set/Set#rehash end i32.const 1 - local.set $6 - global.get $~lib/memory/__stack_pointer + ) + (func $~lib/set/Set#clear (param $0 i32) + local.get $0 + i32.const 0 i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 + i32.const 4 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + call $~lib/set/Set#set:buckets + local.get $0 + i32.const 4 + i32.const 1 + i32.sub + call $~lib/set/Set#set:bucketsMask + local.get $0 + i32.const 0 + i32.const 4 + i32.const 16 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + call $~lib/set/Set#set:entries + local.get $0 + i32.const 4 + call $~lib/set/Set#set:entriesCapacity + local.get $0 + i32.const 0 + call $~lib/set/Set#set:entriesOffset + local.get $0 + i32.const 0 + call $~lib/set/Set#set:entriesCount ) - (func $std/set/testNumeric + (func $std/set/testNumeric (local $0 i32) - (local $1 i32) + (local $1 i64) (local $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) global.get $~lib/memory/__stack_pointer - i32.const 20 + i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check @@ -9595,35 +10550,25 @@ 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 0 - i32.store offset=16 + i32.store offset=8 global.get $~lib/memory/__stack_pointer i32.const 0 - call $~lib/set/Set#constructor + call $~lib/set/Set#constructor local.tee $0 i32.store - i32.const 0 + i64.const 0 local.set $1 - loop $for-loop|1 + loop $for-loop|0 local.get $1 - i32.const 255 - i32.and - i32.const 100 - i32.lt_u - local.set $3 - local.get $3 + i64.const 100 + i64.lt_s + local.set $2 + local.get $2 if local.get $0 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 local.get $1 - call $~lib/set/Set#has + call $~lib/set/Set#has i32.eqz i32.eqz if @@ -9635,22 +10580,12 @@ unreachable end local.get $0 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 local.get $1 - call $~lib/set/Set#add + call $~lib/set/Set#add drop local.get $0 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 local.get $1 - call $~lib/set/Set#has + call $~lib/set/Set#has i32.eqz if i32.const 0 @@ -9661,19 +10596,14 @@ unreachable end local.get $1 - i32.const 1 - i32.add + i64.const 1 + i64.add local.set $1 - br $for-loop|1 + br $for-loop|0 end end local.get $0 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - call $~lib/set/Set#get:size + call $~lib/set/Set#get:size i32.const 100 i32.eq i32.eqz @@ -9685,25 +10615,18 @@ call $~lib/builtins/abort unreachable end - i32.const 50 + i64.const 50 local.set $1 - loop $for-loop|3 + loop $for-loop|1 local.get $1 - i32.const 255 - i32.and - i32.const 100 - i32.lt_u - local.set $4 - local.get $4 + i64.const 100 + i64.lt_s + local.set $2 + local.get $2 if local.get $0 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 local.get $1 - call $~lib/set/Set#has + call $~lib/set/Set#has i32.eqz if i32.const 0 @@ -9714,22 +10637,12 @@ unreachable end local.get $0 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 local.get $1 - call $~lib/set/Set#add + call $~lib/set/Set#add drop local.get $0 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 local.get $1 - call $~lib/set/Set#has + call $~lib/set/Set#has i32.eqz if i32.const 0 @@ -9740,19 +10653,14 @@ unreachable end local.get $1 - i32.const 1 - i32.add + i64.const 1 + i64.add local.set $1 - br $for-loop|3 + br $for-loop|1 end end local.get $0 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - call $~lib/set/Set#get:size + call $~lib/set/Set#get:size i32.const 100 i32.eq i32.eqz @@ -9766,49 +10674,29 @@ end global.get $~lib/memory/__stack_pointer local.get $0 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 + call $~lib/set/Set#values + local.tee $2 i32.store offset=4 - local.get $9 - call $~lib/set/Set#values - local.tee $1 - i32.store offset=8 global.get $~lib/memory/__stack_pointer i32.const 0 - call $~lib/set/Set#constructor - local.tee $4 - i32.store offset=12 + call $~lib/set/Set#constructor + local.tee $3 + i32.store offset=8 i32.const 0 - local.set $5 - loop $for-loop|4 - local.get $5 - local.get $1 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - call $~lib/array/Array#get:length + local.set $4 + loop $for-loop|2 + local.get $4 + local.get $2 + call $~lib/array/Array#get:length i32.lt_s - local.set $6 - local.get $6 + local.set $5 + local.get $5 if local.get $0 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - local.get $1 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=16 - local.get $9 - local.get $5 - call $~lib/array/Array#__get - call $~lib/set/Set#has + local.get $2 + local.get $4 + call $~lib/array/Array#__get + call $~lib/set/Set#has i32.eqz if i32.const 0 @@ -9818,43 +10706,23 @@ call $~lib/builtins/abort unreachable end + local.get $3 + local.get $2 local.get $4 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - local.get $1 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=16 - local.get $9 - local.get $5 - call $~lib/array/Array#__get - call $~lib/set/Set#add + call $~lib/array/Array#__get + call $~lib/set/Set#add drop - local.get $5 + local.get $4 i32.const 1 i32.add - local.set $5 - br $for-loop|4 + local.set $4 + br $for-loop|2 end end - local.get $4 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - call $~lib/set/Set#get:size + local.get $3 + call $~lib/set/Set#get:size local.get $0 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - call $~lib/set/Set#get:size + call $~lib/set/Set#get:size i32.eq i32.eqz if @@ -9865,25 +10733,18 @@ call $~lib/builtins/abort unreachable end - i32.const 0 - local.set $5 - loop $for-loop|6 - local.get $5 - i32.const 255 - i32.and - i32.const 50 - i32.lt_u - local.set $7 - local.get $7 + i64.const 0 + local.set $1 + loop $for-loop|3 + local.get $1 + i64.const 50 + i64.lt_s + local.set $4 + local.get $4 if local.get $0 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - local.get $5 - call $~lib/set/Set#has + local.get $1 + call $~lib/set/Set#has i32.eqz if i32.const 0 @@ -9894,22 +10755,12 @@ unreachable end local.get $0 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - local.get $5 - call $~lib/set/Set#delete + local.get $1 + call $~lib/set/Set#delete drop local.get $0 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - local.get $5 - call $~lib/set/Set#has + local.get $1 + call $~lib/set/Set#has i32.eqz i32.eqz if @@ -9920,20 +10771,15 @@ call $~lib/builtins/abort unreachable end - local.get $5 - i32.const 1 - i32.add - local.set $5 - br $for-loop|6 + local.get $1 + i64.const 1 + i64.add + local.set $1 + br $for-loop|3 end end local.get $0 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - call $~lib/set/Set#get:size + call $~lib/set/Set#get:size i32.const 50 i32.eq i32.eqz @@ -9945,25 +10791,18 @@ call $~lib/builtins/abort unreachable end - i32.const 0 - local.set $5 - loop $for-loop|8 - local.get $5 - i32.const 255 - i32.and - i32.const 50 - i32.lt_u - local.set $8 - local.get $8 + i64.const 0 + local.set $1 + loop $for-loop|4 + local.get $1 + i64.const 50 + i64.lt_s + local.set $4 + local.get $4 if local.get $0 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - local.get $5 - call $~lib/set/Set#has + local.get $1 + call $~lib/set/Set#has i32.eqz i32.eqz if @@ -9975,22 +10814,12 @@ unreachable end local.get $0 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - local.get $5 - call $~lib/set/Set#add + local.get $1 + call $~lib/set/Set#add drop local.get $0 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - local.get $5 - call $~lib/set/Set#has + local.get $1 + call $~lib/set/Set#has i32.eqz if i32.const 0 @@ -10001,22 +10830,12 @@ unreachable end local.get $0 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - local.get $5 - call $~lib/set/Set#delete + local.get $1 + call $~lib/set/Set#delete drop local.get $0 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - local.get $5 - call $~lib/set/Set#has + local.get $1 + call $~lib/set/Set#has i32.eqz i32.eqz if @@ -10027,20 +10846,15 @@ call $~lib/builtins/abort unreachable end - local.get $5 - i32.const 1 - i32.add - local.set $5 - br $for-loop|8 + local.get $1 + i64.const 1 + i64.add + local.set $1 + br $for-loop|4 end end local.get $0 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - call $~lib/set/Set#get:size + call $~lib/set/Set#get:size i32.const 50 i32.eq i32.eqz @@ -10053,19 +10867,9 @@ unreachable end local.get $0 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - call $~lib/set/Set#clear + call $~lib/set/Set#clear local.get $0 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - call $~lib/set/Set#get:size + call $~lib/set/Set#get:size i32.const 0 i32.eq i32.eqz @@ -10078,29 +10882,103 @@ unreachable end global.get $~lib/memory/__stack_pointer - i32.const 20 + i32.const 12 i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/set/Set#has (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) + (func $~lib/set/Set#set:buckets (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + local.get $0 + local.get $1 + i32.const 0 + call $~lib/rt/itcms/__link + ) + (func $~lib/set/Set#set:bucketsMask (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=4 + ) + (func $~lib/set/Set#set:entries (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=8 + local.get $0 + local.get $1 + i32.const 0 + call $~lib/rt/itcms/__link + ) + (func $~lib/set/Set#set:entriesCapacity (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=12 + ) + (func $~lib/set/Set#set:entriesOffset (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=16 + ) + (func $~lib/set/Set#set:entriesCount (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=20 + ) + (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 + (local $4 i32) + (local $5 i32) + local.get $0 + i32.load + local.get $2 + local.get $0 + i32.load offset=4 + i32.and i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer + i32.mul + i32.add + i32.load + local.set $3 + loop $while-continue|0 + local.get $3 + local.set $4 + local.get $4 + if + local.get $3 + i32.load offset=8 + local.set $5 + local.get $5 + i32.const 1 + i32.and + i32.eqz + if (result i32) + local.get $3 + i64.load + local.get $1 + i64.eq + else + i32.const 0 + end + if + local.get $3 + return + end + local.get $5 + i32.const 1 + i32.const -1 + i32.xor + i32.and + local.set $3 + br $while-continue|0 + end + end i32.const 0 - i32.store + ) + (func $~lib/set/Set#has (param $0 i32) (param $1 i64) (result i32) + (local $2 i64) local.get $0 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store - local.get $3 local.get $1 - block $~lib/util/hash/HASH|inlined.0 (result i32) + block $~lib/util/hash/HASH|inlined.0 (result i32) local.get $1 local.set $2 i32.const 0 @@ -10109,80 +10987,241 @@ drop i32.const 0 drop - i32.const 2 + i32.const 8 i32.const 1 i32.eq drop - i32.const 2 + i32.const 8 i32.const 2 i32.eq drop + i32.const 8 + i32.const 4 + i32.eq + drop + i32.const 8 + i32.const 8 + i32.eq + drop local.get $2 - i32.const 16 - i32.shl - i32.const 16 - i32.shr_s - call $~lib/util/hash/hash16 - br $~lib/util/hash/HASH|inlined.0 + call $~lib/util/hash/hash64 + br $~lib/util/hash/HASH|inlined.0 end - call $~lib/set/Set#find + call $~lib/set/Set#find i32.const 0 i32.ne - 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/set/Set#add (param $0 i32) (param $1 i32) (result i32) + (func $~lib/set/SetEntry#set:key (param $0 i32) (param $1 i64) + local.get $0 + local.get $1 + i64.store + ) + (func $~lib/set/SetEntry#set:taggedNext (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=8 + ) + (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 $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i64) + (local $13 i64) + (local $14 i32) + (local $15 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 + i64.const 0 + i64.store + local.get $1 + i32.const 1 + i32.add + local.set $2 + global.get $~lib/memory/__stack_pointer i32.const 0 + local.get $2 + i32.const 4 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $3 i32.store - block $~lib/util/hash/HASH|inlined.1 (result i32) - local.get $1 - local.set $2 - i32.const 0 - drop - i32.const 0 - drop - i32.const 0 - drop - i32.const 2 - i32.const 1 - i32.eq - drop - i32.const 2 - i32.const 2 - i32.eq - drop - local.get $2 - i32.const 16 - i32.shl - i32.const 16 - i32.shr_s - call $~lib/util/hash/hash16 - br $~lib/util/hash/HASH|inlined.1 - end - local.set $3 - local.get $0 - local.set $5 + local.get $2 + i32.const 8 + i32.mul + i32.const 3 + i32.div_s + local.set $4 global.get $~lib/memory/__stack_pointer + i32.const 0 + local.get $4 + i32.const 16 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $5 + i32.store offset=4 + local.get $0 + i32.load offset=8 + local.set $6 + local.get $6 + local.get $0 + i32.load offset=16 + i32.const 16 + i32.mul + i32.add + local.set $7 + local.get $5 + local.set $8 + loop $while-continue|0 + local.get $6 + local.get $7 + i32.ne + local.set $9 + local.get $9 + if + local.get $6 + local.set $10 + local.get $10 + i32.load offset=8 + i32.const 1 + i32.and + i32.eqz + if + local.get $8 + local.set $11 + local.get $10 + i64.load + local.set $12 + local.get $11 + local.get $12 + call $~lib/set/SetEntry#set:key + block $~lib/util/hash/HASH|inlined.2 (result i32) + local.get $12 + local.set $13 + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 8 + i32.const 1 + i32.eq + drop + i32.const 8 + i32.const 2 + i32.eq + drop + i32.const 8 + i32.const 4 + i32.eq + drop + i32.const 8 + i32.const 8 + i32.eq + drop + local.get $13 + call $~lib/util/hash/hash64 + br $~lib/util/hash/HASH|inlined.2 + end + local.get $1 + i32.and + local.set $14 + local.get $3 + local.get $14 + i32.const 4 + i32.mul + i32.add + local.set $15 + local.get $11 + local.get $15 + i32.load + call $~lib/set/SetEntry#set:taggedNext + local.get $15 + local.get $8 + i32.store + local.get $8 + i32.const 16 + i32.add + local.set $8 + end + local.get $6 + i32.const 16 + i32.add + local.set $6 + br $while-continue|0 + end + end + local.get $0 + local.get $3 + call $~lib/set/Set#set:buckets + local.get $0 + local.get $1 + call $~lib/set/Set#set:bucketsMask + local.get $0 local.get $5 - i32.store - local.get $5 + call $~lib/set/Set#set:entries + local.get $0 + local.get $4 + call $~lib/set/Set#set:entriesCapacity + local.get $0 + local.get $0 + i32.load offset=20 + call $~lib/set/Set#set:entriesOffset + 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 i64) (result i32) + (local $2 i64) + (local $3 i32) + (local $4 i32) + (local $5 i32) + block $~lib/util/hash/HASH|inlined.1 (result i32) + local.get $1 + local.set $2 + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 8 + i32.const 1 + i32.eq + drop + i32.const 8 + i32.const 2 + i32.eq + drop + i32.const 8 + i32.const 4 + i32.eq + drop + i32.const 8 + i32.const 8 + i32.eq + drop + local.get $2 + call $~lib/util/hash/hash64 + br $~lib/util/hash/HASH|inlined.1 + end + local.set $3 + local.get $0 local.get $1 local.get $3 - call $~lib/set/Set#find + call $~lib/set/Set#find local.set $4 local.get $4 i32.eqz @@ -10194,11 +11233,6 @@ i32.eq if local.get $0 - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - local.get $5 local.get $0 i32.load offset=20 local.get $0 @@ -10219,25 +11253,25 @@ i32.const 1 i32.or end - call $~lib/set/Set#rehash + call $~lib/set/Set#rehash end local.get $0 i32.load offset=8 local.get $0 local.get $0 i32.load offset=16 - local.tee $2 + local.tee $5 i32.const 1 i32.add - call $~lib/set/Set#set:entriesOffset - local.get $2 - i32.const 8 + call $~lib/set/Set#set:entriesOffset + local.get $5 + i32.const 16 i32.mul i32.add local.set $4 local.get $4 local.get $1 - call $~lib/set/SetEntry#set:key + call $~lib/set/SetEntry#set:key i32.const 0 drop local.get $0 @@ -10245,7 +11279,7 @@ i32.load offset=20 i32.const 1 i32.add - call $~lib/set/Set#set:entriesCount + call $~lib/set/Set#set:entriesCount local.get $0 i32.load local.get $3 @@ -10255,33 +11289,58 @@ i32.const 4 i32.mul i32.add - local.set $2 + local.set $5 local.get $4 - local.get $2 + local.get $5 i32.load - call $~lib/set/SetEntry#set:taggedNext - local.get $2 + call $~lib/set/SetEntry#set:taggedNext + local.get $5 local.get $4 i32.store end local.get $0 - local.set $5 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $5 ) - (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 - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 + (func $~lib/set/Set#get:size (param $0 i32) (result i32) + local.get $0 + i32.load offset=20 + ) + (func $~lib/array/Array#set:buffer (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 i32.store + local.get $0 + local.get $1 + i32.const 0 + call $~lib/rt/itcms/__link + ) + (func $~lib/array/Array#set:dataStart (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=4 + ) + (func $~lib/array/Array#set:byteLength (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=8 + ) + (func $~lib/array/Array#set:length_ (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=12 + ) + (func $~lib/array/Array#__uset (param $0 i32) (param $1 i32) (param $2 i64) + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 3 + i32.shl + i32.add + local.get $2 + i64.store + i32.const 0 + drop + ) + (func $~lib/array/Array#__set (param $0 i32) (param $1 i32) (param $2 i64) local.get $1 local.get $0 i32.load offset=12 @@ -10302,142 +11361,67 @@ local.get $1 i32.const 1 i32.add - i32.const 1 + i32.const 3 call $~lib/array/ensureSize local.get $0 local.get $1 i32.const 1 i32.add - call $~lib/array/Array#set:length_ + call $~lib/array/Array#set:length_ end local.get $0 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store - local.get $3 local.get $1 local.get $2 - call $~lib/array/Array#__uset - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer + call $~lib/array/Array#__uset ) - (func $~lib/set/Set#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) - (local $9 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 + (func $~lib/array/Array#set:length (param $0 i32) (param $1 i32) local.get $0 - i32.load offset=8 - local.set $1 + local.get $1 + i32.const 3 + call $~lib/array/ensureSize local.get $0 - i32.load offset=16 + local.get $1 + call $~lib/array/Array#set:length_ + ) + (func $~lib/array/Array#get:length (param $0 i32) (result i32) + local.get $0 + i32.load offset=12 + ) + (func $~lib/array/Array#__get (param $0 i32) (param $1 i32) (result i64) + (local $2 i64) + local.get $1 + local.get $0 + i32.load offset=12 + i32.ge_u + if + i32.const 224 + i32.const 592 + i32.const 92 + i32.const 42 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 3 + i32.shl + i32.add + i64.load local.set $2 - global.get $~lib/memory/__stack_pointer i32.const 0 + drop local.get $2 - call $~lib/array/Array#constructor - local.tee $3 - i32.store - i32.const 0 - local.set $4 - i32.const 0 - local.set $5 - loop $for-loop|0 - local.get $5 - local.get $2 - i32.lt_s - local.set $6 - local.get $6 - if - local.get $1 - local.get $5 - i32.const 8 - i32.mul - i32.add - local.set $7 - local.get $7 - i32.load offset=4 - i32.const 1 - i32.and - i32.eqz - if - local.get $3 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - local.get $4 - local.tee $8 - i32.const 1 - i32.add - local.set $4 - local.get $8 - local.get $7 - i32.load16_s - call $~lib/array/Array#__set - end - local.get $5 - i32.const 1 - i32.add - local.set $5 - br $for-loop|0 - end - end - local.get $3 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - local.get $4 - call $~lib/array/Array#set:length - local.get $3 - local.set $9 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $9 ) - (func $~lib/set/Set#delete (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) + (func $~lib/set/Set#delete (param $0 i32) (param $1 i64) (result i32) + (local $2 i64) (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 - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store local.get $0 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 local.get $1 - block $~lib/util/hash/HASH|inlined.3 (result i32) + block $~lib/util/hash/HASH|inlined.3 (result i32) local.get $1 local.set $2 i32.const 0 @@ -10446,48 +11430,46 @@ drop i32.const 0 drop - i32.const 2 + i32.const 8 i32.const 1 i32.eq drop + i32.const 8 i32.const 2 - i32.const 2 + i32.eq + drop + i32.const 8 + i32.const 4 + i32.eq + drop + i32.const 8 + i32.const 8 i32.eq drop local.get $2 - i32.const 16 - i32.shl - i32.const 16 - i32.shr_s - call $~lib/util/hash/hash16 - br $~lib/util/hash/HASH|inlined.3 + call $~lib/util/hash/hash64 + br $~lib/util/hash/HASH|inlined.3 end - call $~lib/set/Set#find + call $~lib/set/Set#find local.set $3 local.get $3 i32.eqz if i32.const 0 - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 return end local.get $3 local.get $3 - i32.load offset=4 + i32.load offset=8 i32.const 1 i32.or - call $~lib/set/SetEntry#set:taggedNext + call $~lib/set/SetEntry#set:taggedNext local.get $0 local.get $0 i32.load offset=20 i32.const 1 i32.sub - call $~lib/set/Set#set:entriesCount + call $~lib/set/Set#set:entriesCount local.get $0 i32.load offset=4 i32.const 1 @@ -10497,12 +11479,12 @@ i32.const 1 i32.add i32.const 4 - local.tee $2 + local.tee $5 local.get $0 i32.load offset=20 - local.tee $5 - local.get $2 + local.tee $6 local.get $5 + local.get $6 i32.gt_u select i32.ge_u @@ -10521,35 +11503,50 @@ end if local.get $0 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 local.get $4 - call $~lib/set/Set#rehash + call $~lib/set/Set#rehash end i32.const 1 - local.set $6 - global.get $~lib/memory/__stack_pointer + ) + (func $~lib/set/Set#clear (param $0 i32) + local.get $0 + i32.const 0 i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 + i32.const 4 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + call $~lib/set/Set#set:buckets + local.get $0 + i32.const 4 + i32.const 1 + i32.sub + call $~lib/set/Set#set:bucketsMask + local.get $0 + i32.const 0 + i32.const 4 + i32.const 16 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + call $~lib/set/Set#set:entries + local.get $0 + i32.const 4 + call $~lib/set/Set#set:entriesCapacity + local.get $0 + i32.const 0 + call $~lib/set/Set#set:entriesOffset + local.get $0 + i32.const 0 + call $~lib/set/Set#set:entriesCount ) - (func $std/set/testNumeric + (func $std/set/testNumeric (local $0 i32) - (local $1 i32) + (local $1 i64) (local $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) global.get $~lib/memory/__stack_pointer - i32.const 20 + i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check @@ -10557,37 +11554,25 @@ 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 0 - i32.store offset=16 + i32.store offset=8 global.get $~lib/memory/__stack_pointer i32.const 0 - call $~lib/set/Set#constructor + call $~lib/set/Set#constructor local.tee $0 i32.store - i32.const 0 + i64.const 0 local.set $1 - loop $for-loop|1 + loop $for-loop|0 local.get $1 - i32.const 16 - i32.shl - i32.const 16 - i32.shr_s - i32.const 100 - i32.lt_s - local.set $3 - local.get $3 + i64.const 100 + i64.lt_u + local.set $2 + local.get $2 if local.get $0 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 local.get $1 - call $~lib/set/Set#has + call $~lib/set/Set#has i32.eqz i32.eqz if @@ -10599,22 +11584,12 @@ unreachable end local.get $0 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 local.get $1 - call $~lib/set/Set#add + call $~lib/set/Set#add drop local.get $0 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 local.get $1 - call $~lib/set/Set#has + call $~lib/set/Set#has i32.eqz if i32.const 0 @@ -10625,19 +11600,14 @@ unreachable end local.get $1 - i32.const 1 - i32.add + i64.const 1 + i64.add local.set $1 - br $for-loop|1 + br $for-loop|0 end end local.get $0 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - call $~lib/set/Set#get:size + call $~lib/set/Set#get:size i32.const 100 i32.eq i32.eqz @@ -10649,27 +11619,18 @@ call $~lib/builtins/abort unreachable end - i32.const 50 + i64.const 50 local.set $1 - loop $for-loop|3 + loop $for-loop|1 local.get $1 - i32.const 16 - i32.shl - i32.const 16 - i32.shr_s - i32.const 100 - i32.lt_s - local.set $4 - local.get $4 + i64.const 100 + i64.lt_u + local.set $2 + local.get $2 if local.get $0 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 local.get $1 - call $~lib/set/Set#has + call $~lib/set/Set#has i32.eqz if i32.const 0 @@ -10680,22 +11641,12 @@ unreachable end local.get $0 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 local.get $1 - call $~lib/set/Set#add + call $~lib/set/Set#add drop local.get $0 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 local.get $1 - call $~lib/set/Set#has + call $~lib/set/Set#has i32.eqz if i32.const 0 @@ -10706,19 +11657,14 @@ unreachable end local.get $1 - i32.const 1 - i32.add + i64.const 1 + i64.add local.set $1 - br $for-loop|3 + br $for-loop|1 end end local.get $0 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - call $~lib/set/Set#get:size + call $~lib/set/Set#get:size i32.const 100 i32.eq i32.eqz @@ -10732,49 +11678,29 @@ end global.get $~lib/memory/__stack_pointer local.get $0 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 + call $~lib/set/Set#values + local.tee $2 i32.store offset=4 - local.get $9 - call $~lib/set/Set#values - local.tee $1 - i32.store offset=8 global.get $~lib/memory/__stack_pointer i32.const 0 - call $~lib/set/Set#constructor - local.tee $4 - i32.store offset=12 + call $~lib/set/Set#constructor + local.tee $3 + i32.store offset=8 i32.const 0 - local.set $5 - loop $for-loop|4 - local.get $5 - local.get $1 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - call $~lib/array/Array#get:length + local.set $4 + loop $for-loop|2 + local.get $4 + local.get $2 + call $~lib/array/Array#get:length i32.lt_s - local.set $6 - local.get $6 + local.set $5 + local.get $5 if local.get $0 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - local.get $1 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=16 - local.get $9 - local.get $5 - call $~lib/array/Array#__get - call $~lib/set/Set#has + local.get $2 + local.get $4 + call $~lib/array/Array#__get + call $~lib/set/Set#has i32.eqz if i32.const 0 @@ -10784,43 +11710,23 @@ call $~lib/builtins/abort unreachable end + local.get $3 + local.get $2 local.get $4 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - local.get $1 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=16 - local.get $9 - local.get $5 - call $~lib/array/Array#__get - call $~lib/set/Set#add + call $~lib/array/Array#__get + call $~lib/set/Set#add drop - local.get $5 + local.get $4 i32.const 1 i32.add - local.set $5 - br $for-loop|4 + local.set $4 + br $for-loop|2 end end - local.get $4 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - call $~lib/set/Set#get:size + local.get $3 + call $~lib/set/Set#get:size local.get $0 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - call $~lib/set/Set#get:size + call $~lib/set/Set#get:size i32.eq i32.eqz if @@ -10831,27 +11737,18 @@ call $~lib/builtins/abort unreachable end - i32.const 0 - local.set $5 - loop $for-loop|6 - local.get $5 - i32.const 16 - i32.shl - i32.const 16 - i32.shr_s - i32.const 50 - i32.lt_s - local.set $7 - local.get $7 + i64.const 0 + local.set $1 + loop $for-loop|3 + local.get $1 + i64.const 50 + i64.lt_u + local.set $4 + local.get $4 if local.get $0 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - local.get $5 - call $~lib/set/Set#has + local.get $1 + call $~lib/set/Set#has i32.eqz if i32.const 0 @@ -10862,22 +11759,12 @@ unreachable end local.get $0 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - local.get $5 - call $~lib/set/Set#delete + local.get $1 + call $~lib/set/Set#delete drop local.get $0 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - local.get $5 - call $~lib/set/Set#has + local.get $1 + call $~lib/set/Set#has i32.eqz i32.eqz if @@ -10888,20 +11775,15 @@ call $~lib/builtins/abort unreachable end - local.get $5 - i32.const 1 - i32.add - local.set $5 - br $for-loop|6 + local.get $1 + i64.const 1 + i64.add + local.set $1 + br $for-loop|3 end end local.get $0 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - call $~lib/set/Set#get:size + call $~lib/set/Set#get:size i32.const 50 i32.eq i32.eqz @@ -10913,27 +11795,18 @@ call $~lib/builtins/abort unreachable end - i32.const 0 - local.set $5 - loop $for-loop|8 - local.get $5 - i32.const 16 - i32.shl - i32.const 16 - i32.shr_s - i32.const 50 - i32.lt_s - local.set $8 - local.get $8 + i64.const 0 + local.set $1 + loop $for-loop|4 + local.get $1 + i64.const 50 + i64.lt_u + local.set $4 + local.get $4 if local.get $0 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - local.get $5 - call $~lib/set/Set#has + local.get $1 + call $~lib/set/Set#has i32.eqz i32.eqz if @@ -10945,23 +11818,13 @@ unreachable end local.get $0 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - local.get $5 - call $~lib/set/Set#add + local.get $1 + call $~lib/set/Set#add drop local.get $0 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - local.get $5 - call $~lib/set/Set#has - i32.eqz + local.get $1 + call $~lib/set/Set#has + i32.eqz if i32.const 0 i32.const 544 @@ -10971,22 +11834,12 @@ unreachable end local.get $0 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - local.get $5 - call $~lib/set/Set#delete + local.get $1 + call $~lib/set/Set#delete drop local.get $0 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - local.get $5 - call $~lib/set/Set#has + local.get $1 + call $~lib/set/Set#has i32.eqz i32.eqz if @@ -10997,20 +11850,15 @@ call $~lib/builtins/abort unreachable end - local.get $5 - i32.const 1 - i32.add - local.set $5 - br $for-loop|8 + local.get $1 + i64.const 1 + i64.add + local.set $1 + br $for-loop|4 end end local.get $0 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - call $~lib/set/Set#get:size + call $~lib/set/Set#get:size i32.const 50 i32.eq i32.eqz @@ -11023,19 +11871,9 @@ unreachable end local.get $0 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - call $~lib/set/Set#clear + call $~lib/set/Set#clear local.get $0 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - call $~lib/set/Set#get:size + call $~lib/set/Set#get:size i32.const 0 i32.eq i32.eqz @@ -11048,123 +11886,324 @@ unreachable end global.get $~lib/memory/__stack_pointer - i32.const 20 + i32.const 12 i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/set/Set#has (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) + (func $~lib/set/Set#set:buckets (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + local.get $0 + local.get $1 + i32.const 0 + call $~lib/rt/itcms/__link + ) + (func $~lib/set/Set#set:bucketsMask (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=4 + ) + (func $~lib/set/Set#set:entries (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=8 + local.get $0 + local.get $1 + i32.const 0 + call $~lib/rt/itcms/__link + ) + (func $~lib/set/Set#set:entriesCapacity (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=12 + ) + (func $~lib/set/Set#set:entriesOffset (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=16 + ) + (func $~lib/set/Set#set:entriesCount (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=20 + ) + (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 + (local $4 i32) + (local $5 i32) + local.get $0 + i32.load + local.get $2 + local.get $0 + i32.load offset=4 + i32.and i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer + i32.mul + i32.add + i32.load + local.set $3 + loop $while-continue|0 + local.get $3 + local.set $4 + local.get $4 + if + local.get $3 + i32.load offset=4 + local.set $5 + local.get $5 + i32.const 1 + i32.and + i32.eqz + if (result i32) + local.get $3 + f32.load + local.get $1 + f32.eq + else + i32.const 0 + end + if + local.get $3 + return + end + local.get $5 + i32.const 1 + i32.const -1 + i32.xor + i32.and + local.set $3 + br $while-continue|0 + end + end i32.const 0 - i32.store + ) + (func $~lib/set/Set#has (param $0 i32) (param $1 f32) (result i32) + (local $2 f32) local.get $0 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store - local.get $3 local.get $1 - block $~lib/util/hash/HASH|inlined.0 (result i32) + block $~lib/util/hash/HASH|inlined.0 (result i32) local.get $1 local.set $2 i32.const 0 drop i32.const 0 drop - i32.const 0 - drop - i32.const 2 i32.const 1 - i32.eq drop - i32.const 2 - i32.const 2 + i32.const 4 + i32.const 4 i32.eq drop local.get $2 - i32.const 65535 - i32.and - call $~lib/util/hash/hash16 - br $~lib/util/hash/HASH|inlined.0 + i32.reinterpret_f32 + call $~lib/util/hash/hash32 + br $~lib/util/hash/HASH|inlined.0 end - call $~lib/set/Set#find + call $~lib/set/Set#find i32.const 0 i32.ne - 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/set/Set#add (param $0 i32) (param $1 i32) (result i32) + (func $~lib/set/SetEntry#set:key (param $0 i32) (param $1 f32) + local.get $0 + local.get $1 + f32.store + ) + (func $~lib/set/SetEntry#set:taggedNext (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=4 + ) + (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 $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 f32) + (local $13 f32) + (local $14 i32) + (local $15 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 - block $~lib/util/hash/HASH|inlined.1 (result i32) - local.get $1 - local.set $2 - i32.const 0 - drop - i32.const 0 - drop - i32.const 0 - drop - i32.const 2 - i32.const 1 - i32.eq - drop - i32.const 2 - i32.const 2 - i32.eq - drop - local.get $2 - i32.const 65535 - i32.and - call $~lib/util/hash/hash16 - br $~lib/util/hash/HASH|inlined.1 - end - local.set $3 - local.get $0 - local.set $5 + i64.const 0 + i64.store + local.get $1 + i32.const 1 + i32.add + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $5 + i32.const 0 + local.get $2 + i32.const 4 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $3 i32.store - local.get $5 - local.get $1 - local.get $3 - call $~lib/set/Set#find + local.get $2 + i32.const 8 + i32.mul + i32.const 3 + i32.div_s local.set $4 + global.get $~lib/memory/__stack_pointer + i32.const 0 local.get $4 - i32.eqz - if - local.get $0 + i32.const 8 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $5 + i32.store offset=4 + local.get $0 + i32.load offset=8 + local.set $6 + local.get $6 + local.get $0 + i32.load offset=16 + i32.const 8 + i32.mul + i32.add + local.set $7 + local.get $5 + local.set $8 + loop $while-continue|0 + local.get $6 + local.get $7 + i32.ne + local.set $9 + local.get $9 + if + local.get $6 + local.set $10 + local.get $10 + i32.load offset=4 + i32.const 1 + i32.and + i32.eqz + if + local.get $8 + local.set $11 + local.get $10 + f32.load + local.set $12 + local.get $11 + local.get $12 + call $~lib/set/SetEntry#set:key + block $~lib/util/hash/HASH|inlined.2 (result i32) + local.get $12 + local.set $13 + i32.const 0 + drop + i32.const 0 + drop + i32.const 1 + drop + i32.const 4 + i32.const 4 + i32.eq + drop + local.get $13 + i32.reinterpret_f32 + call $~lib/util/hash/hash32 + br $~lib/util/hash/HASH|inlined.2 + end + local.get $1 + i32.and + local.set $14 + local.get $3 + local.get $14 + i32.const 4 + i32.mul + i32.add + local.set $15 + local.get $11 + local.get $15 + i32.load + call $~lib/set/SetEntry#set:taggedNext + local.get $15 + local.get $8 + i32.store + local.get $8 + i32.const 8 + i32.add + local.set $8 + end + local.get $6 + i32.const 8 + i32.add + local.set $6 + br $while-continue|0 + end + end + local.get $0 + local.get $3 + call $~lib/set/Set#set:buckets + local.get $0 + local.get $1 + call $~lib/set/Set#set:bucketsMask + local.get $0 + local.get $5 + call $~lib/set/Set#set:entries + local.get $0 + local.get $4 + call $~lib/set/Set#set:entriesCapacity + local.get $0 + local.get $0 + i32.load offset=20 + call $~lib/set/Set#set:entriesOffset + 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) (result i32) + (local $2 f32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + block $~lib/util/hash/HASH|inlined.1 (result i32) + local.get $1 + local.set $2 + i32.const 0 + drop + i32.const 0 + drop + i32.const 1 + drop + i32.const 4 + i32.const 4 + i32.eq + drop + local.get $2 + i32.reinterpret_f32 + call $~lib/util/hash/hash32 + br $~lib/util/hash/HASH|inlined.1 + end + local.set $3 + local.get $0 + local.get $1 + local.get $3 + call $~lib/set/Set#find + local.set $4 + local.get $4 + i32.eqz + if + local.get $0 i32.load offset=16 local.get $0 i32.load offset=12 i32.eq if local.get $0 - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - local.get $5 local.get $0 i32.load offset=20 local.get $0 @@ -11185,25 +12224,25 @@ i32.const 1 i32.or end - call $~lib/set/Set#rehash + call $~lib/set/Set#rehash end local.get $0 i32.load offset=8 local.get $0 local.get $0 i32.load offset=16 - local.tee $2 + local.tee $5 i32.const 1 i32.add - call $~lib/set/Set#set:entriesOffset - local.get $2 + call $~lib/set/Set#set:entriesOffset + local.get $5 i32.const 8 i32.mul i32.add local.set $4 local.get $4 local.get $1 - call $~lib/set/SetEntry#set:key + call $~lib/set/SetEntry#set:key i32.const 0 drop local.get $0 @@ -11211,7 +12250,7 @@ i32.load offset=20 i32.const 1 i32.add - call $~lib/set/Set#set:entriesCount + call $~lib/set/Set#set:entriesCount local.get $0 i32.load local.get $3 @@ -11221,33 +12260,58 @@ i32.const 4 i32.mul i32.add - local.set $2 + local.set $5 local.get $4 - local.get $2 + local.get $5 i32.load - call $~lib/set/SetEntry#set:taggedNext - local.get $2 + call $~lib/set/SetEntry#set:taggedNext + local.get $5 local.get $4 i32.store end local.get $0 - local.set $5 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $5 ) - (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 - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 + (func $~lib/set/Set#get:size (param $0 i32) (result i32) + local.get $0 + i32.load offset=20 + ) + (func $~lib/array/Array#set:buffer (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 i32.store + local.get $0 + local.get $1 + i32.const 0 + call $~lib/rt/itcms/__link + ) + (func $~lib/array/Array#set:dataStart (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=4 + ) + (func $~lib/array/Array#set:byteLength (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=8 + ) + (func $~lib/array/Array#set:length_ (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=12 + ) + (func $~lib/array/Array#__uset (param $0 i32) (param $1 i32) (param $2 f32) + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 2 + i32.shl + i32.add + local.get $2 + f32.store + i32.const 0 + drop + ) + (func $~lib/array/Array#__set (param $0 i32) (param $1 i32) (param $2 f32) local.get $1 local.get $0 i32.load offset=12 @@ -11268,176 +12332,90 @@ local.get $1 i32.const 1 i32.add - i32.const 1 + i32.const 2 call $~lib/array/ensureSize local.get $0 local.get $1 i32.const 1 i32.add - call $~lib/array/Array#set:length_ + call $~lib/array/Array#set:length_ end local.get $0 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store - local.get $3 local.get $1 local.get $2 - call $~lib/array/Array#__uset - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer + call $~lib/array/Array#__uset ) - (func $~lib/set/Set#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) - (local $9 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 $0 - i32.load offset=8 - local.set $1 + (func $~lib/array/Array#set:length (param $0 i32) (param $1 i32) local.get $0 - i32.load offset=16 + local.get $1 + i32.const 2 + call $~lib/array/ensureSize + local.get $0 + local.get $1 + call $~lib/array/Array#set:length_ + ) + (func $~lib/array/Array#get:length (param $0 i32) (result i32) + local.get $0 + i32.load offset=12 + ) + (func $~lib/array/Array#__get (param $0 i32) (param $1 i32) (result f32) + (local $2 f32) + local.get $1 + local.get $0 + i32.load offset=12 + i32.ge_u + if + i32.const 224 + i32.const 592 + i32.const 92 + i32.const 42 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 2 + i32.shl + i32.add + f32.load local.set $2 - global.get $~lib/memory/__stack_pointer i32.const 0 + drop local.get $2 - call $~lib/array/Array#constructor - local.tee $3 - i32.store - i32.const 0 - local.set $4 - i32.const 0 - local.set $5 - loop $for-loop|0 - local.get $5 - local.get $2 - i32.lt_s - local.set $6 - local.get $6 - if - local.get $1 - local.get $5 - i32.const 8 - i32.mul - i32.add - local.set $7 - local.get $7 - i32.load offset=4 - i32.const 1 - i32.and - i32.eqz - if - local.get $3 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - local.get $4 - local.tee $8 - i32.const 1 - i32.add - local.set $4 - local.get $8 - local.get $7 - i32.load16_u - call $~lib/array/Array#__set - end - local.get $5 - i32.const 1 - i32.add - local.set $5 - br $for-loop|0 - end - end - local.get $3 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - local.get $4 - call $~lib/array/Array#set:length - local.get $3 - local.set $9 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $9 ) - (func $~lib/set/Set#delete (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) + (func $~lib/set/Set#delete (param $0 i32) (param $1 f32) (result i32) + (local $2 f32) (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 - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store local.get $0 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 local.get $1 - block $~lib/util/hash/HASH|inlined.3 (result i32) + block $~lib/util/hash/HASH|inlined.3 (result i32) local.get $1 local.set $2 i32.const 0 drop i32.const 0 drop - i32.const 0 - drop - i32.const 2 i32.const 1 - i32.eq drop - i32.const 2 - i32.const 2 + i32.const 4 + i32.const 4 i32.eq drop local.get $2 - i32.const 65535 - i32.and - call $~lib/util/hash/hash16 - br $~lib/util/hash/HASH|inlined.3 + i32.reinterpret_f32 + call $~lib/util/hash/hash32 + br $~lib/util/hash/HASH|inlined.3 end - call $~lib/set/Set#find + call $~lib/set/Set#find local.set $3 local.get $3 i32.eqz if i32.const 0 - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 return end local.get $3 @@ -11445,13 +12423,13 @@ i32.load offset=4 i32.const 1 i32.or - call $~lib/set/SetEntry#set:taggedNext + call $~lib/set/SetEntry#set:taggedNext local.get $0 local.get $0 i32.load offset=20 i32.const 1 i32.sub - call $~lib/set/Set#set:entriesCount + call $~lib/set/Set#set:entriesCount local.get $0 i32.load offset=4 i32.const 1 @@ -11461,12 +12439,12 @@ i32.const 1 i32.add i32.const 4 - local.tee $2 + local.tee $5 local.get $0 i32.load offset=20 - local.tee $5 - local.get $2 + local.tee $6 local.get $5 + local.get $6 i32.gt_u select i32.ge_u @@ -11485,35 +12463,50 @@ end if local.get $0 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 local.get $4 - call $~lib/set/Set#rehash + call $~lib/set/Set#rehash end i32.const 1 - local.set $6 - global.get $~lib/memory/__stack_pointer + ) + (func $~lib/set/Set#clear (param $0 i32) + local.get $0 + i32.const 0 i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 + i32.const 4 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + call $~lib/set/Set#set:buckets + local.get $0 + i32.const 4 + i32.const 1 + i32.sub + call $~lib/set/Set#set:bucketsMask + local.get $0 + i32.const 0 + i32.const 4 + i32.const 8 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + call $~lib/set/Set#set:entries + local.get $0 + i32.const 4 + call $~lib/set/Set#set:entriesCapacity + local.get $0 + i32.const 0 + call $~lib/set/Set#set:entriesOffset + local.get $0 + i32.const 0 + call $~lib/set/Set#set:entriesCount ) - (func $std/set/testNumeric + (func $std/set/testNumeric (local $0 i32) - (local $1 i32) + (local $1 f32) (local $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) global.get $~lib/memory/__stack_pointer - i32.const 20 + i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check @@ -11521,35 +12514,25 @@ 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 0 - i32.store offset=16 + i32.store offset=8 global.get $~lib/memory/__stack_pointer i32.const 0 - call $~lib/set/Set#constructor + call $~lib/set/Set#constructor local.tee $0 i32.store - i32.const 0 + f32.const 0 local.set $1 - loop $for-loop|1 + loop $for-loop|0 local.get $1 - i32.const 65535 - i32.and - i32.const 100 - i32.lt_u - local.set $3 - local.get $3 + f32.const 100 + f32.lt + local.set $2 + local.get $2 if local.get $0 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 local.get $1 - call $~lib/set/Set#has + call $~lib/set/Set#has i32.eqz i32.eqz if @@ -11561,22 +12544,12 @@ unreachable end local.get $0 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 local.get $1 - call $~lib/set/Set#add + call $~lib/set/Set#add drop local.get $0 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 local.get $1 - call $~lib/set/Set#has + call $~lib/set/Set#has i32.eqz if i32.const 0 @@ -11587,19 +12560,14 @@ unreachable end local.get $1 - i32.const 1 - i32.add + f32.const 1 + f32.add local.set $1 - br $for-loop|1 + br $for-loop|0 end end local.get $0 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - call $~lib/set/Set#get:size + call $~lib/set/Set#get:size i32.const 100 i32.eq i32.eqz @@ -11611,25 +12579,18 @@ call $~lib/builtins/abort unreachable end - i32.const 50 + f32.const 50 local.set $1 - loop $for-loop|3 + loop $for-loop|1 local.get $1 - i32.const 65535 - i32.and - i32.const 100 - i32.lt_u - local.set $4 - local.get $4 + f32.const 100 + f32.lt + local.set $2 + local.get $2 if local.get $0 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 local.get $1 - call $~lib/set/Set#has + call $~lib/set/Set#has i32.eqz if i32.const 0 @@ -11640,22 +12601,12 @@ unreachable end local.get $0 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 local.get $1 - call $~lib/set/Set#add + call $~lib/set/Set#add drop local.get $0 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 local.get $1 - call $~lib/set/Set#has + call $~lib/set/Set#has i32.eqz if i32.const 0 @@ -11666,19 +12617,14 @@ unreachable end local.get $1 - i32.const 1 - i32.add + f32.const 1 + f32.add local.set $1 - br $for-loop|3 + br $for-loop|1 end end local.get $0 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - call $~lib/set/Set#get:size + call $~lib/set/Set#get:size i32.const 100 i32.eq i32.eqz @@ -11692,49 +12638,29 @@ end global.get $~lib/memory/__stack_pointer local.get $0 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 + call $~lib/set/Set#values + local.tee $2 i32.store offset=4 - local.get $9 - call $~lib/set/Set#values - local.tee $1 - i32.store offset=8 global.get $~lib/memory/__stack_pointer i32.const 0 - call $~lib/set/Set#constructor - local.tee $4 - i32.store offset=12 + call $~lib/set/Set#constructor + local.tee $3 + i32.store offset=8 i32.const 0 - local.set $5 - loop $for-loop|4 - local.get $5 - local.get $1 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - call $~lib/array/Array#get:length + local.set $4 + loop $for-loop|2 + local.get $4 + local.get $2 + call $~lib/array/Array#get:length i32.lt_s - local.set $6 - local.get $6 + local.set $5 + local.get $5 if local.get $0 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - local.get $1 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=16 - local.get $9 - local.get $5 - call $~lib/array/Array#__get - call $~lib/set/Set#has + local.get $2 + local.get $4 + call $~lib/array/Array#__get + call $~lib/set/Set#has i32.eqz if i32.const 0 @@ -11744,43 +12670,23 @@ call $~lib/builtins/abort unreachable end + local.get $3 + local.get $2 local.get $4 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - local.get $1 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=16 - local.get $9 - local.get $5 - call $~lib/array/Array#__get - call $~lib/set/Set#add + call $~lib/array/Array#__get + call $~lib/set/Set#add drop - local.get $5 + local.get $4 i32.const 1 i32.add - local.set $5 - br $for-loop|4 + local.set $4 + br $for-loop|2 end end - local.get $4 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - call $~lib/set/Set#get:size + local.get $3 + call $~lib/set/Set#get:size local.get $0 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - call $~lib/set/Set#get:size + call $~lib/set/Set#get:size i32.eq i32.eqz if @@ -11791,25 +12697,18 @@ call $~lib/builtins/abort unreachable end - i32.const 0 - local.set $5 - loop $for-loop|6 - local.get $5 - i32.const 65535 - i32.and - i32.const 50 - i32.lt_u - local.set $7 - local.get $7 + f32.const 0 + local.set $1 + loop $for-loop|3 + local.get $1 + f32.const 50 + f32.lt + local.set $4 + local.get $4 if local.get $0 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - local.get $5 - call $~lib/set/Set#has + local.get $1 + call $~lib/set/Set#has i32.eqz if i32.const 0 @@ -11820,22 +12719,12 @@ unreachable end local.get $0 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - local.get $5 - call $~lib/set/Set#delete + local.get $1 + call $~lib/set/Set#delete drop local.get $0 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - local.get $5 - call $~lib/set/Set#has + local.get $1 + call $~lib/set/Set#has i32.eqz i32.eqz if @@ -11846,20 +12735,15 @@ call $~lib/builtins/abort unreachable end - local.get $5 - i32.const 1 - i32.add - local.set $5 - br $for-loop|6 + local.get $1 + f32.const 1 + f32.add + local.set $1 + br $for-loop|3 end end local.get $0 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - call $~lib/set/Set#get:size + call $~lib/set/Set#get:size i32.const 50 i32.eq i32.eqz @@ -11871,25 +12755,18 @@ call $~lib/builtins/abort unreachable end - i32.const 0 - local.set $5 - loop $for-loop|8 - local.get $5 - i32.const 65535 - i32.and - i32.const 50 - i32.lt_u - local.set $8 - local.get $8 + f32.const 0 + local.set $1 + loop $for-loop|4 + local.get $1 + f32.const 50 + f32.lt + local.set $4 + local.get $4 if local.get $0 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - local.get $5 - call $~lib/set/Set#has + local.get $1 + call $~lib/set/Set#has i32.eqz i32.eqz if @@ -11901,22 +12778,12 @@ unreachable end local.get $0 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - local.get $5 - call $~lib/set/Set#add + local.get $1 + call $~lib/set/Set#add drop local.get $0 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - local.get $5 - call $~lib/set/Set#has + local.get $1 + call $~lib/set/Set#has i32.eqz if i32.const 0 @@ -11927,22 +12794,12 @@ unreachable end local.get $0 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - local.get $5 - call $~lib/set/Set#delete + local.get $1 + call $~lib/set/Set#delete drop local.get $0 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - local.get $5 - call $~lib/set/Set#has + local.get $1 + call $~lib/set/Set#has i32.eqz i32.eqz if @@ -11953,20 +12810,15 @@ call $~lib/builtins/abort unreachable end - local.get $5 - i32.const 1 - i32.add - local.set $5 - br $for-loop|8 + local.get $1 + f32.const 1 + f32.add + local.set $1 + br $for-loop|4 end end local.get $0 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - call $~lib/set/Set#get:size + call $~lib/set/Set#get:size i32.const 50 i32.eq i32.eqz @@ -11979,19 +12831,9 @@ unreachable end local.get $0 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - call $~lib/set/Set#clear + call $~lib/set/Set#clear local.get $0 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - call $~lib/set/Set#get:size + call $~lib/set/Set#get:size i32.const 0 i32.eq i32.eqz @@ -12004,127 +12846,336 @@ unreachable end global.get $~lib/memory/__stack_pointer - i32.const 20 + i32.const 12 i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/set/Set#has (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) + (func $~lib/set/Set#set:buckets (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + local.get $0 + local.get $1 + i32.const 0 + call $~lib/rt/itcms/__link + ) + (func $~lib/set/Set#set:bucketsMask (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=4 + ) + (func $~lib/set/Set#set:entries (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=8 + local.get $0 + local.get $1 + i32.const 0 + call $~lib/rt/itcms/__link + ) + (func $~lib/set/Set#set:entriesCapacity (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=12 + ) + (func $~lib/set/Set#set:entriesOffset (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=16 + ) + (func $~lib/set/Set#set:entriesCount (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=20 + ) + (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 + (local $4 i32) + (local $5 i32) + local.get $0 + i32.load + local.get $2 + local.get $0 + i32.load offset=4 + i32.and i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer + i32.mul + i32.add + i32.load + local.set $3 + loop $while-continue|0 + local.get $3 + local.set $4 + local.get $4 + if + local.get $3 + i32.load offset=8 + local.set $5 + local.get $5 + i32.const 1 + i32.and + i32.eqz + if (result i32) + local.get $3 + f64.load + local.get $1 + f64.eq + else + i32.const 0 + end + if + local.get $3 + return + end + local.get $5 + i32.const 1 + i32.const -1 + i32.xor + i32.and + local.set $3 + br $while-continue|0 + end + end i32.const 0 - i32.store + ) + (func $~lib/set/Set#has (param $0 i32) (param $1 f64) (result i32) + (local $2 f64) local.get $0 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store - local.get $3 local.get $1 - block $~lib/util/hash/HASH|inlined.0 (result i32) + block $~lib/util/hash/HASH|inlined.0 (result i32) local.get $1 local.set $2 i32.const 0 drop i32.const 0 drop - i32.const 0 - drop - i32.const 4 i32.const 1 - i32.eq drop + i32.const 8 i32.const 4 - i32.const 2 i32.eq drop - i32.const 4 - i32.const 4 + i32.const 8 + i32.const 8 i32.eq drop local.get $2 - call $~lib/util/hash/hash32 - br $~lib/util/hash/HASH|inlined.0 + i64.reinterpret_f64 + call $~lib/util/hash/hash64 + br $~lib/util/hash/HASH|inlined.0 end - call $~lib/set/Set#find + call $~lib/set/Set#find i32.const 0 i32.ne - 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/set/Set#add (param $0 i32) (param $1 i32) (result i32) + (func $~lib/set/SetEntry#set:key (param $0 i32) (param $1 f64) + local.get $0 + local.get $1 + f64.store + ) + (func $~lib/set/SetEntry#set:taggedNext (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=8 + ) + (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 $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 f64) + (local $13 f64) + (local $14 i32) + (local $15 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 - block $~lib/util/hash/HASH|inlined.1 (result i32) - local.get $1 - local.set $2 - i32.const 0 - drop - i32.const 0 - drop - i32.const 0 - drop - i32.const 4 - i32.const 1 - i32.eq - drop - i32.const 4 - i32.const 2 - i32.eq - drop - i32.const 4 - i32.const 4 - i32.eq - drop - local.get $2 - call $~lib/util/hash/hash32 - br $~lib/util/hash/HASH|inlined.1 - end - local.set $3 - local.get $0 - local.set $5 + i64.const 0 + i64.store + local.get $1 + i32.const 1 + i32.add + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $5 + i32.const 0 + local.get $2 + i32.const 4 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $3 i32.store - local.get $5 - local.get $1 - local.get $3 - call $~lib/set/Set#find + local.get $2 + i32.const 8 + i32.mul + i32.const 3 + i32.div_s local.set $4 + global.get $~lib/memory/__stack_pointer + i32.const 0 local.get $4 - i32.eqz - if - local.get $0 - i32.load offset=16 - local.get $0 - i32.load offset=12 - i32.eq + i32.const 16 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $5 + i32.store offset=4 + local.get $0 + i32.load offset=8 + local.set $6 + local.get $6 + local.get $0 + i32.load offset=16 + i32.const 16 + i32.mul + i32.add + local.set $7 + local.get $5 + local.set $8 + loop $while-continue|0 + local.get $6 + local.get $7 + i32.ne + local.set $9 + local.get $9 if - local.get $0 - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - local.get $5 + local.get $6 + local.set $10 + local.get $10 + i32.load offset=8 + i32.const 1 + i32.and + i32.eqz + if + local.get $8 + local.set $11 + local.get $10 + f64.load + local.set $12 + local.get $11 + local.get $12 + call $~lib/set/SetEntry#set:key + block $~lib/util/hash/HASH|inlined.2 (result i32) + local.get $12 + local.set $13 + i32.const 0 + drop + i32.const 0 + drop + i32.const 1 + drop + i32.const 8 + i32.const 4 + i32.eq + drop + i32.const 8 + i32.const 8 + i32.eq + drop + local.get $13 + i64.reinterpret_f64 + call $~lib/util/hash/hash64 + br $~lib/util/hash/HASH|inlined.2 + end + local.get $1 + i32.and + local.set $14 + local.get $3 + local.get $14 + i32.const 4 + i32.mul + i32.add + local.set $15 + local.get $11 + local.get $15 + i32.load + call $~lib/set/SetEntry#set:taggedNext + local.get $15 + local.get $8 + i32.store + local.get $8 + i32.const 16 + i32.add + local.set $8 + end + local.get $6 + i32.const 16 + i32.add + local.set $6 + br $while-continue|0 + end + end + local.get $0 + local.get $3 + call $~lib/set/Set#set:buckets + local.get $0 + local.get $1 + call $~lib/set/Set#set:bucketsMask + local.get $0 + local.get $5 + call $~lib/set/Set#set:entries + local.get $0 + local.get $4 + call $~lib/set/Set#set:entriesCapacity + local.get $0 + local.get $0 + i32.load offset=20 + call $~lib/set/Set#set:entriesOffset + 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 f64) (result i32) + (local $2 f64) + (local $3 i32) + (local $4 i32) + (local $5 i32) + block $~lib/util/hash/HASH|inlined.1 (result i32) + local.get $1 + local.set $2 + i32.const 0 + drop + i32.const 0 + drop + i32.const 1 + drop + i32.const 8 + i32.const 4 + i32.eq + drop + i32.const 8 + i32.const 8 + i32.eq + drop + local.get $2 + i64.reinterpret_f64 + call $~lib/util/hash/hash64 + br $~lib/util/hash/HASH|inlined.1 + end + local.set $3 + local.get $0 + local.get $1 + local.get $3 + call $~lib/set/Set#find + local.set $4 + local.get $4 + i32.eqz + if + local.get $0 + i32.load offset=16 + local.get $0 + i32.load offset=12 + i32.eq + if + local.get $0 local.get $0 i32.load offset=20 local.get $0 @@ -12145,25 +13196,25 @@ i32.const 1 i32.or end - call $~lib/set/Set#rehash + call $~lib/set/Set#rehash end local.get $0 i32.load offset=8 local.get $0 local.get $0 i32.load offset=16 - local.tee $2 + local.tee $5 i32.const 1 i32.add - call $~lib/set/Set#set:entriesOffset - local.get $2 - i32.const 8 + call $~lib/set/Set#set:entriesOffset + local.get $5 + i32.const 16 i32.mul i32.add local.set $4 local.get $4 local.get $1 - call $~lib/set/SetEntry#set:key + call $~lib/set/SetEntry#set:key i32.const 0 drop local.get $0 @@ -12171,7 +13222,7 @@ i32.load offset=20 i32.const 1 i32.add - call $~lib/set/Set#set:entriesCount + call $~lib/set/Set#set:entriesCount local.get $0 i32.load local.get $3 @@ -12181,33 +13232,58 @@ i32.const 4 i32.mul i32.add - local.set $2 + local.set $5 local.get $4 - local.get $2 + local.get $5 i32.load - call $~lib/set/SetEntry#set:taggedNext - local.get $2 + call $~lib/set/SetEntry#set:taggedNext + local.get $5 local.get $4 i32.store end local.get $0 - local.set $5 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $5 ) - (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 - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 + (func $~lib/set/Set#get:size (param $0 i32) (result i32) + local.get $0 + i32.load offset=20 + ) + (func $~lib/array/Array#set:buffer (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 i32.store + local.get $0 + local.get $1 + i32.const 0 + call $~lib/rt/itcms/__link + ) + (func $~lib/array/Array#set:dataStart (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=4 + ) + (func $~lib/array/Array#set:byteLength (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=8 + ) + (func $~lib/array/Array#set:length_ (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=12 + ) + (func $~lib/array/Array#__uset (param $0 i32) (param $1 i32) (param $2 f64) + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 3 + i32.shl + i32.add + local.get $2 + f64.store + i32.const 0 + drop + ) + (func $~lib/array/Array#__set (param $0 i32) (param $1 i32) (param $2 f64) local.get $1 local.get $0 i32.load offset=12 @@ -12228,192 +13304,108 @@ local.get $1 i32.const 1 i32.add - i32.const 2 + i32.const 3 call $~lib/array/ensureSize local.get $0 local.get $1 i32.const 1 i32.add - call $~lib/array/Array#set:length_ + call $~lib/array/Array#set:length_ end local.get $0 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store - local.get $3 local.get $1 local.get $2 - call $~lib/array/Array#__uset - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer + call $~lib/array/Array#__uset ) - (func $~lib/set/Set#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) - (local $9 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 + (func $~lib/array/Array#set:length (param $0 i32) (param $1 i32) local.get $0 - i32.load offset=8 - local.set $1 + local.get $1 + i32.const 3 + call $~lib/array/ensureSize local.get $0 - i32.load offset=16 - local.set $2 - global.get $~lib/memory/__stack_pointer - i32.const 0 - local.get $2 - call $~lib/array/Array#constructor - local.tee $3 - i32.store - i32.const 0 - local.set $4 - i32.const 0 - local.set $5 - loop $for-loop|0 - local.get $5 - local.get $2 - i32.lt_s - local.set $6 - local.get $6 - if - local.get $1 - local.get $5 - i32.const 8 - i32.mul - i32.add - local.set $7 - local.get $7 - i32.load offset=4 - i32.const 1 - i32.and - i32.eqz - if - local.get $3 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - local.get $4 - local.tee $8 - i32.const 1 - i32.add - local.set $4 - local.get $8 - local.get $7 - i32.load - call $~lib/array/Array#__set - end - local.get $5 - i32.const 1 - i32.add - local.set $5 - br $for-loop|0 - end + local.get $1 + call $~lib/array/Array#set:length_ + ) + (func $~lib/array/Array#get:length (param $0 i32) (result i32) + local.get $0 + i32.load offset=12 + ) + (func $~lib/array/Array#__get (param $0 i32) (param $1 i32) (result f64) + (local $2 f64) + local.get $1 + local.get $0 + i32.load offset=12 + i32.ge_u + if + i32.const 224 + i32.const 592 + i32.const 92 + i32.const 42 + call $~lib/builtins/abort + unreachable end - local.get $3 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - local.get $4 - call $~lib/array/Array#set:length - local.get $3 - local.set $9 - global.get $~lib/memory/__stack_pointer - i32.const 8 + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 3 + i32.shl i32.add - global.set $~lib/memory/__stack_pointer - local.get $9 + f64.load + local.set $2 + i32.const 0 + drop + local.get $2 ) - (func $~lib/set/Set#delete (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) + (func $~lib/set/Set#delete (param $0 i32) (param $1 f64) (result i32) + (local $2 f64) (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 - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store local.get $0 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 local.get $1 - block $~lib/util/hash/HASH|inlined.3 (result i32) + block $~lib/util/hash/HASH|inlined.3 (result i32) local.get $1 local.set $2 i32.const 0 drop i32.const 0 drop - i32.const 0 - drop - i32.const 4 i32.const 1 - i32.eq drop + i32.const 8 i32.const 4 - i32.const 2 i32.eq drop - i32.const 4 - i32.const 4 + i32.const 8 + i32.const 8 i32.eq drop local.get $2 - call $~lib/util/hash/hash32 - br $~lib/util/hash/HASH|inlined.3 + i64.reinterpret_f64 + call $~lib/util/hash/hash64 + br $~lib/util/hash/HASH|inlined.3 end - call $~lib/set/Set#find + call $~lib/set/Set#find local.set $3 local.get $3 i32.eqz if i32.const 0 - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 return end local.get $3 local.get $3 - i32.load offset=4 + i32.load offset=8 i32.const 1 i32.or - call $~lib/set/SetEntry#set:taggedNext + call $~lib/set/SetEntry#set:taggedNext local.get $0 local.get $0 i32.load offset=20 i32.const 1 i32.sub - call $~lib/set/Set#set:entriesCount + call $~lib/set/Set#set:entriesCount local.get $0 i32.load offset=4 i32.const 1 @@ -12423,12 +13415,12 @@ i32.const 1 i32.add i32.const 4 - local.tee $2 + local.tee $5 local.get $0 i32.load offset=20 - local.tee $5 - local.get $2 + local.tee $6 local.get $5 + local.get $6 i32.gt_u select i32.ge_u @@ -12447,31 +13439,50 @@ end if local.get $0 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 local.get $4 - call $~lib/set/Set#rehash + call $~lib/set/Set#rehash end i32.const 1 - local.set $6 - global.get $~lib/memory/__stack_pointer + ) + (func $~lib/set/Set#clear (param $0 i32) + local.get $0 + i32.const 0 i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 + i32.const 4 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + call $~lib/set/Set#set:buckets + local.get $0 + i32.const 4 + i32.const 1 + i32.sub + call $~lib/set/Set#set:bucketsMask + local.get $0 + i32.const 0 + i32.const 4 + i32.const 16 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + call $~lib/set/Set#set:entries + local.get $0 + i32.const 4 + call $~lib/set/Set#set:entriesCapacity + local.get $0 + i32.const 0 + call $~lib/set/Set#set:entriesOffset + local.get $0 + i32.const 0 + call $~lib/set/Set#set:entriesCount ) - (func $std/set/testNumeric + (func $std/set/testNumeric (local $0 i32) - (local $1 i32) + (local $1 f64) (local $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) global.get $~lib/memory/__stack_pointer - i32.const 20 + i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check @@ -12479,33 +13490,25 @@ 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 0 - i32.store offset=16 + i32.store offset=8 global.get $~lib/memory/__stack_pointer i32.const 0 - call $~lib/set/Set#constructor + call $~lib/set/Set#constructor local.tee $0 i32.store - i32.const 0 + f64.const 0 local.set $1 loop $for-loop|0 local.get $1 - i32.const 100 - i32.lt_s + f64.const 100 + f64.lt local.set $2 local.get $2 if local.get $0 - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 local.get $1 - call $~lib/set/Set#has + call $~lib/set/Set#has i32.eqz i32.eqz if @@ -12517,22 +13520,12 @@ unreachable end local.get $0 - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 local.get $1 - call $~lib/set/Set#add + call $~lib/set/Set#add drop local.get $0 - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 local.get $1 - call $~lib/set/Set#has + call $~lib/set/Set#has i32.eqz if i32.const 0 @@ -12543,19 +13536,14 @@ unreachable end local.get $1 - i32.const 1 - i32.add + f64.const 1 + f64.add local.set $1 br $for-loop|0 end end local.get $0 - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - call $~lib/set/Set#get:size + call $~lib/set/Set#get:size i32.const 100 i32.eq i32.eqz @@ -12567,23 +13555,18 @@ call $~lib/builtins/abort unreachable end - i32.const 50 + f64.const 50 local.set $1 loop $for-loop|1 local.get $1 - i32.const 100 - i32.lt_s + f64.const 100 + f64.lt local.set $2 local.get $2 if local.get $0 - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 local.get $1 - call $~lib/set/Set#has + call $~lib/set/Set#has i32.eqz if i32.const 0 @@ -12594,22 +13577,12 @@ unreachable end local.get $0 - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 local.get $1 - call $~lib/set/Set#add + call $~lib/set/Set#add drop local.get $0 - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 local.get $1 - call $~lib/set/Set#has + call $~lib/set/Set#has i32.eqz if i32.const 0 @@ -12620,19 +13593,14 @@ unreachable end local.get $1 - i32.const 1 - i32.add + f64.const 1 + f64.add local.set $1 br $for-loop|1 end end local.get $0 - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - call $~lib/set/Set#get:size + call $~lib/set/Set#get:size i32.const 100 i32.eq i32.eqz @@ -12646,49 +13614,29 @@ end global.get $~lib/memory/__stack_pointer local.get $0 - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 + call $~lib/set/Set#values + local.tee $2 i32.store offset=4 - local.get $5 - call $~lib/set/Set#values - local.tee $1 - i32.store offset=8 global.get $~lib/memory/__stack_pointer i32.const 0 - call $~lib/set/Set#constructor - local.tee $2 - i32.store offset=12 + call $~lib/set/Set#constructor + local.tee $3 + i32.store offset=8 i32.const 0 - local.set $3 + local.set $4 loop $for-loop|2 - local.get $3 - local.get $1 + local.get $4 + local.get $2 + call $~lib/array/Array#get:length + i32.lt_s local.set $5 - global.get $~lib/memory/__stack_pointer local.get $5 - i32.store offset=4 - local.get $5 - call $~lib/array/Array#get:length - i32.lt_s - local.set $4 - local.get $4 if local.get $0 - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - local.get $1 - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=16 - local.get $5 - local.get $3 - call $~lib/array/Array#__get - call $~lib/set/Set#has + local.get $2 + local.get $4 + call $~lib/array/Array#__get + call $~lib/set/Set#has i32.eqz if i32.const 0 @@ -12698,43 +13646,23 @@ call $~lib/builtins/abort unreachable end - local.get $2 - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - local.get $1 - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=16 - local.get $5 local.get $3 - call $~lib/array/Array#__get - call $~lib/set/Set#add + local.get $2 + local.get $4 + call $~lib/array/Array#__get + call $~lib/set/Set#add drop - local.get $3 + local.get $4 i32.const 1 i32.add - local.set $3 + local.set $4 br $for-loop|2 end end - local.get $2 - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - call $~lib/set/Set#get:size + local.get $3 + call $~lib/set/Set#get:size local.get $0 - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - call $~lib/set/Set#get:size + call $~lib/set/Set#get:size i32.eq i32.eqz if @@ -12745,23 +13673,18 @@ call $~lib/builtins/abort unreachable end - i32.const 0 - local.set $3 + f64.const 0 + local.set $1 loop $for-loop|3 - local.get $3 - i32.const 50 - i32.lt_s + local.get $1 + f64.const 50 + f64.lt local.set $4 local.get $4 if local.get $0 - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - local.get $3 - call $~lib/set/Set#has + local.get $1 + call $~lib/set/Set#has i32.eqz if i32.const 0 @@ -12772,22 +13695,12 @@ unreachable end local.get $0 - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - local.get $3 - call $~lib/set/Set#delete + local.get $1 + call $~lib/set/Set#delete drop local.get $0 - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - local.get $3 - call $~lib/set/Set#has + local.get $1 + call $~lib/set/Set#has i32.eqz i32.eqz if @@ -12798,20 +13711,15 @@ call $~lib/builtins/abort unreachable end - local.get $3 - i32.const 1 - i32.add - local.set $3 + local.get $1 + f64.const 1 + f64.add + local.set $1 br $for-loop|3 end end local.get $0 - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - call $~lib/set/Set#get:size + call $~lib/set/Set#get:size i32.const 50 i32.eq i32.eqz @@ -12823,23 +13731,18 @@ call $~lib/builtins/abort unreachable end - i32.const 0 - local.set $3 + f64.const 0 + local.set $1 loop $for-loop|4 - local.get $3 - i32.const 50 - i32.lt_s + local.get $1 + f64.const 50 + f64.lt local.set $4 local.get $4 if local.get $0 - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - local.get $3 - call $~lib/set/Set#has + local.get $1 + call $~lib/set/Set#has i32.eqz i32.eqz if @@ -12851,22 +13754,12 @@ unreachable end local.get $0 - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - local.get $3 - call $~lib/set/Set#add + local.get $1 + call $~lib/set/Set#add drop local.get $0 - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - local.get $3 - call $~lib/set/Set#has + local.get $1 + call $~lib/set/Set#has i32.eqz if i32.const 0 @@ -12877,22 +13770,12 @@ unreachable end local.get $0 - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - local.get $3 - call $~lib/set/Set#delete + local.get $1 + call $~lib/set/Set#delete drop local.get $0 - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - local.get $3 - call $~lib/set/Set#has + local.get $1 + call $~lib/set/Set#has i32.eqz i32.eqz if @@ -12903,20 +13786,15 @@ call $~lib/builtins/abort unreachable end - local.get $3 - i32.const 1 - i32.add - local.set $3 + local.get $1 + f64.const 1 + f64.add + local.set $1 br $for-loop|4 end end local.get $0 - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - call $~lib/set/Set#get:size + call $~lib/set/Set#get:size i32.const 50 i32.eq i32.eqz @@ -12929,19 +13807,9 @@ unreachable end local.get $0 - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - call $~lib/set/Set#clear + call $~lib/set/Set#clear local.get $0 - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - call $~lib/set/Set#get:size + call $~lib/set/Set#get:size i32.const 0 i32.eq i32.eqz @@ -12954,4765 +13822,597 @@ unreachable end global.get $~lib/memory/__stack_pointer - i32.const 20 + i32.const 12 i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/set/Set#has (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 - call $~stack_check - global.get $~lib/memory/__stack_pointer + (func $~lib/rt/itcms/__collect + (local $0 i32) i32.const 0 - i32.store - local.get $0 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store - local.get $3 - local.get $1 - block $~lib/util/hash/HASH|inlined.0 (result i32) - local.get $1 - local.set $2 - i32.const 0 - drop - i32.const 0 - drop - i32.const 0 - drop - i32.const 4 - i32.const 1 - i32.eq - drop - i32.const 4 - i32.const 2 - i32.eq - drop - i32.const 4 - i32.const 4 - i32.eq - drop - local.get $2 - call $~lib/util/hash/hash32 - br $~lib/util/hash/HASH|inlined.0 - end - call $~lib/set/Set#find - i32.const 0 - i32.ne - 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/set/Set#add (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 - call $~stack_check - global.get $~lib/memory/__stack_pointer + drop + global.get $~lib/rt/itcms/state i32.const 0 - i32.store - block $~lib/util/hash/HASH|inlined.1 (result i32) - local.get $1 - local.set $2 - i32.const 0 - drop - i32.const 0 - drop - i32.const 0 - drop - i32.const 4 - i32.const 1 - i32.eq - drop - i32.const 4 - i32.const 2 - i32.eq - drop - i32.const 4 - i32.const 4 - i32.eq - drop - local.get $2 - call $~lib/util/hash/hash32 - br $~lib/util/hash/HASH|inlined.1 - end - local.set $3 - local.get $0 - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - local.get $5 - local.get $1 - local.get $3 - call $~lib/set/Set#find - local.set $4 - local.get $4 - i32.eqz + i32.gt_s if - local.get $0 - i32.load offset=16 - local.get $0 - i32.load offset=12 - i32.eq - if - local.get $0 - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - local.get $5 - local.get $0 - i32.load offset=20 + loop $while-continue|0 + global.get $~lib/rt/itcms/state + i32.const 0 + i32.ne + local.set $0 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 $0 - i32.load offset=4 - else - local.get $0 - i32.load offset=4 - i32.const 1 - i32.shl - i32.const 1 - i32.or + if + call $~lib/rt/itcms/step + drop + br $while-continue|0 end - call $~lib/set/Set#rehash end - local.get $0 - i32.load offset=8 - local.get $0 - local.get $0 - i32.load offset=16 - local.tee $2 - i32.const 1 - i32.add - call $~lib/set/Set#set:entriesOffset - local.get $2 - i32.const 8 - i32.mul - i32.add - local.set $4 - local.get $4 - local.get $1 - call $~lib/set/SetEntry#set:key + end + call $~lib/rt/itcms/step + drop + loop $while-continue|1 + global.get $~lib/rt/itcms/state i32.const 0 - drop - local.get $0 + i32.ne + local.set $0 local.get $0 - i32.load offset=20 + 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.const 0 + drop + i32.const 0 + if (result i32) i32.const 1 - i32.add - call $~lib/set/Set#set:entriesCount - local.get $0 - i32.load - local.get $3 - local.get $0 - i32.load offset=4 - i32.and - i32.const 4 - i32.mul - i32.add - local.set $2 - local.get $4 - local.get $2 - i32.load - call $~lib/set/SetEntry#set:taggedNext - local.get $2 - local.get $4 - i32.store + else + i32.const 0 end + drop + ) + (func $start:std/set + 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 + 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 + call $~lib/rt/itcms/__collect + ) + (func $~lib/rt/__visit_globals (param $0 i32) + (local $1 i32) + i32.const 224 local.get $0 - local.set $5 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $5 + call $~lib/rt/itcms/__visit + i32.const 432 + local.get $0 + call $~lib/rt/itcms/__visit + i32.const 32 + local.get $0 + call $~lib/rt/itcms/__visit ) - (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 - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - local.get $1 + (func $~lib/arraybuffer/ArrayBufferView~visit (param $0 i32) (param $1 i32) + (local $2 i32) local.get $0 - i32.load offset=12 - i32.ge_u + i32.load + local.tee $2 if + local.get $2 local.get $1 - i32.const 0 - i32.lt_s - if - i32.const 224 - i32.const 592 - i32.const 108 - i32.const 22 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.get $1 - i32.const 1 - i32.add - i32.const 2 - call $~lib/array/ensureSize - local.get $0 - local.get $1 - i32.const 1 - i32.add - call $~lib/array/Array#set:length_ + call $~lib/rt/itcms/__visit end + ) + (func $~lib/set/Set#__visit (param $0 i32) (param $1 i32) + (local $2 i32) local.get $0 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store - local.get $3 + i32.load local.get $1 + call $~lib/rt/itcms/__visit + local.get $0 + i32.load offset=8 + local.set $2 + i32.const 0 + drop local.get $2 - call $~lib/array/Array#__uset - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer + local.get $1 + call $~lib/rt/itcms/__visit ) - (func $~lib/set/Set#values (param $0 i32) (result i32) - (local $1 i32) + (func $~lib/set/Set~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/set/Set#__visit + ) + (func $~lib/array/Array#__visit (param $0 i32) (param $1 i32) + i32.const 0 + drop + local.get $0 + i32.load + local.get $1 + call $~lib/rt/itcms/__visit + ) + (func $~lib/array/Array~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/array/Array#__visit + ) + (func $~lib/set/Set#__visit (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 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 $0 - i32.load offset=8 - local.set $1 + i32.load + local.get $1 + call $~lib/rt/itcms/__visit local.get $0 - i32.load offset=16 + i32.load offset=8 local.set $2 - global.get $~lib/memory/__stack_pointer i32.const 0 + drop local.get $2 - call $~lib/array/Array#constructor - local.tee $3 - i32.store - i32.const 0 - local.set $4 + local.get $1 + call $~lib/rt/itcms/__visit + ) + (func $~lib/set/Set~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/set/Set#__visit + ) + (func $~lib/array/Array#__visit (param $0 i32) (param $1 i32) i32.const 0 - local.set $5 - loop $for-loop|0 - local.get $5 - local.get $2 - i32.lt_s - local.set $6 - local.get $6 - if - local.get $1 - local.get $5 - i32.const 8 - i32.mul - i32.add - local.set $7 - local.get $7 - i32.load offset=4 - i32.const 1 - i32.and - i32.eqz - if - local.get $3 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - local.get $4 - local.tee $8 - i32.const 1 - i32.add - local.set $4 - local.get $8 - local.get $7 - i32.load - call $~lib/array/Array#__set - end - local.get $5 - i32.const 1 - i32.add - local.set $5 - br $for-loop|0 - end - end - local.get $3 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - local.get $4 - call $~lib/array/Array#set:length - local.get $3 - local.set $9 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $9 + drop + local.get $0 + i32.load + local.get $1 + call $~lib/rt/itcms/__visit ) - (func $~lib/set/Set#delete (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/array/Array#__visit + ) + (func $~lib/set/Set#__visit (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 4 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer + local.get $0 + i32.load + local.get $1 + call $~lib/rt/itcms/__visit + local.get $0 + i32.load offset=8 + local.set $2 i32.const 0 - i32.store + drop + local.get $2 + local.get $1 + call $~lib/rt/itcms/__visit + ) + (func $~lib/set/Set~visit (param $0 i32) (param $1 i32) local.get $0 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 local.get $1 - block $~lib/util/hash/HASH|inlined.3 (result i32) - local.get $1 - local.set $2 - i32.const 0 - drop - i32.const 0 - drop - i32.const 0 - drop - i32.const 4 - i32.const 1 - i32.eq - drop - i32.const 4 - i32.const 2 - i32.eq - drop - i32.const 4 - i32.const 4 - i32.eq - drop - local.get $2 - call $~lib/util/hash/hash32 - br $~lib/util/hash/HASH|inlined.3 - end - call $~lib/set/Set#find - local.set $3 - local.get $3 - i32.eqz - if - i32.const 0 - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - return - end - local.get $3 - local.get $3 - i32.load offset=4 - i32.const 1 - i32.or - call $~lib/set/SetEntry#set:taggedNext + call $~lib/set/Set#__visit + ) + (func $~lib/array/Array#__visit (param $0 i32) (param $1 i32) + i32.const 0 + drop local.get $0 + i32.load + local.get $1 + call $~lib/rt/itcms/__visit + ) + (func $~lib/array/Array~visit (param $0 i32) (param $1 i32) local.get $0 - i32.load offset=20 - i32.const 1 - i32.sub - call $~lib/set/Set#set:entriesCount + local.get $1 + call $~lib/array/Array#__visit + ) + (func $~lib/set/Set#__visit (param $0 i32) (param $1 i32) + (local $2 i32) local.get $0 - i32.load offset=4 - i32.const 1 - i32.shr_u - local.set $4 - local.get $4 - i32.const 1 - i32.add - i32.const 4 - local.tee $2 + i32.load + local.get $1 + call $~lib/rt/itcms/__visit local.get $0 - i32.load offset=20 - local.tee $5 + i32.load offset=8 + local.set $2 + i32.const 0 + drop local.get $2 - local.get $5 - i32.gt_u - select - i32.ge_u - if (result i32) - local.get $0 - i32.load offset=20 - 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 $0 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - local.get $4 - call $~lib/set/Set#rehash - end - i32.const 1 - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 + local.get $1 + call $~lib/rt/itcms/__visit ) - (func $std/set/testNumeric - (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 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 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - i32.const 0 - call $~lib/set/Set#constructor - local.tee $0 - i32.store + (func $~lib/set/Set~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/set/Set#__visit + ) + (func $~lib/array/Array#__visit (param $0 i32) (param $1 i32) i32.const 0 - local.set $1 - loop $for-loop|0 - local.get $1 - i32.const 100 - i32.lt_u - local.set $2 - local.get $2 - if - local.get $0 - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - local.get $1 - call $~lib/set/Set#has - i32.eqz - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 6 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - local.get $1 - call $~lib/set/Set#add - drop - local.get $0 - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - local.get $1 - call $~lib/set/Set#has - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 8 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i32.const 1 - i32.add - local.set $1 - br $for-loop|0 - end - end + drop local.get $0 - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - call $~lib/set/Set#get:size - i32.const 100 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 10 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 50 - local.set $1 - loop $for-loop|1 - local.get $1 - i32.const 100 - i32.lt_u - local.set $2 - local.get $2 - if - local.get $0 - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - local.get $1 - call $~lib/set/Set#has - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 14 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - local.get $1 - call $~lib/set/Set#add - drop - local.get $0 - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - local.get $1 - call $~lib/set/Set#has - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 16 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i32.const 1 - i32.add - local.set $1 - br $for-loop|1 - end - end + i32.load + local.get $1 + call $~lib/rt/itcms/__visit + ) + (func $~lib/array/Array~visit (param $0 i32) (param $1 i32) local.get $0 - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - call $~lib/set/Set#get:size - i32.const 100 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 18 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer + local.get $1 + call $~lib/array/Array#__visit + ) + (func $~lib/set/Set#__visit (param $0 i32) (param $1 i32) + (local $2 i32) local.get $0 - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - call $~lib/set/Set#values - local.tee $1 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer + i32.load + local.get $1 + call $~lib/rt/itcms/__visit + local.get $0 + i32.load offset=8 + local.set $2 i32.const 0 - call $~lib/set/Set#constructor - local.tee $2 - i32.store offset=12 + drop + local.get $2 + local.get $1 + call $~lib/rt/itcms/__visit + ) + (func $~lib/set/Set~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/set/Set#__visit + ) + (func $~lib/array/Array#__visit (param $0 i32) (param $1 i32) i32.const 0 - local.set $3 - loop $for-loop|2 - local.get $3 - local.get $1 - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - call $~lib/array/Array#get:length - i32.lt_s - local.set $4 - local.get $4 - if - local.get $0 - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - local.get $1 - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=16 - local.get $5 - local.get $3 - call $~lib/array/Array#__get - call $~lib/set/Set#has - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 24 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - local.get $1 - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=16 - local.get $5 - local.get $3 - call $~lib/array/Array#__get - call $~lib/set/Set#add - drop - local.get $3 - i32.const 1 - i32.add - local.set $3 - br $for-loop|2 - end - end + drop + local.get $0 + i32.load + local.get $1 + call $~lib/rt/itcms/__visit + ) + (func $~lib/array/Array~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/array/Array#__visit + ) + (func $~lib/set/Set#__visit (param $0 i32) (param $1 i32) + (local $2 i32) + local.get $0 + i32.load + local.get $1 + call $~lib/rt/itcms/__visit + local.get $0 + i32.load offset=8 + local.set $2 + i32.const 0 + drop local.get $2 - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - call $~lib/set/Set#get:size + local.get $1 + call $~lib/rt/itcms/__visit + ) + (func $~lib/set/Set~visit (param $0 i32) (param $1 i32) local.get $0 - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - call $~lib/set/Set#get:size - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 27 - i32.const 3 - call $~lib/builtins/abort - unreachable - end + local.get $1 + call $~lib/set/Set#__visit + ) + (func $~lib/array/Array#__visit (param $0 i32) (param $1 i32) i32.const 0 - local.set $3 - loop $for-loop|3 - local.get $3 - i32.const 50 - i32.lt_u - local.set $4 - local.get $4 - if - local.get $0 - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - local.get $3 - call $~lib/set/Set#has - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 31 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - local.get $3 - call $~lib/set/Set#delete - drop - local.get $0 - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - local.get $3 - call $~lib/set/Set#has - i32.eqz - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 33 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $3 - i32.const 1 - i32.add - local.set $3 - br $for-loop|3 - end - end + drop local.get $0 - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - call $~lib/set/Set#get:size - i32.const 50 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 35 - i32.const 3 - call $~lib/builtins/abort - unreachable - end + i32.load + local.get $1 + call $~lib/rt/itcms/__visit + ) + (func $~lib/array/Array~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/array/Array#__visit + ) + (func $~lib/set/Set#__visit (param $0 i32) (param $1 i32) + (local $2 i32) + local.get $0 + i32.load + local.get $1 + call $~lib/rt/itcms/__visit + local.get $0 + i32.load offset=8 + local.set $2 i32.const 0 - local.set $3 - loop $for-loop|4 - local.get $3 - i32.const 50 - i32.lt_u - local.set $4 - local.get $4 - if - local.get $0 - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - local.get $3 - call $~lib/set/Set#has - i32.eqz - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 39 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - local.get $3 - call $~lib/set/Set#add - drop - local.get $0 - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - local.get $3 - call $~lib/set/Set#has - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 41 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - local.get $3 - call $~lib/set/Set#delete - drop - local.get $0 - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - local.get $3 - call $~lib/set/Set#has - i32.eqz - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 43 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $3 - i32.const 1 - i32.add - local.set $3 - br $for-loop|4 - end - end + drop + local.get $2 + local.get $1 + call $~lib/rt/itcms/__visit + ) + (func $~lib/set/Set~visit (param $0 i32) (param $1 i32) local.get $0 - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - call $~lib/set/Set#get:size - i32.const 50 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 45 - i32.const 3 - call $~lib/builtins/abort - unreachable - end + local.get $1 + call $~lib/set/Set#__visit + ) + (func $~lib/array/Array#__visit (param $0 i32) (param $1 i32) + i32.const 0 + drop local.get $0 - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - call $~lib/set/Set#clear + i32.load + local.get $1 + call $~lib/rt/itcms/__visit + ) + (func $~lib/array/Array~visit (param $0 i32) (param $1 i32) local.get $0 - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - call $~lib/set/Set#get:size + local.get $1 + call $~lib/array/Array#__visit + ) + (func $~lib/set/Set#__visit (param $0 i32) (param $1 i32) + (local $2 i32) + local.get $0 + i32.load + local.get $1 + call $~lib/rt/itcms/__visit + local.get $0 + i32.load offset=8 + local.set $2 i32.const 0 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - 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 + drop + local.get $2 + local.get $1 + call $~lib/rt/itcms/__visit ) - (func $~lib/set/Set#has (param $0 i32) (param $1 i64) (result i32) - (local $2 i64) - (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 + (func $~lib/set/Set~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/set/Set#__visit + ) + (func $~lib/array/Array#__visit (param $0 i32) (param $1 i32) i32.const 0 - i32.store + drop local.get $0 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store - local.get $3 + i32.load local.get $1 - block $~lib/util/hash/HASH|inlined.0 (result i32) - local.get $1 - local.set $2 - i32.const 0 - drop - i32.const 0 - drop - i32.const 0 - drop - i32.const 8 - i32.const 1 - i32.eq - drop - i32.const 8 - i32.const 2 - i32.eq - drop - i32.const 8 - i32.const 4 - i32.eq - drop - i32.const 8 - i32.const 8 - i32.eq - drop - local.get $2 - call $~lib/util/hash/hash64 - br $~lib/util/hash/HASH|inlined.0 - end - call $~lib/set/Set#find + call $~lib/rt/itcms/__visit + ) + (func $~lib/array/Array~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/array/Array#__visit + ) + (func $~lib/set/Set#__visit (param $0 i32) (param $1 i32) + (local $2 i32) + local.get $0 + i32.load + local.get $1 + call $~lib/rt/itcms/__visit + local.get $0 + i32.load offset=8 + local.set $2 i32.const 0 - i32.ne - local.set $3 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $3 + drop + local.get $2 + local.get $1 + call $~lib/rt/itcms/__visit ) - (func $~lib/set/Set#add (param $0 i32) (param $1 i64) (result i32) - (local $2 i64) - (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 - call $~stack_check - global.get $~lib/memory/__stack_pointer + (func $~lib/set/Set~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/set/Set#__visit + ) + (func $~lib/array/Array#__visit (param $0 i32) (param $1 i32) i32.const 0 - i32.store - block $~lib/util/hash/HASH|inlined.1 (result i32) - local.get $1 - local.set $2 - i32.const 0 - drop - i32.const 0 - drop - i32.const 0 - drop - i32.const 8 - i32.const 1 - i32.eq - drop - i32.const 8 - i32.const 2 - i32.eq - drop - i32.const 8 - i32.const 4 - i32.eq - drop - i32.const 8 - i32.const 8 - i32.eq - drop - local.get $2 - call $~lib/util/hash/hash64 - br $~lib/util/hash/HASH|inlined.1 - end - local.set $3 + drop local.get $0 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 + i32.load local.get $1 - local.get $3 - call $~lib/set/Set#find - local.set $4 - local.get $4 - i32.eqz - if - local.get $0 - i32.load offset=16 - local.get $0 - i32.load offset=12 - i32.eq - if - local.get $0 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - local.get $0 - i32.load offset=20 - 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 $0 - i32.load offset=4 - else - local.get $0 - i32.load offset=4 - i32.const 1 - i32.shl - i32.const 1 - i32.or - end - call $~lib/set/Set#rehash - end - local.get $0 - i32.load offset=8 - local.get $0 - local.get $0 - i32.load offset=16 - local.tee $5 - i32.const 1 - i32.add - call $~lib/set/Set#set:entriesOffset - local.get $5 - i32.const 16 - i32.mul - i32.add - local.set $4 - local.get $4 - local.get $1 - call $~lib/set/SetEntry#set:key - i32.const 0 - drop - local.get $0 - local.get $0 - i32.load offset=20 - i32.const 1 - i32.add - call $~lib/set/Set#set:entriesCount - local.get $0 - i32.load - local.get $3 - local.get $0 - i32.load offset=4 - i32.and - i32.const 4 - i32.mul - i32.add - local.set $5 - local.get $4 - local.get $5 - i32.load - call $~lib/set/SetEntry#set:taggedNext - local.get $5 - local.get $4 - i32.store - end - local.get $0 - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 + call $~lib/rt/itcms/__visit ) - (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 - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 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 224 - i32.const 592 - i32.const 108 - i32.const 22 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.get $1 - i32.const 1 - i32.add - i32.const 3 - call $~lib/array/ensureSize - local.get $0 - local.get $1 - i32.const 1 - i32.add - call $~lib/array/Array#set:length_ - end + (func $~lib/array/Array~visit (param $0 i32) (param $1 i32) local.get $0 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store - local.get $3 local.get $1 - local.get $2 - call $~lib/array/Array#__uset - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer + call $~lib/array/Array#__visit ) - (func $~lib/set/Set#values (param $0 i32) (result i32) - (local $1 i32) + (func $~lib/set/Set#__visit (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 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 $0 - i32.load offset=8 - local.set $1 + i32.load + local.get $1 + call $~lib/rt/itcms/__visit local.get $0 - i32.load offset=16 + i32.load offset=8 local.set $2 - global.get $~lib/memory/__stack_pointer i32.const 0 + drop local.get $2 - call $~lib/array/Array#constructor - local.tee $3 - i32.store - i32.const 0 - local.set $4 - i32.const 0 - local.set $5 - loop $for-loop|0 - local.get $5 - local.get $2 - i32.lt_s - local.set $6 - local.get $6 - if - local.get $1 - local.get $5 - i32.const 16 - i32.mul - i32.add - local.set $7 - local.get $7 - i32.load offset=8 - i32.const 1 - i32.and - i32.eqz - if - local.get $3 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - local.get $4 - local.tee $8 - i32.const 1 - i32.add - local.set $4 - local.get $8 - local.get $7 - i64.load - call $~lib/array/Array#__set - end - local.get $5 - i32.const 1 - i32.add - local.set $5 - br $for-loop|0 - end - end - local.get $3 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - local.get $4 - call $~lib/array/Array#set:length - local.get $3 - local.set $9 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $9 + local.get $1 + call $~lib/rt/itcms/__visit ) - (func $~lib/set/Set#delete (param $0 i32) (param $1 i64) (result 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 4 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer + (func $~lib/set/Set~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/set/Set#__visit + ) + (func $~lib/array/Array#__visit (param $0 i32) (param $1 i32) i32.const 0 - i32.store + drop local.get $0 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store - local.get $7 + i32.load local.get $1 - block $~lib/util/hash/HASH|inlined.3 (result i32) - local.get $1 - local.set $2 - i32.const 0 - drop - i32.const 0 - drop - i32.const 0 - drop - i32.const 8 - i32.const 1 - i32.eq - drop - i32.const 8 - i32.const 2 - i32.eq - drop - i32.const 8 - i32.const 4 - i32.eq - drop - i32.const 8 - i32.const 8 - i32.eq - drop - local.get $2 - call $~lib/util/hash/hash64 - br $~lib/util/hash/HASH|inlined.3 - end - call $~lib/set/Set#find - local.set $3 - local.get $3 - i32.eqz - if - i32.const 0 - local.set $7 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $7 - return - end - local.get $3 - local.get $3 - i32.load offset=8 - i32.const 1 - i32.or - call $~lib/set/SetEntry#set:taggedNext - local.get $0 - local.get $0 - i32.load offset=20 - i32.const 1 - i32.sub - call $~lib/set/Set#set:entriesCount - local.get $0 - i32.load offset=4 - i32.const 1 - i32.shr_u - local.set $4 - local.get $4 - i32.const 1 - i32.add - i32.const 4 - local.tee $5 - local.get $0 - i32.load offset=20 - local.tee $6 - local.get $5 - local.get $6 - i32.gt_u - select - i32.ge_u - if (result i32) - local.get $0 - i32.load offset=20 - 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 $0 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store - local.get $7 - local.get $4 - call $~lib/set/Set#rehash - end - i32.const 1 - local.set $7 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $7 + call $~lib/rt/itcms/__visit ) - (func $std/set/testNumeric - (local $0 i32) - (local $1 i64) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 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 - 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 0 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - i32.const 0 - call $~lib/set/Set#constructor - local.tee $0 - i32.store - i64.const 0 - local.set $1 - loop $for-loop|0 - local.get $1 - i64.const 100 - i64.lt_s - local.set $2 - local.get $2 - if - local.get $0 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - local.get $1 - call $~lib/set/Set#has - i32.eqz - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 6 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - local.get $1 - call $~lib/set/Set#add - drop - local.get $0 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - local.get $1 - call $~lib/set/Set#has - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 8 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i64.const 1 - i64.add - local.set $1 - br $for-loop|0 - end - end - local.get $0 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - call $~lib/set/Set#get:size - i32.const 100 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 10 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i64.const 50 - local.set $1 - loop $for-loop|1 - local.get $1 - i64.const 100 - i64.lt_s - local.set $2 - local.get $2 - if - local.get $0 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - local.get $1 - call $~lib/set/Set#has - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 14 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - local.get $1 - call $~lib/set/Set#add - drop - local.get $0 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - local.get $1 - call $~lib/set/Set#has - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 16 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i64.const 1 - i64.add - local.set $1 - br $for-loop|1 - end - end + (func $~lib/array/Array~visit (param $0 i32) (param $1 i32) local.get $0 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - call $~lib/set/Set#get:size - i32.const 100 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 18 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - call $~lib/set/Set#values - local.tee $2 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 0 - call $~lib/set/Set#constructor - local.tee $3 - i32.store offset=12 - i32.const 0 - local.set $4 - loop $for-loop|2 - local.get $4 - local.get $2 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - call $~lib/array/Array#get:length - i32.lt_s - local.set $5 - local.get $5 - if - local.get $0 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - local.get $2 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=16 - local.get $6 - local.get $4 - call $~lib/array/Array#__get - call $~lib/set/Set#has - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 24 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $3 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - local.get $2 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=16 - local.get $6 - local.get $4 - call $~lib/array/Array#__get - call $~lib/set/Set#add - drop - local.get $4 - i32.const 1 - i32.add - local.set $4 - br $for-loop|2 - end - end - local.get $3 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - call $~lib/set/Set#get:size - local.get $0 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - call $~lib/set/Set#get:size - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 27 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i64.const 0 - local.set $1 - loop $for-loop|3 - local.get $1 - i64.const 50 - i64.lt_s - local.set $4 - local.get $4 - if - local.get $0 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - local.get $1 - call $~lib/set/Set#has - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 31 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - local.get $1 - call $~lib/set/Set#delete - drop - local.get $0 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - local.get $1 - call $~lib/set/Set#has - i32.eqz - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 33 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i64.const 1 - i64.add - local.set $1 - br $for-loop|3 - end - end - local.get $0 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - call $~lib/set/Set#get:size - i32.const 50 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 35 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i64.const 0 - local.set $1 - loop $for-loop|4 - local.get $1 - i64.const 50 - i64.lt_s - local.set $4 - local.get $4 - if - local.get $0 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - local.get $1 - call $~lib/set/Set#has - i32.eqz - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 39 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - local.get $1 - call $~lib/set/Set#add - drop - local.get $0 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - local.get $1 - call $~lib/set/Set#has - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 41 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - local.get $1 - call $~lib/set/Set#delete - drop - local.get $0 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - local.get $1 - call $~lib/set/Set#has - i32.eqz - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 43 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i64.const 1 - i64.add - local.set $1 - br $for-loop|4 - end - end - local.get $0 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - call $~lib/set/Set#get:size - i32.const 50 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 45 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - call $~lib/set/Set#clear - local.get $0 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - call $~lib/set/Set#get:size - i32.const 0 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - 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 - ) - (func $~lib/set/Set#has (param $0 i32) (param $1 i64) (result i32) - (local $2 i64) - (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 $0 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store - local.get $3 - local.get $1 - block $~lib/util/hash/HASH|inlined.0 (result i32) - local.get $1 - local.set $2 - i32.const 0 - drop - i32.const 0 - drop - i32.const 0 - drop - i32.const 8 - i32.const 1 - i32.eq - drop - i32.const 8 - i32.const 2 - i32.eq - drop - i32.const 8 - i32.const 4 - i32.eq - drop - i32.const 8 - i32.const 8 - i32.eq - drop - local.get $2 - call $~lib/util/hash/hash64 - br $~lib/util/hash/HASH|inlined.0 - end - call $~lib/set/Set#find - i32.const 0 - i32.ne - 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/set/Set#add (param $0 i32) (param $1 i64) (result i32) - (local $2 i64) - (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 - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - block $~lib/util/hash/HASH|inlined.1 (result i32) - local.get $1 - local.set $2 - i32.const 0 - drop - i32.const 0 - drop - i32.const 0 - drop - i32.const 8 - i32.const 1 - i32.eq - drop - i32.const 8 - i32.const 2 - i32.eq - drop - i32.const 8 - i32.const 4 - i32.eq - drop - i32.const 8 - i32.const 8 - i32.eq - drop - local.get $2 - call $~lib/util/hash/hash64 - br $~lib/util/hash/HASH|inlined.1 - end - local.set $3 - local.get $0 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - local.get $1 - local.get $3 - call $~lib/set/Set#find - local.set $4 - local.get $4 - i32.eqz - if - local.get $0 - i32.load offset=16 - local.get $0 - i32.load offset=12 - i32.eq - if - local.get $0 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - local.get $0 - i32.load offset=20 - 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 $0 - i32.load offset=4 - else - local.get $0 - i32.load offset=4 - i32.const 1 - i32.shl - i32.const 1 - i32.or - end - call $~lib/set/Set#rehash - end - local.get $0 - i32.load offset=8 - local.get $0 - local.get $0 - i32.load offset=16 - local.tee $5 - i32.const 1 - i32.add - call $~lib/set/Set#set:entriesOffset - local.get $5 - i32.const 16 - i32.mul - i32.add - local.set $4 - local.get $4 - local.get $1 - call $~lib/set/SetEntry#set:key - i32.const 0 - drop - local.get $0 - local.get $0 - i32.load offset=20 - i32.const 1 - i32.add - call $~lib/set/Set#set:entriesCount - local.get $0 - i32.load - local.get $3 - local.get $0 - i32.load offset=4 - i32.and - i32.const 4 - i32.mul - i32.add - local.set $5 - local.get $4 - local.get $5 - i32.load - call $~lib/set/SetEntry#set:taggedNext - local.get $5 - local.get $4 - i32.store - end - local.get $0 - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - ) - (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 - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 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 224 - i32.const 592 - i32.const 108 - i32.const 22 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.get $1 - i32.const 1 - i32.add - i32.const 3 - call $~lib/array/ensureSize - local.get $0 - local.get $1 - i32.const 1 - i32.add - call $~lib/array/Array#set:length_ - end - local.get $0 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store - local.get $3 - local.get $1 - local.get $2 - call $~lib/array/Array#__uset - global.get $~lib/memory/__stack_pointer - i32.const 4 - 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 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - local.get $0 - i32.load offset=8 - local.set $1 - local.get $0 - i32.load offset=16 - local.set $2 - global.get $~lib/memory/__stack_pointer - i32.const 0 - local.get $2 - call $~lib/array/Array#constructor - local.tee $3 - i32.store - i32.const 0 - local.set $4 - i32.const 0 - local.set $5 - loop $for-loop|0 - local.get $5 - local.get $2 - i32.lt_s - local.set $6 - local.get $6 - if - local.get $1 - local.get $5 - i32.const 16 - i32.mul - i32.add - local.set $7 - local.get $7 - i32.load offset=8 - i32.const 1 - i32.and - i32.eqz - if - local.get $3 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - local.get $4 - local.tee $8 - i32.const 1 - i32.add - local.set $4 - local.get $8 - local.get $7 - i64.load - call $~lib/array/Array#__set - end - local.get $5 - i32.const 1 - i32.add - local.set $5 - br $for-loop|0 - end - end - local.get $3 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - local.get $4 - call $~lib/array/Array#set:length - local.get $3 - local.set $9 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $9 - ) - (func $~lib/set/Set#delete (param $0 i32) (param $1 i64) (result 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 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 $0 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store - local.get $7 - local.get $1 - block $~lib/util/hash/HASH|inlined.3 (result i32) - local.get $1 - local.set $2 - i32.const 0 - drop - i32.const 0 - drop - i32.const 0 - drop - i32.const 8 - i32.const 1 - i32.eq - drop - i32.const 8 - i32.const 2 - i32.eq - drop - i32.const 8 - i32.const 4 - i32.eq - drop - i32.const 8 - i32.const 8 - i32.eq - drop - local.get $2 - call $~lib/util/hash/hash64 - br $~lib/util/hash/HASH|inlined.3 - end - call $~lib/set/Set#find - local.set $3 - local.get $3 - i32.eqz - if - i32.const 0 - local.set $7 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $7 - return - end - local.get $3 - local.get $3 - i32.load offset=8 - i32.const 1 - i32.or - call $~lib/set/SetEntry#set:taggedNext - local.get $0 - local.get $0 - i32.load offset=20 - i32.const 1 - i32.sub - call $~lib/set/Set#set:entriesCount - local.get $0 - i32.load offset=4 - i32.const 1 - i32.shr_u - local.set $4 - local.get $4 - i32.const 1 - i32.add - i32.const 4 - local.tee $5 - local.get $0 - i32.load offset=20 - local.tee $6 - local.get $5 - local.get $6 - i32.gt_u - select - i32.ge_u - if (result i32) - local.get $0 - i32.load offset=20 - 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 $0 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store - local.get $7 - local.get $4 - call $~lib/set/Set#rehash - end - i32.const 1 - local.set $7 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $7 - ) - (func $std/set/testNumeric - (local $0 i32) - (local $1 i64) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 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 - 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 0 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - i32.const 0 - call $~lib/set/Set#constructor - local.tee $0 - i32.store - i64.const 0 - local.set $1 - loop $for-loop|0 - local.get $1 - i64.const 100 - i64.lt_u - local.set $2 - local.get $2 - if - local.get $0 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - local.get $1 - call $~lib/set/Set#has - i32.eqz - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 6 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - local.get $1 - call $~lib/set/Set#add - drop - local.get $0 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - local.get $1 - call $~lib/set/Set#has - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 8 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i64.const 1 - i64.add - local.set $1 - br $for-loop|0 - end - end - local.get $0 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - call $~lib/set/Set#get:size - i32.const 100 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 10 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i64.const 50 - local.set $1 - loop $for-loop|1 - local.get $1 - i64.const 100 - i64.lt_u - local.set $2 - local.get $2 - if - local.get $0 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - local.get $1 - call $~lib/set/Set#has - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 14 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - local.get $1 - call $~lib/set/Set#add - drop - local.get $0 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - local.get $1 - call $~lib/set/Set#has - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 16 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i64.const 1 - i64.add - local.set $1 - br $for-loop|1 - end - end - local.get $0 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - call $~lib/set/Set#get:size - i32.const 100 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 18 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - call $~lib/set/Set#values - local.tee $2 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 0 - call $~lib/set/Set#constructor - local.tee $3 - i32.store offset=12 - i32.const 0 - local.set $4 - loop $for-loop|2 - local.get $4 - local.get $2 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - call $~lib/array/Array#get:length - i32.lt_s - local.set $5 - local.get $5 - if - local.get $0 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - local.get $2 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=16 - local.get $6 - local.get $4 - call $~lib/array/Array#__get - call $~lib/set/Set#has - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 24 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $3 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - local.get $2 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=16 - local.get $6 - local.get $4 - call $~lib/array/Array#__get - call $~lib/set/Set#add - drop - local.get $4 - i32.const 1 - i32.add - local.set $4 - br $for-loop|2 - end - end - local.get $3 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - call $~lib/set/Set#get:size - local.get $0 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - call $~lib/set/Set#get:size - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 27 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i64.const 0 - local.set $1 - loop $for-loop|3 - local.get $1 - i64.const 50 - i64.lt_u - local.set $4 - local.get $4 - if - local.get $0 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - local.get $1 - call $~lib/set/Set#has - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 31 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - local.get $1 - call $~lib/set/Set#delete - drop - local.get $0 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - local.get $1 - call $~lib/set/Set#has - i32.eqz - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 33 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i64.const 1 - i64.add - local.set $1 - br $for-loop|3 - end - end - local.get $0 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - call $~lib/set/Set#get:size - i32.const 50 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 35 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i64.const 0 - local.set $1 - loop $for-loop|4 - local.get $1 - i64.const 50 - i64.lt_u - local.set $4 - local.get $4 - if - local.get $0 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - local.get $1 - call $~lib/set/Set#has - i32.eqz - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 39 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - local.get $1 - call $~lib/set/Set#add - drop - local.get $0 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - local.get $1 - call $~lib/set/Set#has - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 41 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - local.get $1 - call $~lib/set/Set#delete - drop - local.get $0 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - local.get $1 - call $~lib/set/Set#has - i32.eqz - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 43 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i64.const 1 - i64.add - local.set $1 - br $for-loop|4 - end - end - local.get $0 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - call $~lib/set/Set#get:size - i32.const 50 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 45 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - call $~lib/set/Set#clear - local.get $0 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - call $~lib/set/Set#get:size - i32.const 0 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - 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 - ) - (func $~lib/set/Set#has (param $0 i32) (param $1 f32) (result i32) - (local $2 f32) - (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 $0 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store - local.get $3 - local.get $1 - block $~lib/util/hash/HASH|inlined.0 (result i32) - local.get $1 - local.set $2 - i32.const 0 - drop - i32.const 0 - drop - i32.const 1 - drop - i32.const 4 - i32.const 4 - i32.eq - drop - local.get $2 - i32.reinterpret_f32 - call $~lib/util/hash/hash32 - br $~lib/util/hash/HASH|inlined.0 - end - call $~lib/set/Set#find - i32.const 0 - i32.ne - 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/set/Set#add (param $0 i32) (param $1 f32) (result i32) - (local $2 f32) - (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 - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - block $~lib/util/hash/HASH|inlined.1 (result i32) - local.get $1 - local.set $2 - i32.const 0 - drop - i32.const 0 - drop - i32.const 1 - drop - i32.const 4 - i32.const 4 - i32.eq - drop - local.get $2 - i32.reinterpret_f32 - call $~lib/util/hash/hash32 - br $~lib/util/hash/HASH|inlined.1 - end - local.set $3 - local.get $0 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - local.get $1 - local.get $3 - call $~lib/set/Set#find - local.set $4 - local.get $4 - i32.eqz - if - local.get $0 - i32.load offset=16 - local.get $0 - i32.load offset=12 - i32.eq - if - local.get $0 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - local.get $0 - i32.load offset=20 - 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 $0 - i32.load offset=4 - else - local.get $0 - i32.load offset=4 - i32.const 1 - i32.shl - i32.const 1 - i32.or - end - call $~lib/set/Set#rehash - end - local.get $0 - i32.load offset=8 - local.get $0 - local.get $0 - i32.load offset=16 - local.tee $5 - i32.const 1 - i32.add - call $~lib/set/Set#set:entriesOffset - local.get $5 - i32.const 8 - i32.mul - i32.add - local.set $4 - local.get $4 - local.get $1 - call $~lib/set/SetEntry#set:key - i32.const 0 - drop - local.get $0 - local.get $0 - i32.load offset=20 - i32.const 1 - i32.add - call $~lib/set/Set#set:entriesCount - local.get $0 - i32.load - local.get $3 - local.get $0 - i32.load offset=4 - i32.and - i32.const 4 - i32.mul - i32.add - local.set $5 - local.get $4 - local.get $5 - i32.load - call $~lib/set/SetEntry#set:taggedNext - local.get $5 - local.get $4 - i32.store - end - local.get $0 - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - ) - (func $~lib/array/Array#__set (param $0 i32) (param $1 i32) (param $2 f32) - (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 $1 - local.get $0 - i32.load offset=12 - i32.ge_u - if - local.get $1 - i32.const 0 - i32.lt_s - if - i32.const 224 - i32.const 592 - i32.const 108 - i32.const 22 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.get $1 - i32.const 1 - i32.add - i32.const 2 - call $~lib/array/ensureSize - local.get $0 - local.get $1 - i32.const 1 - i32.add - call $~lib/array/Array#set:length_ - end - local.get $0 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store - local.get $3 - local.get $1 - local.get $2 - call $~lib/array/Array#__uset - global.get $~lib/memory/__stack_pointer - i32.const 4 - 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 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - local.get $0 - i32.load offset=8 - local.set $1 - local.get $0 - i32.load offset=16 - local.set $2 - global.get $~lib/memory/__stack_pointer - i32.const 0 - local.get $2 - call $~lib/array/Array#constructor - local.tee $3 - i32.store - i32.const 0 - local.set $4 - i32.const 0 - local.set $5 - loop $for-loop|0 - local.get $5 - local.get $2 - i32.lt_s - local.set $6 - local.get $6 - if - local.get $1 - local.get $5 - i32.const 8 - i32.mul - i32.add - local.set $7 - local.get $7 - i32.load offset=4 - i32.const 1 - i32.and - i32.eqz - if - local.get $3 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - local.get $4 - local.tee $8 - i32.const 1 - i32.add - local.set $4 - local.get $8 - local.get $7 - f32.load - call $~lib/array/Array#__set - end - local.get $5 - i32.const 1 - i32.add - local.set $5 - br $for-loop|0 - end - end - local.get $3 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - local.get $4 - call $~lib/array/Array#set:length - local.get $3 - local.set $9 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $9 - ) - (func $~lib/set/Set#delete (param $0 i32) (param $1 f32) (result i32) - (local $2 f32) - (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 - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - local.get $0 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store - local.get $7 - local.get $1 - block $~lib/util/hash/HASH|inlined.3 (result i32) - local.get $1 - local.set $2 - i32.const 0 - drop - i32.const 0 - drop - i32.const 1 - drop - i32.const 4 - i32.const 4 - i32.eq - drop - local.get $2 - i32.reinterpret_f32 - call $~lib/util/hash/hash32 - br $~lib/util/hash/HASH|inlined.3 - end - call $~lib/set/Set#find - local.set $3 - local.get $3 - i32.eqz - if - i32.const 0 - local.set $7 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $7 - return - end - local.get $3 - local.get $3 - i32.load offset=4 - i32.const 1 - i32.or - call $~lib/set/SetEntry#set:taggedNext - local.get $0 - local.get $0 - i32.load offset=20 - i32.const 1 - i32.sub - call $~lib/set/Set#set:entriesCount - local.get $0 - i32.load offset=4 - i32.const 1 - i32.shr_u - local.set $4 - local.get $4 - i32.const 1 - i32.add - i32.const 4 - local.tee $5 - local.get $0 - i32.load offset=20 - local.tee $6 - local.get $5 - local.get $6 - i32.gt_u - select - i32.ge_u - if (result i32) - local.get $0 - i32.load offset=20 - 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 $0 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store - local.get $7 - local.get $4 - call $~lib/set/Set#rehash - end - i32.const 1 - local.set $7 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $7 - ) - (func $std/set/testNumeric - (local $0 i32) - (local $1 f32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 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 - 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 0 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - i32.const 0 - call $~lib/set/Set#constructor - local.tee $0 - i32.store - f32.const 0 - local.set $1 - loop $for-loop|0 - local.get $1 - f32.const 100 - f32.lt - local.set $2 - local.get $2 - if - local.get $0 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - local.get $1 - call $~lib/set/Set#has - i32.eqz - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 6 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - local.get $1 - call $~lib/set/Set#add - drop - local.get $0 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - local.get $1 - call $~lib/set/Set#has - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 8 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $1 - f32.const 1 - f32.add - local.set $1 - br $for-loop|0 - end - end - local.get $0 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - call $~lib/set/Set#get:size - i32.const 100 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - 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 - local.set $2 - local.get $2 - if - local.get $0 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - local.get $1 - call $~lib/set/Set#has - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 14 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - local.get $1 - call $~lib/set/Set#add - drop - local.get $0 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - local.get $1 - call $~lib/set/Set#has - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 16 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $1 - f32.const 1 - f32.add - local.set $1 - br $for-loop|1 - end - end - local.get $0 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - call $~lib/set/Set#get:size - i32.const 100 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 18 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - call $~lib/set/Set#values - local.tee $2 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 0 - call $~lib/set/Set#constructor - local.tee $3 - i32.store offset=12 - i32.const 0 - local.set $4 - loop $for-loop|2 - local.get $4 - local.get $2 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - call $~lib/array/Array#get:length - i32.lt_s - local.set $5 - local.get $5 - if - local.get $0 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - local.get $2 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=16 - local.get $6 - local.get $4 - call $~lib/array/Array#__get - call $~lib/set/Set#has - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 24 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $3 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - local.get $2 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=16 - local.get $6 - local.get $4 - call $~lib/array/Array#__get - call $~lib/set/Set#add - drop - local.get $4 - i32.const 1 - i32.add - local.set $4 - br $for-loop|2 - end - end - local.get $3 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - call $~lib/set/Set#get:size - local.get $0 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - call $~lib/set/Set#get:size - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 27 - 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 - local.set $4 - local.get $4 - if - local.get $0 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - local.get $1 - call $~lib/set/Set#has - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 31 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - local.get $1 - call $~lib/set/Set#delete - drop - local.get $0 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - local.get $1 - call $~lib/set/Set#has - i32.eqz - i32.eqz - if - i32.const 0 - i32.const 544 - 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 - end - end - local.get $0 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - call $~lib/set/Set#get:size - i32.const 50 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 35 - 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 - local.set $4 - local.get $4 - if - local.get $0 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - local.get $1 - call $~lib/set/Set#has - i32.eqz - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 39 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - local.get $1 - call $~lib/set/Set#add - drop - local.get $0 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - local.get $1 - call $~lib/set/Set#has - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 41 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - local.get $1 - call $~lib/set/Set#delete - drop - local.get $0 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - local.get $1 - call $~lib/set/Set#has - i32.eqz - i32.eqz - if - i32.const 0 - i32.const 544 - 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 - end - end - local.get $0 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - call $~lib/set/Set#get:size - i32.const 50 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 45 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - call $~lib/set/Set#clear - local.get $0 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - call $~lib/set/Set#get:size - i32.const 0 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - 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 - ) - (func $~lib/set/Set#has (param $0 i32) (param $1 f64) (result i32) - (local $2 f64) - (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 $0 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store - local.get $3 - local.get $1 - block $~lib/util/hash/HASH|inlined.0 (result i32) - local.get $1 - local.set $2 - i32.const 0 - drop - i32.const 0 - drop - i32.const 1 - drop - i32.const 8 - i32.const 4 - i32.eq - drop - i32.const 8 - i32.const 8 - i32.eq - drop - local.get $2 - i64.reinterpret_f64 - call $~lib/util/hash/hash64 - br $~lib/util/hash/HASH|inlined.0 - end - call $~lib/set/Set#find - i32.const 0 - i32.ne - 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/set/Set#add (param $0 i32) (param $1 f64) (result i32) - (local $2 f64) - (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 - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - block $~lib/util/hash/HASH|inlined.1 (result i32) - local.get $1 - local.set $2 - i32.const 0 - drop - i32.const 0 - drop - i32.const 1 - drop - i32.const 8 - i32.const 4 - i32.eq - drop - i32.const 8 - i32.const 8 - i32.eq - drop - local.get $2 - i64.reinterpret_f64 - call $~lib/util/hash/hash64 - br $~lib/util/hash/HASH|inlined.1 - end - local.set $3 - local.get $0 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - local.get $1 - local.get $3 - call $~lib/set/Set#find - local.set $4 - local.get $4 - i32.eqz - if - local.get $0 - i32.load offset=16 - local.get $0 - i32.load offset=12 - i32.eq - if - local.get $0 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - local.get $0 - i32.load offset=20 - 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 $0 - i32.load offset=4 - else - local.get $0 - i32.load offset=4 - i32.const 1 - i32.shl - i32.const 1 - i32.or - end - call $~lib/set/Set#rehash - end - local.get $0 - i32.load offset=8 - local.get $0 - local.get $0 - i32.load offset=16 - local.tee $5 - i32.const 1 - i32.add - call $~lib/set/Set#set:entriesOffset - local.get $5 - i32.const 16 - i32.mul - i32.add - local.set $4 - local.get $4 - local.get $1 - call $~lib/set/SetEntry#set:key - i32.const 0 - drop - local.get $0 - local.get $0 - i32.load offset=20 - i32.const 1 - i32.add - call $~lib/set/Set#set:entriesCount - local.get $0 - i32.load - local.get $3 - local.get $0 - i32.load offset=4 - i32.and - i32.const 4 - i32.mul - i32.add - local.set $5 - local.get $4 - local.get $5 - i32.load - call $~lib/set/SetEntry#set:taggedNext - local.get $5 - local.get $4 - i32.store - end - local.get $0 - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - ) - (func $~lib/array/Array#__set (param $0 i32) (param $1 i32) (param $2 f64) - (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 $1 - local.get $0 - i32.load offset=12 - i32.ge_u - if - local.get $1 - i32.const 0 - i32.lt_s - if - i32.const 224 - i32.const 592 - i32.const 108 - i32.const 22 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.get $1 - i32.const 1 - i32.add - i32.const 3 - call $~lib/array/ensureSize - local.get $0 - local.get $1 - i32.const 1 - i32.add - call $~lib/array/Array#set:length_ - end - local.get $0 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store - local.get $3 - local.get $1 - local.get $2 - call $~lib/array/Array#__uset - global.get $~lib/memory/__stack_pointer - i32.const 4 - 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 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - local.get $0 - i32.load offset=8 - local.set $1 - local.get $0 - i32.load offset=16 - local.set $2 - global.get $~lib/memory/__stack_pointer - i32.const 0 - local.get $2 - call $~lib/array/Array#constructor - local.tee $3 - i32.store - i32.const 0 - local.set $4 - i32.const 0 - local.set $5 - loop $for-loop|0 - local.get $5 - local.get $2 - i32.lt_s - local.set $6 - local.get $6 - if - local.get $1 - local.get $5 - i32.const 16 - i32.mul - i32.add - local.set $7 - local.get $7 - i32.load offset=8 - i32.const 1 - i32.and - i32.eqz - if - local.get $3 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - local.get $4 - local.tee $8 - i32.const 1 - i32.add - local.set $4 - local.get $8 - local.get $7 - f64.load - call $~lib/array/Array#__set - end - local.get $5 - i32.const 1 - i32.add - local.set $5 - br $for-loop|0 - end - end - local.get $3 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - local.get $4 - call $~lib/array/Array#set:length - local.get $3 - local.set $9 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $9 - ) - (func $~lib/set/Set#delete (param $0 i32) (param $1 f64) (result i32) - (local $2 f64) - (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 - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - local.get $0 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store - local.get $7 - local.get $1 - block $~lib/util/hash/HASH|inlined.3 (result i32) - local.get $1 - local.set $2 - i32.const 0 - drop - i32.const 0 - drop - i32.const 1 - drop - i32.const 8 - i32.const 4 - i32.eq - drop - i32.const 8 - i32.const 8 - i32.eq - drop - local.get $2 - i64.reinterpret_f64 - call $~lib/util/hash/hash64 - br $~lib/util/hash/HASH|inlined.3 - end - call $~lib/set/Set#find - local.set $3 - local.get $3 - i32.eqz - if - i32.const 0 - local.set $7 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $7 - return - end - local.get $3 - local.get $3 - i32.load offset=8 - i32.const 1 - i32.or - call $~lib/set/SetEntry#set:taggedNext - local.get $0 - local.get $0 - i32.load offset=20 - i32.const 1 - i32.sub - call $~lib/set/Set#set:entriesCount - local.get $0 - i32.load offset=4 - i32.const 1 - i32.shr_u - local.set $4 - local.get $4 - i32.const 1 - i32.add - i32.const 4 - local.tee $5 - local.get $0 - i32.load offset=20 - local.tee $6 - local.get $5 - local.get $6 - i32.gt_u - select - i32.ge_u - if (result i32) - local.get $0 - i32.load offset=20 - 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 $0 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store - local.get $7 - local.get $4 - call $~lib/set/Set#rehash - end - i32.const 1 - local.set $7 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $7 - ) - (func $std/set/testNumeric - (local $0 i32) - (local $1 f64) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 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 - 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 0 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - i32.const 0 - call $~lib/set/Set#constructor - local.tee $0 - i32.store - f64.const 0 - local.set $1 - loop $for-loop|0 - local.get $1 - f64.const 100 - f64.lt - local.set $2 - local.get $2 - if - local.get $0 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - local.get $1 - call $~lib/set/Set#has - i32.eqz - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 6 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - local.get $1 - call $~lib/set/Set#add - drop - local.get $0 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - local.get $1 - call $~lib/set/Set#has - i32.eqz - if - i32.const 0 - i32.const 544 - 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 - local.get $0 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - call $~lib/set/Set#get:size - i32.const 100 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - 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 - local.set $2 - local.get $2 - if - local.get $0 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - local.get $1 - call $~lib/set/Set#has - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 14 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - local.get $1 - call $~lib/set/Set#add - drop - local.get $0 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - local.get $1 - call $~lib/set/Set#has - i32.eqz - if - i32.const 0 - i32.const 544 - 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 - local.get $0 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - call $~lib/set/Set#get:size - i32.const 100 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 18 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - call $~lib/set/Set#values - local.tee $2 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 0 - call $~lib/set/Set#constructor - local.tee $3 - i32.store offset=12 - i32.const 0 - local.set $4 - loop $for-loop|2 - local.get $4 - local.get $2 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - call $~lib/array/Array#get:length - i32.lt_s - local.set $5 - local.get $5 - if - local.get $0 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - local.get $2 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=16 - local.get $6 - local.get $4 - call $~lib/array/Array#__get - call $~lib/set/Set#has - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 24 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $3 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - local.get $2 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=16 - local.get $6 - local.get $4 - call $~lib/array/Array#__get - call $~lib/set/Set#add - drop - local.get $4 - i32.const 1 - i32.add - local.set $4 - br $for-loop|2 - end - end - local.get $3 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - call $~lib/set/Set#get:size - local.get $0 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - call $~lib/set/Set#get:size - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 27 - 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 - local.set $4 - local.get $4 - if - local.get $0 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - local.get $1 - call $~lib/set/Set#has - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 31 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - local.get $1 - call $~lib/set/Set#delete - drop - local.get $0 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - local.get $1 - call $~lib/set/Set#has - i32.eqz - i32.eqz - if - i32.const 0 - i32.const 544 - 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 - local.get $0 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - call $~lib/set/Set#get:size - i32.const 50 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - 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 - local.set $4 - local.get $4 - if - local.get $0 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - local.get $1 - call $~lib/set/Set#has - i32.eqz - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 39 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - local.get $1 - call $~lib/set/Set#add - drop - local.get $0 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - local.get $1 - call $~lib/set/Set#has - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 41 - i32.const 5 - call $~lib/builtins/abort - unreachable + 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/set/Set + block $~lib/array/Array + block $~lib/set/Set + block $~lib/array/Array + block $~lib/set/Set + block $~lib/array/Array + block $~lib/set/Set + block $~lib/array/Array + block $~lib/set/Set + block $~lib/array/Array + block $~lib/set/Set + block $~lib/array/Array + block $~lib/set/Set + block $~lib/array/Array + block $~lib/set/Set + block $~lib/array/Array + block $~lib/set/Set + block $~lib/array/Array + block $~lib/set/Set + block $~lib/arraybuffer/ArrayBufferView + block $~lib/string/String + block $~lib/arraybuffer/ArrayBuffer + local.get $0 + i32.const 8 + i32.sub + i32.load + br_table $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $~lib/set/Set $~lib/array/Array $~lib/set/Set $~lib/array/Array $~lib/set/Set $~lib/array/Array $~lib/set/Set $~lib/array/Array $~lib/set/Set $~lib/array/Array $~lib/set/Set $~lib/array/Array $~lib/set/Set $~lib/array/Array $~lib/set/Set $~lib/array/Array $~lib/set/Set $~lib/array/Array $~lib/set/Set $~lib/array/Array $invalid + 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/set/Set~visit + return + end + local.get $0 + local.get $1 + call $~lib/array/Array~visit + return + end + local.get $0 + local.get $1 + call $~lib/set/Set~visit + return + end + local.get $0 + local.get $1 + call $~lib/array/Array~visit + return + end + local.get $0 + local.get $1 + call $~lib/set/Set~visit + return + end + local.get $0 + local.get $1 + call $~lib/array/Array~visit + return + end + local.get $0 + local.get $1 + call $~lib/set/Set~visit + return + end + local.get $0 + local.get $1 + call $~lib/array/Array~visit + return + end + local.get $0 + local.get $1 + call $~lib/set/Set~visit + return + end + local.get $0 + local.get $1 + call $~lib/array/Array~visit + return + end + local.get $0 + local.get $1 + call $~lib/set/Set~visit + return + end + local.get $0 + local.get $1 + call $~lib/array/Array~visit + return + end + local.get $0 + local.get $1 + call $~lib/set/Set~visit + return + end + local.get $0 + local.get $1 + call $~lib/array/Array~visit + return + end + local.get $0 + local.get $1 + call $~lib/set/Set~visit + return + end + local.get $0 + local.get $1 + call $~lib/array/Array~visit + return + end + local.get $0 + local.get $1 + call $~lib/set/Set~visit + return + end + local.get $0 + local.get $1 + call $~lib/array/Array~visit + return end local.get $0 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - local.get $1 - call $~lib/set/Set#delete - drop - local.get $0 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - local.get $1 - call $~lib/set/Set#has - i32.eqz - i32.eqz - if - i32.const 0 - i32.const 544 - 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 + call $~lib/set/Set~visit + return end + local.get $0 + local.get $1 + call $~lib/array/Array~visit + return end - local.get $0 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - call $~lib/set/Set#get:size - i32.const 50 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 45 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - call $~lib/set/Set#clear - local.get $0 - local.set $6 + unreachable + ) + (func $~start + call $start:std/set + ) + (func $~stack_check global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - call $~lib/set/Set#get:size - i32.const 0 - i32.eq - i32.eqz + global.get $~lib/memory/__data_end + i32.lt_s if - i32.const 0 - i32.const 544 - i32.const 49 - i32.const 3 + i32.const 17216 + i32.const 17264 + i32.const 1 + i32.const 1 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/arraybuffer/ArrayBuffer#constructor (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -17886,10 +14586,92 @@ local.get $0 local.set $4 global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $4 + ) + (func $~lib/set/Set#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) + (local $9 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 $0 + i32.load offset=8 + local.set $1 + local.get $0 + i32.load offset=16 + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 0 + local.get $2 + call $~lib/array/Array#constructor + local.tee $3 + i32.store + i32.const 0 + local.set $4 + i32.const 0 + local.set $5 + loop $for-loop|0 + local.get $5 + local.get $2 + i32.lt_s + local.set $6 + local.get $6 + if + local.get $1 + local.get $5 + i32.const 8 + i32.mul + i32.add + local.set $7 + local.get $7 + i32.load offset=4 + i32.const 1 + i32.and + i32.eqz + if + local.get $3 + local.get $4 + local.tee $8 + i32.const 1 + i32.add + local.set $4 + local.get $8 + local.get $7 + i32.load8_s + call $~lib/array/Array#__set + end + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|0 + end + end + local.get $3 + local.get $4 + call $~lib/array/Array#set:length + local.get $3 + local.set $9 + global.get $~lib/memory/__stack_pointer + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $4 + local.get $9 ) (func $~lib/set/Set#constructor (param $0 i32) (result i32) (local $1 i32) @@ -18028,6 +14810,88 @@ global.set $~lib/memory/__stack_pointer local.get $4 ) + (func $~lib/set/Set#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) + (local $9 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 $0 + i32.load offset=8 + local.set $1 + local.get $0 + i32.load offset=16 + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 0 + local.get $2 + call $~lib/array/Array#constructor + local.tee $3 + i32.store + i32.const 0 + local.set $4 + i32.const 0 + local.set $5 + loop $for-loop|0 + local.get $5 + local.get $2 + i32.lt_s + local.set $6 + local.get $6 + if + local.get $1 + local.get $5 + i32.const 8 + i32.mul + i32.add + local.set $7 + local.get $7 + i32.load offset=4 + i32.const 1 + i32.and + i32.eqz + if + local.get $3 + local.get $4 + local.tee $8 + i32.const 1 + i32.add + local.set $4 + local.get $8 + local.get $7 + i32.load8_u + call $~lib/array/Array#__set + end + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|0 + end + end + local.get $3 + local.get $4 + call $~lib/array/Array#set:length + local.get $3 + local.set $9 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $9 + ) (func $~lib/set/Set#constructor (param $0 i32) (result i32) (local $1 i32) global.get $~lib/memory/__stack_pointer @@ -18165,6 +15029,88 @@ global.set $~lib/memory/__stack_pointer local.get $4 ) + (func $~lib/set/Set#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) + (local $9 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 $0 + i32.load offset=8 + local.set $1 + local.get $0 + i32.load offset=16 + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 0 + local.get $2 + call $~lib/array/Array#constructor + local.tee $3 + i32.store + i32.const 0 + local.set $4 + i32.const 0 + local.set $5 + loop $for-loop|0 + local.get $5 + local.get $2 + i32.lt_s + local.set $6 + local.get $6 + if + local.get $1 + local.get $5 + i32.const 8 + i32.mul + i32.add + local.set $7 + local.get $7 + i32.load offset=4 + i32.const 1 + i32.and + i32.eqz + if + local.get $3 + local.get $4 + local.tee $8 + i32.const 1 + i32.add + local.set $4 + local.get $8 + local.get $7 + i32.load16_s + call $~lib/array/Array#__set + end + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|0 + end + end + local.get $3 + local.get $4 + call $~lib/array/Array#set:length + local.get $3 + local.set $9 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $9 + ) (func $~lib/set/Set#constructor (param $0 i32) (result i32) (local $1 i32) global.get $~lib/memory/__stack_pointer @@ -18287,20 +15233,102 @@ call $~lib/array/Array#set:buffer local.get $0 local.get $3 - call $~lib/array/Array#set:dataStart - local.get $0 - local.get $2 - call $~lib/array/Array#set:byteLength - local.get $0 - local.get $1 - call $~lib/array/Array#set:length_ - local.get $0 - local.set $4 + call $~lib/array/Array#set:dataStart + local.get $0 + local.get $2 + call $~lib/array/Array#set:byteLength + local.get $0 + local.get $1 + call $~lib/array/Array#set:length_ + local.get $0 + local.set $4 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $4 + ) + (func $~lib/set/Set#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) + (local $9 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 $0 + i32.load offset=8 + local.set $1 + local.get $0 + i32.load offset=16 + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 0 + local.get $2 + call $~lib/array/Array#constructor + local.tee $3 + i32.store + i32.const 0 + local.set $4 + i32.const 0 + local.set $5 + loop $for-loop|0 + local.get $5 + local.get $2 + i32.lt_s + local.set $6 + local.get $6 + if + local.get $1 + local.get $5 + i32.const 8 + i32.mul + i32.add + local.set $7 + local.get $7 + i32.load offset=4 + i32.const 1 + i32.and + i32.eqz + if + local.get $3 + local.get $4 + local.tee $8 + i32.const 1 + i32.add + local.set $4 + local.get $8 + local.get $7 + i32.load16_u + call $~lib/array/Array#__set + end + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|0 + end + end + local.get $3 + local.get $4 + call $~lib/array/Array#set:length + local.get $3 + local.set $9 global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $4 + local.get $9 ) (func $~lib/set/Set#constructor (param $0 i32) (result i32) (local $1 i32) @@ -18439,6 +15467,88 @@ global.set $~lib/memory/__stack_pointer local.get $4 ) + (func $~lib/set/Set#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) + (local $9 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 $0 + i32.load offset=8 + local.set $1 + local.get $0 + i32.load offset=16 + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 0 + local.get $2 + call $~lib/array/Array#constructor + local.tee $3 + i32.store + i32.const 0 + local.set $4 + i32.const 0 + local.set $5 + loop $for-loop|0 + local.get $5 + local.get $2 + i32.lt_s + local.set $6 + local.get $6 + if + local.get $1 + local.get $5 + i32.const 8 + i32.mul + i32.add + local.set $7 + local.get $7 + i32.load offset=4 + i32.const 1 + i32.and + i32.eqz + if + local.get $3 + local.get $4 + local.tee $8 + i32.const 1 + i32.add + local.set $4 + local.get $8 + local.get $7 + i32.load + call $~lib/array/Array#__set + end + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|0 + end + end + local.get $3 + local.get $4 + call $~lib/array/Array#set:length + local.get $3 + local.set $9 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $9 + ) (func $~lib/set/Set#constructor (param $0 i32) (result i32) (local $1 i32) global.get $~lib/memory/__stack_pointer @@ -18576,6 +15686,88 @@ global.set $~lib/memory/__stack_pointer local.get $4 ) + (func $~lib/set/Set#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) + (local $9 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 $0 + i32.load offset=8 + local.set $1 + local.get $0 + i32.load offset=16 + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 0 + local.get $2 + call $~lib/array/Array#constructor + local.tee $3 + i32.store + i32.const 0 + local.set $4 + i32.const 0 + local.set $5 + loop $for-loop|0 + local.get $5 + local.get $2 + i32.lt_s + local.set $6 + local.get $6 + if + local.get $1 + local.get $5 + i32.const 8 + i32.mul + i32.add + local.set $7 + local.get $7 + i32.load offset=4 + i32.const 1 + i32.and + i32.eqz + if + local.get $3 + local.get $4 + local.tee $8 + i32.const 1 + i32.add + local.set $4 + local.get $8 + local.get $7 + i32.load + call $~lib/array/Array#__set + end + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|0 + end + end + local.get $3 + local.get $4 + call $~lib/array/Array#set:length + local.get $3 + local.set $9 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $9 + ) (func $~lib/set/Set#constructor (param $0 i32) (result i32) (local $1 i32) global.get $~lib/memory/__stack_pointer @@ -18708,10 +15900,92 @@ local.get $0 local.set $4 global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $4 + ) + (func $~lib/set/Set#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) + (local $9 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 $0 + i32.load offset=8 + local.set $1 + local.get $0 + i32.load offset=16 + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 0 + local.get $2 + call $~lib/array/Array#constructor + local.tee $3 + i32.store + i32.const 0 + local.set $4 + i32.const 0 + local.set $5 + loop $for-loop|0 + local.get $5 + local.get $2 + i32.lt_s + local.set $6 + local.get $6 + if + local.get $1 + local.get $5 + i32.const 16 + i32.mul + i32.add + local.set $7 + local.get $7 + i32.load offset=8 + i32.const 1 + i32.and + i32.eqz + if + local.get $3 + local.get $4 + local.tee $8 + i32.const 1 + i32.add + local.set $4 + local.get $8 + local.get $7 + i64.load + call $~lib/array/Array#__set + end + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|0 + end + end + local.get $3 + local.get $4 + call $~lib/array/Array#set:length + local.get $3 + local.set $9 + global.get $~lib/memory/__stack_pointer + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $4 + local.get $9 ) (func $~lib/set/Set#constructor (param $0 i32) (result i32) (local $1 i32) @@ -18850,6 +16124,88 @@ global.set $~lib/memory/__stack_pointer local.get $4 ) + (func $~lib/set/Set#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) + (local $9 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 $0 + i32.load offset=8 + local.set $1 + local.get $0 + i32.load offset=16 + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 0 + local.get $2 + call $~lib/array/Array#constructor + local.tee $3 + i32.store + i32.const 0 + local.set $4 + i32.const 0 + local.set $5 + loop $for-loop|0 + local.get $5 + local.get $2 + i32.lt_s + local.set $6 + local.get $6 + if + local.get $1 + local.get $5 + i32.const 16 + i32.mul + i32.add + local.set $7 + local.get $7 + i32.load offset=8 + i32.const 1 + i32.and + i32.eqz + if + local.get $3 + local.get $4 + local.tee $8 + i32.const 1 + i32.add + local.set $4 + local.get $8 + local.get $7 + i64.load + call $~lib/array/Array#__set + end + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|0 + end + end + local.get $3 + local.get $4 + call $~lib/array/Array#set:length + local.get $3 + local.set $9 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $9 + ) (func $~lib/set/Set#constructor (param $0 i32) (result i32) (local $1 i32) global.get $~lib/memory/__stack_pointer @@ -18987,6 +16343,88 @@ global.set $~lib/memory/__stack_pointer local.get $4 ) + (func $~lib/set/Set#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) + (local $9 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 $0 + i32.load offset=8 + local.set $1 + local.get $0 + i32.load offset=16 + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 0 + local.get $2 + call $~lib/array/Array#constructor + local.tee $3 + i32.store + i32.const 0 + local.set $4 + i32.const 0 + local.set $5 + loop $for-loop|0 + local.get $5 + local.get $2 + i32.lt_s + local.set $6 + local.get $6 + if + local.get $1 + local.get $5 + i32.const 8 + i32.mul + i32.add + local.set $7 + local.get $7 + i32.load offset=4 + i32.const 1 + i32.and + i32.eqz + if + local.get $3 + local.get $4 + local.tee $8 + i32.const 1 + i32.add + local.set $4 + local.get $8 + local.get $7 + f32.load + call $~lib/array/Array#__set + end + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|0 + end + end + local.get $3 + local.get $4 + call $~lib/array/Array#set:length + local.get $3 + local.set $9 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $9 + ) (func $~lib/set/Set#constructor (param $0 i32) (result i32) (local $1 i32) global.get $~lib/memory/__stack_pointer @@ -19124,4 +16562,86 @@ global.set $~lib/memory/__stack_pointer local.get $4 ) + (func $~lib/set/Set#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) + (local $9 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 $0 + i32.load offset=8 + local.set $1 + local.get $0 + i32.load offset=16 + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 0 + local.get $2 + call $~lib/array/Array#constructor + local.tee $3 + i32.store + i32.const 0 + local.set $4 + i32.const 0 + local.set $5 + loop $for-loop|0 + local.get $5 + local.get $2 + i32.lt_s + local.set $6 + local.get $6 + if + local.get $1 + local.get $5 + i32.const 16 + i32.mul + i32.add + local.set $7 + local.get $7 + i32.load offset=8 + i32.const 1 + i32.and + i32.eqz + if + local.get $3 + local.get $4 + local.tee $8 + i32.const 1 + i32.add + local.set $4 + local.get $8 + local.get $7 + f64.load + call $~lib/array/Array#__set + end + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|0 + end + end + local.get $3 + local.get $4 + call $~lib/array/Array#set:length + local.get $3 + local.set $9 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $9 + ) ) diff --git a/tests/compiler/std/static-array.optimized.wat b/tests/compiler/std/static-array.optimized.wat index 8de736e3e1..3330004c68 100644 --- a/tests/compiler/std/static-array.optimized.wat +++ b/tests/compiler/std/static-array.optimized.wat @@ -2195,7 +2195,11 @@ (func $~start call $start:std/static-array ) - (func $~stack_check + (func $start:std/static-array + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 2012 i32.lt_s @@ -2207,13 +2211,6 @@ call $~lib/builtins/abort unreachable end - ) - (func $start:std/static-array - 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 @@ -2274,14 +2271,6 @@ global.get $~lib/memory/__stack_pointer i32.const 1088 i32.store - 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 1100 i32.load i32.eqz @@ -2293,18 +2282,11 @@ i32.const 1 i32.store end - global.get $~lib/memory/__stack_pointer - i32.const 1088 - i32.store i32.const 1092 i32.load i32.const 2 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 1088 i32.store i32.const 0 @@ -2367,14 +2349,6 @@ global.get $~lib/memory/__stack_pointer i32.const 1184 i32.store - 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 1196 i32.load i32.eqz @@ -2386,18 +2360,11 @@ i32.const 1 i32.store end - global.get $~lib/memory/__stack_pointer - i32.const 1184 - i32.store i32.const 1188 i32.load i64.const 4 i64.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 1184 i32.store i32.const 0 @@ -2460,14 +2427,6 @@ 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 - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store i32.const 1276 i32.load i32.eqz @@ -2479,18 +2438,11 @@ i32.const 1 i32.store end - global.get $~lib/memory/__stack_pointer - i32.const 1264 - i32.store i32.const 1268 i32.load f32.const 2.5 f32.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 1264 i32.store i32.const 0 @@ -2553,14 +2505,6 @@ global.get $~lib/memory/__stack_pointer i32.const 1360 i32.store - 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 1372 i32.load i32.eqz @@ -2572,18 +2516,11 @@ i32.const 1 i32.store end - global.get $~lib/memory/__stack_pointer - i32.const 1360 - i32.store i32.const 1364 i32.load f64.const 2.25 f64.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 1360 i32.store i32.const 0 diff --git a/tests/compiler/std/static-array.untouched.wat b/tests/compiler/std/static-array.untouched.wat index e79a7de4a3..7cc2b47c2f 100644 --- a/tests/compiler/std/static-array.untouched.wat +++ b/tests/compiler/std/static-array.untouched.wat @@ -3851,6 +3851,40 @@ i32.const 0 drop ) + (func $~lib/array/Array#__set (param $0 i32) (param $1 i32) (param $2 i32) + 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 448 + i32.const 512 + i32.const 108 + i32.const 22 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $1 + i32.const 1 + i32.add + i32.const 2 + call $~lib/array/ensureSize + local.get $0 + local.get $1 + i32.const 1 + i32.add + call $~lib/array/Array#set:length_ + end + local.get $0 + local.get $1 + local.get $2 + call $~lib/array/Array#__uset + ) (func $~lib/array/Array#get:length (param $0 i32) (result i32) local.get $0 i32.load offset=12 @@ -3898,6 +3932,40 @@ i32.const 0 drop ) + (func $~lib/array/Array#__set (param $0 i32) (param $1 i32) (param $2 i64) + 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 448 + i32.const 512 + i32.const 108 + i32.const 22 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $1 + i32.const 1 + i32.add + i32.const 3 + call $~lib/array/ensureSize + local.get $0 + local.get $1 + i32.const 1 + i32.add + call $~lib/array/Array#set:length_ + end + local.get $0 + local.get $1 + local.get $2 + call $~lib/array/Array#__uset + ) (func $~lib/array/Array#get:length (param $0 i32) (result i32) local.get $0 i32.load offset=12 @@ -3945,6 +4013,40 @@ i32.const 0 drop ) + (func $~lib/array/Array#__set (param $0 i32) (param $1 i32) (param $2 f32) + 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 448 + i32.const 512 + i32.const 108 + i32.const 22 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $1 + i32.const 1 + i32.add + i32.const 2 + call $~lib/array/ensureSize + local.get $0 + local.get $1 + i32.const 1 + i32.add + call $~lib/array/Array#set:length_ + end + local.get $0 + local.get $1 + local.get $2 + call $~lib/array/Array#__uset + ) (func $~lib/array/Array#get:length (param $0 i32) (result i32) local.get $0 i32.load offset=12 @@ -3992,6 +4094,40 @@ i32.const 0 drop ) + (func $~lib/array/Array#__set (param $0 i32) (param $1 i32) (param $2 f64) + 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 448 + i32.const 512 + i32.const 108 + i32.const 22 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $1 + i32.const 1 + i32.add + i32.const 3 + call $~lib/array/ensureSize + local.get $0 + local.get $1 + i32.const 1 + i32.add + call $~lib/array/Array#set:length_ + end + local.get $0 + local.get $1 + local.get $2 + call $~lib/array/Array#__uset + ) (func $~lib/rt/__visit_globals (param $0 i32) (local $1 i32) global.get $std/static-array/i @@ -4157,214 +4293,6 @@ unreachable end ) - (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 - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 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 448 - i32.const 512 - i32.const 108 - i32.const 22 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.get $1 - i32.const 1 - i32.add - i32.const 2 - call $~lib/array/ensureSize - local.get $0 - local.get $1 - i32.const 1 - i32.add - call $~lib/array/Array#set:length_ - end - local.get $0 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store - local.get $3 - local.get $1 - local.get $2 - call $~lib/array/Array#__uset - 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 - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 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 448 - i32.const 512 - i32.const 108 - i32.const 22 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.get $1 - i32.const 1 - i32.add - i32.const 3 - call $~lib/array/ensureSize - local.get $0 - local.get $1 - i32.const 1 - i32.add - call $~lib/array/Array#set:length_ - end - local.get $0 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store - local.get $3 - local.get $1 - local.get $2 - call $~lib/array/Array#__uset - 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 f32) - (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 $1 - local.get $0 - i32.load offset=12 - i32.ge_u - if - local.get $1 - i32.const 0 - i32.lt_s - if - i32.const 448 - i32.const 512 - i32.const 108 - i32.const 22 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.get $1 - i32.const 1 - i32.add - i32.const 2 - call $~lib/array/ensureSize - local.get $0 - local.get $1 - i32.const 1 - i32.add - call $~lib/array/Array#set:length_ - end - local.get $0 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store - local.get $3 - local.get $1 - local.get $2 - call $~lib/array/Array#__uset - 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 f64) - (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 $1 - local.get $0 - i32.load offset=12 - i32.ge_u - if - local.get $1 - i32.const 0 - i32.lt_s - if - i32.const 448 - i32.const 512 - i32.const 108 - i32.const 22 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.get $1 - i32.const 1 - i32.add - i32.const 3 - call $~lib/array/ensureSize - local.get $0 - local.get $1 - i32.const 1 - i32.add - call $~lib/array/Array#set:length_ - end - local.get $0 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store - local.get $3 - local.get $1 - local.get $2 - call $~lib/array/Array#__uset - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - ) (func $start:std/static-array (local $0 i32) (local $1 i32) diff --git a/tests/compiler/std/staticarray.optimized.wat b/tests/compiler/std/staticarray.optimized.wat index 4ca04ec913..f90bde51b0 100644 --- a/tests/compiler/std/staticarray.optimized.wat +++ b/tests/compiler/std/staticarray.optimized.wat @@ -47,6 +47,51 @@ (global $~lib/memory/__stack_pointer (mut i32) (i32.const 18100)) (export "memory" (memory $0)) (start $~start) + (func $~lib/staticarray/StaticArray#__get (param $0 i32) (param $1 i32) (result i32) + 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 113 + i32.const 41 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $1 + i32.const 2 + i32.shl + i32.add + i32.load + ) + (func $~lib/staticarray/StaticArray#__set (param $0 i32) (param $1 i32) + 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 + i32.const 1088 + i32.const 1152 + i32.const 128 + i32.const 41 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $1 + i32.store offset=4 + ) (func $~lib/rt/itcms/initLazy (param $0 i32) (result i32) local.get $0 local.get $0 @@ -2079,84 +2124,6 @@ unreachable end ) - (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 - call $~stack_check - 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 113 - 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/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 - call $~stack_check - global.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 - i32.const 1 - i32.le_u - if - i32.const 1088 - i32.const 1152 - i32.const 128 - 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 $start:std/staticarray (local $0 i32) global.get $~lib/memory/__stack_pointer diff --git a/tests/compiler/std/staticarray.untouched.wat b/tests/compiler/std/staticarray.untouched.wat index 7b7baa58b3..9878bb9c14 100644 --- a/tests/compiler/std/staticarray.untouched.wat +++ b/tests/compiler/std/staticarray.untouched.wat @@ -55,6 +55,31 @@ i32.const 2 i32.shr_u ) + (func $~lib/staticarray/StaticArray#__get (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + local.get $1 + local.get $0 + call $~lib/staticarray/StaticArray#get:length + i32.ge_u + if + i32.const 64 + i32.const 128 + i32.const 113 + i32.const 41 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $1 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $2 + i32.const 0 + drop + local.get $2 + ) (func $~lib/staticarray/StaticArray#__uset (param $0 i32) (param $1 i32) (param $2 i32) local.get $0 local.get $1 @@ -66,6 +91,24 @@ i32.const 0 drop ) + (func $~lib/staticarray/StaticArray#__set (param $0 i32) (param $1 i32) (param $2 i32) + local.get $1 + local.get $0 + call $~lib/staticarray/StaticArray#get:length + i32.ge_u + if + i32.const 64 + i32.const 128 + i32.const 128 + i32.const 41 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $1 + local.get $2 + call $~lib/staticarray/StaticArray#__uset + ) (func $~lib/rt/itcms/Object#set:nextWithColor (param $0 i32) (param $1 i32) local.get $0 local.get $1 @@ -3935,92 +3978,6 @@ unreachable end ) - (func $~lib/staticarray/StaticArray#__get (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 - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - local.get $1 - local.get $0 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store - local.get $3 - call $~lib/staticarray/StaticArray#get:length - i32.ge_u - if - i32.const 64 - i32.const 128 - i32.const 113 - i32.const 41 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.get $1 - i32.const 2 - i32.shl - i32.add - i32.load - local.set $2 - i32.const 0 - drop - local.get $2 - 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/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 - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - local.get $1 - local.get $0 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store - local.get $3 - call $~lib/staticarray/StaticArray#get:length - i32.ge_u - if - i32.const 64 - i32.const 128 - i32.const 128 - i32.const 41 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store - local.get $3 - local.get $1 - local.get $2 - call $~lib/staticarray/StaticArray#__uset - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - ) (func $start:std/staticarray (local $0 i32) (local $1 i32) diff --git a/tests/compiler/std/string-casemapping.optimized.wat b/tests/compiler/std/string-casemapping.optimized.wat index 415d279817..52caa7e526 100644 --- a/tests/compiler/std/string-casemapping.optimized.wat +++ b/tests/compiler/std/string-casemapping.optimized.wat @@ -2531,6 +2531,122 @@ call $~lib/memory/memory.copy local.get $3 ) + (func $~lib/string/String.__eq (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + local.get $0 + local.get $1 + i32.eq + if + i32.const 1 + return + end + local.get $1 + i32.eqz + i32.const 1 + local.get $0 + select + if + i32.const 0 + return + end + 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.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u + i32.ne + if + i32.const 0 + return + end + block $__inlined_func$~lib/util/string/compareImpl (result i32) + local.get $0 + local.tee $3 + i32.const 7 + i32.and + local.get $1 + i32.const 7 + i32.and + i32.or + i32.eqz + i32.const 0 + local.get $2 + local.tee $0 + i32.const 4 + i32.ge_u + select + if + loop $do-continue|0 + local.get $3 + i64.load + local.get $1 + i64.load + i64.eq + if + local.get $3 + i32.const 8 + i32.add + local.set $3 + 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-continue|0 + end + end + end + loop $while-continue|1 + local.get $0 + local.tee $2 + i32.const 1 + i32.sub + local.set $0 + local.get $2 + if + local.get $3 + i32.load16_u + local.tee $2 + local.get $1 + i32.load16_u + local.tee $4 + i32.ne + if + local.get $2 + local.get $4 + i32.sub + br $__inlined_func$~lib/util/string/compareImpl + end + local.get $3 + i32.const 2 + i32.add + local.set $3 + local.get $1 + i32.const 2 + i32.add + local.set $1 + br $while-continue|1 + end + end + i32.const 0 + end + i32.eqz + ) (func $~lib/util/string/stagedBinaryLookup (param $0 i32) (param $1 i32) (result i32) local.get $0 local.get $0 @@ -2556,6 +2672,69 @@ i32.const 1 i32.and ) + (func $~lib/string/String#codePointAt (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u + local.tee $2 + local.set $3 + local.get $1 + local.get $2 + i32.ge_u + if + i32.const -1 + return + end + i32.const 1 + local.get $3 + local.get $1 + i32.const 1 + i32.add + i32.eq + local.get $0 + local.get $1 + i32.const 1 + i32.shl + i32.add + i32.load16_u + local.tee $2 + i32.const 64512 + i32.and + i32.const 55296 + i32.ne + select + if + local.get $2 + return + end + local.get $0 + local.get $1 + i32.const 1 + i32.shl + i32.add + i32.load16_u offset=2 + local.tee $0 + i32.const 64512 + i32.and + i32.const 56320 + i32.ne + if + local.get $2 + return + end + local.get $0 + local.get $2 + i32.const 10 + i32.shl + i32.add + i32.const 56613888 + i32.sub + ) (func $~lib/rt/__visit_members (param $0 i32) block $invalid block $~lib/staticarray/StaticArray @@ -2620,10 +2799,6 @@ 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 @@ -2637,7 +2812,7 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 + local.get $0 return end global.get $~lib/memory/__stack_pointer @@ -2647,10 +2822,10 @@ i32.const 1 call $~lib/rt/itcms/__new local.tee $6 - i32.store offset=4 + i32.store global.get $~lib/memory/__stack_pointer i32.const 1488 - i32.store + i32.store offset=4 i32.const 1484 i32.load i32.const 1 @@ -2661,13 +2836,13 @@ local.get $8 i32.lt_u if - local.get $2 + local.get $0 local.get $7 i32.const 1 i32.shl i32.add i32.load16_u - local.tee $1 + local.tee $2 i32.const 7 i32.shr_u if @@ -2678,14 +2853,14 @@ i32.sub i32.lt_u i32.const 0 - local.get $1 + local.get $2 i32.const 55295 i32.sub i32.const 1025 i32.lt_u select if - local.get $2 + local.get $0 local.get $7 i32.const 1 i32.shl @@ -2704,8 +2879,8 @@ local.get $4 i32.const 1023 i32.and - local.get $1 - local.tee $0 + local.get $2 + local.tee $1 i32.const 1023 i32.and i32.const 10 @@ -2713,7 +2888,7 @@ i32.or i32.const 65536 i32.add - local.tee $1 + local.tee $2 i32.const 131072 i32.ge_u if @@ -2722,7 +2897,7 @@ i32.const 1 i32.shl i32.add - local.get $0 + local.get $1 local.get $4 i32.const 16 i32.shl @@ -2736,7 +2911,7 @@ end end end - local.get $1 + local.get $2 i32.const 9424 i32.sub i32.const 25 @@ -2747,28 +2922,28 @@ i32.const 1 i32.shl i32.add - local.get $1 + local.get $2 i32.const 26 i32.sub i32.store16 else - local.get $1 + local.get $2 i32.const 223 i32.sub i32.const 64056 i32.le_u if (result i32) local.get $3 - local.set $0 + local.set $1 i32.const 0 local.set $9 block $~lib/util/casemap/bsearch|inlined.0 loop $while-continue|1 - local.get $0 + local.get $1 local.get $9 i32.ge_s if - local.get $0 + local.get $1 local.get $9 i32.add i32.const 3 @@ -2781,7 +2956,7 @@ i32.const 1488 i32.add i32.load16_u - local.get $1 + local.get $2 i32.sub local.tee $10 i32.eqz @@ -2798,7 +2973,7 @@ local.get $4 i32.const 4 i32.sub - local.set $0 + local.set $1 end br $while-continue|1 end @@ -2810,32 +2985,32 @@ else i32.const -1 end - local.tee $0 + local.tee $1 i32.const -1 i32.xor if - local.get $0 + local.get $1 i32.const 1 i32.shl i32.const 1488 i32.add - local.tee $1 + local.tee $2 i32.load16_u offset=6 - local.set $0 + local.set $1 local.get $6 local.get $5 i32.const 1 i32.shl i32.add local.tee $4 - local.get $1 + local.get $2 i32.load offset=2 i32.store local.get $4 - local.get $0 + local.get $1 i32.store16 offset=4 local.get $5 - local.get $0 + local.get $1 i32.const 0 i32.ne i32.const 1 @@ -2843,12 +3018,12 @@ i32.add local.set $5 else - local.get $1 + local.get $2 i32.const 1 call $~lib/util/casemap/casemap i32.const 2097151 i32.and - local.tee $0 + local.tee $1 i32.const 65536 i32.lt_u if @@ -2857,7 +3032,7 @@ i32.const 1 i32.shl i32.add - local.get $0 + local.get $1 i32.store16 else local.get $6 @@ -2865,17 +3040,17 @@ i32.const 1 i32.shl i32.add - local.get $0 + local.get $1 i32.const 65536 i32.sub - local.tee $0 + local.tee $1 i32.const 1023 i32.and i32.const 56320 i32.or i32.const 16 i32.shl - local.get $0 + local.get $1 i32.const 10 i32.shr_u i32.const 55296 @@ -2896,8 +3071,8 @@ i32.const 1 i32.shl i32.add - local.get $1 - local.get $1 + local.get $2 + local.get $2 i32.const 97 i32.sub i32.const 26 @@ -2930,11 +3105,26 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/string/String.__eq (param $0 i32) (param $1 i32) (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 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 + local.get $0 + i32.const 19072 + local.get $0 + select + local.tee $2 + i32.store + global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -2942,153 +3132,84 @@ 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 + block $__inlined_func$~lib/string/String#concat local.get $1 i32.eqz - i32.const 1 - local.get $0 - select - 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 + if + global.get $~lib/memory/__stack_pointer + i32.const 19072 + i32.store + i32.const 19072 + local.set $1 + end + local.get $1 + 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 + i32.const 1 + i32.shl + local.tee $4 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 + i32.const 1 + i32.shl + local.tee $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 + end global.get $~lib/memory/__stack_pointer local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $0 i32.store offset=4 - block $__inlined_func$~lib/util/string/compareImpl (result i32) - local.get $0 - local.tee $3 - i32.const 7 - i32.and - local.get $1 - i32.const 7 - i32.and - i32.or - i32.eqz - i32.const 0 - local.get $2 - i32.const 4 - i32.ge_u - select - if - loop $do-continue|0 - local.get $3 - i64.load - local.get $1 - i64.load - i64.eq - if - local.get $3 - i32.const 8 - i32.add - local.set $3 - 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-continue|0 - end - end - end - loop $while-continue|1 - local.get $2 - local.tee $0 - i32.const 1 - i32.sub - local.set $2 - local.get $0 - if - local.get $3 - i32.load16_u - local.tee $4 - local.get $1 - i32.load16_u - local.tee $0 - i32.ne - if - local.get $4 - local.get $0 - i32.sub - br $__inlined_func$~lib/util/string/compareImpl - end - local.get $3 - i32.const 2 - i32.add - local.set $3 - local.get $1 - i32.const 2 - i32.add - local.set $1 - br $while-continue|1 - end - end - i32.const 0 - end + local.get $0 + local.get $2 + local.get $3 + call $~lib/memory/memory.copy + local.get $0 + local.get $3 + i32.add + local.get $1 + local.get $4 + call $~lib/memory/memory.copy global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - 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 + local.get $0 ) - (func $~lib/string/String#toLowerCase (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) + (func $start:std/string-casemapping + (local $0 i64) + (local $1 i64) + (local $2 i64) + (local $3 i64) + (local $4 i64) (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 28 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check @@ -3096,737 +3217,58 @@ 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 + i64.const 0 + i64.store offset=16 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=24 + i32.const 1200 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/pinSpace + i32.const 1232 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/toSpace + i32.const 1376 + call $~lib/rt/itcms/initLazy + 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 $7 + global.get $~lib/memory/__stack_pointer + local.get $7 i32.store - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 1 - i32.shr_u - local.tee $8 + global.get $~lib/memory/__stack_pointer + i32.const 1056 + i32.store offset=4 + local.get $7 + i32.const 1056 + call $~lib/string/String.__eq i32.eqz if - global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 6896 i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - return + i32.const 1 + call $~lib/builtins/abort + unreachable end global.get $~lib/memory/__stack_pointer - local.get $8 - i32.const 2 - i32.shl - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $6 - i32.store offset=4 - loop $for-loop|0 - local.get $4 - local.get $8 - i32.lt_u - if - local.get $0 - local.get $4 - i32.const 1 - i32.shl - i32.add - i32.load16_u - local.tee $1 - i32.const 7 - i32.shr_u - if - block $for-continue|0 - local.get $4 - local.get $8 - i32.const 1 - i32.sub - i32.lt_u - i32.const 0 - local.get $1 - i32.const 55295 - i32.sub - i32.const 1025 - i32.lt_u - select - if - local.get $0 - local.get $4 - i32.const 1 - i32.shl - i32.add - i32.load16_u offset=2 - local.tee $7 - i32.const 56319 - i32.sub - i32.const 1025 - i32.lt_u - if - local.get $4 - i32.const 1 - i32.add - local.set $4 - local.get $7 - i32.const 1023 - i32.and - local.get $1 - local.tee $3 - i32.const 1023 - i32.and - i32.const 10 - i32.shl - i32.or - i32.const 65536 - i32.add - local.tee $1 - i32.const 131072 - i32.ge_u - if - local.get $6 - local.get $5 - i32.const 1 - i32.shl - i32.add - local.get $3 - local.get $7 - 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 $1 - i32.const 304 - i32.eq - if - local.get $6 - local.get $5 - i32.const 1 - i32.shl - i32.add - i32.const 50790505 - i32.store - local.get $5 - i32.const 1 - i32.add - local.set $5 - else - local.get $1 - i32.const 931 - i32.eq - if - local.get $6 - local.get $5 - i32.const 1 - i32.shl - i32.add - i32.const 962 - i32.const 963 - local.get $8 - i32.const 1 - i32.gt_u - if (result i32) - block $~lib/util/string/isFinalSigma|inlined.0 (result i32) - i32.const 0 - local.set $2 - i32.const 0 - local.get $4 - local.tee $3 - i32.const 30 - i32.sub - local.tee $1 - local.get $1 - i32.const 0 - i32.lt_s - select - local.set $9 - loop $while-continue|1 - local.get $3 - local.get $9 - i32.gt_s - if - i32.const -1 - local.set $1 - block $~lib/util/string/codePointBefore|inlined.0 - local.get $3 - i32.const 0 - i32.le_s - br_if $~lib/util/string/codePointBefore|inlined.0 - local.get $0 - local.get $3 - i32.const 1 - i32.sub - i32.const 1 - i32.shl - i32.add - i32.load16_u - local.tee $7 - i32.const 64512 - i32.and - i32.const 56320 - i32.eq - local.get $3 - i32.const 2 - i32.sub - i32.const 0 - i32.ge_s - i32.and - if - local.get $7 - i32.const 1023 - i32.and - local.get $0 - local.get $3 - i32.const 2 - i32.sub - 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 $1 - 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 $7 - local.get $7 - i32.const 63488 - i32.and - i32.const 55296 - i32.eq - select - local.set $1 - end - local.get $1 - i32.const 918000 - i32.lt_u - if (result i32) - i32.const 6956 - local.get $1 - call $~lib/util/string/stagedBinaryLookup - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - local.get $1 - i32.const 127370 - i32.lt_u - if (result i32) - i32.const 9964 - local.get $1 - call $~lib/util/string/stagedBinaryLookup - else - i32.const 0 - end - i32.eqz - br_if $~lib/util/string/isFinalSigma|inlined.0 - drop - i32.const 1 - local.set $2 - end - local.get $3 - local.get $1 - i32.const 65536 - i32.ge_s - i32.const 1 - i32.add - i32.sub - local.set $3 - br $while-continue|1 - end - end - i32.const 0 - local.get $2 - i32.eqz - br_if $~lib/util/string/isFinalSigma|inlined.0 - drop - local.get $4 - i32.const 1 - i32.add - local.tee $3 - i32.const 30 - i32.add - local.tee $1 - local.get $8 - local.get $1 - local.get $8 - i32.lt_s - select - local.set $2 - loop $while-continue|2 - local.get $2 - local.get $3 - i32.gt_s - if - local.get $0 - local.get $3 - i32.const 1 - i32.shl - i32.add - i32.load16_u - local.tee $1 - i32.const 64512 - i32.and - i32.const 55296 - i32.eq - local.get $8 - local.get $3 - i32.const 1 - i32.add - i32.ne - i32.and - if - local.get $0 - local.get $3 - i32.const 1 - i32.shl - i32.add - i32.load16_u offset=2 - local.tee $7 - i32.const 64512 - i32.and - i32.const 56320 - i32.eq - if - local.get $7 - local.get $1 - i32.const 10 - i32.shl - i32.add - i32.const 56613888 - i32.sub - local.set $1 - end - end - local.get $1 - i32.const 918000 - i32.lt_u - if (result i32) - i32.const 6956 - local.get $1 - call $~lib/util/string/stagedBinaryLookup - else - i32.const 0 - end - i32.eqz - if - local.get $1 - i32.const 127370 - i32.lt_u - if (result i32) - i32.const 9964 - local.get $1 - call $~lib/util/string/stagedBinaryLookup - else - i32.const 0 - end - i32.eqz - br $~lib/util/string/isFinalSigma|inlined.0 - end - local.get $3 - local.get $1 - i32.const 65536 - i32.ge_u - i32.const 1 - i32.add - i32.add - local.set $3 - br $while-continue|2 - end - end - i32.const 1 - end - else - i32.const 0 - end - select - i32.store16 - else - local.get $1 - i32.const 9398 - i32.sub - i32.const 25 - i32.le_u - if - local.get $6 - local.get $5 - i32.const 1 - i32.shl - i32.add - local.get $1 - i32.const 26 - i32.add - i32.store16 - else - local.get $1 - i32.const 0 - call $~lib/util/casemap/casemap - i32.const 2097151 - i32.and - local.tee $3 - i32.const 65536 - i32.lt_u - if - local.get $6 - local.get $5 - i32.const 1 - i32.shl - i32.add - local.get $3 - i32.store16 - else - local.get $6 - local.get $5 - i32.const 1 - i32.shl - i32.add - local.get $3 - i32.const 65536 - i32.sub - local.tee $3 - i32.const 10 - i32.shr_u - i32.const 55296 - i32.or - local.get $3 - 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 - end - else - local.get $6 - local.get $5 - i32.const 1 - i32.shl - i32.add - local.get $1 - local.get $1 - i32.const 65 - i32.sub - i32.const 26 - i32.lt_u - i32.const 5 - i32.shl - i32.or - i32.store16 - end - local.get $4 - i32.const 1 - i32.add - local.set $4 - 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#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 - 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 - 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.set $3 - local.get $1 - local.get $2 - i32.ge_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 - i32.const 1 - local.get $3 - local.get $1 - i32.const 1 - i32.add - i32.eq - local.get $0 - local.get $1 - i32.const 1 - i32.shl - i32.add - i32.load16_u - local.tee $2 - i32.const 64512 - i32.and - i32.const 55296 - i32.ne - select - br_if $folding-inner0 - local.get $0 - local.get $1 - i32.const 1 - i32.shl - i32.add - 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 $0 - local.get $2 - i32.const 10 - i32.shl - 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 $2 - ) - (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 - call $~stack_check - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.const 19072 - local.get $0 - select - local.tee $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 - 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 $1 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 19072 - i32.store - i32.const 19072 - local.set $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 $2 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - block $__inlined_func$~lib/string/String#concat - local.get $2 - i32.const 1 - i32.shl - local.tee $3 - local.get $1 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 1 - i32.shr_u - i32.const 1 - i32.shl - local.tee $4 - i32.add - local.tee $2 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1056 - local.set $2 - br $__inlined_func$~lib/string/String#concat - end - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $2 - i32.store offset=8 - local.get $2 - local.get $0 - local.get $3 - call $~lib/memory/memory.copy - local.get $2 - local.get $3 - i32.add - local.get $1 - local.get $4 - call $~lib/memory/memory.copy - global.get $~lib/memory/__stack_pointer - 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 $2 - ) - (func $start:std/string-casemapping - (local $0 i64) - (local $1 i64) - (local $2 i64) - (local $3 i64) - (local $4 i64) - (local $5 i32) - (local $6 i32) - (local $7 i32) - global.get $~lib/memory/__stack_pointer - i32.const 28 - 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 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=16 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=24 - i32.const 1200 - call $~lib/rt/itcms/initLazy - global.set $~lib/rt/itcms/pinSpace - i32.const 1232 - call $~lib/rt/itcms/initLazy - global.set $~lib/rt/itcms/toSpace - i32.const 1376 - call $~lib/rt/itcms/initLazy - 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 $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1056 - i32.store offset=4 - local.get $7 - i32.const 1056 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 6896 - i32.const 8 - i32.const 1 - 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 $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1056 + i32.const 1056 + i32.store offset=8 + i32.const 1056 + call $~lib/string/String#toLowerCase + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 1056 i32.store offset=4 local.get $7 i32.const 1056 @@ -5768,36 +5210,24 @@ global.get $~lib/memory/__stack_pointer local.get $6 call $~lib/string/String.fromCodePoint - local.tee $7 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store + local.tee $5 + i32.store offset=16 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $5 call $~lib/string/String#toLowerCase - local.tee $5 + local.tee $7 i32.store offset=20 global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $5 call $~lib/string/String#toUpperCase - local.tee $7 + local.tee $5 i32.store offset=24 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - local.get $5 + local.get $7 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 + local.get $7 i32.const 1 call $~lib/string/String#codePointAt i64.extend_i32_s @@ -5812,10 +5242,7 @@ i64.add local.set $0 end - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - local.get $5 + local.get $7 i32.const 2 call $~lib/string/String#codePointAt i64.extend_i32_s @@ -5830,18 +5257,12 @@ i64.add local.set $0 end - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store - local.get $7 + local.get $5 i32.const 0 call $~lib/string/String#codePointAt i64.extend_i32_s local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store - local.get $7 + local.get $5 i32.const 1 call $~lib/string/String#codePointAt i64.extend_i32_s @@ -5856,10 +5277,7 @@ i64.add local.set $3 end - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store - local.get $7 + local.get $5 i32.const 2 call $~lib/string/String#codePointAt i64.extend_i32_s @@ -5954,135 +5372,621 @@ i32.const 18592 i32.const 1 local.get $6 - f64.convert_i32_s - f64.const 0 - f64.const 0 - f64.const 0 - f64.const 0 - call $~lib/builtins/trace - global.get $~lib/memory/__stack_pointer - i32.const 18688 - i32.store offset=4 - local.get $0 - call $~lib/util/number/itoa64 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=8 - i32.const 18688 - local.get $7 - call $~lib/string/String.__concat - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store - local.get $7 - i32.const 0 - f64.const 0 - f64.const 0 - f64.const 0 - f64.const 0 - f64.const 0 - call $~lib/builtins/trace - global.get $~lib/memory/__stack_pointer - i32.const 19104 - i32.store offset=4 - local.get $2 - call $~lib/util/number/itoa64 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=8 - i32.const 19104 - local.get $7 - call $~lib/string/String.__concat - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store - local.get $7 - 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 $1 - local.get $3 - i64.ne - if - global.get $~lib/memory/__stack_pointer - i32.const 19168 - i32.store - i32.const 19168 + f64.convert_i32_s + f64.const 0 + f64.const 0 + f64.const 0 + f64.const 0 + call $~lib/builtins/trace + global.get $~lib/memory/__stack_pointer + i32.const 18688 + i32.store offset=4 + local.get $0 + call $~lib/util/number/itoa64 + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=8 + i32.const 18688 + local.get $7 + call $~lib/string/String.__concat + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store + local.get $7 + i32.const 0 + f64.const 0 + f64.const 0 + f64.const 0 + f64.const 0 + f64.const 0 + call $~lib/builtins/trace + global.get $~lib/memory/__stack_pointer + i32.const 19104 + i32.store offset=4 + local.get $2 + call $~lib/util/number/itoa64 + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=8 + i32.const 19104 + local.get $7 + call $~lib/string/String.__concat + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store + local.get $7 + 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 $1 + local.get $3 + i64.ne + if + global.get $~lib/memory/__stack_pointer + i32.const 19168 + i32.store + i32.const 19168 + i32.const 1 + local.get $6 + f64.convert_i32_s + f64.const 0 + f64.const 0 + f64.const 0 + f64.const 0 + call $~lib/builtins/trace + global.get $~lib/memory/__stack_pointer + i32.const 19264 + i32.store offset=4 + local.get $3 + call $~lib/util/number/itoa64 + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=8 + i32.const 19264 + local.get $7 + call $~lib/string/String.__concat + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store + local.get $7 + i32.const 0 + f64.const 0 + f64.const 0 + f64.const 0 + f64.const 0 + f64.const 0 + call $~lib/builtins/trace + global.get $~lib/memory/__stack_pointer + i32.const 19328 + i32.store offset=4 + local.get $1 + call $~lib/util/number/itoa64 + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=8 + i32.const 19328 + local.get $7 + call $~lib/string/String.__concat + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store + local.get $7 + 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 $6 + i32.const 1 + i32.add + local.set $6 + br $for-loop|0 + end + end + global.get $~lib/memory/__stack_pointer + i32.const 28 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (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 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 $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 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + return + end + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.const 2 + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $6 + i32.store + loop $for-loop|0 + local.get $4 + local.get $8 + i32.lt_u + if + local.get $0 + local.get $4 + i32.const 1 + i32.shl + i32.add + i32.load16_u + local.tee $1 + i32.const 7 + i32.shr_u + if + block $for-continue|0 + local.get $4 + local.get $8 + i32.const 1 + i32.sub + i32.lt_u + i32.const 0 + local.get $1 + i32.const 55295 + i32.sub + i32.const 1025 + i32.lt_u + select + if + local.get $0 + local.get $4 + i32.const 1 + i32.shl + i32.add + i32.load16_u offset=2 + local.tee $7 + i32.const 56319 + i32.sub + i32.const 1025 + i32.lt_u + if + local.get $4 + i32.const 1 + i32.add + local.set $4 + local.get $7 + i32.const 1023 + i32.and + local.get $1 + local.tee $3 + i32.const 1023 + i32.and + i32.const 10 + i32.shl + i32.or + i32.const 65536 + i32.add + local.tee $1 + i32.const 131072 + i32.ge_u + if + local.get $6 + local.get $5 + i32.const 1 + i32.shl + i32.add + local.get $3 + local.get $7 + 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 $1 + i32.const 304 + i32.eq + if + local.get $6 + local.get $5 + i32.const 1 + i32.shl + i32.add + i32.const 50790505 + i32.store + local.get $5 + i32.const 1 + i32.add + local.set $5 + else + local.get $1 + i32.const 931 + i32.eq + if + local.get $6 + local.get $5 + i32.const 1 + i32.shl + i32.add + i32.const 962 + i32.const 963 + local.get $8 + i32.const 1 + i32.gt_u + if (result i32) + block $~lib/util/string/isFinalSigma|inlined.0 (result i32) + i32.const 0 + local.set $2 + i32.const 0 + local.get $4 + local.tee $3 + i32.const 30 + i32.sub + local.tee $1 + local.get $1 + i32.const 0 + i32.lt_s + select + local.set $9 + loop $while-continue|1 + local.get $3 + local.get $9 + i32.gt_s + if + i32.const -1 + local.set $1 + block $~lib/util/string/codePointBefore|inlined.0 + local.get $3 + i32.const 0 + i32.le_s + br_if $~lib/util/string/codePointBefore|inlined.0 + local.get $0 + local.get $3 + i32.const 1 + i32.sub + i32.const 1 + i32.shl + i32.add + i32.load16_u + local.tee $7 + i32.const 64512 + i32.and + i32.const 56320 + i32.eq + local.get $3 + i32.const 2 + i32.sub + i32.const 0 + i32.ge_s + i32.and + if + local.get $7 + i32.const 1023 + i32.and + local.get $0 + local.get $3 + i32.const 2 + i32.sub + 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 $1 + 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 $7 + local.get $7 + i32.const 63488 + i32.and + i32.const 55296 + i32.eq + select + local.set $1 + end + local.get $1 + i32.const 918000 + i32.lt_u + if (result i32) + i32.const 6956 + local.get $1 + call $~lib/util/string/stagedBinaryLookup + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + local.get $1 + i32.const 127370 + i32.lt_u + if (result i32) + i32.const 9964 + local.get $1 + call $~lib/util/string/stagedBinaryLookup + else + i32.const 0 + end + i32.eqz + br_if $~lib/util/string/isFinalSigma|inlined.0 + drop + i32.const 1 + local.set $2 + end + local.get $3 + local.get $1 + i32.const 65536 + i32.ge_s + i32.const 1 + i32.add + i32.sub + local.set $3 + br $while-continue|1 + end + end + i32.const 0 + local.get $2 + i32.eqz + br_if $~lib/util/string/isFinalSigma|inlined.0 + drop + local.get $4 + i32.const 1 + i32.add + local.tee $3 + i32.const 30 + i32.add + local.tee $1 + local.get $8 + local.get $1 + local.get $8 + i32.lt_s + select + local.set $2 + loop $while-continue|2 + local.get $2 + local.get $3 + i32.gt_s + if + local.get $0 + local.get $3 + i32.const 1 + i32.shl + i32.add + i32.load16_u + local.tee $1 + i32.const 64512 + i32.and + i32.const 55296 + i32.eq + local.get $8 + local.get $3 + i32.const 1 + i32.add + i32.ne + i32.and + if + local.get $0 + local.get $3 + i32.const 1 + i32.shl + i32.add + i32.load16_u offset=2 + local.tee $7 + i32.const 64512 + i32.and + i32.const 56320 + i32.eq + if + local.get $7 + local.get $1 + i32.const 10 + i32.shl + i32.add + i32.const 56613888 + i32.sub + local.set $1 + end + end + local.get $1 + i32.const 918000 + i32.lt_u + if (result i32) + i32.const 6956 + local.get $1 + call $~lib/util/string/stagedBinaryLookup + else + i32.const 0 + end + i32.eqz + if + local.get $1 + i32.const 127370 + i32.lt_u + if (result i32) + i32.const 9964 + local.get $1 + call $~lib/util/string/stagedBinaryLookup + else + i32.const 0 + end + i32.eqz + br $~lib/util/string/isFinalSigma|inlined.0 + end + local.get $3 + local.get $1 + i32.const 65536 + i32.ge_u + i32.const 1 + i32.add + i32.add + local.set $3 + br $while-continue|2 + end + end + i32.const 1 + end + else + i32.const 0 + end + select + i32.store16 + else + local.get $1 + i32.const 9398 + i32.sub + i32.const 25 + i32.le_u + if + local.get $6 + local.get $5 + i32.const 1 + i32.shl + i32.add + local.get $1 + i32.const 26 + i32.add + i32.store16 + else + local.get $1 + i32.const 0 + call $~lib/util/casemap/casemap + i32.const 2097151 + i32.and + local.tee $3 + i32.const 65536 + i32.lt_u + if + local.get $6 + local.get $5 + i32.const 1 + i32.shl + i32.add + local.get $3 + i32.store16 + else + local.get $6 + local.get $5 + i32.const 1 + i32.shl + i32.add + local.get $3 + i32.const 65536 + i32.sub + local.tee $3 + i32.const 10 + i32.shr_u + i32.const 55296 + i32.or + local.get $3 + 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 + end + else + local.get $6 + local.get $5 i32.const 1 - local.get $6 - f64.convert_i32_s - f64.const 0 - f64.const 0 - f64.const 0 - f64.const 0 - call $~lib/builtins/trace - global.get $~lib/memory/__stack_pointer - i32.const 19264 - i32.store offset=4 - local.get $3 - call $~lib/util/number/itoa64 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=8 - i32.const 19264 - local.get $7 - call $~lib/string/String.__concat - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store - local.get $7 - i32.const 0 - f64.const 0 - f64.const 0 - f64.const 0 - f64.const 0 - f64.const 0 - call $~lib/builtins/trace - global.get $~lib/memory/__stack_pointer - i32.const 19328 - i32.store offset=4 + i32.shl + i32.add local.get $1 - call $~lib/util/number/itoa64 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=8 - i32.const 19328 - local.get $7 - call $~lib/string/String.__concat - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store - local.get $7 - i32.const 0 - f64.const 0 - f64.const 0 - f64.const 0 - f64.const 0 - f64.const 0 - call $~lib/builtins/trace + local.get $1 + i32.const 65 + i32.sub + i32.const 26 + i32.lt_u + i32.const 5 + i32.shl + i32.or + i32.store16 end - local.get $6 + local.get $4 i32.const 1 i32.add - local.set $6 + local.set $4 + 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 28 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer ) diff --git a/tests/compiler/std/string-casemapping.untouched.wat b/tests/compiler/std/string-casemapping.untouched.wat index 3a6484c036..46704387bc 100644 --- a/tests/compiler/std/string-casemapping.untouched.wat +++ b/tests/compiler/std/string-casemapping.untouched.wat @@ -4144,6 +4144,48 @@ end i32.const 0 ) + (func $~lib/string/String.__eq (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + local.get $0 + local.get $1 + i32.eq + if + i32.const 1 + return + end + local.get $0 + i32.const 0 + i32.eq + if (result i32) + i32.const 1 + else + local.get $1 + i32.const 0 + i32.eq + end + if + i32.const 0 + return + end + local.get $0 + call $~lib/string/String#get:length + local.set $2 + local.get $2 + local.get $1 + call $~lib/string/String#get:length + i32.ne + if + i32.const 0 + return + end + local.get $0 + i32.const 0 + local.get $1 + i32.const 0 + local.get $2 + call $~lib/util/string/compareImpl + i32.eqz + ) (func $~lib/util/string/stagedBinaryLookup (param $0 i32) (param $1 i32) (result i32) local.get $0 local.get $0 @@ -4169,6 +4211,73 @@ i32.const 1 i32.and ) + (func $~lib/string/String#codePointAt (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + local.get $0 + call $~lib/string/String#get:length + local.set $2 + local.get $1 + local.get $2 + i32.ge_u + if + i32.const -1 + return + end + local.get $0 + local.get $1 + i32.const 1 + i32.shl + i32.add + i32.load16_u + local.set $3 + local.get $3 + i32.const 64512 + i32.and + i32.const 55296 + i32.ne + if (result i32) + i32.const 1 + else + local.get $1 + i32.const 1 + i32.add + local.get $2 + i32.eq + end + if + local.get $3 + return + end + local.get $0 + local.get $1 + i32.const 1 + i32.shl + i32.add + i32.load16_u offset=2 + local.set $4 + local.get $4 + i32.const 64512 + i32.and + i32.const 56320 + i32.ne + if + local.get $3 + return + end + local.get $3 + i32.const 55296 + i32.sub + i32.const 10 + i32.shl + local.get $4 + i32.const 56320 + i32.sub + i32.add + i32.const 65536 + i32.add + ) (func $~lib/util/number/decimalCount32 (param $0 i32) (result i32) local.get $0 i32.const 100000 @@ -4874,11 +4983,6 @@ i64.const 0 i64.store local.get $0 - local.set $17 - global.get $~lib/memory/__stack_pointer - local.get $17 - i32.store - local.get $17 call $~lib/string/String#get:length local.set $1 local.get $1 @@ -4902,14 +5006,14 @@ i32.const 1 call $~lib/rt/itcms/__new local.tee $2 - i32.store offset=4 + i32.store global.get $~lib/util/casemap/SPECIALS_UPPER local.set $3 global.get $~lib/util/casemap/SPECIALS_UPPER local.set $17 global.get $~lib/memory/__stack_pointer local.get $17 - i32.store + i32.store offset=4 local.get $17 call $~lib/staticarray/StaticArray#get:length local.set $4 @@ -5240,937 +5344,63 @@ global.set $~lib/memory/__stack_pointer local.get $17 ) - (func $~lib/string/String.__eq (param $0 i32) (param $1 i32) (result i32) + (func $~lib/string/String.__concat (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 call $~stack_check 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 - 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 + i32.const 19760 local.get $0 i32.const 0 - i32.eq - if (result i32) - i32.const 1 - else - local.get $1 - 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 $0 - 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 $2 - local.get $2 - local.get $1 - 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 $0 - local.set $3 + select + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $2 i32.store - local.get $3 - i32.const 0 - local.get $1 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - i32.const 0 local.get $2 - call $~lib/util/string/compareImpl - i32.eqz - local.set $3 + local.get $1 + call $~lib/string/String#concat + 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 $3 + local.get $2 ) - (func $~lib/string/String#toLowerCase (param $0 i32) (result i32) + (func $start:std/string-casemapping + (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 $5 i64) + (local $6 i64) + (local $7 i64) + (local $8 i64) + (local $9 i64) + (local $10 i64) (local $11 i32) - (local $12 i32) - (local $13 i32) - (local $14 i32) - (local $15 i32) - (local $16 i32) - (local $17 i32) - (local $18 i32) - (local $19 i32) global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 28 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - local.get $0 - local.set $19 global.get $~lib/memory/__stack_pointer - local.get $19 - i32.store - local.get $19 - call $~lib/string/String#get:length - local.set $1 - local.get $1 - i32.eqz - if - local.get $0 - local.set $19 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $19 - return - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.const 2 - i32.mul - i32.const 2 - i32.mul - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $2 - i32.store offset=4 - i32.const 0 - local.set $3 - i32.const 0 - local.set $4 - loop $for-loop|0 - local.get $4 - local.get $1 - i32.lt_u - local.set $5 - local.get $5 - if - block $for-continue|0 - local.get $0 - local.get $4 - i32.const 1 - i32.shl - i32.add - i32.load16_u - local.set $6 - local.get $6 - local.set $7 - local.get $7 - i32.const 7 - i32.shr_u - i32.eqz - if - local.get $2 - local.get $3 - i32.const 1 - i32.shl - i32.add - block $~lib/util/string/toLower8|inlined.0 (result i32) - local.get $6 - local.set $7 - i32.const 0 - i32.const 0 - i32.gt_s - drop - i32.const 6060 - local.get $7 - i32.add - i32.load8_u - br $~lib/util/string/toLower8|inlined.0 - end - i32.store16 - else - local.get $6 - i32.const 55295 - i32.sub - i32.const 56320 - i32.const 55295 - i32.sub - i32.lt_u - if (result i32) - local.get $4 - local.get $1 - i32.const 1 - i32.sub - i32.lt_u - else - i32.const 0 - end - if - local.get $0 - local.get $4 - i32.const 1 - i32.shl - i32.add - i32.load16_u offset=2 - local.set $7 - local.get $7 - i32.const 56319 - i32.sub - i32.const 57344 - i32.const 56319 - i32.sub - i32.lt_u - if - local.get $6 - local.set $8 - local.get $6 - i32.const 1023 - i32.and - i32.const 10 - i32.shl - local.get $7 - i32.const 1023 - i32.and - i32.or - i32.const 65536 - i32.add - local.set $6 - local.get $4 - i32.const 1 - i32.add - local.set $4 - local.get $6 - i32.const 131072 - i32.ge_u - if - local.get $2 - local.get $3 - i32.const 1 - i32.shl - i32.add - local.get $8 - local.get $7 - i32.const 16 - i32.shl - i32.or - i32.store - local.get $3 - i32.const 1 - i32.add - local.set $3 - br $for-continue|0 - end - end - end - local.get $6 - i32.const 304 - i32.eq - if - local.get $2 - local.get $3 - i32.const 1 - i32.shl - i32.add - i32.const 775 - i32.const 16 - i32.shl - i32.const 105 - i32.or - i32.store - local.get $3 - i32.const 1 - i32.add - local.set $3 - else - local.get $6 - i32.const 931 - i32.eq - if - i32.const 963 - local.set $7 - local.get $1 - i32.const 1 - i32.gt_u - if (result i32) - block $~lib/util/string/isFinalSigma|inlined.0 (result i32) - local.get $0 - local.set $10 - local.get $4 - local.set $9 - local.get $1 - local.set $8 - i32.const 0 - local.set $11 - local.get $9 - local.set $12 - i32.const 0 - local.tee $13 - local.get $12 - i32.const 30 - i32.sub - local.tee $14 - local.get $13 - local.get $14 - i32.gt_s - select - local.set $13 - loop $while-continue|1 - local.get $12 - local.get $13 - i32.gt_s - local.set $14 - local.get $14 - if - block $~lib/util/string/codePointBefore|inlined.0 (result i32) - local.get $10 - local.set $16 - local.get $12 - local.set $15 - local.get $15 - i32.const 0 - i32.le_s - if - i32.const -1 - br $~lib/util/string/codePointBefore|inlined.0 - end - local.get $16 - local.get $15 - i32.const 1 - i32.sub - i32.const 1 - i32.shl - i32.add - i32.load16_u - local.set $17 - local.get $17 - i32.const 64512 - i32.and - i32.const 56320 - i32.eq - local.get $15 - i32.const 2 - i32.sub - i32.const 0 - i32.ge_s - i32.and - if - local.get $16 - local.get $15 - i32.const 2 - i32.sub - i32.const 1 - i32.shl - i32.add - i32.load16_u - local.set $18 - local.get $18 - i32.const 64512 - i32.and - i32.const 55296 - i32.eq - if - local.get $18 - i32.const 1023 - i32.and - i32.const 10 - i32.shl - local.get $17 - i32.const 1023 - i32.and - i32.add - i32.const 65536 - i32.add - br $~lib/util/string/codePointBefore|inlined.0 - end - end - local.get $17 - i32.const 63488 - i32.and - i32.const 55296 - i32.eq - if (result i32) - i32.const 65533 - else - local.get $17 - end - end - local.set $17 - local.get $17 - local.set $18 - local.get $18 - i32.const 918000 - i32.lt_u - if (result i32) - i32.const 6188 - local.get $18 - call $~lib/util/string/stagedBinaryLookup - else - i32.const 0 - end - i32.eqz - if - local.get $17 - local.set $15 - local.get $15 - i32.const 127370 - i32.lt_u - if (result i32) - i32.const 9196 - local.get $15 - call $~lib/util/string/stagedBinaryLookup - else - i32.const 0 - end - if - i32.const 1 - local.set $11 - else - i32.const 0 - br $~lib/util/string/isFinalSigma|inlined.0 - end - end - local.get $12 - local.get $17 - i32.const 65536 - i32.ge_s - i32.const 1 - i32.add - i32.sub - local.set $12 - br $while-continue|1 - end - end - local.get $11 - i32.eqz - if - i32.const 0 - br $~lib/util/string/isFinalSigma|inlined.0 - end - local.get $9 - i32.const 1 - i32.add - local.set $12 - local.get $12 - i32.const 30 - i32.add - local.tee $16 - local.get $8 - local.tee $14 - local.get $16 - local.get $14 - i32.lt_s - select - local.set $16 - loop $while-continue|2 - local.get $12 - local.get $16 - i32.lt_s - local.set $14 - local.get $14 - if - local.get $10 - local.get $12 - i32.const 1 - i32.shl - i32.add - i32.load16_u - local.set $15 - local.get $15 - i32.const 64512 - i32.and - i32.const 55296 - i32.eq - local.get $12 - i32.const 1 - i32.add - local.get $8 - i32.ne - i32.and - if - local.get $10 - local.get $12 - i32.const 1 - i32.shl - i32.add - i32.load16_u offset=2 - local.set $18 - local.get $18 - i32.const 64512 - i32.and - i32.const 56320 - i32.eq - if - local.get $15 - i32.const 55296 - i32.sub - i32.const 10 - i32.shl - local.get $18 - i32.const 56320 - i32.sub - i32.add - i32.const 65536 - i32.add - local.set $15 - end - end - local.get $15 - local.set $18 - local.get $18 - i32.const 918000 - i32.lt_u - if (result i32) - i32.const 6188 - local.get $18 - call $~lib/util/string/stagedBinaryLookup - else - i32.const 0 - end - i32.eqz - if - local.get $15 - local.set $18 - local.get $18 - i32.const 127370 - i32.lt_u - if (result i32) - i32.const 9196 - local.get $18 - call $~lib/util/string/stagedBinaryLookup - else - i32.const 0 - end - i32.eqz - br $~lib/util/string/isFinalSigma|inlined.0 - end - local.get $12 - local.get $15 - i32.const 65536 - i32.ge_u - i32.const 1 - i32.add - i32.add - local.set $12 - br $while-continue|2 - end - end - i32.const 1 - end - else - i32.const 0 - end - if - i32.const 962 - local.set $7 - end - local.get $2 - local.get $3 - i32.const 1 - i32.shl - i32.add - local.get $7 - i32.store16 - else - local.get $6 - i32.const 9398 - i32.sub - i32.const 9423 - i32.const 9398 - i32.sub - i32.le_u - if - local.get $2 - local.get $3 - i32.const 1 - i32.shl - i32.add - local.get $6 - i32.const 26 - i32.add - i32.store16 - else - local.get $6 - i32.const 0 - call $~lib/util/casemap/casemap - i32.const 2097151 - i32.and - local.set $7 - local.get $7 - i32.const 65536 - i32.lt_s - if - local.get $2 - local.get $3 - i32.const 1 - i32.shl - i32.add - local.get $7 - i32.store16 - else - local.get $7 - i32.const 65536 - i32.sub - local.set $7 - local.get $7 - i32.const 10 - i32.shr_u - i32.const 55296 - i32.or - local.set $16 - local.get $7 - i32.const 1023 - i32.and - i32.const 56320 - i32.or - local.set $13 - local.get $2 - local.get $3 - i32.const 1 - i32.shl - i32.add - local.get $16 - local.get $13 - i32.const 16 - i32.shl - i32.or - i32.store - local.get $3 - i32.const 1 - i32.add - local.set $3 - end - end - end - end - end - end - local.get $4 - i32.const 1 - i32.add - local.set $4 - local.get $3 - i32.const 1 - i32.add - local.set $3 - br $for-loop|0 - end - end - local.get $2 - local.get $3 - i32.const 1 - i32.shl - call $~lib/rt/itcms/__renew - local.set $19 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $19 - ) - (func $~lib/string/String#codePointAt (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 - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - local.get $0 - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - local.get $5 - call $~lib/string/String#get:length - local.set $2 - local.get $1 - local.get $2 - i32.ge_u - if - i32.const -1 - local.set $5 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $5 - return - end - local.get $0 - local.get $1 - i32.const 1 - i32.shl - i32.add - i32.load16_u - local.set $3 - local.get $3 - i32.const 64512 - i32.and - i32.const 55296 - i32.ne - if (result i32) - i32.const 1 - else - local.get $1 - i32.const 1 - i32.add - local.get $2 - i32.eq - end - if - local.get $3 - local.set $5 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $5 - return - end - local.get $0 - local.get $1 - i32.const 1 - i32.shl - i32.add - i32.load16_u offset=2 - local.set $4 - local.get $4 - i32.const 64512 - i32.and - i32.const 56320 - i32.ne - if - local.get $3 - local.set $5 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $5 - return - end - local.get $3 - i32.const 55296 - i32.sub - i32.const 10 - i32.shl - local.get $4 - i32.const 56320 - i32.sub - i32.add - i32.const 65536 - i32.add - local.set $5 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $5 - ) - (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) - 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 $1 - i32.const 0 - i32.eq - if - global.get $~lib/memory/__stack_pointer - i32.const 19760 - local.tee $1 - i32.store - end - local.get $0 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - call $~lib/string/String#get:length - i32.const 1 - i32.shl - local.set $2 - local.get $1 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - call $~lib/string/String#get:length - i32.const 1 - i32.shl - local.set $3 - local.get $2 - local.get $3 - i32.add - local.set $4 - local.get $4 - i32.const 0 - i32.eq - if - i32.const 32 - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - return - end - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $5 - i32.store offset=8 - local.get $5 - local.get $0 - local.get $2 - call $~lib/memory/memory.copy - local.get $5 - local.get $2 - i32.add - local.get $1 - local.get $3 - call $~lib/memory/memory.copy - local.get $5 - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - ) - (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 - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - local.get $0 - i32.const 19760 - local.get $0 - i32.const 0 - i32.ne - select - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $2 - local.get $1 - 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 - ) - (func $start:std/string-casemapping - (local $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i64) - (local $6 i64) - (local $7 i64) - (local $8 i64) - (local $9 i64) - (local $10 i64) - (local $11 i32) - global.get $~lib/memory/__stack_pointer - i32.const 28 - 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 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=16 + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=16 global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=24 @@ -8487,40 +7717,20 @@ i32.store offset=16 global.get $~lib/memory/__stack_pointer local.get $2 - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store - local.get $11 call $~lib/string/String#toLowerCase local.tee $3 i32.store offset=20 global.get $~lib/memory/__stack_pointer local.get $2 - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store - local.get $11 call $~lib/string/String#toUpperCase local.tee $4 i32.store offset=24 local.get $3 - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store - local.get $11 i32.const 0 call $~lib/string/String#codePointAt i64.extend_i32_s local.set $7 local.get $3 - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store - local.get $11 i32.const 1 call $~lib/string/String#codePointAt i64.extend_i32_s @@ -8536,11 +7746,6 @@ local.set $7 end local.get $3 - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store - local.get $11 i32.const 2 call $~lib/string/String#codePointAt i64.extend_i32_s @@ -8556,21 +7761,11 @@ local.set $7 end local.get $4 - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store - local.get $11 i32.const 0 call $~lib/string/String#codePointAt i64.extend_i32_s local.set $8 local.get $4 - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store - local.get $11 i32.const 1 call $~lib/string/String#codePointAt i64.extend_i32_s @@ -8586,11 +7781,6 @@ local.set $8 end local.get $4 - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store - local.get $11 i32.const 2 call $~lib/string/String#codePointAt i64.extend_i32_s @@ -8821,17 +8011,594 @@ f64.const 0 call $~lib/builtins/trace end - local.get $0 + 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 28 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (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) + (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) + (local $15 i32) + (local $16 i32) + (local $17 i32) + (local $18 i32) + (local $19 i32) + 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 $0 + call $~lib/string/String#get:length + local.set $1 + local.get $1 + i32.eqz + if + local.get $0 + local.set $19 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $19 + return + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.const 2 + i32.mul + i32.const 2 + i32.mul + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $2 + i32.store + i32.const 0 + local.set $3 + i32.const 0 + local.set $4 + loop $for-loop|0 + local.get $4 + local.get $1 + i32.lt_u + local.set $5 + local.get $5 + if + block $for-continue|0 + local.get $0 + local.get $4 + i32.const 1 + i32.shl + i32.add + i32.load16_u + local.set $6 + local.get $6 + local.set $7 + local.get $7 + i32.const 7 + i32.shr_u + i32.eqz + if + local.get $2 + local.get $3 + i32.const 1 + i32.shl + i32.add + block $~lib/util/string/toLower8|inlined.0 (result i32) + local.get $6 + local.set $7 + i32.const 0 + i32.const 0 + i32.gt_s + drop + i32.const 6060 + local.get $7 + i32.add + i32.load8_u + br $~lib/util/string/toLower8|inlined.0 + end + i32.store16 + else + local.get $6 + i32.const 55295 + i32.sub + i32.const 56320 + i32.const 55295 + i32.sub + i32.lt_u + if (result i32) + local.get $4 + local.get $1 + i32.const 1 + i32.sub + i32.lt_u + else + i32.const 0 + end + if + local.get $0 + local.get $4 + i32.const 1 + i32.shl + i32.add + i32.load16_u offset=2 + local.set $7 + local.get $7 + i32.const 56319 + i32.sub + i32.const 57344 + i32.const 56319 + i32.sub + i32.lt_u + if + local.get $6 + local.set $8 + local.get $6 + i32.const 1023 + i32.and + i32.const 10 + i32.shl + local.get $7 + i32.const 1023 + i32.and + i32.or + i32.const 65536 + i32.add + local.set $6 + local.get $4 + i32.const 1 + i32.add + local.set $4 + local.get $6 + i32.const 131072 + i32.ge_u + if + local.get $2 + local.get $3 + i32.const 1 + i32.shl + i32.add + local.get $8 + local.get $7 + i32.const 16 + i32.shl + i32.or + i32.store + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $for-continue|0 + end + end + end + local.get $6 + i32.const 304 + i32.eq + if + local.get $2 + local.get $3 + i32.const 1 + i32.shl + i32.add + i32.const 775 + i32.const 16 + i32.shl + i32.const 105 + i32.or + i32.store + local.get $3 + i32.const 1 + i32.add + local.set $3 + else + local.get $6 + i32.const 931 + i32.eq + if + i32.const 963 + local.set $7 + local.get $1 + i32.const 1 + i32.gt_u + if (result i32) + block $~lib/util/string/isFinalSigma|inlined.0 (result i32) + local.get $0 + local.set $10 + local.get $4 + local.set $9 + local.get $1 + local.set $8 + i32.const 0 + local.set $11 + local.get $9 + local.set $12 + i32.const 0 + local.tee $13 + local.get $12 + i32.const 30 + i32.sub + local.tee $14 + local.get $13 + local.get $14 + i32.gt_s + select + local.set $13 + loop $while-continue|1 + local.get $12 + local.get $13 + i32.gt_s + local.set $14 + local.get $14 + if + block $~lib/util/string/codePointBefore|inlined.0 (result i32) + local.get $10 + local.set $16 + local.get $12 + local.set $15 + local.get $15 + i32.const 0 + i32.le_s + if + i32.const -1 + br $~lib/util/string/codePointBefore|inlined.0 + end + local.get $16 + local.get $15 + i32.const 1 + i32.sub + i32.const 1 + i32.shl + i32.add + i32.load16_u + local.set $17 + local.get $17 + i32.const 64512 + i32.and + i32.const 56320 + i32.eq + local.get $15 + i32.const 2 + i32.sub + i32.const 0 + i32.ge_s + i32.and + if + local.get $16 + local.get $15 + i32.const 2 + i32.sub + i32.const 1 + i32.shl + i32.add + i32.load16_u + local.set $18 + local.get $18 + i32.const 64512 + i32.and + i32.const 55296 + i32.eq + if + local.get $18 + i32.const 1023 + i32.and + i32.const 10 + i32.shl + local.get $17 + i32.const 1023 + i32.and + i32.add + i32.const 65536 + i32.add + br $~lib/util/string/codePointBefore|inlined.0 + end + end + local.get $17 + i32.const 63488 + i32.and + i32.const 55296 + i32.eq + if (result i32) + i32.const 65533 + else + local.get $17 + end + end + local.set $17 + local.get $17 + local.set $18 + local.get $18 + i32.const 918000 + i32.lt_u + if (result i32) + i32.const 6188 + local.get $18 + call $~lib/util/string/stagedBinaryLookup + else + i32.const 0 + end + i32.eqz + if + local.get $17 + local.set $15 + local.get $15 + i32.const 127370 + i32.lt_u + if (result i32) + i32.const 9196 + local.get $15 + call $~lib/util/string/stagedBinaryLookup + else + i32.const 0 + end + if + i32.const 1 + local.set $11 + else + i32.const 0 + br $~lib/util/string/isFinalSigma|inlined.0 + end + end + local.get $12 + local.get $17 + i32.const 65536 + i32.ge_s + i32.const 1 + i32.add + i32.sub + local.set $12 + br $while-continue|1 + end + end + local.get $11 + i32.eqz + if + i32.const 0 + br $~lib/util/string/isFinalSigma|inlined.0 + end + local.get $9 + i32.const 1 + i32.add + local.set $12 + local.get $12 + i32.const 30 + i32.add + local.tee $16 + local.get $8 + local.tee $14 + local.get $16 + local.get $14 + i32.lt_s + select + local.set $16 + loop $while-continue|2 + local.get $12 + local.get $16 + i32.lt_s + local.set $14 + local.get $14 + if + local.get $10 + local.get $12 + i32.const 1 + i32.shl + i32.add + i32.load16_u + local.set $15 + local.get $15 + i32.const 64512 + i32.and + i32.const 55296 + i32.eq + local.get $12 + i32.const 1 + i32.add + local.get $8 + i32.ne + i32.and + if + local.get $10 + local.get $12 + i32.const 1 + i32.shl + i32.add + i32.load16_u offset=2 + local.set $18 + local.get $18 + i32.const 64512 + i32.and + i32.const 56320 + i32.eq + if + local.get $15 + i32.const 55296 + i32.sub + i32.const 10 + i32.shl + local.get $18 + i32.const 56320 + i32.sub + i32.add + i32.const 65536 + i32.add + local.set $15 + end + end + local.get $15 + local.set $18 + local.get $18 + i32.const 918000 + i32.lt_u + if (result i32) + i32.const 6188 + local.get $18 + call $~lib/util/string/stagedBinaryLookup + else + i32.const 0 + end + i32.eqz + if + local.get $15 + local.set $18 + local.get $18 + i32.const 127370 + i32.lt_u + if (result i32) + i32.const 9196 + local.get $18 + call $~lib/util/string/stagedBinaryLookup + else + i32.const 0 + end + i32.eqz + br $~lib/util/string/isFinalSigma|inlined.0 + end + local.get $12 + local.get $15 + i32.const 65536 + i32.ge_u + i32.const 1 + i32.add + i32.add + local.set $12 + br $while-continue|2 + end + end + i32.const 1 + end + else + i32.const 0 + end + if + i32.const 962 + local.set $7 + end + local.get $2 + local.get $3 + i32.const 1 + i32.shl + i32.add + local.get $7 + i32.store16 + else + local.get $6 + i32.const 9398 + i32.sub + i32.const 9423 + i32.const 9398 + i32.sub + i32.le_u + if + local.get $2 + local.get $3 + i32.const 1 + i32.shl + i32.add + local.get $6 + i32.const 26 + i32.add + i32.store16 + else + local.get $6 + i32.const 0 + call $~lib/util/casemap/casemap + i32.const 2097151 + i32.and + local.set $7 + local.get $7 + i32.const 65536 + i32.lt_s + if + local.get $2 + local.get $3 + i32.const 1 + i32.shl + i32.add + local.get $7 + i32.store16 + else + local.get $7 + i32.const 65536 + i32.sub + local.set $7 + local.get $7 + i32.const 10 + i32.shr_u + i32.const 55296 + i32.or + local.set $16 + local.get $7 + i32.const 1023 + i32.and + i32.const 56320 + i32.or + local.set $13 + local.get $2 + local.get $3 + i32.const 1 + i32.shl + i32.add + local.get $16 + local.get $13 + i32.const 16 + i32.shl + i32.or + i32.store + local.get $3 + i32.const 1 + i32.add + local.set $3 + end + end + end + end + end + end + local.get $4 i32.const 1 i32.add - local.set $0 + local.set $4 + local.get $3 + i32.const 1 + i32.add + local.set $3 br $for-loop|0 end end + local.get $2 + local.get $3 + i32.const 1 + i32.shl + call $~lib/rt/itcms/__renew + local.set $19 global.get $~lib/memory/__stack_pointer - i32.const 28 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer + local.get $19 ) (func $~lib/string/String.fromCodePoint (param $0 i32) (result i32) (local $1 i32) @@ -9115,4 +8882,78 @@ global.set $~lib/memory/__stack_pointer local.get $10 ) + (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) + 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 $1 + i32.const 0 + i32.eq + if + global.get $~lib/memory/__stack_pointer + i32.const 19760 + local.tee $1 + i32.store + end + local.get $0 + call $~lib/string/String#get:length + i32.const 1 + i32.shl + local.set $2 + local.get $1 + call $~lib/string/String#get:length + i32.const 1 + i32.shl + local.set $3 + local.get $2 + local.get $3 + i32.add + local.set $4 + local.get $4 + i32.const 0 + i32.eq + if + i32.const 32 + 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 $4 + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $5 + i32.store offset=4 + local.get $5 + local.get $0 + local.get $2 + call $~lib/memory/memory.copy + local.get $5 + local.get $2 + i32.add + local.get $1 + local.get $3 + call $~lib/memory/memory.copy + local.get $5 + local.set $6 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $6 + ) ) diff --git a/tests/compiler/std/string-encoding.optimized.wat b/tests/compiler/std/string-encoding.optimized.wat index d8955f4b62..b252794c05 100644 --- a/tests/compiler/std/string-encoding.optimized.wat +++ b/tests/compiler/std/string-encoding.optimized.wat @@ -4,8 +4,8 @@ (type $i32_i32_=>_none (func (param i32 i32))) (type $i32_=>_none (func (param i32))) (type $i32_i32_i32_=>_none (func (param i32 i32 i32))) - (type $i32_=>_i32 (func (param i32) (result i32))) (type $i32_i32_i32_i32_=>_none (func (param i32 i32 i32 i32))) + (type $i32_=>_i32 (func (param i32) (result i32))) (type $none_=>_i32 (func (result i32))) (type $i32_i32_i32_=>_i32 (func (param i32 i32 i32) (result i32))) (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) @@ -1921,6 +1921,122 @@ 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.get $0 + local.get $1 + i32.eq + if + i32.const 1 + return + end + local.get $1 + i32.eqz + i32.const 1 + local.get $0 + select + if + i32.const 0 + return + end + 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.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u + i32.ne + if + i32.const 0 + return + end + block $__inlined_func$~lib/util/string/compareImpl (result i32) + local.get $0 + local.tee $3 + i32.const 7 + i32.and + local.get $1 + i32.const 7 + i32.and + i32.or + i32.eqz + i32.const 0 + local.get $2 + local.tee $0 + i32.const 4 + i32.ge_u + select + if + loop $do-continue|0 + local.get $3 + i64.load + local.get $1 + i64.load + i64.eq + if + local.get $3 + i32.const 8 + i32.add + local.set $3 + 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-continue|0 + end + end + end + loop $while-continue|1 + local.get $0 + local.tee $2 + i32.const 1 + i32.sub + local.set $0 + local.get $2 + if + local.get $3 + i32.load16_u + local.tee $2 + local.get $1 + i32.load16_u + local.tee $4 + i32.ne + if + local.get $2 + local.get $4 + i32.sub + br $__inlined_func$~lib/util/string/compareImpl + end + local.get $3 + i32.const 2 + i32.add + local.set $3 + local.get $1 + i32.const 2 + i32.add + local.set $1 + br $while-continue|1 + end + end + i32.const 0 + end + i32.eqz + ) (func $~lib/string/String.UTF8.byteLength (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) @@ -2186,6 +2302,15 @@ i32.store8 end ) + (func $~lib/string/String.UTF8.decode (param $0 i32) (param $1 i32) (result i32) + local.get $0 + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 + local.get $1 + call $~lib/string/String.UTF8.decodeUnsafe + ) (func $~lib/rt/__visit_members (param $0 i32) block $invalid block $~lib/arraybuffer/ArrayBufferView @@ -2260,7 +2385,7 @@ global.set $~lib/rt/itcms/fromSpace call $std/string-encoding/testUTF16Encode global.get $~lib/memory/__stack_pointer - i32.const 16 + i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check @@ -2268,8 +2393,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 i32.const 1056 i32.store @@ -2278,11 +2403,12 @@ 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 + i32.const 20 + i32.sub + i32.load offset=16 + call $~lib/string/String.UTF16.decodeUnsafe local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 @@ -2303,7 +2429,7 @@ unreachable end global.get $~lib/memory/__stack_pointer - i32.const 16 + i32.const 12 i32.add global.set $~lib/memory/__stack_pointer call $std/string-encoding/testUTF16DecodeUnsafe @@ -2354,7 +2480,7 @@ call $std/string-encoding/testUTF8Encode call $std/string-encoding/testUTF8EncodeNullTerminated global.get $~lib/memory/__stack_pointer - i32.const 16 + i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check @@ -2362,8 +2488,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 i32.const 1056 i32.store @@ -2373,9 +2499,6 @@ call $~lib/string/String.UTF8.encode 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 @@ -2399,7 +2522,7 @@ unreachable end global.get $~lib/memory/__stack_pointer - i32.const 16 + i32.const 12 i32.add global.set $~lib/memory/__stack_pointer call $std/string-encoding/testUTF8DecodeNullTerminated @@ -2465,48 +2588,6 @@ unreachable end ) - (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 - call $~stack_check - 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 0 - 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 1 - i32.shr_u - i32.const 1 - i32.shl - call $~lib/memory/memory.copy - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $1 - ) (func $std/string-encoding/testUTF16Encode (local $0 i32) global.get $~lib/memory/__stack_pointer @@ -2525,9 +2606,6 @@ 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 @@ -2687,225 +2765,56 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/string/String.UTF16.decode (param $0 i32) (result i32) + (func $std/string-encoding/testUTF16DecodeUnsafe + (local $0 i32) + (local $1 i32) + (local $2 i32) global.get $~lib/memory/__stack_pointer - i32.const 4 + 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 + global.get $~lib/memory/__stack_pointer + i32.const 1056 i32.store global.get $~lib/memory/__stack_pointer - local.get $0 + 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 - local.get $0 - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 + 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 - 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) - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check + local.get $0 + i32.store global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store + i32.const 1552 + i32.store offset=8 local.get $0 - local.get $1 - i32.eq + i32.const 1552 + call $~lib/string/String.__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 - i32.const 1 - local.get $0 - select - 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 - block $__inlined_func$~lib/util/string/compareImpl (result i32) - local.get $0 - local.tee $3 - i32.const 7 - i32.and - local.get $1 - i32.const 7 - i32.and - i32.or - i32.eqz - i32.const 0 - local.get $2 - i32.const 4 - i32.ge_u - select - if - loop $do-continue|0 - local.get $3 - i64.load - local.get $1 - i64.load - i64.eq - if - local.get $3 - i32.const 8 - i32.add - local.set $3 - 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-continue|0 - end - end - end - loop $while-continue|1 - local.get $2 - local.tee $0 - i32.const 1 - i32.sub - local.set $2 - local.get $0 - if - local.get $3 - i32.load16_u - local.tee $4 - local.get $1 - i32.load16_u - local.tee $0 - i32.ne - if - local.get $4 - local.get $0 - i32.sub - br $__inlined_func$~lib/util/string/compareImpl - end - local.get $3 - i32.const 2 - i32.add - local.set $3 - local.get $1 - i32.const 2 - i32.add - local.set $1 - br $while-continue|1 - end - end - i32.const 0 - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - 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 $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 - 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 - 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 - 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 42 - i32.const 3 - call $~lib/builtins/abort - unreachable + i32.const 0 + i32.const 1088 + i32.const 42 + i32.const 3 + call $~lib/builtins/abort + unreachable end local.get $1 local.get $2 @@ -3052,46 +2961,6 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/string/String.UTF8.encode (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 - call $~stack_check - 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 0 - 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 $0 - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 1 - i32.shr_u - local.get $2 - local.get $1 - call $~lib/string/String.UTF8.encodeUnsafe - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $2 - ) (func $std/string-encoding/testUTF8Encode (local $0 i32) global.get $~lib/memory/__stack_pointer @@ -3111,9 +2980,6 @@ call $~lib/string/String.UTF8.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 @@ -3272,9 +3138,6 @@ call $~lib/string/String.UTF8.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 @@ -3424,34 +3287,10 @@ 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 - call $~stack_check - global.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/testUTF8DecodeNullTerminated (local $0 i32) global.get $~lib/memory/__stack_pointer - i32.const 32 + i32.const 28 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check @@ -3465,8 +3304,8 @@ i64.const 0 i64.store offset=16 global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=24 + i32.const 0 + i32.store offset=24 global.get $~lib/memory/__stack_pointer i32.const 1056 i32.store @@ -3476,9 +3315,6 @@ call $~lib/string/String.UTF8.encode 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 @@ -3503,10 +3339,7 @@ end global.get $~lib/memory/__stack_pointer i32.const 1760 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - i32.const 1760 - i32.store + i32.store offset=12 i32.const 1760 i32.const 1 call $~lib/string/String.UTF8.byteLength @@ -3522,16 +3355,10 @@ end global.get $~lib/memory/__stack_pointer i32.const 1760 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1760 i32.const 1 call $~lib/string/String.UTF8.encode local.tee $0 - i32.store offset=20 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store + i32.store offset=16 local.get $0 i32.const 20 i32.sub @@ -3548,10 +3375,7 @@ end global.get $~lib/memory/__stack_pointer i32.const 1808 - i32.store offset=24 - global.get $~lib/memory/__stack_pointer - i32.const 1808 - i32.store + i32.store offset=20 i32.const 1808 i32.const 1 call $~lib/string/String.UTF8.byteLength @@ -3565,9 +3389,6 @@ 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 @@ -3575,9 +3396,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1808 - i32.store offset=8 local.get $0 i32.const 1808 call $~lib/string/String.__eq @@ -3592,16 +3410,10 @@ end global.get $~lib/memory/__stack_pointer i32.const 1760 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1760 i32.const 0 call $~lib/string/String.UTF8.encode local.tee $0 - i32.store offset=28 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=12 + i32.store offset=24 local.get $0 i32.const 1 call $~lib/string/String.UTF8.decode @@ -3609,9 +3421,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1808 - i32.store offset=8 local.get $0 i32.const 1808 call $~lib/string/String.__eq @@ -3625,7 +3434,7 @@ unreachable end global.get $~lib/memory/__stack_pointer - i32.const 32 + i32.const 28 i32.add global.set $~lib/memory/__stack_pointer ) @@ -3886,9 +3695,8 @@ ) (func $std/string-encoding/testLarge (param $0 i32) (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 call $~stack_check @@ -3896,35 +3704,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 0 - i32.store offset=16 - 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.const 0 call $~lib/string/String.UTF8.encode local.tee $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=12 + i32.store local.get $1 i32.const 0 call $~lib/string/String.UTF8.decode - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 - local.tee $1 - i32.store offset=8 - local.get $2 + local.get $1 + i32.store offset=4 + local.get $1 local.get $0 call $~lib/string/String.__eq i32.eqz @@ -3937,27 +3732,22 @@ unreachable end global.get $~lib/memory/__stack_pointer + local.get $0 + call $~lib/string/String.UTF16.encode + local.tee $1 + i32.store offset=8 local.get $1 - i32.store - global.get $~lib/memory/__stack_pointer local.get $1 - call $~lib/string/String.UTF16.encode - local.tee $0 - i32.store offset=16 - 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 + i32.const 20 + i32.sub + i32.load offset=16 + call $~lib/string/String.UTF16.decodeUnsafe + 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 $1 + local.get $0 call $~lib/string/String.__eq i32.eqz if @@ -3969,9 +3759,45 @@ unreachable end global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/string/String.UTF16.encode (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 + call $~stack_check + 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 + i32.load offset=16 + i32.const 0 + call $~lib/rt/itcms/__new + local.tee $1 + i32.store + local.get $1 + local.get $0 + local.get $0 i32.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u + i32.const 1 + i32.shl + call $~lib/memory/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.UTF16.decodeUnsafe (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -4002,6 +3828,40 @@ global.set $~lib/memory/__stack_pointer local.get $1 ) + (func $~lib/string/String.UTF8.encode (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 + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + local.get $1 + call $~lib/string/String.UTF8.byteLength + i32.const 0 + call $~lib/rt/itcms/__new + local.tee $2 + i32.store + local.get $0 + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u + local.get $2 + local.get $1 + call $~lib/string/String.UTF8.encodeUnsafe + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + ) (func $~lib/string/String.UTF8.decodeUnsafe (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) diff --git a/tests/compiler/std/string-encoding.untouched.wat b/tests/compiler/std/string-encoding.untouched.wat index 12b7c7d7a4..e90e20c17e 100644 --- a/tests/compiler/std/string-encoding.untouched.wat +++ b/tests/compiler/std/string-encoding.untouched.wat @@ -3652,6 +3652,12 @@ i32.sub i32.load offset=16 ) + (func $~lib/string/String.UTF16.decode (param $0 i32) (result i32) + local.get $0 + local.get $0 + call $~lib/arraybuffer/ArrayBuffer#get:byteLength + call $~lib/string/String.UTF16.decodeUnsafe + ) (func $~lib/util/string/compareImpl (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) (result i32) (local $5 i32) (local $6 i32) @@ -3759,6 +3765,48 @@ end i32.const 0 ) + (func $~lib/string/String.__eq (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + local.get $0 + local.get $1 + i32.eq + if + i32.const 1 + return + end + local.get $0 + i32.const 0 + i32.eq + if (result i32) + i32.const 1 + else + local.get $1 + i32.const 0 + i32.eq + end + if + i32.const 0 + return + end + local.get $0 + call $~lib/string/String#get:length + local.set $2 + local.get $2 + local.get $1 + call $~lib/string/String#get:length + i32.ne + if + i32.const 0 + return + end + local.get $0 + i32.const 0 + local.get $1 + i32.const 0 + local.get $2 + call $~lib/util/string/compareImpl + i32.eqz + ) (func $~lib/string/String.UTF8.byteLength (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) @@ -4124,6 +4172,13 @@ call $~lib/memory/memory.copy local.get $3 ) + (func $~lib/string/String.UTF8.decode (param $0 i32) (param $1 i32) (result i32) + local.get $0 + local.get $0 + call $~lib/arraybuffer/ArrayBuffer#get:byteLength + local.get $1 + call $~lib/string/String.UTF8.decodeUnsafe + ) (func $~lib/rt/itcms/__collect (local $0 i32) i32.const 0 @@ -4277,48 +4332,6 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/string/String.UTF16.encode (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 - call $~stack_check - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $2 - call $~lib/string/String.UTF16.byteLength - i32.const 0 - call $~lib/rt/itcms/__new - local.tee $1 - i32.store offset=4 - local.get $0 - local.get $0 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $2 - call $~lib/string/String#get:length - local.get $1 - call $~lib/string/String.UTF16.encodeUnsafe - drop - local.get $1 - local.set $2 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $2 - ) (func $std/string-encoding/testUTF16Encode (local $0 i32) (local $1 i32) @@ -4344,11 +4357,6 @@ local.get $0 local.set $1 local.get $0 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $2 call $~lib/arraybuffer/ArrayBuffer#get:byteLength i32.const 12 i32.eq @@ -4522,132 +4530,11 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (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 - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - local.get $0 - local.get $0 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $1 - call $~lib/arraybuffer/ArrayBuffer#get:byteLength - call $~lib/string/String.UTF16.decodeUnsafe - 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/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 - call $~stack_check - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - local.get $0 - local.get $1 - 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 $0 - i32.const 0 - i32.eq - if (result i32) - i32.const 1 - else - local.get $1 - 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 $0 - 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 $2 - local.get $2 - local.get $1 - 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 $0 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store - local.get $3 - i32.const 0 - local.get $1 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - i32.const 0 - local.get $2 - 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 - ) (func $std/string-encoding/testUTF16Decode (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 @@ -4655,8 +4542,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 global.get $std/string-encoding/str local.set $1 @@ -4668,11 +4555,6 @@ local.tee $0 i32.store offset=4 local.get $0 - local.set $1 - 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 @@ -4696,7 +4578,7 @@ unreachable end global.get $~lib/memory/__stack_pointer - i32.const 16 + i32.const 12 i32.add global.set $~lib/memory/__stack_pointer ) @@ -4970,50 +4852,6 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/string/String.UTF8.encode (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 - call $~stack_check - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store - local.get $3 - local.get $1 - call $~lib/string/String.UTF8.byteLength - i32.const 0 - call $~lib/rt/itcms/__new - local.tee $2 - i32.store offset=4 - local.get $0 - local.get $0 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store - local.get $3 - call $~lib/string/String#get:length - local.get $2 - local.get $1 - call $~lib/string/String.UTF8.encodeUnsafe - drop - local.get $2 - local.set $3 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $3 - ) (func $std/string-encoding/testUTF8Encode (local $0 i32) (local $1 i32) @@ -5040,11 +4878,6 @@ local.get $0 local.set $1 local.get $0 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $2 call $~lib/arraybuffer/ArrayBuffer#get:byteLength i32.const 10 i32.eq @@ -5218,11 +5051,6 @@ local.get $0 local.set $1 local.get $0 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $2 call $~lib/arraybuffer/ArrayBuffer#get:byteLength i32.const 11 i32.eq @@ -5383,38 +5211,11 @@ i32.add 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 - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - local.get $0 - local.get $0 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $2 - call $~lib/arraybuffer/ArrayBuffer#get:byteLength - local.get $1 - call $~lib/string/String.UTF8.decodeUnsafe - 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/string-encoding/testUTF8Decode (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 @@ -5422,8 +5223,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 global.get $std/string-encoding/str local.set $1 @@ -5436,11 +5237,6 @@ local.tee $0 i32.store offset=4 local.get $0 - local.set $1 - 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 @@ -5465,7 +5261,7 @@ unreachable end global.get $~lib/memory/__stack_pointer - i32.const 16 + i32.const 12 i32.add global.set $~lib/memory/__stack_pointer ) @@ -5477,7 +5273,7 @@ (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 @@ -5491,8 +5287,8 @@ i64.const 0 i64.store offset=16 global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=24 + i32.const 0 + i32.store offset=24 global.get $~lib/memory/__stack_pointer global.get $std/string-encoding/str local.set $5 @@ -5505,11 +5301,6 @@ local.tee $0 i32.store offset=4 local.get $0 - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=12 - local.get $5 i32.const 1 call $~lib/string/String.UTF8.decode local.set $5 @@ -5536,13 +5327,8 @@ global.get $~lib/memory/__stack_pointer i32.const 736 local.tee $1 - i32.store offset=16 + i32.store offset=12 local.get $1 - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - local.get $5 i32.const 1 call $~lib/string/String.UTF8.byteLength i32.const 4 @@ -5558,21 +5344,11 @@ end global.get $~lib/memory/__stack_pointer local.get $1 - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - local.get $5 i32.const 1 call $~lib/string/String.UTF8.encode local.tee $2 - i32.store offset=20 + i32.store offset=16 local.get $2 - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - local.get $5 call $~lib/arraybuffer/ArrayBuffer#get:byteLength i32.const 4 i32.eq @@ -5588,13 +5364,8 @@ global.get $~lib/memory/__stack_pointer i32.const 784 local.tee $3 - i32.store offset=24 + i32.store offset=20 local.get $3 - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - local.get $5 i32.const 1 call $~lib/string/String.UTF8.byteLength i32.const 4 @@ -5609,11 +5380,6 @@ unreachable end local.get $2 - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=12 - local.get $5 i32.const 1 call $~lib/string/String.UTF8.decode local.set $5 @@ -5622,11 +5388,6 @@ i32.store local.get $5 local.get $3 - 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 @@ -5639,21 +5400,11 @@ end global.get $~lib/memory/__stack_pointer local.get $1 - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - local.get $5 i32.const 0 call $~lib/string/String.UTF8.encode local.tee $4 - i32.store offset=28 + i32.store offset=24 local.get $4 - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=12 - local.get $5 i32.const 1 call $~lib/string/String.UTF8.decode local.set $5 @@ -5662,11 +5413,6 @@ i32.store local.get $5 local.get $3 - 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 @@ -5678,7 +5424,7 @@ unreachable end global.get $~lib/memory/__stack_pointer - i32.const 32 + i32.const 28 i32.add global.set $~lib/memory/__stack_pointer ) @@ -5967,7 +5713,7 @@ (local $2 i32) (local $3 i32) global.get $~lib/memory/__stack_pointer - i32.const 20 + i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check @@ -5975,41 +5721,23 @@ 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 0 - i32.store offset=16 + i32.store offset=8 global.get $~lib/memory/__stack_pointer local.get $0 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store - local.get $3 i32.const 0 call $~lib/string/String.UTF8.encode local.tee $1 - i32.store offset=4 + i32.store local.get $1 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=12 - local.get $3 i32.const 0 call $~lib/string/String.UTF8.decode local.set $3 global.get $~lib/memory/__stack_pointer local.get $3 - i32.store + i32.store offset=4 local.get $3 local.get $0 - 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 @@ -6022,32 +5750,17 @@ end global.get $~lib/memory/__stack_pointer local.get $0 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store - local.get $3 call $~lib/string/String.UTF16.encode local.tee $2 - i32.store offset=16 + i32.store offset=8 local.get $2 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=12 - local.get $3 call $~lib/string/String.UTF16.decode local.set $3 global.get $~lib/memory/__stack_pointer local.get $3 - i32.store + i32.store offset=4 local.get $3 local.get $0 - 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 @@ -6059,7 +5772,7 @@ unreachable end global.get $~lib/memory/__stack_pointer - i32.const 20 + i32.const 12 i32.add global.set $~lib/memory/__stack_pointer ) @@ -6112,6 +5825,38 @@ i32.add global.set $~lib/memory/__stack_pointer ) + (func $~lib/string/String.UTF16.encode (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 + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + call $~lib/string/String.UTF16.byteLength + i32.const 0 + call $~lib/rt/itcms/__new + local.tee $1 + i32.store + local.get $0 + local.get $0 + call $~lib/string/String#get:length + local.get $1 + call $~lib/string/String.UTF16.encodeUnsafe + drop + 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 $2 + ) (func $~lib/string/String.UTF16.decodeUnsafe (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) @@ -6146,6 +5891,40 @@ global.set $~lib/memory/__stack_pointer local.get $3 ) + (func $~lib/string/String.UTF8.encode (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 + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + local.get $1 + call $~lib/string/String.UTF8.byteLength + i32.const 0 + call $~lib/rt/itcms/__new + local.tee $2 + i32.store + local.get $0 + local.get $0 + call $~lib/string/String#get:length + local.get $2 + local.get $1 + call $~lib/string/String.UTF8.encodeUnsafe + drop + local.get $2 + 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/string/String.UTF8.decodeUnsafe (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) diff --git a/tests/compiler/std/string.optimized.wat b/tests/compiler/std/string.optimized.wat index a635d06960..9f4408a6b4 100644 --- a/tests/compiler/std/string.optimized.wat +++ b/tests/compiler/std/string.optimized.wat @@ -11,13 +11,13 @@ (type $i32_i32_i32_i32_=>_none (func (param i32 i32 i32 i32))) (type $i32_i64_i32_=>_none (func (param i32 i64 i32))) (type $f64_=>_i32 (func (param f64) (result i32))) - (type $i32_=>_f64 (func (param i32) (result f64))) - (type $i32_i32_=>_f64 (func (param i32 i32) (result f64))) (type $i32_i64_i32_i32_=>_none (func (param i32 i64 i32 i32))) (type $i64_=>_i32 (func (param i64) (result i32))) (type $i32_i32_i32_i32_=>_i32 (func (param i32 i32 i32 i32) (result i32))) (type $i64_i32_i64_i32_i64_i32_=>_i32 (func (param i64 i32 i64 i32 i64 i32) (result i32))) (type $none_=>_i64 (func (result i64))) + (type $i32_=>_f64 (func (param i32) (result f64))) + (type $i32_i32_=>_f64 (func (param i32 i32) (result f64))) (type $f64_i32_=>_f64 (func (param f64 i32) (result f64))) (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) (memory $0 1) @@ -998,6 +998,49 @@ end i32.const 0 ) + (func $~lib/string/String.__eq (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + local.get $0 + local.get $1 + i32.eq + if + i32.const 1 + return + end + local.get $1 + i32.eqz + i32.const 1 + local.get $0 + select + if + i32.const 0 + return + end + 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.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u + i32.ne + if + i32.const 0 + return + end + local.get $0 + i32.const 0 + local.get $1 + local.get $2 + call $~lib/util/string/compareImpl + i32.eqz + ) (func $~lib/rt/itcms/initLazy (param $0 i32) (result i32) local.get $0 local.get $0 @@ -2696,6 +2739,60 @@ call $~lib/memory/memory.fill local.get $1 ) + (func $~lib/string/String#at (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + local.get $1 + i32.const 0 + 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.const 0 + i32.ge_s + select + i32.add + local.tee $1 + local.get $2 + i32.ge_u + if + i32.const 1264 + i32.const 1328 + i32.const 54 + i32.const 31 + call $~lib/builtins/abort + unreachable + end + i32.const 2 + i32.const 1 + 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 + local.get $2 + ) + (func $~lib/string/String.__not (param $0 i32) (result i32) + local.get $0 + if (result i32) + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u + i32.eqz + else + i32.const 1 + end + ) (func $~lib/string/String.fromCharCode@varargs (param $0 i32) (result i32) (local $1 i32) block $1of1 @@ -2715,6 +2812,74 @@ local.get $1 call $~lib/string/String.fromCharCode ) + (func $~lib/string/String#indexOf (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + local.get $1 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u + local.tee $4 + i32.eqz + if + i32.const 0 + return + end + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u + local.tee $3 + i32.eqz + if + 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 $3 + local.get $2 + local.get $3 + i32.lt_s + select + local.set $2 + local.get $3 + local.get $4 + i32.sub + local.set $3 + loop $for-loop|0 + local.get $2 + local.get $3 + i32.le_s + if + local.get $0 + local.get $2 + local.get $1 + local.get $4 + call $~lib/util/string/compareImpl + i32.eqz + if + local.get $2 + return + end + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|0 + end + end + i32.const -1 + ) (func $~lib/memory/memory.copy (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) @@ -2913,3817 +3078,1376 @@ end end ) - (func $~lib/util/string/isSpace (param $0 i32) (result i32) - local.get $0 - i32.const 5760 - i32.lt_u + (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) + local.get $1 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u + local.tee $4 + i32.eqz if local.get $0 - i32.const 128 - i32.or - i32.const 160 - i32.eq - local.get $0 - i32.const 9 + i32.const 20 i32.sub - i32.const 4 - i32.le_u - i32.or - return - end - local.get $0 - i32.const -8192 - i32.add - i32.const 10 - i32.le_u - if + i32.load offset=16 i32.const 1 + i32.shr_u return end local.get $0 - i32.const 5760 - i32.eq - local.get $0 - i32.const 8232 - i32.eq - i32.or - local.get $0 - i32.const 8233 - i32.eq - local.get $0 - i32.const 8239 - i32.eq - i32.or - i32.or - local.get $0 - i32.const 8287 - i32.eq - local.get $0 - i32.const 12288 - i32.eq - i32.or - local.get $0 - i32.const 65279 - i32.eq - i32.or - i32.or + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u + local.tee $3 + local.set $5 + local.get $3 + i32.eqz if - i32.const 1 + i32.const -1 return end + local.get $2 i32.const 0 - ) - (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 - loop $while-continue|0 - local.get $0 - if - 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 - br $while-continue|0 - 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.const 0 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) - local.get $1 - i32.const 1023 - i32.sub - local.tee $1 - i32.const 1023 - local.get $1 - i32.const 1023 - i32.lt_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) + select + local.tee $2 + local.get $5 + local.get $4 + i32.sub + local.tee $3 + local.get $2 + local.get $3 + i32.lt_s + select + local.set $2 + loop $for-loop|0 + local.get $2 + i32.const 0 + i32.ge_s + if local.get $0 - f64.const 2.004168360008973e-292 - f64.mul - local.set $0 + local.get $2 local.get $1 - i32.const 969 - i32.add - local.tee $1 - i32.const -1022 - i32.lt_s - if (result f64) - local.get $1 - i32.const 969 - i32.add - local.tee $1 - i32.const -1022 - local.get $1 - i32.const -1022 - i32.gt_s - select - local.set $1 - local.get $0 - f64.const 2.004168360008973e-292 - f64.mul - else - local.get $0 + local.get $4 + call $~lib/util/string/compareImpl + i32.eqz + if + local.get $2 + return end - else - local.get $0 + local.get $2 + i32.const 1 + i32.sub + local.set $2 + br $for-loop|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 + i32.const -1 ) - (func $~lib/rt/itcms/__renew (param $0 i32) (param $1 i32) (result i32) + (func $~lib/string/String#localeCompare (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) - local.get $1 local.get $0 + local.get $1 + i32.eq + if + i32.const 0 + return + end + local.get $1 i32.const 20 i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u local.tee $2 - i32.load - i32.const -4 - i32.and - i32.const 16 + local.get $0 + i32.const 20 i32.sub - i32.le_u + i32.load offset=16 + i32.const 1 + i32.shr_u + local.tee $3 + i32.ne if + i32.const 1 + i32.const -1 local.get $2 - local.get $1 - i32.store offset=16 - local.get $0 + local.get $3 + i32.lt_s + select return end - local.get $1 local.get $2 - i32.load offset=12 - call $~lib/rt/itcms/__new - local.tee $3 + i32.eqz + if + i32.const 0 + return + end local.get $0 + i32.const 0 local.get $1 local.get $2 - i32.load offset=16 - local.tee $0 - local.get $0 - local.get $1 - i32.gt_u - select - call $~lib/memory/memory.copy - local.get $3 + call $~lib/util/string/compareImpl ) - (func $~lib/rt/itcms/__link (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) - (local $4 i32) - local.get $1 - i32.eqz + (func $~lib/util/string/isSpace (param $0 i32) (result i32) + local.get $0 + i32.const 5760 + i32.lt_u if + 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 return end local.get $0 - i32.eqz + i32.const -8192 + i32.add + i32.const 10 + i32.le_u if - i32.const 0 - i32.const 1440 - i32.const 294 - i32.const 14 - call $~lib/builtins/abort - unreachable + i32.const 1 + return end - global.get $~lib/rt/itcms/white - local.get $1 + local.get $0 + i32.const 5760 + i32.eq + local.get $0 + i32.const 8232 + i32.eq + i32.or + local.get $0 + i32.const 8233 + i32.eq + local.get $0 + i32.const 8239 + i32.eq + i32.or + i32.or + local.get $0 + i32.const 8287 + i32.eq + local.get $0 + i32.const 12288 + i32.eq + i32.or + local.get $0 + i32.const 65279 + i32.eq + i32.or + i32.or + if + i32.const 1 + return + end + i32.const 0 + ) + (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.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 $3 + i32.eqz + if + f64.const nan:0x8000000000000 + return + end + local.get $0 + i32.load16_u + local.set $2 + loop $while-continue|0 + local.get $2 + call $~lib/util/string/isSpace + if + local.get $0 + i32.const 2 + i32.add + local.tee $0 + i32.load16_u + local.set $2 + local.get $3 + i32.const 1 + i32.sub + local.set $3 + br $while-continue|0 + end + end + f64.const 1 + local.set $4 + i32.const 1 + local.get $2 + i32.const 43 + i32.eq + local.get $2 + i32.const 45 + i32.eq + select if - local.get $0 - i32.const 20 - i32.sub - local.tee $0 - i32.load offset=4 - i32.const 3 - i32.and - local.tee $3 - local.set $4 local.get $3 - global.get $~lib/rt/itcms/white + i32.const 1 + i32.sub + local.tee $3 i32.eqz + if + f64.const nan:0x8000000000000 + return + end + f64.const -1 + f64.const 1 + local.get $2 + i32.const 45 + i32.eq + select + local.set $4 + local.get $0 + i32.const 2 + i32.add + local.tee $0 + i32.load16_u + local.set $2 + end + local.get $1 + if + i32.const 1 + local.get $1 + i32.const 36 + i32.gt_s + local.get $1 + i32.const 2 + i32.lt_s + select + if + f64.const nan:0x8000000000000 + return + end + local.get $1 + i32.const 16 i32.eq if local.get $2 - if + i32.const 48 + i32.eq + i32.const 0 + local.get $3 + i32.const 2 + i32.gt_s + select + if (result i32) local.get $0 - call $~lib/rt/itcms/Object#makeGray + i32.load16_u offset=2 + i32.const 32 + i32.or + i32.const 120 + i32.eq else - local.get $1 - call $~lib/rt/itcms/Object#makeGray + i32.const 0 end - else - global.get $~lib/rt/itcms/state + if + local.get $3 + i32.const 2 + i32.sub + local.set $3 + local.get $0 + i32.const 4 + i32.add + local.set $0 + end + end + else + local.get $3 + i32.const 2 + i32.gt_s + i32.const 0 + local.get $2 + i32.const 48 + i32.eq + select + 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 $2 + i32.const 98 + i32.ne + if + local.get $2 + i32.const 111 + i32.eq + br_if $case1|1 + local.get $2 + 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 $3 + i32.const 2 + i32.sub + local.set $3 + i32.const 2 + local.set $1 + br $break|1 + end + local.get $0 + i32.const 4 + i32.add + local.set $0 + local.get $3 + i32.const 2 + i32.sub + local.set $3 + i32.const 8 + local.set $1 + br $break|1 + end + local.get $0 + i32.const 4 + i32.add + local.set $0 + local.get $3 + i32.const 2 + i32.sub + local.set $3 + i32.const 16 + local.set $1 + end + end + local.get $1 + i32.const 10 + local.get $1 + select + local.set $1 + end + loop $while-continue|2 + block $while-break|2 + local.get $3 + local.tee $2 i32.const 1 - i32.eq - i32.const 0 - local.get $4 - i32.const 3 - i32.eq - select + i32.sub + local.set $3 + local.get $2 if local.get $1 - call $~lib/rt/itcms/Object#makeGray + local.get $0 + i32.load16_u + local.tee $2 + i32.const 48 + i32.sub + i32.const 10 + i32.lt_u + if (result i32) + local.get $2 + i32.const 48 + i32.sub + else + local.get $2 + i32.const 55 + i32.sub + local.get $2 + i32.const 87 + i32.sub + local.get $2 + local.get $2 + i32.const 97 + i32.sub + i32.const 25 + i32.le_u + select + local.get $2 + i32.const 65 + i32.sub + i32.const 25 + i32.le_u + select + end + local.tee $2 + i32.le_u + if + local.get $5 + i64.reinterpret_f64 + i64.const 1 + i64.shl + i64.const 2 + i64.sub + i64.const -9007199254740994 + i64.gt_u + if + f64.const nan:0x8000000000000 + return + end + br $while-break|2 + end + local.get $5 + local.get $1 + f64.convert_i32_s + f64.mul + local.get $2 + 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 + local.get $4 + local.get $5 + f64.mul ) - (func $~lib/array/Array<~lib/string/String>#push (param $0 i32) (param $1 i32) + (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) - local.get $0 - i32.load offset=12 - local.tee $6 + i32.const 4000 + local.set $5 + i32.const 3996 + i32.load i32.const 1 - i32.add - local.tee $3 - local.set $2 - local.get $3 - local.get $0 - i32.load offset=8 - local.tee $4 - i32.const 2 i32.shr_u - i32.gt_u + local.tee $1 + i32.eqz if - local.get $2 - i32.const 268435455 - i32.gt_u - if - i32.const 13408 - i32.const 15008 - i32.const 14 - i32.const 48 - call $~lib/builtins/abort - unreachable - end - local.get $4 + i32.const 0 + return + end + i32.const 4000 + i32.load16_u + local.set $0 + loop $while-continue|0 local.get $0 - i32.load - local.tee $7 - local.get $2 - i32.const 2 - i32.shl - local.tee $5 - call $~lib/rt/itcms/__renew - local.tee $2 - i32.add - local.get $5 - local.get $4 - i32.sub - call $~lib/memory/memory.fill - local.get $2 - local.get $7 - i32.ne + call $~lib/util/string/isSpace 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 + local.get $5 + i32.const 2 + i32.add + local.tee $5 + i32.load16_u + local.set $0 + local.get $1 + i32.const 1 + i32.sub + local.set $1 + br $while-continue|0 end - local.get $0 - local.get $5 - i32.store offset=8 end - local.get $0 - i32.load offset=4 - local.get $6 - 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 - local.get $0 - local.get $3 - i32.store offset=12 - ) - (func $~lib/util/number/decimalCount32 (param $0 i32) (result i32) - local.get $0 - i32.const 10 - i32.ge_u + local.set $2 i32.const 1 - i32.add - 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 - local.get $0 - i32.const 100 - i32.lt_u - select - local.get $0 - i32.const 1000000 - i32.ge_u - i32.const 6 - i32.add - 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 local.get $0 - i32.const 10000000 - i32.lt_u - select + i32.const 43 + i32.eq local.get $0 - i32.const 100000 - i32.lt_u + i32.const 45 + i32.eq select - ) - (func $~lib/util/number/utoa_dec_simple (param $0 i32) (param $1 i32) (param $2 i32) - loop $do-continue|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 - i32.const 10 - i32.rem_u - i32.const 48 - i32.add - i32.store16 + if local.get $1 - i32.const 10 - i32.div_u - local.tee $1 - br_if $do-continue|0 - end - ) - (func $~lib/util/number/utoa_hex_simple (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) - loop $do-continue|0 - local.get $0 - local.get $2 i32.const 1 i32.sub - local.tee $2 + local.tee $1 + i32.eqz + if + i32.const 0 + return + end + i32.const -1 i32.const 1 - i32.shl - i32.add - local.get $1 - i32.const 15 - i32.and - i32.const 48 - i32.or - local.tee $3 - i32.const 39 - i32.const 0 - local.get $3 - i32.const 57 - i32.gt_u + local.get $0 + i32.const 45 + i32.eq select + local.set $2 + local.get $5 + i32.const 2 i32.add - i32.store16 - local.get $1 - i32.const 4 - i32.shr_u - local.tee $1 - br_if $do-continue|0 + local.tee $5 + i32.load16_u + local.set $0 end - ) - (func $~lib/util/number/ulog_base (param $0 i64) (param $1 i32) (result i32) - (local $2 i64) - (local $3 i64) local.get $1 - i32.popcnt - i32.const 1 + i32.const 2 + i32.gt_s + i32.const 0 + local.get $0 + i32.const 48 i32.eq + select 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 - return + block $break|1 + block $case2|1 + block $case1|1 + local.get $5 + 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 $5 + i32.const 4 + i32.add + local.set $5 + local.get $1 + i32.const 2 + i32.sub + local.set $1 + i32.const 2 + local.set $4 + br $break|1 + end + local.get $5 + i32.const 4 + i32.add + local.set $5 + local.get $1 + i32.const 2 + i32.sub + local.set $1 + i32.const 8 + local.set $4 + br $break|1 + end + local.get $5 + i32.const 4 + i32.add + local.set $5 + local.get $1 + i32.const 2 + i32.sub + local.set $1 + i32.const 16 + local.set $4 + end end - local.get $1 - i64.extend_i32_s - local.tee $3 - local.set $2 - i32.const 1 - local.set $1 - loop $while-continue|0 - local.get $0 - local.get $2 - i64.ge_u - if - local.get $0 - local.get $2 - i64.div_u - local.set $0 - local.get $2 - local.get $2 - i64.mul - local.set $2 + local.get $4 + i32.const 10 + local.get $4 + select + local.set $4 + loop $while-continue|2 + block $while-break|2 local.get $1 + local.tee $0 i32.const 1 - i32.shl + i32.sub local.set $1 - br $while-continue|0 - end - end - loop $while-continue|1 - local.get $0 - i64.const 1 - i64.ge_u - if local.get $0 - local.get $3 - i64.div_u - local.set $0 - local.get $1 - i32.const 1 - i32.add - local.set $1 - br $while-continue|1 + if + local.get $4 + local.get $5 + i32.load16_u + local.tee $0 + i32.const 48 + i32.sub + i32.const 10 + i32.lt_u + if (result i32) + local.get $0 + i32.const 48 + i32.sub + else + local.get $0 + i32.const 55 + i32.sub + local.get $0 + i32.const 87 + i32.sub + local.get $0 + local.get $0 + i32.const 97 + i32.sub + i32.const 25 + i32.le_u + select + local.get $0 + i32.const 65 + i32.sub + i32.const 25 + i32.le_u + select + end + local.tee $0 + i32.le_u + if + local.get $3 + i32.eqz + if + i32.const 0 + return + end + br $while-break|2 + end + local.get $0 + local.get $3 + local.get $4 + i32.mul + i32.add + local.set $3 + local.get $5 + i32.const 2 + i32.add + local.set $5 + br $while-continue|2 + end end end - local.get $1 - i32.const 1 - i32.sub - ) - (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 $4 - local.get $3 + local.get $2 local.get $3 + i32.mul + ) + (func $~lib/util/string/strtol (result i64) + (local $0 i32) + (local $1 i32) + (local $2 i64) + (local $3 i64) + (local $4 i32) + (local $5 i32) + i32.const 4048 + local.set $5 + i32.const 4044 + i32.load i32.const 1 - i32.sub - i32.and + i32.shr_u + local.tee $1 + i32.eqz if - loop $do-continue|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 $4 - local.get $1 - local.get $4 - i64.div_u - local.tee $1 - i64.mul - i64.sub - i32.wrap_i64 - i32.const 1 - i32.shl - i32.const 15584 + i64.const 0 + return + end + i32.const 4048 + i32.load16_u + local.set $0 + loop $while-continue|0 + local.get $0 + call $~lib/util/string/isSpace + if + local.get $5 + i32.const 2 i32.add + local.tee $5 i32.load16_u - i32.store16 + local.set $0 local.get $1 - i64.const 0 - i64.ne - br_if $do-continue|1 - end - else - local.get $3 - i32.ctz - i32.const 7 - i32.and - i64.extend_i32_s - local.set $5 - local.get $4 - i64.const 1 - i64.sub - local.set $4 - loop $do-continue|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 $4 - i64.and - i32.wrap_i64 - i32.const 1 - i32.shl - i32.const 15584 - i32.add - i32.load16_u - i32.store16 - local.get $1 - local.get $5 - i64.shr_u - local.tee $1 - i64.const 0 - i64.ne - br_if $do-continue|0 + local.set $1 + br $while-continue|0 end end - ) - (func $~lib/util/number/decimalCount64High (param $0 i64) (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 - 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 - local.get $0 - i64.const 1000000000000 - i64.lt_u - select - local.get $0 - i64.const 10000000000000000 - i64.ge_u - i32.const 16 - i32.add - 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 + i64.const 1 + local.set $2 + i32.const 1 local.get $0 - i64.const 100000000000000000 - i64.lt_u - select + i32.const 43 + i32.eq local.get $0 - i64.const 1000000000000000 - i64.lt_u + i32.const 45 + i32.eq select - ) - (func $~lib/util/number/utoa_dec_simple (param $0 i32) (param $1 i64) (param $2 i32) - loop $do-continue|0 - local.get $0 - local.get $2 + if + local.get $1 i32.const 1 i32.sub - local.tee $2 - i32.const 1 - i32.shl - i32.add - local.get $1 - i64.const 10 - i64.rem_u - i32.wrap_i64 - i32.const 48 - i32.add - i32.store16 - local.get $1 - i64.const 10 - i64.div_u local.tee $1 - i64.const 0 - i64.ne - br_if $do-continue|0 - end - ) - (func $~lib/util/number/utoa_hex_simple (param $0 i32) (param $1 i64) (param $2 i32) - (local $3 i64) - loop $do-continue|0 + i32.eqz + if + i64.const 0 + return + end + i64.const -1 + i64.const 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 - i64.const 15 - i64.and - i64.const 48 - i64.or - local.tee $3 - i64.const 39 - i64.const 0 - local.get $3 - i64.const 57 - i64.gt_u + i32.const 45 + i32.eq select - i64.add - i64.store16 - local.get $1 - i64.const 4 - i64.shr_u - local.tee $1 - i64.const 0 - i64.ne - br_if $do-continue|0 + local.set $2 + local.get $5 + i32.const 2 + i32.add + local.tee $5 + i32.load16_u + local.set $0 end - ) - (func $~lib/util/number/genDigits (param $0 i64) (param $1 i32) (param $2 i64) (param $3 i32) (param $4 i64) (param $5 i32) (result i32) - (local $6 i64) - (local $7 i32) - (local $8 i64) - (local $9 i32) - (local $10 i64) - (local $11 i64) - local.get $2 - local.get $0 - i64.sub - local.set $8 - local.get $2 - i64.const 1 + local.get $1 + i32.const 2 + i32.gt_s i32.const 0 - local.get $3 - i32.sub - local.tee $9 - i64.extend_i32_s - i64.shl - local.tee $10 - i64.const 1 - i64.sub - local.tee $11 - i64.and - local.set $6 - local.get $2 - local.get $9 - i64.extend_i32_s - i64.shr_u - i32.wrap_i64 - local.tee $1 - call $~lib/util/number/decimalCount32 - 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 $1 - i32.const 1000000000 - i32.div_u - local.set $3 - local.get $1 - i32.const 1000000000 - i32.rem_u - local.set $1 - br $break|1 - end - local.get $1 - i32.const 100000000 - i32.div_u - local.set $3 - local.get $1 - i32.const 100000000 - i32.rem_u - local.set $1 - br $break|1 - end - local.get $1 - i32.const 10000000 - i32.div_u - local.set $3 - local.get $1 - i32.const 10000000 - i32.rem_u - local.set $1 - br $break|1 - end - local.get $1 - i32.const 1000000 - i32.div_u - local.set $3 - local.get $1 - i32.const 1000000 - i32.rem_u - local.set $1 - br $break|1 - end - local.get $1 - i32.const 100000 - i32.div_u - local.set $3 - local.get $1 - i32.const 100000 - i32.rem_u - local.set $1 - br $break|1 - end - local.get $1 - i32.const 10000 - i32.div_u - local.set $3 - local.get $1 - i32.const 10000 - i32.rem_u - local.set $1 - br $break|1 - end - local.get $1 - i32.const 1000 - i32.div_u - local.set $3 - local.get $1 - i32.const 1000 - i32.rem_u - local.set $1 - br $break|1 - end - local.get $1 - i32.const 100 - i32.div_u - local.set $3 - local.get $1 - i32.const 100 - i32.rem_u - local.set $1 - br $break|1 - end - local.get $1 - i32.const 10 - i32.div_u - local.set $3 - local.get $1 - i32.const 10 - i32.rem_u - local.set $1 + local.get $0 + i32.const 48 + i32.eq + select + if + block $break|1 + block $case2|1 + block $case1|1 + local.get $5 + 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 $5 + i32.const 4 + i32.add + local.set $5 local.get $1 - local.set $3 - i32.const 0 + i32.const 2 + i32.sub local.set $1 + i32.const 2 + local.set $4 br $break|1 end - i32.const 0 - local.set $3 - end - local.get $3 - local.get $5 - i32.or - if - local.get $5 - i32.const 1 - i32.shl - i32.const 21168 - i32.add - local.get $3 - i32.const 65535 - i32.and - i32.const 48 - i32.add - i32.store16 local.get $5 - i32.const 1 + i32.const 4 i32.add local.set $5 + local.get $1 + i32.const 2 + i32.sub + local.set $1 + i32.const 8 + local.set $4 + br $break|1 end - local.get $7 - i32.const 1 - i32.sub - local.set $7 - local.get $6 - local.get $1 - i64.extend_i32_u - local.get $9 - i64.extend_i32_s - i64.shl - i64.add + local.get $5 + i32.const 4 + i32.add + local.set $5 + local.get $1 + i32.const 2 + i32.sub + local.set $1 + i32.const 16 + local.set $4 + end + end + local.get $4 + i32.const 10 + local.get $4 + select + local.set $4 + loop $while-continue|2 + block $while-break|2 + local.get $1 local.tee $0 - local.get $4 - i64.le_u + i32.const 1 + i32.sub + local.set $1 + local.get $0 if - local.get $7 - global.get $~lib/util/number/_K - i32.add - global.set $~lib/util/number/_K - local.get $7 - i32.const 2 - i32.shl - i32.const 22096 - i32.add - i64.load32_u - local.get $9 - i64.extend_i32_s - i64.shl - local.set $2 + local.get $4 local.get $5 - i32.const 1 - i32.shl - i32.const 21166 - i32.add - local.tee $3 i32.load16_u - local.set $1 - loop $while-continue|3 - i32.const 1 - local.get $8 + local.tee $0 + i32.const 48 + i32.sub + i32.const 10 + i32.lt_u + if (result i32) local.get $0 - i64.sub + i32.const 48 + i32.sub + else local.get $0 - local.get $2 - i64.add - local.tee $6 - local.get $8 - i64.sub - i64.gt_u - local.get $6 - local.get $8 - i64.lt_u - select - i32.const 0 - local.get $2 - local.get $4 + i32.const 55 + i32.sub local.get $0 - i64.sub - i64.le_u - i32.const 0 + i32.const 87 + i32.sub local.get $0 - local.get $8 - i64.lt_u + local.get $0 + i32.const 97 + i32.sub + i32.const 25 + i32.le_u select + local.get $0 + i32.const 65 + i32.sub + i32.const 25 + i32.le_u select + end + local.tee $0 + i32.le_u + if + local.get $3 + i64.eqz if - local.get $1 - i32.const 1 - i32.sub - local.set $1 - local.get $0 - local.get $2 - i64.add - local.set $0 - br $while-continue|3 + i64.const 0 + return end + br $while-break|2 end + local.get $0 + i64.extend_i32_u local.get $3 - local.get $1 - i32.store16 + local.get $4 + i64.extend_i32_s + i64.mul + i64.add + local.set $3 local.get $5 - return + i32.const 2 + i32.add + local.set $5 + br $while-continue|2 end - br $while-continue|0 - end - end - local.get $9 - i64.extend_i32_s - local.set $0 - loop $while-continue|4 - local.get $4 - i64.const 10 - i64.mul - local.set $4 - local.get $6 - i64.const 10 - i64.mul - local.tee $2 - local.get $0 - i64.shr_u - local.tee $6 - local.get $5 - i64.extend_i32_s - i64.or - i64.const 0 - i64.ne - if - local.get $5 - i32.const 1 - i32.shl - i32.const 21168 - i32.add - local.get $6 - 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 $4 - local.get $2 - local.get $11 - i64.and - local.tee $6 - i64.le_u - br_if $while-continue|4 end - local.get $7 - global.get $~lib/util/number/_K - i32.add - global.set $~lib/util/number/_K - local.get $6 - local.set $0 - local.get $8 - i32.const 0 - local.get $7 - i32.sub - i32.const 2 - i32.shl - i32.const 22096 - i32.add - i64.load32_u + local.get $2 + local.get $3 i64.mul - local.set $2 - local.get $5 - i32.const 1 - i32.shl - i32.const 21166 - i32.add - local.tee $3 - i32.load16_u + ) + (func $~lib/math/ipow32 (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) + i32.const 5 local.set $1 - loop $while-continue|6 - i32.const 1 - local.get $2 - local.get $0 - i64.sub - local.get $0 - local.get $10 - i64.add - local.tee $6 - local.get $2 - i64.sub - i64.gt_u - local.get $2 - local.get $6 - i64.gt_u - select - i32.const 0 - local.get $10 - local.get $4 - local.get $0 - i64.sub - i64.le_u - i32.const 0 + i32.const 1 + local.set $2 + loop $while-continue|0 local.get $0 - local.get $2 - i64.lt_u - select - select if local.get $1 + local.get $2 + i32.mul + local.get $2 + local.get $0 i32.const 1 - i32.sub - local.set $1 + i32.and + select + local.set $2 local.get $0 - local.get $10 - i64.add + i32.const 1 + i32.shr_u local.set $0 - br $while-continue|6 + local.get $1 + local.get $1 + i32.mul + local.set $1 + br $while-continue|0 end end - local.get $3 - local.get $1 - i32.store16 - local.get $5 - ) - (func $~lib/util/number/prettify (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (local $3 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 - i32.const 0 + ) + (func $~lib/math/NativeMath.scalbn (param $0 f64) (param $1 i32) (result f64) local.get $1 - local.get $3 - i32.le_s - select - if (result i32) - loop $for-loop|0 + 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) local.get $1 - local.get $3 + i32.const 1023 + i32.sub + local.tee $1 + i32.const 1023 + local.get $1 + i32.const 1023 i32.lt_s - if - local.get $0 + 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) local.get $1 - i32.const 1 - i32.shl + i32.const 969 i32.add - i32.const 48 - i32.store16 + local.tee $1 + i32.const -1022 local.get $1 - i32.const 1 - i32.add + i32.const -1022 + i32.gt_s + select local.set $1 - br $for-loop|0 + 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/util/string/strtod (param $0 i32) (result f64) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i64) + (local $6 i32) + (local $7 i32) + (local $8 i64) + (local $9 i64) + (local $10 f64) + (local $11 f64) + (local $12 i32) + (local $13 i64) + (local $14 i64) + block $folding-inner0 local.get $0 - local.get $3 + i32.const 20 + i32.sub + i32.load offset=16 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 - i32.const 0 - local.get $3 - i32.const 0 - i32.gt_s - select + i32.shr_u + local.tee $6 + i32.eqz + br_if $folding-inner0 + local.get $0 + i32.load16_u + local.set $7 + f64.const 1 + local.set $11 + loop $while-continue|0 + local.get $6 + if (result i32) + local.get $7 + call $~lib/util/string/isSpace + else + i32.const 0 + end + if + local.get $0 + i32.const 2 + i32.add + local.tee $0 + i32.load16_u + local.set $7 + local.get $6 + i32.const 1 + i32.sub + local.set $6 + br $while-continue|0 + end + end + local.get $6 + i32.eqz + br_if $folding-inner0 + local.get $7 + i32.const 45 + i32.eq if (result i32) - local.get $0 - local.get $3 + local.get $6 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 - call $~lib/memory/memory.copy + local.tee $6 + i32.eqz + br_if $folding-inner0 + f64.const -1 + local.set $11 local.get $0 - i32.const 46 - i32.store16 - local.get $1 - i32.const 1 + i32.const 2 i32.add + local.tee $0 + i32.load16_u else - local.get $3 - i32.const 0 - i32.le_s - i32.const 0 - local.get $3 - i32.const -6 - i32.gt_s - select + local.get $7 + i32.const 43 + i32.eq 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 + local.get $6 i32.const 1 - i32.shl - call $~lib/memory/memory.copy + i32.sub + local.tee $6 + i32.eqz + br_if $folding-inner0 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 + local.tee $0 + i32.load16_u else - local.get $1 - i32.const 1 - i32.eq - if (result i32) - local.get $0 - i32.const 101 - i32.store16 offset=2 - local.get $0 - local.tee $1 - i32.const 4 - i32.add - local.get $3 + local.get $7 + end + end + local.tee $7 + i32.const 73 + i32.eq + i32.const 0 + local.get $6 + i32.const 8 + i32.ge_s + select + 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 + local.get $11 + f64.const inf + f64.mul + return + end + br $folding-inner0 + end + local.get $7 + i32.const 48 + i32.sub + i32.const 10 + i32.ge_u + i32.const 0 + local.get $7 + i32.const 46 + i32.ne + select + br_if $folding-inner0 + local.get $0 + local.set $2 + loop $while-continue|1 + local.get $7 + i32.const 48 + i32.eq + if + local.get $0 + i32.const 2 + i32.add + local.tee $0 + i32.load16_u + local.set $7 + local.get $6 + i32.const 1 + i32.sub + local.set $6 + br $while-continue|1 + end + end + local.get $6 + i32.const 0 + i32.le_s + if + f64.const 0 + return + end + local.get $7 + i32.const 46 + i32.eq + if + local.get $0 + local.get $2 + i32.eq + local.set $2 + local.get $0 + i32.const 2 + i32.add + local.set $0 + i32.const 0 + local.get $2 + local.get $6 + i32.const 1 + i32.sub + local.tee $6 + select + br_if $folding-inner0 + i32.const 1 + local.set $12 + loop $for-loop|2 + local.get $0 + i32.load16_u + local.tee $7 + i32.const 48 + i32.eq + if + local.get $6 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 - call $~lib/util/number/decimalCount32 + local.set $6 + local.get $3 i32.const 1 - i32.add - local.tee $0 - call $~lib/util/number/utoa_dec_simple - local.get $1 - i32.const 45 - i32.const 43 - local.get $2 - select - i32.store16 offset=4 - local.get $0 - i32.const 2 - i32.add - else - local.get $0 - i32.const 4 - i32.add + i32.sub + local.set $3 local.get $0 i32.const 2 i32.add - local.get $1 - i32.const 1 - i32.shl - local.tee $2 - i32.const 2 - i32.sub - call $~lib/memory/memory.copy - local.get $0 - i32.const 46 - i32.store16 offset=2 - local.get $0 + local.set $0 + br $for-loop|2 + end + end + local.get $6 + i32.const 0 + i32.le_s + if + f64.const 0 + return + end + local.get $7 + i32.const 48 + i32.sub + i32.const 10 + i32.ge_u + i32.const 0 + i32.const 0 + local.get $2 + local.get $3 + select + select + br_if $folding-inner0 + end + local.get $7 + i32.const 48 + i32.sub + local.set $2 + loop $for-loop|3 + i32.const 1 + local.get $12 + i32.eqz + i32.const 0 + local.get $7 + i32.const 46 + i32.eq + select + local.get $2 + i32.const 10 + i32.lt_u + select + if + block $for-break3 local.get $2 - i32.add - local.tee $0 - i32.const 101 - i32.store16 offset=2 - local.get $0 - local.tee $2 - i32.const 4 - i32.add - local.get $3 - i32.const 1 - i32.sub - local.tee $0 - i32.const 0 - i32.lt_s - local.tee $3 + i32.const 10 + i32.lt_u if - i32.const 0 - local.get $0 - i32.sub - local.set $0 + local.get $2 + i64.extend_i32_u + local.get $5 + i64.const 10 + i64.mul + i64.add + local.get $5 + local.get $2 + i32.eqz + i32.eqz + i64.extend_i32_u + i64.or + local.get $1 + i32.const 19 + i32.lt_s + select + local.set $5 + local.get $1 + i32.const 1 + i32.add + local.set $1 + else + local.get $1 + local.set $3 + i32.const 1 + local.set $12 end - local.get $0 - local.get $0 - call $~lib/util/number/decimalCount32 + local.get $6 i32.const 1 - i32.add - local.tee $0 - call $~lib/util/number/utoa_dec_simple - local.get $2 - i32.const 45 - i32.const 43 - local.get $3 - select - i32.store16 offset=4 + i32.sub + local.tee $6 + i32.eqz + br_if $for-break3 local.get $0 - local.get $1 - i32.add i32.const 2 i32.add + local.tee $0 + i32.load16_u + local.tee $7 + i32.const 48 + i32.sub + local.set $2 + br $for-loop|3 end end end - end - ) - (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 i32) - (local $7 i32) - (local $8 i32) - (local $9 i64) - (local $10 i64) - (local $11 i64) - local.get $0 - f64.const 0 - f64.lt - local.tee $8 - if (result f64) - i32.const 21168 - i32.const 45 - i32.store16 - local.get $0 - f64.neg - else - local.get $0 - end - i64.reinterpret_f64 - local.tee $3 - i64.const 9218868437227405312 - i64.and - i64.const 52 - i64.shr_u - i32.wrap_i64 - local.tee $6 - i32.const 0 - i32.ne - i64.extend_i32_u - i64.const 52 - i64.shl - local.get $3 - i64.const 4503599627370495 - i64.and - i64.add - local.tee $1 - i64.const 1 - i64.shl - i64.const 1 - i64.add - local.tee $3 - i64.clz - i32.wrap_i64 - local.set $2 - local.get $3 - local.get $2 - i64.extend_i32_s - i64.shl - global.set $~lib/util/number/_frc_plus - local.get $6 - i32.const 1 - local.get $6 - select - i32.const 1075 - i32.sub - local.tee $6 - i32.const 1 - i32.sub - local.get $2 - i32.sub - local.set $2 - local.get $1 - local.get $1 - i64.const 4503599627370496 - i64.eq - i32.const 1 - i32.add - local.tee $7 - i64.extend_i32_s - i64.shl - i64.const 1 - i64.sub - local.get $6 - local.get $7 - i32.sub - local.get $2 - i32.sub - i64.extend_i32_s - i64.shl - global.set $~lib/util/number/_frc_minus - local.get $2 - 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_f64_s - local.tee $2 - local.get $0 - local.get $2 - f64.convert_i32_s - 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 $7 - i32.sub - global.set $~lib/util/number/_K - local.get $7 - i32.const 21224 - i32.add - i64.load - global.set $~lib/util/number/_frc_pow - local.get $2 - i32.const 1 - i32.shl - i32.const 21920 - i32.add - i32.load16_s - global.set $~lib/util/number/_exp_pow - global.get $~lib/util/number/_frc_pow - local.tee $4 - i64.const 32 - i64.shr_u - local.set $3 - local.get $4 - i64.const 4294967295 - i64.and - local.tee $4 - global.get $~lib/util/number/_frc_plus - local.tee $5 - i64.const 32 - i64.shr_u - local.tee $10 - i64.mul - local.get $4 - local.get $5 - i64.const 4294967295 - i64.and - local.tee $11 - i64.mul - i64.const 32 - i64.shr_u - i64.add - local.set $5 - local.get $8 - i32.const 1 - i32.shl - i32.const 21168 - i32.add - local.get $3 - local.get $1 - local.get $1 - i64.clz - i32.wrap_i64 - local.tee $2 - i64.extend_i32_s - i64.shl - local.tee $1 - i64.const 32 - i64.shr_u - local.tee $9 - i64.mul - local.get $4 - local.get $9 - i64.mul - local.get $4 - local.get $1 - i64.const 4294967295 - i64.and - local.tee $1 - i64.mul - i64.const 32 - i64.shr_u - i64.add - local.tee $9 - i64.const 32 - i64.shr_u - i64.add - local.get $1 - local.get $3 - i64.mul - local.get $9 - i64.const 4294967295 - i64.and - i64.add - i64.const 2147483647 - i64.add - i64.const 32 - i64.shr_u - i64.add - global.get $~lib/util/number/_exp_pow - local.tee $7 - local.get $6 - local.get $2 - i32.sub - i32.add - i32.const -64 - i32.sub - local.get $3 - local.get $10 - i64.mul - local.get $5 - i64.const 32 - i64.shr_u - i64.add - local.get $3 - local.get $11 - 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 - i64.const 1 - i64.sub - local.tee $1 - local.get $7 - global.get $~lib/util/number/_exp - i32.add - i32.const -64 - i32.sub - local.get $1 - local.get $3 - global.get $~lib/util/number/_frc_minus - local.tee $1 - i64.const 32 - i64.shr_u - local.tee $5 - i64.mul - local.get $4 - local.get $5 - i64.mul - local.get $4 - local.get $1 - i64.const 4294967295 - i64.and - local.tee $4 - i64.mul - i64.const 32 - i64.shr_u - i64.add - local.tee $1 - i64.const 32 - i64.shr_u - i64.add - local.get $3 - local.get $4 - 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 - local.get $8 - call $~lib/util/number/genDigits - local.get $8 - i32.sub - global.get $~lib/util/number/_K - call $~lib/util/number/prettify - local.get $8 - i32.add - ) - (func $std/string/getString (result i32) - global.get $std/string/str - ) - (func $~lib/rt/__visit_members (param $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - block $invalid - block $~lib/array/Array - block $~lib/array/Array<~lib/string/String> - block $~lib/arraybuffer/ArrayBufferView - block $~lib/string/String - block $~lib/arraybuffer/ArrayBuffer - local.get $0 - i32.const 8 - i32.sub - i32.load - br_table $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $~lib/array/Array<~lib/string/String> $~lib/array/Array $invalid - 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 - i32.load offset=4 - local.tee $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 - 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 $~start - call $start:std/string - ) - (func $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 24044 - i32.lt_s - if - i32.const 40448 - i32.const 40496 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - ) - (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 - call $~stack_check - 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 - i32.const 1 - local.get $0 - select - 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 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 0 - ) - (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 - call $~stack_check - 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 0 - 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.const 0 - i32.ge_s - select - i32.add - local.tee $1 - local.get $2 - i32.ge_u - if - i32.const 1264 - i32.const 1328 - i32.const 54 - i32.const 31 - call $~lib/builtins/abort - unreachable - end - i32.const 2 - i32.const 1 - 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/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 - call $~stack_check - 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 - 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 2 - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $2 - i32.store offset=4 - local.get $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 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $2 - ) - (func $~lib/string/String.__not (param $0 i32) (result 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 $0 - 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 - i32.eqz - else - i32.const 1 - end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/string/String#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 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 - 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 $4 - 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 - 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 - 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 $3 - local.get $2 - local.get $3 - i32.lt_s - select - local.set $2 - local.get $3 - local.get $4 - i32.sub - local.set $3 - loop $for-loop|0 - local.get $2 - local.get $3 - 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 $4 - 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 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const -1 - ) - (func $~lib/string/String#padStart (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 - call $~stack_check - 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 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - i32.const 1 - local.get $2 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 1 - i32.shr_u - i32.const 1 - i32.shl - local.tee $4 - i32.eqz - local.get $3 - i32.const 1 - i32.shl - local.tee $5 - local.get $1 - i32.const 1 - i32.shl - local.tee $3 - i32.gt_u - select - 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 1 - call $~lib/rt/itcms/__new - local.tee $1 - i32.store offset=4 - local.get $4 - local.get $3 - local.get $5 - i32.sub - local.tee $3 - i32.lt_u - if - local.get $1 - local.get $2 - local.get $4 - local.get $3 - i32.const 2 - i32.sub - local.get $4 - i32.div_u - local.tee $6 - call $~lib/memory/memory.repeat - local.get $1 - local.get $4 - local.get $6 - i32.mul - local.tee $4 - i32.add - local.get $2 - local.get $3 - local.get $4 - i32.sub - call $~lib/memory/memory.copy - else - local.get $1 - local.get $2 - local.get $3 - call $~lib/memory/memory.copy - end - local.get $1 - local.get $3 - i32.add - local.get $0 - local.get $5 - call $~lib/memory/memory.copy - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $1 - ) - (func $~lib/string/String#padEnd (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 - call $~stack_check - 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 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - i32.const 1 - local.get $2 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 1 - i32.shr_u - i32.const 1 - i32.shl - local.tee $4 - i32.eqz - local.get $3 - i32.const 1 - i32.shl - local.tee $3 - local.get $1 - i32.const 1 - i32.shl - local.tee $5 - i32.gt_u - select - 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 $5 - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $1 - i32.store offset=4 - local.get $1 - local.get $0 - local.get $3 - call $~lib/memory/memory.copy - local.get $4 - local.get $5 - local.get $3 - i32.sub - local.tee $0 - i32.lt_u - if - local.get $1 - local.get $3 - i32.add - local.tee $3 - local.get $2 - local.get $4 - local.get $0 - i32.const 2 - i32.sub - local.get $4 - i32.div_u - local.tee $5 - call $~lib/memory/memory.repeat - local.get $3 - local.get $4 - local.get $5 - i32.mul - local.tee $4 - i32.add - local.get $2 - local.get $0 - local.get $4 - i32.sub - call $~lib/memory/memory.copy - else - local.get $1 - local.get $3 - i32.add - local.get $2 - local.get $0 - call $~lib/memory/memory.copy - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $1 - ) - (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 - 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 - 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 $4 - 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 $3 - local.set $5 - local.get $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 - local.get $2 - i32.const 0 - local.get $2 - i32.const 0 - i32.gt_s - select - local.tee $2 - local.get $5 - local.get $4 - i32.sub - local.tee $3 - local.get $2 - local.get $3 - 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 $4 - 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 - 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 - call $~stack_check - 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.set $3 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $1 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 1 - i32.shr_u - local.tee $2 - local.get $3 - i32.ne - if - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1 - i32.const -1 - local.get $2 - local.get $3 - i32.lt_s - select - return - end - local.get $2 - i32.eqz - 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 - 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/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 - call $~stack_check - 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 - i32.const 1 - i32.shl - local.set $2 - loop $while-continue|0 - local.get $1 - local.get $2 - i32.lt_u - if (result i32) - local.get $0 - local.get $1 - i32.add - i32.load16_u - call $~lib/util/string/isSpace - else - i32.const 0 - end - if - local.get $1 - i32.const 2 - i32.add - 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 - local.get $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 - call $~lib/memory/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#trimEnd (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 - call $~stack_check - 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 - i32.const 1 - i32.shl - local.tee $2 - local.set $1 - loop $while-continue|0 - local.get $1 - if (result i32) - local.get $0 - local.get $1 - i32.add - i32.const 2 - i32.sub - i32.load16_u - call $~lib/util/string/isSpace - 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 $2 - 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 1 - call $~lib/rt/itcms/__new - local.tee $2 - i32.store offset=4 - local.get $2 - local.get $0 - local.get $1 - call $~lib/memory/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) - 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 - 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 $1 - local.set $3 - local.get $1 - i32.const 1 - i32.shl - local.set $1 - loop $while-continue|0 - local.get $1 - if (result i32) - local.get $0 - local.get $1 - i32.add - i32.const 2 - i32.sub - i32.load16_u - call $~lib/util/string/isSpace - 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) - local.get $0 - local.get $2 - i32.add - i32.load16_u - call $~lib/util/string/isSpace - 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 - i32.const 0 - local.get $1 - local.get $3 - i32.const 1 - i32.shl - i32.eq - local.get $2 - select - 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 1 - 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 - call $~lib/memory/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/strtol (param $0 i32) (param $1 i32) (result f64) - (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 - call $~stack_check - 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 $3 - i32.eqz - br_if $folding-inner0 - local.get $0 - i32.load16_u - local.set $2 - loop $while-continue|0 - local.get $2 - call $~lib/util/string/isSpace - if - local.get $0 - i32.const 2 - i32.add - local.tee $0 - i32.load16_u - local.set $2 - local.get $3 - i32.const 1 - i32.sub - local.set $3 - br $while-continue|0 - end - end - f64.const 1 - local.set $4 - i32.const 1 - local.get $2 - i32.const 43 - i32.eq - local.get $2 - i32.const 45 - i32.eq - select - if - local.get $3 - i32.const 1 - i32.sub - local.tee $3 - i32.eqz - br_if $folding-inner0 - f64.const -1 - f64.const 1 - local.get $2 - i32.const 45 - i32.eq - select - local.set $4 - local.get $0 - i32.const 2 - i32.add - local.tee $0 - i32.load16_u - local.set $2 - end - local.get $1 - if - i32.const 1 - local.get $1 - i32.const 36 - i32.gt_s - local.get $1 - i32.const 2 - i32.lt_s - select - br_if $folding-inner0 - local.get $1 - i32.const 16 - i32.eq - if - local.get $2 - i32.const 48 - i32.eq - i32.const 0 - local.get $3 - i32.const 2 - i32.gt_s - select - 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 $3 - i32.const 2 - i32.sub - local.set $3 - local.get $0 - i32.const 4 - i32.add - local.set $0 - end - end - else - local.get $3 - i32.const 2 - i32.gt_s - i32.const 0 - local.get $2 - i32.const 48 - i32.eq - select - 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 $2 - i32.const 98 - i32.ne - if - local.get $2 - i32.const 111 - i32.eq - br_if $case1|1 - local.get $2 - 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 $3 - i32.const 2 - i32.sub - local.set $3 - i32.const 2 - local.set $1 - br $break|1 - end - local.get $0 - i32.const 4 - i32.add - local.set $0 - local.get $3 - i32.const 2 - i32.sub - local.set $3 - i32.const 8 - local.set $1 - br $break|1 - end - local.get $0 - i32.const 4 - i32.add - local.set $0 - local.get $3 - i32.const 2 - i32.sub - local.set $3 - i32.const 16 - local.set $1 - end - end - local.get $1 - i32.const 10 - local.get $1 - select - local.set $1 - end - loop $while-continue|2 - block $while-break|2 - local.get $3 - local.tee $2 - i32.const 1 - i32.sub - local.set $3 - local.get $2 - if - local.get $1 - local.get $0 - i32.load16_u - local.tee $2 - i32.const 48 - i32.sub - i32.const 10 - i32.lt_u - if (result i32) - local.get $2 - i32.const 48 - i32.sub - else - local.get $2 - i32.const 55 - i32.sub - local.get $2 - i32.const 87 - i32.sub - local.get $2 - local.get $2 - i32.const 97 - i32.sub - i32.const 25 - i32.le_u - select - local.get $2 - i32.const 65 - i32.sub - i32.const 25 - i32.le_u - select - end - local.tee $2 - i32.le_u - if - local.get $5 - i64.reinterpret_f64 - i64.const 1 - i64.shl - i64.const 2 - i64.sub - i64.const -9007199254740994 - i64.gt_u - br_if $folding-inner0 - br $while-break|2 - end - local.get $5 - local.get $1 - f64.convert_i32_s - f64.mul - local.get $2 - 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 - end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - f64.const nan:0x8000000000000 - ) - (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 - call $~stack_check - global.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/util/string/strtol - 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) - (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - i32.const 4000 - local.set $5 - 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 - i32.const 4000 - i32.store - block $folding-inner0 - i32.const 3996 - i32.load - i32.const 1 - i32.shr_u - local.tee $1 - i32.eqz - br_if $folding-inner0 - i32.const 4000 - i32.load16_u - local.set $0 - loop $while-continue|0 - local.get $0 - call $~lib/util/string/isSpace - if - local.get $5 - i32.const 2 - i32.add - local.tee $5 - 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 $2 - i32.const 1 - local.get $0 - i32.const 43 - i32.eq - local.get $0 - i32.const 45 - i32.eq - select - if - 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 $0 - i32.const 45 - i32.eq - select - local.set $2 - local.get $5 - i32.const 2 - i32.add - local.tee $5 - i32.load16_u - local.set $0 - end - local.get $1 - i32.const 2 - i32.gt_s - i32.const 0 - local.get $0 - i32.const 48 - i32.eq - select - if - block $break|1 - block $case2|1 - block $case1|1 - local.get $5 - 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 $5 - i32.const 4 - i32.add - local.set $5 - local.get $1 - i32.const 2 - i32.sub - local.set $1 - i32.const 2 - local.set $4 - br $break|1 - end - local.get $5 - i32.const 4 - i32.add - local.set $5 - local.get $1 - i32.const 2 - i32.sub - local.set $1 - i32.const 8 - local.set $4 - br $break|1 - end - local.get $5 - i32.const 4 - i32.add - local.set $5 - local.get $1 - i32.const 2 - i32.sub - local.set $1 - i32.const 16 - local.set $4 - end - end - local.get $4 - i32.const 10 - local.get $4 - select - local.set $4 - loop $while-continue|2 - block $while-break|2 - local.get $1 - local.tee $0 - i32.const 1 - i32.sub - local.set $1 - local.get $0 - if - local.get $4 - local.get $5 - i32.load16_u - local.tee $0 - i32.const 48 - i32.sub - i32.const 10 - i32.lt_u - if (result i32) - local.get $0 - i32.const 48 - i32.sub - else - local.get $0 - i32.const 55 - i32.sub - local.get $0 - i32.const 87 - i32.sub - local.get $0 - local.get $0 - i32.const 97 - i32.sub - i32.const 25 - i32.le_u - select - local.get $0 - i32.const 65 - i32.sub - i32.const 25 - i32.le_u - select - end - local.tee $0 - i32.le_u - if - local.get $3 - i32.eqz - br_if $folding-inner0 - br $while-break|2 - end - local.get $0 - local.get $3 - local.get $4 - i32.mul - i32.add - local.set $3 - local.get $5 - i32.const 2 - i32.add - local.set $5 - 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 $2 - local.get $3 - 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/util/string/strtol (result i64) - (local $0 i32) - (local $1 i32) - (local $2 i64) - (local $3 i64) - (local $4 i32) - (local $5 i32) - i32.const 4048 - local.set $5 - 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 - i32.const 4048 - i32.store - block $folding-inner0 - i32.const 4044 - i32.load - i32.const 1 - i32.shr_u - local.tee $1 - i32.eqz - br_if $folding-inner0 - i32.const 4048 - i32.load16_u - local.set $0 - loop $while-continue|0 - local.get $0 - call $~lib/util/string/isSpace - if - local.get $5 - i32.const 2 - i32.add - local.tee $5 - i32.load16_u - local.set $0 - local.get $1 - i32.const 1 - i32.sub - local.set $1 - br $while-continue|0 - end - end - i64.const 1 - local.set $2 - i32.const 1 - local.get $0 - i32.const 43 - i32.eq - local.get $0 - i32.const 45 - i32.eq - select - if - local.get $1 - i32.const 1 - i32.sub - local.tee $1 - i32.eqz - br_if $folding-inner0 - i64.const -1 - i64.const 1 - local.get $0 - i32.const 45 - i32.eq - select - local.set $2 - local.get $5 - i32.const 2 - i32.add - local.tee $5 - i32.load16_u - local.set $0 - end - local.get $1 - i32.const 2 - i32.gt_s - i32.const 0 - local.get $0 - i32.const 48 - i32.eq - select - if - block $break|1 - block $case2|1 - block $case1|1 - local.get $5 - 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 $5 - i32.const 4 - i32.add - local.set $5 - local.get $1 - i32.const 2 - i32.sub - local.set $1 - i32.const 2 - local.set $4 - br $break|1 - end - local.get $5 - i32.const 4 - i32.add - local.set $5 - local.get $1 - i32.const 2 - i32.sub - local.set $1 - i32.const 8 - local.set $4 - br $break|1 - end - local.get $5 - i32.const 4 - i32.add - local.set $5 - local.get $1 - i32.const 2 - i32.sub - local.set $1 - i32.const 16 - local.set $4 - end - end - local.get $4 - i32.const 10 - local.get $4 - select - local.set $4 - loop $while-continue|2 - block $while-break|2 - local.get $1 - local.tee $0 - i32.const 1 - i32.sub - local.set $1 - local.get $0 - if - local.get $4 - local.get $5 - i32.load16_u - local.tee $0 - i32.const 48 - i32.sub - i32.const 10 - i32.lt_u - if (result i32) - local.get $0 - i32.const 48 - i32.sub - else - local.get $0 - i32.const 55 - i32.sub - local.get $0 - i32.const 87 - i32.sub - local.get $0 - local.get $0 - i32.const 97 - i32.sub - i32.const 25 - i32.le_u - select - local.get $0 - i32.const 65 - i32.sub - i32.const 25 - i32.le_u - select - end - local.tee $0 - i32.le_u - if - local.get $3 - i64.eqz - br_if $folding-inner0 - br $while-break|2 - end - local.get $0 - i64.extend_i32_u - local.get $3 - local.get $4 - i64.extend_i32_s - i64.mul - i64.add - local.set $3 - local.get $5 - i32.const 2 - i32.add - local.set $5 - 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 $2 - local.get $3 - 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/strtod (param $0 i32) (result f64) - (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i64) - (local $6 i32) - (local $7 i32) - (local $8 i64) - (local $9 i64) - (local $10 f64) - (local $11 f64) - (local $12 i32) - (local $13 i64) - (local $14 i64) - 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 - 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 $6 - i32.eqz - br_if $folding-inner0 - local.get $0 - i32.load16_u - local.set $7 - f64.const 1 - local.set $11 - loop $while-continue|0 - local.get $6 - if (result i32) - local.get $7 - call $~lib/util/string/isSpace - else - i32.const 0 - end - if - local.get $0 - i32.const 2 - i32.add - local.tee $0 - i32.load16_u - local.set $7 - local.get $6 - i32.const 1 - i32.sub - local.set $6 - br $while-continue|0 - end - end - local.get $6 - i32.eqz - br_if $folding-inner0 - local.get $7 - i32.const 45 - i32.eq - if (result i32) + block $~lib/util/string/scientific|inlined.0 (result f64) + f64.const 0 + i32.const 1 + local.get $3 + local.get $1 + local.get $12 + 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 $1 + 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 $6 i32.const 1 i32.sub - local.tee $6 + local.tee $2 i32.eqz - br_if $folding-inner0 - f64.const -1 - local.set $11 + 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 $7 - i32.const 43 + local.tee $3 + i32.const 45 i32.eq if (result i32) - local.get $6 + i32.const 0 + local.get $2 i32.const 1 i32.sub - local.tee $6 + local.tee $2 i32.eqz - br_if $folding-inner0 + br_if $~lib/util/string/parseExp|inlined.0 + drop + i32.const -1 + local.set $1 local.get $0 i32.const 2 i32.add local.tee $0 i32.load16_u else - local.get $7 - end - end - local.tee $7 - i32.const 73 - i32.eq - i32.const 0 - local.get $6 - i32.const 8 - i32.ge_s - select - 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 $11 - f64.const inf - f64.mul - return - end - br $folding-inner0 - end - local.get $7 - i32.const 48 - i32.sub - i32.const 10 - i32.ge_u - i32.const 0 - local.get $7 - i32.const 46 - i32.ne - select - br_if $folding-inner0 - local.get $0 - local.set $2 - loop $while-continue|1 - local.get $7 - i32.const 48 - i32.eq - if - local.get $0 - i32.const 2 - i32.add - local.tee $0 - i32.load16_u - local.set $7 - local.get $6 - i32.const 1 - i32.sub - local.set $6 - br $while-continue|1 - end - end - local.get $6 - i32.const 0 - i32.le_s - br_if $folding-inner1 - local.get $7 - i32.const 46 - i32.eq - if - local.get $0 - local.get $2 - i32.eq - local.set $2 - local.get $0 - i32.const 2 - i32.add - local.set $0 - i32.const 0 - local.get $2 - local.get $6 - i32.const 1 - i32.sub - local.tee $6 - select - br_if $folding-inner0 - i32.const 1 - local.set $12 - loop $for-loop|2 - local.get $0 - i32.load16_u - local.tee $7 - i32.const 48 + local.get $3 + i32.const 43 i32.eq - if - local.get $6 - i32.const 1 - i32.sub - local.set $6 - local.get $3 - i32.const 1 - i32.sub - local.set $3 - local.get $0 - i32.const 2 - i32.add - local.set $0 - br $for-loop|2 - end - end - local.get $6 - i32.const 0 - i32.le_s - br_if $folding-inner1 - local.get $7 - i32.const 48 - i32.sub - i32.const 10 - i32.ge_u - i32.const 0 - i32.const 0 - local.get $2 - local.get $3 - select - select - br_if $folding-inner0 - end - local.get $7 - i32.const 48 - i32.sub - local.set $2 - loop $for-loop|3 - i32.const 1 - local.get $12 - i32.eqz - i32.const 0 - local.get $7 - i32.const 46 - i32.eq - select - local.get $2 - i32.const 10 - i32.lt_u - select - if - block $for-break3 + if (result i32) + i32.const 0 local.get $2 - i32.const 10 - i32.lt_u - if - local.get $2 - i64.extend_i32_u - local.get $5 - i64.const 10 - i64.mul - i64.add - local.get $5 - local.get $2 - i32.eqz - i32.eqz - i64.extend_i32_u - i64.or - local.get $1 - i32.const 19 - i32.lt_s - select - local.set $5 - local.get $1 - i32.const 1 - i32.add - local.set $1 - else - local.get $1 - local.set $3 - i32.const 1 - local.set $12 - end - local.get $6 i32.const 1 i32.sub - local.tee $6 + local.tee $2 i32.eqz - br_if $for-break3 + 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 $7 - i32.const 48 - i32.sub - local.set $2 - br $for-loop|3 - end - end - end - block $~lib/util/string/scientific|inlined.0 (result f64) - f64.const 0 - i32.const 1 - local.get $3 - local.get $1 - local.get $12 - 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 $1 - 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 $6 - i32.const 1 - i32.sub - local.tee $2 - 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 $3 - i32.const 45 + else + local.get $3 + end + end + local.set $3 + loop $while-continue|4 + local.get $3 + i32.const 48 i32.eq - if (result i32) + if i32.const 0 local.get $2 i32.const 1 @@ -6732,1614 +4456,2043 @@ i32.eqz br_if $~lib/util/string/parseExp|inlined.0 drop - i32.const -1 - local.set $1 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 $2 - i32.const 1 - i32.sub - local.tee $2 - 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 $2 - i32.const 1 - i32.sub - local.tee $2 - 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 + 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 48 - i32.sub - local.set $3 - loop $for-loop|5 + i32.const 10 + i32.lt_u + i32.const 0 + local.get $2 + select + if + local.get $1 + 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 $3 + local.get $4 i32.const 10 - i32.lt_u - i32.const 0 + i32.mul + i32.add + local.set $4 local.get $2 - select - if - local.get $1 - 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 $3 - local.get $4 - i32.const 10 - i32.mul - i32.add - local.set $4 - local.get $2 - i32.const 1 - i32.sub - local.set $2 - 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 + i32.const 1 + i32.sub + local.set $2 + 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 - local.get $1 - local.get $4 - i32.mul end - i32.add - local.tee $0 - i32.const -342 - i32.lt_s - local.get $5 - i64.eqz - select - br_if $~lib/util/string/scientific|inlined.0 - drop - f64.const inf + local.get $1 + local.get $4 + i32.mul + end + i32.add + local.tee $0 + i32.const -342 + i32.lt_s + local.get $5 + i64.eqz + select + br_if $~lib/util/string/scientific|inlined.0 + drop + f64.const inf + local.get $0 + i32.const 308 + i32.gt_s + br_if $~lib/util/string/scientific|inlined.0 + drop + local.get $5 + f64.convert_i64_u + local.tee $10 + local.get $0 + i32.eqz + br_if $~lib/util/string/scientific|inlined.0 + drop + local.get $0 + i32.const 37 + i32.le_s + i32.const 0 + local.get $0 + i32.const 22 + i32.gt_s + select + if + local.get $10 local.get $0 - i32.const 308 - i32.gt_s - br_if $~lib/util/string/scientific|inlined.0 - drop - local.get $5 - f64.convert_i64_u - local.tee $10 + i32.const 3 + i32.shl + i32.const 3920 + i32.add + f64.load + f64.mul + local.set $10 + i32.const 22 + local.set $0 + end + local.get $5 + i64.const 9007199254740991 + i64.le_u + if (result i32) local.get $0 - i32.eqz - br_if $~lib/util/string/scientific|inlined.0 - drop + i32.const 31 + i32.shr_s + local.tee $7 local.get $0 - i32.const 37 + local.get $7 + i32.add + i32.xor + i32.const 22 i32.le_s + else i32.const 0 + end + if (result f64) local.get $0 - i32.const 22 + i32.const 0 i32.gt_s - select if local.get $10 local.get $0 i32.const 3 i32.shl - i32.const 3920 + i32.const 4096 i32.add f64.load f64.mul - local.set $10 - i32.const 22 - local.set $0 - end - local.get $5 - i64.const 9007199254740991 - i64.le_u - if (result i32) - local.get $0 - i32.const 31 - i32.shr_s - local.tee $7 - local.get $0 - local.get $7 - i32.add - i32.xor - i32.const 22 - i32.le_s - else - i32.const 0 + br $~lib/util/string/scientific|inlined.0 end + local.get $10 + i32.const 0 + local.get $0 + i32.sub + i32.const 3 + i32.shl + i32.const 4096 + i32.add + f64.load + f64.div + else + local.get $0 + i32.const 0 + i32.lt_s if (result f64) + local.get $5 + local.get $5 + i64.clz + local.tee $8 + i64.shl + local.set $5 local.get $0 - i32.const 0 - i32.gt_s - if - local.get $10 - local.get $0 - i32.const 3 - i32.shl - i32.const 4096 - i32.add - f64.load - f64.mul - br $~lib/util/string/scientific|inlined.0 - end - local.get $10 - i32.const 0 - local.get $0 - i32.sub - i32.const 3 - i32.shl - i32.const 4096 - i32.add - f64.load - f64.div - else - local.get $0 - i32.const 0 - i32.lt_s - if (result f64) - local.get $5 - local.get $5 - i64.clz - local.tee $8 - i64.shl - local.set $5 - local.get $0 - local.tee $1 - i64.extend_i32_s - local.get $8 - i64.sub - local.set $8 - loop $for-loop|6 + local.tee $1 + i64.extend_i32_s + local.get $8 + i64.sub + local.set $8 + loop $for-loop|6 + local.get $1 + i32.const -14 + i32.le_s + if + local.get $5 + i64.const 6103515625 + i64.rem_u + local.get $5 + i64.const 6103515625 + i64.div_u + local.tee $5 + i64.clz + local.tee $9 + i64.const 18 + i64.sub + i64.shl + f64.convert_i64_u + f64.const 0.00004294967296 + f64.mul + f64.nearest + i64.trunc_f64_u + local.get $5 + local.get $9 + i64.shl + i64.add + local.set $5 + local.get $8 + local.get $9 + i64.sub + local.set $8 local.get $1 - i32.const -14 - i32.le_s - if - local.get $5 - i64.const 6103515625 - i64.rem_u - local.get $5 - i64.const 6103515625 - i64.div_u - local.tee $5 - i64.clz - local.tee $9 - i64.const 18 - i64.sub - i64.shl - f64.convert_i64_u - f64.const 0.00004294967296 - f64.mul - f64.nearest - i64.trunc_f64_u - local.get $5 - local.get $9 - i64.shl - i64.add - local.set $5 - local.get $8 - local.get $9 - i64.sub - local.set $8 - local.get $1 - i32.const 14 - i32.add - local.set $1 - br $for-loop|6 - end + i32.const 14 + i32.add + local.set $1 + br $for-loop|6 end - local.get $5 - i32.const 0 - local.get $1 - i32.sub - call $~lib/math/ipow32 - i64.extend_i32_s - local.tee $13 - i64.div_u - local.tee $14 - i64.clz - local.set $9 - local.get $5 - local.get $13 - i64.rem_u - f64.convert_i64_u - i64.reinterpret_f64 - local.get $9 - i64.const 52 - i64.shl - i64.add - f64.reinterpret_i64 - local.get $13 - f64.convert_i64_u - f64.div - i64.trunc_f64_u - local.get $14 - local.get $9 - i64.shl - i64.add - f64.convert_i64_u - local.get $8 - local.get $9 - i64.sub - i32.wrap_i64 - call $~lib/math/NativeMath.scalbn - else - local.get $5 - local.get $5 - i64.ctz - local.tee $8 - i64.shr_u - local.set $5 - local.get $8 - local.get $0 - local.tee $4 - i64.extend_i32_s - i64.add - global.set $~lib/util/string/__fixmulShift - loop $for-loop|7 + end + local.get $5 + i32.const 0 + local.get $1 + i32.sub + call $~lib/math/ipow32 + i64.extend_i32_s + local.tee $13 + i64.div_u + local.tee $14 + i64.clz + local.set $9 + local.get $5 + local.get $13 + i64.rem_u + f64.convert_i64_u + i64.reinterpret_f64 + local.get $9 + i64.const 52 + i64.shl + i64.add + f64.reinterpret_i64 + local.get $13 + f64.convert_i64_u + f64.div + i64.trunc_f64_u + local.get $14 + local.get $9 + i64.shl + i64.add + f64.convert_i64_u + local.get $8 + local.get $9 + i64.sub + i32.wrap_i64 + call $~lib/math/NativeMath.scalbn + else + local.get $5 + local.get $5 + i64.ctz + local.tee $8 + i64.shr_u + local.set $5 + local.get $8 + local.get $0 + local.tee $4 + i64.extend_i32_s + i64.add + global.set $~lib/util/string/__fixmulShift + loop $for-loop|7 + local.get $4 + i32.const 13 + i32.ge_s + if + i64.const 32 + local.get $5 + i64.const 32 + i64.shr_u + i64.const 1220703125 + i64.mul + local.get $5 + i64.const 4294967295 + i64.and + i64.const 1220703125 + i64.mul + local.tee $5 + i64.const 32 + i64.shr_u + i64.add + local.tee $8 + i64.const 32 + i64.shr_u + i32.wrap_i64 + i32.clz + local.tee $0 + i64.extend_i32_u + i64.sub + local.tee $9 + global.get $~lib/util/string/__fixmulShift + i64.add + global.set $~lib/util/string/__fixmulShift + local.get $5 + local.get $0 + i64.extend_i32_u + i64.shl + i64.const 31 + i64.shr_u + i64.const 1 + i64.and + local.get $8 + local.get $0 + i64.extend_i32_u + i64.shl + local.get $5 + i64.const 4294967295 + i64.and + local.get $9 + i64.shr_u + i64.or + i64.add + local.set $5 local.get $4 i32.const 13 - i32.ge_s - if - i64.const 32 - local.get $5 - i64.const 32 - i64.shr_u - i64.const 1220703125 - i64.mul - local.get $5 - i64.const 4294967295 - i64.and - i64.const 1220703125 - i64.mul - local.tee $5 - i64.const 32 - i64.shr_u - i64.add - local.tee $8 - i64.const 32 - i64.shr_u - i32.wrap_i64 - i32.clz - local.tee $0 - i64.extend_i32_u - i64.sub - local.tee $9 - global.get $~lib/util/string/__fixmulShift - i64.add - global.set $~lib/util/string/__fixmulShift - local.get $5 - local.get $0 - i64.extend_i32_u - i64.shl - i64.const 31 - i64.shr_u - i64.const 1 - i64.and - local.get $8 - local.get $0 - i64.extend_i32_u - i64.shl - local.get $5 - i64.const 4294967295 - i64.and - local.get $9 - i64.shr_u - i64.or - i64.add - local.set $5 - local.get $4 - i32.const 13 - i32.sub - local.set $4 - br $for-loop|7 - end + i32.sub + local.set $4 + br $for-loop|7 end - local.get $4 - call $~lib/math/ipow32 - local.tee $0 - i64.extend_i32_u - local.get $5 - i64.const 4294967295 - i64.and - i64.mul - local.set $8 - i64.const 32 - local.get $0 - i64.extend_i32_u - local.get $5 - i64.const 32 - i64.shr_u - i64.mul - local.get $8 - i64.const 32 - i64.shr_u - i64.add - local.tee $5 - i64.const 32 - i64.shr_u - i32.wrap_i64 - i32.clz - local.tee $0 - i64.extend_i32_u - i64.sub - local.tee $9 - global.get $~lib/util/string/__fixmulShift - i64.add - global.set $~lib/util/string/__fixmulShift - local.get $8 - local.get $0 - i64.extend_i32_u - i64.shl - i64.const 31 - i64.shr_u - i64.const 1 - i64.and - local.get $5 - local.get $0 - i64.extend_i32_u - i64.shl - local.get $8 - i64.const 4294967295 - i64.and - local.get $9 - 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 $4 + call $~lib/math/ipow32 + local.tee $0 + i64.extend_i32_u + local.get $5 + i64.const 4294967295 + i64.and + i64.mul + local.set $8 + i64.const 32 + local.get $0 + i64.extend_i32_u + local.get $5 + i64.const 32 + i64.shr_u + i64.mul + local.get $8 + i64.const 32 + i64.shr_u + i64.add + local.tee $5 + i64.const 32 + i64.shr_u + i32.wrap_i64 + i32.clz + local.tee $0 + i64.extend_i32_u + i64.sub + local.tee $9 + global.get $~lib/util/string/__fixmulShift + i64.add + global.set $~lib/util/string/__fixmulShift + local.get $8 + local.get $0 + i64.extend_i32_u + i64.shl + i64.const 31 + i64.shr_u + i64.const 1 + i64.and + local.get $5 + local.get $0 + i64.extend_i32_u + i64.shl + local.get $8 + i64.const 4294967295 + i64.and + local.get $9 + 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 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $11 - f64.copysign - return end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - f64.const nan:0x8000000000000 + local.get $11 + f64.copysign return end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - f64.const 0 + f64.const nan:0x8000000000000 ) - (func $~lib/string/parseFloat (param $0 i32) (result f64) - (local $1 f64) - global.get $~lib/memory/__stack_pointer - i32.const 4 + (func $~lib/string/String.__gt (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + i32.const 1 + local.get $1 + i32.eqz + i32.const 1 + local.get $0 + i32.eqz + local.get $0 + local.get $1 + i32.eq + select + select + if + i32.const 0 + return + end + local.get $0 + i32.const 20 i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer + i32.load offset=16 + i32.const 1 + i32.shr_u + local.tee $2 + i32.eqz + if + i32.const 0 + return + end + local.get $1 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u + local.tee $3 + i32.eqz + if + i32.const 1 + return + end + local.get $0 i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer + 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 + i32.const 0 + i32.gt_s + local.get $2 + local.get $3 + i32.gt_s + local.get $0 + select + ) + (func $~lib/string/String.__lt (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + i32.const 1 + local.get $1 + i32.eqz + i32.const 1 + local.get $0 + i32.eqz + local.get $0 + local.get $1 + i32.eq + select + select + if + i32.const 0 + return + end + local.get $1 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u + local.tee $2 + i32.eqz + if + i32.const 0 + return + end + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u + local.tee $3 + i32.eqz + if + i32.const 1 + return + end + 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.tee $1 + i32.const 0 + i32.lt_s + local.get $0 + local.get $1 + select + ) + (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 $2 + i32.load + i32.const -4 + i32.and + i32.const 16 + i32.sub + i32.le_u + if + local.get $2 + local.get $1 + i32.store offset=16 + local.get $0 + return + end + local.get $1 + local.get $2 + i32.load offset=12 + call $~lib/rt/itcms/__new + local.tee $3 local.get $0 - i32.store + local.get $1 + local.get $2 + i32.load offset=16 + local.tee $0 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 + local.get $1 + i32.gt_u + select + call $~lib/memory/memory.copy + local.get $3 ) - (func $~lib/string/String.__concat (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) + (func $~lib/rt/itcms/__link (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.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 - local.get $0 - i32.const 1968 - local.get $0 - select - local.tee $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 - 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 $1 i32.eqz if - global.get $~lib/memory/__stack_pointer - i32.const 1968 - i32.store - i32.const 1968 - local.set $1 + return end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 local.get $0 + i32.eqz + if + i32.const 0 + i32.const 1440 + i32.const 294 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/rt/itcms/white + local.get $1 i32.const 20 i32.sub - i32.load offset=16 + 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 + local.set $4 + local.get $3 + global.get $~lib/rt/itcms/white + i32.eqz + i32.eq + if + local.get $2 + if + local.get $0 + call $~lib/rt/itcms/Object#makeGray + else + local.get $1 + call $~lib/rt/itcms/Object#makeGray + end + else + global.get $~lib/rt/itcms/state + i32.const 1 + i32.eq + i32.const 0 + local.get $4 + i32.const 3 + i32.eq + select + 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) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + local.get $0 + i32.load offset=12 + local.tee $6 i32.const 1 - i32.shr_u + i32.add + local.tee $3 local.set $2 - global.get $~lib/memory/__stack_pointer + local.get $3 + local.get $0 + i32.load offset=8 + local.tee $4 + i32.const 2 + i32.shr_u + i32.gt_u + if + local.get $2 + i32.const 268435455 + i32.gt_u + if + i32.const 13408 + i32.const 15008 + i32.const 14 + i32.const 48 + call $~lib/builtins/abort + unreachable + end + local.get $4 + local.get $0 + i32.load + local.tee $7 + local.get $2 + i32.const 2 + i32.shl + local.tee $5 + call $~lib/rt/itcms/__renew + local.tee $2 + i32.add + local.get $5 + local.get $4 + i32.sub + call $~lib/memory/memory.fill + local.get $2 + local.get $7 + 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 $5 + i32.store offset=8 + end + local.get $0 + i32.load offset=4 + local.get $6 + i32.const 2 + i32.shl + i32.add local.get $1 - i32.store offset=4 - block $__inlined_func$~lib/string/String#concat + i32.store + local.get $0 + local.get $1 + i32.const 1 + call $~lib/rt/itcms/__link + local.get $0 + local.get $3 + i32.store offset=12 + ) + (func $~lib/util/number/decimalCount32 (param $0 i32) (result i32) + local.get $0 + i32.const 10 + i32.ge_u + i32.const 1 + i32.add + 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 + local.get $0 + i32.const 100 + i32.lt_u + select + local.get $0 + i32.const 1000000 + i32.ge_u + i32.const 6 + i32.add + 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 + local.get $0 + i32.const 10000000 + i32.lt_u + select + local.get $0 + i32.const 100000 + i32.lt_u + select + ) + (func $~lib/util/number/utoa_dec_simple (param $0 i32) (param $1 i32) (param $2 i32) + loop $do-continue|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 + i32.const 10 + i32.rem_u + i32.const 48 + i32.add + i32.store16 + local.get $1 + i32.const 10 + i32.div_u + local.tee $1 + br_if $do-continue|0 + end + ) + (func $~lib/util/number/utoa_hex_simple (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + loop $do-continue|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 + i32.const 15 + i32.and + i32.const 48 + i32.or local.tee $3 + i32.const 39 + i32.const 0 + local.get $3 + i32.const 57 + i32.gt_u + select + i32.add + i32.store16 local.get $1 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 1 + i32.const 4 i32.shr_u + local.tee $1 + br_if $do-continue|0 + end + ) + (func $~lib/util/number/ulog_base (param $0 i64) (param $1 i32) (result i32) + (local $2 i64) + (local $3 i64) + 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.shl - local.tee $4 i32.add - local.tee $2 - i32.eqz + return + end + local.get $1 + i64.extend_i32_s + local.tee $3 + local.set $2 + i32.const 1 + local.set $1 + loop $while-continue|0 + local.get $0 + local.get $2 + i64.ge_u if - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1712 + local.get $0 + local.get $2 + i64.div_u + local.set $0 + local.get $2 + local.get $2 + i64.mul local.set $2 - br $__inlined_func$~lib/string/String#concat + local.get $1 + i32.const 1 + i32.shl + local.set $1 + br $while-continue|0 end - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $2 - i32.store offset=8 - local.get $2 + end + loop $while-continue|1 local.get $0 + i64.const 1 + i64.ge_u + if + local.get $0 + local.get $3 + i64.div_u + local.set $0 + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $while-continue|1 + end + end + local.get $1 + i32.const 1 + i32.sub + ) + (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 $4 + local.get $3 + local.get $3 + i32.const 1 + i32.sub + i32.and + if + loop $do-continue|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 $4 + local.get $1 + local.get $4 + i64.div_u + local.tee $1 + i64.mul + i64.sub + i32.wrap_i64 + i32.const 1 + i32.shl + i32.const 15584 + i32.add + i32.load16_u + i32.store16 + local.get $1 + i64.const 0 + i64.ne + br_if $do-continue|1 + end + else local.get $3 - call $~lib/memory/memory.copy - local.get $2 - local.get $3 - i32.add - local.get $1 + i32.ctz + i32.const 7 + i32.and + i64.extend_i32_s + local.set $5 local.get $4 - call $~lib/memory/memory.copy - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer + i64.const 1 + i64.sub + local.set $4 + loop $do-continue|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 $4 + i64.and + i32.wrap_i64 + i32.const 1 + i32.shl + i32.const 15584 + i32.add + i32.load16_u + i32.store16 + local.get $1 + local.get $5 + i64.shr_u + local.tee $1 + i64.const 0 + i64.ne + br_if $do-continue|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/string/String.__ne (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 - call $~stack_check - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer + (func $~lib/util/number/decimalCount64High (param $0 i64) (result i32) local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 + i64.const 100000000000 + i64.ge_u + i32.const 10 + i32.add + local.get $0 + i64.const 10000000000 + i64.ge_u + i32.add + 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 + local.get $0 + i64.const 1000000000000 + i64.lt_u + select + local.get $0 + i64.const 10000000000000000 + i64.ge_u + i32.const 16 + i32.add + local.get $0 + i64.const -8446744073709551616 + i64.ge_u + i32.const 18 + i32.add local.get $0 - local.get $1 - call $~lib/string/String.__eq - i32.eqz - global.get $~lib/memory/__stack_pointer - i32.const 8 + i64.const 1000000000000000000 + i64.ge_u i32.add - global.set $~lib/memory/__stack_pointer + local.get $0 + i64.const 100000000000000000 + i64.lt_u + select + local.get $0 + i64.const 1000000000000000 + i64.lt_u + select ) - (func $~lib/string/String.__gt (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 - call $~stack_check - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - block $folding-inner0 - i32.const 1 - local.get $1 - i32.eqz - i32.const 1 - local.get $0 - i32.eqz - local.get $0 - local.get $1 - i32.eq - select - select - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store + (func $~lib/util/number/utoa_dec_simple (param $0 i32) (param $1 i64) (param $2 i32) + loop $do-continue|0 local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 + local.get $2 i32.const 1 - i32.shr_u + i32.sub local.tee $2 - i32.eqz - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer + i32.const 1 + i32.shl + i32.add local.get $1 - i32.store + i64.const 10 + i64.rem_u + i32.wrap_i64 + i32.const 48 + i32.add + i32.store16 local.get $1 - i32.const 20 + i64.const 10 + i64.div_u + local.tee $1 + i64.const 0 + i64.ne + br_if $do-continue|0 + end + ) + (func $~lib/util/number/utoa_hex_simple (param $0 i32) (param $1 i64) (param $2 i32) + (local $3 i64) + loop $do-continue|0 + local.get $0 + local.get $2 + i32.const 1 i32.sub - i32.load offset=16 + local.tee $2 i32.const 1 - i32.shr_u + i32.shl + i32.add + local.get $1 + i64.const 15 + i64.and + i64.const 48 + i64.or local.tee $3 - i32.eqz + i64.const 39 + i64.const 0 + local.get $3 + i64.const 57 + i64.gt_u + select + i64.add + i64.store16 + local.get $1 + i64.const 4 + i64.shr_u + local.tee $1 + i64.const 0 + i64.ne + br_if $do-continue|0 + end + ) + (func $~lib/util/number/genDigits (param $0 i64) (param $1 i32) (param $2 i64) (param $3 i32) (param $4 i64) (param $5 i32) (result i32) + (local $6 i64) + (local $7 i32) + (local $8 i64) + (local $9 i32) + (local $10 i64) + (local $11 i64) + local.get $2 + local.get $0 + i64.sub + local.set $8 + local.get $2 + i64.const 1 + i32.const 0 + local.get $3 + i32.sub + local.tee $9 + i64.extend_i32_s + i64.shl + local.tee $10 + i64.const 1 + i64.sub + local.tee $11 + i64.and + local.set $6 + local.get $2 + local.get $9 + i64.extend_i32_s + i64.shr_u + i32.wrap_i64 + local.tee $1 + call $~lib/util/number/decimalCount32 + local.set $7 + loop $while-continue|0 + local.get $7 + i32.const 0 + i32.gt_s if - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer + 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 $1 + i32.const 1000000000 + i32.div_u + local.set $3 + local.get $1 + i32.const 1000000000 + i32.rem_u + local.set $1 + br $break|1 + end + local.get $1 + i32.const 100000000 + i32.div_u + local.set $3 + local.get $1 + i32.const 100000000 + i32.rem_u + local.set $1 + br $break|1 + end + local.get $1 + i32.const 10000000 + i32.div_u + local.set $3 + local.get $1 + i32.const 10000000 + i32.rem_u + local.set $1 + br $break|1 + end + local.get $1 + i32.const 1000000 + i32.div_u + local.set $3 + local.get $1 + i32.const 1000000 + i32.rem_u + local.set $1 + br $break|1 + end + local.get $1 + i32.const 100000 + i32.div_u + local.set $3 + local.get $1 + i32.const 100000 + i32.rem_u + local.set $1 + br $break|1 + end + local.get $1 + i32.const 10000 + i32.div_u + local.set $3 + local.get $1 + i32.const 10000 + i32.rem_u + local.set $1 + br $break|1 + end + local.get $1 + i32.const 1000 + i32.div_u + local.set $3 + local.get $1 + i32.const 1000 + i32.rem_u + local.set $1 + br $break|1 + end + local.get $1 + i32.const 100 + i32.div_u + local.set $3 + local.get $1 + i32.const 100 + i32.rem_u + local.set $1 + br $break|1 + end + local.get $1 + i32.const 10 + i32.div_u + local.set $3 + local.get $1 + i32.const 10 + i32.rem_u + local.set $1 + br $break|1 + end + local.get $1 + local.set $3 + i32.const 0 + local.set $1 + br $break|1 + end + i32.const 0 + local.set $3 + end + local.get $3 + local.get $5 + i32.or + if + local.get $5 + i32.const 1 + i32.shl + i32.const 21168 + i32.add + local.get $3 + 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 - return + i32.sub + local.set $7 + local.get $6 + local.get $1 + i64.extend_i32_u + local.get $9 + i64.extend_i32_s + i64.shl + i64.add + local.tee $0 + local.get $4 + i64.le_u + if + local.get $7 + global.get $~lib/util/number/_K + i32.add + global.set $~lib/util/number/_K + local.get $7 + i32.const 2 + i32.shl + i32.const 22096 + i32.add + i64.load32_u + local.get $9 + i64.extend_i32_s + i64.shl + local.set $2 + local.get $5 + i32.const 1 + i32.shl + i32.const 21166 + i32.add + local.tee $3 + i32.load16_u + local.set $1 + loop $while-continue|3 + i32.const 1 + local.get $8 + local.get $0 + i64.sub + local.get $0 + local.get $2 + i64.add + local.tee $6 + local.get $8 + i64.sub + i64.gt_u + local.get $6 + local.get $8 + i64.lt_u + select + i32.const 0 + local.get $2 + local.get $4 + local.get $0 + i64.sub + i64.le_u + i32.const 0 + local.get $0 + local.get $8 + i64.lt_u + select + select + if + local.get $1 + i32.const 1 + i32.sub + local.set $1 + local.get $0 + local.get $2 + i64.add + local.set $0 + br $while-continue|3 + end + end + local.get $3 + local.get $1 + i32.store16 + local.get $5 + return + end + br $while-continue|0 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 - call $~stack_check - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - block $folding-inner0 - i32.const 1 - local.get $1 - i32.eqz - i32.const 1 - local.get $0 - i32.eqz - local.get $0 - local.get $1 - i32.eq - select - select - 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.get $9 + i64.extend_i32_s + local.set $0 + loop $while-continue|4 + local.get $4 + i64.const 10 + i64.mul + local.set $4 + local.get $6 + i64.const 10 + i64.mul 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 + i64.shr_u + local.tee $6 + local.get $5 + i64.extend_i32_s + i64.or + i64.const 0 + i64.ne if - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer + local.get $5 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 - 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 $1 - 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.lt_s - local.get $1 - local.get $0 - select - return + i32.shl + i32.const 21168 + i32.add + local.get $6 + 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 $4 + local.get $2 + local.get $11 + i64.and + local.tee $6 + i64.le_u + br_if $while-continue|4 end - global.get $~lib/memory/__stack_pointer - i32.const 8 + local.get $7 + global.get $~lib/util/number/_K i32.add - global.set $~lib/memory/__stack_pointer + global.set $~lib/util/number/_K + local.get $6 + local.set $0 + local.get $8 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 - 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 - 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/string/String.__lt - i32.eqz - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/string/String.__lte (param $0 i32) (param $1 i32) (result i32) - global.get $~lib/memory/__stack_pointer - i32.const 8 + local.get $7 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 - 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/string/String.__gt - i32.eqz - global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 2 + i32.shl + i32.const 22096 i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/string/String#repeat (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 - call $~stack_check - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - i32.const 1 - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 1 - i32.shr_u - local.tee $2 - i64.extend_i32_s - local.get $1 - i64.extend_i32_s + i64.load32_u i64.mul - i64.const 268435456 - i64.gt_u - local.get $1 - i32.const 0 - i32.lt_s - select - if - i32.const 13408 - i32.const 1328 - i32.const 333 - i32.const 7 - call $~lib/builtins/abort - unreachable - end - local.get $2 - i32.eqz - i32.const 1 - local.get $1 - select - 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 - end - global.get $~lib/memory/__stack_pointer - local.get $1 - local.get $2 - i32.mul - i32.const 1 - i32.shl - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $3 - i32.store offset=4 - local.get $3 - local.get $0 - local.get $2 + local.set $2 + local.get $5 i32.const 1 i32.shl - local.get $1 - call $~lib/memory/memory.repeat - global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 21166 i32.add - global.set $~lib/memory/__stack_pointer - local.get $3 - ) - (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 - 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 - 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 $1 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 1 - i32.shr_u - local.tee $4 - local.get $3 - i32.ge_u - if - local.get $3 - local.get $4 - 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 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer + local.tee $3 + i32.load16_u + local.set $1 + loop $while-continue|6 + i32.const 1 + local.get $2 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 + i64.sub + local.get $0 + local.get $10 + i64.add + local.tee $6 local.get $2 - i32.store + i64.sub + i64.gt_u local.get $2 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 1 - i32.shr_u - local.tee $5 - local.get $3 + local.get $6 + i64.gt_u + select + i32.const 0 + local.get $10 local.get $4 - i32.sub - local.tee $6 - i32.add - local.tee $3 + local.get $0 + i64.sub + i64.le_u + i32.const 0 + local.get $0 + local.get $2 + i64.lt_u + select + select if - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.const 1 - i32.shl - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $3 - i32.store offset=8 - local.get $3 - local.get $0 - local.get $1 - i32.const 1 - i32.shl - local.tee $7 - call $~lib/memory/memory.copy - local.get $3 - local.get $7 - i32.add - local.get $2 - local.get $5 - i32.const 1 - i32.shl - call $~lib/memory/memory.copy - local.get $3 - local.get $1 - local.get $5 - i32.add - i32.const 1 - i32.shl - i32.add - local.get $0 local.get $1 - local.get $4 - i32.add i32.const 1 - i32.shl - i32.add - local.get $6 - local.get $1 i32.sub - i32.const 1 - i32.shl - call $~lib/memory/memory.copy - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $3 - return + local.set $1 + local.get $0 + local.get $10 + i64.add + local.set $0 + br $while-continue|6 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 $1 + i32.store16 + local.get $5 ) - (func $~lib/string/String#replaceAll (param $0 i32) (param $1 i32) (param $2 i32) (result 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) - (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.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 - 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 - local.tee $3 - i32.store - block $folding-inner0 + local.get $2 + i32.eqz + if + local.get $0 local.get $1 - i32.const 20 - i32.sub - i32.load offset=16 i32.const 1 - i32.shr_u - local.tee $7 - local.get $4 - local.tee $1 - i32.ge_u - if + 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 + i32.const 0 + local.get $1 + local.get $3 + i32.le_s + select + if (result i32) + loop $for-loop|0 local.get $1 - local.get $7 - i32.ge_u + local.get $3 + i32.lt_s if - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $2 - local.get $0 - local.get $3 local.get $0 - call $~lib/string/String.__eq - select - local.set $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 - br $folding-inner0 end - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $2 - i32.const 20 - i32.sub - i32.load offset=16 + local.get $0 + local.get $3 i32.const 1 - i32.shr_u - local.set $4 - local.get $7 - i32.eqz - if - local.get $4 - i32.eqz - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.get $1 - local.get $4 - local.get $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 + i32.const 0 + local.get $3 + i32.const 0 + i32.gt_s + select + if (result i32) + local.get $0 + local.get $3 i32.const 1 + i32.shl i32.add - i32.mul + local.tee $0 + i32.const 2 i32.add - i32.const 1 - i32.shl - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $5 - i32.store offset=8 - local.get $5 + local.get $0 + i32.const 0 local.get $2 - local.get $4 + i32.sub i32.const 1 i32.shl call $~lib/memory/memory.copy - local.get $4 - local.set $3 - loop $for-loop|0 + 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 + i32.const 0 + local.get $3 + i32.const -6 + i32.gt_s + select + 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 - local.get $9 - i32.gt_u - if - local.get $5 + i32.const 1 + i32.shl + call $~lib/memory/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.const 1 - i32.shl - i32.add + 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 (result i32) local.get $0 - local.get $9 - i32.const 1 - i32.shl + i32.const 101 + i32.store16 offset=2 + local.get $0 + local.tee $1 + i32.const 4 i32.add - i32.load16_u - i32.store16 - local.get $5 local.get $3 i32.const 1 - i32.add - local.tee $3 + 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 + call $~lib/util/number/decimalCount32 i32.const 1 - i32.shl i32.add + local.tee $0 + call $~lib/util/number/utoa_dec_simple + local.get $1 + i32.const 45 + i32.const 43 local.get $2 - local.get $4 - i32.const 1 - i32.shl - call $~lib/memory/memory.copy - local.get $3 - local.get $4 + select + i32.store16 offset=4 + local.get $0 + i32.const 2 i32.add - local.set $3 - local.get $9 - i32.const 1 + else + local.get $0 + i32.const 4 i32.add - local.set $9 - 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 $5 - return - end - local.get $4 - local.get $7 - i32.eq - if - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.const 1 - i32.shl - local.tee $5 - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $1 - i32.store offset=8 - local.get $1 - local.get $0 - local.get $5 - call $~lib/memory/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 $3 - i32.store offset=4 - local.get $0 - local.get $3 - local.get $10 - call $~lib/string/String#indexOf - local.tee $5 - i32.const -1 - i32.xor - if - local.get $1 - local.get $5 - i32.const 1 - i32.shl + local.get $0 + i32.const 2 i32.add - local.get $2 - local.get $4 + local.get $1 i32.const 1 i32.shl + local.tee $2 + i32.const 2 + i32.sub call $~lib/memory/memory.copy - local.get $5 - local.get $7 + local.get $0 + i32.const 46 + i32.store16 offset=2 + local.get $0 + local.get $2 i32.add - local.set $10 - br $while-continue|1 - end - end - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $1 - return - end - local.get $1 - 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 $3 - i32.store offset=4 - local.get $0 - local.get $3 - local.get $10 - call $~lib/string/String#indexOf - local.tee $9 - 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 $1 - i32.const 1 - i32.shl - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $11 - i32.store offset=12 - end - local.get $5 - local.get $4 - local.get $8 - local.get $9 - local.get $10 - i32.sub - local.tee $6 - i32.add - i32.add - i32.lt_u - if - global.get $~lib/memory/__stack_pointer - local.get $11 - local.get $5 + local.tee $0 + i32.const 101 + i32.store16 offset=2 + local.get $0 + local.tee $2 + i32.const 4 + i32.add + local.get $3 i32.const 1 - i32.shl - local.tee $5 + 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 + call $~lib/util/number/decimalCount32 i32.const 1 - i32.shl - call $~lib/rt/itcms/__renew - local.tee $11 - i32.store offset=12 + i32.add + local.tee $0 + call $~lib/util/number/utoa_dec_simple + local.get $2 + i32.const 45 + i32.const 43 + local.get $3 + select + i32.store16 offset=4 + local.get $0 + local.get $1 + i32.add + i32.const 2 + i32.add end - local.get $11 - local.get $8 - 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 - call $~lib/memory/memory.copy - local.get $11 - local.get $6 - local.get $8 - i32.add - local.tee $10 - i32.const 1 - i32.shl - i32.add - local.get $2 - local.get $4 - i32.const 1 - i32.shl - call $~lib/memory/memory.copy - local.get $4 - local.get $10 - i32.add - local.set $8 - local.get $7 - local.get $9 - i32.add - local.set $10 - br $while-continue|2 - end - end - local.get $11 - if - local.get $5 - local.get $8 - local.get $1 - local.get $10 - i32.sub - local.tee $1 - i32.add - i32.lt_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=12 - end - local.get $1 - if - local.get $11 - local.get $8 - 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 - call $~lib/memory/memory.copy - end - local.get $5 - local.get $1 - local.get $8 - i32.add - local.tee $0 - i32.gt_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=12 end - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $11 - return end - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - return end - global.get $~lib/memory/__stack_pointer - i32.const 16 - 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) - (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 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store + (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 i32) + (local $7 i32) + (local $8 i32) + (local $9 i64) + (local $10 i64) + (local $11 i64) 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 + f64.const 0 + f64.lt + local.tee $8 + if (result f64) + i32.const 21168 + i32.const 45 + i32.store16 + local.get $0 + f64.neg else - local.get $1 - local.get $3 - local.get $1 - local.get $3 - i32.lt_s - select + local.get $0 end - local.set $1 - local.get $2 + i64.reinterpret_f64 + local.tee $3 + i64.const 9218868437227405312 + i64.and + i64.const 52 + i64.shr_u + i32.wrap_i64 + local.tee $6 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 + i32.ne + i64.extend_i32_u + i64.const 52 + i64.shl + local.get $3 + i64.const 4503599627370495 + i64.and + i64.add + local.tee $1 + i64.const 1 + i64.shl + i64.const 1 + i64.add + local.tee $3 + i64.clz + i32.wrap_i64 + local.set $2 + local.get $3 + local.get $2 + i64.extend_i32_s + i64.shl + global.set $~lib/util/number/_frc_plus + local.get $6 + i32.const 1 + local.get $6 + select + i32.const 1075 + i32.sub + local.tee $6 + i32.const 1 + i32.sub + local.get $2 + i32.sub + local.set $2 local.get $1 + local.get $1 + i64.const 4503599627370496 + i64.eq + i32.const 1 + i32.add + local.tee $7 + i64.extend_i32_s + i64.shl + i64.const 1 + i64.sub + local.get $6 + local.get $7 + i32.sub + local.get $2 + i32.sub + i64.extend_i32_s + i64.shl + global.set $~lib/util/number/_frc_minus + local.get $2 + 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_f64_s 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 $0 local.get $2 + f64.convert_i32_s + f64.ne + i32.add + i32.const 3 + i32.shr_s i32.const 1 - i32.shl - local.tee $3 - i32.const 1 - call $~lib/rt/itcms/__new + i32.add local.tee $2 - i32.store offset=4 + i32.const 3 + i32.shl + local.tee $7 + i32.sub + global.set $~lib/util/number/_K + local.get $7 + i32.const 21224 + i32.add + i64.load + global.set $~lib/util/number/_frc_pow local.get $2 - local.get $0 - local.get $1 i32.const 1 i32.shl + i32.const 21920 + i32.add + i32.load16_s + global.set $~lib/util/number/_exp_pow + global.get $~lib/util/number/_frc_pow + local.tee $4 + i64.const 32 + i64.shr_u + local.set $3 + local.get $4 + i64.const 4294967295 + i64.and + local.tee $4 + global.get $~lib/util/number/_frc_plus + local.tee $5 + i64.const 32 + i64.shr_u + local.tee $10 + i64.mul + local.get $4 + local.get $5 + i64.const 4294967295 + i64.and + local.tee $11 + i64.mul + i64.const 32 + i64.shr_u + i64.add + local.set $5 + local.get $8 + i32.const 1 + i32.shl + i32.const 21168 i32.add local.get $3 - call $~lib/memory/memory.copy + local.get $1 + local.get $1 + i64.clz + i32.wrap_i64 + local.tee $2 + i64.extend_i32_s + i64.shl + local.tee $1 + i64.const 32 + i64.shr_u + local.tee $9 + i64.mul + local.get $4 + local.get $9 + i64.mul + local.get $4 + local.get $1 + i64.const 4294967295 + i64.and + local.tee $1 + i64.mul + i64.const 32 + i64.shr_u + i64.add + local.tee $9 + i64.const 32 + i64.shr_u + i64.add + local.get $1 + local.get $3 + i64.mul + local.get $9 + i64.const 4294967295 + i64.and + i64.add + i64.const 2147483647 + i64.add + i64.const 32 + i64.shr_u + i64.add + global.get $~lib/util/number/_exp_pow + local.tee $7 + local.get $6 + local.get $2 + i32.sub + i32.add + i32.const -64 + i32.sub + local.get $3 + local.get $10 + i64.mul + local.get $5 + i64.const 32 + i64.shr_u + i64.add + local.get $3 + local.get $11 + 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 + i64.const 1 + i64.sub + local.tee $1 + local.get $7 + global.get $~lib/util/number/_exp + i32.add + i32.const -64 + i32.sub + local.get $1 + local.get $3 + global.get $~lib/util/number/_frc_minus + local.tee $1 + i64.const 32 + i64.shr_u + local.tee $5 + i64.mul + local.get $4 + local.get $5 + i64.mul + local.get $4 + local.get $1 + i64.const 4294967295 + i64.and + local.tee $4 + i64.mul + i64.const 32 + i64.shr_u + i64.add + local.tee $1 + i64.const 32 + i64.shr_u + i64.add + local.get $3 + local.get $4 + 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 + local.get $8 + call $~lib/util/number/genDigits + local.get $8 + i32.sub + global.get $~lib/util/number/_K + call $~lib/util/number/prettify + local.get $8 + i32.add + ) + (func $std/string/getString (result i32) + global.get $std/string/str + ) + (func $~lib/rt/__visit_members (param $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + block $invalid + block $~lib/array/Array + block $~lib/array/Array<~lib/string/String> + block $~lib/arraybuffer/ArrayBufferView + block $~lib/string/String + block $~lib/arraybuffer/ArrayBuffer + local.get $0 + i32.const 8 + i32.sub + i32.load + br_table $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $~lib/array/Array<~lib/string/String> $~lib/array/Array $invalid + 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 + i32.load offset=4 + local.tee $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 + 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 $~start + call $start:std/string + ) + (func $~stack_check global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $2 + i32.const 24044 + i32.lt_s + if + i32.const 40448 + i32.const 40496 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end ) - (func $~lib/string/String#substr (param $0 i32) (param $1 i32) (param $2 i32) (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.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 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store - local.get $2 - i32.const 0 - local.get $2 - i32.const 0 - i32.gt_s - select - local.tee $2 + i32.const 1968 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 - 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 - end - local.get $1 - i32.sub - local.tee $3 - local.get $2 - local.get $3 - i32.lt_s select - i32.const 1 - 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 1712 - return - end - global.get $~lib/memory/__stack_pointer - local.get $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.const 1 - i32.shl - i32.add - local.get $2 - call $~lib/memory/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) (param $2 i32) (result i32) - (local $3 i32) - (local $4 i32) + i32.store global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -8348,101 +6501,72 @@ 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.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.lt_s - select - i32.const 1 - i32.shl - local.tee $4 - local.get $3 - local.get $2 - local.get $2 - local.get $3 - i32.gt_s - select - i32.const 1 - i32.shl - local.tee $2 - i32.sub - local.tee $3 - i32.eqz - if + block $__inlined_func$~lib/string/String#concat + local.get $1 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 1968 + i32.store + i32.const 1968 + local.set $1 + end + local.get $1 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u + i32.const 1 + i32.shl + local.tee $4 + local.get $2 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u + i32.const 1 + i32.shl + local.tee $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 1712 + local.set $0 + br $__inlined_func$~lib/string/String#concat + end global.get $~lib/memory/__stack_pointer - i32.const 8 + local.get $0 + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store offset=4 + local.get $0 + local.get $2 + local.get $3 + call $~lib/memory/memory.copy + local.get $0 + local.get $3 i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1712 - return - end - i32.const 0 - local.get $4 - local.get $1 - i32.const 1 - i32.shl - i32.eq - local.get $2 - select - if + local.get $1 + local.get $4 + call $~lib/memory/memory.copy 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 1 - call $~lib/rt/itcms/__new - local.tee $1 - i32.store offset=4 - local.get $1 - local.get $0 - local.get $2 - i32.add - local.get $3 - call $~lib/memory/memory.copy - 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 ) (func $~lib/string/String#split (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) @@ -8454,7 +6578,7 @@ (local $9 i32) (local $10 i32) global.get $~lib/memory/__stack_pointer - i32.const 28 + i32.const 24 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check @@ -8467,9 +6591,6 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store offset=16 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=24 block $folding-inner2 block $folding-inner1 block $folding-inner0 @@ -8500,26 +6621,20 @@ local.set $0 br $folding-inner1 end - global.get $~lib/memory/__stack_pointer - 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 $4 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 + local.set $3 i32.const 2147483647 local.get $2 local.get $2 i32.const 0 i32.lt_s select - local.set $6 + local.set $7 local.get $1 i32.const 20 i32.sub @@ -8530,7 +6645,7 @@ local.set $8 local.get $2 if - local.get $4 + local.get $3 i32.eqz if global.get $~lib/memory/__stack_pointer @@ -8545,44 +6660,44 @@ br $folding-inner1 end else - local.get $4 + local.get $3 i32.eqz br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.get $4 - local.get $6 - local.get $4 - local.get $6 + local.get $3 + local.get $7 + local.get $3 + local.get $7 i32.lt_s select - local.tee $5 + local.tee $4 call $~lib/rt/__newArray local.tee $1 i32.store local.get $1 i32.load offset=4 - local.set $4 + local.set $3 loop $for-loop|0 - local.get $3 + local.get $4 local.get $5 - i32.lt_s + i32.gt_s if global.get $~lib/memory/__stack_pointer i32.const 2 i32.const 1 call $~lib/rt/itcms/__new local.tee $2 - i32.store offset=12 + i32.store offset=8 local.get $2 local.get $0 - local.get $3 + local.get $5 i32.const 1 i32.shl i32.add i32.load16_u i32.store16 - local.get $4 local.get $3 + local.get $5 i32.const 2 i32.shl i32.add @@ -8592,15 +6707,15 @@ local.get $2 i32.const 1 call $~lib/rt/itcms/__link - local.get $3 + local.get $5 i32.const 1 i32.add - local.set $3 + local.set $5 br $for-loop|0 end end global.get $~lib/memory/__stack_pointer - i32.const 28 + i32.const 24 i32.add global.set $~lib/memory/__stack_pointer local.get $1 @@ -8610,59 +6725,44 @@ i32.const 0 call $~lib/rt/__newArray local.tee $2 - i32.store offset=16 + i32.store offset=12 loop $while-continue|1 - 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=20 local.get $0 local.get $1 - local.get $5 + local.get $4 call $~lib/string/String#indexOf - local.tee $7 + local.tee $5 i32.const -1 i32.xor if - local.get $7 local.get $5 + local.get $4 i32.sub - local.tee $3 + local.tee $6 i32.const 0 i32.gt_s if global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $6 i32.const 1 i32.shl local.tee $9 i32.const 1 call $~lib/rt/itcms/__new - local.tee $3 - i32.store offset=24 - local.get $3 + local.tee $6 + i32.store offset=16 + local.get $6 local.get $0 - local.get $5 + local.get $4 i32.const 1 i32.shl i32.add local.get $9 call $~lib/memory/memory.copy - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=20 local.get $2 - local.get $3 + local.get $6 call $~lib/array/Array<~lib/string/String>#push else - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=8 global.get $~lib/memory/__stack_pointer i32.const 1712 i32.store offset=20 @@ -8674,32 +6774,26 @@ i32.const 1 i32.add local.tee $10 - local.get $6 + local.get $7 i32.eq br_if $folding-inner2 - local.get $7 + local.get $5 local.get $8 i32.add - local.set $5 + local.set $4 br $while-continue|1 end end - local.get $5 + local.get $4 i32.eqz if - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=20 local.get $2 local.get $0 call $~lib/array/Array<~lib/string/String>#push br $folding-inner2 end + local.get $3 local.get $4 - local.get $5 i32.sub local.tee $1 i32.const 0 @@ -8709,32 +6803,23 @@ local.get $1 i32.const 1 i32.shl - local.tee $4 + local.tee $3 i32.const 1 call $~lib/rt/itcms/__new local.tee $1 i32.store offset=4 local.get $1 local.get $0 - local.get $5 + local.get $4 i32.const 1 i32.shl i32.add - local.get $4 + local.get $3 call $~lib/memory/memory.copy - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=20 local.get $2 local.get $1 call $~lib/array/Array<~lib/string/String>#push else - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=8 global.get $~lib/memory/__stack_pointer i32.const 1712 i32.store offset=20 @@ -8743,7 +6828,7 @@ call $~lib/array/Array<~lib/string/String>#push end global.get $~lib/memory/__stack_pointer - i32.const 28 + i32.const 24 i32.add global.set $~lib/memory/__stack_pointer local.get $2 @@ -8754,14 +6839,14 @@ local.set $0 end global.get $~lib/memory/__stack_pointer - i32.const 28 + i32.const 24 i32.add global.set $~lib/memory/__stack_pointer local.get $0 return end global.get $~lib/memory/__stack_pointer - i32.const 28 + i32.const 24 i32.add global.set $~lib/memory/__stack_pointer local.get $2 @@ -8773,7 +6858,6 @@ (local $3 i32) (local $4 i32) (local $5 f32) - (local $6 i64) global.get $~lib/memory/__stack_pointer i32.const 44 i32.sub @@ -8886,18 +6970,8 @@ global.get $std/string/str local.tee $0 i32.store - 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 - local.get $0 - i32.store - block $__inlined_func$~lib/string/String#charCodeAt + block $__inlined_func$~lib/string/String#charCodeAt (result i32) + i32.const -1 local.get $0 i32.const 20 i32.sub @@ -8905,24 +6979,11 @@ 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 - end + br_if $__inlined_func$~lib/string/String#charCodeAt + drop 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 104 i32.ne if @@ -9260,29 +7321,13 @@ i32.const 1936 i32.store offset=4 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 - 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 $1 - global.get $~lib/memory/__stack_pointer - i32.const 1936 - i32.store offset=4 + i32.store i32.const 1932 i32.load i32.const 1 @@ -9290,7 +7335,13 @@ local.tee $3 local.set $4 block $__inlined_func$~lib/string/String#startsWith - local.get $1 + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u + local.tee $1 local.get $3 i32.const 0 local.get $1 @@ -9303,19 +7354,13 @@ i32.lt_s if global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer i32.const 0 local.set $0 br $__inlined_func$~lib/string/String#startsWith end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 1936 - i32.store offset=8 local.get $0 local.get $1 i32.const 1936 @@ -9324,7 +7369,7 @@ i32.eqz local.set $0 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer end @@ -9345,99 +7390,52 @@ global.get $~lib/memory/__stack_pointer i32.const 2000 i32.store offset=4 - 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 - 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 $1 - global.get $~lib/memory/__stack_pointer - i32.const 2000 - i32.store - i32.const 1996 - i32.load - i32.const 1 - i32.shr_u - local.tee $3 - local.set $4 - block $__inlined_func$~lib/string/String#endsWith + block $__inlined_func$~lib/string/String#endsWith (result i32) + i32.const 1996 + i32.load + i32.const 1 + i32.shr_u + local.tee $1 + local.set $3 + i32.const 0 i32.const 536870910 - local.get $1 - local.get $1 + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u + local.tee $4 + local.get $4 i32.const 536870910 - i32.gt_s + i32.gt_u select - local.get $3 + local.get $1 i32.sub local.tee $1 i32.const 0 - i32.ge_s - if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 2000 - i32.store offset=4 - local.get $0 - local.get $1 - i32.const 2000 - 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 $__inlined_func$~lib/string/String#endsWith - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 0 - local.set $0 + i32.lt_s + br_if $__inlined_func$~lib/string/String#endsWith + drop + local.get $0 + local.get $1 + i32.const 2000 + local.get $3 + call $~lib/util/string/compareImpl + i32.eqz end - local.get $0 i32.eqz if i32.const 0 i32.const 1120 - i32.const 34 - 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 2032 - i32.store offset=4 - 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 34 + i32.const 1 + call $~lib/builtins/abort + unreachable + end 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 i32.const 2032 @@ -9447,12 +7445,7 @@ 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 + i32.eq if i32.const 0 i32.const 1120 @@ -10774,7 +8767,7 @@ i32.store i32.const 2816 i32.const 0 - call $~lib/string/parseInt + call $~lib/util/string/strtol f64.const 0 f64.ne if @@ -10790,7 +8783,7 @@ i32.store i32.const 2848 i32.const 0 - call $~lib/string/parseInt + call $~lib/util/string/strtol f64.const 0 f64.ne if @@ -10806,7 +8799,7 @@ i32.store i32.const 2880 i32.const 0 - call $~lib/string/parseInt + call $~lib/util/string/strtol f64.const 1 f64.ne if @@ -10822,7 +8815,7 @@ i32.store i32.const 2912 i32.const 0 - call $~lib/string/parseInt + call $~lib/util/string/strtol f64.const 1 f64.ne if @@ -10838,7 +8831,7 @@ i32.store i32.const 2944 i32.const 0 - call $~lib/string/parseInt + call $~lib/util/string/strtol f64.const 5 f64.ne if @@ -10854,7 +8847,7 @@ i32.store i32.const 2976 i32.const 0 - call $~lib/string/parseInt + call $~lib/util/string/strtol f64.const 455 f64.ne if @@ -10870,7 +8863,7 @@ i32.store i32.const 3008 i32.const 0 - call $~lib/string/parseInt + call $~lib/util/string/strtol f64.const 3855 f64.ne if @@ -10886,7 +8879,7 @@ i32.store i32.const 3040 i32.const 0 - call $~lib/string/parseInt + call $~lib/util/string/strtol f64.const 3855 f64.ne if @@ -10902,7 +8895,7 @@ i32.store i32.const 3072 i32.const 0 - call $~lib/string/parseInt + call $~lib/util/string/strtol f64.const 11 f64.ne if @@ -10918,7 +8911,7 @@ i32.store i32.const 3104 i32.const 0 - call $~lib/string/parseInt + call $~lib/util/string/strtol f64.const 1 f64.ne if @@ -10934,7 +8927,7 @@ i32.store i32.const 3136 i32.const 0 - call $~lib/string/parseInt + call $~lib/util/string/strtol f64.const -123 f64.ne if @@ -10950,7 +8943,7 @@ i32.store i32.const 3168 i32.const 0 - call $~lib/string/parseInt + call $~lib/util/string/strtol f64.const 123 f64.ne if @@ -10966,7 +8959,7 @@ i32.store i32.const 3200 i32.const 0 - call $~lib/string/parseInt + call $~lib/util/string/strtol f64.const -12 f64.ne if @@ -10982,7 +8975,7 @@ i32.store i32.const 2816 i32.const 0 - call $~lib/string/parseInt + call $~lib/util/string/strtol f64.const 0 f64.ne if @@ -10998,7 +8991,7 @@ i32.store i32.const 3232 i32.const 0 - call $~lib/string/parseInt + call $~lib/util/string/strtol f64.const 0 f64.ne if @@ -11014,7 +9007,7 @@ i32.store i32.const 3264 i32.const 16 - call $~lib/string/parseInt + call $~lib/util/string/strtol f64.const 2833 f64.ne if @@ -11030,7 +9023,7 @@ i32.store i32.const 3296 i32.const 0 - call $~lib/string/parseInt + call $~lib/util/string/strtol f64.const 1 f64.ne if @@ -11046,7 +9039,7 @@ i32.store i32.const 3328 i32.const 0 - call $~lib/string/parseInt + call $~lib/util/string/strtol f64.const 1 f64.ne if @@ -11062,7 +9055,7 @@ i32.store i32.const 3360 i32.const 0 - call $~lib/string/parseInt + call $~lib/util/string/strtol f64.const 1 f64.ne if @@ -11078,7 +9071,7 @@ i32.store i32.const 3392 i32.const 0 - call $~lib/string/parseInt + call $~lib/util/string/strtol i64.reinterpret_f64 i64.const 63 i64.shr_u @@ -11096,14 +9089,14 @@ i32.store i32.const 3424 i32.const 0 - call $~lib/string/parseInt + call $~lib/util/string/strtol local.set $2 global.get $~lib/memory/__stack_pointer i32.const 3472 i32.store i32.const 3472 i32.const 16 - call $~lib/string/parseInt + call $~lib/util/string/strtol local.get $2 f64.ne if @@ -11119,7 +9112,7 @@ i32.store i32.const 3504 i32.const 0 - call $~lib/string/parseInt + call $~lib/util/string/strtol f64.const 36893488147419103232 f64.ne if @@ -11135,7 +9128,7 @@ i32.store i32.const 3504 i32.const 13 - call $~lib/string/parseInt + call $~lib/util/string/strtol f64.const 5135857308667095285760 f64.ne if @@ -11151,7 +9144,7 @@ i32.store i32.const 3568 i32.const 10 - call $~lib/string/parseInt + call $~lib/util/string/strtol f64.const -1.e+24 f64.ne if @@ -11167,7 +9160,7 @@ i32.store i32.const 3648 i32.const 16 - call $~lib/string/parseInt + call $~lib/util/string/strtol f64.const 75557863725914323419136 f64.ne if @@ -11183,7 +9176,7 @@ i32.store i32.const 3712 i32.const 0 - call $~lib/string/parseInt + call $~lib/util/string/strtol f64.const 1 f64.ne if @@ -11199,7 +9192,7 @@ i32.store i32.const 3744 i32.const 0 - call $~lib/string/parseInt + call $~lib/util/string/strtol f64.const 2 f64.ne if @@ -11215,7 +9208,7 @@ i32.store i32.const 3792 i32.const 0 - call $~lib/string/parseInt + call $~lib/util/string/strtol f64.const 1 f64.ne if @@ -11231,7 +9224,7 @@ i32.store i32.const 3824 i32.const 0 - call $~lib/string/parseInt + call $~lib/util/string/strtol f64.const 2 f64.ne if @@ -11247,7 +9240,7 @@ i32.store i32.const 1712 i32.const 0 - call $~lib/string/parseInt + call $~lib/util/string/strtol local.tee $2 local.get $2 f64.eq @@ -11264,7 +9257,7 @@ i32.store i32.const 3872 i32.const 0 - call $~lib/string/parseInt + call $~lib/util/string/strtol local.tee $2 local.get $2 f64.eq @@ -11281,7 +9274,7 @@ i32.store i32.const 3904 i32.const 0 - call $~lib/string/parseInt + call $~lib/util/string/strtol local.tee $2 local.get $2 f64.eq @@ -11298,7 +9291,7 @@ i32.store i32.const 2192 i32.const 37 - call $~lib/string/parseInt + call $~lib/util/string/strtol local.tee $2 local.get $2 f64.eq @@ -11315,7 +9308,7 @@ i32.store i32.const 3936 i32.const 0 - call $~lib/string/parseInt + call $~lib/util/string/strtol local.tee $2 local.get $2 f64.eq @@ -11332,7 +9325,7 @@ i32.store i32.const 3968 i32.const 0 - call $~lib/string/parseInt + call $~lib/util/string/strtol local.tee $2 local.get $2 f64.eq @@ -11347,27 +9340,11 @@ global.get $~lib/memory/__stack_pointer i32.const 3968 i32.store - 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 - i32.const 3968 - i32.store i32.const 3968 i32.const 0 call $~lib/util/string/strtol f32.demote_f64 - local.set $5 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $5 + local.tee $5 local.get $5 f32.eq if @@ -11383,7 +9360,7 @@ i32.store i32.const 3968 i32.const 0 - call $~lib/string/parseInt + call $~lib/util/string/strtol local.tee $2 local.get $2 f64.eq @@ -11398,22 +9375,7 @@ global.get $~lib/memory/__stack_pointer i32.const 4000 i32.store - 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 - i32.const 4000 - 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 @@ -11427,22 +9389,7 @@ global.get $~lib/memory/__stack_pointer i32.const 4048 i32.store - 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 - i32.const 4048 - 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 @@ -11457,7 +9404,7 @@ i32.const 2816 i32.store i32.const 2816 - call $~lib/string/parseFloat + call $~lib/util/string/strtod f64.const 0 f64.ne if @@ -11472,7 +9419,7 @@ i32.const 2880 i32.store i32.const 2880 - call $~lib/string/parseFloat + call $~lib/util/string/strtod f64.const 1 f64.ne if @@ -11487,7 +9434,7 @@ i32.const 4304 i32.store i32.const 4304 - call $~lib/string/parseFloat + call $~lib/util/string/strtod f64.const 1 f64.ne if @@ -11502,7 +9449,7 @@ i32.const 4336 i32.store i32.const 4336 - call $~lib/string/parseFloat + call $~lib/util/string/strtod f64.const 1 f64.ne if @@ -11517,7 +9464,7 @@ i32.const 4368 i32.store i32.const 4368 - call $~lib/string/parseFloat + call $~lib/util/string/strtod f64.const 1e-05 f64.ne if @@ -11532,7 +9479,7 @@ i32.const 4400 i32.store i32.const 4400 - call $~lib/string/parseFloat + call $~lib/util/string/strtod f64.const -1e-05 f64.ne if @@ -11547,7 +9494,7 @@ i32.const 4432 i32.store i32.const 4432 - call $~lib/string/parseFloat + call $~lib/util/string/strtod f64.const -3e-23 f64.ne if @@ -11562,7 +9509,7 @@ i32.const 4480 i32.store i32.const 4480 - call $~lib/string/parseFloat + call $~lib/util/string/strtod f64.const 3e21 f64.ne if @@ -11577,7 +9524,7 @@ i32.const 4528 i32.store i32.const 4528 - call $~lib/string/parseFloat + call $~lib/util/string/strtod f64.const 0.1 f64.ne if @@ -11592,7 +9539,7 @@ i32.const 4560 i32.store i32.const 4560 - call $~lib/string/parseFloat + call $~lib/util/string/strtod f64.const 0.1 f64.ne if @@ -11607,7 +9554,7 @@ i32.const 4592 i32.store i32.const 4592 - call $~lib/string/parseFloat + call $~lib/util/string/strtod f64.const 0.1 f64.ne if @@ -11622,7 +9569,7 @@ i32.const 4624 i32.store i32.const 4624 - call $~lib/string/parseFloat + call $~lib/util/string/strtod f64.const 0.25 f64.ne if @@ -11637,7 +9584,7 @@ i32.const 4656 i32.store i32.const 4656 - call $~lib/string/parseFloat + call $~lib/util/string/strtod f64.const 1e3 f64.ne if @@ -11652,7 +9599,7 @@ i32.const 4688 i32.store i32.const 4688 - call $~lib/string/parseFloat + call $~lib/util/string/strtod f64.const 1e-10 f64.ne if @@ -11667,7 +9614,7 @@ i32.const 4736 i32.store i32.const 4736 - call $~lib/string/parseFloat + call $~lib/util/string/strtod f64.const 1e-30 f64.ne if @@ -11682,7 +9629,7 @@ i32.const 4784 i32.store i32.const 4784 - call $~lib/string/parseFloat + call $~lib/util/string/strtod f64.const 1e-323 f64.ne if @@ -11697,7 +9644,7 @@ i32.const 4832 i32.store i32.const 4832 - call $~lib/string/parseFloat + call $~lib/util/string/strtod f64.const 0 f64.ne if @@ -11712,7 +9659,7 @@ i32.const 4880 i32.store i32.const 4880 - call $~lib/string/parseFloat + call $~lib/util/string/strtod f64.const 1.e+308 f64.ne if @@ -11727,7 +9674,7 @@ i32.const 4912 i32.store i32.const 4912 - call $~lib/string/parseFloat + call $~lib/util/string/strtod f64.const inf f64.ne if @@ -11742,7 +9689,7 @@ i32.const 1712 i32.store i32.const 1712 - call $~lib/string/parseFloat + call $~lib/util/string/strtod local.tee $2 local.get $2 f64.eq @@ -11758,7 +9705,7 @@ i32.const 4944 i32.store i32.const 4944 - call $~lib/string/parseFloat + call $~lib/util/string/strtod f64.const 0.1 f64.ne if @@ -11773,7 +9720,7 @@ i32.const 4992 i32.store i32.const 4992 - call $~lib/string/parseFloat + call $~lib/util/string/strtod f64.const 1e-10 f64.ne if @@ -11788,7 +9735,7 @@ i32.const 5040 i32.store i32.const 5040 - call $~lib/string/parseFloat + call $~lib/util/string/strtod f64.const 10 f64.ne if @@ -11803,7 +9750,7 @@ i32.const 5088 i32.store i32.const 5088 - call $~lib/string/parseFloat + call $~lib/util/string/strtod f64.const 1 f64.ne if @@ -11818,7 +9765,7 @@ i32.const 5120 i32.store i32.const 5120 - call $~lib/string/parseFloat + call $~lib/util/string/strtod f64.const 1 f64.ne if @@ -11833,7 +9780,7 @@ i32.const 5152 i32.store i32.const 5152 - call $~lib/string/parseFloat + call $~lib/util/string/strtod f64.const 10 f64.ne if @@ -11848,7 +9795,7 @@ i32.const 5200 i32.store i32.const 5200 - call $~lib/string/parseFloat + call $~lib/util/string/strtod f64.const 123456789 f64.ne if @@ -11863,7 +9810,7 @@ i32.const 5248 i32.store i32.const 5248 - call $~lib/string/parseFloat + call $~lib/util/string/strtod f64.const 1 f64.ne if @@ -11878,7 +9825,7 @@ i32.const 5296 i32.store i32.const 5296 - call $~lib/string/parseFloat + call $~lib/util/string/strtod f64.const 1e-60 f64.ne if @@ -11893,7 +9840,7 @@ i32.const 5328 i32.store i32.const 5328 - call $~lib/string/parseFloat + call $~lib/util/string/strtod f64.const 1.e+60 f64.ne if @@ -11908,7 +9855,7 @@ i32.const 5360 i32.store i32.const 5360 - call $~lib/string/parseFloat + call $~lib/util/string/strtod f64.const 123.4 f64.ne if @@ -11923,7 +9870,7 @@ i32.const 5392 i32.store i32.const 5392 - call $~lib/string/parseFloat + call $~lib/util/string/strtod f64.const -0 f64.ne if @@ -11938,7 +9885,7 @@ i32.const 5440 i32.store i32.const 5440 - call $~lib/string/parseFloat + call $~lib/util/string/strtod f64.const 1 f64.ne if @@ -11953,7 +9900,7 @@ i32.const 5472 i32.store i32.const 5472 - call $~lib/string/parseFloat + call $~lib/util/string/strtod f64.const -1.1 f64.ne if @@ -11968,7 +9915,7 @@ i32.const 5520 i32.store i32.const 5520 - call $~lib/string/parseFloat + call $~lib/util/string/strtod f64.const 10 f64.ne if @@ -11983,7 +9930,7 @@ i32.const 5568 i32.store i32.const 5568 - call $~lib/string/parseFloat + call $~lib/util/string/strtod f64.const 10 f64.ne if @@ -11998,7 +9945,7 @@ i32.const 5616 i32.store i32.const 5616 - call $~lib/string/parseFloat + call $~lib/util/string/strtod f64.const 0.022 f64.ne if @@ -12013,7 +9960,7 @@ i32.const 5664 i32.store i32.const 5664 - call $~lib/string/parseFloat + call $~lib/util/string/strtod f64.const 11 f64.ne if @@ -12028,7 +9975,7 @@ i32.const 3232 i32.store i32.const 3232 - call $~lib/string/parseFloat + call $~lib/util/string/strtod f64.const 0 f64.ne if @@ -12043,7 +9990,7 @@ i32.const 5696 i32.store i32.const 5696 - call $~lib/string/parseFloat + call $~lib/util/string/strtod f64.const 0 f64.ne if @@ -12058,7 +10005,7 @@ i32.const 5728 i32.store i32.const 5728 - call $~lib/string/parseFloat + call $~lib/util/string/strtod f64.const 0 f64.ne if @@ -12073,7 +10020,7 @@ i32.const 5760 i32.store i32.const 5760 - call $~lib/string/parseFloat + call $~lib/util/string/strtod f64.const 1.1 f64.ne if @@ -12088,7 +10035,7 @@ i32.const 5792 i32.store i32.const 5792 - call $~lib/string/parseFloat + call $~lib/util/string/strtod f64.const -1.1 f64.ne if @@ -12103,7 +10050,7 @@ i32.const 5824 i32.store i32.const 5824 - call $~lib/string/parseFloat + call $~lib/util/string/strtod f64.const -1.1 f64.ne if @@ -12118,7 +10065,7 @@ i32.const 5856 i32.store i32.const 5856 - call $~lib/string/parseFloat + call $~lib/util/string/strtod f64.const -1.1 f64.ne if @@ -12133,7 +10080,7 @@ i32.const 5888 i32.store i32.const 5888 - call $~lib/string/parseFloat + call $~lib/util/string/strtod f64.const -1.1 f64.ne if @@ -12148,7 +10095,7 @@ i32.const 5920 i32.store i32.const 5920 - call $~lib/string/parseFloat + call $~lib/util/string/strtod f64.const 0 f64.ne if @@ -12163,7 +10110,7 @@ i32.const 5952 i32.store i32.const 5952 - call $~lib/string/parseFloat + call $~lib/util/string/strtod f64.const 0 f64.ne if @@ -12178,7 +10125,7 @@ i32.const 5984 i32.store i32.const 5984 - call $~lib/string/parseFloat + call $~lib/util/string/strtod f64.const 1 f64.ne if @@ -12193,7 +10140,7 @@ i32.const 6016 i32.store i32.const 6016 - call $~lib/string/parseFloat + call $~lib/util/string/strtod f64.const 0 f64.ne if @@ -12208,7 +10155,7 @@ i32.const 6048 i32.store i32.const 6048 - call $~lib/string/parseFloat + call $~lib/util/string/strtod f64.const 0 f64.ne if @@ -12223,7 +10170,7 @@ i32.const 6080 i32.store i32.const 6080 - call $~lib/string/parseFloat + call $~lib/util/string/strtod f64.const 10 f64.ne if @@ -12238,7 +10185,7 @@ i32.const 6112 i32.store i32.const 6112 - call $~lib/string/parseFloat + call $~lib/util/string/strtod f64.const 10 f64.ne if @@ -12253,7 +10200,7 @@ i32.const 6160 i32.store i32.const 6160 - call $~lib/string/parseFloat + call $~lib/util/string/strtod f64.const 0 f64.ne if @@ -12268,7 +10215,7 @@ i32.const 6192 i32.store i32.const 6192 - call $~lib/string/parseFloat + call $~lib/util/string/strtod f64.const 1 f64.ne if @@ -12283,7 +10230,7 @@ i32.const 6224 i32.store i32.const 6224 - call $~lib/string/parseFloat + call $~lib/util/string/strtod f64.const 0.1 f64.ne if @@ -12298,7 +10245,7 @@ i32.const 6256 i32.store i32.const 6256 - call $~lib/string/parseFloat + call $~lib/util/string/strtod f64.const 1 f64.ne if @@ -12313,7 +10260,7 @@ i32.const 6288 i32.store i32.const 6288 - call $~lib/string/parseFloat + call $~lib/util/string/strtod f64.const 10 f64.ne if @@ -12328,7 +10275,7 @@ i32.const 6320 i32.store i32.const 6320 - call $~lib/string/parseFloat + call $~lib/util/string/strtod f64.const 1 f64.ne if @@ -12343,7 +10290,7 @@ i32.const 6352 i32.store i32.const 6352 - call $~lib/string/parseFloat + call $~lib/util/string/strtod f64.const 0.1 f64.ne if @@ -12358,7 +10305,7 @@ i32.const 6384 i32.store i32.const 6384 - call $~lib/string/parseFloat + call $~lib/util/string/strtod f64.const 0.01 f64.ne if @@ -12373,7 +10320,7 @@ i32.const 6432 i32.store i32.const 6432 - call $~lib/string/parseFloat + call $~lib/util/string/strtod f64.const 0 f64.ne if @@ -12388,7 +10335,7 @@ i32.const 6464 i32.store i32.const 6464 - call $~lib/string/parseFloat + call $~lib/util/string/strtod f64.const 0 f64.ne if @@ -12403,7 +10350,7 @@ i32.const 6496 i32.store i32.const 6496 - call $~lib/string/parseFloat + call $~lib/util/string/strtod f64.const 0 f64.ne if @@ -12418,7 +10365,7 @@ i32.const 6528 i32.store i32.const 6528 - call $~lib/string/parseFloat + call $~lib/util/string/strtod f64.const 0.1 f64.ne if @@ -12433,7 +10380,7 @@ i32.const 6560 i32.store i32.const 6560 - call $~lib/string/parseFloat + call $~lib/util/string/strtod f64.const 0 f64.ne if @@ -12448,7 +10395,7 @@ i32.const 6592 i32.store i32.const 6592 - call $~lib/string/parseFloat + call $~lib/util/string/strtod f64.const 0 f64.ne if @@ -12463,7 +10410,7 @@ i32.const 6624 i32.store i32.const 6624 - call $~lib/string/parseFloat + call $~lib/util/string/strtod f64.const 1 f64.ne if @@ -12478,7 +10425,7 @@ i32.const 6656 i32.store i32.const 6656 - call $~lib/string/parseFloat + call $~lib/util/string/strtod f64.const 0.1 f64.ne if @@ -12493,7 +10440,7 @@ i32.const 6688 i32.store i32.const 6688 - call $~lib/string/parseFloat + call $~lib/util/string/strtod f64.const 0 f64.ne if @@ -12508,7 +10455,7 @@ i32.const 6720 i32.store i32.const 6720 - call $~lib/string/parseFloat + call $~lib/util/string/strtod f64.const 0 f64.ne if @@ -12523,7 +10470,7 @@ i32.const 6752 i32.store i32.const 6752 - call $~lib/string/parseFloat + call $~lib/util/string/strtod f64.const -0 f64.ne if @@ -12538,7 +10485,7 @@ i32.const 6784 i32.store i32.const 6784 - call $~lib/string/parseFloat + call $~lib/util/string/strtod f64.const 0 f64.ne if @@ -12553,7 +10500,7 @@ i32.const 3392 i32.store i32.const 3392 - call $~lib/string/parseFloat + call $~lib/util/string/strtod f64.const 0 f64.ne if @@ -12568,7 +10515,7 @@ i32.const 3904 i32.store i32.const 3904 - call $~lib/string/parseFloat + call $~lib/util/string/strtod local.tee $2 local.get $2 f64.eq @@ -12584,7 +10531,7 @@ i32.const 3872 i32.store i32.const 3872 - call $~lib/string/parseFloat + call $~lib/util/string/strtod local.tee $2 local.get $2 f64.eq @@ -12600,7 +10547,7 @@ i32.const 6816 i32.store i32.const 6816 - call $~lib/string/parseFloat + call $~lib/util/string/strtod local.tee $2 local.get $2 f64.eq @@ -12616,7 +10563,7 @@ i32.const 6848 i32.store i32.const 6848 - call $~lib/string/parseFloat + call $~lib/util/string/strtod local.tee $2 local.get $2 f64.eq @@ -12632,7 +10579,7 @@ i32.const 6880 i32.store i32.const 6880 - call $~lib/string/parseFloat + call $~lib/util/string/strtod local.tee $2 local.get $2 f64.eq @@ -12648,7 +10595,7 @@ i32.const 6912 i32.store i32.const 6912 - call $~lib/string/parseFloat + call $~lib/util/string/strtod local.tee $2 local.get $2 f64.eq @@ -12664,7 +10611,7 @@ i32.const 6944 i32.store i32.const 6944 - call $~lib/string/parseFloat + call $~lib/util/string/strtod local.tee $2 local.get $2 f64.eq @@ -12680,7 +10627,7 @@ i32.const 6976 i32.store i32.const 6976 - call $~lib/string/parseFloat + call $~lib/util/string/strtod local.tee $2 local.get $2 f64.eq @@ -12696,7 +10643,7 @@ i32.const 7008 i32.store i32.const 7008 - call $~lib/string/parseFloat + call $~lib/util/string/strtod local.tee $2 local.get $2 f64.eq @@ -12712,7 +10659,7 @@ i32.const 7040 i32.store i32.const 7040 - call $~lib/string/parseFloat + call $~lib/util/string/strtod local.tee $2 local.get $2 f64.eq @@ -12728,7 +10675,7 @@ i32.const 7072 i32.store i32.const 7072 - call $~lib/string/parseFloat + call $~lib/util/string/strtod local.tee $2 local.get $2 f64.eq @@ -12744,7 +10691,7 @@ i32.const 7104 i32.store i32.const 7104 - call $~lib/string/parseFloat + call $~lib/util/string/strtod local.tee $2 local.get $2 f64.eq @@ -12760,7 +10707,7 @@ i32.const 7136 i32.store i32.const 7136 - call $~lib/string/parseFloat + call $~lib/util/string/strtod local.tee $2 local.get $2 f64.eq @@ -12776,7 +10723,7 @@ i32.const 7168 i32.store i32.const 7168 - call $~lib/string/parseFloat + call $~lib/util/string/strtod local.tee $2 local.get $2 f64.eq @@ -12792,7 +10739,7 @@ i32.const 7200 i32.store i32.const 7200 - call $~lib/string/parseFloat + call $~lib/util/string/strtod local.tee $2 local.get $2 f64.eq @@ -12808,7 +10755,7 @@ i32.const 7232 i32.store i32.const 7232 - call $~lib/string/parseFloat + call $~lib/util/string/strtod local.tee $2 local.get $2 f64.eq @@ -12824,7 +10771,7 @@ i32.const 7264 i32.store i32.const 7264 - call $~lib/string/parseFloat + call $~lib/util/string/strtod f64.const 1e22 f64.ne if @@ -12839,7 +10786,7 @@ i32.const 7296 i32.store i32.const 7296 - call $~lib/string/parseFloat + call $~lib/util/string/strtod f64.const 1e-22 f64.ne if @@ -12854,7 +10801,7 @@ i32.const 7328 i32.store i32.const 7328 - call $~lib/string/parseFloat + call $~lib/util/string/strtod f64.const 1.e+23 f64.ne if @@ -12869,7 +10816,7 @@ i32.const 7360 i32.store i32.const 7360 - call $~lib/string/parseFloat + call $~lib/util/string/strtod f64.const 1e-23 f64.ne if @@ -12884,7 +10831,7 @@ i32.const 7392 i32.store i32.const 7392 - call $~lib/string/parseFloat + call $~lib/util/string/strtod f64.const 1.e+37 f64.ne if @@ -12899,7 +10846,7 @@ i32.const 7424 i32.store i32.const 7424 - call $~lib/string/parseFloat + call $~lib/util/string/strtod f64.const 1e-37 f64.ne if @@ -12914,7 +10861,7 @@ i32.const 7456 i32.store i32.const 7456 - call $~lib/string/parseFloat + call $~lib/util/string/strtod f64.const 1.e+38 f64.ne if @@ -12929,7 +10876,7 @@ i32.const 7488 i32.store i32.const 7488 - call $~lib/string/parseFloat + call $~lib/util/string/strtod f64.const 1e-38 f64.ne if @@ -12944,7 +10891,7 @@ i32.const 7520 i32.store i32.const 7520 - call $~lib/string/parseFloat + call $~lib/util/string/strtod f64.const 2.220446049250313e-16 f64.ne if @@ -12959,7 +10906,7 @@ i32.const 7584 i32.store i32.const 7584 - call $~lib/string/parseFloat + call $~lib/util/string/strtod f64.const 1797693134862315708145274e284 f64.ne if @@ -12974,7 +10921,7 @@ i32.const 7664 i32.store i32.const 7664 - call $~lib/string/parseFloat + call $~lib/util/string/strtod f64.const 5e-324 f64.ne if @@ -12989,7 +10936,7 @@ i32.const 7696 i32.store i32.const 7696 - call $~lib/string/parseFloat + call $~lib/util/string/strtod f64.const 1.e+308 f64.ne if @@ -13004,7 +10951,7 @@ i32.const 7744 i32.store i32.const 7744 - call $~lib/string/parseFloat + call $~lib/util/string/strtod f64.const 1 f64.ne if @@ -13019,7 +10966,7 @@ i32.const 7888 i32.store i32.const 7888 - call $~lib/string/parseFloat + call $~lib/util/string/strtod f64.const 0 f64.ne if @@ -13034,7 +10981,7 @@ i32.const 7936 i32.store i32.const 7936 - call $~lib/string/parseFloat + call $~lib/util/string/strtod f64.const inf f64.ne if @@ -13049,7 +10996,7 @@ i32.const 7984 i32.store i32.const 7984 - call $~lib/string/parseFloat + call $~lib/util/string/strtod f64.const 0 f64.ne if @@ -13064,7 +11011,7 @@ i32.const 8032 i32.store i32.const 8032 - call $~lib/string/parseFloat + call $~lib/util/string/strtod f64.const -inf f64.ne if @@ -13079,7 +11026,7 @@ i32.const 8080 i32.store i32.const 8080 - call $~lib/string/parseFloat + call $~lib/util/string/strtod f64.const 0 f64.ne if @@ -13094,7 +11041,7 @@ i32.const 8128 i32.store i32.const 8128 - call $~lib/string/parseFloat + call $~lib/util/string/strtod f64.const inf f64.ne if @@ -13109,7 +11056,7 @@ i32.const 8176 i32.store i32.const 8176 - call $~lib/string/parseFloat + call $~lib/util/string/strtod f64.const inf f64.ne if @@ -13124,7 +11071,7 @@ i32.const 8208 i32.store i32.const 8208 - call $~lib/string/parseFloat + call $~lib/util/string/strtod f64.const inf f64.ne if @@ -13139,7 +11086,7 @@ i32.const 8256 i32.store i32.const 8256 - call $~lib/string/parseFloat + call $~lib/util/string/strtod f64.const inf f64.ne if @@ -13154,7 +11101,7 @@ i32.const 8304 i32.store i32.const 8304 - call $~lib/string/parseFloat + call $~lib/util/string/strtod f64.const -inf f64.ne if @@ -13169,7 +11116,7 @@ i32.const 8352 i32.store i32.const 8352 - call $~lib/string/parseFloat + call $~lib/util/string/strtod f64.const inf f64.ne if @@ -13184,7 +11131,7 @@ i32.const 8400 i32.store i32.const 8400 - call $~lib/string/parseFloat + call $~lib/util/string/strtod f64.const inf f64.ne if @@ -13199,7 +11146,7 @@ i32.const 8448 i32.store i32.const 8448 - call $~lib/string/parseFloat + call $~lib/util/string/strtod local.tee $2 local.get $2 f64.eq @@ -13215,7 +11162,7 @@ i32.const 8480 i32.store i32.const 8480 - call $~lib/string/parseFloat + call $~lib/util/string/strtod local.tee $2 local.get $2 f64.eq @@ -13231,7 +11178,7 @@ i32.const 8528 i32.store i32.const 8528 - call $~lib/string/parseFloat + call $~lib/util/string/strtod local.tee $2 local.get $2 f64.eq @@ -13247,7 +11194,7 @@ i32.const 8576 i32.store i32.const 8576 - call $~lib/string/parseFloat + call $~lib/util/string/strtod f64.const 0 f64.ne if @@ -13262,7 +11209,7 @@ i32.const 8768 i32.store i32.const 8768 - call $~lib/string/parseFloat + call $~lib/util/string/strtod f64.const 1e-323 f64.ne if @@ -13277,7 +11224,7 @@ i32.const 8960 i32.store i32.const 8960 - call $~lib/string/parseFloat + call $~lib/util/string/strtod f64.const 2.225073858507202e-308 f64.ne if @@ -13332,7 +11279,7 @@ local.get $0 i32.store local.get $0 - call $~lib/string/parseFloat + call $~lib/util/string/strtod f64.const 1797693134862315708145274e284 f64.ne if @@ -13347,7 +11294,7 @@ i32.const 9952 i32.store i32.const 9952 - call $~lib/string/parseFloat + call $~lib/util/string/strtod f64.const 9.753531888799502e-104 f64.ne if @@ -13362,7 +11309,7 @@ i32.const 10064 i32.store i32.const 10064 - call $~lib/string/parseFloat + call $~lib/util/string/strtod f64.const 0.5961860348131807 f64.ne if @@ -13377,7 +11324,7 @@ i32.const 10176 i32.store i32.const 10176 - call $~lib/string/parseFloat + call $~lib/util/string/strtod f64.const 0.18150131692180388 f64.ne if @@ -13392,7 +11339,7 @@ i32.const 10288 i32.store i32.const 10288 - call $~lib/string/parseFloat + call $~lib/util/string/strtod f64.const 0.42070823575344535 f64.ne if @@ -13407,7 +11354,7 @@ i32.const 10400 i32.store i32.const 10400 - call $~lib/string/parseFloat + call $~lib/util/string/strtod f64.const 0.6654686306516261 f64.ne if @@ -13422,7 +11369,7 @@ i32.const 10512 i32.store i32.const 10512 - call $~lib/string/parseFloat + call $~lib/util/string/strtod f64.const 0.6101852922970868 f64.ne if @@ -13437,7 +11384,7 @@ i32.const 10624 i32.store i32.const 10624 - call $~lib/string/parseFloat + call $~lib/util/string/strtod f64.const 0.7696695208236968 f64.ne if @@ -13452,7 +11399,7 @@ i32.const 10736 i32.store i32.const 10736 - call $~lib/string/parseFloat + call $~lib/util/string/strtod f64.const 0.25050653222286823 f64.ne if @@ -13467,7 +11414,7 @@ i32.const 10848 i32.store i32.const 10848 - call $~lib/string/parseFloat + call $~lib/util/string/strtod f64.const 0.2740037230228005 f64.ne if @@ -13482,7 +11429,7 @@ i32.const 10960 i32.store i32.const 10960 - call $~lib/string/parseFloat + call $~lib/util/string/strtod f64.const 0.20723093500497428 f64.ne if @@ -13497,7 +11444,7 @@ i32.const 11072 i32.store i32.const 11072 - call $~lib/string/parseFloat + call $~lib/util/string/strtod f64.const 7.900280238081605 f64.ne if @@ -13512,7 +11459,7 @@ i32.const 11184 i32.store i32.const 11184 - call $~lib/string/parseFloat + call $~lib/util/string/strtod f64.const 98.22860653737297 f64.ne if @@ -13527,7 +11474,7 @@ i32.const 11296 i32.store i32.const 11296 - call $~lib/string/parseFloat + call $~lib/util/string/strtod f64.const 746.894972319037 f64.ne if @@ -13542,7 +11489,7 @@ i32.const 11408 i32.store i32.const 11408 - call $~lib/string/parseFloat + call $~lib/util/string/strtod f64.const 1630.2683202827284 f64.ne if @@ -13557,7 +11504,7 @@ i32.const 11520 i32.store i32.const 11520 - call $~lib/string/parseFloat + call $~lib/util/string/strtod f64.const 46371.68629719171 f64.ne if @@ -13572,7 +11519,7 @@ i32.const 11632 i32.store i32.const 11632 - call $~lib/string/parseFloat + call $~lib/util/string/strtod f64.const 653780.5944497711 f64.ne if @@ -13587,7 +11534,7 @@ i32.const 11744 i32.store i32.const 11744 - call $~lib/string/parseFloat + call $~lib/util/string/strtod f64.const 234632.43565024371 f64.ne if @@ -13602,7 +11549,7 @@ i32.const 11856 i32.store i32.const 11856 - call $~lib/string/parseFloat + call $~lib/util/string/strtod f64.const 97094817.16420048 f64.ne if @@ -13617,7 +11564,7 @@ i32.const 11968 i32.store i32.const 11968 - call $~lib/string/parseFloat + call $~lib/util/string/strtod f64.const 499690852.20518744 f64.ne if @@ -13632,7 +11579,7 @@ i32.const 12080 i32.store i32.const 12080 - call $~lib/string/parseFloat + call $~lib/util/string/strtod f64.const 7925201200557245595648 f64.ne if @@ -13647,7 +11594,7 @@ i32.const 12192 i32.store i32.const 12192 - call $~lib/string/parseFloat + call $~lib/util/string/strtod f64.const 6096564585983177528398588e5 f64.ne if @@ -13662,7 +11609,7 @@ i32.const 12304 i32.store i32.const 12304 - call $~lib/string/parseFloat + call $~lib/util/string/strtod f64.const 4800416117477028695992383e42 f64.ne if @@ -13677,7 +11624,7 @@ i32.const 12416 i32.store i32.const 12416 - call $~lib/string/parseFloat + call $~lib/util/string/strtod f64.const 8524829079817968137287277e80 f64.ne if @@ -13692,7 +11639,7 @@ i32.const 12528 i32.store i32.const 12528 - call $~lib/string/parseFloat + call $~lib/util/string/strtod f64.const 3271239291709782092398754e243 f64.ne if @@ -13707,7 +11654,7 @@ i32.const 12640 i32.store i32.const 12640 - call $~lib/string/parseFloat + call $~lib/util/string/strtod local.tee $2 local.get $2 f64.eq @@ -13723,7 +11670,7 @@ i32.const 12672 i32.store i32.const 12672 - call $~lib/string/parseFloat + call $~lib/util/string/strtod f64.const 0.1 f64.ne if @@ -13747,9 +11694,6 @@ local.tee $0 i32.store offset=36 global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer i32.const 12736 i32.store offset=4 local.get $0 @@ -13765,15 +11709,11 @@ unreachable end 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 - i32.eqz + call $~lib/string/String.__eq if i32.const 0 i32.const 1120 @@ -13808,8 +11748,7 @@ i32.store offset=4 i32.const 1712 i32.const 0 - call $~lib/string/String.__ne - i32.eqz + call $~lib/string/String.__eq if i32.const 0 i32.const 1120 @@ -13826,8 +11765,7 @@ i32.store offset=4 i32.const 0 i32.const 1712 - call $~lib/string/String.__ne - i32.eqz + call $~lib/string/String.__eq if i32.const 0 i32.const 1120 @@ -13844,8 +11782,7 @@ i32.store offset=4 i32.const 1808 i32.const 12704 - call $~lib/string/String.__ne - i32.eqz + call $~lib/string/String.__eq if i32.const 0 i32.const 1120 @@ -13880,8 +11817,7 @@ i32.store offset=4 i32.const 12768 i32.const 12800 - call $~lib/string/String.__ne - i32.eqz + call $~lib/string/String.__eq if i32.const 0 i32.const 1120 @@ -13916,8 +11852,7 @@ i32.store offset=4 i32.const 12832 i32.const 12864 - call $~lib/string/String.__ne - i32.eqz + call $~lib/string/String.__eq if i32.const 0 i32.const 1120 @@ -13934,8 +11869,7 @@ i32.store offset=4 i32.const 12896 i32.const 12928 - call $~lib/string/String.__ne - i32.eqz + call $~lib/string/String.__eq if i32.const 0 i32.const 1120 @@ -13970,8 +11904,7 @@ i32.store offset=4 i32.const 12960 i32.const 13008 - call $~lib/string/String.__ne - i32.eqz + call $~lib/string/String.__eq if i32.const 0 i32.const 1120 @@ -13988,8 +11921,7 @@ i32.store offset=4 i32.const 13056 i32.const 13104 - call $~lib/string/String.__ne - i32.eqz + call $~lib/string/String.__eq if i32.const 0 i32.const 1120 @@ -14042,8 +11974,7 @@ i32.store offset=4 i32.const 13152 i32.const 13184 - call $~lib/string/String.__gte - i32.eqz + call $~lib/string/String.__lt if i32.const 0 i32.const 1120 @@ -14165,8 +12096,7 @@ i32.store offset=4 i32.const 2128 i32.const 1712 - call $~lib/string/String.__gte - i32.eqz + call $~lib/string/String.__lt if i32.const 0 i32.const 1120 @@ -14183,8 +12113,7 @@ i32.store offset=4 i32.const 1712 i32.const 2128 - call $~lib/string/String.__lte - i32.eqz + call $~lib/string/String.__gt if i32.const 0 i32.const 1120 @@ -14269,8 +12198,7 @@ i32.store offset=4 i32.const 1712 i32.const 1712 - call $~lib/string/String.__gte - i32.eqz + call $~lib/string/String.__lt if i32.const 0 i32.const 1120 @@ -14287,8 +12215,7 @@ i32.store offset=4 i32.const 1712 i32.const 1712 - call $~lib/string/String.__lte - i32.eqz + call $~lib/string/String.__gt if i32.const 0 i32.const 1120 @@ -14445,8 +12372,7 @@ i32.store offset=4 i32.const 13248 i32.const 13248 - call $~lib/string/String.__lte - i32.eqz + call $~lib/string/String.__gt if i32.const 0 i32.const 1120 @@ -14463,8 +12389,7 @@ i32.store offset=4 i32.const 13248 i32.const 13248 - call $~lib/string/String.__gte - i32.eqz + call $~lib/string/String.__lt if i32.const 0 i32.const 1120 @@ -14481,7 +12406,8 @@ i32.store offset=4 i32.const 13216 i32.const 13280 - call $~lib/string/String.__gte + call $~lib/string/String.__lt + i32.eqz if i32.const 0 i32.const 1120 @@ -14496,198 +12422,445 @@ global.get $~lib/memory/__stack_pointer i32.const 13216 i32.store offset=4 - i32.const 13280 - i32.const 13216 - call $~lib/string/String.__gte + i32.const 13280 + i32.const 13216 + call $~lib/string/String.__lt + if + i32.const 0 + i32.const 1120 + i32.const 396 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 13216 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 13280 + i32.store offset=4 + i32.const 13216 + i32.const 13280 + call $~lib/string/String.__gt + if + i32.const 0 + i32.const 1120 + i32.const 397 + i32.const 1 + 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 2880 + i32.store offset=4 + i32.const 2880 + i32.const 2880 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1120 + i32.const 398 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 13248 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 13248 + i32.store offset=4 + i32.const 13248 + i32.const 13248 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1120 + i32.const 399 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 2192 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 2192 + i32.store offset=4 + i32.const 2192 + i32.const 2192 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1120 + i32.const 400 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 2192 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 13312 + i32.store offset=4 + i32.const 2192 + i32.const 13312 + call $~lib/string/String.__eq + if + i32.const 0 + i32.const 1120 + i32.const 402 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 13344 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 13344 + i32.store offset=4 + i32.const 13344 + i32.const 13344 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1120 + i32.const 403 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 13376 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 13344 + i32.store offset=4 + i32.const 13376 + i32.const 13344 + call $~lib/string/String.__eq + if + i32.const 0 + i32.const 1120 + i32.const 405 + 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 $3 + i32.store offset=36 + global.get $~lib/memory/__stack_pointer + i32.const 55296 + call $~lib/string/String.fromCodePoint + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + i32.const 56322 + call $~lib/string/String.fromCodePoint + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $0 + local.get $1 + call $~lib/string/String.__concat + local.tee $0 + i32.store offset=40 + local.get $3 + local.get $0 + call $~lib/string/String.__gt + i32.eqz + if + i32.const 0 + i32.const 1120 + i32.const 410 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 2192 + i32.store + i32.const 2188 + i32.load + i32.const 1 + i32.shr_u + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1120 + i32.const 413 + i32.const 1 + 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 + 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 + i32.eqz + if + i32.const 0 + i32.const 1120 + i32.const 415 + i32.const 1 + 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 + 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 i32.eqz if i32.const 0 i32.const 1120 - i32.const 396 + i32.const 416 i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 13216 + i32.const 1808 + i32.store offset=8 + 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 global.get $~lib/memory/__stack_pointer - i32.const 13280 + i32.const 1808 i32.store offset=4 - i32.const 13216 - i32.const 13280 - call $~lib/string/String.__lte + local.get $0 + i32.const 1808 + call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 397 + i32.const 417 i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 2880 + i32.const 1808 + i32.store offset=8 + 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 global.get $~lib/memory/__stack_pointer - i32.const 2880 + i32.const 13184 i32.store offset=4 - i32.const 2880 - i32.const 2880 + local.get $0 + i32.const 13184 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 398 + i32.const 418 i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 13248 + i32.const 1808 + i32.store offset=8 + 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 global.get $~lib/memory/__stack_pointer - i32.const 13248 + i32.const 13456 i32.store offset=4 - i32.const 13248 - i32.const 13248 + local.get $0 + i32.const 13456 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 399 + i32.const 419 i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 2192 + i32.const 12736 + i32.store offset=8 + i32.const 12736 + i32.const 4 + call $~lib/string/String#repeat + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 i32.store global.get $~lib/memory/__stack_pointer - i32.const 2192 + i32.const 13488 i32.store offset=4 - i32.const 2192 - i32.const 2192 + local.get $0 + i32.const 13488 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 400 + i32.const 420 i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 2192 + i32.const 1808 + i32.store offset=8 + 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 global.get $~lib/memory/__stack_pointer - i32.const 13312 + i32.const 13536 i32.store offset=4 - i32.const 2192 - i32.const 13312 - call $~lib/string/String.__ne + local.get $0 + i32.const 13536 + call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 402 + i32.const 421 i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 13344 + i32.const 1808 + i32.store offset=8 + 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 global.get $~lib/memory/__stack_pointer - i32.const 13344 + i32.const 13568 i32.store offset=4 - i32.const 13344 - i32.const 13344 + local.get $0 + i32.const 13568 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 403 + i32.const 422 i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 13376 + i32.const 1808 + i32.store offset=8 + 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 global.get $~lib/memory/__stack_pointer - i32.const 13344 + i32.const 13600 i32.store offset=4 - i32.const 13376 - i32.const 13344 - call $~lib/string/String.__ne + local.get $0 + i32.const 13600 + call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 405 + i32.const 423 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 $0 - i32.store offset=36 - global.get $~lib/memory/__stack_pointer - i32.const 55296 - call $~lib/string/String.fromCodePoint - local.set $1 + i32.const 1712 + i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - i32.const 56322 - call $~lib/string/String.fromCodePoint - local.set $3 + i32.const 1712 + i32.store offset=12 global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $1 - local.get $3 - call $~lib/string/String.__concat - local.tee $1 - i32.store offset=40 + i32.const 1712 + i32.store offset=16 + i32.const 1712 + 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 global.get $~lib/memory/__stack_pointer - local.get $1 + i32.const 1712 i32.store offset=4 local.get $0 - local.get $1 - call $~lib/string/String.__gt + i32.const 1712 + call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 410 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 2192 - i32.store - i32.const 2188 - i32.load - i32.const 1 - i32.shr_u - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1120 - i32.const 413 + i32.const 425 i32.const 1 call $~lib/builtins/abort unreachable @@ -14695,34 +12868,48 @@ global.get $~lib/memory/__stack_pointer i32.const 1712 i32.store offset=8 + global.get $~lib/memory/__stack_pointer i32.const 1712 - i32.const 100 - call $~lib/string/String#repeat + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 3904 + i32.store offset=16 + i32.const 1712 + i32.const 1712 + i32.const 3904 + call $~lib/string/String#replace local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store global.get $~lib/memory/__stack_pointer - i32.const 1712 + i32.const 3904 i32.store offset=4 local.get $0 - i32.const 1712 + i32.const 3904 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 415 + i32.const 426 i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 1808 + i32.const 3904 i32.store offset=8 - i32.const 1808 - i32.const 0 - call $~lib/string/String#repeat + global.get $~lib/memory/__stack_pointer + i32.const 3904 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 1712 + i32.store offset=16 + i32.const 3904 + i32.const 3904 + i32.const 1712 + call $~lib/string/String#replace local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 @@ -14737,261 +12924,310 @@ if i32.const 0 i32.const 1120 - i32.const 416 + i32.const 427 i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 1808 + i32.const 3904 i32.store offset=8 - i32.const 1808 - i32.const 1 - call $~lib/string/String#repeat + 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=16 + i32.const 3904 + 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 global.get $~lib/memory/__stack_pointer - i32.const 1808 + i32.const 3904 i32.store offset=4 local.get $0 - i32.const 1808 + i32.const 3904 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 417 + i32.const 428 i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 1808 + i32.const 2128 i32.store offset=8 - i32.const 1808 - i32.const 2 - call $~lib/string/String#repeat + global.get $~lib/memory/__stack_pointer + i32.const 3872 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 3904 + i32.store offset=16 + i32.const 2128 + i32.const 3872 + i32.const 3904 + call $~lib/string/String#replace local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store global.get $~lib/memory/__stack_pointer - i32.const 13184 + i32.const 2128 i32.store offset=4 local.get $0 - i32.const 13184 + i32.const 2128 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 418 + i32.const 429 i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 1808 + i32.const 2128 i32.store offset=8 - i32.const 1808 - i32.const 3 - call $~lib/string/String#repeat + global.get $~lib/memory/__stack_pointer + i32.const 2128 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 3904 + i32.store offset=16 + i32.const 2128 + i32.const 2128 + i32.const 3904 + call $~lib/string/String#replace local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store global.get $~lib/memory/__stack_pointer - i32.const 13456 + i32.const 3904 i32.store offset=4 local.get $0 - i32.const 13456 + i32.const 3904 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 419 + i32.const 430 i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 12736 + i32.const 2128 i32.store offset=8 - i32.const 12736 - i32.const 4 - call $~lib/string/String#repeat + global.get $~lib/memory/__stack_pointer + i32.const 2608 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 3904 + i32.store offset=16 + i32.const 2128 + i32.const 2608 + i32.const 3904 + call $~lib/string/String#replace local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store global.get $~lib/memory/__stack_pointer - i32.const 13488 + i32.const 2128 i32.store offset=4 local.get $0 - i32.const 13488 + i32.const 2128 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 420 + i32.const 431 i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 1808 + i32.const 2128 i32.store offset=8 - i32.const 1808 - i32.const 5 - call $~lib/string/String#repeat + global.get $~lib/memory/__stack_pointer + i32.const 12736 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 12736 + i32.store offset=16 + i32.const 2128 + i32.const 12736 + i32.const 12736 + call $~lib/string/String#replace local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store global.get $~lib/memory/__stack_pointer - i32.const 13536 + i32.const 2128 i32.store offset=4 local.get $0 - i32.const 13536 + i32.const 2128 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 421 + i32.const 432 i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 1808 + i32.const 13648 i32.store offset=8 - i32.const 1808 - i32.const 6 - call $~lib/string/String#repeat + global.get $~lib/memory/__stack_pointer + i32.const 3872 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 3904 + i32.store offset=16 + i32.const 13648 + i32.const 3872 + i32.const 3904 + call $~lib/string/String#replace local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store global.get $~lib/memory/__stack_pointer - i32.const 13568 + i32.const 13680 i32.store offset=4 local.get $0 - i32.const 13568 + i32.const 13680 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 422 + i32.const 433 i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 1808 + i32.const 2128 i32.store offset=8 - i32.const 1808 - i32.const 7 - call $~lib/string/String#repeat + global.get $~lib/memory/__stack_pointer + i32.const 1712 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 3904 + i32.store offset=16 + i32.const 2128 + i32.const 1712 + i32.const 3904 + call $~lib/string/String#replace local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store global.get $~lib/memory/__stack_pointer - i32.const 13600 + i32.const 13712 i32.store offset=4 local.get $0 - i32.const 13600 + i32.const 13712 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 423 + i32.const 434 i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 1712 + i32.const 13744 i32.store offset=8 global.get $~lib/memory/__stack_pointer - i32.const 1712 + i32.const 13776 i32.store offset=12 global.get $~lib/memory/__stack_pointer - i32.const 1712 + i32.const 3904 i32.store offset=16 - i32.const 1712 - i32.const 1712 - i32.const 1712 + i32.const 13744 + i32.const 13776 + i32.const 3904 call $~lib/string/String#replace local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store global.get $~lib/memory/__stack_pointer - i32.const 1712 + i32.const 13712 i32.store offset=4 local.get $0 - i32.const 1712 + i32.const 13712 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 425 + i32.const 435 i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 1712 + i32.const 2128 i32.store offset=8 global.get $~lib/memory/__stack_pointer - i32.const 1712 + i32.const 13808 i32.store offset=12 global.get $~lib/memory/__stack_pointer - i32.const 3904 + i32.const 13840 i32.store offset=16 - i32.const 1712 - i32.const 1712 - i32.const 3904 + i32.const 2128 + i32.const 13808 + i32.const 13840 call $~lib/string/String#replace local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store global.get $~lib/memory/__stack_pointer - i32.const 3904 + i32.const 13872 i32.store offset=4 local.get $0 - i32.const 3904 + i32.const 13872 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 426 + i32.const 436 i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 3904 + i32.const 2128 i32.store offset=8 global.get $~lib/memory/__stack_pointer - i32.const 3904 + i32.const 13808 i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 1712 i32.store offset=16 - i32.const 3904 - i32.const 3904 + i32.const 2128 + i32.const 13808 i32.const 1712 call $~lib/string/String#replace local.set $0 @@ -14999,48 +13235,48 @@ local.get $0 i32.store global.get $~lib/memory/__stack_pointer - i32.const 1712 + i32.const 12736 i32.store offset=4 local.get $0 - i32.const 1712 + i32.const 12736 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 427 + i32.const 437 i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 3904 + 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.const 2128 i32.store offset=16 - i32.const 3904 i32.const 1712 i32.const 1712 - call $~lib/string/String#replace + i32.const 2128 + call $~lib/string/String#replaceAll local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store global.get $~lib/memory/__stack_pointer - i32.const 3904 + i32.const 2128 i32.store offset=4 local.get $0 - i32.const 3904 + i32.const 2128 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 428 + i32.const 439 i32.const 1 call $~lib/builtins/abort unreachable @@ -15057,7 +13293,7 @@ i32.const 2128 i32.const 3872 i32.const 3904 - call $~lib/string/String#replace + call $~lib/string/String#replaceAll local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 @@ -15072,13 +13308,13 @@ if i32.const 0 i32.const 1120 - i32.const 429 + i32.const 440 i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 2128 + i32.const 2336 i32.store offset=8 global.get $~lib/memory/__stack_pointer i32.const 2128 @@ -15086,63 +13322,63 @@ global.get $~lib/memory/__stack_pointer i32.const 3904 i32.store offset=16 - i32.const 2128 + i32.const 2336 i32.const 2128 i32.const 3904 - call $~lib/string/String#replace + call $~lib/string/String#replaceAll local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store global.get $~lib/memory/__stack_pointer - i32.const 3904 + i32.const 13840 i32.store offset=4 local.get $0 - i32.const 3904 + i32.const 13840 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 430 + i32.const 442 i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 2128 + i32.const 13904 i32.store offset=8 global.get $~lib/memory/__stack_pointer - i32.const 2608 + i32.const 2128 i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 3904 i32.store offset=16 + i32.const 13904 i32.const 2128 - i32.const 2608 i32.const 3904 - call $~lib/string/String#replace + call $~lib/string/String#replaceAll local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store global.get $~lib/memory/__stack_pointer - i32.const 2128 + i32.const 13952 i32.store offset=4 local.get $0 - i32.const 2128 + i32.const 13952 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 431 + i32.const 443 i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 2128 + i32.const 2336 i32.store offset=8 global.get $~lib/memory/__stack_pointer i32.const 12736 @@ -15150,121 +13386,121 @@ global.get $~lib/memory/__stack_pointer i32.const 12736 i32.store offset=16 - i32.const 2128 + i32.const 2336 i32.const 12736 i32.const 12736 - call $~lib/string/String#replace + call $~lib/string/String#replaceAll local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store global.get $~lib/memory/__stack_pointer - i32.const 2128 + i32.const 2336 i32.store offset=4 local.get $0 - i32.const 2128 + i32.const 2336 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 432 + i32.const 444 i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 13648 + i32.const 13984 i32.store offset=8 global.get $~lib/memory/__stack_pointer - i32.const 3872 + i32.const 1808 i32.store offset=12 global.get $~lib/memory/__stack_pointer - i32.const 3904 + i32.const 13952 i32.store offset=16 - i32.const 13648 - i32.const 3872 - i32.const 3904 - call $~lib/string/String#replace + i32.const 13984 + i32.const 1808 + i32.const 13952 + call $~lib/string/String#replaceAll local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store global.get $~lib/memory/__stack_pointer - i32.const 13680 + i32.const 14032 i32.store offset=4 local.get $0 - i32.const 13680 + i32.const 14032 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 433 + i32.const 445 i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 2128 + i32.const 2336 i32.store offset=8 global.get $~lib/memory/__stack_pointer - i32.const 1712 + i32.const 12736 i32.store offset=12 global.get $~lib/memory/__stack_pointer - i32.const 3904 + i32.const 13840 i32.store offset=16 - i32.const 2128 - i32.const 1712 - i32.const 3904 - call $~lib/string/String#replace + i32.const 2336 + i32.const 12736 + i32.const 13840 + call $~lib/string/String#replaceAll local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store global.get $~lib/memory/__stack_pointer - i32.const 13712 + i32.const 14080 i32.store offset=4 local.get $0 - i32.const 13712 + i32.const 14080 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 434 + i32.const 446 i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 13744 + i32.const 14112 i32.store offset=8 global.get $~lib/memory/__stack_pointer - i32.const 13776 + i32.const 14144 i32.store offset=12 global.get $~lib/memory/__stack_pointer - i32.const 3904 + i32.const 13840 i32.store offset=16 - i32.const 13744 - i32.const 13776 - i32.const 3904 - call $~lib/string/String#replace + i32.const 14112 + i32.const 14144 + i32.const 13840 + call $~lib/string/String#replaceAll local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store global.get $~lib/memory/__stack_pointer - i32.const 13712 + i32.const 14176 i32.store offset=4 local.get $0 - i32.const 13712 + i32.const 14176 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 435 + i32.const 447 i32.const 1 call $~lib/builtins/abort unreachable @@ -15273,109 +13509,109 @@ i32.const 2128 i32.store offset=8 global.get $~lib/memory/__stack_pointer - i32.const 13808 + i32.const 2608 i32.store offset=12 global.get $~lib/memory/__stack_pointer - i32.const 13840 + i32.const 3904 i32.store offset=16 i32.const 2128 - i32.const 13808 - i32.const 13840 - call $~lib/string/String#replace + i32.const 2608 + i32.const 3904 + call $~lib/string/String#replaceAll local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store global.get $~lib/memory/__stack_pointer - i32.const 13872 + i32.const 2128 i32.store offset=4 local.get $0 - i32.const 13872 + i32.const 2128 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 436 + i32.const 448 i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 2128 + i32.const 2608 i32.store offset=8 global.get $~lib/memory/__stack_pointer - i32.const 13808 + i32.const 14208 i32.store offset=12 global.get $~lib/memory/__stack_pointer - i32.const 1712 + i32.const 13840 i32.store offset=16 - i32.const 2128 - i32.const 13808 - i32.const 1712 - call $~lib/string/String#replace + i32.const 2608 + i32.const 14208 + i32.const 13840 + call $~lib/string/String#replaceAll local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store global.get $~lib/memory/__stack_pointer - i32.const 12736 + i32.const 2608 i32.store offset=4 local.get $0 - i32.const 12736 + i32.const 2608 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 437 + i32.const 449 i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 1712 + i32.const 2128 i32.store offset=8 global.get $~lib/memory/__stack_pointer - i32.const 1712 + i32.const 14240 i32.store offset=12 global.get $~lib/memory/__stack_pointer - i32.const 2128 + i32.const 3904 i32.store offset=16 - i32.const 1712 - i32.const 1712 i32.const 2128 + i32.const 14240 + i32.const 3904 call $~lib/string/String#replaceAll local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store global.get $~lib/memory/__stack_pointer - i32.const 2128 + i32.const 14272 i32.store offset=4 local.get $0 - i32.const 2128 + i32.const 14272 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 439 + i32.const 450 i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 2128 + i32.const 12736 i32.store offset=8 global.get $~lib/memory/__stack_pointer - i32.const 3872 + i32.const 12736 i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 3904 i32.store offset=16 - i32.const 2128 - i32.const 3872 + i32.const 12736 + i32.const 12736 i32.const 3904 call $~lib/string/String#replaceAll local.set $0 @@ -15383,31 +13619,31 @@ local.get $0 i32.store global.get $~lib/memory/__stack_pointer - i32.const 2128 + i32.const 3904 i32.store offset=4 local.get $0 - i32.const 2128 + i32.const 3904 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 440 + i32.const 451 i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 2336 + i32.const 13648 i32.store offset=8 global.get $~lib/memory/__stack_pointer - i32.const 2128 + i32.const 3872 i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 3904 i32.store offset=16 - i32.const 2336 - i32.const 2128 + i32.const 13648 + i32.const 3872 i32.const 3904 call $~lib/string/String#replaceAll local.set $0 @@ -15415,176 +13651,176 @@ local.get $0 i32.store global.get $~lib/memory/__stack_pointer - i32.const 13840 + i32.const 14304 i32.store offset=4 local.get $0 - i32.const 13840 + i32.const 14304 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 442 + i32.const 452 i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 13904 + i32.const 1712 i32.store offset=8 global.get $~lib/memory/__stack_pointer - i32.const 2128 + i32.const 1712 i32.store offset=12 global.get $~lib/memory/__stack_pointer - i32.const 3904 + i32.const 1712 i32.store offset=16 - i32.const 13904 - i32.const 2128 - i32.const 3904 + 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 i32.store global.get $~lib/memory/__stack_pointer - i32.const 13952 + i32.const 1712 i32.store offset=4 local.get $0 - i32.const 13952 + i32.const 1712 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 443 + i32.const 454 i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 2336 + i32.const 1712 i32.store offset=8 global.get $~lib/memory/__stack_pointer - i32.const 12736 + i32.const 1712 i32.store offset=12 global.get $~lib/memory/__stack_pointer - i32.const 12736 + i32.const 3904 i32.store offset=16 - i32.const 2336 - i32.const 12736 - i32.const 12736 + i32.const 1712 + i32.const 1712 + i32.const 3904 call $~lib/string/String#replaceAll local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store global.get $~lib/memory/__stack_pointer - i32.const 2336 + i32.const 3904 i32.store offset=4 local.get $0 - i32.const 2336 + i32.const 3904 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 444 + i32.const 455 i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 13984 + i32.const 3904 i32.store offset=8 global.get $~lib/memory/__stack_pointer - i32.const 1808 + i32.const 3904 i32.store offset=12 global.get $~lib/memory/__stack_pointer - i32.const 13952 + i32.const 1712 i32.store offset=16 - i32.const 13984 - i32.const 1808 - i32.const 13952 + i32.const 3904 + i32.const 3904 + i32.const 1712 call $~lib/string/String#replaceAll local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store global.get $~lib/memory/__stack_pointer - i32.const 14032 + i32.const 1712 i32.store offset=4 local.get $0 - i32.const 14032 + i32.const 1712 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 445 + i32.const 456 i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 2336 + i32.const 3904 i32.store offset=8 global.get $~lib/memory/__stack_pointer - i32.const 12736 + i32.const 1712 i32.store offset=12 global.get $~lib/memory/__stack_pointer - i32.const 13840 + i32.const 1712 i32.store offset=16 - i32.const 2336 - i32.const 12736 - i32.const 13840 + i32.const 3904 + 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 global.get $~lib/memory/__stack_pointer - i32.const 14080 + i32.const 3904 i32.store offset=4 local.get $0 - i32.const 14080 + i32.const 3904 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 446 + i32.const 457 i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 14112 + i32.const 2128 i32.store offset=8 global.get $~lib/memory/__stack_pointer - i32.const 14144 + i32.const 2128 i32.store offset=12 global.get $~lib/memory/__stack_pointer - i32.const 13840 + i32.const 3872 i32.store offset=16 - i32.const 14112 - i32.const 14144 - i32.const 13840 + i32.const 2128 + i32.const 2128 + i32.const 3872 call $~lib/string/String#replaceAll local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store global.get $~lib/memory/__stack_pointer - i32.const 14176 + i32.const 3872 i32.store offset=4 local.get $0 - i32.const 14176 + i32.const 3872 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 447 + i32.const 458 i32.const 1 call $~lib/builtins/abort unreachable @@ -15593,14 +13829,14 @@ i32.const 2128 i32.store offset=8 global.get $~lib/memory/__stack_pointer - i32.const 2608 + i32.const 2576 i32.store offset=12 global.get $~lib/memory/__stack_pointer - i32.const 3904 + i32.const 3872 i32.store offset=16 i32.const 2128 - i32.const 2608 - i32.const 3904 + i32.const 2576 + i32.const 3872 call $~lib/string/String#replaceAll local.set $0 global.get $~lib/memory/__stack_pointer @@ -15616,39 +13852,39 @@ if i32.const 0 i32.const 1120 - i32.const 448 + i32.const 459 i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 2608 + i32.const 2128 i32.store offset=8 global.get $~lib/memory/__stack_pointer - i32.const 14208 + i32.const 1712 i32.store offset=12 global.get $~lib/memory/__stack_pointer - i32.const 13840 + i32.const 3904 i32.store offset=16 - i32.const 2608 - i32.const 14208 - i32.const 13840 + i32.const 2128 + i32.const 1712 + i32.const 3904 call $~lib/string/String#replaceAll local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store global.get $~lib/memory/__stack_pointer - i32.const 2608 + i32.const 14336 i32.store offset=4 local.get $0 - i32.const 2608 + i32.const 14336 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 449 + i32.const 460 i32.const 1 call $~lib/builtins/abort unreachable @@ -15657,506 +13893,456 @@ i32.const 2128 i32.store offset=8 global.get $~lib/memory/__stack_pointer - i32.const 14240 + i32.const 1712 i32.store offset=12 global.get $~lib/memory/__stack_pointer - i32.const 3904 + i32.const 1712 i32.store offset=16 i32.const 2128 - i32.const 14240 - i32.const 3904 + 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 global.get $~lib/memory/__stack_pointer - i32.const 14272 + i32.const 2128 i32.store offset=4 local.get $0 - i32.const 14272 + i32.const 2128 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 450 + i32.const 461 i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 12736 + i32.const 14384 i32.store offset=8 global.get $~lib/memory/__stack_pointer - i32.const 12736 + i32.const 1808 i32.store offset=12 global.get $~lib/memory/__stack_pointer - i32.const 3904 + i32.const 14416 i32.store offset=16 - i32.const 12736 - i32.const 12736 - i32.const 3904 + i32.const 14384 + i32.const 1808 + i32.const 14416 call $~lib/string/String#replaceAll local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store global.get $~lib/memory/__stack_pointer - i32.const 3904 + i32.const 14448 i32.store offset=4 local.get $0 - i32.const 3904 + i32.const 14448 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 451 + i32.const 464 i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 13648 + i32.const 12736 i32.store offset=8 global.get $~lib/memory/__stack_pointer - i32.const 3872 + i32.const 12736 i32.store offset=12 global.get $~lib/memory/__stack_pointer - i32.const 3904 + i32.const 14496 i32.store offset=16 - i32.const 13648 - i32.const 3872 - i32.const 3904 + i32.const 12736 + i32.const 12736 + i32.const 14496 call $~lib/string/String#replaceAll local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store global.get $~lib/memory/__stack_pointer - i32.const 14304 + i32.const 14496 i32.store offset=4 local.get $0 - i32.const 14304 + i32.const 14496 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 452 + i32.const 465 i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 1712 + i32.const 13456 i32.store offset=8 global.get $~lib/memory/__stack_pointer - i32.const 1712 + i32.const 1808 i32.store offset=12 global.get $~lib/memory/__stack_pointer - i32.const 1712 + i32.const 14528 i32.store offset=16 - i32.const 1712 - i32.const 1712 - i32.const 1712 + i32.const 13456 + i32.const 1808 + i32.const 14528 call $~lib/string/String#replaceAll local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store global.get $~lib/memory/__stack_pointer - i32.const 1712 + i32.const 14560 i32.store offset=4 local.get $0 - i32.const 1712 + i32.const 14560 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 454 + i32.const 466 i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 1712 + i32.const 13456 i32.store offset=8 global.get $~lib/memory/__stack_pointer - i32.const 1712 + i32.const 13184 i32.store offset=12 global.get $~lib/memory/__stack_pointer - i32.const 3904 + i32.const 14416 i32.store offset=16 - i32.const 1712 - i32.const 1712 - i32.const 3904 + i32.const 13456 + i32.const 13184 + i32.const 14416 call $~lib/string/String#replaceAll local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store global.get $~lib/memory/__stack_pointer - i32.const 3904 + i32.const 14608 i32.store offset=4 local.get $0 - i32.const 3904 + i32.const 14608 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 455 + i32.const 467 i32.const 1 call $~lib/builtins/abort unreachable end + i32.const 14640 + global.set $std/string/str global.get $~lib/memory/__stack_pointer - i32.const 3904 + i32.const 14640 i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 3904 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 1712 - i32.store offset=16 - i32.const 3904 - i32.const 3904 - i32.const 1712 - call $~lib/string/String#replaceAll + i32.const 14640 + i32.const 0 + i32.const 2147483647 + call $~lib/string/String#slice local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store global.get $~lib/memory/__stack_pointer - i32.const 1712 + i32.const 14640 i32.store offset=4 local.get $0 - i32.const 1712 + i32.const 14640 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 456 + i32.const 471 i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 3904 + global.get $std/string/str + local.tee $0 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=16 - i32.const 3904 - i32.const 1712 - i32.const 1712 - call $~lib/string/String#replaceAll + local.get $0 + i32.const -1 + i32.const 2147483647 + call $~lib/string/String#slice local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store global.get $~lib/memory/__stack_pointer - i32.const 3904 + i32.const 14688 i32.store offset=4 local.get $0 - i32.const 3904 + i32.const 14688 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 457 + i32.const 472 i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 2128 + global.get $std/string/str + local.tee $0 i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 2128 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 3872 - i32.store offset=16 - i32.const 2128 - i32.const 2128 - i32.const 3872 - call $~lib/string/String#replaceAll + local.get $0 + i32.const -5 + i32.const 2147483647 + call $~lib/string/String#slice local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store global.get $~lib/memory/__stack_pointer - i32.const 3872 + i32.const 14720 i32.store offset=4 local.get $0 - i32.const 3872 + i32.const 14720 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 458 + i32.const 473 i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 2128 + global.get $std/string/str + local.tee $0 i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 2576 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 3872 - i32.store offset=16 - i32.const 2128 - i32.const 2576 - i32.const 3872 - call $~lib/string/String#replaceAll + 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 global.get $~lib/memory/__stack_pointer - i32.const 2128 + i32.const 14752 i32.store offset=4 local.get $0 - i32.const 2128 + i32.const 14752 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 459 + i32.const 474 i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 2128 + global.get $std/string/str + local.tee $0 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 3904 - i32.store offset=16 - i32.const 2128 - i32.const 1712 - i32.const 3904 - call $~lib/string/String#replaceAll + 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 global.get $~lib/memory/__stack_pointer - i32.const 14336 + i32.const 14784 i32.store offset=4 local.get $0 - i32.const 14336 + i32.const 14784 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 460 + i32.const 475 i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 2128 + global.get $std/string/str + local.tee $0 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=16 - i32.const 2128 - i32.const 1712 - i32.const 1712 - call $~lib/string/String#replaceAll + 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 global.get $~lib/memory/__stack_pointer - i32.const 2128 + i32.const 1712 i32.store offset=4 local.get $0 - i32.const 2128 + i32.const 1712 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 461 + i32.const 476 i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 14384 + global.get $std/string/str + local.tee $0 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 14416 - i32.store offset=16 - i32.const 14384 - i32.const 1808 - i32.const 14416 - call $~lib/string/String#replaceAll + 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 global.get $~lib/memory/__stack_pointer - i32.const 14448 + i32.const 14816 i32.store offset=4 local.get $0 - i32.const 14448 + i32.const 14816 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 464 + i32.const 477 i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 12736 + global.get $std/string/str + local.tee $0 i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 12736 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 14496 - i32.store offset=16 - i32.const 12736 - i32.const 12736 - i32.const 14496 - call $~lib/string/String#replaceAll + local.get $0 + i32.const 0 + i32.const 2147483647 + call $~lib/string/String#substr local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store global.get $~lib/memory/__stack_pointer - i32.const 14496 + i32.const 14640 i32.store offset=4 local.get $0 - i32.const 14496 + i32.const 14640 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 465 + i32.const 479 i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 13456 + global.get $std/string/str + local.tee $0 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 14528 - i32.store offset=16 - i32.const 13456 - i32.const 1808 - i32.const 14528 - call $~lib/string/String#replaceAll + local.get $0 + i32.const -1 + i32.const 2147483647 + call $~lib/string/String#substr local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store global.get $~lib/memory/__stack_pointer - i32.const 14560 + i32.const 14688 i32.store offset=4 local.get $0 - i32.const 14560 + i32.const 14688 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 466 + i32.const 480 i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 13456 + global.get $std/string/str + local.tee $0 i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 13184 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 14416 - i32.store offset=16 - i32.const 13456 - i32.const 13184 - i32.const 14416 - call $~lib/string/String#replaceAll + local.get $0 + i32.const -5 + i32.const 2147483647 + call $~lib/string/String#substr local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store global.get $~lib/memory/__stack_pointer - i32.const 14608 + i32.const 14720 i32.store offset=4 local.get $0 - i32.const 14608 + i32.const 14720 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 467 + i32.const 481 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 14640 - global.set $std/string/str global.get $~lib/memory/__stack_pointer - i32.const 14640 + global.get $std/string/str + local.tee $0 i32.store offset=8 - i32.const 14640 - i32.const 0 - i32.const 2147483647 - call $~lib/string/String#slice + 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 global.get $~lib/memory/__stack_pointer - i32.const 14640 + i32.const 14864 i32.store offset=4 local.get $0 - i32.const 14640 + i32.const 14864 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 471 + i32.const 482 i32.const 1 call $~lib/builtins/abort unreachable @@ -16166,24 +14352,24 @@ local.tee $0 i32.store offset=8 local.get $0 - i32.const -1 - i32.const 2147483647 - call $~lib/string/String#slice + 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 global.get $~lib/memory/__stack_pointer - i32.const 14688 + i32.const 1712 i32.store offset=4 local.get $0 - i32.const 14688 + i32.const 1712 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 472 + i32.const 483 i32.const 1 call $~lib/builtins/abort unreachable @@ -16193,24 +14379,24 @@ local.tee $0 i32.store offset=8 local.get $0 - i32.const -5 - i32.const 2147483647 - call $~lib/string/String#slice + 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 global.get $~lib/memory/__stack_pointer - i32.const 14720 + i32.const 14912 i32.store offset=4 local.get $0 - i32.const 14720 + i32.const 14912 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 473 + i32.const 484 i32.const 1 call $~lib/builtins/abort unreachable @@ -16220,24 +14406,24 @@ local.tee $0 i32.store offset=8 local.get $0 - i32.const 2 - i32.const 7 - call $~lib/string/String#slice + i32.const 0 + i32.const -1 + call $~lib/string/String#substr local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store global.get $~lib/memory/__stack_pointer - i32.const 14752 + i32.const 1712 i32.store offset=4 local.get $0 - i32.const 14752 + i32.const 1712 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 474 + i32.const 485 i32.const 1 call $~lib/builtins/abort unreachable @@ -16247,24 +14433,24 @@ local.tee $0 i32.store offset=8 local.get $0 - i32.const -11 - i32.const -6 - call $~lib/string/String#slice + 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 global.get $~lib/memory/__stack_pointer - i32.const 14784 + i32.const 14640 i32.store offset=4 local.get $0 - i32.const 14784 + i32.const 14640 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 475 + i32.const 486 i32.const 1 call $~lib/builtins/abort unreachable @@ -16275,23 +14461,23 @@ i32.store offset=8 local.get $0 i32.const 4 - i32.const 3 - call $~lib/string/String#slice + i32.const 4 + call $~lib/string/String#substr local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store global.get $~lib/memory/__stack_pointer - i32.const 1712 + i32.const 14944 i32.store offset=4 local.get $0 - i32.const 1712 + i32.const 14944 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 476 + i32.const 487 i32.const 1 call $~lib/builtins/abort unreachable @@ -16301,24 +14487,24 @@ local.tee $0 i32.store offset=8 local.get $0 - i32.const 0 - i32.const -1 - call $~lib/string/String#slice + 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 global.get $~lib/memory/__stack_pointer - i32.const 14816 + i32.const 1712 i32.store offset=4 local.get $0 - i32.const 14816 + i32.const 1712 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 477 + i32.const 488 i32.const 1 call $~lib/builtins/abort unreachable @@ -16330,7 +14516,7 @@ local.get $0 i32.const 0 i32.const 2147483647 - call $~lib/string/String#substr + call $~lib/string/String#substring local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 @@ -16345,7 +14531,7 @@ if i32.const 0 i32.const 1120 - i32.const 479 + i32.const 490 i32.const 1 call $~lib/builtins/abort unreachable @@ -16357,22 +14543,22 @@ local.get $0 i32.const -1 i32.const 2147483647 - call $~lib/string/String#substr + call $~lib/string/String#substring local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store global.get $~lib/memory/__stack_pointer - i32.const 14688 + i32.const 14640 i32.store offset=4 local.get $0 - i32.const 14688 + i32.const 14640 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 480 + i32.const 491 i32.const 1 call $~lib/builtins/abort unreachable @@ -16384,22 +14570,22 @@ local.get $0 i32.const -5 i32.const 2147483647 - call $~lib/string/String#substr + call $~lib/string/String#substring local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store global.get $~lib/memory/__stack_pointer - i32.const 14720 + i32.const 14640 i32.store offset=4 local.get $0 - i32.const 14720 + i32.const 14640 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 481 + i32.const 492 i32.const 1 call $~lib/builtins/abort unreachable @@ -16411,22 +14597,22 @@ local.get $0 i32.const 2 i32.const 7 - call $~lib/string/String#substr + call $~lib/string/String#substring local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store global.get $~lib/memory/__stack_pointer - i32.const 14864 + i32.const 14752 i32.store offset=4 local.get $0 - i32.const 14864 + i32.const 14752 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 482 + i32.const 493 i32.const 1 call $~lib/builtins/abort unreachable @@ -16438,7 +14624,7 @@ local.get $0 i32.const -11 i32.const -6 - call $~lib/string/String#substr + call $~lib/string/String#substring local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 @@ -16453,7 +14639,7 @@ if i32.const 0 i32.const 1120 - i32.const 483 + i32.const 494 i32.const 1 call $~lib/builtins/abort unreachable @@ -16465,22 +14651,22 @@ local.get $0 i32.const 4 i32.const 3 - call $~lib/string/String#substr + call $~lib/string/String#substring local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store global.get $~lib/memory/__stack_pointer - i32.const 14912 + i32.const 14976 i32.store offset=4 local.get $0 - i32.const 14912 + i32.const 14976 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 484 + i32.const 495 i32.const 1 call $~lib/builtins/abort unreachable @@ -16492,7 +14678,7 @@ local.get $0 i32.const 0 i32.const -1 - call $~lib/string/String#substr + call $~lib/string/String#substring local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 @@ -16507,7 +14693,7 @@ if i32.const 0 i32.const 1120 - i32.const 485 + i32.const 496 i32.const 1 call $~lib/builtins/abort unreachable @@ -16519,7 +14705,7 @@ local.get $0 i32.const 0 i32.const 100 - call $~lib/string/String#substr + call $~lib/string/String#substring local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 @@ -16534,7 +14720,7 @@ if i32.const 0 i32.const 1120 - i32.const 486 + i32.const 497 i32.const 1 call $~lib/builtins/abort unreachable @@ -16546,356 +14732,702 @@ local.get $0 i32.const 4 i32.const 4 - call $~lib/string/String#substr + call $~lib/string/String#substring local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store global.get $~lib/memory/__stack_pointer - i32.const 14944 + i32.const 1712 + i32.store offset=4 + local.get $0 + i32.const 1712 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1120 + i32.const 498 + 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 4 + i32.const -3 + call $~lib/string/String#substring + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 2608 + i32.store offset=4 + local.get $0 + i32.const 2608 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1120 + i32.const 499 + i32.const 1 + 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.const 0 + i32.const 2147483647 + call $~lib/string/String#split + local.tee $0 + i32.store offset=40 + local.get $0 + i32.load offset=12 + i32.const 1 + i32.eq + if (result i32) + 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 + global.get $~lib/memory/__stack_pointer + i32.const 1712 + i32.store offset=4 + 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 505 + i32.const 3 + 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 + global.get $~lib/memory/__stack_pointer + i32.const 1712 + i32.const 1712 + i32.const 2147483647 + call $~lib/string/String#split + local.tee $0 + i32.store offset=40 local.get $0 - i32.const 14944 - call $~lib/string/String.__eq - i32.eqz + i32.load offset=12 if i32.const 0 i32.const 1120 - i32.const 487 - i32.const 1 + i32.const 507 + i32.const 3 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 4 - i32.const -3 - call $~lib/string/String#substr - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 + i32.const 1712 i32.store global.get $~lib/memory/__stack_pointer - i32.const 1712 + i32.const 2416 i32.store offset=4 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 1712 - call $~lib/string/String.__eq + i32.const 2416 + i32.const 2147483647 + call $~lib/string/String#split + local.tee $0 + i32.store offset=40 + local.get $0 + i32.load offset=12 + i32.const 1 + i32.eq + if (result i32) + 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 + global.get $~lib/memory/__stack_pointer + i32.const 1712 + i32.store offset=4 + 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 488 - i32.const 1 + i32.const 509 + i32.const 3 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 2147483647 - call $~lib/string/String#substring - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 + i32.const 15184 i32.store global.get $~lib/memory/__stack_pointer - i32.const 14640 + i32.const 6944 i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 15184 + i32.const 6944 + i32.const 2147483647 + call $~lib/string/String#split + local.tee $0 + i32.store offset=40 local.get $0 - i32.const 14640 - call $~lib/string/String.__eq + i32.load offset=12 + i32.const 1 + i32.eq + if (result i32) + 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 + global.get $~lib/memory/__stack_pointer + i32.const 15184 + i32.store offset=4 + local.get $0 + i32.const 15184 + call $~lib/string/String.__eq + else + i32.const 0 + end i32.eqz if i32.const 0 i32.const 1120 - i32.const 490 - i32.const 1 + i32.const 511 + i32.const 3 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 - i32.const 2147483647 - call $~lib/string/String#substring - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 + i32.const 15184 i32.store global.get $~lib/memory/__stack_pointer - i32.const 14640 + i32.const 2416 i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 15184 + i32.const 2416 + i32.const 2147483647 + call $~lib/string/String#split + local.tee $0 + i32.store offset=40 local.get $0 - i32.const 14640 - call $~lib/string/String.__eq + i32.load offset=12 + i32.const 3 + i32.eq + if (result i32) + 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 + global.get $~lib/memory/__stack_pointer + i32.const 1808 + i32.store offset=4 + local.get $1 + i32.const 1808 + call $~lib/string/String.__eq + else + i32.const 0 + end + if (result i32) + 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 + global.get $~lib/memory/__stack_pointer + i32.const 12704 + i32.store offset=4 + local.get $1 + i32.const 12704 + call $~lib/string/String.__eq + else + i32.const 0 + end + if (result i32) + 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 + global.get $~lib/memory/__stack_pointer + i32.const 13808 + i32.store offset=4 + local.get $0 + i32.const 13808 + call $~lib/string/String.__eq + else + i32.const 0 + end i32.eqz if i32.const 0 i32.const 1120 - i32.const 491 - i32.const 1 + i32.const 513 + i32.const 3 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 -5 - i32.const 2147483647 - call $~lib/string/String#substring - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 + i32.const 15216 i32.store global.get $~lib/memory/__stack_pointer - i32.const 14640 + i32.const 15264 i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 15216 + i32.const 15264 + i32.const 2147483647 + call $~lib/string/String#split + local.tee $0 + i32.store offset=40 local.get $0 - i32.const 14640 - call $~lib/string/String.__eq - i32.eqz - if + i32.load offset=12 + i32.const 3 + i32.eq + if (result i32) + 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 + global.get $~lib/memory/__stack_pointer + i32.const 1808 + i32.store offset=4 + local.get $1 + i32.const 1808 + call $~lib/string/String.__eq + else + i32.const 0 + end + if (result i32) + 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 + global.get $~lib/memory/__stack_pointer + i32.const 12704 + i32.store offset=4 + local.get $1 + i32.const 12704 + call $~lib/string/String.__eq + else + i32.const 0 + end + if (result i32) + 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 + global.get $~lib/memory/__stack_pointer + i32.const 13808 + i32.store offset=4 + local.get $0 + i32.const 13808 + call $~lib/string/String.__eq + else i32.const 0 - i32.const 1120 - i32.const 492 - 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 2 - i32.const 7 - call $~lib/string/String#substring - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 14752 - i32.store offset=4 - local.get $0 - i32.const 14752 - call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 493 - i32.const 1 + i32.const 515 + i32.const 3 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 -11 - i32.const -6 - call $~lib/string/String#substring - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 + i32.const 15296 i32.store global.get $~lib/memory/__stack_pointer - i32.const 1712 + i32.const 2416 i32.store offset=4 - local.get $0 - i32.const 1712 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 1120 - i32.const 494 - i32.const 1 - call $~lib/builtins/abort - unreachable - end global.get $~lib/memory/__stack_pointer - global.get $std/string/str + i32.const 15296 + i32.const 2416 + i32.const 2147483647 + call $~lib/string/String#split local.tee $0 - i32.store offset=8 + i32.store offset=40 local.get $0 + i32.load offset=12 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 - global.get $~lib/memory/__stack_pointer - i32.const 14976 - i32.store offset=4 - local.get $0 - i32.const 14976 - call $~lib/string/String.__eq - i32.eqz - if + i32.eq + if (result i32) + local.get $0 i32.const 0 - i32.const 1120 - i32.const 495 + call $~lib/array/Array<~lib/string/String>#__get + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 1808 + i32.store offset=4 + local.get $1 + i32.const 1808 + call $~lib/string/String.__eq + else + i32.const 0 + end + if (result i32) + local.get $0 i32.const 1 - call $~lib/builtins/abort - unreachable + call $~lib/array/Array<~lib/string/String>#__get + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 12704 + i32.store offset=4 + local.get $1 + i32.const 12704 + call $~lib/string/String.__eq + else + i32.const 0 + end + if (result i32) + local.get $0 + i32.const 2 + call $~lib/array/Array<~lib/string/String>#__get + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 1712 + i32.store offset=4 + local.get $1 + i32.const 1712 + call $~lib/string/String.__eq + else + i32.const 0 + end + if (result i32) + 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 + global.get $~lib/memory/__stack_pointer + i32.const 13808 + i32.store offset=4 + local.get $0 + i32.const 13808 + call $~lib/string/String.__eq + else + i32.const 0 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 -1 - call $~lib/string/String#substring - 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 i32.eqz if i32.const 0 i32.const 1120 - i32.const 496 - i32.const 1 + i32.const 517 + i32.const 3 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 100 - call $~lib/string/String#substring - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 + i32.const 15328 i32.store global.get $~lib/memory/__stack_pointer - i32.const 14640 + i32.const 2416 i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 15328 + i32.const 2416 + i32.const 2147483647 + call $~lib/string/String#split + local.tee $0 + i32.store offset=40 local.get $0 - i32.const 14640 - call $~lib/string/String.__eq + i32.load offset=12 + i32.const 4 + i32.eq + if (result i32) + 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 + global.get $~lib/memory/__stack_pointer + i32.const 1712 + i32.store offset=4 + local.get $1 + i32.const 1712 + call $~lib/string/String.__eq + else + i32.const 0 + end + if (result i32) + 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 + global.get $~lib/memory/__stack_pointer + i32.const 1808 + i32.store offset=4 + local.get $1 + i32.const 1808 + call $~lib/string/String.__eq + else + i32.const 0 + end + if (result i32) + local.get $0 + i32.const 2 + call $~lib/array/Array<~lib/string/String>#__get + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 12704 + i32.store offset=4 + local.get $1 + i32.const 12704 + call $~lib/string/String.__eq + else + i32.const 0 + end + if (result i32) + 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 + global.get $~lib/memory/__stack_pointer + i32.const 13808 + i32.store offset=4 + local.get $0 + i32.const 13808 + call $~lib/string/String.__eq + else + i32.const 0 + end i32.eqz if i32.const 0 i32.const 1120 - i32.const 497 - i32.const 1 + i32.const 519 + i32.const 3 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 4 - i32.const 4 - call $~lib/string/String#substring - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 + i32.const 15360 i32.store global.get $~lib/memory/__stack_pointer - i32.const 1712 + i32.const 2416 i32.store offset=4 - local.get $0 - i32.const 1712 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 1120 - i32.const 498 - i32.const 1 - call $~lib/builtins/abort - unreachable - end global.get $~lib/memory/__stack_pointer - global.get $std/string/str + i32.const 15360 + i32.const 2416 + i32.const 2147483647 + call $~lib/string/String#split local.tee $0 - i32.store offset=8 + i32.store offset=40 local.get $0 + i32.load offset=12 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 - global.get $~lib/memory/__stack_pointer - i32.const 2608 - i32.store offset=4 - local.get $0 - i32.const 2608 - call $~lib/string/String.__eq + i32.eq + if (result i32) + 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 + global.get $~lib/memory/__stack_pointer + i32.const 1808 + i32.store offset=4 + local.get $1 + i32.const 1808 + call $~lib/string/String.__eq + else + i32.const 0 + end + if (result i32) + 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 + global.get $~lib/memory/__stack_pointer + i32.const 12704 + i32.store offset=4 + local.get $1 + i32.const 12704 + call $~lib/string/String.__eq + else + i32.const 0 + end + if (result i32) + local.get $0 + i32.const 2 + call $~lib/array/Array<~lib/string/String>#__get + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 13808 + i32.store offset=4 + local.get $1 + i32.const 13808 + call $~lib/string/String.__eq + else + i32.const 0 + end + if (result i32) + 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 + global.get $~lib/memory/__stack_pointer + i32.const 1712 + i32.store offset=4 + 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 499 - i32.const 1 + i32.const 521 + i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 1712 + i32.const 2128 i32.store global.get $~lib/memory/__stack_pointer i32.const 1712 - i32.const 0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 2128 + i32.const 1712 i32.const 2147483647 call $~lib/string/String#split local.tee $0 i32.store offset=40 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store local.get $0 i32.load offset=12 - i32.const 1 + i32.const 3 i32.eq if (result i32) - global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=8 + 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 + global.get $~lib/memory/__stack_pointer + i32.const 1808 + i32.store offset=4 + local.get $1 + i32.const 1808 + call $~lib/string/String.__eq + else + i32.const 0 + end + if (result i32) 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 + global.get $~lib/memory/__stack_pointer + i32.const 12704 + i32.store offset=4 + local.get $1 + i32.const 12704 + call $~lib/string/String.__eq + else i32.const 0 + end + if (result i32) + 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 global.get $~lib/memory/__stack_pointer - i32.const 1712 + i32.const 13808 i32.store offset=4 local.get $0 - i32.const 1712 + i32.const 13808 call $~lib/string/String.__eq else i32.const 0 @@ -16904,61 +15436,52 @@ if i32.const 0 i32.const 1120 - i32.const 505 + i32.const 523 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 1712 + i32.const 2128 i32.store global.get $~lib/memory/__stack_pointer i32.const 1712 i32.store offset=4 global.get $~lib/memory/__stack_pointer + i32.const 2128 i32.const 1712 - i32.const 1712 - i32.const 2147483647 + i32.const 0 call $~lib/string/String#split local.tee $0 i32.store offset=40 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store local.get $0 i32.load offset=12 if i32.const 0 i32.const 1120 - i32.const 507 + i32.const 525 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 1712 + i32.const 2128 i32.store global.get $~lib/memory/__stack_pointer - i32.const 2416 + i32.const 1712 i32.store offset=4 global.get $~lib/memory/__stack_pointer + i32.const 2128 i32.const 1712 - i32.const 2416 - i32.const 2147483647 + i32.const 1 call $~lib/string/String#split local.tee $0 i32.store offset=40 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store local.get $0 i32.load offset=12 i32.const 1 i32.eq if (result i32) - 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 @@ -16967,10 +15490,10 @@ local.get $0 i32.store global.get $~lib/memory/__stack_pointer - i32.const 1712 + i32.const 1808 i32.store offset=4 local.get $0 - i32.const 1712 + i32.const 1808 call $~lib/string/String.__eq else i32.const 0 @@ -16979,7 +15502,7 @@ if i32.const 0 i32.const 1120 - i32.const 509 + i32.const 527 i32.const 3 call $~lib/builtins/abort unreachable @@ -16988,38 +15511,109 @@ i32.const 15184 i32.store global.get $~lib/memory/__stack_pointer - i32.const 6944 + i32.const 2416 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 15184 - i32.const 6944 - i32.const 2147483647 + i32.const 2416 + i32.const 1 call $~lib/string/String#split local.tee $0 i32.store offset=40 - global.get $~lib/memory/__stack_pointer local.get $0 + i32.load offset=12 + i32.const 1 + i32.eq + if (result i32) + 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 + global.get $~lib/memory/__stack_pointer + i32.const 1808 + i32.store offset=4 + 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 529 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 2128 i32.store + global.get $~lib/memory/__stack_pointer + i32.const 1712 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 2128 + i32.const 1712 + i32.const 4 + call $~lib/string/String#split + local.tee $0 + i32.store offset=40 local.get $0 i32.load offset=12 - i32.const 1 + i32.const 3 i32.eq if (result i32) - global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=8 + 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 + global.get $~lib/memory/__stack_pointer + i32.const 1808 + i32.store offset=4 + local.get $1 + i32.const 1808 + call $~lib/string/String.__eq + else + i32.const 0 + end + if (result i32) 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 + global.get $~lib/memory/__stack_pointer + i32.const 12704 + i32.store offset=4 + local.get $1 + i32.const 12704 + call $~lib/string/String.__eq + else i32.const 0 + end + if (result i32) + 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 global.get $~lib/memory/__stack_pointer - i32.const 15184 + i32.const 13808 i32.store offset=4 local.get $0 - i32.const 15184 + i32.const 13808 call $~lib/string/String.__eq else i32.const 0 @@ -17028,35 +15622,29 @@ if i32.const 0 i32.const 1120 - i32.const 511 + i32.const 531 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 15184 + i32.const 2128 i32.store global.get $~lib/memory/__stack_pointer - i32.const 2416 + i32.const 1712 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 15184 - i32.const 2416 - i32.const 2147483647 + i32.const 2128 + i32.const 1712 + i32.const -1 call $~lib/string/String#split local.tee $0 i32.store offset=40 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store local.get $0 i32.load offset=12 i32.const 3 i32.eq if (result i32) - 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 @@ -17074,9 +15662,6 @@ i32.const 0 end 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 @@ -17094,9 +15679,6 @@ i32.const 0 end 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 @@ -17117,35 +15699,29 @@ if i32.const 0 i32.const 1120 - i32.const 513 + i32.const 533 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 15216 + i32.const 15184 i32.store global.get $~lib/memory/__stack_pointer - i32.const 15264 + i32.const 2416 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 15216 - i32.const 15264 - i32.const 2147483647 + i32.const 15184 + i32.const 2416 + i32.const -1 call $~lib/string/String#split local.tee $0 i32.store offset=40 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store local.get $0 i32.load offset=12 i32.const 3 i32.eq if (result i32) - 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 @@ -17163,9 +15739,6 @@ i32.const 0 end 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 @@ -17183,9 +15756,6 @@ i32.const 0 end 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 @@ -17206,2823 +15776,2654 @@ if i32.const 0 i32.const 1120 - i32.const 515 - i32.const 3 + i32.const 535 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + 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 + global.get $~lib/memory/__stack_pointer + i32.const 2816 + i32.store offset=4 + local.get $0 + i32.const 2816 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1120 + i32.const 540 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + 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 + global.get $~lib/memory/__stack_pointer + i32.const 2880 + i32.store offset=4 + local.get $0 + i32.const 2880 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1120 + i32.const 541 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + 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 + global.get $~lib/memory/__stack_pointer + i32.const 15680 + i32.store offset=4 + local.get $0 + i32.const 15680 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1120 + i32.const 542 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + 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 + global.get $~lib/memory/__stack_pointer + i32.const 15712 + i32.store offset=4 + local.get $0 + i32.const 15712 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1120 + i32.const 543 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + 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 + global.get $~lib/memory/__stack_pointer + i32.const 2192 + i32.store offset=4 + local.get $0 + i32.const 2192 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1120 + i32.const 544 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const -1000 + i32.const 10 + call $~lib/util/number/itoa32 + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 15744 + i32.store offset=4 + local.get $0 + i32.const 15744 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1120 + i32.const 545 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + 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 + global.get $~lib/memory/__stack_pointer + i32.const 13344 + i32.store offset=4 + local.get $0 + i32.const 13344 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1120 + i32.const 546 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + 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 + global.get $~lib/memory/__stack_pointer + i32.const 15776 + i32.store offset=4 + local.get $0 + i32.const 15776 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1120 + i32.const 547 + i32.const 1 call $~lib/builtins/abort unreachable end + i32.const 123456 + i32.const 10 + call $~lib/util/number/itoa32 + local.set $0 global.get $~lib/memory/__stack_pointer - i32.const 15296 + local.get $0 i32.store global.get $~lib/memory/__stack_pointer - i32.const 2416 + i32.const 15808 i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 15296 - i32.const 2416 - i32.const 2147483647 - call $~lib/string/String#split - local.tee $0 - i32.store offset=40 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store local.get $0 - i32.load offset=12 - i32.const 4 - i32.eq - if (result i32) - 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 - global.get $~lib/memory/__stack_pointer - i32.const 1808 - i32.store offset=4 - local.get $1 - 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=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 - global.get $~lib/memory/__stack_pointer - i32.const 12704 - i32.store offset=4 - local.get $1 - i32.const 12704 - 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=8 - local.get $0 - i32.const 2 - call $~lib/array/Array<~lib/string/String>#__get - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1712 - i32.store offset=4 - local.get $1 - 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=8 - 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 - global.get $~lib/memory/__stack_pointer - i32.const 13808 - i32.store offset=4 - local.get $0 - i32.const 13808 - call $~lib/string/String.__eq - else - i32.const 0 - end + i32.const 15808 + call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 517 - i32.const 3 + i32.const 548 + i32.const 1 call $~lib/builtins/abort unreachable end + i32.const 1111111 + i32.const 10 + call $~lib/util/number/itoa32 + local.set $0 global.get $~lib/memory/__stack_pointer - i32.const 15328 + local.get $0 i32.store global.get $~lib/memory/__stack_pointer - i32.const 2416 + i32.const 15840 i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 15328 - i32.const 2416 - i32.const 2147483647 - call $~lib/string/String#split - local.tee $0 - i32.store offset=40 + local.get $0 + i32.const 15840 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1120 + i32.const 549 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + 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 + global.get $~lib/memory/__stack_pointer + i32.const 15888 + i32.store offset=4 local.get $0 - i32.load offset=12 - i32.const 4 - i32.eq - if (result i32) - 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 - global.get $~lib/memory/__stack_pointer - i32.const 1712 - i32.store offset=4 - local.get $1 - i32.const 1712 - call $~lib/string/String.__eq - else + i32.const 15888 + 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=8 - local.get $0 + i32.const 1120 + i32.const 550 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 - global.get $~lib/memory/__stack_pointer - i32.const 1808 - i32.store offset=4 - local.get $1 - 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=8 - local.get $0 - i32.const 2 - call $~lib/array/Array<~lib/string/String>#__get - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 12704 - i32.store offset=4 - local.get $1 - i32.const 12704 - 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=8 - 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 - global.get $~lib/memory/__stack_pointer - i32.const 13808 - i32.store offset=4 - local.get $0 - i32.const 13808 - call $~lib/string/String.__eq - else - i32.const 0 + call $~lib/builtins/abort + unreachable end + 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 + global.get $~lib/memory/__stack_pointer + i32.const 15936 + i32.store offset=4 + local.get $0 + i32.const 15936 + call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 519 - i32.const 3 + i32.const 551 + i32.const 1 call $~lib/builtins/abort unreachable end + i32.const 123456789 + i32.const 10 + call $~lib/util/number/itoa32 + local.set $0 global.get $~lib/memory/__stack_pointer - i32.const 15360 + local.get $0 i32.store global.get $~lib/memory/__stack_pointer - i32.const 2416 + i32.const 15984 i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 15360 - i32.const 2416 - i32.const 2147483647 - call $~lib/string/String#split - local.tee $0 - i32.store offset=40 + local.get $0 + i32.const 15984 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1120 + i32.const 552 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + 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 + global.get $~lib/memory/__stack_pointer + i32.const 16032 + i32.store offset=4 local.get $0 - i32.load offset=12 - i32.const 4 - i32.eq - if (result i32) - 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 - global.get $~lib/memory/__stack_pointer - i32.const 1808 - i32.store offset=4 - local.get $1 - i32.const 1808 - call $~lib/string/String.__eq - else + i32.const 16032 + 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=8 - local.get $0 + i32.const 1120 + i32.const 553 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 - global.get $~lib/memory/__stack_pointer - i32.const 12704 - i32.store offset=4 - local.get $1 - i32.const 12704 - 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=8 - local.get $0 - i32.const 2 - call $~lib/array/Array<~lib/string/String>#__get - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 13808 - i32.store offset=4 - local.get $1 - i32.const 13808 - 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=8 - 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 - global.get $~lib/memory/__stack_pointer - i32.const 1712 - i32.store offset=4 - local.get $0 - i32.const 1712 - call $~lib/string/String.__eq - else - i32.const 0 + call $~lib/builtins/abort + unreachable end + 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 + global.get $~lib/memory/__stack_pointer + i32.const 16080 + i32.store offset=4 + local.get $0 + i32.const 16080 + call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 521 - i32.const 3 + i32.const 554 + i32.const 1 call $~lib/builtins/abort unreachable end + i32.const -2147483648 + i32.const 10 + call $~lib/util/number/itoa32 + local.set $0 global.get $~lib/memory/__stack_pointer - i32.const 2128 + local.get $0 i32.store global.get $~lib/memory/__stack_pointer - i32.const 1712 + i32.const 16128 i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 2128 - i32.const 1712 - i32.const 2147483647 - call $~lib/string/String#split - local.tee $0 - i32.store offset=40 + local.get $0 + i32.const 16128 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1120 + i32.const 555 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + 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 + global.get $~lib/memory/__stack_pointer + i32.const 16176 + i32.store offset=4 local.get $0 - i32.load offset=12 - i32.const 3 - i32.eq - if (result i32) - 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 - global.get $~lib/memory/__stack_pointer - i32.const 1808 - i32.store offset=4 - local.get $1 - i32.const 1808 - call $~lib/string/String.__eq - else + i32.const 16176 + 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=8 - local.get $0 + i32.const 1120 + i32.const 556 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 - global.get $~lib/memory/__stack_pointer - i32.const 12704 - i32.store offset=4 - local.get $1 - i32.const 12704 - 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=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 - global.get $~lib/memory/__stack_pointer - i32.const 13808 - i32.store offset=4 - local.get $0 - i32.const 13808 - call $~lib/string/String.__eq - else - i32.const 0 + call $~lib/builtins/abort + unreachable end + 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 + global.get $~lib/memory/__stack_pointer + i32.const 2816 + i32.store offset=4 + local.get $0 + i32.const 2816 + call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 523 - i32.const 3 + i32.const 558 + i32.const 1 call $~lib/builtins/abort unreachable end + i32.const 1000 + i32.const 10 + call $~lib/util/number/utoa32 + local.set $0 global.get $~lib/memory/__stack_pointer - i32.const 2128 + local.get $0 i32.store global.get $~lib/memory/__stack_pointer - i32.const 1712 + i32.const 16208 i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 2128 - i32.const 1712 - i32.const 0 - call $~lib/string/String#split - local.tee $0 - i32.store offset=40 + local.get $0 + i32.const 16208 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1120 + i32.const 559 + i32.const 1 + call $~lib/builtins/abort + unreachable + 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 + global.get $~lib/memory/__stack_pointer + i32.const 16080 + i32.store offset=4 local.get $0 - i32.load offset=12 + i32.const 16080 + call $~lib/string/String.__eq + i32.eqz if i32.const 0 i32.const 1120 - i32.const 525 - i32.const 3 + i32.const 560 + i32.const 1 call $~lib/builtins/abort unreachable end + i32.const -2147483648 + i32.const 10 + call $~lib/util/number/utoa32 + local.set $0 global.get $~lib/memory/__stack_pointer - i32.const 2128 + local.get $0 i32.store global.get $~lib/memory/__stack_pointer - i32.const 1712 + i32.const 16240 i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 2128 - i32.const 1712 - i32.const 1 - call $~lib/string/String#split - local.tee $0 - i32.store offset=40 + local.get $0 + i32.const 16240 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1120 + i32.const 561 + i32.const 1 + call $~lib/builtins/abort + unreachable + 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 + global.get $~lib/memory/__stack_pointer + i32.const 16288 + i32.store offset=4 local.get $0 - i32.load offset=12 - i32.const 1 - i32.eq - if (result i32) - 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 $0 - 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 - else - i32.const 0 - end + i32.const 16288 + call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 527 - i32.const 3 + i32.const 562 + 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 - i32.const 15184 + local.get $0 i32.store global.get $~lib/memory/__stack_pointer - i32.const 2416 + i32.const 2816 i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 15184 - i32.const 2416 + local.get $0 + i32.const 2816 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1120 + i32.const 566 + i32.const 1 + call $~lib/builtins/abort + unreachable + end i32.const 1 - call $~lib/string/String#split - local.tee $0 - i32.store offset=40 + i32.const 16 + call $~lib/util/number/utoa32 + local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store + global.get $~lib/memory/__stack_pointer + i32.const 2880 + i32.store offset=4 local.get $0 - i32.load offset=12 - i32.const 1 - i32.eq - if (result i32) - 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 $0 - 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 - else - i32.const 0 - end + i32.const 2880 + call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 529 - i32.const 3 + i32.const 567 + i32.const 1 call $~lib/builtins/abort unreachable end + i32.const 8 + i32.const 16 + call $~lib/util/number/utoa32 + local.set $0 global.get $~lib/memory/__stack_pointer - i32.const 2128 + local.get $0 i32.store global.get $~lib/memory/__stack_pointer - i32.const 1712 + i32.const 15680 i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 2128 - i32.const 1712 - i32.const 4 - call $~lib/string/String#split - local.tee $0 - i32.store offset=40 - global.get $~lib/memory/__stack_pointer local.get $0 - i32.store - local.get $0 - i32.load offset=12 - i32.const 3 - i32.eq - if (result i32) - 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 - global.get $~lib/memory/__stack_pointer - i32.const 1808 - i32.store offset=4 - local.get $1 - i32.const 1808 - call $~lib/string/String.__eq - else + i32.const 15680 + 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=8 - local.get $0 + i32.const 1120 + i32.const 568 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 - global.get $~lib/memory/__stack_pointer - i32.const 12704 - i32.store offset=4 - local.get $1 - i32.const 12704 - 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=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 - global.get $~lib/memory/__stack_pointer - i32.const 13808 - i32.store offset=4 - local.get $0 - i32.const 13808 - call $~lib/string/String.__eq - else - i32.const 0 + 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 + global.get $~lib/memory/__stack_pointer + i32.const 13808 + i32.store offset=4 + local.get $0 + i32.const 13808 + call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 531 - i32.const 3 + i32.const 569 + i32.const 1 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 2128 + local.get $0 i32.store global.get $~lib/memory/__stack_pointer - i32.const 1712 + i32.const 16336 i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 2128 - i32.const 1712 - i32.const -1 - call $~lib/string/String#split - local.tee $0 - i32.store offset=40 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store local.get $0 - i32.load offset=12 - i32.const 3 - i32.eq - if (result i32) - 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 - global.get $~lib/memory/__stack_pointer - i32.const 1808 - i32.store offset=4 - local.get $1 - 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=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 - global.get $~lib/memory/__stack_pointer - i32.const 12704 - i32.store offset=4 - local.get $1 - i32.const 12704 - 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=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 - global.get $~lib/memory/__stack_pointer - i32.const 13808 - i32.store offset=4 - local.get $0 - i32.const 13808 - call $~lib/string/String.__eq - else - i32.const 0 - end + i32.const 16336 + call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 533 - i32.const 3 + i32.const 570 + i32.const 1 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 15184 + local.get $0 i32.store global.get $~lib/memory/__stack_pointer - i32.const 2416 + i32.const 16368 i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 15184 - i32.const 2416 - i32.const -1 - call $~lib/string/String#split - local.tee $0 - i32.store offset=40 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store local.get $0 - i32.load offset=12 - i32.const 3 - i32.eq - if (result i32) - 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 - global.get $~lib/memory/__stack_pointer - i32.const 1808 - i32.store offset=4 - local.get $1 - i32.const 1808 - call $~lib/string/String.__eq - else + i32.const 16368 + 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=8 - local.get $0 + i32.const 1120 + i32.const 571 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 - global.get $~lib/memory/__stack_pointer - i32.const 12704 - i32.store offset=4 - local.get $1 - i32.const 12704 - 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=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 - global.get $~lib/memory/__stack_pointer - i32.const 13808 - i32.store offset=4 - local.get $0 - i32.const 13808 - call $~lib/string/String.__eq - else - i32.const 0 + 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 + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 16400 + i32.store offset=4 + local.get $0 + i32.const 16400 + call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 535 - i32.const 3 + i32.const 572 + i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 0 - i32.const 10 - call $~lib/util/number/itoa32 + 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 global.get $~lib/memory/__stack_pointer - i32.const 2816 + i32.const 16432 i32.store offset=4 local.get $0 - i32.const 2816 + i32.const 16432 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 540 + i32.const 573 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 1 - i32.const 10 - call $~lib/util/number/itoa32 + 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 global.get $~lib/memory/__stack_pointer - i32.const 2880 + i32.const 16464 i32.store offset=4 local.get $0 - i32.const 2880 + i32.const 16464 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 541 + i32.const 574 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 8 - i32.const 10 - call $~lib/util/number/itoa32 + 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 global.get $~lib/memory/__stack_pointer - i32.const 15680 + i32.const 16496 i32.store offset=4 local.get $0 - i32.const 15680 + i32.const 16496 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 542 + i32.const 575 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 12 - i32.const 10 - call $~lib/util/number/itoa32 + 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 global.get $~lib/memory/__stack_pointer - i32.const 15712 + i32.const 16528 i32.store offset=4 local.get $0 - i32.const 15712 + i32.const 16528 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 543 + i32.const 576 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 123 - i32.const 10 - call $~lib/util/number/itoa32 + 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 global.get $~lib/memory/__stack_pointer - i32.const 2192 + i32.const 16560 i32.store offset=4 local.get $0 - i32.const 2192 + i32.const 16560 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 544 + i32.const 577 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const -1000 - i32.const 10 - call $~lib/util/number/itoa32 + 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 global.get $~lib/memory/__stack_pointer - i32.const 15744 + i32.const 16608 i32.store offset=4 local.get $0 - i32.const 15744 + i32.const 16608 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 545 + i32.const 578 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 1234 - i32.const 10 - call $~lib/util/number/itoa32 + 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 global.get $~lib/memory/__stack_pointer - i32.const 13344 + i32.const 16656 i32.store offset=4 local.get $0 - i32.const 13344 + i32.const 16656 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 546 + i32.const 579 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 12345 - i32.const 10 - call $~lib/util/number/itoa32 + 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 global.get $~lib/memory/__stack_pointer - i32.const 15776 + i32.const 16704 i32.store offset=4 local.get $0 - i32.const 15776 + i32.const 16704 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 547 + i32.const 580 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 123456 - i32.const 10 - call $~lib/util/number/itoa32 + 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 global.get $~lib/memory/__stack_pointer - i32.const 15808 + i32.const 16752 i32.store offset=4 local.get $0 - i32.const 15808 + i32.const 16752 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 548 + i32.const 581 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 1111111 - i32.const 10 + 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 global.get $~lib/memory/__stack_pointer - i32.const 15840 + i32.const 2816 i32.store offset=4 local.get $0 - i32.const 15840 + i32.const 2816 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 549 + i32.const 583 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 1234567 - i32.const 10 + 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 global.get $~lib/memory/__stack_pointer - i32.const 15888 + i32.const 15744 i32.store offset=4 local.get $0 - i32.const 15888 + i32.const 15744 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 550 + i32.const 584 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 12345678 - i32.const 10 + 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 global.get $~lib/memory/__stack_pointer - i32.const 15936 + i32.const 16656 i32.store offset=4 local.get $0 - i32.const 15936 + i32.const 16656 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 551 + i32.const 585 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 123456789 - i32.const 10 + 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 global.get $~lib/memory/__stack_pointer - i32.const 15984 + i32.const 16800 i32.store offset=4 local.get $0 - i32.const 15984 + i32.const 16800 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 552 + i32.const 586 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 2147483646 - i32.const 10 + 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 global.get $~lib/memory/__stack_pointer - i32.const 16032 + i32.const 16848 i32.store offset=4 local.get $0 - i32.const 16032 + i32.const 16848 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 553 + i32.const 587 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 2147483647 - i32.const 10 + 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 global.get $~lib/memory/__stack_pointer - i32.const 16080 + i32.const 16896 i32.store offset=4 local.get $0 - i32.const 16080 + i32.const 16896 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 554 + i32.const 588 i32.const 1 call $~lib/builtins/abort unreachable end i32.const -2147483648 - i32.const 10 + i32.const 16 call $~lib/util/number/itoa32 local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store global.get $~lib/memory/__stack_pointer - i32.const 16128 + i32.const 16896 i32.store offset=4 local.get $0 - i32.const 16128 + i32.const 16896 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 555 + i32.const 589 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const -1 - i32.const 10 - call $~lib/util/number/itoa32 + 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 global.get $~lib/memory/__stack_pointer - i32.const 16176 + i32.const 2816 i32.store offset=4 local.get $0 - i32.const 16176 + i32.const 2816 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 556 + i32.const 593 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 0 - i32.const 10 + 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 global.get $~lib/memory/__stack_pointer - i32.const 2816 + i32.const 2880 i32.store offset=4 local.get $0 - i32.const 2816 + i32.const 2880 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 558 + i32.const 594 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 1000 - i32.const 10 + 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 global.get $~lib/memory/__stack_pointer - i32.const 16208 + i32.const 13248 i32.store offset=4 local.get $0 - i32.const 16208 + i32.const 13248 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 559 + i32.const 595 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 2147483647 - i32.const 10 + 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 global.get $~lib/memory/__stack_pointer - i32.const 16080 + i32.const 16944 i32.store offset=4 local.get $0 - i32.const 16080 + i32.const 16944 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 560 + i32.const 596 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const -2147483648 - i32.const 10 + 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 global.get $~lib/memory/__stack_pointer - i32.const 16240 + i32.const 16976 i32.store offset=4 local.get $0 - i32.const 16240 + i32.const 16976 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 561 + i32.const 597 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const -1 - i32.const 10 + 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 global.get $~lib/memory/__stack_pointer - i32.const 16288 + i32.const 17008 i32.store offset=4 local.get $0 - i32.const 16288 + i32.const 17008 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 562 + i32.const 598 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 0 - i32.const 16 + 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 global.get $~lib/memory/__stack_pointer - i32.const 2816 + i32.const 17040 i32.store offset=4 local.get $0 - i32.const 2816 + i32.const 17040 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 566 + i32.const 599 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 1 - i32.const 16 + 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 global.get $~lib/memory/__stack_pointer - i32.const 2880 + i32.const 17072 i32.store offset=4 local.get $0 - i32.const 2880 + i32.const 17072 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 567 + i32.const 600 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 8 - i32.const 16 + 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 global.get $~lib/memory/__stack_pointer - i32.const 15680 + i32.const 17120 i32.store offset=4 local.get $0 - i32.const 15680 + i32.const 17120 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 568 + i32.const 601 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 12 - i32.const 16 + 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 global.get $~lib/memory/__stack_pointer - i32.const 13808 + i32.const 17200 i32.store offset=4 local.get $0 - i32.const 13808 + i32.const 17200 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 569 + i32.const 602 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 123 - i32.const 16 + 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 global.get $~lib/memory/__stack_pointer - i32.const 16336 + i32.const 17296 i32.store offset=4 local.get $0 - i32.const 16336 + i32.const 17296 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 570 + i32.const 603 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 1234 - i32.const 16 + 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 global.get $~lib/memory/__stack_pointer - i32.const 16368 + i32.const 17392 i32.store offset=4 local.get $0 - i32.const 16368 + i32.const 17392 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 571 + i32.const 604 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 12345 - i32.const 16 + 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 global.get $~lib/memory/__stack_pointer - i32.const 16400 + i32.const 17488 i32.store offset=4 local.get $0 - i32.const 16400 + i32.const 17488 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 572 + i32.const 605 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 123456 - i32.const 16 - call $~lib/util/number/utoa32 + 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 global.get $~lib/memory/__stack_pointer - i32.const 16432 + i32.const 17584 i32.store offset=4 local.get $0 - i32.const 16432 + i32.const 17584 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 573 + i32.const 607 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 1111111 - i32.const 16 + 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 global.get $~lib/memory/__stack_pointer - i32.const 16464 + i32.const 17632 i32.store offset=4 local.get $0 - i32.const 16464 + i32.const 17632 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 574 + i32.const 611 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 1234567 - i32.const 16 + 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 global.get $~lib/memory/__stack_pointer - i32.const 16496 + i32.const 17696 i32.store offset=4 local.get $0 - i32.const 16496 + i32.const 17696 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 575 + i32.const 612 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 12345678 - i32.const 16 + 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 global.get $~lib/memory/__stack_pointer - i32.const 16528 + i32.const 17760 i32.store offset=4 local.get $0 - i32.const 16528 + i32.const 17760 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 576 + i32.const 613 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 123456789 - i32.const 16 + 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 global.get $~lib/memory/__stack_pointer - i32.const 16560 + i32.const 17808 i32.store offset=4 local.get $0 - i32.const 16560 + i32.const 17808 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 577 + i32.const 614 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 2147483646 - i32.const 16 + 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 global.get $~lib/memory/__stack_pointer - i32.const 16608 + i32.const 17856 i32.store offset=4 local.get $0 - i32.const 16608 + i32.const 17856 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 578 + i32.const 615 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 2147483647 - i32.const 16 + 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 global.get $~lib/memory/__stack_pointer - i32.const 16656 + i32.const 17904 i32.store offset=4 local.get $0 - i32.const 16656 + i32.const 17904 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 579 + i32.const 616 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const -2147483648 - i32.const 16 + 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 global.get $~lib/memory/__stack_pointer - i32.const 16704 + i32.const 17952 i32.store offset=4 local.get $0 - i32.const 16704 + i32.const 17952 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 580 + i32.const 617 i32.const 1 call $~lib/builtins/abort unreachable end i32.const -1 - i32.const 16 + i32.const 21 call $~lib/util/number/utoa32 local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store global.get $~lib/memory/__stack_pointer - i32.const 16752 + i32.const 18000 i32.store offset=4 local.get $0 - i32.const 16752 + i32.const 18000 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 581 + i32.const 618 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 0 - i32.const 16 - call $~lib/util/number/itoa32 + 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 global.get $~lib/memory/__stack_pointer - i32.const 2816 + i32.const 18048 i32.store offset=4 local.get $0 - i32.const 2816 + i32.const 18048 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 583 + i32.const 619 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const -4096 - i32.const 16 - call $~lib/util/number/itoa32 + 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 global.get $~lib/memory/__stack_pointer - i32.const 15744 + i32.const 18096 i32.store offset=4 local.get $0 - i32.const 15744 + i32.const 18096 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 584 + i32.const 620 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 2147483647 - i32.const 16 - call $~lib/util/number/itoa32 + 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 global.get $~lib/memory/__stack_pointer - i32.const 16656 + i32.const 18144 i32.store offset=4 local.get $0 - i32.const 16656 + i32.const 18144 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 585 + i32.const 621 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const -2147483647 - i32.const 16 - call $~lib/util/number/itoa32 + 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 global.get $~lib/memory/__stack_pointer - i32.const 16800 + i32.const 2816 i32.store offset=4 local.get $0 - i32.const 16800 + i32.const 2816 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 586 + i32.const 625 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const -268435455 - i32.const 16 - call $~lib/util/number/itoa32 + 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 global.get $~lib/memory/__stack_pointer - i32.const 16848 + i32.const 15712 i32.store offset=4 local.get $0 - i32.const 16848 + i32.const 15712 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 587 + i32.const 626 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const -2147483648 - i32.const 16 - call $~lib/util/number/itoa32 + 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 global.get $~lib/memory/__stack_pointer - i32.const 16896 + i32.const 2192 i32.store offset=4 local.get $0 - i32.const 16896 + i32.const 2192 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 588 + i32.const 627 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const -2147483648 - i32.const 16 - call $~lib/util/number/itoa32 + 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 global.get $~lib/memory/__stack_pointer - i32.const 16896 + i32.const 13344 i32.store offset=4 local.get $0 - i32.const 16896 + i32.const 13344 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 589 + i32.const 628 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 0 - i32.const 2 - call $~lib/util/number/utoa32 + 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 global.get $~lib/memory/__stack_pointer - i32.const 2816 + i32.const 15776 i32.store offset=4 local.get $0 - i32.const 2816 + i32.const 15776 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 593 + i32.const 629 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 1 - i32.const 2 - call $~lib/util/number/utoa32 + 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 global.get $~lib/memory/__stack_pointer - i32.const 2880 + i32.const 15808 i32.store offset=4 local.get $0 - i32.const 2880 + i32.const 15808 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 594 + i32.const 630 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 3 - i32.const 2 - call $~lib/util/number/utoa32 + 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 global.get $~lib/memory/__stack_pointer - i32.const 13248 + i32.const 15888 i32.store offset=4 local.get $0 - i32.const 13248 + i32.const 15888 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 595 + i32.const 631 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 7 - i32.const 2 - call $~lib/util/number/utoa32 + 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 global.get $~lib/memory/__stack_pointer - i32.const 16944 + i32.const 18192 i32.store offset=4 local.get $0 - i32.const 16944 + i32.const 18192 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 596 + i32.const 632 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 14 - i32.const 2 - call $~lib/util/number/utoa32 + 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 global.get $~lib/memory/__stack_pointer - i32.const 16976 + i32.const 18240 i32.store offset=4 local.get $0 - i32.const 16976 + i32.const 18240 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 597 + i32.const 633 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 29 - i32.const 2 - call $~lib/util/number/utoa32 + 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 global.get $~lib/memory/__stack_pointer - i32.const 17008 + i32.const 16288 i32.store offset=4 local.get $0 - i32.const 17008 + i32.const 16288 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 598 + i32.const 634 i32.const 1 call $~lib/builtins/abort - unreachable - end - i32.const 59 - i32.const 2 - call $~lib/util/number/utoa32 + unreachable + end + 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 global.get $~lib/memory/__stack_pointer - i32.const 17040 + i32.const 18288 i32.store offset=4 local.get $0 - i32.const 17040 + i32.const 18288 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 599 + i32.const 635 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 4095 - i32.const 2 - call $~lib/util/number/utoa32 + 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 global.get $~lib/memory/__stack_pointer - i32.const 17072 + i32.const 18336 i32.store offset=4 local.get $0 - i32.const 17072 + i32.const 18336 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 600 + i32.const 636 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 33554431 - i32.const 2 - call $~lib/util/number/utoa32 + 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 global.get $~lib/memory/__stack_pointer - i32.const 17120 + i32.const 18384 i32.store offset=4 local.get $0 - i32.const 17120 + i32.const 18384 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 601 + i32.const 637 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const -12 - i32.const 2 - call $~lib/util/number/utoa32 + 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 global.get $~lib/memory/__stack_pointer - i32.const 17200 + i32.const 18432 i32.store offset=4 local.get $0 - i32.const 17200 + i32.const 18432 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 602 + i32.const 638 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const -4 - i32.const 2 - call $~lib/util/number/utoa32 + 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 global.get $~lib/memory/__stack_pointer - i32.const 17296 + i32.const 18480 i32.store offset=4 local.get $0 - i32.const 17296 + i32.const 18480 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 603 + i32.const 639 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const -2 - i32.const 2 - call $~lib/util/number/utoa32 + 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 global.get $~lib/memory/__stack_pointer - i32.const 17392 + i32.const 18528 i32.store offset=4 local.get $0 - i32.const 17392 + i32.const 18528 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 604 + i32.const 640 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const -1 - i32.const 2 - call $~lib/util/number/utoa32 + 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 global.get $~lib/memory/__stack_pointer - i32.const 17488 + i32.const 18592 i32.store offset=4 local.get $0 - i32.const 17488 + i32.const 18592 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 605 + i32.const 641 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const -2047 - i32.const 2 - call $~lib/util/number/itoa32 + 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 global.get $~lib/memory/__stack_pointer - i32.const 17584 + i32.const 18656 i32.store offset=4 local.get $0 - i32.const 17584 + i32.const 18656 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 607 + i32.const 642 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const -1 - i32.const 3 - call $~lib/util/number/utoa32 + 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 global.get $~lib/memory/__stack_pointer - i32.const 17632 + i32.const 18720 i32.store offset=4 local.get $0 - i32.const 17632 + i32.const 18720 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 611 + i32.const 643 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const -1 - i32.const 4 - call $~lib/util/number/utoa32 + 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 global.get $~lib/memory/__stack_pointer - i32.const 17696 + i32.const 18784 i32.store offset=4 local.get $0 - i32.const 17696 + i32.const 18784 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 612 + i32.const 644 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const -1 - i32.const 5 - call $~lib/util/number/utoa32 + 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 global.get $~lib/memory/__stack_pointer - i32.const 17760 + i32.const 18848 i32.store offset=4 local.get $0 - i32.const 17760 + i32.const 18848 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 613 + i32.const 645 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const -1 - i32.const 8 - call $~lib/util/number/utoa32 + 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 global.get $~lib/memory/__stack_pointer - i32.const 17808 + i32.const 2816 i32.store offset=4 local.get $0 - i32.const 17808 + i32.const 2816 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 614 + i32.const 647 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const -1 - i32.const 11 - call $~lib/util/number/utoa32 + 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 global.get $~lib/memory/__stack_pointer - i32.const 17856 + i32.const 18912 i32.store offset=4 local.get $0 - i32.const 17856 + i32.const 18912 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 615 + i32.const 648 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const -1 - i32.const 15 - call $~lib/util/number/utoa32 + 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 global.get $~lib/memory/__stack_pointer - i32.const 17904 + i32.const 16288 i32.store offset=4 local.get $0 - i32.const 17904 + i32.const 16288 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 616 + i32.const 649 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const -1 - i32.const 17 - call $~lib/util/number/utoa32 + 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 global.get $~lib/memory/__stack_pointer - i32.const 17952 + i32.const 18288 i32.store offset=4 local.get $0 - i32.const 17952 + i32.const 18288 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 617 + i32.const 650 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const -1 - i32.const 21 - call $~lib/util/number/utoa32 + 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 global.get $~lib/memory/__stack_pointer - i32.const 18000 + i32.const 18944 i32.store offset=4 local.get $0 - i32.const 18000 + i32.const 18944 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 618 + i32.const 651 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const -1 - i32.const 27 - call $~lib/util/number/utoa32 + 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 global.get $~lib/memory/__stack_pointer - i32.const 18048 + i32.const 18336 i32.store offset=4 local.get $0 - i32.const 18048 + i32.const 18336 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 619 + i32.const 652 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const -1 - i32.const 32 - call $~lib/util/number/utoa32 + 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 global.get $~lib/memory/__stack_pointer - i32.const 18096 + i32.const 18992 i32.store offset=4 local.get $0 - i32.const 18096 + i32.const 18992 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 620 + i32.const 653 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const -1 - i32.const 36 - call $~lib/util/number/utoa32 + 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 global.get $~lib/memory/__stack_pointer - i32.const 18144 + i32.const 19040 i32.store offset=4 local.get $0 - i32.const 18144 + i32.const 19040 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 621 + i32.const 654 i32.const 1 call $~lib/builtins/abort unreachable end - i64.const 0 + i64.const -999868719476735 i32.const 10 - call $~lib/util/number/utoa64 + call $~lib/util/number/itoa64 local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store global.get $~lib/memory/__stack_pointer - i32.const 2816 + i32.const 19088 i32.store offset=4 local.get $0 - i32.const 2816 + i32.const 19088 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 625 + i32.const 655 i32.const 1 call $~lib/builtins/abort unreachable end - i64.const 12 + i64.const -19999868719476735 i32.const 10 - call $~lib/util/number/utoa64 + call $~lib/util/number/itoa64 local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store global.get $~lib/memory/__stack_pointer - i32.const 15712 + i32.const 19152 i32.store offset=4 local.get $0 - i32.const 15712 + i32.const 19152 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 626 + i32.const 656 i32.const 1 call $~lib/builtins/abort unreachable end - i64.const 123 + i64.const 9223372036854775807 i32.const 10 - call $~lib/util/number/utoa64 + call $~lib/util/number/itoa64 local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store global.get $~lib/memory/__stack_pointer - i32.const 2192 + i32.const 19216 i32.store offset=4 local.get $0 - i32.const 2192 + i32.const 19216 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 627 + i32.const 657 i32.const 1 call $~lib/builtins/abort unreachable end - i64.const 1234 + i64.const -9223372036854775808 i32.const 10 - call $~lib/util/number/utoa64 + call $~lib/util/number/itoa64 local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store global.get $~lib/memory/__stack_pointer - i32.const 13344 + i32.const 19280 i32.store offset=4 local.get $0 - i32.const 13344 + i32.const 19280 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 628 + i32.const 658 i32.const 1 call $~lib/builtins/abort unreachable end - i64.const 12345 - i32.const 10 + 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 global.get $~lib/memory/__stack_pointer - i32.const 15776 + i32.const 2816 i32.store offset=4 local.get $0 - i32.const 15776 + i32.const 2816 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 629 + i32.const 662 i32.const 1 call $~lib/builtins/abort unreachable end - i64.const 123456 - i32.const 10 + 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 global.get $~lib/memory/__stack_pointer - i32.const 15808 + i32.const 2880 i32.store offset=4 local.get $0 - i32.const 15808 + i32.const 2880 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 630 + i32.const 663 i32.const 1 call $~lib/builtins/abort unreachable end - i64.const 1234567 - i32.const 10 + 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 global.get $~lib/memory/__stack_pointer - i32.const 15888 + i32.const 13808 i32.store offset=4 local.get $0 - i32.const 15888 + i32.const 13808 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 631 + i32.const 664 i32.const 1 call $~lib/builtins/abort unreachable end - i64.const 99999999 - i32.const 10 + 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 global.get $~lib/memory/__stack_pointer - i32.const 18192 + i32.const 16368 i32.store offset=4 local.get $0 - i32.const 18192 + i32.const 16368 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 632 + i32.const 665 i32.const 1 call $~lib/builtins/abort unreachable end - i64.const 100000000 - i32.const 10 + 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 global.get $~lib/memory/__stack_pointer - i32.const 18240 + i32.const 16464 i32.store offset=4 local.get $0 - i32.const 18240 + i32.const 16464 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 633 + i32.const 666 i32.const 1 call $~lib/builtins/abort unreachable end - i64.const 4294967295 - i32.const 10 + 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 global.get $~lib/memory/__stack_pointer - i32.const 16288 + i32.const 19344 i32.store offset=4 local.get $0 - i32.const 16288 + i32.const 19344 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 634 + i32.const 667 i32.const 1 call $~lib/builtins/abort unreachable end - i64.const 4294967297 - i32.const 10 + 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 global.get $~lib/memory/__stack_pointer - i32.const 18288 + i32.const 19392 i32.store offset=4 local.get $0 - i32.const 18288 + i32.const 19392 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 635 + i32.const 668 i32.const 1 call $~lib/builtins/abort unreachable end - i64.const 68719476735 - i32.const 10 + 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 global.get $~lib/memory/__stack_pointer - i32.const 18336 + i32.const 19440 i32.store offset=4 local.get $0 - i32.const 18336 + i32.const 19440 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 636 + i32.const 669 i32.const 1 call $~lib/builtins/abort unreachable end - i64.const 868719476735 - i32.const 10 + 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 global.get $~lib/memory/__stack_pointer - i32.const 18384 + i32.const 19488 i32.store offset=4 local.get $0 - i32.const 18384 + i32.const 19488 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 637 + i32.const 670 i32.const 1 call $~lib/builtins/abort unreachable end - i64.const 8687194767350 - i32.const 10 + 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 global.get $~lib/memory/__stack_pointer - i32.const 18432 + i32.const 19536 i32.store offset=4 local.get $0 - i32.const 18432 + i32.const 19536 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 638 + i32.const 671 i32.const 1 call $~lib/builtins/abort unreachable end - i64.const 86871947673501 - i32.const 10 + 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 global.get $~lib/memory/__stack_pointer - i32.const 18480 + i32.const 19584 i32.store offset=4 local.get $0 - i32.const 18480 + i32.const 19584 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 639 + i32.const 672 i32.const 1 call $~lib/builtins/abort unreachable end - i64.const 999868719476735 - i32.const 10 + 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 global.get $~lib/memory/__stack_pointer - i32.const 18528 + i32.const 19648 i32.store offset=4 local.get $0 - i32.const 18528 + i32.const 19648 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 640 + i32.const 673 i32.const 1 call $~lib/builtins/abort unreachable end - i64.const 9999868719476735 - i32.const 10 + 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 global.get $~lib/memory/__stack_pointer - i32.const 18592 + i32.const 19712 i32.store offset=4 local.get $0 - i32.const 18592 + i32.const 19712 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 641 + i32.const 674 i32.const 1 call $~lib/builtins/abort unreachable end - i64.const 19999868719476735 - i32.const 10 + 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 global.get $~lib/memory/__stack_pointer - i32.const 18656 + i32.const 19776 i32.store offset=4 local.get $0 - i32.const 18656 + i32.const 19776 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 642 + i32.const 675 i32.const 1 call $~lib/builtins/abort unreachable end - i64.const 129999868719476735 - i32.const 10 - call $~lib/util/number/utoa64 + 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 global.get $~lib/memory/__stack_pointer - i32.const 18720 + i32.const 19840 i32.store offset=4 local.get $0 - i32.const 18720 + i32.const 19840 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 643 + i32.const 677 i32.const 1 call $~lib/builtins/abort unreachable end - i64.const 1239999868719476735 - i32.const 10 - call $~lib/util/number/utoa64 + 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 global.get $~lib/memory/__stack_pointer - i32.const 18784 + i32.const 19904 i32.store offset=4 local.get $0 - i32.const 18784 + i32.const 19904 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 644 + i32.const 678 i32.const 1 call $~lib/builtins/abort unreachable end - i64.const -1 - i32.const 10 - call $~lib/util/number/utoa64 + 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 global.get $~lib/memory/__stack_pointer - i32.const 18848 + i32.const 19904 i32.store offset=4 local.get $0 - i32.const 18848 + i32.const 19904 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 645 + i32.const 679 i32.const 1 call $~lib/builtins/abort unreachable end i64.const 0 - i32.const 10 - call $~lib/util/number/itoa64 + i32.const 2 + call $~lib/util/number/utoa64 local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 @@ -20037,2183 +18438,2817 @@ if i32.const 0 i32.const 1120 - i32.const 647 + i32.const 683 i32.const 1 call $~lib/builtins/abort unreachable end - i64.const -1234 - i32.const 10 - call $~lib/util/number/itoa64 + 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 global.get $~lib/memory/__stack_pointer - i32.const 18912 + i32.const 2880 i32.store offset=4 local.get $0 - i32.const 18912 + i32.const 2880 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 648 + i32.const 684 i32.const 1 call $~lib/builtins/abort unreachable end - i64.const 4294967295 - i32.const 10 - call $~lib/util/number/itoa64 + 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 global.get $~lib/memory/__stack_pointer - i32.const 16288 + i32.const 16944 i32.store offset=4 local.get $0 - i32.const 16288 + i32.const 16944 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 649 + i32.const 685 i32.const 1 call $~lib/builtins/abort unreachable end - i64.const 4294967297 - i32.const 10 - call $~lib/util/number/itoa64 + 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 global.get $~lib/memory/__stack_pointer - i32.const 18288 + i32.const 16976 i32.store offset=4 local.get $0 - i32.const 18288 + i32.const 16976 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 650 + i32.const 686 i32.const 1 call $~lib/builtins/abort unreachable end - i64.const -4294967295 - i32.const 10 - call $~lib/util/number/itoa64 + 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 global.get $~lib/memory/__stack_pointer - i32.const 18944 + i32.const 17040 i32.store offset=4 local.get $0 - i32.const 18944 + i32.const 17040 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 651 + i32.const 687 i32.const 1 call $~lib/builtins/abort unreachable end - i64.const 68719476735 - i32.const 10 - call $~lib/util/number/itoa64 + 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 global.get $~lib/memory/__stack_pointer - i32.const 18336 + i32.const 17072 i32.store offset=4 local.get $0 - i32.const 18336 + i32.const 17072 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 652 + i32.const 688 i32.const 1 call $~lib/builtins/abort unreachable end - i64.const -68719476735 - i32.const 10 - call $~lib/util/number/itoa64 + 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 global.get $~lib/memory/__stack_pointer - i32.const 18992 + i32.const 17488 i32.store offset=4 local.get $0 - i32.const 18992 + i32.const 17488 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 653 + i32.const 689 i32.const 1 call $~lib/builtins/abort unreachable end - i64.const -868719476735 - i32.const 10 - call $~lib/util/number/itoa64 + 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 global.get $~lib/memory/__stack_pointer - i32.const 19040 + i32.const 19968 i32.store offset=4 local.get $0 - i32.const 19040 + i32.const 19968 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 654 + i32.const 690 i32.const 1 call $~lib/builtins/abort unreachable end - i64.const -999868719476735 - i32.const 10 - call $~lib/util/number/itoa64 + 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 global.get $~lib/memory/__stack_pointer - i32.const 19088 + i32.const 20096 i32.store offset=4 local.get $0 - i32.const 19088 + i32.const 20096 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 655 + i32.const 691 i32.const 1 call $~lib/builtins/abort unreachable end - i64.const -19999868719476735 - i32.const 10 + 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 global.get $~lib/memory/__stack_pointer - i32.const 19152 + i32.const 20256 i32.store offset=4 local.get $0 - i32.const 19152 + i32.const 20256 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 656 + i32.const 693 i32.const 1 call $~lib/builtins/abort unreachable end - i64.const 9223372036854775807 - i32.const 10 - call $~lib/util/number/itoa64 + 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 global.get $~lib/memory/__stack_pointer - i32.const 19216 + i32.const 20352 i32.store offset=4 local.get $0 - i32.const 19216 + i32.const 20352 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 657 + i32.const 697 i32.const 1 call $~lib/builtins/abort unreachable end - i64.const -9223372036854775808 - i32.const 10 - call $~lib/util/number/itoa64 + 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 global.get $~lib/memory/__stack_pointer - i32.const 19280 + i32.const 20464 i32.store offset=4 local.get $0 - i32.const 19280 + i32.const 20464 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 658 + i32.const 698 i32.const 1 call $~lib/builtins/abort unreachable end - i64.const 0 - i32.const 16 + 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 global.get $~lib/memory/__stack_pointer - i32.const 2816 + i32.const 20560 i32.store offset=4 local.get $0 - i32.const 2816 + i32.const 20560 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 662 + i32.const 699 i32.const 1 call $~lib/builtins/abort unreachable end - i64.const 1 - i32.const 16 + 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 global.get $~lib/memory/__stack_pointer - i32.const 2880 + i32.const 20640 i32.store offset=4 local.get $0 - i32.const 2880 + i32.const 20640 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 663 + i32.const 700 i32.const 1 call $~lib/builtins/abort unreachable end - i64.const 12 - i32.const 16 + 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 global.get $~lib/memory/__stack_pointer - i32.const 13808 + i32.const 20704 i32.store offset=4 local.get $0 - i32.const 13808 + i32.const 20704 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 664 + i32.const 701 i32.const 1 call $~lib/builtins/abort unreachable end - i64.const 1234 - i32.const 16 + 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 global.get $~lib/memory/__stack_pointer - i32.const 16368 + i32.const 20768 i32.store offset=4 local.get $0 - i32.const 16368 + i32.const 20768 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 665 + i32.const 702 i32.const 1 call $~lib/builtins/abort unreachable end - i64.const 1111111 - i32.const 16 + 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 global.get $~lib/memory/__stack_pointer - i32.const 16464 + i32.const 20832 i32.store offset=4 local.get $0 - i32.const 16464 + i32.const 20832 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 666 + i32.const 703 i32.const 1 call $~lib/builtins/abort unreachable end - i64.const 8589934591 - i32.const 16 + 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 global.get $~lib/memory/__stack_pointer - i32.const 19344 + i32.const 20896 i32.store offset=4 local.get $0 - i32.const 19344 + i32.const 20896 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 667 + i32.const 704 i32.const 1 call $~lib/builtins/abort unreachable end - i64.const 5942249508321 - i32.const 16 + 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 global.get $~lib/memory/__stack_pointer - i32.const 19392 + i32.const 20960 i32.store offset=4 local.get $0 - i32.const 19392 + i32.const 20960 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 668 + i32.const 705 i32.const 1 call $~lib/builtins/abort unreachable end - i64.const 76310993685985 - i32.const 16 + 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 global.get $~lib/memory/__stack_pointer - i32.const 19440 + i32.const 21008 i32.store offset=4 local.get $0 - i32.const 19440 + i32.const 21008 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 669 + i32.const 706 i32.const 1 call $~lib/builtins/abort unreachable end - i64.const 920735923817967 - i32.const 16 + 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 global.get $~lib/memory/__stack_pointer - i32.const 19488 + i32.const 21056 i32.store offset=4 local.get $0 - i32.const 19488 + i32.const 21056 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 670 + i32.const 707 i32.const 1 call $~lib/builtins/abort unreachable end - i64.const 9927935178558959 - i32.const 16 - call $~lib/util/number/utoa64 + f64.const 0 + 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 19536 + i32.const 21104 i32.store offset=4 local.get $0 - i32.const 19536 + i32.const 21104 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 671 + i32.const 710 i32.const 1 call $~lib/builtins/abort unreachable end - i64.const 81985529216486895 - i32.const 16 - call $~lib/util/number/utoa64 + f64.const -0 + 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 19584 + i32.const 21104 i32.store offset=4 local.get $0 - i32.const 19584 + i32.const 21104 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 672 + i32.const 711 i32.const 1 call $~lib/builtins/abort unreachable end - i64.const 1311768467463790320 - i32.const 16 - call $~lib/util/number/utoa64 + f64.const nan:0x8000000000000 + 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 19648 + i32.const 7008 i32.store offset=4 local.get $0 - i32.const 19648 + i32.const 7008 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 673 + i32.const 712 i32.const 1 call $~lib/builtins/abort unreachable end - i64.const 9223372036854775807 - i32.const 16 - call $~lib/util/number/utoa64 + f64.const inf + 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 19712 + i32.const 21136 i32.store offset=4 local.get $0 - i32.const 19712 + i32.const 21136 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 674 + i32.const 713 i32.const 1 call $~lib/builtins/abort unreachable end - i64.const -1 - i32.const 16 - call $~lib/util/number/utoa64 + f64.const -inf + 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 19776 + i32.const 8304 i32.store offset=4 local.get $0 - i32.const 19776 + i32.const 8304 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 675 + i32.const 714 i32.const 1 call $~lib/builtins/abort unreachable end - i64.const -9223372036854775807 - i32.const 16 - call $~lib/util/number/itoa64 + f64.const 2.220446049250313e-16 + 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 19840 + i32.const 7520 i32.store offset=4 local.get $0 - i32.const 19840 + i32.const 7520 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 677 + i32.const 715 i32.const 1 call $~lib/builtins/abort unreachable end - i64.const -9223372036854775808 - i32.const 16 - call $~lib/util/number/itoa64 + f64.const -2.220446049250313e-16 + 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 19904 + i32.const 22160 i32.store offset=4 local.get $0 - i32.const 19904 + i32.const 22160 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 678 + i32.const 716 i32.const 1 call $~lib/builtins/abort unreachable end - i64.const -9223372036854775808 - i32.const 16 - call $~lib/util/number/itoa64 + f64.const 1797693134862315708145274e284 + 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 19904 + i32.const 7584 i32.store offset=4 local.get $0 - i32.const 19904 + i32.const 7584 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 679 + i32.const 717 i32.const 1 call $~lib/builtins/abort unreachable end - i64.const 0 - i32.const 2 - call $~lib/util/number/utoa64 + f64.const -1797693134862315708145274e284 + 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 2816 + i32.const 22224 i32.store offset=4 local.get $0 - i32.const 2816 + i32.const 22224 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 683 + i32.const 718 i32.const 1 call $~lib/builtins/abort unreachable end - i64.const 1 - i32.const 2 - call $~lib/util/number/utoa64 + 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 2880 + i32.const 22304 i32.store offset=4 local.get $0 - i32.const 2880 + i32.const 22304 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 684 + i32.const 719 i32.const 1 call $~lib/builtins/abort unreachable end - i64.const 7 - i32.const 2 - call $~lib/util/number/utoa64 + 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 16944 + i32.const 22368 i32.store offset=4 local.get $0 - i32.const 16944 + i32.const 22368 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 685 + i32.const 720 i32.const 1 call $~lib/builtins/abort unreachable end - i64.const 14 - i32.const 2 - call $~lib/util/number/utoa64 + 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 16976 + i32.const 22448 i32.store offset=4 local.get $0 - i32.const 16976 + i32.const 22448 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 686 + i32.const 723 i32.const 1 call $~lib/builtins/abort unreachable end - i64.const 59 - i32.const 2 - call $~lib/util/number/utoa64 + f64.const 9060801153433600 + 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 17040 + i32.const 22496 i32.store offset=4 local.get $0 - i32.const 17040 + i32.const 22496 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 687 + i32.const 724 i32.const 1 call $~lib/builtins/abort unreachable end - i64.const 4095 - i32.const 2 - call $~lib/util/number/utoa64 + 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 17072 + i32.const 22560 i32.store offset=4 local.get $0 - i32.const 17072 + i32.const 22560 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 688 + i32.const 725 i32.const 1 call $~lib/builtins/abort unreachable end - i64.const 4294967295 - i32.const 2 - call $~lib/util/number/utoa64 + 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 17488 + i32.const 22624 i32.store offset=4 local.get $0 - i32.const 17488 + i32.const 22624 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 689 + i32.const 726 i32.const 1 call $~lib/builtins/abort unreachable end - i64.const 562949953421311 - i32.const 2 - call $~lib/util/number/utoa64 + 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 19968 + i32.const 7664 i32.store offset=4 local.get $0 - i32.const 19968 + i32.const 7664 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 690 + i32.const 727 i32.const 1 call $~lib/builtins/abort unreachable end - i64.const -1 - i32.const 2 - call $~lib/util/number/utoa64 + 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 20096 + i32.const 22688 i32.store offset=4 local.get $0 - i32.const 20096 + i32.const 22688 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 691 + i32.const 733 i32.const 1 call $~lib/builtins/abort unreachable end - i64.const -8589934591 - i32.const 2 - call $~lib/util/number/itoa64 + 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 20256 + i32.const 4592 i32.store offset=4 local.get $0 - i32.const 20256 + i32.const 4592 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 693 + i32.const 734 i32.const 1 call $~lib/builtins/abort unreachable end - i64.const -1 - i32.const 3 - call $~lib/util/number/utoa64 + 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 20352 + i32.const 22720 i32.store offset=4 local.get $0 - i32.const 20352 + i32.const 22720 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 697 + i32.const 735 i32.const 1 call $~lib/builtins/abort unreachable end - i64.const -1 - i32.const 4 - call $~lib/util/number/utoa64 + 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 20464 + i32.const 22752 i32.store offset=4 local.get $0 - i32.const 20464 + i32.const 22752 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 698 + i32.const 736 i32.const 1 call $~lib/builtins/abort unreachable end - i64.const -1 - i32.const 5 - call $~lib/util/number/utoa64 + f64.const 1e6 + 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 20560 + i32.const 22784 i32.store offset=4 local.get $0 - i32.const 20560 + i32.const 22784 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 699 + i32.const 738 i32.const 1 call $~lib/builtins/abort unreachable end - i64.const -1 - i32.const 8 - call $~lib/util/number/utoa64 + f64.const 1e-06 + 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 20640 + i32.const 22832 i32.store offset=4 local.get $0 - i32.const 20640 + i32.const 22832 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 700 + i32.const 739 i32.const 1 call $~lib/builtins/abort unreachable end - i64.const -1 - i32.const 11 - call $~lib/util/number/utoa64 + f64.const -1e6 + 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 20704 + i32.const 22880 i32.store offset=4 local.get $0 - i32.const 20704 + i32.const 22880 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 701 + i32.const 740 i32.const 1 call $~lib/builtins/abort unreachable end - i64.const -1 - i32.const 15 - call $~lib/util/number/utoa64 + f64.const -1e-06 + 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 20768 + i32.const 22928 i32.store offset=4 local.get $0 - i32.const 20768 + i32.const 22928 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 702 + i32.const 741 i32.const 1 call $~lib/builtins/abort unreachable end - i64.const -1 - i32.const 17 - call $~lib/util/number/utoa64 + f64.const 1e7 + 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 20832 + i32.const 22976 i32.store offset=4 local.get $0 - i32.const 20832 + i32.const 22976 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 703 + i32.const 742 i32.const 1 call $~lib/builtins/abort unreachable end - i64.const -1 - i32.const 21 - call $~lib/util/number/utoa64 + f64.const 1e-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 20896 + i32.const 23024 i32.store offset=4 local.get $0 - i32.const 20896 + i32.const 23024 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 704 + i32.const 743 i32.const 1 call $~lib/builtins/abort unreachable end - i64.const -1 - i32.const 27 - call $~lib/util/number/utoa64 + f64.const 1.e+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 20960 + i32.const 4880 i32.store offset=4 local.get $0 - i32.const 20960 + i32.const 4880 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 705 + i32.const 745 i32.const 1 call $~lib/builtins/abort unreachable end - i64.const -1 - i32.const 32 - call $~lib/util/number/utoa64 + f64.const -1.e+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 21008 + i32.const 23056 i32.store offset=4 local.get $0 - i32.const 21008 + i32.const 23056 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 706 + i32.const 746 i32.const 1 call $~lib/builtins/abort unreachable end - i64.const -1 - i32.const 36 - call $~lib/util/number/utoa64 + f64.const inf + 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 21056 + i32.const 21136 i32.store offset=4 local.get $0 - i32.const 21056 + i32.const 21136 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 707 + i32.const 747 i32.const 1 call $~lib/builtins/abort unreachable end - f64.const 0 + f64.const -inf 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 21104 + i32.const 8304 i32.store offset=4 local.get $0 - i32.const 21104 + i32.const 8304 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 710 + i32.const 748 i32.const 1 call $~lib/builtins/abort unreachable end - f64.const -0 + f64.const 1e-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 21104 + i32.const 23104 i32.store offset=4 local.get $0 - i32.const 21104 + i32.const 23104 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 711 + i32.const 749 i32.const 1 call $~lib/builtins/abort unreachable end - f64.const nan:0x8000000000000 + f64.const -1e-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 7008 + i32.const 23136 i32.store offset=4 local.get $0 - i32.const 7008 + i32.const 23136 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 712 + i32.const 750 i32.const 1 call $~lib/builtins/abort unreachable end - f64.const inf + f64.const 1e-323 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 21136 + i32.const 23184 i32.store offset=4 local.get $0 - i32.const 21136 + i32.const 23184 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 713 + i32.const 751 i32.const 1 call $~lib/builtins/abort unreachable end - f64.const -inf + f64.const -1e-323 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 8304 + i32.const 23216 i32.store offset=4 local.get $0 - i32.const 8304 + i32.const 23216 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 714 + i32.const 752 i32.const 1 call $~lib/builtins/abort unreachable end - f64.const 2.220446049250313e-16 + f64.const 0 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 7520 + i32.const 21104 i32.store offset=4 local.get $0 - i32.const 7520 + i32.const 21104 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 715 + i32.const 753 i32.const 1 call $~lib/builtins/abort unreachable end - f64.const -2.220446049250313e-16 + f64.const 4294967272 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 22160 + i32.const 23264 i32.store offset=4 local.get $0 - i32.const 22160 + i32.const 23264 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 716 + i32.const 755 i32.const 1 call $~lib/builtins/abort unreachable end - f64.const 1797693134862315708145274e284 + f64.const 1.2312145673456234e-08 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 7584 + i32.const 23312 i32.store offset=4 local.get $0 - i32.const 7584 + i32.const 23312 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 717 + i32.const 756 i32.const 1 call $~lib/builtins/abort unreachable end - f64.const -1797693134862315708145274e284 + f64.const 555555555.5555556 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 22224 + i32.const 23376 i32.store offset=4 local.get $0 - i32.const 22224 + i32.const 23376 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 718 + i32.const 758 i32.const 1 call $~lib/builtins/abort unreachable end - f64.const 4185580496821356722454785e274 + f64.const 0.9999999999999999 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 22304 + i32.const 23440 i32.store offset=4 local.get $0 - i32.const 22304 + i32.const 23440 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 719 + i32.const 759 i32.const 1 call $~lib/builtins/abort unreachable end - f64.const 2.2250738585072014e-308 + 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 22368 + i32.const 22688 i32.store offset=4 local.get $0 - i32.const 22368 + i32.const 22688 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 720 + i32.const 760 i32.const 1 call $~lib/builtins/abort unreachable end - f64.const 4.940656e-318 + f64.const 12.34 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 22448 + i32.const 23504 i32.store offset=4 local.get $0 - i32.const 22448 + i32.const 23504 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 723 + i32.const 761 i32.const 1 call $~lib/builtins/abort unreachable end - f64.const 9060801153433600 + f64.const 0.3333333333333333 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 22496 + i32.const 23536 i32.store offset=4 local.get $0 - i32.const 22496 + i32.const 23536 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 724 + i32.const 763 i32.const 1 call $~lib/builtins/abort unreachable end - f64.const 4708356024711512064 + f64.const 1234e17 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 22560 + i32.const 23600 i32.store offset=4 local.get $0 - i32.const 22560 + i32.const 23600 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 725 + i32.const 764 i32.const 1 call $~lib/builtins/abort unreachable end - f64.const 9409340012568248320 + f64.const 1234e18 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 22624 + i32.const 23680 i32.store offset=4 local.get $0 - i32.const 22624 + i32.const 23680 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 726 + i32.const 765 i32.const 1 call $~lib/builtins/abort unreachable end - f64.const 5e-324 + f64.const 2.71828 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 7664 + i32.const 23728 i32.store offset=4 local.get $0 - i32.const 7664 + i32.const 23728 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 727 + i32.const 766 i32.const 1 call $~lib/builtins/abort unreachable end - f64.const 1 + f64.const 0.0271828 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 22688 + i32.const 23776 i32.store offset=4 local.get $0 - i32.const 22688 + i32.const 23776 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 733 + i32.const 767 i32.const 1 call $~lib/builtins/abort unreachable end - f64.const 0.1 + f64.const 271.828 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 4592 + i32.const 23824 i32.store offset=4 local.get $0 - i32.const 4592 + i32.const 23824 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 734 + i32.const 768 i32.const 1 call $~lib/builtins/abort unreachable end - f64.const -1 + f64.const 1.1e+128 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 22720 + i32.const 23872 i32.store offset=4 local.get $0 - i32.const 22720 + i32.const 23872 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 735 + i32.const 769 i32.const 1 call $~lib/builtins/abort unreachable end - f64.const -0.1 + f64.const 1.1e-64 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 22752 + i32.const 23920 i32.store offset=4 local.get $0 - i32.const 22752 + i32.const 23920 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 736 + i32.const 770 i32.const 1 call $~lib/builtins/abort unreachable end - f64.const 1e6 + f64.const 0.000035689 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 22784 + i32.const 23968 i32.store offset=4 local.get $0 - i32.const 22784 + i32.const 23968 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 738 + i32.const 771 i32.const 1 call $~lib/builtins/abort unreachable end - f64.const 1e-06 - call $~lib/util/number/dtoa - local.set $0 + i32.const 0 + global.set $std/string/str + i32.const 40428 + 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 44 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/string/String#charAt (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 + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 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 + if + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 1712 + return + end + global.get $~lib/memory/__stack_pointer + i32.const 2 + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $2 + i32.store + local.get $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/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 + call $~stack_check + 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 1 + 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/string/String.fromCodePoint (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check global.get $~lib/memory/__stack_pointer - i32.const 22832 - i32.store offset=4 + i32.const 0 + i32.store local.get $0 - i32.const 22832 - call $~lib/string/String.__eq - i32.eqz + i32.const 1114111 + i32.gt_u if i32.const 0 - i32.const 1120 - i32.const 739 - i32.const 1 + i32.const 1328 + i32.const 33 + i32.const 5 call $~lib/builtins/abort unreachable end - f64.const -1e6 - call $~lib/util/number/dtoa - local.set $0 global.get $~lib/memory/__stack_pointer + i32.const 2 local.get $0 + i32.const 65535 + i32.gt_s + local.tee $2 + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $1 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 - i32.eqz + local.get $2 if - i32.const 0 - i32.const 1120 - i32.const 740 - i32.const 1 - call $~lib/builtins/abort - unreachable + 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 - f64.const -1e-06 - call $~lib/util/number/dtoa - local.set $0 global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $~lib/string/String#padStart (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 22928 - i32.store offset=4 - local.get $0 - i32.const 22928 - call $~lib/string/String.__eq + 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 + local.get $2 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u + i32.const 1 + i32.shl + local.tee $4 i32.eqz + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u + i32.const 1 + i32.shl + local.tee $5 + local.get $1 + i32.const 1 + i32.shl + local.tee $3 + i32.gt_u + select if - i32.const 0 - i32.const 1120 - i32.const 741 - 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 + local.get $0 + return end - f64.const 1e7 - call $~lib/util/number/dtoa - local.set $0 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $3 + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $1 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 22976 - i32.store offset=4 - local.get $0 - i32.const 22976 - call $~lib/string/String.__eq - i32.eqz + local.get $4 + local.get $3 + local.get $5 + i32.sub + local.tee $3 + i32.lt_u if - i32.const 0 - i32.const 1120 - i32.const 742 - i32.const 1 - call $~lib/builtins/abort - unreachable + local.get $1 + local.get $2 + local.get $4 + local.get $3 + i32.const 2 + i32.sub + local.get $4 + i32.div_u + local.tee $6 + call $~lib/memory/memory.repeat + local.get $1 + local.get $4 + local.get $6 + i32.mul + local.tee $4 + i32.add + local.get $2 + local.get $3 + local.get $4 + i32.sub + call $~lib/memory/memory.copy + else + local.get $1 + local.get $2 + local.get $3 + call $~lib/memory/memory.copy end - f64.const 1e-07 - call $~lib/util/number/dtoa - local.set $0 - global.get $~lib/memory/__stack_pointer + local.get $1 + local.get $3 + i32.add local.get $0 - i32.store + local.get $5 + call $~lib/memory/memory.copy global.get $~lib/memory/__stack_pointer - i32.const 23024 - i32.store offset=4 - local.get $0 - i32.const 23024 - call $~lib/string/String.__eq + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $~lib/string/String#padEnd (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 + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + i32.const 1 + local.get $2 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u + i32.const 1 + i32.shl + local.tee $3 i32.eqz + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u + i32.const 1 + i32.shl + local.tee $4 + local.get $1 + i32.const 1 + i32.shl + local.tee $5 + i32.gt_u + select if - i32.const 0 - i32.const 1120 - i32.const 743 - 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 + local.get $0 + return end - f64.const 1.e+308 - call $~lib/util/number/dtoa - local.set $0 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $5 + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $1 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 4880 - i32.store offset=4 + local.get $1 local.get $0 - i32.const 4880 - call $~lib/string/String.__eq - i32.eqz + local.get $4 + call $~lib/memory/memory.copy + local.get $3 + local.get $5 + local.get $4 + i32.sub + local.tee $0 + i32.lt_u if - i32.const 0 - i32.const 1120 - i32.const 745 - i32.const 1 - call $~lib/builtins/abort - unreachable + local.get $1 + local.get $4 + i32.add + local.tee $4 + local.get $2 + local.get $3 + local.get $0 + i32.const 2 + i32.sub + local.get $3 + i32.div_u + local.tee $5 + call $~lib/memory/memory.repeat + local.get $4 + local.get $3 + local.get $5 + i32.mul + local.tee $3 + i32.add + local.get $2 + local.get $0 + local.get $3 + i32.sub + call $~lib/memory/memory.copy + else + local.get $1 + local.get $4 + i32.add + local.get $2 + local.get $0 + call $~lib/memory/memory.copy 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 + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (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 23056 - i32.store offset=4 - local.get $0 - i32.const 23056 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 1120 - i32.const 746 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - f64.const inf - call $~lib/util/number/dtoa - local.set $0 + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check global.get $~lib/memory/__stack_pointer - local.get $0 + i32.const 0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 21136 - i32.store offset=4 local.get $0 - i32.const 21136 - call $~lib/string/String.__eq + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u + i32.const 1 + i32.shl + local.set $2 + loop $while-continue|0 + local.get $1 + local.get $2 + i32.lt_u + if (result i32) + local.get $0 + local.get $1 + i32.add + i32.load16_u + call $~lib/util/string/isSpace + else + i32.const 0 + end + if + local.get $1 + i32.const 2 + i32.add + local.set $1 + br $while-continue|0 + end + end + local.get $1 i32.eqz if - i32.const 0 - i32.const 1120 - i32.const 747 - 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 + local.get $0 + return end - f64.const -inf - 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 8304 - i32.store offset=4 - local.get $0 - i32.const 8304 - call $~lib/string/String.__eq + local.get $2 + local.get $1 + i32.sub + local.tee $2 i32.eqz if - i32.const 0 - i32.const 1120 - i32.const 748 - 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 1712 + return end - f64.const 1e-308 - call $~lib/util/number/dtoa - local.set $0 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $2 + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $3 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 23104 - i32.store offset=4 + local.get $3 local.get $0 - i32.const 23104 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 1120 - i32.const 749 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - f64.const -1e-308 - call $~lib/util/number/dtoa - local.set $0 + local.get $1 + i32.add + local.get $2 + call $~lib/memory/memory.copy global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store + 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) global.get $~lib/memory/__stack_pointer - i32.const 23136 - i32.store offset=4 + 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 $0 - i32.const 23136 - call $~lib/string/String.__eq + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u + i32.const 1 + i32.shl + local.tee $2 + local.set $1 + loop $while-continue|0 + local.get $1 + if (result i32) + local.get $0 + local.get $1 + i32.add + i32.const 2 + i32.sub + i32.load16_u + call $~lib/util/string/isSpace + 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 - i32.const 0 - i32.const 1120 - i32.const 750 - 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 1712 + return end - f64.const 1e-323 - 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 23184 - i32.store offset=4 - local.get $0 - i32.const 23184 - call $~lib/string/String.__eq - i32.eqz + local.get $1 + local.get $2 + i32.eq if - i32.const 0 - i32.const 1120 - i32.const 751 - 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 + local.get $0 + return end - f64.const -1e-323 - call $~lib/util/number/dtoa - local.set $0 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $2 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 23216 - i32.store offset=4 + local.get $2 local.get $0 - i32.const 23216 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 1120 - i32.const 752 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - f64.const 0 - call $~lib/util/number/dtoa - local.set $0 + local.get $1 + call $~lib/memory/memory.copy global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store + i32.const 4 + 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) global.get $~lib/memory/__stack_pointer - i32.const 21104 - i32.store offset=4 - local.get $0 - i32.const 21104 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 1120 - i32.const 753 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - f64.const 4294967272 - call $~lib/util/number/dtoa - local.set $0 + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check global.get $~lib/memory/__stack_pointer - local.get $0 + i32.const 0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 23264 - i32.store offset=4 local.get $0 - i32.const 23264 - call $~lib/string/String.__eq + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u + local.tee $1 + local.set $3 + local.get $1 + i32.const 1 + i32.shl + local.set $1 + loop $while-continue|0 + local.get $1 + if (result i32) + local.get $0 + local.get $1 + i32.add + i32.const 2 + i32.sub + i32.load16_u + call $~lib/util/string/isSpace + 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) + local.get $0 + local.get $2 + i32.add + i32.load16_u + call $~lib/util/string/isSpace + 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 - i32.const 0 - i32.const 1120 - i32.const 755 - 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 1712 + return end - f64.const 1.2312145673456234e-08 - 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 23312 - i32.store offset=4 - local.get $0 - i32.const 23312 - call $~lib/string/String.__eq - i32.eqz + i32.const 0 + local.get $1 + local.get $3 + i32.const 1 + i32.shl + i32.eq + local.get $2 + select if - i32.const 0 - i32.const 1120 - i32.const 756 - 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 + local.get $0 + return end - f64.const 555555555.5555556 - call $~lib/util/number/dtoa - local.set $0 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $3 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 23376 - i32.store offset=4 + local.get $3 local.get $0 - i32.const 23376 - 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 0.9999999999999999 - call $~lib/util/number/dtoa - local.set $0 + local.get $2 + i32.add + local.get $1 + call $~lib/memory/memory.copy + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 + ) + (func $~lib/string/String#repeat (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 + call $~stack_check global.get $~lib/memory/__stack_pointer - local.get $0 + i32.const 0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 23440 - i32.store offset=4 + i32.const 1 local.get $0 - i32.const 23440 - call $~lib/string/String.__eq - i32.eqz + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u + local.tee $2 + i64.extend_i32_s + local.get $1 + i64.extend_i32_s + i64.mul + i64.const 268435456 + i64.gt_u + local.get $1 + i32.const 0 + i32.lt_s + select if - i32.const 0 - i32.const 1120 - i32.const 759 - i32.const 1 + i32.const 13408 + i32.const 1328 + i32.const 333 + i32.const 7 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 22688 - i32.store offset=4 - local.get $0 - i32.const 22688 - call $~lib/string/String.__eq + local.get $2 i32.eqz + i32.const 1 + local.get $1 + select if - i32.const 0 - i32.const 1120 - i32.const 760 - 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 1712 + return end - f64.const 12.34 - 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 23504 - i32.store offset=4 - local.get $0 - i32.const 23504 - call $~lib/string/String.__eq - i32.eqz + local.get $1 + i32.const 1 + i32.eq if - i32.const 0 - i32.const 1120 - i32.const 761 - 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 + local.get $0 + return end - f64.const 0.3333333333333333 - call $~lib/util/number/dtoa - local.set $0 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 + local.get $2 + i32.mul + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $3 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 23536 - i32.store offset=4 + local.get $3 local.get $0 - i32.const 23536 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 1120 - i32.const 763 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - f64.const 1234e17 - call $~lib/util/number/dtoa - local.set $0 + local.get $2 + i32.const 1 + i32.shl + local.get $1 + call $~lib/memory/memory.repeat global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 + ) + (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 23600 - i32.store offset=4 + 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 $1 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u + local.tee $4 local.get $0 - i32.const 23600 - call $~lib/string/String.__eq - i32.eqz + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u + local.tee $3 + i32.ge_u if - i32.const 0 - i32.const 1120 - i32.const 764 - i32.const 1 - call $~lib/builtins/abort - unreachable + local.get $3 + local.get $4 + i32.ge_u + if + 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 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + return end - f64.const 1234e18 - 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 23680 - i32.store offset=4 - local.get $0 - i32.const 23680 - call $~lib/string/String.__eq - i32.eqz + local.get $1 + i32.const 0 + call $~lib/string/String#indexOf + local.tee $1 + i32.const -1 + i32.xor if - i32.const 0 - i32.const 1120 - i32.const 765 + local.get $2 + i32.const 20 + i32.sub + i32.load offset=16 i32.const 1 - call $~lib/builtins/abort - unreachable + i32.shr_u + local.tee $5 + local.get $3 + local.get $4 + i32.sub + local.tee $6 + i32.add + local.tee $3 + if + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $3 + i32.store + local.get $3 + local.get $0 + local.get $1 + i32.const 1 + i32.shl + local.tee $7 + call $~lib/memory/memory.copy + local.get $3 + local.get $7 + i32.add + local.get $2 + local.get $5 + i32.const 1 + i32.shl + call $~lib/memory/memory.copy + local.get $3 + local.get $1 + local.get $5 + i32.add + i32.const 1 + i32.shl + i32.add + local.get $0 + local.get $1 + local.get $4 + i32.add + i32.const 1 + i32.shl + i32.add + local.get $6 + local.get $1 + i32.sub + i32.const 1 + i32.shl + call $~lib/memory/memory.copy + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 + return + end end - 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 local.get $0 - i32.store + ) + (func $~lib/string/String#replaceAll (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) + (local $11 i32) global.get $~lib/memory/__stack_pointer - i32.const 23728 - i32.store offset=4 - local.get $0 - i32.const 23728 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 1120 - i32.const 766 + 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 $folding-inner0 + local.get $1 + i32.const 20 + i32.sub + i32.load offset=16 i32.const 1 - call $~lib/builtins/abort - unreachable + i32.shr_u + local.tee $10 + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u + local.tee $4 + i32.ge_u + if + local.get $4 + local.get $10 + i32.ge_u + if + local.get $2 + local.get $0 + local.get $1 + local.get $0 + call $~lib/string/String.__eq + select + local.set $0 + end + br $folding-inner0 + end + local.get $2 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u + local.set $5 + local.get $10 + i32.eqz + if + local.get $5 + i32.eqz + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.get $4 + local.get $5 + local.get $4 + i32.const 1 + i32.add + i32.mul + i32.add + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $3 + i32.store + local.get $3 + local.get $2 + local.get $5 + i32.const 1 + i32.shl + call $~lib/memory/memory.copy + local.get $5 + local.set $1 + loop $for-loop|0 + local.get $4 + local.get $8 + i32.gt_u + if + local.get $3 + local.get $1 + i32.const 1 + i32.shl + i32.add + local.get $0 + local.get $8 + i32.const 1 + i32.shl + i32.add + i32.load16_u + i32.store16 + local.get $3 + local.get $1 + i32.const 1 + i32.add + local.tee $1 + i32.const 1 + i32.shl + i32.add + local.get $2 + local.get $5 + i32.const 1 + i32.shl + call $~lib/memory/memory.copy + local.get $1 + local.get $5 + i32.add + local.set $1 + local.get $8 + i32.const 1 + i32.add + local.set $8 + 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 + return + end + local.get $5 + local.get $10 + i32.eq + if + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.const 1 + i32.shl + local.tee $3 + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $4 + i32.store + local.get $4 + local.get $0 + local.get $3 + call $~lib/memory/memory.copy + loop $while-continue|1 + local.get $0 + local.get $1 + local.get $7 + call $~lib/string/String#indexOf + local.tee $3 + i32.const -1 + i32.xor + if + local.get $4 + local.get $3 + i32.const 1 + i32.shl + i32.add + local.get $2 + local.get $5 + i32.const 1 + i32.shl + call $~lib/memory/memory.copy + local.get $3 + local.get $10 + i32.add + local.set $7 + br $while-continue|1 + end + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $4 + return + end + local.get $4 + local.set $3 + loop $while-continue|2 + local.get $0 + local.get $1 + local.get $7 + call $~lib/string/String#indexOf + local.tee $8 + i32.const -1 + i32.xor + if + local.get $6 + call $~lib/string/String.__not + if + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $6 + i32.store offset=4 + end + local.get $3 + local.get $5 + local.get $9 + local.get $8 + local.get $7 + i32.sub + local.tee $11 + i32.add + i32.add + i32.lt_u + if + global.get $~lib/memory/__stack_pointer + local.get $6 + local.get $3 + i32.const 1 + i32.shl + local.tee $3 + i32.const 1 + i32.shl + call $~lib/rt/itcms/__renew + local.tee $6 + i32.store offset=4 + end + local.get $6 + local.get $9 + i32.const 1 + i32.shl + i32.add + local.get $0 + local.get $7 + i32.const 1 + i32.shl + i32.add + local.get $11 + i32.const 1 + i32.shl + call $~lib/memory/memory.copy + local.get $6 + local.get $9 + local.get $11 + i32.add + local.tee $7 + i32.const 1 + i32.shl + i32.add + local.get $2 + local.get $5 + i32.const 1 + i32.shl + call $~lib/memory/memory.copy + local.get $5 + local.get $7 + i32.add + local.set $9 + local.get $8 + local.get $10 + i32.add + local.set $7 + br $while-continue|2 + end + end + local.get $6 + if + local.get $3 + local.get $9 + local.get $4 + local.get $7 + i32.sub + local.tee $1 + i32.add + i32.lt_u + if + global.get $~lib/memory/__stack_pointer + local.get $6 + local.get $3 + i32.const 1 + i32.shl + local.tee $3 + i32.const 1 + i32.shl + call $~lib/rt/itcms/__renew + local.tee $6 + i32.store offset=4 + end + local.get $1 + if + local.get $6 + local.get $9 + i32.const 1 + i32.shl + i32.add + local.get $0 + local.get $7 + i32.const 1 + i32.shl + i32.add + local.get $1 + i32.const 1 + i32.shl + call $~lib/memory/memory.copy + end + local.get $3 + local.get $1 + local.get $9 + i32.add + local.tee $0 + i32.gt_u + if + global.get $~lib/memory/__stack_pointer + local.get $6 + local.get $0 + i32.const 1 + i32.shl + call $~lib/rt/itcms/__renew + local.tee $6 + i32.store offset=4 + 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 - f64.const 0.0271828 - call $~lib/util/number/dtoa - local.set $0 global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer local.get $0 - i32.store + ) + (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 23776 - i32.store offset=4 - local.get $0 - i32.const 23776 - 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 - f64.const 271.828 - call $~lib/util/number/dtoa - local.set $0 + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check global.get $~lib/memory/__stack_pointer - local.get $0 + i32.const 0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 23824 - i32.store offset=4 local.get $0 - i32.const 23824 - call $~lib/string/String.__eq - i32.eqz - if + 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 - i32.const 1120 - i32.const 768 - i32.const 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 - global.get $~lib/memory/__stack_pointer - i32.const 23872 - i32.store offset=4 - local.get $0 - i32.const 23872 - call $~lib/string/String.__eq - i32.eqz - if + local.get $1 i32.const 0 - i32.const 1120 - i32.const 769 - i32.const 1 - call $~lib/builtins/abort - unreachable + i32.gt_s + select + else + local.get $1 + local.get $3 + local.get $1 + local.get $3 + i32.lt_s + select 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 - global.get $~lib/memory/__stack_pointer - i32.const 23920 - i32.store offset=4 - local.get $0 - i32.const 23920 - call $~lib/string/String.__eq - i32.eqz - if + 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 - i32.const 1120 - i32.const 770 - i32.const 1 - 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 - global.get $~lib/memory/__stack_pointer - i32.const 23968 - i32.store offset=4 - local.get $0 - i32.const 23968 - call $~lib/string/String.__eq - i32.eqz - if + local.get $2 i32.const 0 - i32.const 1120 - i32.const 771 - i32.const 1 - call $~lib/builtins/abort - unreachable + 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 - global.set $std/string/str - i32.const 40428 - global.set $~lib/memory/__stack_pointer - global.get $~lib/rt/itcms/state - i32.const 0 - i32.gt_s + i32.le_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 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 1712 + return 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 + local.get $2 + i32.const 1 + i32.shl + local.tee $3 + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $2 + i32.store + local.get $2 + local.get $0 + local.get $1 + i32.const 1 + i32.shl i32.add - global.set $~lib/rt/itcms/threshold + local.get $3 + call $~lib/memory/memory.copy global.get $~lib/memory/__stack_pointer - i32.const 44 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer + local.get $2 ) - (func $~lib/string/String.fromCharCode (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) + (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 4 @@ -22223,35 +21258,78 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 2 - 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 + local.get $1 + i32.const 0 + i32.lt_s + 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 + end + local.get $1 + i32.sub local.tee $3 + local.get $2 + local.get $3 + i32.lt_s + select + i32.const 1 i32.shl + local.tee $2 + i32.const 0 + i32.le_s + if + global.get $~lib/memory/__stack_pointer + i32.const 4 + 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 call $~lib/rt/itcms/__new - local.tee $2 + local.tee $3 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 + local.get $0 + local.get $1 + i32.const 1 + i32.shl + i32.add + local.get $2 + call $~lib/memory/memory.copy 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/string/String.fromCodePoint (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 4 i32.sub @@ -22260,53 +21338,93 @@ global.get $~lib/memory/__stack_pointer i32.const 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 1114111 - i32.gt_u - if - i32.const 0 - i32.const 1328 - i32.const 33 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 2 - local.get $0 - i32.const 65535 + 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.lt_s + select + i32.const 1 + i32.shl + local.tee $4 + local.get $3 + local.get $2 + local.get $2 + local.get $3 i32.gt_s + select + i32.const 1 + i32.shl local.tee $2 + i32.sub + 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 1712 + return + end + i32.const 0 + local.get $4 + local.get $1 + i32.const 1 i32.shl + i32.eq + local.get $2 + select + if + 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 $3 i32.const 1 call $~lib/rt/itcms/__new local.tee $1 i32.store + local.get $1 + local.get $0 local.get $2 - if - 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.add + local.get $3 + call $~lib/memory/memory.copy global.get $~lib/memory/__stack_pointer i32.const 4 i32.add diff --git a/tests/compiler/std/string.untouched.wat b/tests/compiler/std/string.untouched.wat index dce01afcd3..d332ba6f1d 100644 --- a/tests/compiler/std/string.untouched.wat +++ b/tests/compiler/std/string.untouched.wat @@ -627,6 +627,64 @@ end i32.const 0 ) + (func $~lib/string/String.__eq (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + local.get $0 + local.get $1 + i32.eq + if + i32.const 1 + return + end + local.get $0 + i32.const 0 + i32.eq + if (result i32) + i32.const 1 + else + local.get $1 + i32.const 0 + i32.eq + end + if + i32.const 0 + return + end + local.get $0 + call $~lib/string/String#get:length + local.set $2 + local.get $2 + local.get $1 + call $~lib/string/String#get:length + i32.ne + if + i32.const 0 + return + end + local.get $0 + i32.const 0 + local.get $1 + i32.const 0 + local.get $2 + call $~lib/util/string/compareImpl + i32.eqz + ) + (func $~lib/string/String#charCodeAt (param $0 i32) (param $1 i32) (result i32) + local.get $1 + local.get $0 + call $~lib/string/String#get:length + i32.ge_u + if + i32.const -1 + return + end + local.get $0 + local.get $1 + i32.const 1 + i32.shl + i32.add + i32.load16_u + ) (func $~lib/rt/itcms/Object#set:nextWithColor (param $0 i32) (param $1 i32) local.get $0 local.get $1 @@ -2940,6 +2998,58 @@ call $~lib/memory/memory.fill local.get $3 ) + (func $~lib/string/String#at (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + local.get $0 + call $~lib/string/String#get:length + local.set $2 + local.get $1 + i32.const 0 + local.get $2 + local.get $1 + i32.const 0 + i32.ge_s + select + i32.add + local.set $1 + local.get $1 + local.get $2 + i32.ge_u + if + i32.const 240 + i32.const 304 + i32.const 54 + i32.const 31 + call $~lib/builtins/abort + unreachable + end + i32.const 2 + i32.const 1 + call $~lib/rt/itcms/__new + local.set $3 + local.get $3 + local.get $0 + local.get $1 + i32.const 1 + i32.shl + i32.add + i32.load16_u + i32.store16 + local.get $3 + ) + (func $~lib/string/String.__not (param $0 i32) (result i32) + local.get $0 + i32.const 0 + i32.eq + if (result i32) + i32.const 1 + else + local.get $0 + call $~lib/string/String#get:length + i32.eqz + end + ) (func $~lib/string/String.fromCharCode@varargs (param $0 i32) (param $1 i32) (result i32) block $1of1 block $0of1 @@ -2958,6 +3068,136 @@ local.get $1 call $~lib/string/String.fromCharCode ) + (func $~lib/string/String#endsWith (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.const 0 + i32.eq + if + i32.const 0 + return + end + local.get $2 + local.tee $3 + i32.const 0 + local.tee $4 + local.get $3 + local.get $4 + i32.gt_s + select + local.tee $4 + local.get $0 + call $~lib/string/String#get:length + local.tee $3 + local.get $4 + local.get $3 + i32.lt_s + select + local.set $2 + local.get $1 + call $~lib/string/String#get:length + local.set $5 + local.get $2 + local.get $5 + i32.sub + local.set $6 + local.get $6 + i32.const 0 + i32.lt_s + if + i32.const 0 + return + end + local.get $0 + local.get $6 + local.get $1 + i32.const 0 + local.get $5 + call $~lib/util/string/compareImpl + i32.eqz + ) + (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) + (local $6 i32) + (local $7 i32) + local.get $1 + call $~lib/string/String#get:length + local.set $3 + local.get $3 + i32.eqz + if + i32.const 0 + return + end + local.get $0 + call $~lib/string/String#get:length + local.set $4 + local.get $4 + i32.eqz + if + i32.const -1 + return + end + local.get $2 + local.tee $5 + i32.const 0 + local.tee $6 + local.get $5 + local.get $6 + i32.gt_s + select + local.tee $6 + local.get $4 + local.tee $5 + local.get $6 + local.get $5 + i32.lt_s + select + local.set $7 + local.get $4 + local.get $3 + i32.sub + local.set $4 + loop $for-loop|0 + local.get $7 + local.get $4 + i32.le_s + local.set $6 + local.get $6 + if + local.get $0 + local.get $7 + local.get $1 + i32.const 0 + local.get $3 + call $~lib/util/string/compareImpl + i32.eqz + if + local.get $7 + return + end + local.get $7 + i32.const 1 + i32.add + local.set $7 + br $for-loop|0 + end + end + i32.const -1 + ) + (func $~lib/string/String#includes (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + local.get $0 + local.get $1 + local.get $2 + call $~lib/string/String#indexOf + i32.const -1 + i32.ne + ) (func $~lib/util/memory/memcpy (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) @@ -4242,11 +4482,122 @@ end end ) - (func $~lib/util/string/isSpace (param $0 i32) (result i32) - (local $1 i32) - local.get $0 - i32.const 5760 - i32.lt_u + (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) + (local $6 i32) + (local $7 i32) + local.get $1 + call $~lib/string/String#get:length + local.set $3 + local.get $3 + i32.eqz + if + local.get $0 + call $~lib/string/String#get:length + return + end + local.get $0 + call $~lib/string/String#get:length + local.set $4 + local.get $4 + i32.eqz + if + i32.const -1 + return + end + local.get $2 + local.tee $5 + i32.const 0 + local.tee $6 + local.get $5 + local.get $6 + i32.gt_s + select + local.tee $6 + local.get $4 + local.get $3 + i32.sub + local.tee $5 + local.get $6 + local.get $5 + i32.lt_s + select + local.set $7 + loop $for-loop|0 + local.get $7 + i32.const 0 + i32.ge_s + local.set $6 + local.get $6 + if + local.get $0 + local.get $7 + local.get $1 + i32.const 0 + local.get $3 + call $~lib/util/string/compareImpl + i32.eqz + if + local.get $7 + return + end + local.get $7 + i32.const 1 + i32.sub + local.set $7 + br $for-loop|0 + end + end + i32.const -1 + ) + (func $~lib/string/String#localeCompare (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + local.get $1 + local.get $0 + i32.eq + if + i32.const 0 + return + end + local.get $0 + call $~lib/string/String#get:length + local.set $2 + local.get $1 + call $~lib/string/String#get:length + local.set $3 + local.get $3 + local.get $2 + i32.ne + if + i32.const 1 + i32.const -1 + local.get $2 + local.get $3 + i32.gt_s + select + return + end + local.get $3 + i32.eqz + if + i32.const 0 + return + end + local.get $0 + i32.const 0 + local.get $1 + i32.const 0 + local.get $3 + call $~lib/util/string/compareImpl + ) + (func $~lib/util/string/isSpace (param $0 i32) (result i32) + (local $1 i32) + local.get $0 + i32.const 5760 + i32.lt_u if local.get $0 i32.const 128 @@ -4325,7011 +4676,4701 @@ end i32.const 0 ) - (func $~lib/math/ipow32 (param $0 i32) (param $1 i32) (result i32) + (func $~lib/util/string/strtol (param $0 i32) (param $1 i32) (result f64) (local $2 i32) (local $3 i32) (local $4 i32) - i32.const 1 - local.set $2 - i32.const 0 - i32.const 1 - i32.lt_s - drop + (local $5 i32) + (local $6 f64) + (local $7 f64) local.get $0 - i32.const 2 - i32.eq + call $~lib/string/String#get:length + local.set $2 + local.get $2 + i32.eqz if i32.const 1 - local.get $1 - i32.shl - i32.const 0 - local.get $1 - i32.const 32 - i32.lt_u - select + drop + f64.const nan:0x8000000000000 return end - local.get $1 - i32.const 0 - i32.le_s + local.get $0 + local.set $3 + local.get $3 + i32.load16_u + local.set $4 + loop $while-continue|0 + local.get $4 + call $~lib/util/string/isSpace + local.set $5 + local.get $5 + if + local.get $3 + i32.const 2 + i32.add + local.tee $3 + i32.load16_u + local.set $4 + local.get $2 + i32.const 1 + i32.sub + local.set $2 + br $while-continue|0 + end + end + f64.const 1 + local.set $6 + local.get $4 + i32.const 45 + i32.eq + if (result i32) + i32.const 1 + else + local.get $4 + i32.const 43 + i32.eq + end if - local.get $0 - i32.const -1 + local.get $2 + i32.const 1 + i32.sub + local.tee $2 + i32.eqz + if + i32.const 1 + drop + f64.const nan:0x8000000000000 + return + end + local.get $4 + i32.const 45 i32.eq if - i32.const -1 + f64.const -1 + local.set $6 + end + local.get $3 + i32.const 2 + i32.add + local.tee $3 + i32.load16_u + local.set $4 + end + local.get $1 + if + local.get $1 + i32.const 2 + i32.lt_s + if (result i32) i32.const 1 + else local.get $1 + i32.const 36 + i32.gt_s + end + if i32.const 1 - i32.and - select + drop + f64.const nan:0x8000000000000 return end local.get $1 - i32.const 0 - i32.eq - local.get $0 - i32.const 1 - i32.eq - i32.or - return - else - local.get $1 - i32.const 1 + i32.const 16 i32.eq if - local.get $0 - return - else - local.get $1 + local.get $2 i32.const 2 - i32.eq - if - local.get $0 - local.get $0 - i32.mul - return + i32.gt_s + if (result i32) + local.get $4 + i32.const 48 + i32.eq else - local.get $1 + i32.const 0 + end + if (result i32) + local.get $3 + i32.load16_u offset=2 i32.const 32 - i32.lt_s - if - i32.const 32 - local.get $1 - i32.clz - i32.sub - local.set $3 - block $break|0 - block $case4|0 - block $case3|0 - block $case2|0 - block $case1|0 - block $case0|0 - local.get $3 - local.set $4 - local.get $4 - i32.const 5 - i32.eq - br_if $case0|0 - local.get $4 - i32.const 4 - i32.eq - br_if $case1|0 - local.get $4 - i32.const 3 - i32.eq - br_if $case2|0 - local.get $4 - i32.const 2 - i32.eq - br_if $case3|0 - local.get $4 - i32.const 1 - i32.eq - br_if $case4|0 - br $break|0 - end - local.get $1 - i32.const 1 - i32.and - if - local.get $2 - local.get $0 - i32.mul - local.set $2 - end - 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 $1 - i32.const 1 - i32.and - if - local.get $2 - local.get $0 - i32.mul - local.set $2 - end - 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 $1 - i32.const 1 - i32.and - if - local.get $2 - local.get $0 - i32.mul - local.set $2 - end - 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 $1 - i32.const 1 - i32.and - if - local.get $2 - local.get $0 - i32.mul - local.set $2 - end - 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 $1 - i32.const 1 - i32.and - if - local.get $2 - local.get $0 - i32.mul - local.set $2 + i32.or + i32.const 120 + i32.eq + else + i32.const 0 + end + if + local.get $3 + i32.const 4 + i32.add + local.set $3 + local.get $2 + i32.const 2 + i32.sub + local.set $2 + end + end + else + local.get $4 + i32.const 48 + i32.eq + if (result i32) + local.get $2 + 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 $3 + i32.load16_u offset=2 + i32.const 32 + i32.or + local.set $5 + local.get $5 + i32.const 98 + i32.eq + br_if $case0|1 + local.get $5 + i32.const 111 + i32.eq + br_if $case1|1 + local.get $5 + i32.const 120 + i32.eq + br_if $case2|1 + br $break|1 end + local.get $3 + i32.const 4 + i32.add + local.set $3 + local.get $2 + i32.const 2 + i32.sub + local.set $2 + i32.const 2 + local.set $1 + br $break|1 end + local.get $3 + i32.const 4 + i32.add + local.set $3 local.get $2 - return + i32.const 2 + i32.sub + local.set $2 + i32.const 8 + local.set $1 + br $break|1 end + local.get $3 + i32.const 4 + i32.add + local.set $3 + local.get $2 + i32.const 2 + i32.sub + local.set $2 + i32.const 16 + local.set $1 + br $break|1 end end - end - loop $while-continue|1 local.get $1 - local.set $3 - local.get $3 + i32.eqz if - local.get $1 - i32.const 1 - i32.and - if - local.get $2 - local.get $0 - i32.mul - local.set $2 - end - local.get $1 - i32.const 1 - i32.shr_u + i32.const 10 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/math/NativeMath.scalbn (param $0 f64) (param $1 i32) (result f64) - (local $2 f64) - (local $3 i32) - (local $4 i32) - local.get $0 - local.set $2 - local.get $1 - i32.const 1023 - i32.gt_s - if - local.get $2 - f64.const 8988465674311579538646525e283 - f64.mul - local.set $2 - local.get $1 - i32.const 1023 - i32.sub - local.set $1 - local.get $1 - i32.const 1023 - i32.gt_s - if + f64.const 0 + local.set $7 + block $while-break|2 + loop $while-continue|2 local.get $2 - f64.const 8988465674311579538646525e283 - f64.mul - local.set $2 - local.get $1 - i32.const 1023 + local.tee $5 + i32.const 1 i32.sub - local.tee $3 - i32.const 1023 - local.tee $4 - local.get $3 - local.get $4 - i32.lt_s - select - local.set $1 - end - else - local.get $1 - i32.const -1022 - i32.lt_s - if - local.get $2 - f64.const 2.2250738585072014e-308 - f64.const 9007199254740992 - f64.mul - f64.mul local.set $2 - local.get $1 - i32.const 1022 - i32.const 53 - i32.sub - i32.add - local.set $1 - local.get $1 - i32.const -1022 - i32.lt_s + local.get $5 + local.set $5 + local.get $5 if - local.get $2 - f64.const 2.2250738585072014e-308 - f64.const 9007199254740992 - f64.mul - f64.mul - local.set $2 - local.get $1 - i32.const 1022 - i32.add - i32.const 53 + local.get $3 + i32.load16_u + local.set $4 + local.get $4 + i32.const 48 i32.sub - local.tee $4 - i32.const -1022 - local.tee $3 + i32.const 10 + i32.lt_u + if + local.get $4 + i32.const 48 + i32.sub + local.set $4 + else + local.get $4 + i32.const 65 + i32.sub + i32.const 90 + i32.const 65 + i32.sub + i32.le_u + if + local.get $4 + i32.const 65 + i32.const 10 + i32.sub + i32.sub + local.set $4 + else + local.get $4 + i32.const 97 + i32.sub + i32.const 122 + i32.const 97 + i32.sub + i32.le_u + if + local.get $4 + i32.const 97 + i32.const 10 + i32.sub + i32.sub + local.set $4 + end + end + end + local.get $4 + local.get $1 + i32.ge_u + if + local.get $7 + i64.reinterpret_f64 + i64.const 1 + i64.shl + i64.const 2 + i64.sub + i64.const -9007199254740994 + i64.le_u + i32.eqz + if + i32.const 1 + drop + f64.const nan:0x8000000000000 + return + end + br $while-break|2 + end + local.get $7 + local.get $1 + f64.convert_i32_s + f64.mul local.get $4 + f64.convert_i32_u + f64.add + local.set $7 local.get $3 - i32.gt_s - select - local.set $1 + i32.const 2 + i32.add + local.set $3 + br $while-continue|2 end end end - local.get $2 - i64.const 1023 - local.get $1 - i64.extend_i32_s - i64.add - i64.const 52 - i64.shl - f64.reinterpret_i64 + local.get $6 + local.get $7 f64.mul ) - (func $~lib/rt/itcms/__renew (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) + (func $~lib/string/parseInt (param $0 i32) (param $1 i32) (result f64) local.get $0 - i32.const 20 - i32.sub - local.set $2 - local.get $1 - local.get $2 - i32.load - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.const 16 - i32.sub - i32.le_u - if - local.get $2 - local.get $1 - call $~lib/rt/itcms/Object#set:rtSize - local.get $0 - return - end local.get $1 - local.get $2 - i32.load offset=12 - call $~lib/rt/itcms/__new - local.set $3 - local.get $3 + call $~lib/util/string/strtol + ) + (func $~lib/number/F32.parseInt (param $0 i32) (param $1 i32) (result f32) local.get $0 local.get $1 - local.tee $4 - local.get $2 - i32.load offset=16 - local.tee $5 - local.get $4 - local.get $5 - i32.lt_u - select - call $~lib/memory/memory.copy - local.get $3 + call $~lib/util/string/strtol + f32.demote_f64 ) - (func $~lib/rt/__newBuffer (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (local $3 i32) + (func $~lib/number/F64.parseInt (param $0 i32) (param $1 i32) (result f64) local.get $0 local.get $1 - call $~lib/rt/itcms/__new - local.set $3 - local.get $2 - if - local.get $3 - local.get $2 - local.get $0 - call $~lib/memory/memory.copy - end - local.get $3 + call $~lib/util/string/strtol ) - (func $~lib/rt/itcms/__link (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/util/string/strtol (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) - local.get $1 - i32.eqz - if - return - end - i32.const 1 - drop + (local $6 i32) + (local $7 i32) local.get $0 + call $~lib/string/String#get:length + local.set $2 + local.get $2 i32.eqz if i32.const 0 - i32.const 416 - i32.const 294 - i32.const 14 - call $~lib/builtins/abort - unreachable + drop + i32.const 0 + return end - local.get $1 - i32.const 20 - i32.sub + local.get $0 local.set $3 local.get $3 - call $~lib/rt/itcms/Object#get:color - global.get $~lib/rt/itcms/white - i32.eq - if - local.get $0 - i32.const 20 - i32.sub - local.set $4 + i32.load16_u + local.set $4 + loop $while-continue|0 local.get $4 - call $~lib/rt/itcms/Object#get:color + call $~lib/util/string/isSpace local.set $5 local.get $5 - global.get $~lib/rt/itcms/white - i32.eqz - i32.eq if + local.get $3 + i32.const 2 + i32.add + local.tee $3 + i32.load16_u + local.set $4 local.get $2 - if - local.get $4 - call $~lib/rt/itcms/Object#makeGray - else - local.get $3 - call $~lib/rt/itcms/Object#makeGray - end - else - local.get $5 - 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 $3 - call $~lib/rt/itcms/Object#makeGray - end + i32.const 1 + i32.sub + local.set $2 + br $while-continue|0 end end - ) - (func $~lib/array/Array<~lib/string/String>#__uset (param $0 i32) (param $1 i32) (param $2 i32) - local.get $0 - i32.load offset=4 - local.get $1 - i32.const 2 - i32.shl - i32.add - local.get $2 - i32.store - i32.const 1 - drop - local.get $0 - local.get $2 i32.const 1 - call $~lib/rt/itcms/__link - ) - (func $~lib/array/ensureSize (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - local.get $0 - i32.load offset=8 - local.set $3 - local.get $1 - local.get $3 - local.get $2 - i32.shr_u - i32.gt_u + local.set $6 + local.get $4 + i32.const 45 + i32.eq + if (result i32) + i32.const 1 + else + local.get $4 + i32.const 43 + i32.eq + end if - local.get $1 - i32.const 1073741820 local.get $2 - i32.shr_u - i32.gt_u + i32.const 1 + i32.sub + local.tee $2 + i32.eqz if - i32.const 12384 - i32.const 13984 - i32.const 14 - i32.const 48 - call $~lib/builtins/abort - unreachable + i32.const 0 + drop + i32.const 0 + return end - local.get $0 - i32.load - local.set $4 - local.get $1 - local.get $2 - i32.shl - local.set $5 - local.get $4 - local.get $5 - call $~lib/rt/itcms/__renew - local.set $6 - local.get $6 - local.get $3 - i32.add - i32.const 0 - local.get $5 - local.get $3 - i32.sub - call $~lib/memory/memory.fill - local.get $6 local.get $4 - i32.ne + i32.const 45 + i32.eq if - local.get $0 - local.get $6 - i32.store - local.get $0 - local.get $6 - i32.store offset=4 - local.get $0 - local.get $6 - i32.const 0 - call $~lib/rt/itcms/__link + i32.const -1 + local.set $6 end - local.get $0 - local.get $5 - i32.store offset=8 + local.get $3 + i32.const 2 + i32.add + local.tee $3 + i32.load16_u + local.set $4 end - ) - (func $~lib/array/Array<~lib/string/String>#set:length_ (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - i32.store offset=12 - ) - (func $~lib/array/Array<~lib/string/String>#push (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - local.get $0 - i32.load offset=12 - local.set $2 - local.get $2 - i32.const 1 - i32.add - local.set $3 - local.get $0 - local.get $3 - i32.const 2 - call $~lib/array/ensureSize - i32.const 1 - drop - 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 - local.get $0 - local.get $3 - call $~lib/array/Array<~lib/string/String>#set:length_ - local.get $3 - ) - (func $~lib/array/Array<~lib/string/String>#get:length (param $0 i32) (result i32) - local.get $0 - i32.load offset=12 - ) - (func $~lib/util/number/decimalCount32 (param $0 i32) (result i32) - local.get $0 - i32.const 100000 - i32.lt_u if - local.get $0 - i32.const 100 - i32.lt_u - if + local.get $1 + i32.const 2 + i32.lt_s + if (result i32) i32.const 1 - local.get $0 - i32.const 10 - i32.ge_u - i32.add - return else - i32.const 3 - local.get $0 - i32.const 10000 - i32.ge_u - i32.add - local.get $0 - i32.const 1000 - i32.ge_u - i32.add - return + local.get $1 + i32.const 36 + i32.gt_s end - unreachable - else - local.get $0 - i32.const 10000000 - i32.lt_u if - i32.const 6 - local.get $0 - i32.const 1000000 - i32.ge_u - i32.add - return - else - i32.const 8 - local.get $0 - i32.const 1000000000 - i32.ge_u - i32.add - local.get $0 - i32.const 100000000 - i32.ge_u - i32.add + i32.const 0 + drop + i32.const 0 return end - unreachable - end - unreachable - ) - (func $~lib/util/number/utoa32_dec_lut (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 i64) - (local $9 i64) - (local $10 i32) - (local $11 i32) - loop $while-continue|0 local.get $1 - i32.const 10000 - i32.ge_u - local.set $3 - local.get $3 + i32.const 16 + i32.eq if - local.get $1 - i32.const 10000 - i32.div_u - local.set $4 - local.get $1 - i32.const 10000 - i32.rem_u - local.set $5 - local.get $4 - local.set $1 - local.get $5 - i32.const 100 - i32.div_u - local.set $6 - local.get $5 - i32.const 100 - i32.rem_u - local.set $7 - i32.const 14540 - local.get $6 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $8 - i32.const 14540 - local.get $7 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $9 local.get $2 - i32.const 4 - i32.sub - local.set $2 - local.get $0 - local.get $2 - i32.const 1 - i32.shl - i32.add - local.get $8 - local.get $9 - i64.const 32 - i64.shl - i64.or - i64.store - br $while-continue|0 + i32.const 2 + i32.gt_s + if (result i32) + local.get $4 + i32.const 48 + i32.eq + else + i32.const 0 + end + if (result i32) + local.get $3 + i32.load16_u offset=2 + i32.const 32 + i32.or + i32.const 120 + i32.eq + else + i32.const 0 + end + if + local.get $3 + i32.const 4 + i32.add + local.set $3 + local.get $2 + i32.const 2 + i32.sub + local.set $2 + end end - end - local.get $1 - i32.const 100 - i32.ge_u - if - local.get $1 - i32.const 100 - i32.div_u - local.set $3 - local.get $1 - i32.const 100 - i32.rem_u - local.set $10 - local.get $3 - local.set $1 - local.get $2 - i32.const 2 - i32.sub - local.set $2 - i32.const 14540 - local.get $10 - i32.const 2 - i32.shl - i32.add - i32.load - local.set $11 - local.get $0 - local.get $2 - i32.const 1 - i32.shl - i32.add - local.get $11 - i32.store - end - local.get $1 - i32.const 10 - i32.ge_u - if - local.get $2 - i32.const 2 - i32.sub - local.set $2 - i32.const 14540 - local.get $1 - i32.const 2 - i32.shl - i32.add - i32.load - local.set $11 - local.get $0 - local.get $2 - i32.const 1 - i32.shl - i32.add - local.get $11 - i32.store else - local.get $2 - i32.const 1 - i32.sub - local.set $2 + local.get $4 i32.const 48 - local.get $1 - i32.add - local.set $11 - local.get $0 - local.get $2 - i32.const 1 - i32.shl - i32.add - local.get $11 - i32.store16 - end - ) - (func $~lib/util/number/utoa_hex_lut (param $0 i32) (param $1 i64) (param $2 i32) - (local $3 i32) - loop $while-continue|0 - local.get $2 - i32.const 2 - i32.ge_u - local.set $3 - local.get $3 - if - local.get $2 - i32.const 2 - i32.sub - local.set $2 - local.get $0 + i32.eq + if (result i32) local.get $2 - i32.const 1 - i32.shl - i32.add - i32.const 14960 - local.get $1 - i32.wrap_i64 - i32.const 255 - i32.and i32.const 2 - i32.shl - i32.add - i32.load - i32.store - local.get $1 - i64.const 8 - i64.shr_u - local.set $1 - br $while-continue|0 + i32.gt_s + else + i32.const 0 + end + if + block $break|1 + block $case2|1 + block $case1|1 + block $case0|1 + local.get $3 + i32.load16_u offset=2 + i32.const 32 + i32.or + local.set $5 + local.get $5 + i32.const 98 + i32.eq + br_if $case0|1 + local.get $5 + i32.const 111 + i32.eq + br_if $case1|1 + local.get $5 + i32.const 120 + i32.eq + br_if $case2|1 + br $break|1 + end + local.get $3 + i32.const 4 + i32.add + local.set $3 + local.get $2 + i32.const 2 + i32.sub + local.set $2 + i32.const 2 + local.set $1 + br $break|1 + end + local.get $3 + i32.const 4 + i32.add + local.set $3 + local.get $2 + i32.const 2 + i32.sub + local.set $2 + i32.const 8 + local.set $1 + br $break|1 + end + local.get $3 + i32.const 4 + i32.add + local.set $3 + local.get $2 + i32.const 2 + i32.sub + local.set $2 + i32.const 16 + local.set $1 + br $break|1 + end end - end - local.get $2 - i32.const 1 - i32.and - if - local.get $0 - i32.const 14960 local.get $1 - i32.wrap_i64 - i32.const 6 - i32.shl - i32.add - i32.load16_u - i32.store16 + i32.eqz + if + i32.const 10 + local.set $1 + end end - ) - (func $~lib/util/number/ulog_base (param $0 i64) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i64) - (local $4 i64) - (local $5 i32) - local.get $1 - local.set $2 - local.get $2 - 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 - return + i32.const 0 + local.set $7 + block $while-break|2 + loop $while-continue|2 + local.get $2 + local.tee $5 + i32.const 1 + i32.sub + local.set $2 + local.get $5 + local.set $5 + local.get $5 + if + local.get $3 + i32.load16_u + local.set $4 + local.get $4 + i32.const 48 + i32.sub + i32.const 10 + i32.lt_u + if + local.get $4 + i32.const 48 + i32.sub + local.set $4 + else + local.get $4 + i32.const 65 + i32.sub + i32.const 90 + i32.const 65 + i32.sub + i32.le_u + if + local.get $4 + i32.const 65 + i32.const 10 + i32.sub + i32.sub + local.set $4 + else + local.get $4 + i32.const 97 + i32.sub + i32.const 122 + i32.const 97 + i32.sub + i32.le_u + if + local.get $4 + i32.const 97 + i32.const 10 + i32.sub + i32.sub + local.set $4 + end + end + end + local.get $4 + local.get $1 + i32.ge_u + if + local.get $7 + i32.eqz + if + i32.const 0 + drop + i32.const 0 + return + end + br $while-break|2 + end + local.get $7 + local.get $1 + i32.mul + local.get $4 + i32.add + local.set $7 + local.get $3 + i32.const 2 + i32.add + local.set $3 + br $while-continue|2 + end + end end + local.get $6 + local.get $7 + i32.mul + ) + (func $~lib/number/I32.parseInt (param $0 i32) (param $1 i32) (result i32) + local.get $0 local.get $1 - i64.extend_i32_s + call $~lib/util/string/strtol + ) + (func $~lib/util/string/strtol (param $0 i32) (param $1 i32) (result i64) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i64) + (local $7 i64) + local.get $0 + call $~lib/string/String#get:length + local.set $2 + local.get $2 + i32.eqz + if + i32.const 0 + drop + i64.const 0 + return + end + local.get $0 local.set $3 local.get $3 + i32.load16_u local.set $4 - i32.const 1 - local.set $5 loop $while-continue|0 - local.get $0 local.get $4 - i64.ge_u - local.set $2 - local.get $2 + call $~lib/util/string/isSpace + local.set $5 + local.get $5 if - local.get $0 - local.get $4 - i64.div_u - local.set $0 - local.get $4 - local.get $4 - i64.mul + local.get $3 + i32.const 2 + i32.add + local.tee $3 + i32.load16_u local.set $4 - local.get $5 + local.get $2 i32.const 1 - i32.shl - local.set $5 + i32.sub + local.set $2 br $while-continue|0 end end - loop $while-continue|1 - local.get $0 - i64.const 1 - i64.ge_u - local.set $2 + i64.const 1 + local.set $6 + local.get $4 + i32.const 45 + i32.eq + if (result i32) + i32.const 1 + else + local.get $4 + i32.const 43 + i32.eq + end + if local.get $2 + i32.const 1 + i32.sub + local.tee $2 + i32.eqz if - local.get $0 - local.get $3 - i64.div_u - local.set $0 - local.get $5 - i32.const 1 - i32.add - local.set $5 - br $while-continue|1 + i32.const 0 + drop + i64.const 0 + return + end + local.get $4 + i32.const 45 + i32.eq + if + i64.const -1 + local.set $6 end + local.get $3 + i32.const 2 + i32.add + local.tee $3 + i32.load16_u + local.set $4 end - local.get $5 - i32.const 1 - i32.sub - ) - (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 i64) - (local $7 i32) - local.get $3 - i64.extend_i32_s - local.set $4 - local.get $3 - local.get $3 - i32.const 1 - i32.sub - i32.and - i32.const 0 - i32.eq + local.get $1 if - local.get $3 - i32.ctz - i32.const 7 - i32.and - i64.extend_i32_s - local.set $5 - local.get $4 - i64.const 1 - i64.sub - local.set $6 - loop $do-continue|0 - local.get $2 - i32.const 1 - i32.sub - local.set $2 - local.get $0 - local.get $2 - i32.const 1 - i32.shl - i32.add - i32.const 16016 - local.get $1 - local.get $6 - i64.and - i32.wrap_i64 + local.get $1 + i32.const 2 + i32.lt_s + if (result i32) i32.const 1 - i32.shl - i32.add - i32.load16_u - i32.store16 - local.get $1 - local.get $5 - i64.shr_u - local.set $1 + else local.get $1 - i64.const 0 - i64.ne - local.set $7 - local.get $7 - br_if $do-continue|0 + i32.const 36 + i32.gt_s end - else - loop $do-continue|1 - local.get $2 - i32.const 1 - i32.sub - local.set $2 - local.get $1 - local.get $4 - i64.div_u - local.set $6 - local.get $0 - local.get $2 - i32.const 1 - i32.shl - i32.add - i32.const 16016 - local.get $1 - local.get $6 - local.get $4 - i64.mul - i64.sub - i32.wrap_i64 - i32.const 1 - i32.shl - i32.add - i32.load16_u - i32.store16 - local.get $6 - local.set $1 - local.get $1 + if + i32.const 0 + drop i64.const 0 - i64.ne - local.set $7 - local.get $7 - br_if $do-continue|1 + return end - end - ) - (func $~lib/util/number/decimalCount64High (param $0 i64) (result i32) - local.get $0 - i64.const 1000000000000000 - i64.lt_u - if - local.get $0 - i64.const 1000000000000 - i64.lt_u + local.get $1 + i32.const 16 + i32.eq if - i32.const 10 - local.get $0 - i64.const 100000000000 - i64.ge_u - i32.add - local.get $0 - i64.const 10000000000 - i64.ge_u - i32.add - return - else - i32.const 13 - local.get $0 - i64.const 100000000000000 - i64.ge_u - i32.add - local.get $0 - i64.const 10000000000000 - i64.ge_u - i32.add - return + local.get $2 + i32.const 2 + i32.gt_s + if (result i32) + local.get $4 + i32.const 48 + i32.eq + else + i32.const 0 + end + if (result i32) + local.get $3 + i32.load16_u offset=2 + i32.const 32 + i32.or + i32.const 120 + i32.eq + else + i32.const 0 + end + if + local.get $3 + i32.const 4 + i32.add + local.set $3 + local.get $2 + i32.const 2 + i32.sub + local.set $2 + end end - unreachable else - local.get $0 - i64.const 100000000000000000 - i64.lt_u - if - i32.const 16 - local.get $0 - i64.const 10000000000000000 - i64.ge_u - i32.add - return + local.get $4 + i32.const 48 + i32.eq + if (result i32) + local.get $2 + i32.const 2 + i32.gt_s else - i32.const 18 - local.get $0 - i64.const -8446744073709551616 - i64.ge_u - i32.add - local.get $0 - i64.const 1000000000000000000 - i64.ge_u - i32.add - return + i32.const 0 + end + if + block $break|1 + block $case2|1 + block $case1|1 + block $case0|1 + local.get $3 + i32.load16_u offset=2 + i32.const 32 + i32.or + local.set $5 + local.get $5 + i32.const 98 + i32.eq + br_if $case0|1 + local.get $5 + i32.const 111 + i32.eq + br_if $case1|1 + local.get $5 + i32.const 120 + i32.eq + br_if $case2|1 + br $break|1 + end + local.get $3 + i32.const 4 + i32.add + local.set $3 + local.get $2 + i32.const 2 + i32.sub + local.set $2 + i32.const 2 + local.set $1 + br $break|1 + end + local.get $3 + i32.const 4 + i32.add + local.set $3 + local.get $2 + i32.const 2 + i32.sub + local.set $2 + i32.const 8 + local.set $1 + br $break|1 + end + local.get $3 + i32.const 4 + i32.add + local.set $3 + local.get $2 + i32.const 2 + i32.sub + local.set $2 + i32.const 16 + local.set $1 + br $break|1 + end end - unreachable - end - unreachable - ) - (func $~lib/util/number/utoa64_dec_lut (param $0 i32) (param $1 i64) (param $2 i32) - (local $3 i32) - (local $4 i64) - (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 i64) - loop $while-continue|0 local.get $1 - i64.const 100000000 - i64.ge_u - local.set $3 - local.get $3 + i32.eqz if - local.get $1 - i64.const 100000000 - i64.div_u - local.set $4 - local.get $1 - local.get $4 - i64.const 100000000 - i64.mul - i64.sub - i32.wrap_i64 - local.set $5 - local.get $4 + i32.const 10 local.set $1 + end + end + i64.const 0 + local.set $7 + block $while-break|2 + loop $while-continue|2 + local.get $2 + local.tee $5 + i32.const 1 + i32.sub + local.set $2 local.get $5 - i32.const 10000 - i32.div_u - local.set $6 + local.set $5 local.get $5 - i32.const 10000 - i32.rem_u - local.set $7 - local.get $6 - i32.const 100 - i32.div_u - local.set $8 - local.get $6 - i32.const 100 - i32.rem_u - local.set $9 - local.get $7 - i32.const 100 - i32.div_u - local.set $10 - local.get $7 - i32.const 100 - i32.rem_u - local.set $11 - i32.const 14540 - local.get $10 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $12 - i32.const 14540 - local.get $11 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $13 - local.get $2 - i32.const 4 - i32.sub - local.set $2 - local.get $0 - local.get $2 - i32.const 1 - i32.shl - i32.add - local.get $12 - local.get $13 - i64.const 32 - i64.shl - i64.or - i64.store - i32.const 14540 - local.get $8 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $12 - i32.const 14540 - local.get $9 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $13 - local.get $2 - i32.const 4 - i32.sub - local.set $2 - local.get $0 - local.get $2 - i32.const 1 - i32.shl - i32.add - local.get $12 - local.get $13 - i64.const 32 - i64.shl - i64.or - i64.store - br $while-continue|0 + if + local.get $3 + i32.load16_u + local.set $4 + local.get $4 + i32.const 48 + i32.sub + i32.const 10 + i32.lt_u + if + local.get $4 + i32.const 48 + i32.sub + local.set $4 + else + local.get $4 + i32.const 65 + i32.sub + i32.const 90 + i32.const 65 + i32.sub + i32.le_u + if + local.get $4 + i32.const 65 + i32.const 10 + i32.sub + i32.sub + local.set $4 + else + local.get $4 + i32.const 97 + i32.sub + i32.const 122 + i32.const 97 + i32.sub + i32.le_u + if + local.get $4 + i32.const 97 + i32.const 10 + i32.sub + i32.sub + local.set $4 + end + end + end + local.get $4 + local.get $1 + i32.ge_u + if + local.get $7 + i64.const 0 + i64.ne + i32.eqz + if + i32.const 0 + drop + i64.const 0 + return + end + br $while-break|2 + end + local.get $7 + local.get $1 + i64.extend_i32_s + i64.mul + local.get $4 + i64.extend_i32_u + i64.add + local.set $7 + local.get $3 + i32.const 2 + i32.add + local.set $3 + br $while-continue|2 + end end end + local.get $6 + local.get $7 + i64.mul + ) + (func $~lib/number/I64.parseInt (param $0 i32) (param $1 i32) (result i64) local.get $0 local.get $1 - i32.wrap_i64 - local.get $2 - call $~lib/util/number/utoa32_dec_lut + call $~lib/util/string/strtol ) - (func $~lib/util/number/genDigits (param $0 i32) (param $1 i64) (param $2 i32) (param $3 i64) (param $4 i32) (param $5 i64) (param $6 i32) (result i32) - (local $7 i32) - (local $8 i64) - (local $9 i64) - (local $10 i64) - (local $11 i32) - (local $12 i64) - (local $13 i32) - (local $14 i32) - (local $15 i32) - (local $16 i32) - (local $17 i32) - (local $18 i64) - (local $19 i64) - (local $20 i64) - (local $21 i64) - (local $22 i64) - (local $23 i32) - (local $24 i32) - (local $25 i32) - (local $26 i32) - (local $27 i64) + (func $~lib/math/ipow32 (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + i32.const 1 + local.set $2 i32.const 0 - local.get $4 - i32.sub - local.set $7 - i64.const 1 - local.get $7 - i64.extend_i32_s - i64.shl - local.set $8 - local.get $8 - i64.const 1 - i64.sub - local.set $9 - local.get $3 + i32.const 1 + i32.lt_s + drop + local.get $0 + i32.const 2 + i32.eq + if + 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 - i64.sub - local.set $10 - local.get $3 - local.get $7 - i64.extend_i32_s - i64.shr_u - i32.wrap_i64 - local.set $11 - local.get $3 - local.get $9 - i64.and - local.set $12 - local.get $11 - call $~lib/util/number/decimalCount32 - local.set $13 - local.get $6 - local.set $14 - loop $while-continue|0 - local.get $13 + 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.const 0 - i32.gt_s - local.set $15 - local.get $15 + i32.eq + local.get $0 + i32.const 1 + i32.eq + i32.or + return + else + local.get $1 + i32.const 1 + i32.eq 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 $13 - local.set $17 - local.get $17 - i32.const 10 - i32.eq - br_if $case0|1 - local.get $17 - i32.const 9 - i32.eq - br_if $case1|1 - local.get $17 - i32.const 8 - i32.eq - br_if $case2|1 - local.get $17 - i32.const 7 - i32.eq - br_if $case3|1 - local.get $17 - i32.const 6 - i32.eq - br_if $case4|1 - local.get $17 - i32.const 5 - i32.eq - br_if $case5|1 - local.get $17 - i32.const 4 - i32.eq - br_if $case6|1 - local.get $17 - i32.const 3 - i32.eq - br_if $case7|1 - local.get $17 - i32.const 2 - i32.eq - br_if $case8|1 - local.get $17 - i32.const 1 - i32.eq - br_if $case9|1 - br $case10|1 - end - local.get $11 - i32.const 1000000000 - i32.div_u - local.set $16 - local.get $11 - i32.const 1000000000 - i32.rem_u - local.set $11 - br $break|1 - end - local.get $11 - i32.const 100000000 - i32.div_u - local.set $16 - local.get $11 - i32.const 100000000 - i32.rem_u - local.set $11 - br $break|1 - end - local.get $11 - i32.const 10000000 - i32.div_u - local.set $16 - local.get $11 - i32.const 10000000 - i32.rem_u - local.set $11 - br $break|1 - end - local.get $11 - i32.const 1000000 - i32.div_u - local.set $16 - local.get $11 - i32.const 1000000 - i32.rem_u - local.set $11 - br $break|1 + 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 + i32.const 32 + i32.lt_s + if + i32.const 32 + local.get $1 + i32.clz + i32.sub + local.set $3 + block $break|0 + block $case4|0 + block $case3|0 + block $case2|0 + block $case1|0 + block $case0|0 + local.get $3 + local.set $4 + local.get $4 + i32.const 5 + i32.eq + br_if $case0|0 + local.get $4 + i32.const 4 + i32.eq + br_if $case1|0 + local.get $4 + i32.const 3 + i32.eq + br_if $case2|0 + local.get $4 + i32.const 2 + i32.eq + br_if $case3|0 + local.get $4 + i32.const 1 + i32.eq + br_if $case4|0 + br $break|0 end - local.get $11 - i32.const 100000 - i32.div_u - local.set $16 - local.get $11 - i32.const 100000 - i32.rem_u - local.set $11 - br $break|1 + local.get $1 + i32.const 1 + i32.and + if + local.get $2 + local.get $0 + i32.mul + local.set $2 + end + 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 $11 - i32.const 10000 - i32.div_u - local.set $16 - local.get $11 - i32.const 10000 - i32.rem_u - local.set $11 - br $break|1 + local.get $1 + i32.const 1 + i32.and + if + local.get $2 + local.get $0 + i32.mul + local.set $2 + end + 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 $11 - i32.const 1000 - i32.div_u - local.set $16 - local.get $11 - i32.const 1000 - i32.rem_u - local.set $11 - br $break|1 + local.get $1 + i32.const 1 + i32.and + if + local.get $2 + local.get $0 + i32.mul + local.set $2 + end + 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 $11 - i32.const 100 - i32.div_u - local.set $16 - local.get $11 - i32.const 100 - i32.rem_u - local.set $11 - br $break|1 + local.get $1 + i32.const 1 + i32.and + if + local.get $2 + local.get $0 + i32.mul + local.set $2 + end + 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 $1 + i32.const 1 + i32.and + if + local.get $2 + local.get $0 + i32.mul + local.set $2 end - local.get $11 - i32.const 10 - i32.div_u - local.set $16 - local.get $11 - i32.const 10 - i32.rem_u - local.set $11 - br $break|1 end - local.get $11 - local.set $16 - i32.const 0 - local.set $11 - br $break|1 + local.get $2 + return end - i32.const 0 - local.set $16 - br $break|1 end - local.get $16 - local.get $14 - i32.or + end + end + loop $while-continue|1 + local.get $1 + local.set $3 + local.get $3 + if + local.get $1 + i32.const 1 + i32.and if + local.get $2 local.get $0 - local.get $14 - local.tee $17 - i32.const 1 - i32.add - local.set $14 - local.get $17 - i32.const 1 - i32.shl - i32.add - i32.const 48 - local.get $16 - i32.const 65535 - i32.and - i32.add - i32.store16 + i32.mul + local.set $2 end - local.get $13 + 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/math/NativeMath.scalbn (param $0 f64) (param $1 i32) (result f64) + (local $2 f64) + (local $3 i32) + (local $4 i32) + local.get $0 + local.set $2 + local.get $1 + i32.const 1023 + i32.gt_s + if + local.get $2 + f64.const 8988465674311579538646525e283 + f64.mul + local.set $2 + local.get $1 + i32.const 1023 + i32.sub + local.set $1 + local.get $1 + i32.const 1023 + i32.gt_s + if + local.get $2 + f64.const 8988465674311579538646525e283 + f64.mul + local.set $2 + local.get $1 + i32.const 1023 i32.sub - local.set $13 - local.get $11 - i64.extend_i32_u - local.get $7 - i64.extend_i32_s - i64.shl - local.get $12 - i64.add - local.set $18 - local.get $18 - local.get $5 - i64.le_u + local.tee $3 + i32.const 1023 + local.tee $4 + local.get $3 + local.get $4 + i32.lt_s + select + local.set $1 + end + else + local.get $1 + i32.const -1022 + i32.lt_s + if + local.get $2 + f64.const 2.2250738585072014e-308 + f64.const 9007199254740992 + f64.mul + f64.mul + local.set $2 + local.get $1 + i32.const 1022 + i32.const 53 + i32.sub + i32.add + local.set $1 + local.get $1 + i32.const -1022 + i32.lt_s if - global.get $~lib/util/number/_K - local.get $13 - i32.add - global.set $~lib/util/number/_K - local.get $0 - local.set $23 - local.get $14 - local.set $17 - local.get $5 - local.set $22 - local.get $18 - local.set $21 - i32.const 22528 - local.get $13 - i32.const 2 - i32.shl + local.get $2 + f64.const 2.2250738585072014e-308 + f64.const 9007199254740992 + f64.mul + f64.mul + local.set $2 + local.get $1 + i32.const 1022 i32.add - i64.load32_u - local.get $7 - i64.extend_i32_s - i64.shl - local.set $20 - local.get $10 - local.set $19 - local.get $23 - local.get $17 - i32.const 1 + i32.const 53 i32.sub - i32.const 1 - i32.shl - i32.add - local.set $24 - local.get $24 - i32.load16_u - local.set $25 - loop $while-continue|3 - local.get $21 - local.get $19 - i64.lt_u - if (result i32) - local.get $22 - local.get $21 - i64.sub - local.get $20 - i64.ge_u - else - i32.const 0 - end - if (result i32) - local.get $21 - local.get $20 - i64.add - local.get $19 - i64.lt_u - if (result i32) - i32.const 1 - else - local.get $19 - local.get $21 - i64.sub - local.get $21 - local.get $20 - i64.add - local.get $19 - i64.sub - i64.gt_u - end - else - i32.const 0 - end - local.set $26 - local.get $26 - if - local.get $25 - i32.const 1 - i32.sub - local.set $25 - local.get $21 - local.get $20 - i64.add - local.set $21 - br $while-continue|3 - end - end - local.get $24 - local.get $25 - i32.store16 - local.get $14 - return + local.tee $4 + i32.const -1022 + local.tee $3 + local.get $4 + local.get $3 + i32.gt_s + select + local.set $1 end - br $while-continue|0 end end - loop $while-continue|4 - i32.const 1 - local.set $15 - local.get $15 - if - local.get $12 - i64.const 10 - i64.mul - local.set $12 - local.get $5 - i64.const 10 - i64.mul - local.set $5 - local.get $12 - local.get $7 - i64.extend_i32_s - i64.shr_u - local.set $22 - local.get $22 - local.get $14 - i64.extend_i32_s - i64.or - i64.const 0 - i64.ne - if - local.get $0 - local.get $14 - local.tee $25 - i32.const 1 - i32.add - local.set $14 - local.get $25 - i32.const 1 - i32.shl - i32.add - i32.const 48 - local.get $22 - i32.wrap_i64 - i32.const 65535 - i32.and - i32.add - i32.store16 - end - local.get $12 - local.get $9 - i64.and - local.set $12 - local.get $13 - i32.const 1 - i32.sub - local.set $13 - local.get $12 - local.get $5 - i64.lt_u - if - global.get $~lib/util/number/_K - local.get $13 - i32.add - global.set $~lib/util/number/_K - local.get $10 - i32.const 22528 - i32.const 0 - local.get $13 - i32.sub - i32.const 2 - i32.shl - i32.add - i64.load32_u - i64.mul - local.set $10 - local.get $0 - local.set $17 - local.get $14 - local.set $26 - local.get $5 - local.set $27 - local.get $12 - local.set $21 - local.get $8 - local.set $20 - local.get $10 - local.set $19 - local.get $17 - local.get $26 - i32.const 1 - i32.sub - i32.const 1 - i32.shl - i32.add - local.set $25 - local.get $25 - i32.load16_u - local.set $24 - loop $while-continue|6 - local.get $21 - local.get $19 - i64.lt_u - if (result i32) - local.get $27 - local.get $21 - i64.sub - local.get $20 - i64.ge_u - else - i32.const 0 - end - if (result i32) - local.get $21 - local.get $20 - i64.add - local.get $19 - i64.lt_u - if (result i32) - i32.const 1 - else - local.get $19 - local.get $21 - i64.sub - local.get $21 - local.get $20 - i64.add - local.get $19 - i64.sub - i64.gt_u - end - else - i32.const 0 - end - local.set $23 - local.get $23 - if - local.get $24 - i32.const 1 - i32.sub - local.set $24 - local.get $21 - local.get $20 - i64.add - local.set $21 - br $while-continue|6 - end - end - local.get $25 - local.get $24 - i32.store16 - local.get $14 - return - end - br $while-continue|4 - end - end - unreachable + local.get $2 + i64.const 1023 + local.get $1 + i64.extend_i32_s + i64.add + i64.const 52 + i64.shl + f64.reinterpret_i64 + f64.mul ) - (func $~lib/util/number/prettify (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/util/string/strtod (param $0 i32) (result f64) + (local $1 i32) + (local $2 i32) (local $3 i32) - (local $4 i32) + (local $4 f64) (local $5 i32) (local $6 i32) (local $7 i32) (local $8 i32) (local $9 i32) - (local $10 i32) + (local $10 i64) (local $11 i32) - local.get $2 + (local $12 i32) + (local $13 i32) + (local $14 i32) + (local $15 i32) + (local $16 i32) + (local $17 i64) + (local $18 f64) + (local $19 i64) + (local $20 i64) + (local $21 i64) + (local $22 i64) + (local $23 i64) + (local $24 i64) + local.get $0 + call $~lib/string/String#get:length + local.set $1 + local.get $1 i32.eqz if - local.get $0 - local.get $1 - i32.const 1 - i32.shl - i32.add - i32.const 46 - i32.const 48 - i32.const 16 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 2 - i32.add + f64.const nan:0x8000000000000 return end - local.get $1 + local.get $0 + local.set $2 local.get $2 - i32.add + i32.load16_u local.set $3 - local.get $1 - local.get $3 - i32.le_s - if (result i32) - local.get $3 - i32.const 21 - i32.le_s - else - i32.const 0 - end - if + f64.const 1 + local.set $4 + loop $while-continue|0 local.get $1 - local.set $4 - loop $for-loop|0 - local.get $4 - local.get $3 - i32.lt_s - local.set $5 - local.get $5 - if - local.get $0 - local.get $4 - i32.const 1 - i32.shl - i32.add - i32.const 48 - i32.store16 - local.get $4 - i32.const 1 - i32.add - local.set $4 - br $for-loop|0 - end - end - local.get $0 - local.get $3 - i32.const 1 - i32.shl - i32.add - i32.const 46 - i32.const 48 - i32.const 16 - i32.shl - i32.or - i32.store - local.get $3 - i32.const 2 - i32.add - return - else - local.get $3 - i32.const 0 - i32.gt_s if (result i32) local.get $3 - i32.const 21 - i32.le_s + call $~lib/util/string/isSpace else i32.const 0 end + local.set $5 + local.get $5 if - local.get $0 - local.get $3 - i32.const 1 - i32.shl + local.get $2 + i32.const 2 i32.add - local.set $4 - local.get $4 + local.tee $2 + i32.load16_u + local.set $3 + local.get $1 + i32.const 1 + i32.sub + local.set $1 + br $while-continue|0 + end + end + local.get $1 + i32.eqz + if + f64.const nan:0x8000000000000 + return + end + local.get $3 + i32.const 45 + i32.eq + if + local.get $1 + i32.const 1 + i32.sub + local.tee $1 + i32.eqz + if + f64.const nan:0x8000000000000 + return + end + local.get $2 + i32.const 2 + i32.add + local.tee $2 + i32.load16_u + local.set $3 + f64.const -1 + local.set $4 + else + local.get $3 + i32.const 43 + i32.eq + if + local.get $1 + i32.const 1 + i32.sub + local.tee $1 + i32.eqz + if + f64.const nan:0x8000000000000 + return + end + local.get $2 i32.const 2 i32.add - local.get $4 + local.tee $2 + i32.load16_u + local.set $3 + end + end + local.get $1 + i32.const 8 + i32.ge_s + if (result i32) + local.get $3 + i32.const 73 + i32.eq + else + i32.const 0 + end + if + local.get $2 + i64.load + i64.const 29555310648492105 + i64.eq + if (result i32) + local.get $2 + i64.load offset=8 + i64.const 34058970405077102 + i64.eq + else i32.const 0 + end + if + f64.const inf + local.get $4 + f64.mul + return + end + f64.const nan:0x8000000000000 + return + end + local.get $3 + i32.const 46 + i32.ne + if (result i32) + local.get $3 + i32.const 48 + i32.sub + i32.const 10 + i32.ge_u + else + i32.const 0 + end + if + f64.const nan:0x8000000000000 + return + end + local.get $2 + local.set $6 + loop $while-continue|1 + local.get $3 + i32.const 48 + i32.eq + local.set $5 + local.get $5 + if local.get $2 - i32.sub - i32.const 1 - i32.shl - call $~lib/memory/memory.copy - local.get $0 - local.get $3 - i32.const 1 - i32.shl + i32.const 2 i32.add - i32.const 46 - i32.store16 + local.tee $2 + i32.load16_u + local.set $3 local.get $1 i32.const 1 - i32.add - return + i32.sub + local.set $1 + br $while-continue|1 + end + end + local.get $1 + i32.const 0 + i32.le_s + if + f64.const 0 + return + end + i32.const 0 + local.set $7 + i32.const 0 + local.set $8 + i32.const 0 + local.set $9 + i64.const 0 + local.set $10 + local.get $3 + i32.const 46 + i32.eq + if + local.get $6 + local.get $2 + i32.sub + i32.eqz + local.set $5 + local.get $2 + i32.const 2 + i32.add + local.set $2 + local.get $1 + i32.const 1 + i32.sub + local.set $1 + local.get $1 + i32.eqz + if (result i32) + local.get $5 else - i32.const -6 - local.get $3 - i32.lt_s - if (result i32) - local.get $3 - i32.const 0 - i32.le_s - else - i32.const 0 - end + i32.const 0 + end + if + f64.const nan:0x8000000000000 + return + end + i32.const 1 + local.set $7 + loop $for-loop|2 + local.get $2 + i32.load16_u + local.tee $3 + i32.const 48 + i32.eq + local.set $11 + local.get $11 if - i32.const 2 - local.get $3 - i32.sub - local.set $4 - local.get $0 - local.get $4 - i32.const 1 - i32.shl - i32.add - local.get $0 local.get $1 i32.const 1 - i32.shl - call $~lib/memory/memory.copy - local.get $0 - i32.const 48 - i32.const 46 - i32.const 16 - i32.shl - i32.or - i32.store + i32.sub + local.set $1 + local.get $9 + i32.const 1 + i32.sub + local.set $9 + local.get $2 i32.const 2 - local.set $5 - loop $for-loop|1 - local.get $5 - local.get $4 - i32.lt_s - local.set $6 - local.get $6 - if - local.get $0 - local.get $5 - i32.const 1 - i32.shl - i32.add - i32.const 48 - i32.store16 - local.get $5 - i32.const 1 - i32.add - local.set $5 - br $for-loop|1 - end - end - local.get $1 - local.get $4 i32.add - return - 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.set $5 - local.get $3 - i32.const 1 - i32.sub - local.set $6 - local.get $6 - i32.const 0 - i32.lt_s - local.set $4 - local.get $4 - if - i32.const 0 - local.get $6 - i32.sub - local.set $6 - end - local.get $6 - call $~lib/util/number/decimalCount32 - i32.const 1 - i32.add - local.set $7 - local.get $5 - local.set $10 - local.get $6 - local.set $9 - local.get $7 - local.set $8 - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $10 - local.get $9 - local.get $8 - call $~lib/util/number/utoa32_dec_lut - local.get $5 - i32.const 45 - i32.const 43 - local.get $4 - select - i32.store16 + local.set $2 + br $for-loop|2 + end + end + local.get $1 + i32.const 0 + i32.le_s + if + f64.const 0 + return + end + local.get $9 + i32.eqz + if (result i32) + local.get $5 + else + i32.const 0 + end + if (result i32) + local.get $3 + i32.const 48 + i32.sub + i32.const 10 + i32.ge_u + else + i32.const 0 + end + if + f64.const nan:0x8000000000000 + return + end + end + local.get $3 + i32.const 48 + i32.sub + local.set $5 + block $for-break3 + loop $for-loop|3 + local.get $5 + i32.const 10 + i32.lt_u + if (result i32) + i32.const 1 + else + local.get $3 + i32.const 46 + i32.eq + if (result i32) local.get $7 - local.set $1 - local.get $1 - i32.const 2 - i32.add - return + i32.eqz else - local.get $1 - i32.const 1 - i32.shl - local.set $7 - local.get $0 - i32.const 4 - i32.add - local.get $0 - i32.const 2 - i32.add - local.get $7 - i32.const 2 - i32.sub - call $~lib/memory/memory.copy - local.get $0 - i32.const 46 - i32.store16 offset=2 - local.get $0 - local.get $7 - i32.add - i32.const 101 - i32.store16 offset=2 - local.get $1 - local.get $0 - local.get $7 - i32.add - i32.const 4 - i32.add - local.set $9 - local.get $3 - i32.const 1 - i32.sub - local.set $8 - local.get $8 i32.const 0 + end + end + local.set $11 + local.get $11 + if + local.get $5 + i32.const 10 + i32.lt_u + if + local.get $8 + i32.const 19 i32.lt_s - local.set $4 - local.get $4 - if - i32.const 0 - local.get $8 - i32.sub - local.set $8 + if (result i64) + i64.const 10 + local.get $10 + i64.mul + local.get $5 + i64.extend_i32_u + i64.add + else + local.get $10 + local.get $5 + i32.eqz + i32.eqz + i64.extend_i32_u + i64.or end + local.set $10 local.get $8 - call $~lib/util/number/decimalCount32 i32.const 1 i32.add - local.set $5 - local.get $9 - local.set $11 + local.set $8 + else local.get $8 - local.set $6 - local.get $5 - local.set $10 - i32.const 0 + local.set $9 i32.const 1 - i32.ge_s - drop - local.get $11 - local.get $6 - local.get $10 - call $~lib/util/number/utoa32_dec_lut - local.get $9 - i32.const 45 - i32.const 43 - local.get $4 - select - i32.store16 - local.get $5 - i32.add - local.set $1 - local.get $1 - i32.const 2 - i32.add - return + local.set $7 end - unreachable + local.get $1 + i32.const 1 + i32.sub + local.tee $1 + i32.eqz + if + br $for-break3 + end + local.get $2 + i32.const 2 + i32.add + local.tee $2 + i32.load16_u + local.set $3 + local.get $3 + i32.const 48 + i32.sub + local.set $5 + br $for-loop|3 end - unreachable end - unreachable end - unreachable - ) - (func $~lib/util/number/dtoa_core (param $0 i32) (param $1 f64) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 f64) - (local $6 i64) - (local $7 i32) - (local $8 i64) - (local $9 i64) - (local $10 i32) - (local $11 i64) - (local $12 i64) - (local $13 i32) - (local $14 i32) - (local $15 i32) - (local $16 f64) - (local $17 i64) - (local $18 i64) - (local $19 i64) - (local $20 i64) - (local $21 i64) - (local $22 i64) - (local $23 i64) - (local $24 i64) - (local $25 i64) - (local $26 i32) - (local $27 i64) - (local $28 i32) - local.get $1 - f64.const 0 - f64.lt - local.set $2 - local.get $2 - if - local.get $1 - f64.neg - local.set $1 - local.get $0 - i32.const 45 - i32.store16 - end - local.get $1 - local.set $5 - local.get $0 - local.set $4 - local.get $2 - local.set $3 - local.get $5 - i64.reinterpret_f64 - local.set $6 - local.get $6 - i64.const 9218868437227405312 - i64.and - i64.const 52 - i64.shr_u - i32.wrap_i64 - local.set $7 - local.get $6 - i64.const 4503599627370495 - i64.and - local.set $8 - local.get $7 - i32.const 0 - i32.ne - i64.extend_i32_u - i64.const 52 - i64.shl - local.get $8 - i64.add - local.set $9 - local.get $7 - i32.const 1 - local.get $7 - select - i32.const 1023 - i32.const 52 - i32.add - i32.sub - local.set $7 - local.get $9 - local.set $11 - local.get $7 - local.set $10 - local.get $11 - i64.const 1 - i64.shl - i64.const 1 - i64.add - local.set $12 - local.get $10 - i32.const 1 - i32.sub - local.set $13 - local.get $12 - i64.clz - i32.wrap_i64 - local.set $14 - local.get $12 - local.get $14 - i64.extend_i32_s - i64.shl - local.set $12 - local.get $13 - local.get $14 - i32.sub - local.set $13 - i32.const 1 - local.get $11 - i64.const 4503599627370496 - i64.eq - i32.add - local.set $15 - local.get $12 - global.set $~lib/util/number/_frc_plus - local.get $11 - local.get $15 - i64.extend_i32_s - i64.shl - i64.const 1 - i64.sub - local.get $10 - local.get $15 - i32.sub - local.get $13 - i32.sub - i64.extend_i32_s - i64.shl - global.set $~lib/util/number/_frc_minus - local.get $13 - global.set $~lib/util/number/_exp - global.get $~lib/util/number/_exp - local.set $10 - i32.const -61 - local.get $10 - i32.sub - f64.convert_i32_s - f64.const 0.30102999566398114 - f64.mul - f64.const 347 - f64.add - local.set $16 - local.get $16 - i32.trunc_f64_s - local.set $15 - local.get $15 - local.get $15 - f64.convert_i32_s - local.get $16 - f64.ne - i32.add - local.set $15 - local.get $15 - i32.const 3 - i32.shr_s - i32.const 1 - i32.add - local.set $14 - i32.const 348 - local.get $14 - i32.const 3 - i32.shl - i32.sub - global.set $~lib/util/number/_K - i32.const 21656 - local.get $14 - i32.const 3 - i32.shl - i32.add - i64.load - global.set $~lib/util/number/_frc_pow - i32.const 22352 - local.get $14 - i32.const 1 - i32.shl - i32.add - i32.load16_s - global.set $~lib/util/number/_exp_pow - local.get $9 - i64.clz - i32.wrap_i64 - local.set $14 - local.get $9 - local.get $14 - i64.extend_i32_s - i64.shl - local.set $9 - local.get $7 - local.get $14 - i32.sub - local.set $7 - global.get $~lib/util/number/_frc_pow - local.set $12 - global.get $~lib/util/number/_exp_pow - local.set $15 - local.get $9 - local.set $17 - local.get $12 - local.set $11 - local.get $17 - i64.const 4294967295 - i64.and - local.set $18 - local.get $11 - i64.const 4294967295 - i64.and - local.set $19 - local.get $17 - i64.const 32 - i64.shr_u - local.set $20 - local.get $11 - i64.const 32 - i64.shr_u - local.set $21 - local.get $18 - local.get $19 - i64.mul - local.set $22 - local.get $20 - local.get $19 - i64.mul - local.get $22 - i64.const 32 - i64.shr_u - i64.add - local.set $23 - local.get $18 - local.get $21 - i64.mul - local.get $23 - i64.const 4294967295 - i64.and - i64.add - local.set $24 - local.get $24 - i64.const 2147483647 - i64.add - local.set $24 - local.get $23 - i64.const 32 - i64.shr_u - local.set $23 - local.get $24 - i64.const 32 - i64.shr_u - local.set $24 - local.get $20 - local.get $21 - i64.mul - local.get $23 - i64.add - local.get $24 - i64.add - local.set $24 local.get $7 - local.set $10 - local.get $15 - local.set $13 - local.get $10 - local.get $13 - i32.add - i32.const 64 - i32.add - local.set $10 - global.get $~lib/util/number/_frc_plus - local.set $17 - local.get $12 - local.set $11 - local.get $17 - i64.const 4294967295 - i64.and - local.set $23 - local.get $11 - i64.const 4294967295 - i64.and - local.set $22 - local.get $17 - i64.const 32 - i64.shr_u - local.set $21 - local.get $11 - i64.const 32 - i64.shr_u - local.set $20 - local.get $23 - local.get $22 - i64.mul - local.set $19 - local.get $21 - local.get $22 - i64.mul - local.get $19 - i64.const 32 - i64.shr_u - i64.add - local.set $18 - local.get $23 - local.get $20 - i64.mul - local.get $18 - i64.const 4294967295 - i64.and - i64.add - local.set $25 - local.get $25 - i64.const 2147483647 - i64.add - local.set $25 - local.get $18 - i64.const 32 - i64.shr_u - local.set $18 - local.get $25 - i64.const 32 - i64.shr_u - local.set $25 - local.get $21 - local.get $20 - i64.mul - local.get $18 - i64.add - local.get $25 - i64.add - i64.const 1 - i64.sub - local.set $25 - global.get $~lib/util/number/_exp - local.set $26 - local.get $15 - local.set $13 - local.get $26 - local.get $13 - i32.add - i32.const 64 - i32.add - local.set $26 - global.get $~lib/util/number/_frc_minus - local.set $17 - local.get $12 - local.set $11 - local.get $17 - i64.const 4294967295 - i64.and - local.set $18 - local.get $11 - i64.const 4294967295 - i64.and - local.set $19 - local.get $17 - i64.const 32 - i64.shr_u - local.set $20 - local.get $11 - i64.const 32 - i64.shr_u - local.set $21 - local.get $18 - local.get $19 - i64.mul - local.set $22 - local.get $20 - local.get $19 - i64.mul - local.get $22 - i64.const 32 - i64.shr_u - i64.add - local.set $23 - local.get $18 - local.get $21 - i64.mul - local.get $23 - i64.const 4294967295 - i64.and - i64.add - local.set $27 - local.get $27 - i64.const 2147483647 - i64.add - local.set $27 - local.get $23 - i64.const 32 - i64.shr_u - local.set $23 - local.get $27 - i64.const 32 - i64.shr_u - local.set $27 - local.get $20 - local.get $21 - i64.mul - local.get $23 - i64.add - local.get $27 - i64.add - i64.const 1 - i64.add - local.set $27 - local.get $25 - local.get $27 - i64.sub - local.set $23 - local.get $4 - local.get $24 - local.get $10 - local.get $25 - local.get $26 - local.get $23 - local.get $3 - call $~lib/util/number/genDigits - local.set $28 - local.get $0 - local.get $2 - i32.const 1 - i32.shl - i32.add - local.get $28 - local.get $2 - i32.sub - global.get $~lib/util/number/_K - call $~lib/util/number/prettify - local.set $28 - local.get $28 - local.get $2 - i32.add - ) - (func $~lib/rt/itcms/__collect - (local $0 i32) - i32.const 0 - drop - global.get $~lib/rt/itcms/state - i32.const 0 - i32.gt_s + i32.eqz if - loop $while-continue|0 - global.get $~lib/rt/itcms/state + local.get $8 + local.set $9 + end + block $~lib/util/string/scientific|inlined.0 (result f64) + local.get $10 + local.set $17 + local.get $9 + i32.const 19 + local.tee $11 + local.get $8 + local.tee $5 + local.get $11 + local.get $5 + i32.lt_s + select + i32.sub + block $~lib/util/string/parseExp|inlined.0 (result i32) + local.get $2 + local.set $11 + local.get $1 + local.set $5 + i32.const 1 + local.set $12 i32.const 0 + local.set $13 + local.get $11 + i32.load16_u + local.set $14 + local.get $14 + i32.const 32 + i32.or + i32.const 101 i32.ne - local.set $0 - local.get $0 if - call $~lib/rt/itcms/step - drop - br $while-continue|0 + i32.const 0 + br $~lib/util/string/parseExp|inlined.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 - local.set $0 - local.get $0 - 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.const 0 - drop - i32.const 0 - if (result i32) - i32.const 1 - else - i32.const 0 - end - drop - ) - (func $std/string/getString (result i32) - global.get $std/string/str - ) - (func $~lib/rt/__visit_globals (param $0 i32) - (local $1 i32) - global.get $std/string/str - local.tee $1 - if - local.get $1 - local.get $0 - call $~lib/rt/itcms/__visit - end - global.get $std/string/nullStr - local.tee $1 - if - local.get $1 - local.get $0 - call $~lib/rt/itcms/__visit - end - i32.const 240 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 12384 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 14032 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 352 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 14960 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 16016 - 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 - 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>#__visit (param $0 i32) (param $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - i32.const 1 - drop - local.get $0 - i32.load offset=4 - local.set $2 - local.get $2 - local.get $0 - i32.load offset=12 - i32.const 2 - i32.shl - i32.add - local.set $3 - loop $while-continue|0 - local.get $2 - local.get $3 - i32.lt_u - local.set $4 - local.get $4 - if - local.get $2 - i32.load - local.set $5 local.get $5 + i32.const 1 + i32.sub + local.tee $5 + i32.eqz if - local.get $5 - local.get $1 - call $~lib/rt/itcms/__visit + i32.const 0 + br $~lib/util/string/parseExp|inlined.0 end - local.get $2 - i32.const 4 + local.get $11 + i32.const 2 i32.add - local.set $2 - br $while-continue|0 - end - end - local.get $0 - i32.load - local.get $1 - call $~lib/rt/itcms/__visit - ) - (func $~lib/array/Array<~lib/string/String>~visit (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - call $~lib/array/Array<~lib/string/String>#__visit - ) - (func $~lib/array/Array#__visit (param $0 i32) (param $1 i32) - i32.const 0 - drop - local.get $0 - i32.load - local.get $1 - call $~lib/rt/itcms/__visit - ) - (func $~lib/array/Array~visit (param $0 i32) (param $1 i32) - 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<~lib/string/String> - block $~lib/arraybuffer/ArrayBufferView - block $~lib/string/String - block $~lib/arraybuffer/ArrayBuffer - local.get $0 - i32.const 8 - i32.sub - i32.load - br_table $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $~lib/array/Array<~lib/string/String> $~lib/array/Array $invalid - end - return + local.tee $11 + i32.load16_u + local.set $14 + local.get $14 + i32.const 45 + i32.eq + if + local.get $5 + i32.const 1 + i32.sub + local.tee $5 + i32.eqz + if + i32.const 0 + br $~lib/util/string/parseExp|inlined.0 + end + local.get $11 + i32.const 2 + i32.add + local.tee $11 + i32.load16_u + local.set $14 + i32.const -1 + local.set $12 + else + local.get $14 + i32.const 43 + i32.eq + if + local.get $5 + i32.const 1 + i32.sub + local.tee $5 + i32.eqz + if + i32.const 0 + br $~lib/util/string/parseExp|inlined.0 end - return + local.get $11 + i32.const 2 + i32.add + local.tee $11 + i32.load16_u + local.set $14 end - local.get $0 - local.get $1 - call $~lib/arraybuffer/ArrayBufferView~visit - return end - local.get $0 - local.get $1 - call $~lib/array/Array<~lib/string/String>~visit - return + loop $while-continue|4 + local.get $14 + i32.const 48 + i32.eq + local.set $15 + local.get $15 + if + local.get $5 + i32.const 1 + i32.sub + local.tee $5 + i32.eqz + if + i32.const 0 + br $~lib/util/string/parseExp|inlined.0 + end + local.get $11 + i32.const 2 + i32.add + local.tee $11 + i32.load16_u + local.set $14 + br $while-continue|4 + end + end + local.get $14 + i32.const 48 + i32.sub + local.set $15 + loop $for-loop|5 + local.get $5 + if (result i32) + local.get $15 + i32.const 10 + i32.lt_u + else + i32.const 0 + end + local.set $16 + local.get $16 + if + local.get $13 + i32.const 3200 + i32.ge_s + if + local.get $12 + i32.const 3200 + i32.mul + br $~lib/util/string/parseExp|inlined.0 + end + i32.const 10 + local.get $13 + i32.mul + local.get $15 + i32.add + local.set $13 + local.get $11 + i32.const 2 + i32.add + local.tee $11 + i32.load16_u + local.set $14 + local.get $5 + i32.const 1 + i32.sub + local.set $5 + local.get $14 + i32.const 48 + i32.sub + local.set $15 + br $for-loop|5 + end + end + local.get $12 + local.get $13 + i32.mul end - local.get $0 - local.get $1 - call $~lib/array/Array~visit - return - end - unreachable - ) - (func $~start - call $start:std/string - ) - (func $~stack_check - global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__data_end - i32.lt_s - if - i32.const 40880 - i32.const 40928 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - ) - (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 - call $~stack_check - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - local.get $0 - local.get $1 - 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 $0 - i32.const 0 - i32.eq - if (result i32) - i32.const 1 - else - local.get $1 - 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 $0 - 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 $2 - local.get $2 - local.get $1 - 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 $0 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store - local.get $3 - i32.const 0 - local.get $1 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - i32.const 0 - local.get $2 - 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 - ) - (func $~lib/string/String#charCodeAt (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 - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - local.get $1 - local.get $0 - 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 $0 - local.get $1 - 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 - ) - (func $~lib/string/String#at (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 - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - local.get $0 - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store - local.get $4 - call $~lib/string/String#get:length - local.set $2 - local.get $1 - i32.const 0 - local.get $2 - local.get $1 - i32.const 0 - i32.ge_s - select - i32.add - local.set $1 - local.get $1 - local.get $2 - i32.ge_u - if - i32.const 240 - i32.const 304 - i32.const 54 - i32.const 31 - call $~lib/builtins/abort - unreachable - end - i32.const 2 - i32.const 1 - call $~lib/rt/itcms/__new - local.set $3 - local.get $3 - local.get $0 - local.get $1 - i32.const 1 - i32.shl - i32.add - i32.load16_u - i32.store16 - local.get $3 - local.set $4 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $4 - ) - (func $~lib/string/String#charAt (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 - call $~stack_check - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - local.get $1 - local.get $0 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store - local.get $3 - call $~lib/string/String#get:length - i32.ge_u - if - i32.const 688 - 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 - global.get $~lib/memory/__stack_pointer - i32.const 2 - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $2 - i32.store offset=4 - local.get $2 - local.get $0 - local.get $1 - i32.const 1 - i32.shl - i32.add - i32.load16_u - i32.store16 - local.get $2 - 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/string/String.__not (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 - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - local.get $0 - i32.const 0 - i32.eq - if (result i32) - i32.const 1 - else - local.get $0 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $1 - call $~lib/string/String#get:length + local.set $16 + local.get $17 + i64.const 0 + i64.ne i32.eqz - end - 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/string/String#startsWith (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 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 $1 - i32.const 0 - i32.eq - if - global.get $~lib/memory/__stack_pointer - i32.const 944 - local.tee $1 - i32.store - end - local.get $0 - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 - call $~lib/string/String#get:length - local.set $3 - local.get $2 - local.tee $4 - i32.const 0 - local.tee $5 - local.get $4 - local.get $5 - i32.gt_s - select - local.tee $5 - local.get $3 - local.tee $4 - local.get $5 - local.get $4 - i32.lt_s - select - local.set $6 - local.get $1 - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 - call $~lib/string/String#get:length - local.set $7 - local.get $7 - local.get $6 - i32.add - local.get $3 - i32.gt_s - if - i32.const 0 - local.set $8 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $8 - return - end - local.get $0 - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 - local.get $6 - local.get $1 - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=8 - local.get $8 - i32.const 0 - local.get $7 - call $~lib/util/string/compareImpl - i32.eqz - local.set $8 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $8 - ) - (func $~lib/string/String#endsWith (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 - call $~stack_check - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - local.get $1 - i32.const 0 - i32.eq - if - i32.const 0 - local.set $7 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $7 - return - end - local.get $2 - local.tee $3 - i32.const 0 - local.tee $4 - local.get $3 - local.get $4 - i32.gt_s - select - local.tee $4 - local.get $0 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store - local.get $7 - call $~lib/string/String#get:length - local.tee $3 - local.get $4 - local.get $3 - i32.lt_s - select - local.set $2 - local.get $1 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store - local.get $7 - call $~lib/string/String#get:length - local.set $5 - local.get $2 - local.get $5 - i32.sub - local.set $6 - local.get $6 - i32.const 0 - i32.lt_s - if - i32.const 0 - local.set $7 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $7 - return - end - local.get $0 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store - local.get $7 - local.get $6 - local.get $1 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - i32.const 0 - local.get $5 - call $~lib/util/string/compareImpl - 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 - ) - (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) - (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 - call $~stack_check - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - local.get $1 - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store - local.get $8 - call $~lib/string/String#get:length - local.set $3 - local.get $3 - i32.eqz - if - i32.const 0 - local.set $8 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $8 - return - end - local.get $0 - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store - local.get $8 - call $~lib/string/String#get:length - local.set $4 - local.get $4 - i32.eqz - if - i32.const -1 - local.set $8 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $8 - return - end - local.get $2 - local.tee $5 - i32.const 0 - local.tee $6 - local.get $5 - local.get $6 - i32.gt_s - select - local.tee $6 - local.get $4 - local.tee $5 - local.get $6 - local.get $5 - i32.lt_s - select - local.set $7 - local.get $4 - local.get $3 - i32.sub - local.set $4 - loop $for-loop|0 - local.get $7 - local.get $4 - i32.le_s - local.set $6 - local.get $6 + if (result i32) + i32.const 1 + else + local.get $16 + i32.const -342 + i32.lt_s + end if - local.get $0 - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store - local.get $8 - local.get $7 - local.get $1 - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 + f64.const 0 + br $~lib/util/string/scientific|inlined.0 + end + local.get $16 + i32.const 308 + i32.gt_s + if + f64.const inf + br $~lib/util/string/scientific|inlined.0 + end + local.get $17 + f64.convert_i64_u + local.set $18 + local.get $16 + i32.eqz + if + local.get $18 + br $~lib/util/string/scientific|inlined.0 + end + local.get $16 + i32.const 22 + i32.gt_s + if (result i32) + local.get $16 + i32.const 22 + i32.const 15 + i32.add + i32.le_s + else i32.const 0 - local.get $3 - call $~lib/util/string/compareImpl - i32.eqz + end + if + local.get $18 + local.get $16 + i32.const 22 + i32.sub + local.set $15 + i32.const 3072 + local.get $15 + i32.const 3 + i32.shl + i32.add + f64.load + f64.mul + local.set $18 + i32.const 22 + local.set $16 + end + local.get $17 + i64.const 9007199254740991 + i64.le_u + if (result i32) + local.get $16 + local.tee $15 + i32.const 31 + i32.shr_s + local.tee $14 + local.get $15 + i32.add + local.get $14 + i32.xor + i32.const 22 + i32.le_s + else + i32.const 0 + end + if + local.get $16 + i32.const 0 + i32.gt_s if - local.get $7 - local.set $8 - global.get $~lib/memory/__stack_pointer - i32.const 8 + local.get $18 + local.get $16 + local.set $5 + i32.const 3072 + local.get $5 + i32.const 3 + i32.shl i32.add - global.set $~lib/memory/__stack_pointer - local.get $8 - return + f64.load + f64.mul + br $~lib/util/string/scientific|inlined.0 end - local.get $7 - i32.const 1 + local.get $18 + i32.const 0 + local.get $16 + i32.sub + local.set $11 + i32.const 3072 + local.get $11 + i32.const 3 + i32.shl i32.add - local.set $7 - br $for-loop|0 - end - end - i32.const -1 - local.set $8 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $8 - ) - (func $~lib/string/String#includes (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 - call $~stack_check - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - local.get $0 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store - local.get $3 - local.get $1 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - local.get $2 - call $~lib/string/String#indexOf - i32.const -1 - i32.ne - 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/string/String#padStart (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) - (local $11 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 $0 - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store - local.get $11 - call $~lib/string/String#get:length - i32.const 1 - i32.shl - local.set $3 - local.get $1 - i32.const 1 - i32.shl - local.set $4 - local.get $2 - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store - local.get $11 - call $~lib/string/String#get:length - i32.const 1 - i32.shl - local.set $5 - local.get $4 - local.get $3 - i32.lt_u - if (result i32) - i32.const 1 - else - local.get $5 - i32.eqz - end - if - local.get $0 - 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 $4 - local.get $3 - i32.sub - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $7 - i32.store offset=4 - local.get $6 - local.get $5 - i32.gt_u - if - local.get $6 - i32.const 2 - i32.sub - local.get $5 - i32.div_u - local.set $8 - local.get $8 - local.get $5 - i32.mul - local.set $9 - local.get $6 - local.get $9 - i32.sub - local.set $10 - local.get $7 - local.get $2 - local.get $5 - local.get $8 - call $~lib/memory/memory.repeat - local.get $7 - local.get $9 - i32.add - local.get $2 - local.get $10 - call $~lib/memory/memory.copy - else - local.get $7 - local.get $2 - local.get $6 - call $~lib/memory/memory.copy - end - local.get $7 - local.get $6 - i32.add - local.get $0 - local.get $3 - call $~lib/memory/memory.copy - local.get $7 - local.set $11 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $11 - ) - (func $~lib/string/String#padEnd (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) - (local $11 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 $0 - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store - local.get $11 - call $~lib/string/String#get:length - i32.const 1 - i32.shl - local.set $3 - local.get $1 - i32.const 1 - i32.shl - local.set $4 - local.get $2 - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store - local.get $11 - call $~lib/string/String#get:length - i32.const 1 - i32.shl - local.set $5 - local.get $4 - local.get $3 - i32.lt_u - if (result i32) - i32.const 1 - else - local.get $5 - i32.eqz - end - if - local.get $0 - 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 $4 - local.get $3 - i32.sub - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $7 - i32.store offset=4 - local.get $7 - local.get $0 - local.get $3 - call $~lib/memory/memory.copy - local.get $6 - local.get $5 - i32.gt_u - if - local.get $6 - i32.const 2 - i32.sub - local.get $5 - i32.div_u - local.set $8 - local.get $8 - local.get $5 - i32.mul - local.set $9 - local.get $6 - local.get $9 - i32.sub - local.set $10 - local.get $7 - local.get $3 - i32.add - local.get $2 - local.get $5 - local.get $8 - call $~lib/memory/memory.repeat - local.get $7 - local.get $3 - i32.add - local.get $9 - i32.add - local.get $2 - local.get $10 - call $~lib/memory/memory.copy - else - local.get $7 - local.get $3 - i32.add - local.get $2 - local.get $6 - call $~lib/memory/memory.copy - end - local.get $7 - local.set $11 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $11 - ) - (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) - (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 - call $~stack_check - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - local.get $1 - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store - local.get $8 - call $~lib/string/String#get:length - local.set $3 - local.get $3 - i32.eqz - if - local.get $0 - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store - local.get $8 - call $~lib/string/String#get:length - local.set $8 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $8 - return - end - local.get $0 - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store - local.get $8 - call $~lib/string/String#get:length - local.set $4 - local.get $4 - i32.eqz - if - i32.const -1 - local.set $8 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $8 - return - end - local.get $2 - local.tee $5 - i32.const 0 - local.tee $6 - local.get $5 - local.get $6 - i32.gt_s - select - local.tee $6 - local.get $4 - local.get $3 - i32.sub - local.tee $5 - local.get $6 - local.get $5 - i32.lt_s - select - local.set $7 - loop $for-loop|0 - local.get $7 - i32.const 0 - i32.ge_s - local.set $6 - local.get $6 - if - local.get $0 - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store - local.get $8 - local.get $7 - local.get $1 - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 - i32.const 0 - local.get $3 - call $~lib/util/string/compareImpl - i32.eqz - if - local.get $7 - local.set $8 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $8 - return - end - local.get $7 - i32.const 1 - i32.sub - local.set $7 - br $for-loop|0 - end - end - i32.const -1 - local.set $8 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $8 - ) - (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 - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - local.get $1 - local.get $0 - i32.eq - if - i32.const 0 - local.set $4 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $4 - return - end - local.get $0 - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store - local.get $4 - call $~lib/string/String#get:length - local.set $2 - local.get $1 - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store - local.get $4 - call $~lib/string/String#get:length - local.set $3 - local.get $3 - local.get $2 - i32.ne - if - i32.const 1 - i32.const -1 - local.get $2 - local.get $3 - i32.gt_s - select - local.set $4 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $4 - return - end - local.get $3 - i32.eqz - if - i32.const 0 - local.set $4 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $4 - return - end - local.get $0 - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store - local.get $4 - i32.const 0 - local.get $1 - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - i32.const 0 - local.get $3 - call $~lib/util/string/compareImpl - local.set $4 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $4 - ) - (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) - 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 $0 - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - local.get $5 - call $~lib/string/String#get:length - i32.const 1 - i32.shl - local.set $1 - i32.const 0 - local.set $2 - loop $while-continue|0 - local.get $2 - local.get $1 - i32.lt_u - if (result i32) - local.get $0 - local.get $2 - i32.add - i32.load16_u - call $~lib/util/string/isSpace - else - i32.const 0 - end - local.set $3 - local.get $3 - if - local.get $2 - i32.const 2 - i32.add - local.set $2 - br $while-continue|0 - end - end - local.get $2 - i32.eqz - if - local.get $0 - local.set $5 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $5 - return - end - local.get $1 - local.get $2 - i32.sub - local.set $1 - local.get $1 - i32.eqz - if - i32.const 688 - local.set $5 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $5 - return - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $4 - i32.store offset=4 - local.get $4 - local.get $0 - local.get $2 - i32.add - local.get $1 - call $~lib/memory/memory.copy - local.get $4 - 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/string/String#trimEnd (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 - call $~stack_check - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - local.get $0 - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - local.get $5 - call $~lib/string/String#get:length - i32.const 1 - i32.shl - local.set $1 - local.get $1 - local.set $2 - loop $while-continue|0 - local.get $2 - if (result i32) - local.get $0 - local.get $2 - i32.add - i32.const 2 - i32.sub - i32.load16_u - call $~lib/util/string/isSpace - else - i32.const 0 - end - local.set $3 - local.get $3 - if - local.get $2 - i32.const 2 - i32.sub - local.set $2 - br $while-continue|0 - end - end - local.get $2 - i32.eqz - if - i32.const 688 - local.set $5 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $5 - return - end - local.get $2 - local.get $1 - i32.eq - if - local.get $0 - local.set $5 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $5 - return - end - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $4 - i32.store offset=4 - local.get $4 - local.get $0 - local.get $2 - call $~lib/memory/memory.copy - local.get $4 - 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/string/String#trim (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 - call $~stack_check - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - local.get $0 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - call $~lib/string/String#get:length - local.set $1 - local.get $1 - i32.const 1 - i32.shl - local.set $2 - loop $while-continue|0 - local.get $2 - if (result i32) - local.get $0 - local.get $2 - i32.add - i32.const 2 - i32.sub - i32.load16_u - call $~lib/util/string/isSpace - else - i32.const 0 - end - local.set $3 - local.get $3 - if - local.get $2 - i32.const 2 - i32.sub - local.set $2 - br $while-continue|0 - end - end - i32.const 0 - local.set $4 - loop $while-continue|1 - local.get $4 - local.get $2 - i32.lt_u - if (result i32) - local.get $0 - local.get $4 - i32.add - i32.load16_u - call $~lib/util/string/isSpace - else - i32.const 0 - end - local.set $3 - local.get $3 - if - local.get $4 - i32.const 2 - i32.add - local.set $4 - local.get $2 - i32.const 2 - i32.sub - local.set $2 - br $while-continue|1 - end - end - local.get $2 - i32.eqz - if - i32.const 688 - 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 - local.get $4 - i32.eqz - if (result i32) - local.get $2 - local.get $1 - i32.const 1 - i32.shl - i32.eq - else - i32.const 0 - end - if - local.get $0 - 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 $2 - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $5 - i32.store offset=4 - local.get $5 - local.get $0 - local.get $4 - i32.add - local.get $2 - call $~lib/memory/memory.copy - local.get $5 - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - ) - (func $~lib/util/string/strtol (param $0 i32) (param $1 i32) (result f64) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 f64) - (local $7 f64) - (local $8 i32) - (local $9 f64) - 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 $0 - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store - local.get $8 - call $~lib/string/String#get:length - local.set $2 - local.get $2 - i32.eqz - if - i32.const 1 - drop - f64.const nan:0x8000000000000 - local.set $9 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $9 - return - end - local.get $0 - local.set $3 - local.get $3 - i32.load16_u - local.set $4 - loop $while-continue|0 - local.get $4 - call $~lib/util/string/isSpace - local.set $5 - local.get $5 - if - local.get $3 - i32.const 2 - i32.add - local.tee $3 - i32.load16_u - local.set $4 - local.get $2 - i32.const 1 - i32.sub - local.set $2 - br $while-continue|0 - end - end - f64.const 1 - local.set $6 - local.get $4 - i32.const 45 - i32.eq - if (result i32) - i32.const 1 - else - local.get $4 - i32.const 43 - i32.eq - end - if - local.get $2 - i32.const 1 - i32.sub - local.tee $2 - i32.eqz - if - i32.const 1 - drop - f64.const nan:0x8000000000000 - local.set $9 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $9 - return - end - local.get $4 - i32.const 45 - i32.eq - if - f64.const -1 - local.set $6 - end - local.get $3 - i32.const 2 - i32.add - local.tee $3 - i32.load16_u - local.set $4 - end - local.get $1 - if - local.get $1 - i32.const 2 - i32.lt_s - if (result i32) - i32.const 1 - else - local.get $1 - i32.const 36 - i32.gt_s - end - if - i32.const 1 - drop - f64.const nan:0x8000000000000 - local.set $9 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $9 - return - end - local.get $1 - i32.const 16 - i32.eq - if - local.get $2 - i32.const 2 - i32.gt_s - if (result i32) - local.get $4 - i32.const 48 - i32.eq - else - i32.const 0 - end - if (result i32) - local.get $3 - i32.load16_u offset=2 - i32.const 32 - i32.or - i32.const 120 - i32.eq - else - i32.const 0 - end - if - local.get $3 - i32.const 4 - i32.add - local.set $3 - local.get $2 - i32.const 2 - i32.sub - local.set $2 - end - end - else - local.get $4 - i32.const 48 - i32.eq - if (result i32) - local.get $2 - 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 $3 - i32.load16_u offset=2 - i32.const 32 - i32.or - local.set $5 - local.get $5 - i32.const 98 - i32.eq - br_if $case0|1 - local.get $5 - i32.const 111 - i32.eq - br_if $case1|1 - local.get $5 - i32.const 120 - i32.eq - br_if $case2|1 - br $break|1 - end - local.get $3 - i32.const 4 - i32.add - local.set $3 - local.get $2 - i32.const 2 - i32.sub - local.set $2 - i32.const 2 - local.set $1 - br $break|1 - end - local.get $3 - i32.const 4 - i32.add - local.set $3 - local.get $2 - i32.const 2 - i32.sub - local.set $2 - i32.const 8 - local.set $1 - br $break|1 - end - local.get $3 - i32.const 4 - i32.add - local.set $3 - local.get $2 - i32.const 2 - i32.sub - local.set $2 - i32.const 16 - local.set $1 - br $break|1 - end - end - local.get $1 - i32.eqz - if - i32.const 10 - local.set $1 - end - end - f64.const 0 - local.set $7 - block $while-break|2 - loop $while-continue|2 - local.get $2 - local.tee $5 - i32.const 1 - i32.sub - local.set $2 - local.get $5 - local.set $5 - local.get $5 - if - local.get $3 - i32.load16_u - local.set $4 - local.get $4 - i32.const 48 - i32.sub - i32.const 10 - i32.lt_u - if - local.get $4 - i32.const 48 - i32.sub - local.set $4 - else - local.get $4 - i32.const 65 - i32.sub - i32.const 90 - i32.const 65 - i32.sub - i32.le_u - if - local.get $4 - i32.const 65 - i32.const 10 - i32.sub - i32.sub - local.set $4 - else - local.get $4 - i32.const 97 - i32.sub - i32.const 122 - i32.const 97 - i32.sub - i32.le_u - if - local.get $4 - i32.const 97 - i32.const 10 - i32.sub - i32.sub - local.set $4 - end - end - end - local.get $4 - local.get $1 - i32.ge_u - if - local.get $7 - i64.reinterpret_f64 - i64.const 1 - i64.shl - i64.const 2 - i64.sub - i64.const -9007199254740994 - i64.le_u - i32.eqz - if - i32.const 1 - drop - f64.const nan:0x8000000000000 - local.set $9 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $9 - return - end - br $while-break|2 - end - local.get $7 - local.get $1 - f64.convert_i32_s - f64.mul - local.get $4 - f64.convert_i32_u - f64.add - local.set $7 - local.get $3 - i32.const 2 - i32.add - local.set $3 - br $while-continue|2 - end - end - end - local.get $6 - local.get $7 - f64.mul - local.set $9 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $9 - ) - (func $~lib/string/parseInt (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 - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - local.get $0 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $2 - local.get $1 - 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 - ) - (func $~lib/number/F32.parseInt (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 - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - local.get $0 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $2 - local.get $1 - call $~lib/util/string/strtol - f32.demote_f64 - 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/number/F64.parseInt (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 - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - local.get $0 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $2 - local.get $1 - 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 - ) - (func $~lib/util/string/strtol (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 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 $0 - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store - local.get $8 - call $~lib/string/String#get:length - local.set $2 - local.get $2 - i32.eqz - if - i32.const 0 - drop - i32.const 0 - local.set $8 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $8 - return - end - local.get $0 - local.set $3 - local.get $3 - i32.load16_u - local.set $4 - loop $while-continue|0 - local.get $4 - call $~lib/util/string/isSpace - local.set $5 - local.get $5 - if - local.get $3 - i32.const 2 - i32.add - local.tee $3 - i32.load16_u - local.set $4 - local.get $2 - i32.const 1 - i32.sub - local.set $2 - br $while-continue|0 - end - end - i32.const 1 - local.set $6 - local.get $4 - i32.const 45 - i32.eq - if (result i32) - i32.const 1 - else - local.get $4 - i32.const 43 - i32.eq - end - if - local.get $2 - i32.const 1 - i32.sub - local.tee $2 - i32.eqz - if - i32.const 0 - drop - i32.const 0 - local.set $8 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $8 - return - end - local.get $4 - i32.const 45 - i32.eq - if - i32.const -1 - local.set $6 - end - local.get $3 - i32.const 2 - i32.add - local.tee $3 - i32.load16_u - local.set $4 - end - local.get $1 - if - local.get $1 - i32.const 2 - i32.lt_s - if (result i32) - i32.const 1 - else - local.get $1 - i32.const 36 - i32.gt_s - end - if - i32.const 0 - drop - i32.const 0 - local.set $8 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $8 - return - end - local.get $1 - i32.const 16 - i32.eq - if - local.get $2 - i32.const 2 - i32.gt_s - if (result i32) - local.get $4 - i32.const 48 - i32.eq - else - i32.const 0 - end - if (result i32) - local.get $3 - i32.load16_u offset=2 - i32.const 32 - i32.or - i32.const 120 - i32.eq - else - i32.const 0 - end - if - local.get $3 - i32.const 4 - i32.add - local.set $3 - local.get $2 - i32.const 2 - i32.sub - local.set $2 - end - end - else - local.get $4 - i32.const 48 - i32.eq - if (result i32) - local.get $2 - 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 $3 - i32.load16_u offset=2 - i32.const 32 - i32.or - local.set $5 - local.get $5 - i32.const 98 - i32.eq - br_if $case0|1 - local.get $5 - i32.const 111 - i32.eq - br_if $case1|1 - local.get $5 - i32.const 120 - i32.eq - br_if $case2|1 - br $break|1 - end - local.get $3 - i32.const 4 + f64.load + f64.div + br $~lib/util/string/scientific|inlined.0 + else + local.get $16 + i32.const 0 + i32.lt_s + if + local.get $17 + local.set $19 + local.get $16 + local.set $12 + local.get $19 + i64.clz + local.set $20 + local.get $19 + local.get $20 + i64.shl + local.set $19 + local.get $12 + i64.extend_i32_s + local.get $20 + i64.sub + local.set $20 + loop $for-loop|6 + local.get $12 + i32.const -14 + i32.le_s + local.set $11 + local.get $11 + if + local.get $19 + i64.const 6103515625 + i64.div_u + local.set $21 + local.get $19 + i64.const 6103515625 + i64.rem_u + local.set $22 + local.get $21 + i64.clz + local.set $23 + local.get $21 + local.get $23 + i64.shl + f64.const 0.00004294967296 + local.get $22 + local.get $23 + i64.const 18 + i64.sub + i64.shl + f64.convert_i64_u + f64.mul + f64.nearest + i64.trunc_f64_u + i64.add + local.set $19 + local.get $20 + local.get $23 + i64.sub + local.set $20 + local.get $12 + i32.const 14 i32.add - local.set $3 - local.get $2 - i32.const 2 - i32.sub - local.set $2 - i32.const 2 - local.set $1 - br $break|1 + local.set $12 + br $for-loop|6 end - local.get $3 - i32.const 4 - i32.add - local.set $3 - local.get $2 - i32.const 2 - i32.sub - local.set $2 - i32.const 8 - local.set $1 - br $break|1 end - local.get $3 - i32.const 4 - i32.add - local.set $3 - local.get $2 - i32.const 2 - i32.sub - local.set $2 - i32.const 16 - local.set $1 - br $break|1 - end - end - local.get $1 - i32.eqz - if - i32.const 10 - local.set $1 - end - end - i32.const 0 - local.set $7 - block $while-break|2 - loop $while-continue|2 - local.get $2 - local.tee $5 - i32.const 1 - i32.sub - local.set $2 - local.get $5 - local.set $5 - local.get $5 - if - local.get $3 - i32.load16_u - local.set $4 - local.get $4 - i32.const 48 + i32.const 5 + i32.const 0 + local.get $12 i32.sub - i32.const 10 - i32.lt_u - if - local.get $4 - i32.const 48 - i32.sub - local.set $4 - else - local.get $4 - i32.const 65 - i32.sub - i32.const 90 - i32.const 65 - i32.sub - i32.le_u + call $~lib/math/ipow32 + i64.extend_i32_s + local.set $23 + local.get $19 + local.get $23 + i64.div_u + local.set $22 + local.get $19 + local.get $23 + i64.rem_u + local.set $21 + local.get $22 + i64.clz + local.set $24 + local.get $22 + local.get $24 + i64.shl + local.get $21 + f64.convert_i64_u + i64.reinterpret_f64 + local.get $24 + i64.const 52 + i64.shl + i64.add + f64.reinterpret_i64 + local.get $23 + f64.convert_i64_u + f64.div + i64.trunc_f64_u + i64.add + local.set $19 + local.get $20 + local.get $24 + i64.sub + local.set $20 + local.get $19 + f64.convert_i64_u + local.get $20 + i32.wrap_i64 + call $~lib/math/NativeMath.scalbn + br $~lib/util/string/scientific|inlined.0 + else + local.get $17 + local.set $19 + local.get $16 + local.set $13 + local.get $19 + i64.ctz + local.set $24 + local.get $19 + local.get $24 + i64.shr_u + local.set $19 + local.get $24 + local.get $13 + i64.extend_i32_s + i64.add + local.set $24 + local.get $24 + global.set $~lib/util/string/__fixmulShift + loop $for-loop|7 + local.get $13 + i32.const 13 + i32.ge_s + local.set $12 + local.get $12 if - local.get $4 - i32.const 65 - i32.const 10 - i32.sub - i32.sub - local.set $4 - else - local.get $4 - i32.const 97 - i32.sub - i32.const 122 - i32.const 97 + local.get $19 + local.set $20 + i32.const 1220703125 + local.set $14 + local.get $20 + i64.const 4294967295 + i64.and + local.get $14 + i64.extend_i32_u + i64.mul + local.set $21 + local.get $20 + i64.const 32 + i64.shr_u + local.get $14 + i64.extend_i32_u + i64.mul + local.get $21 + i64.const 32 + i64.shr_u + i64.add + local.set $22 + local.get $22 + i64.const 32 + i64.shr_u + i32.wrap_i64 + local.set $11 + local.get $11 + i32.clz + local.set $5 + i64.const 32 + local.get $5 + i64.extend_i32_u + i64.sub + local.set $23 + global.get $~lib/util/string/__fixmulShift + local.get $23 + i64.add + global.set $~lib/util/string/__fixmulShift + local.get $22 + local.get $5 + i64.extend_i32_u + i64.shl + local.get $21 + i64.const 4294967295 + i64.and + local.get $23 + i64.shr_u + i64.or + local.get $21 + local.get $5 + i64.extend_i32_u + i64.shl + i64.const 31 + i64.shr_u + i64.const 1 + i64.and + i64.add + local.set $19 + local.get $13 + i32.const 13 i32.sub - i32.le_u - if - local.get $4 - i32.const 97 - i32.const 10 - i32.sub - i32.sub - local.set $4 - end - end - end - local.get $4 - local.get $1 - i32.ge_u - if - local.get $7 - i32.eqz - if - i32.const 0 - drop - i32.const 0 - local.set $8 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $8 - return + local.set $13 + br $for-loop|7 end - br $while-break|2 end - local.get $7 - local.get $1 - i32.mul - local.get $4 - i32.add - local.set $7 - local.get $3 - i32.const 2 - i32.add - local.set $3 - br $while-continue|2 + local.get $19 + local.set $20 + i32.const 5 + local.get $13 + call $~lib/math/ipow32 + local.set $15 + local.get $20 + i64.const 4294967295 + i64.and + local.get $15 + i64.extend_i32_u + i64.mul + local.set $23 + local.get $20 + i64.const 32 + i64.shr_u + local.get $15 + i64.extend_i32_u + i64.mul + local.get $23 + i64.const 32 + i64.shr_u + i64.add + local.set $22 + local.get $22 + i64.const 32 + i64.shr_u + i32.wrap_i64 + local.set $12 + local.get $12 + i32.clz + local.set $5 + i64.const 32 + local.get $5 + i64.extend_i32_u + i64.sub + local.set $21 + global.get $~lib/util/string/__fixmulShift + local.get $21 + i64.add + global.set $~lib/util/string/__fixmulShift + local.get $22 + local.get $5 + i64.extend_i32_u + i64.shl + local.get $23 + i64.const 4294967295 + i64.and + local.get $21 + i64.shr_u + i64.or + local.get $23 + local.get $5 + i64.extend_i32_u + i64.shl + i64.const 31 + i64.shr_u + i64.const 1 + i64.and + i64.add + local.set $19 + global.get $~lib/util/string/__fixmulShift + local.set $24 + local.get $19 + f64.convert_i64_u + local.get $24 + i32.wrap_i64 + call $~lib/math/NativeMath.scalbn + br $~lib/util/string/scientific|inlined.0 end + unreachable end + unreachable end - local.get $6 - local.get $7 - i32.mul - local.set $8 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $8 + local.get $4 + f64.copysign ) - (func $~lib/number/I32.parseInt (param $0 i32) (param $1 i32) (result i32) + (func $~lib/string/parseFloat (param $0 i32) (result f64) + local.get $0 + call $~lib/util/string/strtod + ) + (func $~lib/string/String.__ne (param $0 i32) (param $1 i32) (result i32) + local.get $0 + local.get $1 + call $~lib/string/String.__eq + i32.eqz + ) + (func $~lib/string/String.__gt (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 - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + local.get $0 + local.get $1 + i32.eq + if (result i32) + i32.const 1 + else + local.get $0 + i32.const 0 + i32.eq + end + if (result i32) + i32.const 1 + else + local.get $1 + i32.const 0 + i32.eq + end + if + i32.const 0 + return + end local.get $0 + call $~lib/string/String#get:length local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store local.get $2 + i32.eqz + if + i32.const 0 + return + end 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 + call $~lib/string/String#get:length + local.set $3 + local.get $3 + i32.eqz + if + i32.const 1 + return + end + local.get $0 + i32.const 0 + local.get $1 + i32.const 0 local.get $2 + local.tee $4 + local.get $3 + local.tee $5 + local.get $4 + local.get $5 + i32.lt_s + select + call $~lib/util/string/compareImpl + local.set $6 + local.get $6 + if (result i32) + local.get $6 + i32.const 0 + i32.gt_s + else + local.get $2 + local.get $3 + i32.gt_s + end ) - (func $~lib/util/string/strtol (param $0 i32) (param $1 i32) (result i64) + (func $~lib/string/String.__lt (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) - (local $6 i64) - (local $7 i64) - (local $8 i32) - (local $9 i64) - 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 $6 i32) local.get $0 - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store - local.get $8 + local.get $1 + i32.eq + if (result i32) + i32.const 1 + else + local.get $0 + i32.const 0 + i32.eq + end + if (result i32) + i32.const 1 + else + local.get $1 + i32.const 0 + i32.eq + end + if + i32.const 0 + return + end + local.get $1 call $~lib/string/String#get:length local.set $2 local.get $2 i32.eqz if i32.const 0 - drop - i64.const 0 - local.set $9 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $9 return end local.get $0 + call $~lib/string/String#get:length local.set $3 local.get $3 - i32.load16_u - local.set $4 - loop $while-continue|0 - local.get $4 - call $~lib/util/string/isSpace - local.set $5 - local.get $5 - if - local.get $3 - i32.const 2 - i32.add - local.tee $3 - i32.load16_u - local.set $4 - local.get $2 - i32.const 1 - i32.sub - local.set $2 - br $while-continue|0 - end + i32.eqz + if + i32.const 1 + return end - i64.const 1 - local.set $6 + local.get $0 + i32.const 0 + local.get $1 + i32.const 0 + local.get $3 + local.tee $4 + local.get $2 + local.tee $5 local.get $4 - i32.const 45 - i32.eq + local.get $5 + i32.lt_s + select + call $~lib/util/string/compareImpl + local.set $6 + local.get $6 if (result i32) - i32.const 1 + local.get $6 + i32.const 0 + i32.lt_s else - local.get $4 - i32.const 43 - i32.eq + local.get $3 + local.get $2 + i32.lt_s end + ) + (func $~lib/string/String.__gte (param $0 i32) (param $1 i32) (result i32) + local.get $0 + local.get $1 + call $~lib/string/String.__lt + i32.eqz + ) + (func $~lib/string/String.__lte (param $0 i32) (param $1 i32) (result i32) + local.get $0 + local.get $1 + call $~lib/string/String.__gt + i32.eqz + ) + (func $~lib/rt/itcms/__renew (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $0 + i32.const 20 + i32.sub + local.set $2 + local.get $1 + local.get $2 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.const 16 + i32.sub + i32.le_u if local.get $2 - i32.const 1 - i32.sub - local.tee $2 - i32.eqz - if - i32.const 0 - drop - i64.const 0 - local.set $9 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $9 - return - end - local.get $4 - i32.const 45 - i32.eq - if - i64.const -1 - local.set $6 - end + local.get $1 + call $~lib/rt/itcms/Object#set:rtSize + local.get $0 + return + end + local.get $1 + local.get $2 + i32.load offset=12 + call $~lib/rt/itcms/__new + local.set $3 + local.get $3 + local.get $0 + local.get $1 + local.tee $4 + local.get $2 + i32.load offset=16 + local.tee $5 + local.get $4 + local.get $5 + i32.lt_u + select + call $~lib/memory/memory.copy + local.get $3 + ) + (func $~lib/rt/__newBuffer (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + local.get $0 + local.get $1 + call $~lib/rt/itcms/__new + local.set $3 + local.get $2 + if local.get $3 - i32.const 2 - i32.add - local.tee $3 - i32.load16_u - local.set $4 + local.get $2 + local.get $0 + call $~lib/memory/memory.copy end + local.get $3 + ) + (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 $1 + i32.eqz if - local.get $1 - i32.const 2 - i32.lt_s - if (result i32) - i32.const 1 - else - local.get $1 - i32.const 36 - i32.gt_s - end - if - i32.const 0 - drop - i64.const 0 - local.set $9 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $9 - return - end - local.get $1 - i32.const 16 + return + end + i32.const 1 + drop + local.get $0 + i32.eqz + if + i32.const 0 + i32.const 416 + i32.const 294 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 20 + i32.sub + local.set $3 + local.get $3 + call $~lib/rt/itcms/Object#get:color + global.get $~lib/rt/itcms/white + i32.eq + if + local.get $0 + i32.const 20 + i32.sub + local.set $4 + local.get $4 + call $~lib/rt/itcms/Object#get:color + local.set $5 + local.get $5 + global.get $~lib/rt/itcms/white + i32.eqz i32.eq if local.get $2 - i32.const 2 - i32.gt_s - if (result i32) + if local.get $4 - i32.const 48 - i32.eq + call $~lib/rt/itcms/Object#makeGray else - i32.const 0 + local.get $3 + call $~lib/rt/itcms/Object#makeGray end + else + local.get $5 + i32.const 3 + i32.eq if (result i32) - local.get $3 - i32.load16_u offset=2 - i32.const 32 - i32.or - i32.const 120 + global.get $~lib/rt/itcms/state + i32.const 1 i32.eq else i32.const 0 end if local.get $3 - i32.const 4 - i32.add - local.set $3 - local.get $2 - i32.const 2 - i32.sub - local.set $2 + call $~lib/rt/itcms/Object#makeGray end end - else + end + ) + (func $~lib/array/Array<~lib/string/String>#__uset (param $0 i32) (param $1 i32) (param $2 i32) + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 2 + i32.shl + i32.add + local.get $2 + i32.store + i32.const 1 + drop + local.get $0 + local.get $2 + i32.const 1 + call $~lib/rt/itcms/__link + ) + (func $~lib/array/ensureSize (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + local.get $0 + i32.load offset=8 + local.set $3 + local.get $1 + local.get $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 12384 + i32.const 13984 + i32.const 14 + i32.const 48 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load + local.set $4 + local.get $1 + local.get $2 + i32.shl + local.set $5 local.get $4 - i32.const 48 - i32.eq - if (result i32) - local.get $2 - i32.const 2 - i32.gt_s - else + local.get $5 + call $~lib/rt/itcms/__renew + local.set $6 + local.get $6 + local.get $3 + i32.add + i32.const 0 + local.get $5 + local.get $3 + i32.sub + call $~lib/memory/memory.fill + local.get $6 + local.get $4 + i32.ne + if + local.get $0 + local.get $6 + i32.store + local.get $0 + local.get $6 + i32.store offset=4 + local.get $0 + local.get $6 i32.const 0 + call $~lib/rt/itcms/__link + end + local.get $0 + local.get $5 + i32.store offset=8 + end + ) + (func $~lib/array/Array<~lib/string/String>#set:length_ (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=12 + ) + (func $~lib/array/Array<~lib/string/String>#push (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + local.get $0 + i32.load offset=12 + local.set $2 + local.get $2 + i32.const 1 + i32.add + local.set $3 + local.get $0 + local.get $3 + i32.const 2 + call $~lib/array/ensureSize + i32.const 1 + drop + 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 + local.get $0 + local.get $3 + call $~lib/array/Array<~lib/string/String>#set:length_ + local.get $3 + ) + (func $~lib/array/Array<~lib/string/String>#get:length (param $0 i32) (result i32) + local.get $0 + i32.load offset=12 + ) + (func $~lib/util/number/decimalCount32 (param $0 i32) (result i32) + local.get $0 + i32.const 100000 + i32.lt_u + if + local.get $0 + i32.const 100 + i32.lt_u + if + i32.const 1 + local.get $0 + i32.const 10 + i32.ge_u + i32.add + return + else + i32.const 3 + local.get $0 + i32.const 10000 + i32.ge_u + i32.add + local.get $0 + i32.const 1000 + i32.ge_u + i32.add + return end + unreachable + else + local.get $0 + i32.const 10000000 + i32.lt_u if - block $break|1 - block $case2|1 - block $case1|1 - block $case0|1 - local.get $3 - i32.load16_u offset=2 - i32.const 32 - i32.or - local.set $5 - local.get $5 - i32.const 98 - i32.eq - br_if $case0|1 - local.get $5 - i32.const 111 - i32.eq - br_if $case1|1 - local.get $5 - i32.const 120 - i32.eq - br_if $case2|1 - br $break|1 - end - local.get $3 - i32.const 4 - i32.add - local.set $3 - local.get $2 - i32.const 2 - i32.sub - local.set $2 - i32.const 2 - local.set $1 - br $break|1 - end - local.get $3 - i32.const 4 - i32.add - local.set $3 - local.get $2 - i32.const 2 - i32.sub - local.set $2 - i32.const 8 - local.set $1 - br $break|1 - end - local.get $3 - i32.const 4 - i32.add - local.set $3 - local.get $2 - i32.const 2 - i32.sub - local.set $2 - i32.const 16 - local.set $1 - br $break|1 - end + i32.const 6 + local.get $0 + i32.const 1000000 + i32.ge_u + i32.add + return + else + i32.const 8 + local.get $0 + i32.const 1000000000 + i32.ge_u + i32.add + local.get $0 + i32.const 100000000 + i32.ge_u + i32.add + return end + unreachable + end + unreachable + ) + (func $~lib/util/number/utoa32_dec_lut (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 i64) + (local $9 i64) + (local $10 i32) + (local $11 i32) + loop $while-continue|0 local.get $1 - i32.eqz + i32.const 10000 + i32.ge_u + local.set $3 + local.get $3 if - i32.const 10 + local.get $1 + i32.const 10000 + i32.div_u + local.set $4 + local.get $1 + i32.const 10000 + i32.rem_u + local.set $5 + local.get $4 local.set $1 + local.get $5 + i32.const 100 + i32.div_u + local.set $6 + local.get $5 + i32.const 100 + i32.rem_u + local.set $7 + i32.const 14540 + local.get $6 + i32.const 2 + i32.shl + i32.add + i64.load32_u + local.set $8 + i32.const 14540 + local.get $7 + i32.const 2 + i32.shl + i32.add + i64.load32_u + local.set $9 + local.get $2 + i32.const 4 + i32.sub + local.set $2 + local.get $0 + local.get $2 + i32.const 1 + i32.shl + i32.add + local.get $8 + local.get $9 + i64.const 32 + i64.shl + i64.or + i64.store + br $while-continue|0 end end - i64.const 0 - local.set $7 - block $while-break|2 - loop $while-continue|2 + local.get $1 + i32.const 100 + i32.ge_u + if + local.get $1 + i32.const 100 + i32.div_u + local.set $3 + local.get $1 + i32.const 100 + i32.rem_u + local.set $10 + local.get $3 + local.set $1 + local.get $2 + i32.const 2 + i32.sub + local.set $2 + i32.const 14540 + local.get $10 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $11 + local.get $0 + local.get $2 + i32.const 1 + i32.shl + i32.add + local.get $11 + i32.store + end + local.get $1 + i32.const 10 + i32.ge_u + if + local.get $2 + i32.const 2 + i32.sub + local.set $2 + i32.const 14540 + local.get $1 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $11 + local.get $0 + local.get $2 + i32.const 1 + i32.shl + i32.add + local.get $11 + i32.store + else + local.get $2 + i32.const 1 + i32.sub + local.set $2 + i32.const 48 + local.get $1 + i32.add + local.set $11 + local.get $0 + local.get $2 + i32.const 1 + i32.shl + i32.add + local.get $11 + i32.store16 + end + ) + (func $~lib/util/number/utoa_hex_lut (param $0 i32) (param $1 i64) (param $2 i32) + (local $3 i32) + loop $while-continue|0 + local.get $2 + i32.const 2 + i32.ge_u + local.set $3 + local.get $3 + if local.get $2 - local.tee $5 - i32.const 1 + i32.const 2 i32.sub local.set $2 - local.get $5 - local.set $5 - local.get $5 - if - local.get $3 - i32.load16_u - local.set $4 - local.get $4 - i32.const 48 - i32.sub - i32.const 10 - i32.lt_u - if - local.get $4 - i32.const 48 - i32.sub - local.set $4 - else - local.get $4 - i32.const 65 - i32.sub - i32.const 90 - i32.const 65 - i32.sub - i32.le_u - if - local.get $4 - i32.const 65 - i32.const 10 - i32.sub - i32.sub - local.set $4 - else - local.get $4 - i32.const 97 - i32.sub - i32.const 122 - i32.const 97 - i32.sub - i32.le_u - if - local.get $4 - i32.const 97 - i32.const 10 - i32.sub - i32.sub - local.set $4 - end - end - end - local.get $4 - local.get $1 - i32.ge_u - if - local.get $7 - i64.const 0 - i64.ne - i32.eqz - if - i32.const 0 - drop - i64.const 0 - local.set $9 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $9 - return - end - br $while-break|2 - end - local.get $7 - local.get $1 - i64.extend_i32_s - i64.mul - local.get $4 - i64.extend_i32_u - i64.add - local.set $7 - local.get $3 - i32.const 2 - i32.add - local.set $3 - br $while-continue|2 - end + local.get $0 + local.get $2 + i32.const 1 + i32.shl + i32.add + i32.const 14960 + local.get $1 + i32.wrap_i64 + i32.const 255 + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + i32.store + local.get $1 + i64.const 8 + i64.shr_u + local.set $1 + br $while-continue|0 end end - local.get $6 - local.get $7 - i64.mul - local.set $9 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $9 - ) - (func $~lib/number/I64.parseInt (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 - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - local.get $0 - local.set $2 - global.get $~lib/memory/__stack_pointer local.get $2 - i32.store - local.get $2 - local.get $1 - 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 + i32.const 1 + i32.and + if + local.get $0 + i32.const 14960 + local.get $1 + i32.wrap_i64 + i32.const 6 + i32.shl + i32.add + i32.load16_u + i32.store16 + end ) - (func $~lib/util/string/strtod (param $0 i32) (result f64) - (local $1 i32) + (func $~lib/util/number/ulog_base (param $0 i64) (param $1 i32) (result i32) (local $2 i32) - (local $3 i32) - (local $4 f64) + (local $3 i64) + (local $4 i64) (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) - (local $16 i32) - (local $17 i64) - (local $18 f64) - (local $19 i64) - (local $20 i64) - (local $21 i64) - (local $22 i64) - (local $23 i64) - (local $24 i64) - (local $25 i32) - (local $26 f64) - 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 $0 - local.set $25 - global.get $~lib/memory/__stack_pointer - local.get $25 - i32.store - local.get $25 - call $~lib/string/String#get:length - local.set $1 local.get $1 - i32.eqz + local.set $2 + local.get $2 + i32.popcnt + i32.const 1 + i32.eq if - f64.const nan:0x8000000000000 - local.set $26 - global.get $~lib/memory/__stack_pointer - i32.const 4 + 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 - global.set $~lib/memory/__stack_pointer - local.get $26 return end - local.get $0 - local.set $2 - local.get $2 - i32.load16_u + local.get $1 + i64.extend_i32_s local.set $3 - f64.const 1 + local.get $3 local.set $4 + i32.const 1 + local.set $5 loop $while-continue|0 - local.get $1 - if (result i32) + local.get $0 + local.get $4 + i64.ge_u + local.set $2 + local.get $2 + if + local.get $0 + local.get $4 + i64.div_u + local.set $0 + local.get $4 + local.get $4 + i64.mul + local.set $4 + local.get $5 + i32.const 1 + i32.shl + local.set $5 + br $while-continue|0 + end + end + loop $while-continue|1 + local.get $0 + i64.const 1 + i64.ge_u + local.set $2 + local.get $2 + if + local.get $0 local.get $3 - call $~lib/util/string/isSpace - else - i32.const 0 + i64.div_u + local.set $0 + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $while-continue|1 end + end + local.get $5 + i32.const 1 + i32.sub + ) + (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 i64) + (local $7 i32) + local.get $3 + i64.extend_i32_s + local.set $4 + local.get $3 + local.get $3 + i32.const 1 + i32.sub + i32.and + i32.const 0 + i32.eq + if + local.get $3 + i32.ctz + i32.const 7 + i32.and + i64.extend_i32_s local.set $5 - local.get $5 - if + local.get $4 + i64.const 1 + i64.sub + local.set $6 + loop $do-continue|0 + local.get $2 + i32.const 1 + i32.sub + local.set $2 + local.get $0 + local.get $2 + i32.const 1 + i32.shl + i32.add + i32.const 16016 + local.get $1 + local.get $6 + i64.and + i32.wrap_i64 + i32.const 1 + i32.shl + i32.add + i32.load16_u + i32.store16 + local.get $1 + local.get $5 + i64.shr_u + local.set $1 + local.get $1 + i64.const 0 + i64.ne + local.set $7 + local.get $7 + br_if $do-continue|0 + end + else + loop $do-continue|1 + local.get $2 + i32.const 1 + i32.sub + local.set $2 + local.get $1 + local.get $4 + i64.div_u + local.set $6 + local.get $0 local.get $2 - i32.const 2 + i32.const 1 + i32.shl i32.add - local.tee $2 - i32.load16_u - local.set $3 + i32.const 16016 local.get $1 + local.get $6 + local.get $4 + i64.mul + i64.sub + i32.wrap_i64 i32.const 1 - i32.sub + i32.shl + i32.add + i32.load16_u + i32.store16 + local.get $6 local.set $1 - br $while-continue|0 + local.get $1 + i64.const 0 + i64.ne + local.set $7 + local.get $7 + br_if $do-continue|1 end end - local.get $1 - i32.eqz - if - f64.const nan:0x8000000000000 - local.set $26 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $26 - return - end - local.get $3 - i32.const 45 - i32.eq + ) + (func $~lib/util/number/decimalCount64High (param $0 i64) (result i32) + local.get $0 + i64.const 1000000000000000 + i64.lt_u if - local.get $1 - i32.const 1 - i32.sub - local.tee $1 - i32.eqz + local.get $0 + i64.const 1000000000000 + i64.lt_u if - f64.const nan:0x8000000000000 - local.set $26 - global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 10 + local.get $0 + i64.const 100000000000 + i64.ge_u + i32.add + local.get $0 + i64.const 10000000000 + i64.ge_u + i32.add + return + else + i32.const 13 + local.get $0 + i64.const 100000000000000 + i64.ge_u + i32.add + local.get $0 + i64.const 10000000000000 + i64.ge_u i32.add - global.set $~lib/memory/__stack_pointer - local.get $26 return end - local.get $2 - i32.const 2 - i32.add - local.tee $2 - i32.load16_u - local.set $3 - f64.const -1 - local.set $4 + unreachable else - local.get $3 - i32.const 43 - i32.eq + local.get $0 + i64.const 100000000000000000 + i64.lt_u if - local.get $1 - i32.const 1 - i32.sub - local.tee $1 - i32.eqz - if - f64.const nan:0x8000000000000 - local.set $26 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $26 - return - end - local.get $2 - i32.const 2 + i32.const 16 + local.get $0 + i64.const 10000000000000000 + i64.ge_u i32.add - local.tee $2 - i32.load16_u - local.set $3 - end - end - local.get $1 - i32.const 8 - i32.ge_s - if (result i32) - local.get $3 - i32.const 73 - i32.eq - else - i32.const 0 - end - if - local.get $2 - i64.load - i64.const 29555310648492105 - i64.eq - if (result i32) - local.get $2 - i64.load offset=8 - i64.const 34058970405077102 - i64.eq + return else - i32.const 0 - end - if - f64.const inf - local.get $4 - f64.mul - local.set $26 - global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 18 + local.get $0 + i64.const -8446744073709551616 + i64.ge_u + i32.add + local.get $0 + i64.const 1000000000000000000 + i64.ge_u i32.add - global.set $~lib/memory/__stack_pointer - local.get $26 return end - f64.const nan:0x8000000000000 - local.set $26 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $26 - return - end - local.get $3 - i32.const 46 - i32.ne - if (result i32) - local.get $3 - i32.const 48 - i32.sub - i32.const 10 - i32.ge_u - else - i32.const 0 - end - if - f64.const nan:0x8000000000000 - local.set $26 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $26 - return + unreachable end - local.get $2 - local.set $6 - loop $while-continue|1 + unreachable + ) + (func $~lib/util/number/utoa64_dec_lut (param $0 i32) (param $1 i64) (param $2 i32) + (local $3 i32) + (local $4 i64) + (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 i64) + loop $while-continue|0 + local.get $1 + i64.const 100000000 + i64.ge_u + local.set $3 local.get $3 - i32.const 48 - i32.eq - local.set $5 - local.get $5 if + local.get $1 + i64.const 100000000 + i64.div_u + local.set $4 + local.get $1 + local.get $4 + i64.const 100000000 + i64.mul + i64.sub + i32.wrap_i64 + local.set $5 + local.get $4 + local.set $1 + local.get $5 + i32.const 10000 + i32.div_u + local.set $6 + local.get $5 + i32.const 10000 + i32.rem_u + local.set $7 + local.get $6 + i32.const 100 + i32.div_u + local.set $8 + local.get $6 + i32.const 100 + i32.rem_u + local.set $9 + local.get $7 + i32.const 100 + i32.div_u + local.set $10 + local.get $7 + i32.const 100 + i32.rem_u + local.set $11 + i32.const 14540 + local.get $10 + i32.const 2 + i32.shl + i32.add + i64.load32_u + local.set $12 + i32.const 14540 + local.get $11 + i32.const 2 + i32.shl + i32.add + i64.load32_u + local.set $13 + local.get $2 + i32.const 4 + i32.sub + local.set $2 + local.get $0 local.get $2 + i32.const 1 + i32.shl + i32.add + local.get $12 + local.get $13 + i64.const 32 + i64.shl + i64.or + i64.store + i32.const 14540 + local.get $8 i32.const 2 + i32.shl i32.add - local.tee $2 - i32.load16_u - local.set $3 - local.get $1 - i32.const 1 + i64.load32_u + local.set $12 + i32.const 14540 + local.get $9 + i32.const 2 + i32.shl + i32.add + i64.load32_u + local.set $13 + local.get $2 + i32.const 4 i32.sub - local.set $1 - br $while-continue|1 + local.set $2 + local.get $0 + local.get $2 + i32.const 1 + i32.shl + i32.add + local.get $12 + local.get $13 + 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/genDigits (param $0 i32) (param $1 i64) (param $2 i32) (param $3 i64) (param $4 i32) (param $5 i64) (param $6 i32) (result i32) + (local $7 i32) + (local $8 i64) + (local $9 i64) + (local $10 i64) + (local $11 i32) + (local $12 i64) + (local $13 i32) + (local $14 i32) + (local $15 i32) + (local $16 i32) + (local $17 i32) + (local $18 i64) + (local $19 i64) + (local $20 i64) + (local $21 i64) + (local $22 i64) + (local $23 i32) + (local $24 i32) + (local $25 i32) + (local $26 i32) + (local $27 i64) i32.const 0 - i32.le_s - if - f64.const 0 - local.set $26 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $26 - return - end - i32.const 0 + local.get $4 + i32.sub local.set $7 - i32.const 0 + i64.const 1 + local.get $7 + i64.extend_i32_s + i64.shl local.set $8 - i32.const 0 + local.get $8 + i64.const 1 + i64.sub local.set $9 - i64.const 0 + local.get $3 + local.get $1 + i64.sub local.set $10 local.get $3 - i32.const 46 - i32.eq - if - local.get $6 - local.get $2 - i32.sub - i32.eqz - local.set $5 - local.get $2 - i32.const 2 - i32.add - local.set $2 - local.get $1 - i32.const 1 - i32.sub - local.set $1 - local.get $1 - i32.eqz - if (result i32) - local.get $5 - else - i32.const 0 - end + local.get $7 + i64.extend_i32_s + i64.shr_u + i32.wrap_i64 + local.set $11 + local.get $3 + local.get $9 + i64.and + local.set $12 + local.get $11 + call $~lib/util/number/decimalCount32 + local.set $13 + local.get $6 + local.set $14 + loop $while-continue|0 + local.get $13 + i32.const 0 + i32.gt_s + local.set $15 + local.get $15 if - f64.const nan:0x8000000000000 - local.set $26 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $26 - return - end - i32.const 1 - local.set $7 - loop $for-loop|2 - local.get $2 - i32.load16_u - local.tee $3 - i32.const 48 - i32.eq - local.set $11 - local.get $11 + 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 $13 + local.set $17 + local.get $17 + i32.const 10 + i32.eq + br_if $case0|1 + local.get $17 + i32.const 9 + i32.eq + br_if $case1|1 + local.get $17 + i32.const 8 + i32.eq + br_if $case2|1 + local.get $17 + i32.const 7 + i32.eq + br_if $case3|1 + local.get $17 + i32.const 6 + i32.eq + br_if $case4|1 + local.get $17 + i32.const 5 + i32.eq + br_if $case5|1 + local.get $17 + i32.const 4 + i32.eq + br_if $case6|1 + local.get $17 + i32.const 3 + i32.eq + br_if $case7|1 + local.get $17 + i32.const 2 + i32.eq + br_if $case8|1 + local.get $17 + i32.const 1 + i32.eq + br_if $case9|1 + br $case10|1 + end + local.get $11 + i32.const 1000000000 + i32.div_u + local.set $16 + local.get $11 + i32.const 1000000000 + i32.rem_u + local.set $11 + br $break|1 + end + local.get $11 + i32.const 100000000 + i32.div_u + local.set $16 + local.get $11 + i32.const 100000000 + i32.rem_u + local.set $11 + br $break|1 + end + local.get $11 + i32.const 10000000 + i32.div_u + local.set $16 + local.get $11 + i32.const 10000000 + i32.rem_u + local.set $11 + br $break|1 + end + local.get $11 + i32.const 1000000 + i32.div_u + local.set $16 + local.get $11 + i32.const 1000000 + i32.rem_u + local.set $11 + br $break|1 + end + local.get $11 + i32.const 100000 + i32.div_u + local.set $16 + local.get $11 + i32.const 100000 + i32.rem_u + local.set $11 + br $break|1 + end + local.get $11 + i32.const 10000 + i32.div_u + local.set $16 + local.get $11 + i32.const 10000 + i32.rem_u + local.set $11 + br $break|1 + end + local.get $11 + i32.const 1000 + i32.div_u + local.set $16 + local.get $11 + i32.const 1000 + i32.rem_u + local.set $11 + br $break|1 + end + local.get $11 + i32.const 100 + i32.div_u + local.set $16 + local.get $11 + i32.const 100 + i32.rem_u + local.set $11 + br $break|1 + end + local.get $11 + i32.const 10 + i32.div_u + local.set $16 + local.get $11 + i32.const 10 + i32.rem_u + local.set $11 + br $break|1 + end + local.get $11 + local.set $16 + i32.const 0 + local.set $11 + br $break|1 + end + i32.const 0 + local.set $16 + br $break|1 + end + local.get $16 + local.get $14 + i32.or if - local.get $1 + local.get $0 + local.get $14 + local.tee $17 i32.const 1 - i32.sub - local.set $1 - local.get $9 + i32.add + local.set $14 + local.get $17 i32.const 1 - i32.sub - local.set $9 - local.get $2 - i32.const 2 + i32.shl i32.add - local.set $2 - br $for-loop|2 + i32.const 48 + local.get $16 + i32.const 65535 + i32.and + i32.add + i32.store16 end - end - local.get $1 - i32.const 0 - i32.le_s - if - f64.const 0 - local.set $26 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $26 - return - end - local.get $9 - i32.eqz - if (result i32) - local.get $5 - else - i32.const 0 - end - if (result i32) - local.get $3 - i32.const 48 + local.get $13 + i32.const 1 i32.sub - i32.const 10 - i32.ge_u - else - i32.const 0 - end - if - f64.const nan:0x8000000000000 - local.set $26 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $26 - return - end - end - local.get $3 - i32.const 48 - i32.sub - local.set $5 - block $for-break3 - loop $for-loop|3 - local.get $5 - i32.const 10 - i32.lt_u - if (result i32) - i32.const 1 - else - local.get $3 - i32.const 46 - i32.eq - if (result i32) - local.get $7 - i32.eqz - else - i32.const 0 - end - end - local.set $11 + local.set $13 local.get $11 + i64.extend_i32_u + local.get $7 + i64.extend_i32_s + i64.shl + local.get $12 + i64.add + local.set $18 + local.get $18 + local.get $5 + i64.le_u if + global.get $~lib/util/number/_K + local.get $13 + i32.add + global.set $~lib/util/number/_K + local.get $0 + local.set $23 + local.get $14 + local.set $17 local.get $5 - i32.const 10 - i32.lt_u - if - local.get $8 - i32.const 19 - i32.lt_s - if (result i64) - i64.const 10 - local.get $10 - i64.mul - local.get $5 - i64.extend_i32_u + local.set $22 + local.get $18 + local.set $21 + i32.const 22528 + local.get $13 + i32.const 2 + i32.shl + i32.add + i64.load32_u + local.get $7 + i64.extend_i32_s + i64.shl + local.set $20 + local.get $10 + local.set $19 + local.get $23 + local.get $17 + i32.const 1 + i32.sub + i32.const 1 + i32.shl + i32.add + local.set $24 + local.get $24 + i32.load16_u + local.set $25 + loop $while-continue|3 + local.get $21 + local.get $19 + i64.lt_u + if (result i32) + local.get $22 + local.get $21 + i64.sub + local.get $20 + i64.ge_u + else + i32.const 0 + end + if (result i32) + local.get $21 + local.get $20 i64.add + local.get $19 + i64.lt_u + if (result i32) + i32.const 1 + else + local.get $19 + local.get $21 + i64.sub + local.get $21 + local.get $20 + i64.add + local.get $19 + i64.sub + i64.gt_u + end else - local.get $10 - local.get $5 - i32.eqz - i32.eqz - i64.extend_i32_u - i64.or + i32.const 0 + end + local.set $26 + local.get $26 + if + local.get $25 + i32.const 1 + i32.sub + local.set $25 + local.get $21 + local.get $20 + i64.add + local.set $21 + br $while-continue|3 end - local.set $10 - local.get $8 - i32.const 1 - i32.add - local.set $8 - else - local.get $8 - local.set $9 - i32.const 1 - local.set $7 - end - local.get $1 - i32.const 1 - i32.sub - local.tee $1 - i32.eqz - if - br $for-break3 end - local.get $2 - i32.const 2 - i32.add - local.tee $2 - i32.load16_u - local.set $3 - local.get $3 - i32.const 48 - i32.sub - local.set $5 - br $for-loop|3 + local.get $24 + local.get $25 + i32.store16 + local.get $14 + return end + br $while-continue|0 end end - local.get $7 - i32.eqz - if - local.get $8 - local.set $9 - end - block $~lib/util/string/scientific|inlined.0 (result f64) - local.get $10 - local.set $17 - local.get $9 - i32.const 19 - local.tee $11 - local.get $8 - local.tee $5 - local.get $11 - local.get $5 - i32.lt_s - select - i32.sub - block $~lib/util/string/parseExp|inlined.0 (result i32) - local.get $2 - local.set $11 - local.get $1 - local.set $5 - i32.const 1 + loop $while-continue|4 + i32.const 1 + local.set $15 + local.get $15 + if + local.get $12 + i64.const 10 + i64.mul local.set $12 - i32.const 0 - local.set $13 - local.get $11 - i32.load16_u - local.set $14 + local.get $5 + i64.const 10 + i64.mul + local.set $5 + local.get $12 + local.get $7 + i64.extend_i32_s + i64.shr_u + local.set $22 + local.get $22 local.get $14 - i32.const 32 - i32.or - i32.const 101 - i32.ne + i64.extend_i32_s + i64.or + i64.const 0 + i64.ne if - i32.const 0 - br $~lib/util/string/parseExp|inlined.0 + local.get $0 + local.get $14 + local.tee $25 + i32.const 1 + i32.add + local.set $14 + local.get $25 + i32.const 1 + i32.shl + i32.add + i32.const 48 + local.get $22 + i32.wrap_i64 + i32.const 65535 + i32.and + i32.add + i32.store16 end - local.get $5 + local.get $12 + local.get $9 + i64.and + local.set $12 + local.get $13 i32.const 1 i32.sub - local.tee $5 - i32.eqz + local.set $13 + local.get $12 + local.get $5 + i64.lt_u if + global.get $~lib/util/number/_K + local.get $13 + i32.add + global.set $~lib/util/number/_K + local.get $10 + i32.const 22528 i32.const 0 - br $~lib/util/string/parseExp|inlined.0 - end - local.get $11 - i32.const 2 - i32.add - local.tee $11 - i32.load16_u - local.set $14 - local.get $14 - i32.const 45 - i32.eq - if + local.get $13 + i32.sub + i32.const 2 + i32.shl + i32.add + i64.load32_u + i64.mul + local.set $10 + local.get $0 + local.set $17 + local.get $14 + local.set $26 local.get $5 + local.set $27 + local.get $12 + local.set $21 + local.get $8 + local.set $20 + local.get $10 + local.set $19 + local.get $17 + local.get $26 i32.const 1 i32.sub - local.tee $5 - i32.eqz - if - i32.const 0 - br $~lib/util/string/parseExp|inlined.0 - end - local.get $11 - i32.const 2 + i32.const 1 + i32.shl i32.add - local.tee $11 + local.set $25 + local.get $25 i32.load16_u - local.set $14 - i32.const -1 - local.set $12 - else - local.get $14 - i32.const 43 - i32.eq - if - local.get $5 - i32.const 1 - i32.sub - local.tee $5 - i32.eqz - if - i32.const 0 - br $~lib/util/string/parseExp|inlined.0 - end - local.get $11 - i32.const 2 - i32.add - local.tee $11 - i32.load16_u - local.set $14 - end - end - loop $while-continue|4 - local.get $14 - i32.const 48 - i32.eq - local.set $15 - local.get $15 - if - local.get $5 - i32.const 1 - i32.sub - local.tee $5 - i32.eqz - if + local.set $24 + loop $while-continue|6 + local.get $21 + local.get $19 + i64.lt_u + if (result i32) + local.get $27 + local.get $21 + i64.sub + local.get $20 + i64.ge_u + else i32.const 0 - br $~lib/util/string/parseExp|inlined.0 end - local.get $11 - i32.const 2 - i32.add - local.tee $11 - i32.load16_u - local.set $14 - br $while-continue|4 - end - end - local.get $14 - i32.const 48 - i32.sub - local.set $15 - loop $for-loop|5 - local.get $5 - if (result i32) - local.get $15 - i32.const 10 - i32.lt_u - else - i32.const 0 - end - local.set $16 - local.get $16 - if - local.get $13 - i32.const 3200 - i32.ge_s + if (result i32) + local.get $21 + local.get $20 + i64.add + local.get $19 + i64.lt_u + if (result i32) + i32.const 1 + else + local.get $19 + local.get $21 + i64.sub + local.get $21 + local.get $20 + i64.add + local.get $19 + i64.sub + i64.gt_u + end + else + i32.const 0 + end + local.set $23 + local.get $23 if - local.get $12 - i32.const 3200 - i32.mul - br $~lib/util/string/parseExp|inlined.0 + local.get $24 + i32.const 1 + i32.sub + local.set $24 + local.get $21 + local.get $20 + i64.add + local.set $21 + br $while-continue|6 end - i32.const 10 - local.get $13 - i32.mul - local.get $15 - i32.add - local.set $13 - local.get $11 - i32.const 2 - i32.add - local.tee $11 - i32.load16_u - local.set $14 - local.get $5 - i32.const 1 - i32.sub - local.set $5 - local.get $14 - i32.const 48 - i32.sub - local.set $15 - br $for-loop|5 end + local.get $25 + local.get $24 + i32.store16 + local.get $14 + return end - local.get $12 - local.get $13 - i32.mul + br $while-continue|4 end + end + unreachable + ) + (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) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + local.get $2 + i32.eqz + if + local.get $0 + local.get $1 + i32.const 1 + i32.shl i32.add - local.set $16 - local.get $17 - i64.const 0 - i64.ne - i32.eqz - if (result i32) - i32.const 1 - else - local.get $16 - i32.const -342 + i32.const 46 + i32.const 48 + i32.const 16 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 2 + i32.add + return + end + local.get $1 + local.get $2 + i32.add + local.set $3 + local.get $1 + local.get $3 + i32.le_s + if (result i32) + local.get $3 + i32.const 21 + i32.le_s + else + i32.const 0 + end + if + local.get $1 + local.set $4 + loop $for-loop|0 + local.get $4 + local.get $3 i32.lt_s + local.set $5 + local.get $5 + if + local.get $0 + local.get $4 + i32.const 1 + i32.shl + i32.add + i32.const 48 + i32.store16 + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $for-loop|0 + end end - if - f64.const 0 - br $~lib/util/string/scientific|inlined.0 - end - local.get $16 - i32.const 308 - i32.gt_s - if - f64.const inf - br $~lib/util/string/scientific|inlined.0 - end - local.get $17 - f64.convert_i64_u - local.set $18 - local.get $16 - i32.eqz - if - local.get $18 - br $~lib/util/string/scientific|inlined.0 - end - local.get $16 - i32.const 22 + local.get $0 + local.get $3 + i32.const 1 + i32.shl + i32.add + i32.const 46 + i32.const 48 + i32.const 16 + i32.shl + i32.or + i32.store + local.get $3 + i32.const 2 + i32.add + return + else + local.get $3 + i32.const 0 i32.gt_s if (result i32) - local.get $16 - i32.const 22 - i32.const 15 - i32.add + local.get $3 + i32.const 21 i32.le_s else i32.const 0 end if - local.get $18 - local.get $16 - i32.const 22 - i32.sub - local.set $15 - i32.const 3072 - local.get $15 - i32.const 3 + local.get $0 + local.get $3 + i32.const 1 i32.shl i32.add - f64.load - f64.mul - local.set $18 - i32.const 22 - local.set $16 - end - local.get $17 - i64.const 9007199254740991 - i64.le_u - if (result i32) - local.get $16 - local.tee $15 - i32.const 31 - i32.shr_s - local.tee $14 - local.get $15 + local.set $4 + local.get $4 + i32.const 2 i32.add - local.get $14 - i32.xor - i32.const 22 - i32.le_s - else - i32.const 0 - end - if - local.get $16 - i32.const 0 - i32.gt_s - if - local.get $18 - local.get $16 - local.set $5 - i32.const 3072 - local.get $5 - i32.const 3 - i32.shl - i32.add - f64.load - f64.mul - br $~lib/util/string/scientific|inlined.0 - end - local.get $18 + local.get $4 i32.const 0 - local.get $16 + local.get $2 i32.sub - local.set $11 - i32.const 3072 - local.get $11 - i32.const 3 + i32.const 1 + i32.shl + call $~lib/memory/memory.copy + local.get $0 + local.get $3 + i32.const 1 i32.shl i32.add - f64.load - f64.div - br $~lib/util/string/scientific|inlined.0 + i32.const 46 + i32.store16 + local.get $1 + i32.const 1 + i32.add + return else - local.get $16 - i32.const 0 + i32.const -6 + local.get $3 i32.lt_s + if (result i32) + local.get $3 + i32.const 0 + i32.le_s + else + i32.const 0 + end if - local.get $17 - local.set $19 - local.get $16 - local.set $12 - local.get $19 - i64.clz - local.set $20 - local.get $19 - local.get $20 - i64.shl - local.set $19 - local.get $12 - i64.extend_i32_s - local.get $20 - i64.sub - local.set $20 - loop $for-loop|6 - local.get $12 - i32.const -14 - i32.le_s - local.set $11 - local.get $11 + i32.const 2 + local.get $3 + i32.sub + local.set $4 + local.get $0 + local.get $4 + i32.const 1 + i32.shl + i32.add + local.get $0 + local.get $1 + i32.const 1 + i32.shl + call $~lib/memory/memory.copy + local.get $0 + i32.const 48 + i32.const 46 + i32.const 16 + i32.shl + i32.or + i32.store + i32.const 2 + local.set $5 + loop $for-loop|1 + local.get $5 + local.get $4 + i32.lt_s + local.set $6 + local.get $6 if - local.get $19 - i64.const 6103515625 - i64.div_u - local.set $21 - local.get $19 - i64.const 6103515625 - i64.rem_u - local.set $22 - local.get $21 - i64.clz - local.set $23 - local.get $21 - local.get $23 - i64.shl - f64.const 0.00004294967296 - local.get $22 - local.get $23 - i64.const 18 - i64.sub - i64.shl - f64.convert_i64_u - f64.mul - f64.nearest - i64.trunc_f64_u - i64.add - local.set $19 - local.get $20 - local.get $23 - i64.sub - local.set $20 - local.get $12 - i32.const 14 + local.get $0 + local.get $5 + i32.const 1 + i32.shl i32.add - local.set $12 - br $for-loop|6 + i32.const 48 + i32.store16 + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|1 end end - i32.const 5 - i32.const 0 - local.get $12 - i32.sub - call $~lib/math/ipow32 - i64.extend_i32_s - local.set $23 - local.get $19 - local.get $23 - i64.div_u - local.set $22 - local.get $19 - local.get $23 - i64.rem_u - local.set $21 - local.get $22 - i64.clz - local.set $24 - local.get $22 - local.get $24 - i64.shl - local.get $21 - f64.convert_i64_u - i64.reinterpret_f64 - local.get $24 - i64.const 52 - i64.shl - i64.add - f64.reinterpret_i64 - local.get $23 - f64.convert_i64_u - f64.div - i64.trunc_f64_u - i64.add - local.set $19 - local.get $20 - local.get $24 - i64.sub - local.set $20 - local.get $19 - f64.convert_i64_u - local.get $20 - i32.wrap_i64 - call $~lib/math/NativeMath.scalbn - br $~lib/util/string/scientific|inlined.0 + local.get $1 + local.get $4 + i32.add + return else - local.get $17 - local.set $19 - local.get $16 - local.set $13 - local.get $19 - i64.ctz - local.set $24 - local.get $19 - local.get $24 - i64.shr_u - local.set $19 - local.get $24 - local.get $13 - i64.extend_i32_s - i64.add - local.set $24 - local.get $24 - global.set $~lib/util/string/__fixmulShift - loop $for-loop|7 - local.get $13 - i32.const 13 + 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.set $5 + local.get $3 + i32.const 1 + i32.sub + local.set $6 + local.get $6 + i32.const 0 + i32.lt_s + local.set $4 + local.get $4 + if + i32.const 0 + local.get $6 + i32.sub + local.set $6 + end + local.get $6 + call $~lib/util/number/decimalCount32 + i32.const 1 + i32.add + local.set $7 + local.get $5 + local.set $10 + local.get $6 + local.set $9 + local.get $7 + local.set $8 + i32.const 0 + i32.const 1 i32.ge_s - local.set $12 - local.get $12 + drop + local.get $10 + local.get $9 + local.get $8 + call $~lib/util/number/utoa32_dec_lut + local.get $5 + i32.const 45 + i32.const 43 + local.get $4 + select + i32.store16 + local.get $7 + local.set $1 + local.get $1 + i32.const 2 + i32.add + return + else + local.get $1 + i32.const 1 + i32.shl + local.set $7 + local.get $0 + i32.const 4 + i32.add + local.get $0 + i32.const 2 + i32.add + local.get $7 + i32.const 2 + i32.sub + call $~lib/memory/memory.copy + local.get $0 + i32.const 46 + i32.store16 offset=2 + local.get $0 + local.get $7 + i32.add + i32.const 101 + i32.store16 offset=2 + local.get $1 + local.get $0 + local.get $7 + i32.add + i32.const 4 + i32.add + local.set $9 + local.get $3 + i32.const 1 + i32.sub + local.set $8 + local.get $8 + i32.const 0 + i32.lt_s + local.set $4 + local.get $4 if - local.get $19 - local.set $20 - i32.const 1220703125 - local.set $14 - local.get $20 - i64.const 4294967295 - i64.and - local.get $14 - i64.extend_i32_u - i64.mul - local.set $21 - local.get $20 - i64.const 32 - i64.shr_u - local.get $14 - i64.extend_i32_u - i64.mul - local.get $21 - i64.const 32 - i64.shr_u - i64.add - local.set $22 - local.get $22 - i64.const 32 - i64.shr_u - i32.wrap_i64 - local.set $11 - local.get $11 - i32.clz - local.set $5 - i64.const 32 - local.get $5 - i64.extend_i32_u - i64.sub - local.set $23 - global.get $~lib/util/string/__fixmulShift - local.get $23 - i64.add - global.set $~lib/util/string/__fixmulShift - local.get $22 - local.get $5 - i64.extend_i32_u - i64.shl - local.get $21 - i64.const 4294967295 - i64.and - local.get $23 - i64.shr_u - i64.or - local.get $21 - local.get $5 - i64.extend_i32_u - i64.shl - i64.const 31 - i64.shr_u - i64.const 1 - i64.and - i64.add - local.set $19 - local.get $13 - i32.const 13 + i32.const 0 + local.get $8 i32.sub - local.set $13 - br $for-loop|7 + local.set $8 end + local.get $8 + call $~lib/util/number/decimalCount32 + i32.const 1 + i32.add + local.set $5 + local.get $9 + local.set $11 + local.get $8 + local.set $6 + local.get $5 + local.set $10 + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $11 + local.get $6 + local.get $10 + call $~lib/util/number/utoa32_dec_lut + local.get $9 + i32.const 45 + i32.const 43 + local.get $4 + select + i32.store16 + local.get $5 + i32.add + local.set $1 + local.get $1 + i32.const 2 + i32.add + return end - local.get $19 - local.set $20 - i32.const 5 - local.get $13 - call $~lib/math/ipow32 - local.set $15 - local.get $20 - i64.const 4294967295 - i64.and - local.get $15 - i64.extend_i32_u - i64.mul - local.set $23 - local.get $20 - i64.const 32 - i64.shr_u - local.get $15 - i64.extend_i32_u - i64.mul - local.get $23 - i64.const 32 - i64.shr_u - i64.add - local.set $22 - local.get $22 - i64.const 32 - i64.shr_u - i32.wrap_i64 - local.set $12 - local.get $12 - i32.clz - local.set $5 - i64.const 32 - local.get $5 - i64.extend_i32_u - i64.sub - local.set $21 - global.get $~lib/util/string/__fixmulShift - local.get $21 - i64.add - global.set $~lib/util/string/__fixmulShift - local.get $22 - local.get $5 - i64.extend_i32_u - i64.shl - local.get $23 - i64.const 4294967295 - i64.and - local.get $21 - i64.shr_u - i64.or - local.get $23 - local.get $5 - i64.extend_i32_u - i64.shl - i64.const 31 - i64.shr_u - i64.const 1 - i64.and - i64.add - local.set $19 - global.get $~lib/util/string/__fixmulShift - local.set $24 - local.get $19 - f64.convert_i64_u - local.get $24 - i32.wrap_i64 - call $~lib/math/NativeMath.scalbn - br $~lib/util/string/scientific|inlined.0 + unreachable end unreachable end unreachable end - local.get $4 - f64.copysign + unreachable + ) + (func $~lib/util/number/dtoa_core (param $0 i32) (param $1 f64) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 f64) + (local $6 i64) + (local $7 i32) + (local $8 i64) + (local $9 i64) + (local $10 i32) + (local $11 i64) + (local $12 i64) + (local $13 i32) + (local $14 i32) + (local $15 i32) + (local $16 f64) + (local $17 i64) + (local $18 i64) + (local $19 i64) + (local $20 i64) + (local $21 i64) + (local $22 i64) + (local $23 i64) + (local $24 i64) + (local $25 i64) + (local $26 i32) + (local $27 i64) + (local $28 i32) + local.get $1 + f64.const 0 + f64.lt + local.set $2 + local.get $2 + if + local.get $1 + f64.neg + local.set $1 + local.get $0 + i32.const 45 + i32.store16 + end + local.get $1 + local.set $5 + local.get $0 + local.set $4 + local.get $2 + local.set $3 + local.get $5 + i64.reinterpret_f64 + local.set $6 + local.get $6 + i64.const 9218868437227405312 + i64.and + i64.const 52 + i64.shr_u + i32.wrap_i64 + local.set $7 + local.get $6 + i64.const 4503599627370495 + i64.and + local.set $8 + local.get $7 + i32.const 0 + i32.ne + i64.extend_i32_u + i64.const 52 + i64.shl + local.get $8 + i64.add + local.set $9 + local.get $7 + i32.const 1 + local.get $7 + select + i32.const 1023 + i32.const 52 + i32.add + i32.sub + local.set $7 + local.get $9 + local.set $11 + local.get $7 + local.set $10 + local.get $11 + i64.const 1 + i64.shl + i64.const 1 + i64.add + local.set $12 + local.get $10 + i32.const 1 + i32.sub + local.set $13 + local.get $12 + i64.clz + i32.wrap_i64 + local.set $14 + local.get $12 + local.get $14 + i64.extend_i32_s + i64.shl + local.set $12 + local.get $13 + local.get $14 + i32.sub + local.set $13 + i32.const 1 + local.get $11 + i64.const 4503599627370496 + i64.eq + i32.add + local.set $15 + local.get $12 + global.set $~lib/util/number/_frc_plus + local.get $11 + local.get $15 + i64.extend_i32_s + i64.shl + i64.const 1 + i64.sub + local.get $10 + local.get $15 + i32.sub + local.get $13 + i32.sub + i64.extend_i32_s + i64.shl + global.set $~lib/util/number/_frc_minus + local.get $13 + global.set $~lib/util/number/_exp + global.get $~lib/util/number/_exp + local.set $10 + i32.const -61 + local.get $10 + i32.sub + f64.convert_i32_s + f64.const 0.30102999566398114 + f64.mul + f64.const 347 + f64.add + local.set $16 + local.get $16 + i32.trunc_f64_s + local.set $15 + local.get $15 + local.get $15 + f64.convert_i32_s + local.get $16 + f64.ne + i32.add + local.set $15 + local.get $15 + i32.const 3 + i32.shr_s + i32.const 1 + i32.add + local.set $14 + i32.const 348 + local.get $14 + i32.const 3 + i32.shl + i32.sub + global.set $~lib/util/number/_K + i32.const 21656 + local.get $14 + i32.const 3 + i32.shl + i32.add + i64.load + global.set $~lib/util/number/_frc_pow + i32.const 22352 + local.get $14 + i32.const 1 + i32.shl + i32.add + i32.load16_s + global.set $~lib/util/number/_exp_pow + local.get $9 + i64.clz + i32.wrap_i64 + local.set $14 + local.get $9 + local.get $14 + i64.extend_i32_s + i64.shl + local.set $9 + local.get $7 + local.get $14 + i32.sub + local.set $7 + global.get $~lib/util/number/_frc_pow + local.set $12 + global.get $~lib/util/number/_exp_pow + local.set $15 + local.get $9 + local.set $17 + local.get $12 + local.set $11 + local.get $17 + i64.const 4294967295 + i64.and + local.set $18 + local.get $11 + i64.const 4294967295 + i64.and + local.set $19 + local.get $17 + i64.const 32 + i64.shr_u + local.set $20 + local.get $11 + i64.const 32 + i64.shr_u + local.set $21 + local.get $18 + local.get $19 + i64.mul + local.set $22 + local.get $20 + local.get $19 + i64.mul + local.get $22 + i64.const 32 + i64.shr_u + i64.add + local.set $23 + local.get $18 + local.get $21 + i64.mul + local.get $23 + i64.const 4294967295 + i64.and + i64.add + local.set $24 + local.get $24 + i64.const 2147483647 + i64.add + local.set $24 + local.get $23 + i64.const 32 + i64.shr_u + local.set $23 + local.get $24 + i64.const 32 + i64.shr_u + local.set $24 + local.get $20 + local.get $21 + i64.mul + local.get $23 + i64.add + local.get $24 + i64.add + local.set $24 + local.get $7 + local.set $10 + local.get $15 + local.set $13 + local.get $10 + local.get $13 + i32.add + i32.const 64 + i32.add + local.set $10 + global.get $~lib/util/number/_frc_plus + local.set $17 + local.get $12 + local.set $11 + local.get $17 + i64.const 4294967295 + i64.and + local.set $23 + local.get $11 + i64.const 4294967295 + i64.and + local.set $22 + local.get $17 + i64.const 32 + i64.shr_u + local.set $21 + local.get $11 + i64.const 32 + i64.shr_u + local.set $20 + local.get $23 + local.get $22 + i64.mul + local.set $19 + local.get $21 + local.get $22 + i64.mul + local.get $19 + i64.const 32 + i64.shr_u + i64.add + local.set $18 + local.get $23 + local.get $20 + i64.mul + local.get $18 + i64.const 4294967295 + i64.and + i64.add + local.set $25 + local.get $25 + i64.const 2147483647 + i64.add + local.set $25 + local.get $18 + i64.const 32 + i64.shr_u + local.set $18 + local.get $25 + i64.const 32 + i64.shr_u + local.set $25 + local.get $21 + local.get $20 + i64.mul + local.get $18 + i64.add + local.get $25 + i64.add + i64.const 1 + i64.sub + local.set $25 + global.get $~lib/util/number/_exp local.set $26 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer + local.get $15 + local.set $13 local.get $26 - ) - (func $~lib/string/parseFloat (param $0 i32) (result f64) - (local $1 i32) - (local $2 f64) - 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 $0 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $1 - call $~lib/util/string/strtod - local.set $2 - global.get $~lib/memory/__stack_pointer - i32.const 4 + local.get $13 i32.add - global.set $~lib/memory/__stack_pointer - local.get $2 - ) - (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) - 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 $1 - i32.const 0 - i32.eq - if - global.get $~lib/memory/__stack_pointer - i32.const 944 - local.tee $1 - i32.store - end - local.get $0 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - call $~lib/string/String#get:length - i32.const 1 - i32.shl - local.set $2 - local.get $1 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - call $~lib/string/String#get:length - i32.const 1 - i32.shl - local.set $3 - local.get $2 - local.get $3 + i32.const 64 i32.add - local.set $4 - local.get $4 - i32.const 0 - i32.eq - if - i32.const 688 - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - return - end - global.get $~lib/memory/__stack_pointer + local.set $26 + global.get $~lib/util/number/_frc_minus + local.set $17 + local.get $12 + local.set $11 + local.get $17 + i64.const 4294967295 + i64.and + local.set $18 + local.get $11 + i64.const 4294967295 + i64.and + local.set $19 + local.get $17 + i64.const 32 + i64.shr_u + local.set $20 + local.get $11 + i64.const 32 + i64.shr_u + local.set $21 + local.get $18 + local.get $19 + i64.mul + local.set $22 + local.get $20 + local.get $19 + i64.mul + local.get $22 + i64.const 32 + i64.shr_u + i64.add + local.set $23 + local.get $18 + local.get $21 + i64.mul + local.get $23 + i64.const 4294967295 + i64.and + i64.add + local.set $27 + local.get $27 + i64.const 2147483647 + i64.add + local.set $27 + local.get $23 + i64.const 32 + i64.shr_u + local.set $23 + local.get $27 + i64.const 32 + i64.shr_u + local.set $27 + local.get $20 + local.get $21 + i64.mul + local.get $23 + i64.add + local.get $27 + i64.add + i64.const 1 + i64.add + local.set $27 + local.get $25 + local.get $27 + i64.sub + local.set $23 local.get $4 - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $5 - i32.store offset=8 - local.get $5 - local.get $0 - local.get $2 - call $~lib/memory/memory.copy - local.get $5 - local.get $2 - i32.add - local.get $1 - local.get $3 - call $~lib/memory/memory.copy - local.get $5 - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - ) - (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 - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - local.get $0 - i32.const 944 - local.get $0 - i32.const 0 - i32.ne - select - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $2 - local.get $1 - 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 - ) - (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 - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - local.get $0 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $2 - local.get $1 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 + local.get $24 + local.get $10 + local.get $25 + local.get $26 + local.get $23 + local.get $3 + call $~lib/util/number/genDigits + local.set $28 + local.get $0 local.get $2 - call $~lib/string/String.__eq - i32.eqz - local.set $2 - global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 1 + i32.shl i32.add - global.set $~lib/memory/__stack_pointer + local.get $28 local.get $2 - ) - (func $~lib/string/String.__gt (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 - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - local.get $0 - local.get $1 - i32.eq - if (result i32) - i32.const 1 - else - local.get $0 - i32.const 0 - i32.eq - end - if (result i32) - i32.const 1 - else - local.get $1 - i32.const 0 - i32.eq - end - if - i32.const 0 - local.set $7 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $7 - return - end - local.get $0 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store - local.get $7 - call $~lib/string/String#get:length - local.set $2 - local.get $2 - i32.eqz - if - i32.const 0 - local.set $7 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $7 - return - end - local.get $1 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store - local.get $7 - call $~lib/string/String#get:length - local.set $3 - local.get $3 - i32.eqz - if - i32.const 1 - local.set $7 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $7 - return - end - local.get $0 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store - local.get $7 - i32.const 0 - local.get $1 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - i32.const 0 + global.get $~lib/util/number/_K + call $~lib/util/number/prettify + local.set $28 + local.get $28 local.get $2 - local.tee $4 - local.get $3 - local.tee $5 - local.get $4 - local.get $5 - i32.lt_s - select - call $~lib/util/string/compareImpl - local.set $6 - local.get $6 - if (result i32) - local.get $6 - i32.const 0 - i32.gt_s - else - local.get $2 - local.get $3 - i32.gt_s - end - local.set $7 - global.get $~lib/memory/__stack_pointer - i32.const 8 i32.add - global.set $~lib/memory/__stack_pointer - local.get $7 ) - (func $~lib/string/String.__lt (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 - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - local.get $0 - local.get $1 - i32.eq - if (result i32) - i32.const 1 - else - local.get $0 - i32.const 0 - i32.eq - end - if (result i32) - i32.const 1 - else - local.get $1 - i32.const 0 - i32.eq - end + (func $~lib/rt/itcms/__collect + (local $0 i32) + i32.const 0 + drop + global.get $~lib/rt/itcms/state + i32.const 0 + i32.gt_s if - i32.const 0 - local.set $7 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $7 - return + loop $while-continue|0 + global.get $~lib/rt/itcms/state + i32.const 0 + i32.ne + local.set $0 + local.get $0 + if + call $~lib/rt/itcms/step + drop + br $while-continue|0 + end + end end - local.get $1 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store - local.get $7 - call $~lib/string/String#get:length - local.set $2 - local.get $2 - i32.eqz - if + call $~lib/rt/itcms/step + drop + loop $while-continue|1 + global.get $~lib/rt/itcms/state i32.const 0 - local.set $7 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $7 - return - end - local.get $0 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store - local.get $7 - call $~lib/string/String#get:length - local.set $3 - local.get $3 - i32.eqz - if - i32.const 1 - local.set $7 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $7 - return - end - local.get $0 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store - local.get $7 + i32.ne + local.set $0 + local.get $0 + 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.const 0 - local.get $1 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 + drop i32.const 0 - local.get $3 - local.tee $4 - local.get $2 - local.tee $5 - local.get $4 - local.get $5 - i32.lt_s - select - call $~lib/util/string/compareImpl - local.set $6 - local.get $6 if (result i32) - local.get $6 - i32.const 0 - i32.lt_s + i32.const 1 else - local.get $3 - local.get $2 - i32.lt_s + i32.const 0 end - local.set $7 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $7 + drop ) - (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 - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store + (func $std/string/getString (result i32) + global.get $std/string/str + ) + (func $~lib/rt/__visit_globals (param $0 i32) + (local $1 i32) + global.get $std/string/str + local.tee $1 + if + local.get $1 + local.get $0 + call $~lib/rt/itcms/__visit + end + global.get $std/string/nullStr + local.tee $1 + if + local.get $1 + local.get $0 + call $~lib/rt/itcms/__visit + end + i32.const 240 local.get $0 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $2 - local.get $1 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - call $~lib/string/String.__lt - i32.eqz - local.set $2 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $2 + call $~lib/rt/itcms/__visit + i32.const 12384 + local.get $0 + call $~lib/rt/itcms/__visit + i32.const 14032 + local.get $0 + call $~lib/rt/itcms/__visit + i32.const 352 + local.get $0 + call $~lib/rt/itcms/__visit + i32.const 14960 + local.get $0 + call $~lib/rt/itcms/__visit + i32.const 16016 + local.get $0 + call $~lib/rt/itcms/__visit ) - (func $~lib/string/String.__lte (param $0 i32) (param $1 i32) (result i32) + (func $~lib/arraybuffer/ArrayBufferView~visit (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 - call $~stack_check - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store local.get $0 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $2 - local.get $1 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - call $~lib/string/String.__gt - i32.eqz - local.set $2 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $2 + i32.load + local.tee $2 + if + local.get $2 + local.get $1 + call $~lib/rt/itcms/__visit + end ) - (func $~lib/string/String#repeat (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array<~lib/string/String>#__visit (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 - call $~stack_check - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store + (local $5 i32) + i32.const 1 + drop local.get $0 - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store - local.get $4 - call $~lib/string/String#get:length + i32.load offset=4 local.set $2 + local.get $2 + local.get $0 + i32.load offset=12 + i32.const 2 + i32.shl + i32.add + local.set $3 + loop $while-continue|0 + local.get $2 + local.get $3 + i32.lt_u + local.set $4 + local.get $4 + if + local.get $2 + i32.load + local.set $5 + local.get $5 + if + local.get $5 + local.get $1 + call $~lib/rt/itcms/__visit + end + local.get $2 + i32.const 4 + i32.add + local.set $2 + br $while-continue|0 + end + end + local.get $0 + i32.load + local.get $1 + call $~lib/rt/itcms/__visit + ) + (func $~lib/array/Array<~lib/string/String>~visit (param $0 i32) (param $1 i32) + local.get $0 local.get $1 + call $~lib/array/Array<~lib/string/String>#__visit + ) + (func $~lib/array/Array#__visit (param $0 i32) (param $1 i32) i32.const 0 - i32.lt_s - if (result i32) - i32.const 1 - else - local.get $2 - i64.extend_i32_s + drop + local.get $0 + i32.load + local.get $1 + call $~lib/rt/itcms/__visit + ) + (func $~lib/array/Array~visit (param $0 i32) (param $1 i32) + 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<~lib/string/String> + block $~lib/arraybuffer/ArrayBufferView + block $~lib/string/String + block $~lib/arraybuffer/ArrayBuffer + local.get $0 + i32.const 8 + i32.sub + i32.load + br_table $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $~lib/array/Array<~lib/string/String> $~lib/array/Array $invalid + 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<~lib/string/String>~visit + return + end + local.get $0 local.get $1 - i64.extend_i32_s - i64.mul - i64.const 1 - i64.const 28 - i64.shl - i64.gt_u + call $~lib/array/Array~visit + return end + unreachable + ) + (func $~start + call $start:std/string + ) + (func $~stack_check + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__data_end + i32.lt_s if - i32.const 12384 - i32.const 304 - i32.const 333 - i32.const 7 + i32.const 40880 + i32.const 40928 + i32.const 1 + i32.const 1 call $~lib/builtins/abort unreachable end - local.get $1 - i32.const 0 - i32.eq - if (result i32) - i32.const 1 - else - local.get $2 - i32.eqz - end - if - i32.const 688 - local.set $4 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $4 - return - end - local.get $1 - i32.const 1 - i32.eq - if - local.get $0 - local.set $4 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $4 - return - end - global.get $~lib/memory/__stack_pointer - local.get $2 - local.get $1 - i32.mul - i32.const 1 - i32.shl - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $3 - i32.store offset=4 - local.get $3 - local.get $0 - local.get $2 - i32.const 1 - i32.shl - local.get $1 - call $~lib/memory/memory.repeat - local.get $3 - local.set $4 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $4 ) - (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) - (local $8 i32) - (local $9 i32) + (func $~lib/string/String.__concat (param $0 i32) (param $1 i32) (result i32) + (local $2 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 - local.get $0 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store - local.get $9 - call $~lib/string/String#get:length - local.set $3 - local.get $1 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 i32.store - local.get $9 - call $~lib/string/String#get:length - local.set $4 - local.get $3 - local.get $4 - i32.le_u - if - local.get $3 - local.get $4 - i32.lt_u - if (result i32) - local.get $0 - else - local.get $2 - local.get $0 - local.get $1 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store - local.get $9 - local.get $0 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - call $~lib/string/String.__eq - select - end - local.set $9 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $9 - return - end local.get $0 - local.set $9 + i32.const 944 + local.get $0 + i32.const 0 + i32.ne + select + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $2 i32.store - local.get $9 + local.get $2 local.get $1 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - i32.const 0 - call $~lib/string/String#indexOf - local.set $5 - local.get $5 - i32.const -1 - i32.xor - if - local.get $2 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store - local.get $9 - call $~lib/string/String#get:length - local.set $6 - local.get $3 - local.get $4 - i32.sub - local.set $3 - local.get $3 - local.get $6 - i32.add - local.set $7 - local.get $7 - if - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.const 1 - i32.shl - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $8 - i32.store offset=8 - local.get $8 - local.get $0 - local.get $5 - i32.const 1 - i32.shl - call $~lib/memory/memory.copy - local.get $8 - local.get $5 - i32.const 1 - i32.shl - i32.add - local.get $2 - local.get $6 - i32.const 1 - i32.shl - call $~lib/memory/memory.copy - local.get $8 - local.get $5 - local.get $6 - i32.add - i32.const 1 - i32.shl - i32.add - local.get $0 - local.get $5 - local.get $4 - i32.add - i32.const 1 - i32.shl - i32.add - local.get $3 - local.get $5 - i32.sub - i32.const 1 - i32.shl - call $~lib/memory/memory.copy - local.get $8 - local.set $9 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $9 - return - end - end - local.get $0 - local.set $9 + call $~lib/string/String#concat + local.set $2 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $9 + local.get $2 ) - (func $~lib/string/String#replaceAll (param $0 i32) (param $1 i32) (param $2 i32) (result 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) @@ -11343,9 +9384,8 @@ (local $13 i32) (local $14 i32) (local $15 i32) - (local $16 i32) global.get $~lib/memory/__stack_pointer - i32.const 16 + i32.const 24 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check @@ -11355,261 +9395,214 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store offset=8 - local.get $0 - local.set $16 - global.get $~lib/memory/__stack_pointer - local.get $16 - i32.store - local.get $16 - call $~lib/string/String#get:length - local.set $3 - local.get $1 - local.set $16 global.get $~lib/memory/__stack_pointer - local.get $16 - i32.store - local.get $16 - call $~lib/string/String#get:length - local.set $4 - local.get $3 - local.get $4 - i32.le_u + i64.const 0 + i64.store offset=16 + local.get $2 + i32.eqz + if + i32.const 0 + i32.const 2 + i32.const 3 + i32.const 0 + call $~lib/rt/__newArray + local.set $15 + global.get $~lib/memory/__stack_pointer + i32.const 24 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $15 + return + end + local.get $1 + i32.const 0 + i32.eq if + global.get $~lib/memory/__stack_pointer + i32.const 1 + i32.const 2 + i32.const 3 + i32.const 0 + call $~lib/rt/__newArray + local.tee $3 + i32.store + global.get $~lib/memory/__stack_pointer local.get $3 - local.get $4 - i32.lt_u - if (result i32) - local.get $0 - else - local.get $2 - local.get $0 - local.get $1 - local.set $16 - global.get $~lib/memory/__stack_pointer - local.get $16 - i32.store - local.get $16 - local.get $0 - local.set $16 - global.get $~lib/memory/__stack_pointer - local.get $16 - i32.store offset=4 - local.get $16 - call $~lib/string/String.__eq - select - end - local.set $16 + i32.load offset=4 + local.tee $4 + i32.store offset=4 + local.get $3 + i32.const 0 + local.get $0 + call $~lib/array/Array<~lib/string/String>#__uset + local.get $3 + local.set $15 global.get $~lib/memory/__stack_pointer - i32.const 16 + i32.const 24 i32.add global.set $~lib/memory/__stack_pointer - local.get $16 + local.get $15 return end - local.get $2 - local.set $16 - global.get $~lib/memory/__stack_pointer - local.get $16 - i32.store - local.get $16 + local.get $0 call $~lib/string/String#get:length local.set $5 - local.get $4 + local.get $1 + call $~lib/string/String#get:length + local.set $6 + local.get $2 + i32.const 0 + i32.lt_s + if + global.get $~lib/builtins/i32.MAX_VALUE + local.set $2 + end + local.get $6 i32.eqz if local.get $5 i32.eqz if - local.get $0 - local.set $16 + i32.const 0 + i32.const 2 + i32.const 3 + i32.const 0 + call $~lib/rt/__newArray + local.set $15 global.get $~lib/memory/__stack_pointer - i32.const 16 + i32.const 24 i32.add global.set $~lib/memory/__stack_pointer - local.get $16 + local.get $15 return end - global.get $~lib/memory/__stack_pointer - local.get $3 - local.get $3 - i32.const 1 - i32.add local.get $5 - i32.mul - i32.add - i32.const 1 - i32.shl - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $6 - i32.store offset=8 - local.get $6 + local.tee $3 local.get $2 + local.tee $4 + local.get $3 + local.get $4 + i32.lt_s + select + local.set $5 + global.get $~lib/memory/__stack_pointer local.get $5 - i32.const 1 - i32.shl - call $~lib/memory/memory.copy - local.get $5 - local.set $7 + i32.const 2 + i32.const 3 i32.const 0 - local.set $8 + call $~lib/rt/__newArray + local.tee $3 + i32.store + local.get $3 + i32.load offset=4 + local.set $4 + i32.const 0 + local.set $7 loop $for-loop|0 + local.get $7 + local.get $5 + i32.lt_s + local.set $8 local.get $8 - local.get $3 - i32.lt_u - local.set $9 - local.get $9 if - local.get $6 - local.get $7 - local.tee $10 - i32.const 1 - i32.add - local.set $7 - local.get $10 + global.get $~lib/memory/__stack_pointer + i32.const 2 i32.const 1 - i32.shl - i32.add + call $~lib/rt/itcms/__new + local.tee $9 + i32.store offset=8 + local.get $9 local.get $0 - local.get $8 + local.get $7 i32.const 1 i32.shl i32.add i32.load16_u i32.store16 - local.get $6 + local.get $4 local.get $7 - i32.const 1 + i32.const 2 i32.shl i32.add - local.get $2 - local.get $5 + local.get $9 + i32.store + local.get $3 + local.get $9 i32.const 1 - i32.shl - call $~lib/memory/memory.copy + call $~lib/rt/itcms/__link local.get $7 - local.get $5 - i32.add - local.set $7 - local.get $8 - i32.const 1 - i32.add - local.set $8 - br $for-loop|0 - end - end - local.get $6 - local.set $16 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $16 - return - end - i32.const 0 - local.set $11 - i32.const 0 - local.set $12 - local.get $4 - local.get $5 - i32.eq - if - local.get $3 - i32.const 1 - i32.shl - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $6 - i32.store offset=8 - local.get $6 - local.get $0 - local.get $7 - call $~lib/memory/memory.copy - loop $while-continue|1 - local.get $0 - local.set $16 - global.get $~lib/memory/__stack_pointer - local.get $16 - i32.store - local.get $16 - local.get $1 - local.set $16 - global.get $~lib/memory/__stack_pointer - local.get $16 - i32.store offset=4 - local.get $16 - local.get $11 - call $~lib/string/String#indexOf - local.tee $12 - i32.const -1 - i32.xor - local.set $8 - local.get $8 - if - local.get $6 - local.get $12 - i32.const 1 - i32.shl - i32.add - local.get $2 - local.get $5 i32.const 1 - i32.shl - call $~lib/memory/memory.copy - local.get $12 - local.get $4 i32.add - local.set $11 - br $while-continue|1 + local.set $7 + br $for-loop|0 end end - local.get $6 - local.set $16 + local.get $3 + local.set $15 global.get $~lib/memory/__stack_pointer - i32.const 16 + i32.const 24 i32.add global.set $~lib/memory/__stack_pointer - local.get $16 + local.get $15 return + else + local.get $5 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 1 + i32.const 2 + i32.const 3 + i32.const 0 + call $~lib/rt/__newArray + local.tee $4 + i32.store offset=4 + local.get $4 + i32.load offset=4 + i32.const 688 + i32.store + local.get $4 + local.set $15 + global.get $~lib/memory/__stack_pointer + i32.const 24 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $15 + return + end end + global.get $~lib/memory/__stack_pointer i32.const 0 - local.set $13 + i32.const 2 + i32.const 3 i32.const 0 - local.set $14 - local.get $3 - local.set $15 - loop $while-continue|2 + call $~lib/rt/__newArray + local.tee $10 + i32.store offset=12 + i32.const 0 + local.set $11 + i32.const 0 + local.set $12 + i32.const 0 + local.set $13 + loop $while-continue|1 local.get $0 - local.set $16 - global.get $~lib/memory/__stack_pointer - local.get $16 - i32.store - local.get $16 local.get $1 - local.set $16 - global.get $~lib/memory/__stack_pointer - local.get $16 - i32.store offset=4 - local.get $16 - local.get $11 + local.get $12 call $~lib/string/String#indexOf - local.tee $12 + local.tee $11 i32.const -1 i32.xor - local.set $6 - local.get $6 + local.set $4 + local.get $4 if - local.get $13 - local.set $16 - global.get $~lib/memory/__stack_pointer - local.get $16 - i32.store - local.get $16 - call $~lib/string/String.__not + local.get $11 + local.get $12 + i32.sub + local.set $3 + local.get $3 + i32.const 0 + i32.gt_s if global.get $~lib/memory/__stack_pointer local.get $3 @@ -11617,968 +9610,780 @@ i32.shl i32.const 1 call $~lib/rt/itcms/__new - local.tee $13 - i32.store offset=12 - end - local.get $12 - local.get $11 - i32.sub - local.set $7 - local.get $14 - local.get $7 - i32.add - local.get $5 - i32.add - local.get $15 - i32.gt_u - if - local.get $15 + local.tee $7 + i32.store offset=16 + local.get $7 + local.get $0 + local.get $12 + i32.const 1 + i32.shl + i32.add + local.get $3 i32.const 1 i32.shl + call $~lib/memory/memory.copy + local.get $10 + local.get $7 + call $~lib/array/Array<~lib/string/String>#push + drop + else + local.get $10 + i32.const 688 local.set $15 global.get $~lib/memory/__stack_pointer - local.get $13 local.get $15 - i32.const 1 - i32.shl - call $~lib/rt/itcms/__renew - local.tee $13 - i32.store offset=12 + i32.store offset=20 + local.get $15 + call $~lib/array/Array<~lib/string/String>#push + drop end local.get $13 - local.get $14 - i32.const 1 - i32.shl - i32.add - local.get $0 - local.get $11 - i32.const 1 - i32.shl - i32.add - local.get $7 - i32.const 1 - i32.shl - call $~lib/memory/memory.copy - local.get $14 - local.get $7 - i32.add - local.set $14 - local.get $13 - local.get $14 - i32.const 1 - i32.shl - i32.add - local.get $2 - local.get $5 i32.const 1 - i32.shl - call $~lib/memory/memory.copy - local.get $14 - local.get $5 - i32.add - local.set $14 - local.get $12 - local.get $4 i32.add - local.set $11 - br $while-continue|2 - end - end - local.get $13 - if - local.get $3 - local.get $11 - i32.sub - local.set $6 - local.get $14 - local.get $6 - i32.add - local.get $15 - i32.gt_u - if - local.get $15 - i32.const 1 - i32.shl - local.set $15 - global.get $~lib/memory/__stack_pointer - local.get $13 - local.get $15 - i32.const 1 - i32.shl - call $~lib/rt/itcms/__renew local.tee $13 - i32.store offset=12 - end - local.get $6 - if - local.get $13 - local.get $14 - i32.const 1 - i32.shl - i32.add - local.get $0 + local.get $2 + i32.eq + if + local.get $10 + local.set $15 + global.get $~lib/memory/__stack_pointer + i32.const 24 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $15 + return + end local.get $11 - i32.const 1 - i32.shl - i32.add - local.get $6 - i32.const 1 - i32.shl - call $~lib/memory/memory.copy - end - local.get $6 - local.get $14 - i32.add - local.set $6 - local.get $15 - local.get $6 - i32.gt_u - if - global.get $~lib/memory/__stack_pointer - local.get $13 local.get $6 - i32.const 1 - i32.shl - call $~lib/rt/itcms/__renew - local.tee $13 - i32.store offset=12 + i32.add + local.set $12 + br $while-continue|1 end - local.get $13 - local.set $16 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $16 - return end - local.get $0 - local.set $16 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $16 - ) - (func $~lib/string/String#slice (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 + local.get $12 + i32.eqz + if + local.get $10 + local.get $0 + call $~lib/array/Array<~lib/string/String>#push + drop + local.get $10 + local.set $15 + global.get $~lib/memory/__stack_pointer + i32.const 24 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $15 + return + end + local.get $5 + local.get $12 i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - local.get $0 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store - local.get $7 - call $~lib/string/String#get:length - local.set $3 - local.get $1 + local.set $14 + local.get $14 i32.const 0 - i32.lt_s - if (result i32) - local.get $1 - local.get $3 - i32.add - local.tee $4 - i32.const 0 - local.tee $5 - local.get $4 - local.get $5 - i32.gt_s - select - else - local.get $1 - local.tee $5 - local.get $3 + i32.gt_s + if + global.get $~lib/memory/__stack_pointer + local.get $14 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new local.tee $4 - local.get $5 + i32.store offset=4 local.get $4 - 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 + local.get $0 + local.get $12 + i32.const 1 + i32.shl i32.add - local.tee $4 - i32.const 0 - local.tee $5 + local.get $14 + i32.const 1 + i32.shl + call $~lib/memory/memory.copy + local.get $10 local.get $4 - local.get $5 - i32.gt_s - select + call $~lib/array/Array<~lib/string/String>#push + drop else - local.get $2 - local.tee $5 - local.get $3 - local.tee $4 - local.get $5 - local.get $4 - i32.lt_s - select - end - local.set $2 - local.get $2 - local.get $1 - i32.sub - local.set $3 - local.get $3 - i32.const 0 - i32.le_s - if + local.get $10 i32.const 688 - local.set $7 + local.set $15 global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $7 - return + local.get $15 + i32.store offset=20 + local.get $15 + call $~lib/array/Array<~lib/string/String>#push + drop end + local.get $10 + local.set $15 global.get $~lib/memory/__stack_pointer - local.get $3 - i32.const 1 - i32.shl - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $6 - i32.store offset=4 - local.get $6 - local.get $0 - local.get $1 - i32.const 1 - i32.shl - i32.add - local.get $3 - i32.const 1 - i32.shl - call $~lib/memory/memory.copy - local.get $6 - local.set $7 - global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 24 i32.add global.set $~lib/memory/__stack_pointer - local.get $7 + local.get $15 ) - (func $~lib/string/String#substr (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $start:std/string + (local $0 f64) + (local $1 f32) + (local $2 i32) (local $3 i32) (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - (local $10 i32) global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 44 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - local.get $1 - local.set $3 - local.get $2 - local.set $4 - local.get $0 - 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 $5 - local.get $3 - i32.const 0 - i32.lt_s - if - local.get $5 - local.get $3 - i32.add - local.tee $6 - i32.const 0 - local.tee $7 - local.get $6 - local.get $7 - i32.gt_s - select - local.set $3 - end - local.get $4 - local.tee $7 - i32.const 0 - local.tee $6 - local.get $7 - local.get $6 - i32.gt_s - select - local.tee $6 - local.get $5 - local.get $3 - i32.sub - local.tee $7 - local.get $6 - local.get $7 - i32.lt_s - select - i32.const 1 - i32.shl - local.set $8 - local.get $8 - i32.const 0 - i32.le_s - if - i32.const 688 - 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 + i64.const 0 + i64.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $8 - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $9 - i32.store offset=4 - local.get $9 - local.get $0 - local.get $3 - i32.const 1 - i32.shl - i32.add - local.get $8 - call $~lib/memory/memory.copy - local.get $9 - local.set $10 + i64.const 0 + i64.store offset=16 global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $10 - ) - (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) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - (local $10 i32) - (local $11 i32) - (local $12 i32) + i64.const 0 + i64.store offset=24 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=32 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=40 + global.get $std/string/str + i32.const 32 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 8 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 144 + local.set $4 global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check + local.get $4 + i32.store + local.get $4 + i32.const 144 + local.set $4 global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - local.get $0 - local.set $12 + local.get $4 + i32.store offset=4 + local.get $4 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 10 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 176 + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $4 i32.store - local.get $12 - call $~lib/string/String#get:length - local.set $3 - local.get $1 - local.tee $4 - i32.const 0 - local.tee $5 local.get $4 - local.get $5 - i32.gt_s - select - local.tee $5 - local.get $3 - local.tee $4 - local.get $5 + i32.const 176 + local.set $4 + global.get $~lib/memory/__stack_pointer local.get $4 - i32.lt_s - select - local.set $6 - local.get $2 - local.tee $4 - i32.const 0 - local.tee $5 + i32.store offset=4 local.get $4 - local.get $5 - i32.gt_s - select - local.tee $5 - local.get $3 - local.tee $4 - local.get $5 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 11 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 208 + local.set $4 + global.get $~lib/memory/__stack_pointer local.get $4 - i32.lt_s - select - local.set $7 - local.get $6 - local.tee $4 - local.get $7 - local.tee $5 + i32.store local.get $4 - local.get $5 - i32.lt_s - select - i32.const 1 - i32.shl - local.set $8 - local.get $6 - local.tee $5 - local.get $7 - local.tee $4 - local.get $5 + i32.const 208 + local.set $4 + global.get $~lib/memory/__stack_pointer local.get $4 - i32.gt_s - select - i32.const 1 - i32.shl - local.set $9 - local.get $9 - local.get $8 - i32.sub - local.set $10 - local.get $10 + i32.store offset=4 + local.get $4 + call $~lib/string/String.__eq i32.eqz if - i32.const 688 - local.set $12 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $12 - return + i32.const 0 + i32.const 96 + i32.const 12 + i32.const 1 + call $~lib/builtins/abort + unreachable end - local.get $8 + global.get $std/string/str + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store + local.get $4 + call $~lib/string/String#get:length + i32.const 16 + i32.eq i32.eqz - if (result i32) - local.get $9 - local.get $3 - i32.const 1 - i32.shl - i32.eq - else + if i32.const 0 + i32.const 96 + i32.const 14 + i32.const 1 + call $~lib/builtins/abort + unreachable end + global.get $std/string/str + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store + local.get $4 + i32.const 0 + call $~lib/string/String#charCodeAt + i32.const 104 + i32.eq + i32.eqz if - local.get $0 - local.set $12 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $12 - return + i32.const 0 + i32.const 96 + i32.const 15 + i32.const 1 + call $~lib/builtins/abort + unreachable end + i32.const 464 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/pinSpace + i32.const 496 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/toSpace + i32.const 576 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/fromSpace + global.get $std/string/str + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $10 - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $11 - i32.store offset=4 - local.get $11 - local.get $0 - local.get $8 - i32.add - local.get $10 - call $~lib/memory/memory.copy - local.get $11 - local.set $12 + local.get $4 + i32.store offset=8 + local.get $4 + i32.const 15 + call $~lib/string/String#at + local.set $4 global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $12 - ) - (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) - (local $11 i32) - (local $12 i32) - (local $13 i32) - (local $14 i32) - (local $15 i32) + local.get $4 + i32.store + local.get $4 + global.get $std/string/str + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $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 $4 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 16 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $std/string/str + local.set $4 global.get $~lib/memory/__stack_pointer - i32.const 28 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check + local.get $4 + i32.store offset=8 + local.get $4 + i32.const -1 + call $~lib/string/String#at + local.set $4 global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store + local.get $4 + i32.store + local.get $4 + global.get $std/string/str + local.set $4 global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=8 + local.get $4 + i32.store offset=8 + local.get $4 + global.get $std/string/str + local.set $4 global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=16 + local.get $4 + i32.store offset=12 + local.get $4 + call $~lib/string/String#get:length + i32.const 1 + i32.sub + call $~lib/string/String#charAt + local.set $4 global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=24 - local.get $2 + local.get $4 + i32.store offset=4 + local.get $4 + call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 2 - i32.const 3 - i32.const 0 - call $~lib/rt/__newArray - local.set $15 - global.get $~lib/memory/__stack_pointer - i32.const 28 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $15 - return - end - local.get $1 - i32.const 0 - i32.eq - if - global.get $~lib/memory/__stack_pointer + i32.const 96 + i32.const 17 i32.const 1 - i32.const 2 - i32.const 3 - 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 $0 - call $~lib/array/Array<~lib/string/String>#__uset - local.get $3 - local.set $15 - global.get $~lib/memory/__stack_pointer - i32.const 28 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $15 - return + call $~lib/builtins/abort + unreachable end - local.get $0 - local.set $15 + global.get $std/string/str + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $15 + local.get $4 i32.store offset=8 - local.get $15 - call $~lib/string/String#get:length - local.set $5 - local.get $1 - local.set $15 + local.get $4 + i32.const 0 + global.get $std/string/str + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $15 - i32.store offset=8 - local.get $15 + local.get $4 + i32.store offset=12 + local.get $4 call $~lib/string/String#get:length - local.set $6 - local.get $2 - i32.const 0 - i32.lt_s + i32.sub + call $~lib/string/String#at + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store + local.get $4 + i32.const 720 + 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 - global.get $~lib/builtins/i32.MAX_VALUE - local.set $2 + i32.const 0 + i32.const 96 + i32.const 18 + i32.const 1 + call $~lib/builtins/abort + unreachable end - local.get $6 + i32.const 688 + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store + local.get $4 + call $~lib/string/String.__not + i32.eqz + i32.const 0 + i32.eq i32.eqz if - local.get $5 - i32.eqz - if - i32.const 0 - i32.const 2 - i32.const 3 - i32.const 0 - call $~lib/rt/__newArray - local.set $15 - global.get $~lib/memory/__stack_pointer - i32.const 28 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $15 - return - end - local.get $5 - local.tee $3 - local.get $2 - local.tee $4 - local.get $3 - local.get $4 - i32.lt_s - select - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.const 2 - i32.const 3 - i32.const 0 - call $~lib/rt/__newArray - local.tee $3 - i32.store - local.get $3 - i32.load offset=4 - local.set $4 i32.const 0 - local.set $7 - loop $for-loop|0 - local.get $7 - local.get $5 - i32.lt_s - local.set $8 - local.get $8 - if - global.get $~lib/memory/__stack_pointer - i32.const 2 - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $9 - i32.store offset=12 - local.get $9 - local.get $0 - local.get $7 - i32.const 1 - i32.shl - i32.add - i32.load16_u - i32.store16 - local.get $4 - local.get $7 - i32.const 2 - i32.shl - i32.add - local.get $9 - i32.store - local.get $3 - local.get $9 - i32.const 1 - call $~lib/rt/itcms/__link - local.get $7 - i32.const 1 - i32.add - local.set $7 - br $for-loop|0 - end - end - local.get $3 - local.set $15 - global.get $~lib/memory/__stack_pointer - i32.const 28 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $15 - return - else - local.get $5 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 1 - i32.const 2 - i32.const 3 - i32.const 0 - call $~lib/rt/__newArray - local.tee $4 - i32.store offset=4 - local.get $4 - i32.load offset=4 - i32.const 688 - i32.store - local.get $4 - local.set $15 - global.get $~lib/memory/__stack_pointer - i32.const 28 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $15 - return - end + i32.const 96 + i32.const 20 + i32.const 1 + call $~lib/builtins/abort + unreachable end + i32.const 752 + local.set $4 global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store + local.get $4 + call $~lib/string/String.__not + i32.eqz + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 21 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 784 + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store + local.get $4 + call $~lib/string/String.__not + i32.eqz + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 22 + i32.const 1 + call $~lib/builtins/abort + unreachable + end i32.const 0 - i32.const 2 - i32.const 3 - i32.const 0 - call $~lib/rt/__newArray - local.tee $10 - i32.store offset=16 + i32.const 1 + global.set $~argumentsLength i32.const 0 - local.set $11 + call $~lib/string/String.fromCharCode@varargs + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store + local.get $4 + i32.const 752 + 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 96 + i32.const 24 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 54 + i32.const 1 + global.set $~argumentsLength i32.const 0 - local.set $12 + call $~lib/string/String.fromCharCode@varargs + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store + local.get $4 + i32.const 816 + 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 96 + i32.const 25 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 65536 + i32.const 54 + i32.add + i32.const 1 + global.set $~argumentsLength i32.const 0 - local.set $13 - loop $while-continue|1 - local.get $0 - local.set $15 - global.get $~lib/memory/__stack_pointer - local.get $15 - i32.store offset=8 - local.get $15 - local.get $1 - local.set $15 - global.get $~lib/memory/__stack_pointer - local.get $15 - i32.store offset=20 - local.get $15 - local.get $12 - call $~lib/string/String#indexOf - local.tee $11 - i32.const -1 - i32.xor - local.set $4 - local.get $4 - if - local.get $11 - local.get $12 - i32.sub - local.set $3 - local.get $3 - i32.const 0 - i32.gt_s - if - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.const 1 - i32.shl - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $7 - i32.store offset=24 - local.get $7 - local.get $0 - local.get $12 - i32.const 1 - i32.shl - i32.add - local.get $3 - i32.const 1 - i32.shl - call $~lib/memory/memory.copy - local.get $10 - local.set $15 - global.get $~lib/memory/__stack_pointer - local.get $15 - i32.store offset=8 - local.get $15 - local.get $7 - local.set $15 - global.get $~lib/memory/__stack_pointer - local.get $15 - i32.store offset=20 - local.get $15 - call $~lib/array/Array<~lib/string/String>#push - drop - else - local.get $10 - local.set $15 - global.get $~lib/memory/__stack_pointer - local.get $15 - i32.store offset=8 - local.get $15 - i32.const 688 - local.set $15 - global.get $~lib/memory/__stack_pointer - local.get $15 - i32.store offset=20 - local.get $15 - call $~lib/array/Array<~lib/string/String>#push - drop - end - local.get $13 - i32.const 1 - i32.add - local.tee $13 - local.get $2 - i32.eq - if - local.get $10 - local.set $15 - global.get $~lib/memory/__stack_pointer - i32.const 28 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $15 - return - end - local.get $11 - local.get $6 - i32.add - local.set $12 - br $while-continue|1 - end + call $~lib/string/String.fromCharCode@varargs + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store + local.get $4 + i32.const 816 + 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 96 + i32.const 26 + i32.const 1 + call $~lib/builtins/abort + unreachable end - local.get $12 + i32.const 55296 + i32.const 57088 + call $~lib/string/String.fromCharCode + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store + local.get $4 + i32.const 848 + 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 96 + i32.const 27 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + call $~lib/string/String.fromCodePoint + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store + local.get $4 + i32.const 752 + 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 - local.get $10 - local.set $15 - global.get $~lib/memory/__stack_pointer - local.get $15 - i32.store offset=8 - local.get $15 - local.get $0 - local.set $15 - global.get $~lib/memory/__stack_pointer - local.get $15 - i32.store offset=20 - local.get $15 - call $~lib/array/Array<~lib/string/String>#push - drop - local.get $10 - local.set $15 - global.get $~lib/memory/__stack_pointer - i32.const 28 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $15 - return + i32.const 0 + i32.const 96 + i32.const 29 + i32.const 1 + call $~lib/builtins/abort + unreachable end - local.get $5 - local.get $12 - i32.sub - local.set $14 - local.get $14 - i32.const 0 - i32.gt_s + i32.const 54 + call $~lib/string/String.fromCodePoint + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store + local.get $4 + i32.const 816 + 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 - global.get $~lib/memory/__stack_pointer - local.get $14 + i32.const 0 + i32.const 96 + i32.const 30 i32.const 1 - i32.shl + call $~lib/builtins/abort + unreachable + end + i32.const 119558 + call $~lib/string/String.fromCodePoint + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store + local.get $4 + i32.const 880 + 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 96 + i32.const 31 i32.const 1 - call $~lib/rt/itcms/__new - local.tee $4 - i32.store offset=4 - local.get $4 - local.get $0 - local.get $12 + call $~lib/builtins/abort + unreachable + end + global.get $std/string/str + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store + local.get $4 + i32.const 912 + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + i32.const 0 + call $~lib/string/String#startsWith + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 33 i32.const 1 - i32.shl - i32.add - local.get $14 + call $~lib/builtins/abort + unreachable + end + global.get $std/string/str + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store + local.get $4 + i32.const 976 + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + global.get $~lib/string/String.MAX_LENGTH + call $~lib/string/String#endsWith + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 34 i32.const 1 - i32.shl - call $~lib/memory/memory.copy - local.get $10 - local.set $15 - global.get $~lib/memory/__stack_pointer - local.get $15 - i32.store offset=8 - local.get $15 - local.get $4 - local.set $15 - global.get $~lib/memory/__stack_pointer - local.get $15 - i32.store offset=20 - local.get $15 - call $~lib/array/Array<~lib/string/String>#push - drop - else - local.get $10 - local.set $15 - global.get $~lib/memory/__stack_pointer - local.get $15 - i32.store offset=8 - local.get $15 - i32.const 688 - local.set $15 - global.get $~lib/memory/__stack_pointer - local.get $15 - i32.store offset=20 - local.get $15 - call $~lib/array/Array<~lib/string/String>#push - drop + call $~lib/builtins/abort + unreachable end - local.get $10 - local.set $15 + global.get $std/string/str + local.set $4 global.get $~lib/memory/__stack_pointer - i32.const 28 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $15 - ) - (func $start:std/string - (local $0 f64) - (local $1 f32) - (local $2 i32) - (local $3 i32) - (local $4 i32) + local.get $4 + i32.store + local.get $4 + i32.const 1008 + local.set $4 global.get $~lib/memory/__stack_pointer - i32.const 44 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check + local.get $4 + i32.store offset=4 + local.get $4 + i32.const 0 + call $~lib/string/String#includes + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 35 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $std/string/str + local.set $4 global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store + local.get $4 + i32.store offset=8 + local.get $4 + i32.const 0 + i32.const 1040 + local.set $4 global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=8 + local.get $4 + i32.store offset=16 + local.get $4 + call $~lib/string/String#padStart + local.set $4 global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=16 + local.get $4 + i32.store + local.get $4 + global.get $std/string/str + local.set $4 global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=24 + local.get $4 + i32.store offset=4 + local.get $4 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 37 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $std/string/str + local.set $4 global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=32 + local.get $4 + i32.store offset=8 + local.get $4 + i32.const 15 + i32.const 1040 + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=16 + local.get $4 + call $~lib/string/String#padStart + local.set $4 global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=40 + local.get $4 + i32.store + local.get $4 global.get $std/string/str - i32.const 32 - i32.eq + 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 96 - i32.const 8 + i32.const 38 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 144 + i32.const 688 + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=8 + local.get $4 + i32.const 3 + i32.const 1040 + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=16 + local.get $4 + call $~lib/string/String#padStart local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 144 + i32.const 1072 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 @@ -12589,18 +10394,31 @@ if i32.const 0 i32.const 96 - i32.const 10 + i32.const 39 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 176 + i32.const 688 + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=8 + local.get $4 + i32.const 10 + i32.const 688 + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=16 + local.get $4 + call $~lib/string/String#padStart local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 176 + i32.const 688 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 @@ -12611,18 +10429,31 @@ if i32.const 0 i32.const 96 - i32.const 11 + i32.const 40 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 208 + i32.const 784 + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=8 + local.get $4 + i32.const 100 + i32.const 688 + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=16 + local.get $4 + call $~lib/string/String#padStart local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 208 + i32.const 784 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 @@ -12633,78 +10464,101 @@ if i32.const 0 i32.const 96 - i32.const 12 + i32.const 41 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $std/string/str + i32.const 1104 + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=8 + local.get $4 + i32.const 5 + i32.const 1040 + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=16 + local.get $4 + call $~lib/string/String#padStart local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - call $~lib/string/String#get:length - i32.const 16 - i32.eq + i32.const 1136 + 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 96 - i32.const 14 + i32.const 42 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $std/string/str + i32.const 1104 + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=8 + local.get $4 + i32.const 6 + i32.const 1168 + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=16 + local.get $4 + call $~lib/string/String#padStart local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 0 - call $~lib/string/String#charCodeAt - i32.const 104 - i32.eq + i32.const 1200 + 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 96 - i32.const 15 + i32.const 43 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 464 - call $~lib/rt/itcms/initLazy - global.set $~lib/rt/itcms/pinSpace - i32.const 496 - call $~lib/rt/itcms/initLazy - global.set $~lib/rt/itcms/toSpace - i32.const 576 - call $~lib/rt/itcms/initLazy - global.set $~lib/rt/itcms/fromSpace - global.get $std/string/str + i32.const 1104 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store offset=8 local.get $4 - i32.const 15 - call $~lib/string/String#at + i32.const 8 + i32.const 1168 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 - i32.store + i32.store offset=16 local.get $4 - global.get $std/string/str + call $~lib/string/String#padStart local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 - i32.store offset=8 + i32.store local.get $4 - i32.const 15 - call $~lib/string/String#charAt + i32.const 1232 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 @@ -12715,7 +10569,7 @@ if i32.const 0 i32.const 96 - i32.const 16 + i32.const 44 i32.const 1 call $~lib/builtins/abort unreachable @@ -12726,8 +10580,14 @@ local.get $4 i32.store offset=8 local.get $4 - i32.const -1 - call $~lib/string/String#at + i32.const 0 + i32.const 1040 + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=16 + local.get $4 + call $~lib/string/String#padEnd local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 @@ -12737,18 +10597,38 @@ local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 - i32.store offset=8 + i32.store offset=4 local.get $4 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 46 + i32.const 1 + call $~lib/builtins/abort + unreachable + end global.get $std/string/str 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#get:length - i32.const 1 - i32.sub - call $~lib/string/String#charAt + i32.const 15 + i32.const 1040 + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=16 + local.get $4 + call $~lib/string/String#padEnd + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store + local.get $4 + global.get $std/string/str local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 @@ -12759,33 +10639,31 @@ if i32.const 0 i32.const 96 - i32.const 17 + i32.const 47 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $std/string/str + i32.const 688 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store offset=8 local.get $4 - i32.const 0 - global.get $std/string/str + i32.const 3 + i32.const 1040 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 - i32.store offset=12 + i32.store offset=16 local.get $4 - call $~lib/string/String#get:length - i32.sub - call $~lib/string/String#at + call $~lib/string/String#padEnd local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 720 + i32.const 1072 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 @@ -12796,7 +10674,7 @@ if i32.const 0 i32.const 96 - i32.const 18 + i32.const 48 i32.const 1 call $~lib/builtins/abort unreachable @@ -12805,70 +10683,92 @@ local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 + i32.store offset=8 + local.get $4 + i32.const 10 + i32.const 688 + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=16 + local.get $4 + call $~lib/string/String#padEnd + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 i32.store local.get $4 - call $~lib/string/String.__not - i32.eqz - i32.const 0 - i32.eq + i32.const 688 + 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 96 - i32.const 20 + i32.const 49 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 752 + i32.const 784 + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=8 + local.get $4 + i32.const 100 + i32.const 688 + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=16 + local.get $4 + call $~lib/string/String#padEnd local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - call $~lib/string/String.__not - i32.eqz - i32.const 1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 96 - i32.const 21 - i32.const 1 - call $~lib/builtins/abort - unreachable - end i32.const 784 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 - i32.store + i32.store offset=4 local.get $4 - call $~lib/string/String.__not - i32.eqz - i32.const 1 - i32.eq + call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 96 - i32.const 22 + i32.const 50 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 0 - i32.const 1 - global.set $~argumentsLength - i32.const 0 - call $~lib/string/String.fromCharCode@varargs + i32.const 1104 + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=8 + local.get $4 + i32.const 5 + i32.const 1040 + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=16 + local.get $4 + call $~lib/string/String#padEnd local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 752 + i32.const 1280 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 @@ -12879,22 +10779,31 @@ if i32.const 0 i32.const 96 - i32.const 24 + i32.const 51 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 54 - i32.const 1 - global.set $~argumentsLength - i32.const 0 - call $~lib/string/String.fromCharCode@varargs + i32.const 1104 + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=8 + local.get $4 + i32.const 6 + i32.const 1104 + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=16 + local.get $4 + call $~lib/string/String#padEnd local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 816 + i32.const 1312 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 @@ -12905,24 +10814,31 @@ if i32.const 0 i32.const 96 - i32.const 25 + i32.const 52 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 65536 - i32.const 54 - i32.add - i32.const 1 - global.set $~argumentsLength - i32.const 0 - call $~lib/string/String.fromCharCode@varargs + i32.const 1104 + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=8 + local.get $4 + i32.const 8 + i32.const 1104 + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=16 + local.get $4 + call $~lib/string/String#padEnd local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 816 + i32.const 1344 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 @@ -12933,100 +10849,107 @@ if i32.const 0 i32.const 96 - i32.const 26 + i32.const 53 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 55296 - i32.const 57088 - call $~lib/string/String.fromCharCode + i32.const 688 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 848 + i32.const 688 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.const 0 + call $~lib/string/String#indexOf + i32.const 0 + i32.eq i32.eqz if i32.const 0 i32.const 96 - i32.const 27 + i32.const 55 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 0 - call $~lib/string/String.fromCodePoint + i32.const 688 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 752 + i32.const 912 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.const 0 + call $~lib/string/String#indexOf + i32.const -1 + i32.eq i32.eqz if i32.const 0 i32.const 96 - i32.const 29 + i32.const 56 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 54 - call $~lib/string/String.fromCodePoint + i32.const 784 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 816 + i32.const 784 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.const 0 + call $~lib/string/String#indexOf + i32.const 0 + i32.eq i32.eqz if i32.const 0 i32.const 96 - i32.const 30 + i32.const 57 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 119558 - call $~lib/string/String.fromCodePoint + global.get $std/string/str local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 880 + global.get $std/string/str 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.const 0 + call $~lib/string/String#indexOf + i32.const 0 + i32.eq i32.eqz if i32.const 0 i32.const 96 - i32.const 31 + i32.const 58 i32.const 1 call $~lib/builtins/abort unreachable @@ -13037,19 +10960,21 @@ local.get $4 i32.store local.get $4 - i32.const 912 + i32.const 688 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store offset=4 local.get $4 i32.const 0 - call $~lib/string/String#startsWith + call $~lib/string/String#indexOf + i32.const 0 + i32.eq i32.eqz if i32.const 0 i32.const 96 - i32.const 33 + i32.const 59 i32.const 1 call $~lib/builtins/abort unreachable @@ -13060,19 +10985,21 @@ local.get $4 i32.store local.get $4 - i32.const 976 + i32.const 1392 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store offset=4 local.get $4 - global.get $~lib/string/String.MAX_LENGTH - call $~lib/string/String#endsWith + i32.const 0 + call $~lib/string/String#indexOf + i32.const 2 + i32.eq i32.eqz if i32.const 0 i32.const 96 - i32.const 34 + i32.const 60 i32.const 1 call $~lib/builtins/abort unreachable @@ -13083,19 +11010,21 @@ local.get $4 i32.store local.get $4 - i32.const 1008 + i32.const 1424 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store offset=4 local.get $4 i32.const 0 - call $~lib/string/String#includes + call $~lib/string/String#indexOf + i32.const -1 + i32.eq i32.eqz if i32.const 0 i32.const 96 - i32.const 35 + i32.const 61 i32.const 1 call $~lib/builtins/abort unreachable @@ -13104,33 +11033,23 @@ local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 - i32.store offset=8 - local.get $4 - i32.const 0 - i32.const 1040 - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=16 - local.get $4 - call $~lib/string/String#padStart - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 i32.store local.get $4 - global.get $std/string/str + i32.const 1392 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.const 2 + call $~lib/string/String#indexOf + i32.const 2 + i32.eq i32.eqz if i32.const 0 i32.const 96 - i32.const 37 + i32.const 62 i32.const 1 call $~lib/builtins/abort unreachable @@ -13139,68 +11058,48 @@ local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 - i32.store offset=8 - local.get $4 - i32.const 15 - i32.const 1040 - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=16 - local.get $4 - call $~lib/string/String#padStart - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 i32.store local.get $4 - global.get $std/string/str + i32.const 1392 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.const 3 + call $~lib/string/String#indexOf + i32.const -1 + i32.eq i32.eqz if i32.const 0 i32.const 96 - i32.const 38 + i32.const 63 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 688 - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=8 - local.get $4 - i32.const 3 - i32.const 1040 - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=16 - local.get $4 - call $~lib/string/String#padStart + global.get $std/string/str local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 1072 + i32.const 1456 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.const -1 + call $~lib/string/String#indexOf + i32.const 2 + i32.eq i32.eqz if i32.const 0 i32.const 96 - i32.const 39 + i32.const 64 i32.const 1 call $~lib/builtins/abort unreachable @@ -13209,173 +11108,154 @@ local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 - i32.store offset=8 + i32.store local.get $4 - i32.const 10 i32.const 688 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 - i32.store offset=16 + i32.store offset=4 local.get $4 - call $~lib/string/String#padStart + global.get $~lib/builtins/i32.MAX_VALUE + call $~lib/string/String#lastIndexOf + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 66 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 688 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 688 + i32.const 912 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store offset=4 local.get $4 - call $~lib/string/String.__eq + global.get $~lib/builtins/i32.MAX_VALUE + call $~lib/string/String#lastIndexOf + i32.const -1 + i32.eq i32.eqz if i32.const 0 i32.const 96 - i32.const 40 + i32.const 67 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 784 + global.get $std/string/str local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 - i32.store offset=8 + i32.store local.get $4 - i32.const 100 i32.const 688 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 - i32.store offset=16 + i32.store offset=4 local.get $4 - call $~lib/string/String#padStart + global.get $~lib/builtins/i32.MAX_VALUE + call $~lib/string/String#lastIndexOf + global.get $std/string/str local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 784 - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - call $~lib/string/String.__eq + call $~lib/string/String#get:length + i32.eq i32.eqz if i32.const 0 i32.const 96 - i32.const 41 + i32.const 68 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 1104 - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=8 - local.get $4 - i32.const 5 - i32.const 1040 - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=16 - local.get $4 - call $~lib/string/String#padStart + global.get $std/string/str local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 1136 + i32.const 1392 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store offset=4 local.get $4 - call $~lib/string/String.__eq + global.get $~lib/builtins/i32.MAX_VALUE + call $~lib/string/String#lastIndexOf + i32.const 2 + i32.eq i32.eqz if i32.const 0 i32.const 96 - i32.const 42 + i32.const 69 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 1104 - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=8 - local.get $4 - i32.const 6 - i32.const 1168 - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=16 - local.get $4 - call $~lib/string/String#padStart + global.get $std/string/str local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 1200 + i32.const 1424 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store offset=4 local.get $4 - call $~lib/string/String.__eq + global.get $~lib/builtins/i32.MAX_VALUE + call $~lib/string/String#lastIndexOf + i32.const -1 + i32.eq i32.eqz if i32.const 0 i32.const 96 - i32.const 43 + i32.const 70 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 1104 - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=8 - local.get $4 - i32.const 8 - i32.const 1168 - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=16 - local.get $4 - call $~lib/string/String#padStart + global.get $std/string/str local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 1232 + i32.const 1488 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store offset=4 local.get $4 - call $~lib/string/String.__eq + global.get $~lib/builtins/i32.MAX_VALUE + call $~lib/string/String#lastIndexOf + i32.const 15 + i32.eq i32.eqz if i32.const 0 i32.const 96 - i32.const 44 + i32.const 71 i32.const 1 call $~lib/builtins/abort unreachable @@ -13384,33 +11264,23 @@ local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 - i32.store offset=8 - local.get $4 - i32.const 0 - i32.const 1040 - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=16 - local.get $4 - call $~lib/string/String#padEnd - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 i32.store local.get $4 - global.get $std/string/str + i32.const 1392 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.const 2 + call $~lib/string/String#lastIndexOf + i32.const 2 + i32.eq i32.eqz if i32.const 0 i32.const 96 - i32.const 46 + i32.const 72 i32.const 1 call $~lib/builtins/abort unreachable @@ -13419,68 +11289,98 @@ local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 - i32.store offset=8 + i32.store local.get $4 - i32.const 15 - i32.const 1040 + i32.const 1392 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 - i32.store offset=16 + i32.store offset=4 local.get $4 - call $~lib/string/String#padEnd + i32.const 3 + call $~lib/string/String#lastIndexOf + i32.const 2 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 73 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $std/string/str local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - global.get $std/string/str + i32.const 1456 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.const -1 + call $~lib/string/String#lastIndexOf + i32.const -1 + i32.eq i32.eqz if i32.const 0 i32.const 96 - i32.const 47 + i32.const 74 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 688 + global.get $std/string/str local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 - i32.store offset=8 + i32.store local.get $4 - i32.const 3 - i32.const 1040 + i32.const 1520 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 - i32.store offset=16 + i32.store offset=4 local.get $4 - call $~lib/string/String#padEnd + i32.const 0 + call $~lib/string/String#lastIndexOf + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 75 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $std/string/str local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 1072 + i32.const 912 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.const 0 + call $~lib/string/String#lastIndexOf + i32.const 0 + i32.eq i32.eqz if i32.const 0 i32.const 96 - i32.const 48 + i32.const 76 i32.const 1 call $~lib/builtins/abort unreachable @@ -13489,19 +11389,6 @@ local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 - i32.store offset=8 - local.get $4 - i32.const 10 - i32.const 688 - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=16 - local.get $4 - call $~lib/string/String#padEnd - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 i32.store local.get $4 i32.const 688 @@ -13510,12 +11397,14 @@ local.get $4 i32.store offset=4 local.get $4 - call $~lib/string/String.__eq + call $~lib/string/String#localeCompare + i32.const 0 + i32.eq i32.eqz if i32.const 0 i32.const 96 - i32.const 49 + i32.const 78 i32.const 1 call $~lib/builtins/abort unreachable @@ -13524,16 +11413,27 @@ local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 - i32.store offset=8 + i32.store local.get $4 - i32.const 100 i32.const 688 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 - i32.store offset=16 + i32.store offset=4 local.get $4 - call $~lib/string/String#padEnd + call $~lib/string/String#localeCompare + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 79 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 688 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 @@ -13545,82 +11445,110 @@ local.get $4 i32.store offset=4 local.get $4 - call $~lib/string/String.__eq + call $~lib/string/String#localeCompare + i32.const -1 + i32.eq i32.eqz if i32.const 0 i32.const 96 - i32.const 50 + i32.const 80 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 1104 + i32.const 944 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 - i32.store offset=8 + i32.store local.get $4 - i32.const 5 - i32.const 1040 + i32.const 944 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 - i32.store offset=16 + i32.store offset=4 local.get $4 - call $~lib/string/String#padEnd + call $~lib/string/String#localeCompare + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 81 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 1104 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 1280 + i32.const 1552 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store offset=4 local.get $4 - call $~lib/string/String.__eq + call $~lib/string/String#localeCompare + i32.const -1 + i32.eq i32.eqz if i32.const 0 i32.const 96 - i32.const 51 + i32.const 82 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 1104 + i32.const 1552 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 - i32.store offset=8 + i32.store local.get $4 - i32.const 6 i32.const 1104 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 - i32.store offset=16 + i32.store offset=4 local.get $4 - call $~lib/string/String#padEnd + call $~lib/string/String#localeCompare + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 83 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 1584 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 1312 + i32.const 1104 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store offset=4 local.get $4 - call $~lib/string/String.__eq + call $~lib/string/String#localeCompare + i32.const 1 + i32.eq i32.eqz if i32.const 0 i32.const 96 - i32.const 52 + i32.const 84 i32.const 1 call $~lib/builtins/abort unreachable @@ -13629,38 +11557,51 @@ local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 - i32.store offset=8 + i32.store local.get $4 - i32.const 8 - i32.const 1104 + i32.const 1584 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 - i32.store offset=16 + i32.store offset=4 local.get $4 - call $~lib/string/String#padEnd + call $~lib/string/String#localeCompare + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 85 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 688 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 1344 + i32.const 1072 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store offset=4 local.get $4 - call $~lib/string/String.__eq + call $~lib/string/String#localeCompare + i32.const -1 + i32.eq i32.eqz if i32.const 0 i32.const 96 - i32.const 53 + i32.const 86 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 688 + i32.const 752 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 @@ -13672,15 +11613,14 @@ local.get $4 i32.store offset=4 local.get $4 - i32.const 0 - call $~lib/string/String#indexOf - i32.const 0 + call $~lib/string/String#localeCompare + i32.const 1 i32.eq i32.eqz if i32.const 0 i32.const 96 - i32.const 55 + i32.const 87 i32.const 1 call $~lib/builtins/abort unreachable @@ -13689,78 +11629,93 @@ local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 + i32.store offset=8 + local.get $4 + call $~lib/string/String#trimStart + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 i32.store local.get $4 - i32.const 912 + i32.const 688 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store offset=4 local.get $4 - i32.const 0 - call $~lib/string/String#indexOf - i32.const -1 - i32.eq + call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 96 - i32.const 56 + i32.const 89 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 784 + i32.const 1616 + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=8 + local.get $4 + call $~lib/string/String#trimStart local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 784 + i32.const 1616 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store offset=4 local.get $4 - i32.const 0 - call $~lib/string/String#indexOf - i32.const 0 - i32.eq + call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 96 - i32.const 57 + i32.const 90 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $std/string/str + i32.const 1648 + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=8 + local.get $4 + call $~lib/string/String#trimStart local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - global.get $std/string/str + i32.const 1696 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store offset=4 local.get $4 - i32.const 0 - call $~lib/string/String#indexOf - i32.const 0 - i32.eq + call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 96 - i32.const 58 + i32.const 91 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $std/string/str + i32.const 688 + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=8 + local.get $4 + call $~lib/string/String#trimEnd local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 @@ -13772,918 +11727,762 @@ local.get $4 i32.store offset=4 local.get $4 - i32.const 0 - call $~lib/string/String#indexOf - i32.const 0 - i32.eq + call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 96 - i32.const 59 + i32.const 93 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $std/string/str + i32.const 1616 + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=8 + local.get $4 + call $~lib/string/String#trimEnd local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 1392 + i32.const 1616 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store offset=4 local.get $4 - i32.const 0 - call $~lib/string/String#indexOf - i32.const 2 - i32.eq + call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 96 - i32.const 60 + i32.const 94 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $std/string/str + i32.const 1648 + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=8 + local.get $4 + call $~lib/string/String#trimEnd local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 1424 + i32.const 1744 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store offset=4 local.get $4 - i32.const 0 - call $~lib/string/String#indexOf - i32.const -1 - i32.eq + call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 96 - i32.const 61 + i32.const 95 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $std/string/str + i32.const 688 + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=8 + local.get $4 + call $~lib/string/String#trim local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 1392 + i32.const 688 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store offset=4 local.get $4 - i32.const 2 - call $~lib/string/String#indexOf - i32.const 2 - i32.eq + call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 96 - i32.const 62 + i32.const 97 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $std/string/str + i32.const 1616 + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=8 + local.get $4 + call $~lib/string/String#trim local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 1392 + i32.const 1616 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store offset=4 local.get $4 - i32.const 3 - call $~lib/string/String#indexOf - i32.const -1 - i32.eq + call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 96 - i32.const 63 + i32.const 98 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $std/string/str + i32.const 1648 + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=8 + local.get $4 + call $~lib/string/String#trim local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 1456 + i32.const 1104 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store offset=4 local.get $4 - i32.const -1 - call $~lib/string/String#indexOf - i32.const 2 - i32.eq + call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 96 - i32.const 64 + i32.const 99 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 688 + i32.const 1792 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 688 - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - global.get $~lib/builtins/i32.MAX_VALUE - call $~lib/string/String#lastIndexOf i32.const 0 - i32.eq + call $~lib/string/parseInt + f64.const 0 + f64.eq i32.eqz if i32.const 0 i32.const 96 - i32.const 66 + i32.const 101 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 688 + i32.const 1824 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 912 - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - global.get $~lib/builtins/i32.MAX_VALUE - call $~lib/string/String#lastIndexOf - i32.const -1 - i32.eq + i32.const 0 + call $~lib/string/parseInt + f64.const 0 + f64.eq i32.eqz if i32.const 0 i32.const 96 - i32.const 67 + i32.const 102 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $std/string/str - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store - local.get $4 - i32.const 688 - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - global.get $~lib/builtins/i32.MAX_VALUE - call $~lib/string/String#lastIndexOf - global.get $std/string/str + i32.const 1856 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - call $~lib/string/String#get:length - i32.eq + i32.const 0 + call $~lib/string/parseInt + f64.const 1 + f64.eq i32.eqz if i32.const 0 i32.const 96 - i32.const 68 + i32.const 103 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $std/string/str + i32.const 1888 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 1392 - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - global.get $~lib/builtins/i32.MAX_VALUE - call $~lib/string/String#lastIndexOf - i32.const 2 - i32.eq + i32.const 0 + call $~lib/string/parseInt + f64.const 1 + f64.eq i32.eqz if i32.const 0 i32.const 96 - i32.const 69 + i32.const 104 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $std/string/str + i32.const 1920 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 1424 - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - global.get $~lib/builtins/i32.MAX_VALUE - call $~lib/string/String#lastIndexOf - i32.const -1 - i32.eq + i32.const 0 + call $~lib/string/parseInt + f64.const 5 + f64.eq i32.eqz if i32.const 0 i32.const 96 - i32.const 70 + i32.const 105 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $std/string/str + i32.const 1952 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 1488 - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - global.get $~lib/builtins/i32.MAX_VALUE - call $~lib/string/String#lastIndexOf - i32.const 15 - i32.eq + i32.const 0 + call $~lib/string/parseInt + f64.const 455 + f64.eq i32.eqz if i32.const 0 i32.const 96 - i32.const 71 + i32.const 106 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $std/string/str + i32.const 1984 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 1392 - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - i32.const 2 - call $~lib/string/String#lastIndexOf - i32.const 2 - i32.eq + i32.const 0 + call $~lib/string/parseInt + f64.const 3855 + f64.eq i32.eqz if i32.const 0 i32.const 96 - i32.const 72 + i32.const 107 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $std/string/str + i32.const 2016 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 1392 - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - i32.const 3 - call $~lib/string/String#lastIndexOf - i32.const 2 - i32.eq + i32.const 0 + call $~lib/string/parseInt + f64.const 3855 + f64.eq i32.eqz if i32.const 0 i32.const 96 - i32.const 73 + i32.const 108 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $std/string/str + i32.const 2048 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 1456 - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - i32.const -1 - call $~lib/string/String#lastIndexOf - i32.const -1 - i32.eq + i32.const 0 + call $~lib/string/parseInt + f64.const 11 + f64.eq i32.eqz if i32.const 0 i32.const 96 - i32.const 74 + i32.const 109 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $std/string/str + i32.const 2080 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 1520 - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 i32.const 0 - call $~lib/string/String#lastIndexOf - i32.const -1 - i32.eq + call $~lib/string/parseInt + f64.const 1 + f64.eq i32.eqz if i32.const 0 i32.const 96 - i32.const 75 + i32.const 110 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $std/string/str + i32.const 2112 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 912 - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - i32.const 0 - call $~lib/string/String#lastIndexOf i32.const 0 - i32.eq + call $~lib/string/parseInt + f64.const -123 + f64.eq i32.eqz if i32.const 0 i32.const 96 - i32.const 76 + i32.const 111 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 688 + i32.const 2144 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 688 - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - call $~lib/string/String#localeCompare i32.const 0 - i32.eq + call $~lib/string/parseInt + f64.const 123 + f64.eq i32.eqz if i32.const 0 i32.const 96 - i32.const 78 + i32.const 112 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 784 + i32.const 2176 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 688 - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - call $~lib/string/String#localeCompare - i32.const 1 - i32.eq + i32.const 0 + call $~lib/string/parseInt + f64.const -12 + f64.eq i32.eqz if i32.const 0 i32.const 96 - i32.const 79 + i32.const 113 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 688 + i32.const 1792 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 784 - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - call $~lib/string/String#localeCompare - i32.const -1 - i32.eq + i32.const 0 + call $~lib/string/parseInt + f64.const 0 + f64.eq i32.eqz if i32.const 0 i32.const 96 - i32.const 80 + i32.const 114 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 944 + i32.const 2208 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 944 - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - call $~lib/string/String#localeCompare i32.const 0 - i32.eq + call $~lib/string/parseInt + f64.const 0 + f64.eq i32.eqz if i32.const 0 i32.const 96 - i32.const 81 + i32.const 115 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 1104 + i32.const 2240 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 1552 + i32.const 16 + call $~lib/string/parseInt + f64.const 2833 + f64.eq + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 116 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 2272 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 - i32.store offset=4 + i32.store local.get $4 - call $~lib/string/String#localeCompare - i32.const -1 - i32.eq + i32.const 0 + call $~lib/string/parseInt + f64.const 1 + f64.eq i32.eqz if i32.const 0 i32.const 96 - i32.const 82 + i32.const 117 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 1552 + i32.const 2304 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 1104 - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - call $~lib/string/String#localeCompare - i32.const 1 - i32.eq + i32.const 0 + call $~lib/string/parseInt + f64.const 1 + f64.eq i32.eqz if i32.const 0 i32.const 96 - i32.const 83 + i32.const 118 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 1584 + i32.const 2336 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 1104 - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - call $~lib/string/String#localeCompare - i32.const 1 - i32.eq + i32.const 0 + call $~lib/string/parseInt + f64.const 1 + f64.eq i32.eqz if i32.const 0 i32.const 96 - i32.const 84 + i32.const 119 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 1104 + i32.const 2368 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 1584 - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - call $~lib/string/String#localeCompare - i32.const -1 - i32.eq + i32.const 0 + call $~lib/string/parseInt + local.set $0 + local.get $0 + i64.reinterpret_f64 + i64.const 63 + i64.shr_u + i64.const 0 + i64.ne + i32.const 0 + i32.ne i32.eqz if i32.const 0 i32.const 96 - i32.const 85 + i32.const 120 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 688 + i32.const 2400 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 1072 + i32.const 0 + call $~lib/string/parseInt + i32.const 2448 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 - i32.store offset=4 + i32.store local.get $4 - call $~lib/string/String#localeCompare - i32.const -1 - i32.eq + i32.const 16 + call $~lib/string/parseInt + f64.eq i32.eqz if i32.const 0 i32.const 96 - i32.const 86 + i32.const 121 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 752 + i32.const 2480 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 688 - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - call $~lib/string/String#localeCompare - i32.const 1 - i32.eq + i32.const 0 + call $~lib/string/parseInt + f64.const 36893488147419103232 + f64.eq i32.eqz if i32.const 0 i32.const 96 - i32.const 87 + i32.const 122 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 688 - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=8 - local.get $4 - call $~lib/string/String#trimStart + i32.const 2480 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 688 - 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.const 13 + call $~lib/string/parseInt + f64.const 5135857308667095285760 + f64.eq i32.eqz if i32.const 0 i32.const 96 - i32.const 89 + i32.const 123 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 1616 - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=8 - local.get $4 - call $~lib/string/String#trimStart + i32.const 2544 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 1616 - 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.const 10 + call $~lib/string/parseInt + f64.const -1.e+24 + f64.eq i32.eqz if i32.const 0 i32.const 96 - i32.const 90 + i32.const 124 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 1648 - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=8 - local.get $4 - call $~lib/string/String#trimStart + i32.const 2624 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 1696 - 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.const 16 + call $~lib/string/parseInt + f64.const 75557863725914323419136 + f64.eq i32.eqz if i32.const 0 i32.const 96 - i32.const 91 + i32.const 125 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 688 - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=8 - local.get $4 - call $~lib/string/String#trimEnd + i32.const 2688 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 688 - 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.const 0 + call $~lib/string/parseInt + f64.const 1 + f64.eq i32.eqz if i32.const 0 i32.const 96 - i32.const 93 + i32.const 126 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 1616 - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=8 - local.get $4 - call $~lib/string/String#trimEnd + i32.const 2720 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 1616 - 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.const 0 + call $~lib/string/parseInt + f64.const 2 + f64.eq i32.eqz if i32.const 0 i32.const 96 - i32.const 94 + i32.const 127 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 1648 - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=8 - local.get $4 - call $~lib/string/String#trimEnd + i32.const 2768 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 1744 - 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.const 0 + call $~lib/string/parseInt + f64.const 1 + f64.eq i32.eqz if i32.const 0 i32.const 96 - i32.const 95 + i32.const 129 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 688 - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=8 - local.get $4 - call $~lib/string/String#trim + i32.const 2800 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 688 - 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.const 0 + call $~lib/string/parseInt + f64.const 2 + f64.eq i32.eqz if i32.const 0 i32.const 96 - i32.const 97 + i32.const 130 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 1616 - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=8 - local.get $4 - call $~lib/string/String#trim + i32.const 688 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 1616 - 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.const 0 + call $~lib/string/parseInt + local.tee $0 + local.get $0 + f64.ne i32.eqz if i32.const 0 i32.const 96 - i32.const 98 + i32.const 131 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 1648 - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=8 - local.get $4 - call $~lib/string/String#trim + i32.const 2848 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 1104 - 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.const 0 + call $~lib/string/parseInt + local.tee $0 + local.get $0 + f64.ne i32.eqz if i32.const 0 i32.const 96 - i32.const 99 + i32.const 132 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 1792 + i32.const 2880 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 @@ -14691,37 +12490,39 @@ local.get $4 i32.const 0 call $~lib/string/parseInt - f64.const 0 - f64.eq + local.tee $0 + local.get $0 + f64.ne i32.eqz if i32.const 0 i32.const 96 - i32.const 101 + i32.const 133 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 1824 + i32.const 1168 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 0 + i32.const 37 call $~lib/string/parseInt - f64.const 0 - f64.eq + local.tee $0 + local.get $0 + f64.ne i32.eqz if i32.const 0 i32.const 96 - i32.const 102 + i32.const 134 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 1856 + i32.const 2912 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 @@ -14729,18 +12530,19 @@ local.get $4 i32.const 0 call $~lib/string/parseInt - f64.const 1 - f64.eq + local.tee $0 + local.get $0 + f64.ne i32.eqz if i32.const 0 i32.const 96 - i32.const 103 + i32.const 135 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 1888 + i32.const 2944 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 @@ -14748,723 +12550,674 @@ local.get $4 i32.const 0 call $~lib/string/parseInt - f64.const 1 - f64.eq + local.tee $0 + local.get $0 + f64.ne i32.eqz if i32.const 0 i32.const 96 - i32.const 104 + i32.const 136 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 1920 + i32.const 2944 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 i32.const 0 - call $~lib/string/parseInt - f64.const 5 - f64.eq + call $~lib/number/F32.parseInt + local.tee $1 + local.get $1 + f32.ne i32.eqz if i32.const 0 i32.const 96 - i32.const 105 + i32.const 137 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 1952 + i32.const 2944 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 i32.const 0 - call $~lib/string/parseInt - f64.const 455 - f64.eq + call $~lib/number/F64.parseInt + local.tee $0 + local.get $0 + f64.ne i32.eqz if i32.const 0 i32.const 96 - i32.const 106 + i32.const 138 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 1984 + i32.const 2976 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 i32.const 0 - call $~lib/string/parseInt - f64.const 3855 - f64.eq + call $~lib/number/I32.parseInt + global.get $~lib/number/I32.MAX_VALUE + i32.eq i32.eqz if i32.const 0 i32.const 96 - i32.const 107 + i32.const 140 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 2016 + i32.const 3024 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 i32.const 0 - call $~lib/string/parseInt - f64.const 3855 - f64.eq + call $~lib/number/I64.parseInt + global.get $~lib/number/I64.MAX_VALUE + i64.eq i32.eqz if i32.const 0 i32.const 96 - i32.const 108 + i32.const 141 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 2048 + i32.const 1792 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 0 - call $~lib/string/parseInt - f64.const 11 + call $~lib/string/parseFloat + f64.const 0 f64.eq i32.eqz if i32.const 0 i32.const 96 - i32.const 109 + i32.const 144 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 2080 + i32.const 1856 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 0 - call $~lib/string/parseInt + call $~lib/string/parseFloat f64.const 1 f64.eq i32.eqz if i32.const 0 i32.const 96 - i32.const 110 + i32.const 145 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 2112 + i32.const 3280 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 0 - call $~lib/string/parseInt - f64.const -123 + call $~lib/string/parseFloat + f64.const 1 f64.eq i32.eqz if i32.const 0 i32.const 96 - i32.const 111 + i32.const 146 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 2144 + i32.const 3312 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 0 - call $~lib/string/parseInt - f64.const 123 + call $~lib/string/parseFloat + f64.const 1 f64.eq i32.eqz if i32.const 0 i32.const 96 - i32.const 112 + i32.const 147 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 2176 + i32.const 3344 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 0 - call $~lib/string/parseInt - f64.const -12 + call $~lib/string/parseFloat + f64.const 1e-05 f64.eq i32.eqz if i32.const 0 i32.const 96 - i32.const 113 + i32.const 148 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 1792 + i32.const 3376 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 0 - call $~lib/string/parseInt - f64.const 0 + call $~lib/string/parseFloat + f64.const -1e-05 f64.eq i32.eqz if i32.const 0 i32.const 96 - i32.const 114 + i32.const 149 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 2208 + i32.const 3408 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 0 - call $~lib/string/parseInt - f64.const 0 + call $~lib/string/parseFloat + f64.const -3e-23 f64.eq i32.eqz if i32.const 0 i32.const 96 - i32.const 115 + i32.const 150 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 2240 + i32.const 3456 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 16 - call $~lib/string/parseInt - f64.const 2833 + call $~lib/string/parseFloat + f64.const 3e21 f64.eq i32.eqz if i32.const 0 i32.const 96 - i32.const 116 + i32.const 151 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 2272 + i32.const 3504 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 0 - call $~lib/string/parseInt - f64.const 1 + call $~lib/string/parseFloat + f64.const 0.1 f64.eq i32.eqz if i32.const 0 i32.const 96 - i32.const 117 + i32.const 152 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 2304 + i32.const 3536 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 0 - call $~lib/string/parseInt - f64.const 1 + call $~lib/string/parseFloat + f64.const 0.1 f64.eq i32.eqz if i32.const 0 i32.const 96 - i32.const 118 + i32.const 153 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 2336 + i32.const 3568 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 0 - call $~lib/string/parseInt - f64.const 1 + call $~lib/string/parseFloat + f64.const 0.1 f64.eq i32.eqz if i32.const 0 i32.const 96 - i32.const 119 + i32.const 154 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 2368 + i32.const 3600 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 0 - call $~lib/string/parseInt - local.set $0 - local.get $0 - i64.reinterpret_f64 - i64.const 63 - i64.shr_u - i64.const 0 - i64.ne - i32.const 0 - i32.ne + call $~lib/string/parseFloat + f64.const 0.25 + f64.eq i32.eqz if i32.const 0 i32.const 96 - i32.const 120 + i32.const 155 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 2400 - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store - local.get $4 - i32.const 0 - call $~lib/string/parseInt - i32.const 2448 + i32.const 3632 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 16 - call $~lib/string/parseInt + call $~lib/string/parseFloat + f64.const 1e3 f64.eq i32.eqz if i32.const 0 i32.const 96 - i32.const 121 + i32.const 156 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 2480 + i32.const 3664 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 0 - call $~lib/string/parseInt - f64.const 36893488147419103232 + call $~lib/string/parseFloat + f64.const 1e-10 f64.eq i32.eqz if i32.const 0 i32.const 96 - i32.const 122 + i32.const 157 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 2480 + i32.const 3712 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 - i32.store - local.get $4 - i32.const 13 - call $~lib/string/parseInt - f64.const 5135857308667095285760 + i32.store + local.get $4 + call $~lib/string/parseFloat + f64.const 1e-30 f64.eq i32.eqz if i32.const 0 i32.const 96 - i32.const 123 + i32.const 158 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 2544 + i32.const 3760 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 10 - call $~lib/string/parseInt - f64.const -1.e+24 + call $~lib/string/parseFloat + f64.const 1e-323 f64.eq i32.eqz if i32.const 0 i32.const 96 - i32.const 124 + i32.const 159 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 2624 + i32.const 3808 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 16 - call $~lib/string/parseInt - f64.const 75557863725914323419136 + call $~lib/string/parseFloat + f64.const 0 f64.eq i32.eqz if i32.const 0 i32.const 96 - i32.const 125 + i32.const 160 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 2688 + i32.const 3856 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 0 - call $~lib/string/parseInt - f64.const 1 + call $~lib/string/parseFloat + f64.const 1.e+308 f64.eq i32.eqz if i32.const 0 i32.const 96 - i32.const 126 + i32.const 161 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 2720 + i32.const 3888 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 0 - call $~lib/string/parseInt - f64.const 2 + call $~lib/string/parseFloat + f64.const inf f64.eq i32.eqz if i32.const 0 i32.const 96 - i32.const 127 + i32.const 162 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 2768 + i32.const 688 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 0 - call $~lib/string/parseInt - f64.const 1 - f64.eq + call $~lib/string/parseFloat + local.tee $0 + local.get $0 + f64.ne i32.eqz if i32.const 0 i32.const 96 - i32.const 129 + i32.const 163 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 2800 + i32.const 3920 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 0 - call $~lib/string/parseInt - f64.const 2 + call $~lib/string/parseFloat + f64.const 0.1 f64.eq i32.eqz if i32.const 0 i32.const 96 - i32.const 130 + i32.const 166 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 688 + i32.const 3968 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 0 - call $~lib/string/parseInt - local.tee $0 - local.get $0 - f64.ne + call $~lib/string/parseFloat + f64.const 1e-10 + f64.eq i32.eqz if i32.const 0 i32.const 96 - i32.const 131 + i32.const 167 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 2848 + i32.const 4016 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 0 - call $~lib/string/parseInt - local.tee $0 - local.get $0 - f64.ne + call $~lib/string/parseFloat + f64.const 10 + f64.eq i32.eqz if i32.const 0 i32.const 96 - i32.const 132 + i32.const 168 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 2880 + i32.const 4064 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 0 - call $~lib/string/parseInt - local.tee $0 - local.get $0 - f64.ne + call $~lib/string/parseFloat + f64.const 1 + f64.eq i32.eqz if i32.const 0 i32.const 96 - i32.const 133 + i32.const 169 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 1168 + i32.const 4096 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 37 - call $~lib/string/parseInt - local.tee $0 - local.get $0 - f64.ne + call $~lib/string/parseFloat + f64.const 1 + f64.eq i32.eqz if i32.const 0 i32.const 96 - i32.const 134 + i32.const 170 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 2912 + i32.const 4128 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 0 - call $~lib/string/parseInt - local.tee $0 - local.get $0 - f64.ne + call $~lib/string/parseFloat + f64.const 10 + f64.eq i32.eqz if i32.const 0 i32.const 96 - i32.const 135 + i32.const 171 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 2944 + i32.const 4176 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 0 - call $~lib/string/parseInt - local.tee $0 - local.get $0 - f64.ne + call $~lib/string/parseFloat + f64.const 123456789 + f64.eq i32.eqz if i32.const 0 i32.const 96 - i32.const 136 + i32.const 172 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 2944 + i32.const 4224 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 0 - call $~lib/number/F32.parseInt - local.tee $1 - local.get $1 - f32.ne + call $~lib/string/parseFloat + f64.const 1 + f64.eq i32.eqz if i32.const 0 i32.const 96 - i32.const 137 + i32.const 173 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 2944 + i32.const 4272 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 0 - call $~lib/number/F64.parseInt - local.tee $0 - local.get $0 - f64.ne + call $~lib/string/parseFloat + f64.const 1e-60 + f64.eq i32.eqz if i32.const 0 i32.const 96 - i32.const 138 + i32.const 175 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 2976 + i32.const 4304 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 0 - call $~lib/number/I32.parseInt - global.get $~lib/number/I32.MAX_VALUE - i32.eq + call $~lib/string/parseFloat + f64.const 1.e+60 + f64.eq i32.eqz if i32.const 0 i32.const 96 - i32.const 140 + i32.const 176 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 3024 + i32.const 4336 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 0 - call $~lib/number/I64.parseInt - global.get $~lib/number/I64.MAX_VALUE - i64.eq + call $~lib/string/parseFloat + f64.const 123.4 + f64.eq i32.eqz if i32.const 0 i32.const 96 - i32.const 141 + i32.const 179 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 1792 + i32.const 4368 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 call $~lib/string/parseFloat - f64.const 0 + f64.const -0 f64.eq i32.eqz if i32.const 0 i32.const 96 - i32.const 144 + i32.const 180 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 1856 + i32.const 4416 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 @@ -15477,264 +13230,264 @@ if i32.const 0 i32.const 96 - i32.const 145 + i32.const 181 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 3280 + i32.const 4448 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 call $~lib/string/parseFloat - f64.const 1 + f64.const -1.1 f64.eq i32.eqz if i32.const 0 i32.const 96 - i32.const 146 + i32.const 182 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 3312 + i32.const 4496 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 call $~lib/string/parseFloat - f64.const 1 + f64.const 10 f64.eq i32.eqz if i32.const 0 i32.const 96 - i32.const 147 + i32.const 183 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 3344 + i32.const 4544 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 call $~lib/string/parseFloat - f64.const 1e-05 + f64.const 10 f64.eq i32.eqz if i32.const 0 i32.const 96 - i32.const 148 + i32.const 184 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 3376 + i32.const 4592 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 call $~lib/string/parseFloat - f64.const -1e-05 + f64.const 0.022 f64.eq i32.eqz if i32.const 0 i32.const 96 - i32.const 149 + i32.const 185 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 3408 + i32.const 4640 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 call $~lib/string/parseFloat - f64.const -3e-23 + f64.const 11 f64.eq i32.eqz if i32.const 0 i32.const 96 - i32.const 150 + i32.const 186 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 3456 + i32.const 2208 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 call $~lib/string/parseFloat - f64.const 3e21 + f64.const 0 f64.eq i32.eqz if i32.const 0 i32.const 96 - i32.const 151 + i32.const 187 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 3504 + i32.const 4672 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 call $~lib/string/parseFloat - f64.const 0.1 + f64.const 0 f64.eq i32.eqz if i32.const 0 i32.const 96 - i32.const 152 + i32.const 188 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 3536 + i32.const 4704 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 call $~lib/string/parseFloat - f64.const 0.1 + f64.const 0 f64.eq i32.eqz if i32.const 0 i32.const 96 - i32.const 153 + i32.const 189 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 3568 + i32.const 4736 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 call $~lib/string/parseFloat - f64.const 0.1 + f64.const 1.1 f64.eq i32.eqz if i32.const 0 i32.const 96 - i32.const 154 + i32.const 190 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 3600 + i32.const 4768 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 call $~lib/string/parseFloat - f64.const 0.25 + f64.const -1.1 f64.eq i32.eqz if i32.const 0 i32.const 96 - i32.const 155 + i32.const 191 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 3632 + i32.const 4800 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 call $~lib/string/parseFloat - f64.const 1e3 + f64.const -1.1 f64.eq i32.eqz if i32.const 0 i32.const 96 - i32.const 156 + i32.const 192 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 3664 + i32.const 4832 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 call $~lib/string/parseFloat - f64.const 1e-10 + f64.const -1.1 f64.eq i32.eqz if i32.const 0 i32.const 96 - i32.const 157 + i32.const 193 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 3712 + i32.const 4864 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 call $~lib/string/parseFloat - f64.const 1e-30 + f64.const -1.1 f64.eq i32.eqz if i32.const 0 i32.const 96 - i32.const 158 + i32.const 194 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 3760 + i32.const 4896 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 call $~lib/string/parseFloat - f64.const 1e-323 + f64.const 0 f64.eq i32.eqz if i32.const 0 i32.const 96 - i32.const 159 + i32.const 195 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 3808 + i32.const 4928 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 @@ -15747,121 +13500,120 @@ if i32.const 0 i32.const 96 - i32.const 160 + i32.const 196 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 3856 + i32.const 4960 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 call $~lib/string/parseFloat - f64.const 1.e+308 + f64.const 1 f64.eq i32.eqz if i32.const 0 i32.const 96 - i32.const 161 + i32.const 197 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 3888 + i32.const 4992 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 call $~lib/string/parseFloat - f64.const inf + f64.const 0 f64.eq i32.eqz if i32.const 0 i32.const 96 - i32.const 162 + i32.const 198 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 688 + i32.const 5024 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 call $~lib/string/parseFloat - local.tee $0 - local.get $0 - f64.ne + f64.const 0 + f64.eq i32.eqz if i32.const 0 i32.const 96 - i32.const 163 + i32.const 199 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 3920 + i32.const 5056 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 call $~lib/string/parseFloat - f64.const 0.1 + f64.const 10 f64.eq i32.eqz if i32.const 0 i32.const 96 - i32.const 166 + i32.const 200 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 3968 + i32.const 5088 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 call $~lib/string/parseFloat - f64.const 1e-10 + f64.const 10 f64.eq i32.eqz if i32.const 0 i32.const 96 - i32.const 167 + i32.const 201 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 4016 + i32.const 5136 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 call $~lib/string/parseFloat - f64.const 10 + f64.const 0 f64.eq i32.eqz if i32.const 0 i32.const 96 - i32.const 168 + i32.const 202 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 4064 + i32.const 5168 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 @@ -15874,66 +13626,66 @@ if i32.const 0 i32.const 96 - i32.const 169 + i32.const 203 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 4096 + i32.const 5200 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 call $~lib/string/parseFloat - f64.const 1 + f64.const 0.1 f64.eq i32.eqz if i32.const 0 i32.const 96 - i32.const 170 + i32.const 204 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 4128 + i32.const 5232 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 call $~lib/string/parseFloat - f64.const 10 + f64.const 1 f64.eq i32.eqz if i32.const 0 i32.const 96 - i32.const 171 + i32.const 205 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 4176 + i32.const 5264 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 call $~lib/string/parseFloat - f64.const 123456789 + f64.const 10 f64.eq i32.eqz if i32.const 0 i32.const 96 - i32.const 172 + i32.const 206 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 4224 + i32.const 5296 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 @@ -15946,192 +13698,192 @@ if i32.const 0 i32.const 96 - i32.const 173 + i32.const 207 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 4272 + i32.const 5328 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 call $~lib/string/parseFloat - f64.const 1e-60 + f64.const 0.1 f64.eq i32.eqz if i32.const 0 i32.const 96 - i32.const 175 + i32.const 208 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 4304 + i32.const 5360 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 call $~lib/string/parseFloat - f64.const 1.e+60 + f64.const 0.01 f64.eq i32.eqz if i32.const 0 i32.const 96 - i32.const 176 + i32.const 209 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 4336 + i32.const 5408 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 call $~lib/string/parseFloat - f64.const 123.4 + f64.const 0 f64.eq i32.eqz if i32.const 0 i32.const 96 - i32.const 179 + i32.const 210 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 4368 + i32.const 5440 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 call $~lib/string/parseFloat - f64.const -0 + f64.const 0 f64.eq i32.eqz if i32.const 0 i32.const 96 - i32.const 180 + i32.const 211 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 4416 + i32.const 5472 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 call $~lib/string/parseFloat - f64.const 1 + f64.const 0 f64.eq i32.eqz if i32.const 0 i32.const 96 - i32.const 181 + i32.const 212 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 4448 + i32.const 5504 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 call $~lib/string/parseFloat - f64.const -1.1 + f64.const 0.1 f64.eq i32.eqz if i32.const 0 i32.const 96 - i32.const 182 + i32.const 213 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 4496 + i32.const 5536 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 call $~lib/string/parseFloat - f64.const 10 + f64.const 0 f64.eq i32.eqz if i32.const 0 i32.const 96 - i32.const 183 + i32.const 214 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 4544 + i32.const 5568 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 call $~lib/string/parseFloat - f64.const 10 + f64.const 0 f64.eq i32.eqz if i32.const 0 i32.const 96 - i32.const 184 + i32.const 215 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 4592 + i32.const 5600 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 call $~lib/string/parseFloat - f64.const 0.022 + f64.const 1 f64.eq i32.eqz if i32.const 0 i32.const 96 - i32.const 185 + i32.const 216 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 4640 + i32.const 5632 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 call $~lib/string/parseFloat - f64.const 11 + f64.const 0.1 f64.eq i32.eqz if i32.const 0 i32.const 96 - i32.const 186 + i32.const 217 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 2208 + i32.const 5664 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 @@ -16144,12 +13896,12 @@ if i32.const 0 i32.const 96 - i32.const 187 + i32.const 218 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 4672 + i32.const 5696 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 @@ -16162,588 +13914,604 @@ if i32.const 0 i32.const 96 - i32.const 188 + i32.const 219 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 4704 + i32.const 5728 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 call $~lib/string/parseFloat - f64.const 0 + f64.const -0 f64.eq i32.eqz if i32.const 0 i32.const 96 - i32.const 189 + i32.const 220 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 4736 + i32.const 5760 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 call $~lib/string/parseFloat - f64.const 1.1 + f64.const 0 f64.eq i32.eqz if i32.const 0 i32.const 96 - i32.const 190 + i32.const 221 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 4768 + i32.const 2368 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 call $~lib/string/parseFloat - f64.const -1.1 + f64.const 0 f64.eq i32.eqz if i32.const 0 i32.const 96 - i32.const 191 + i32.const 222 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 4800 + i32.const 2880 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 call $~lib/string/parseFloat - f64.const -1.1 - f64.eq + local.tee $0 + local.get $0 + f64.ne i32.eqz if i32.const 0 i32.const 96 - i32.const 192 + i32.const 223 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 4832 + i32.const 2848 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 call $~lib/string/parseFloat - f64.const -1.1 - f64.eq + local.tee $0 + local.get $0 + f64.ne i32.eqz if i32.const 0 i32.const 96 - i32.const 193 + i32.const 224 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 4864 + i32.const 5792 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 call $~lib/string/parseFloat - f64.const -1.1 - f64.eq + local.tee $0 + local.get $0 + f64.ne i32.eqz if i32.const 0 i32.const 96 - i32.const 194 + i32.const 225 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 4896 + i32.const 5824 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 call $~lib/string/parseFloat - f64.const 0 - f64.eq + local.tee $0 + local.get $0 + f64.ne i32.eqz if i32.const 0 i32.const 96 - i32.const 195 + i32.const 226 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 4928 + i32.const 5856 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 call $~lib/string/parseFloat - f64.const 0 - f64.eq + local.tee $0 + local.get $0 + f64.ne i32.eqz if i32.const 0 i32.const 96 - i32.const 196 + i32.const 227 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 4960 + i32.const 5888 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 call $~lib/string/parseFloat - f64.const 1 - f64.eq + local.tee $0 + local.get $0 + f64.ne i32.eqz if i32.const 0 i32.const 96 - i32.const 197 + i32.const 228 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 4992 + i32.const 5920 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 call $~lib/string/parseFloat - f64.const 0 - f64.eq + local.tee $0 + local.get $0 + f64.ne i32.eqz if i32.const 0 i32.const 96 - i32.const 198 + i32.const 229 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 5024 + i32.const 5952 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 call $~lib/string/parseFloat - f64.const 0 - f64.eq + local.tee $0 + local.get $0 + f64.ne i32.eqz if i32.const 0 i32.const 96 - i32.const 199 + i32.const 230 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 5056 + i32.const 5984 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 call $~lib/string/parseFloat - f64.const 10 - f64.eq + local.tee $0 + local.get $0 + f64.ne i32.eqz if i32.const 0 i32.const 96 - i32.const 200 + i32.const 231 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 5088 + i32.const 6016 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 call $~lib/string/parseFloat - f64.const 10 - f64.eq + local.tee $0 + local.get $0 + f64.ne i32.eqz if i32.const 0 i32.const 96 - i32.const 201 + i32.const 232 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 5136 + i32.const 6048 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 call $~lib/string/parseFloat - f64.const 0 - f64.eq + local.tee $0 + local.get $0 + f64.ne i32.eqz if i32.const 0 i32.const 96 - i32.const 202 + i32.const 233 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 5168 + i32.const 6080 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 call $~lib/string/parseFloat - f64.const 1 - f64.eq + local.tee $0 + local.get $0 + f64.ne i32.eqz if i32.const 0 i32.const 96 - i32.const 203 + i32.const 234 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 5200 + i32.const 6112 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 call $~lib/string/parseFloat - f64.const 0.1 - f64.eq + local.tee $0 + local.get $0 + f64.ne i32.eqz if i32.const 0 i32.const 96 - i32.const 204 + i32.const 235 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 5232 + i32.const 6144 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 call $~lib/string/parseFloat - f64.const 1 - f64.eq + local.tee $0 + local.get $0 + f64.ne i32.eqz if i32.const 0 i32.const 96 - i32.const 205 + i32.const 236 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 5264 + i32.const 6176 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 call $~lib/string/parseFloat - f64.const 10 - f64.eq + local.tee $0 + local.get $0 + f64.ne i32.eqz if i32.const 0 i32.const 96 - i32.const 206 + i32.const 237 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 5296 + i32.const 6208 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 call $~lib/string/parseFloat - f64.const 1 - f64.eq + local.tee $0 + local.get $0 + f64.ne i32.eqz if i32.const 0 i32.const 96 - i32.const 207 + i32.const 238 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 5328 + i32.const 6240 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 call $~lib/string/parseFloat - f64.const 0.1 + f64.const 1e22 f64.eq i32.eqz if i32.const 0 i32.const 96 - i32.const 208 + i32.const 239 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 5360 + i32.const 6272 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 call $~lib/string/parseFloat - f64.const 0.01 + f64.const 1e-22 f64.eq i32.eqz if i32.const 0 i32.const 96 - i32.const 209 + i32.const 240 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 5408 + i32.const 6304 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 call $~lib/string/parseFloat - f64.const 0 + f64.const 1.e+23 f64.eq i32.eqz if i32.const 0 i32.const 96 - i32.const 210 + i32.const 241 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 5440 + i32.const 6336 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 call $~lib/string/parseFloat - f64.const 0 + f64.const 1e-23 f64.eq i32.eqz if i32.const 0 i32.const 96 - i32.const 211 + i32.const 242 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 5472 + i32.const 6368 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 call $~lib/string/parseFloat - f64.const 0 + f64.const 1.e+37 f64.eq i32.eqz if i32.const 0 i32.const 96 - i32.const 212 + i32.const 243 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 5504 + i32.const 6400 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 call $~lib/string/parseFloat - f64.const 0.1 + f64.const 1e-37 f64.eq i32.eqz if i32.const 0 i32.const 96 - i32.const 213 + i32.const 244 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 5536 + i32.const 6432 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 call $~lib/string/parseFloat - f64.const 0 + f64.const 1.e+38 f64.eq i32.eqz if i32.const 0 i32.const 96 - i32.const 214 + i32.const 245 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 5568 + i32.const 6464 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 call $~lib/string/parseFloat - f64.const 0 + f64.const 1e-38 f64.eq i32.eqz if i32.const 0 i32.const 96 - i32.const 215 + i32.const 246 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 5600 + i32.const 6496 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 call $~lib/string/parseFloat - f64.const 1 + global.get $~lib/builtins/f64.EPSILON f64.eq i32.eqz if i32.const 0 i32.const 96 - i32.const 216 + i32.const 247 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 5632 + i32.const 6560 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 call $~lib/string/parseFloat - f64.const 0.1 + global.get $~lib/builtins/f64.MAX_VALUE f64.eq i32.eqz if i32.const 0 i32.const 96 - i32.const 217 + i32.const 248 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 5664 + i32.const 6640 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 call $~lib/string/parseFloat - f64.const 0 + global.get $~lib/builtins/f64.MIN_VALUE f64.eq i32.eqz if i32.const 0 i32.const 96 - i32.const 218 + i32.const 249 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 5696 + i32.const 6672 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 call $~lib/string/parseFloat - f64.const 0 + f64.const 1.e+308 f64.eq i32.eqz if i32.const 0 i32.const 96 - i32.const 219 + i32.const 250 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 5728 + i32.const 6720 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 call $~lib/string/parseFloat - f64.const -0 + f64.const 1 f64.eq i32.eqz if i32.const 0 i32.const 96 - i32.const 220 + i32.const 251 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 5760 + i32.const 6864 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 @@ -16756,220 +14524,212 @@ if i32.const 0 i32.const 96 - i32.const 221 + i32.const 252 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 2368 + i32.const 6912 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 call $~lib/string/parseFloat - f64.const 0 + f64.const inf f64.eq i32.eqz if i32.const 0 i32.const 96 - i32.const 222 + i32.const 253 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 2880 + i32.const 6960 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 call $~lib/string/parseFloat - local.tee $0 - local.get $0 - f64.ne + f64.const 0 + f64.eq i32.eqz if i32.const 0 i32.const 96 - i32.const 223 + i32.const 254 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 2848 + i32.const 7008 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 call $~lib/string/parseFloat - local.tee $0 - local.get $0 - f64.ne + f64.const inf + f64.neg + f64.eq i32.eqz if i32.const 0 i32.const 96 - i32.const 224 + i32.const 255 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 5792 + i32.const 7056 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 call $~lib/string/parseFloat - local.tee $0 - local.get $0 - f64.ne + f64.const 0 + f64.eq i32.eqz if i32.const 0 i32.const 96 - i32.const 225 + i32.const 256 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 5824 + i32.const 7104 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 call $~lib/string/parseFloat - local.tee $0 - local.get $0 - f64.ne + f64.const inf + f64.eq i32.eqz if i32.const 0 i32.const 96 - i32.const 226 + i32.const 257 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 5856 + i32.const 7152 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 call $~lib/string/parseFloat - local.tee $0 - local.get $0 - f64.ne + f64.const inf + f64.eq i32.eqz if i32.const 0 i32.const 96 - i32.const 227 + i32.const 258 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 5888 + i32.const 7184 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 call $~lib/string/parseFloat - local.tee $0 - local.get $0 - f64.ne + f64.const inf + f64.eq i32.eqz if i32.const 0 i32.const 96 - i32.const 228 + i32.const 259 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 5920 + i32.const 7232 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 call $~lib/string/parseFloat - local.tee $0 - local.get $0 - f64.ne + f64.const inf + f64.eq i32.eqz if i32.const 0 i32.const 96 - i32.const 229 + i32.const 260 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 5952 + i32.const 7280 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 call $~lib/string/parseFloat - local.tee $0 - local.get $0 - f64.ne + f64.const inf + f64.neg + f64.eq i32.eqz if i32.const 0 i32.const 96 - i32.const 230 + i32.const 261 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 5984 + i32.const 7328 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 call $~lib/string/parseFloat - local.tee $0 - local.get $0 - f64.ne + f64.const inf + f64.eq i32.eqz if i32.const 0 i32.const 96 - i32.const 231 + i32.const 262 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 6016 + i32.const 7376 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 call $~lib/string/parseFloat - local.tee $0 - local.get $0 - f64.ne + f64.const inf + f64.eq i32.eqz if i32.const 0 i32.const 96 - i32.const 232 + i32.const 263 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 6048 + i32.const 7424 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 @@ -16983,12 +14743,12 @@ if i32.const 0 i32.const 96 - i32.const 233 + i32.const 264 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 6080 + i32.const 7456 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 @@ -17002,12 +14762,12 @@ if i32.const 0 i32.const 96 - i32.const 234 + i32.const 265 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 6112 + i32.const 7504 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 @@ -17021,521 +14781,564 @@ if i32.const 0 i32.const 96 - i32.const 235 + i32.const 266 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 6144 + i32.const 7552 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 call $~lib/string/parseFloat - local.tee $0 - local.get $0 - f64.ne + f64.const 0 + f64.eq i32.eqz if i32.const 0 i32.const 96 - i32.const 236 + i32.const 270 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 6176 + i32.const 7744 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 call $~lib/string/parseFloat - local.tee $0 - local.get $0 - f64.ne + global.get $std/string/Ox1p_1073 + f64.eq i32.eqz if i32.const 0 i32.const 96 - i32.const 237 + i32.const 283 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 6208 + i32.const 7936 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 call $~lib/string/parseFloat - local.tee $0 - local.get $0 - f64.ne + global.get $std/string/Ox1_0000000000001p_1022 + f64.eq i32.eqz if i32.const 0 i32.const 96 - i32.const 238 + i32.const 287 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 6240 + i32.const 8128 + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=28 + local.get $4 + i32.const 8288 + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=32 + local.get $4 + call $~lib/string/String.__concat + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=20 + local.get $4 + i32.const 8448 + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=24 + local.get $4 + call $~lib/string/String.__concat + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=12 + local.get $4 + i32.const 8608 + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=16 + local.get $4 + call $~lib/string/String.__concat + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + i32.const 8768 + 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 local.get $4 i32.store local.get $4 call $~lib/string/parseFloat - f64.const 1e22 + global.get $~lib/builtins/f64.MAX_VALUE f64.eq i32.eqz if i32.const 0 i32.const 96 - i32.const 239 + i32.const 290 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 6272 + i32.const 8928 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 call $~lib/string/parseFloat - f64.const 1e-22 + f64.const 9.753531888799502e-104 f64.eq i32.eqz if i32.const 0 i32.const 96 - i32.const 240 + i32.const 308 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 6304 + i32.const 9040 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 call $~lib/string/parseFloat - f64.const 1.e+23 + f64.const 0.5961860348131807 f64.eq i32.eqz if i32.const 0 i32.const 96 - i32.const 241 + i32.const 309 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 6336 + i32.const 9152 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 call $~lib/string/parseFloat - f64.const 1e-23 + f64.const 0.18150131692180388 f64.eq i32.eqz if i32.const 0 i32.const 96 - i32.const 242 + i32.const 310 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 6368 + i32.const 9264 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 call $~lib/string/parseFloat - f64.const 1.e+37 + f64.const 0.42070823575344535 f64.eq i32.eqz if i32.const 0 i32.const 96 - i32.const 243 + i32.const 311 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 6400 + i32.const 9376 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 call $~lib/string/parseFloat - f64.const 1e-37 + f64.const 0.6654686306516261 f64.eq i32.eqz if i32.const 0 i32.const 96 - i32.const 244 + i32.const 312 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 6432 + i32.const 9488 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 call $~lib/string/parseFloat - f64.const 1.e+38 + f64.const 0.6101852922970868 f64.eq i32.eqz if i32.const 0 i32.const 96 - i32.const 245 + i32.const 313 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 6464 + i32.const 9600 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 call $~lib/string/parseFloat - f64.const 1e-38 + f64.const 0.7696695208236968 f64.eq i32.eqz if i32.const 0 i32.const 96 - i32.const 246 + i32.const 314 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 6496 + i32.const 9712 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 call $~lib/string/parseFloat - global.get $~lib/builtins/f64.EPSILON + f64.const 0.25050653222286823 f64.eq i32.eqz if i32.const 0 i32.const 96 - i32.const 247 + i32.const 315 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 6560 + i32.const 9824 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 call $~lib/string/parseFloat - global.get $~lib/builtins/f64.MAX_VALUE + f64.const 0.2740037230228005 f64.eq i32.eqz if i32.const 0 i32.const 96 - i32.const 248 + i32.const 316 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 6640 + i32.const 9936 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 call $~lib/string/parseFloat - global.get $~lib/builtins/f64.MIN_VALUE + f64.const 0.20723093500497428 f64.eq i32.eqz if i32.const 0 i32.const 96 - i32.const 249 + i32.const 317 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 6672 + i32.const 10048 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 call $~lib/string/parseFloat - f64.const 1.e+308 + f64.const 7.900280238081605 f64.eq i32.eqz if i32.const 0 i32.const 96 - i32.const 250 + i32.const 318 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 6720 + i32.const 10160 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 call $~lib/string/parseFloat - f64.const 1 + f64.const 98.22860653737297 f64.eq i32.eqz if i32.const 0 i32.const 96 - i32.const 251 + i32.const 319 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 6864 + i32.const 10272 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 call $~lib/string/parseFloat - f64.const 0 + f64.const 746.894972319037 f64.eq i32.eqz if i32.const 0 i32.const 96 - i32.const 252 + i32.const 320 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 6912 + i32.const 10384 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 call $~lib/string/parseFloat - f64.const inf + f64.const 1630.2683202827284 f64.eq i32.eqz if i32.const 0 i32.const 96 - i32.const 253 + i32.const 321 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 6960 + i32.const 10496 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 call $~lib/string/parseFloat - f64.const 0 + f64.const 46371.68629719171 f64.eq i32.eqz if i32.const 0 i32.const 96 - i32.const 254 + i32.const 322 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 7008 + i32.const 10608 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 call $~lib/string/parseFloat - f64.const inf - f64.neg + f64.const 653780.5944497711 f64.eq i32.eqz if i32.const 0 i32.const 96 - i32.const 255 + i32.const 323 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 7056 + i32.const 10720 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 call $~lib/string/parseFloat - f64.const 0 + f64.const 234632.43565024371 f64.eq i32.eqz if i32.const 0 i32.const 96 - i32.const 256 + i32.const 324 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 7104 + i32.const 10832 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 call $~lib/string/parseFloat - f64.const inf + f64.const 97094817.16420048 f64.eq i32.eqz if i32.const 0 i32.const 96 - i32.const 257 + i32.const 325 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 7152 + i32.const 10944 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 call $~lib/string/parseFloat - f64.const inf + f64.const 499690852.20518744 f64.eq i32.eqz if i32.const 0 i32.const 96 - i32.const 258 + i32.const 326 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 7184 + i32.const 11056 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 call $~lib/string/parseFloat - f64.const inf + f64.const 7925201200557245595648 f64.eq i32.eqz if i32.const 0 i32.const 96 - i32.const 259 + i32.const 327 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 7232 + i32.const 11168 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 call $~lib/string/parseFloat - f64.const inf + f64.const 6096564585983177528398588e5 f64.eq i32.eqz if i32.const 0 i32.const 96 - i32.const 260 + i32.const 328 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 7280 + i32.const 11280 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 call $~lib/string/parseFloat - f64.const inf - f64.neg + f64.const 4800416117477028695992383e42 f64.eq i32.eqz if i32.const 0 i32.const 96 - i32.const 261 + i32.const 329 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 7328 + i32.const 11392 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 call $~lib/string/parseFloat - f64.const inf + f64.const 8524829079817968137287277e80 f64.eq i32.eqz if i32.const 0 i32.const 96 - i32.const 262 + i32.const 330 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 7376 + i32.const 11504 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 call $~lib/string/parseFloat - f64.const inf + f64.const 3271239291709782092398754e243 f64.eq i32.eqz if i32.const 0 i32.const 96 - i32.const 263 + i32.const 331 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 7424 + i32.const 11616 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 @@ -17549,903 +15352,1044 @@ if i32.const 0 i32.const 96 - i32.const 264 + i32.const 334 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 7456 + i32.const 11648 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 call $~lib/string/parseFloat - local.tee $0 - local.get $0 - f64.ne + f64.const 0.1 + f64.eq i32.eqz if i32.const 0 i32.const 96 - i32.const 265 + i32.const 335 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 7504 + global.get $~lib/memory/__stack_pointer + i32.const 784 + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store + local.get $4 + i32.const 11680 + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + call $~lib/string/String.__concat + local.tee $2 + i32.store offset=36 + local.get $2 + i32.const 11712 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 - i32.store + i32.store offset=4 local.get $4 - call $~lib/string/parseFloat - local.tee $0 - local.get $0 - f64.ne + call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 96 - i32.const 266 - i32.const 1 + i32.const 339 + i32.const 3 call $~lib/builtins/abort unreachable end - i32.const 7552 + local.get $2 + i32.const 784 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 - i32.store + i32.store offset=4 local.get $4 - call $~lib/string/parseFloat - f64.const 0 - f64.eq + call $~lib/string/String.__ne i32.eqz if i32.const 0 i32.const 96 - i32.const 270 - i32.const 1 + i32.const 340 + i32.const 3 call $~lib/builtins/abort unreachable end - i32.const 7744 + i32.const 688 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - call $~lib/string/parseFloat - global.get $std/string/Ox1p_1073 - f64.eq + i32.const 688 + 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 96 - i32.const 283 + i32.const 342 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 7936 + i32.const 688 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - call $~lib/string/parseFloat - global.get $std/string/Ox1_0000000000001p_1022 - f64.eq + global.get $std/string/nullStr + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + call $~lib/string/String.__ne i32.eqz if i32.const 0 i32.const 96 - i32.const 287 + i32.const 344 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 8128 - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=28 - local.get $4 - i32.const 8288 - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=32 - local.get $4 - call $~lib/string/String.__concat - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=20 - local.get $4 - i32.const 8448 + global.get $std/string/nullStr local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 - i32.store offset=24 + i32.store local.get $4 - call $~lib/string/String.__concat + i32.const 688 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 - i32.store offset=12 + i32.store offset=4 local.get $4 - i32.const 8608 + call $~lib/string/String.__ne + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 346 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 784 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 - i32.store offset=16 + i32.store local.get $4 - call $~lib/string/String.__concat + i32.const 11680 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store offset=4 local.get $4 - i32.const 8768 + call $~lib/string/String.__ne + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 348 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 784 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 - i32.store offset=8 + i32.store local.get $4 - call $~lib/string/String.__concat + i32.const 784 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 - i32.store + i32.store offset=4 local.get $4 - call $~lib/string/parseFloat - global.get $~lib/builtins/f64.MAX_VALUE - f64.eq + call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 96 - i32.const 290 + i32.const 349 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 8928 + i32.const 11744 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - call $~lib/string/parseFloat - f64.const 9.753531888799502e-104 - f64.eq + i32.const 11776 + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + call $~lib/string/String.__ne i32.eqz if i32.const 0 i32.const 96 - i32.const 308 + i32.const 351 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 9040 + i32.const 11744 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - call $~lib/string/parseFloat - f64.const 0.5961860348131807 - f64.eq + i32.const 11744 + 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 96 - i32.const 309 + i32.const 352 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 9152 + i32.const 11808 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - call $~lib/string/parseFloat - f64.const 0.18150131692180388 - f64.eq + i32.const 11840 + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + call $~lib/string/String.__ne i32.eqz if i32.const 0 i32.const 96 - i32.const 310 + i32.const 354 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 9264 + i32.const 11872 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - call $~lib/string/parseFloat - f64.const 0.42070823575344535 - f64.eq + i32.const 11904 + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + call $~lib/string/String.__ne i32.eqz if i32.const 0 i32.const 96 - i32.const 311 + i32.const 356 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 9376 + i32.const 11936 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - call $~lib/string/parseFloat - f64.const 0.6654686306516261 - f64.eq + i32.const 11936 + 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 96 - i32.const 312 + i32.const 357 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 9488 + i32.const 11936 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - call $~lib/string/parseFloat - f64.const 0.6101852922970868 - f64.eq + i32.const 11984 + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + call $~lib/string/String.__ne i32.eqz if i32.const 0 i32.const 96 - i32.const 313 + i32.const 359 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 9600 + i32.const 12032 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - call $~lib/string/parseFloat - f64.const 0.7696695208236968 - f64.eq + i32.const 12080 + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + call $~lib/string/String.__ne i32.eqz if i32.const 0 i32.const 96 - i32.const 314 + i32.const 361 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 9712 + i32.const 11680 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - call $~lib/string/parseFloat - f64.const 0.25050653222286823 - f64.eq + i32.const 784 + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + call $~lib/string/String.__gt i32.eqz if i32.const 0 i32.const 96 - i32.const 315 + i32.const 363 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 9824 + i32.const 12128 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - call $~lib/string/parseFloat - f64.const 0.2740037230228005 - f64.eq + i32.const 784 + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + call $~lib/string/String.__gt i32.eqz if i32.const 0 i32.const 96 - i32.const 316 + i32.const 364 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 9936 + i32.const 12128 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - call $~lib/string/parseFloat - f64.const 0.20723093500497428 - f64.eq + i32.const 12160 + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + call $~lib/string/String.__gte i32.eqz if i32.const 0 i32.const 96 - i32.const 317 + i32.const 365 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 10048 + i32.const 12128 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - call $~lib/string/parseFloat - f64.const 7.900280238081605 - f64.eq + i32.const 11712 + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + call $~lib/string/String.__gt i32.eqz if i32.const 0 i32.const 96 - i32.const 318 + i32.const 366 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 10160 + i32.const 12128 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - call $~lib/string/parseFloat - f64.const 98.22860653737297 - f64.eq + i32.const 11712 + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + call $~lib/string/String.__lt + i32.eqz i32.eqz if i32.const 0 i32.const 96 - i32.const 319 + i32.const 367 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 10272 + i32.const 11680 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - call $~lib/string/parseFloat - f64.const 746.894972319037 - f64.eq + global.get $std/string/nullStr + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + call $~lib/string/String.__lt + i32.eqz i32.eqz if i32.const 0 i32.const 96 - i32.const 320 + i32.const 370 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 10384 + global.get $std/string/nullStr local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - call $~lib/string/parseFloat - f64.const 1630.2683202827284 - f64.eq + i32.const 11680 + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + call $~lib/string/String.__lt + i32.eqz i32.eqz if i32.const 0 i32.const 96 - i32.const 321 + i32.const 372 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 10496 + i32.const 1104 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - call $~lib/string/parseFloat - f64.const 46371.68629719171 - f64.eq + i32.const 688 + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + call $~lib/string/String.__gt i32.eqz if i32.const 0 i32.const 96 - i32.const 322 + i32.const 374 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 10608 + i32.const 688 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - call $~lib/string/parseFloat - f64.const 653780.5944497711 - f64.eq + i32.const 1104 + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + call $~lib/string/String.__lt i32.eqz if i32.const 0 i32.const 96 - i32.const 323 + i32.const 375 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 10720 + i32.const 1104 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - call $~lib/string/parseFloat - f64.const 234632.43565024371 - f64.eq + i32.const 688 + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + call $~lib/string/String.__gte i32.eqz if i32.const 0 i32.const 96 - i32.const 324 + i32.const 376 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 10832 + i32.const 688 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - call $~lib/string/parseFloat - f64.const 97094817.16420048 - f64.eq + i32.const 1104 + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + call $~lib/string/String.__lte i32.eqz if i32.const 0 i32.const 96 - i32.const 325 + i32.const 377 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 10944 + i32.const 1104 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - call $~lib/string/parseFloat - f64.const 499690852.20518744 - f64.eq + i32.const 688 + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + call $~lib/string/String.__lt + i32.eqz i32.eqz if i32.const 0 i32.const 96 - i32.const 326 + i32.const 378 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 11056 + i32.const 688 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - call $~lib/string/parseFloat - f64.const 7925201200557245595648 - f64.eq + i32.const 1104 + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + call $~lib/string/String.__gt + i32.eqz i32.eqz if i32.const 0 i32.const 96 - i32.const 327 + i32.const 379 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 11168 + i32.const 688 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - call $~lib/string/parseFloat - f64.const 6096564585983177528398588e5 - f64.eq + i32.const 688 + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + call $~lib/string/String.__lt + i32.eqz i32.eqz if i32.const 0 i32.const 96 - i32.const 328 + i32.const 380 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 11280 + i32.const 688 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - call $~lib/string/parseFloat - f64.const 4800416117477028695992383e42 - f64.eq + i32.const 688 + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + call $~lib/string/String.__gt + i32.eqz i32.eqz if i32.const 0 i32.const 96 - i32.const 329 + i32.const 381 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 11392 + i32.const 688 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - call $~lib/string/parseFloat - f64.const 8524829079817968137287277e80 - f64.eq + i32.const 688 + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + call $~lib/string/String.__gte i32.eqz if i32.const 0 i32.const 96 - i32.const 330 + i32.const 382 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 11504 + i32.const 688 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - call $~lib/string/parseFloat - f64.const 3271239291709782092398754e243 - f64.eq + i32.const 688 + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + call $~lib/string/String.__lte i32.eqz if i32.const 0 i32.const 96 - i32.const 331 + i32.const 383 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 11616 + i32.const 1856 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - call $~lib/string/parseFloat - local.tee $0 - local.get $0 - f64.ne + i32.const 12192 + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + call $~lib/string/String.__lt i32.eqz if i32.const 0 i32.const 96 - i32.const 334 + i32.const 385 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 11648 + i32.const 12192 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - call $~lib/string/parseFloat - f64.const 0.1 - f64.eq + i32.const 1856 + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + call $~lib/string/String.__gt i32.eqz if i32.const 0 i32.const 96 - i32.const 335 + i32.const 386 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 784 + i32.const 12224 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 11680 + i32.const 12192 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store offset=4 local.get $4 - call $~lib/string/String.__concat - local.tee $2 - i32.store offset=36 - local.get $2 + call $~lib/string/String.__lt + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 387 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 12192 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 11712 + i32.const 12224 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store offset=4 local.get $4 - call $~lib/string/String.__eq + call $~lib/string/String.__gt + i32.eqz i32.eqz if i32.const 0 i32.const 96 - i32.const 339 - i32.const 3 + i32.const 388 + i32.const 1 call $~lib/builtins/abort unreachable end - local.get $2 + i32.const 12224 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 784 + i32.const 12192 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store offset=4 local.get $4 - call $~lib/string/String.__ne + call $~lib/string/String.__gt i32.eqz if i32.const 0 i32.const 96 - i32.const 340 - i32.const 3 + i32.const 389 + i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 688 + i32.const 12192 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 688 + i32.const 12224 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store offset=4 local.get $4 - call $~lib/string/String.__eq + call $~lib/string/String.__lt i32.eqz if i32.const 0 i32.const 96 - i32.const 342 + i32.const 390 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 688 + i32.const 12224 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - global.get $std/string/nullStr + i32.const 12224 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store offset=4 local.get $4 - call $~lib/string/String.__ne + call $~lib/string/String.__lt + i32.eqz i32.eqz if i32.const 0 i32.const 96 - i32.const 344 + i32.const 391 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $std/string/nullStr + i32.const 12224 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 688 + i32.const 12224 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store offset=4 local.get $4 - call $~lib/string/String.__ne + call $~lib/string/String.__gt + i32.eqz i32.eqz if i32.const 0 i32.const 96 - i32.const 346 + i32.const 392 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 784 + i32.const 12224 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 11680 + i32.const 12224 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store offset=4 local.get $4 - call $~lib/string/String.__ne + call $~lib/string/String.__lte i32.eqz if i32.const 0 i32.const 96 - i32.const 348 + i32.const 393 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 784 + i32.const 12224 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 784 + i32.const 12224 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store offset=4 local.get $4 - call $~lib/string/String.__eq + call $~lib/string/String.__gte i32.eqz if i32.const 0 i32.const 96 - i32.const 349 + i32.const 394 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 11744 + i32.const 12192 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 11776 + i32.const 12256 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store offset=4 local.get $4 - call $~lib/string/String.__ne + call $~lib/string/String.__gte + i32.eqz i32.eqz if i32.const 0 i32.const 96 - i32.const 351 + i32.const 395 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 11744 + i32.const 12256 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 11744 + i32.const 12192 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store offset=4 local.get $4 - call $~lib/string/String.__eq + call $~lib/string/String.__gte i32.eqz if i32.const 0 i32.const 96 - i32.const 352 + i32.const 396 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 11808 + i32.const 12192 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 11840 + i32.const 12256 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store offset=4 local.get $4 - call $~lib/string/String.__ne + call $~lib/string/String.__lte i32.eqz if i32.const 0 i32.const 96 - i32.const 354 + i32.const 397 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 11872 + i32.const 1856 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 11904 + i32.const 1856 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store offset=4 local.get $4 - call $~lib/string/String.__ne + call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 96 - i32.const 356 + i32.const 398 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 11936 + i32.const 12224 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 11936 + i32.const 12224 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 @@ -18456,40 +16400,40 @@ if i32.const 0 i32.const 96 - i32.const 357 + i32.const 399 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 11936 + i32.const 1168 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 11984 + i32.const 1168 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store offset=4 local.get $4 - call $~lib/string/String.__ne + call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 96 - i32.const 359 + i32.const 400 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 12032 + i32.const 1168 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 12080 + i32.const 12288 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 @@ -18500,298 +16444,365 @@ if i32.const 0 i32.const 96 - i32.const 361 + i32.const 402 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 11680 + i32.const 12320 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 784 + i32.const 12320 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store offset=4 local.get $4 - call $~lib/string/String.__gt + call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 96 - i32.const 363 + i32.const 403 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 12128 + i32.const 12352 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 784 + i32.const 12320 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store offset=4 local.get $4 - call $~lib/string/String.__gt + call $~lib/string/String.__ne i32.eqz if i32.const 0 i32.const 96 - i32.const 364 + i32.const 405 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 12128 + global.get $~lib/memory/__stack_pointer + i32.const 65377 + call $~lib/string/String.fromCodePoint + local.tee $2 + i32.store offset=36 + global.get $~lib/memory/__stack_pointer + i32.const 55296 + call $~lib/string/String.fromCodePoint local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 12160 + i32.const 56322 + call $~lib/string/String.fromCodePoint local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store offset=4 local.get $4 - call $~lib/string/String.__gte + call $~lib/string/String.__concat + local.tee $3 + i32.store offset=40 + local.get $2 + local.get $3 + call $~lib/string/String.__gt i32.eqz if i32.const 0 i32.const 96 - i32.const 365 - i32.const 1 + i32.const 410 + i32.const 3 call $~lib/builtins/abort unreachable end - i32.const 12128 + i32.const 1168 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 11712 - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - call $~lib/string/String.__gt + call $~lib/string/String#get:length + i32.const 3 + i32.eq i32.eqz if i32.const 0 i32.const 96 - i32.const 366 + i32.const 413 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 12128 + i32.const 688 + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=8 + local.get $4 + i32.const 100 + call $~lib/string/String#repeat local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 11712 + i32.const 688 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store offset=4 local.get $4 - call $~lib/string/String.__lt - i32.eqz + call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 96 - i32.const 367 + i32.const 415 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 11680 + i32.const 784 + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=8 + local.get $4 + i32.const 0 + call $~lib/string/String#repeat local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - global.get $std/string/nullStr + i32.const 688 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store offset=4 local.get $4 - call $~lib/string/String.__lt - i32.eqz + call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 96 - i32.const 370 + i32.const 416 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $std/string/nullStr + i32.const 784 + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=8 + local.get $4 + i32.const 1 + call $~lib/string/String#repeat local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 11680 + i32.const 784 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store offset=4 local.get $4 - call $~lib/string/String.__lt - i32.eqz + call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 96 - i32.const 372 + i32.const 417 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 1104 + i32.const 784 + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=8 + local.get $4 + i32.const 2 + call $~lib/string/String#repeat local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 688 + i32.const 12160 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store offset=4 local.get $4 - call $~lib/string/String.__gt + call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 96 - i32.const 374 + i32.const 418 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 688 + i32.const 784 + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=8 + local.get $4 + i32.const 3 + call $~lib/string/String#repeat local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 1104 + i32.const 12432 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store offset=4 local.get $4 - call $~lib/string/String.__lt + call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 96 - i32.const 375 + i32.const 419 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 1104 + i32.const 11712 + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=8 + local.get $4 + i32.const 4 + call $~lib/string/String#repeat local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 688 + i32.const 12464 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store offset=4 local.get $4 - call $~lib/string/String.__gte + call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 96 - i32.const 376 + i32.const 420 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 688 + i32.const 784 + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=8 + local.get $4 + i32.const 5 + call $~lib/string/String#repeat local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 1104 + i32.const 12512 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store offset=4 local.get $4 - call $~lib/string/String.__lte + call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 96 - i32.const 377 + i32.const 421 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 1104 + i32.const 784 + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=8 + local.get $4 + i32.const 6 + call $~lib/string/String#repeat local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 688 + i32.const 12544 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store offset=4 local.get $4 - call $~lib/string/String.__lt - i32.eqz + call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 96 - i32.const 378 + i32.const 422 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 688 + i32.const 784 + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=8 + local.get $4 + i32.const 7 + call $~lib/string/String#repeat local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 1104 + i32.const 12576 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store offset=4 local.get $4 - call $~lib/string/String.__gt - i32.eqz + call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 96 - i32.const 379 + i32.const 423 i32.const 1 call $~lib/builtins/abort unreachable @@ -18800,29 +16811,24 @@ local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 - i32.store + i32.store offset=8 local.get $4 i32.const 688 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 - i32.store offset=4 + i32.store offset=12 local.get $4 - call $~lib/string/String.__lt - i32.eqz - i32.eqz - if - i32.const 0 - i32.const 96 - i32.const 380 - i32.const 1 - call $~lib/builtins/abort - unreachable - end i32.const 688 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 + i32.store offset=16 + local.get $4 + call $~lib/string/String#replace + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 i32.store local.get $4 i32.const 688 @@ -18831,13 +16837,12 @@ local.get $4 i32.store offset=4 local.get $4 - call $~lib/string/String.__gt - i32.eqz + call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 96 - i32.const 381 + i32.const 425 i32.const 1 call $~lib/builtins/abort unreachable @@ -18846,366 +16851,347 @@ local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 - i32.store + i32.store offset=8 local.get $4 i32.const 688 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 - i32.store offset=4 + i32.store offset=12 local.get $4 - call $~lib/string/String.__gte - i32.eqz - if - i32.const 0 - i32.const 96 - i32.const 382 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - i32.const 688 + i32.const 2880 + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=16 + local.get $4 + call $~lib/string/String#replace local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 688 + i32.const 2880 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store offset=4 local.get $4 - call $~lib/string/String.__lte + call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 96 - i32.const 383 + i32.const 426 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 1856 + i32.const 2880 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 - i32.store + i32.store offset=8 local.get $4 - i32.const 12192 + i32.const 2880 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 - i32.store offset=4 + i32.store offset=12 local.get $4 - call $~lib/string/String.__lt - i32.eqz - if - i32.const 0 - i32.const 96 - i32.const 385 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - i32.const 12192 + i32.const 688 + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=16 + local.get $4 + call $~lib/string/String#replace local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 1856 + i32.const 688 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store offset=4 local.get $4 - call $~lib/string/String.__gt + call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 96 - i32.const 386 + i32.const 427 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 12224 + i32.const 2880 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 - i32.store + i32.store offset=8 local.get $4 - i32.const 12192 + i32.const 688 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 - i32.store offset=4 + i32.store offset=12 local.get $4 - call $~lib/string/String.__lt - i32.eqz - i32.eqz - if - i32.const 0 - i32.const 96 - i32.const 387 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - i32.const 12192 + i32.const 688 + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=16 + local.get $4 + call $~lib/string/String#replace local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 12224 + i32.const 2880 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store offset=4 local.get $4 - call $~lib/string/String.__gt - i32.eqz + call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 96 - i32.const 388 + i32.const 428 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 12224 + i32.const 1104 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 - i32.store + i32.store offset=8 local.get $4 - i32.const 12192 + i32.const 2848 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 - i32.store offset=4 + i32.store offset=12 local.get $4 - call $~lib/string/String.__gt - i32.eqz - if - i32.const 0 - i32.const 96 - i32.const 389 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - i32.const 12192 + i32.const 2880 + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=16 + local.get $4 + call $~lib/string/String#replace local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 12224 + i32.const 1104 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store offset=4 local.get $4 - call $~lib/string/String.__lt + call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 96 - i32.const 390 + i32.const 429 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 12224 + i32.const 1104 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 - i32.store + i32.store offset=8 local.get $4 - i32.const 12224 + i32.const 1104 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 - i32.store offset=4 + i32.store offset=12 local.get $4 - call $~lib/string/String.__lt - i32.eqz - i32.eqz - if - i32.const 0 - i32.const 96 - i32.const 391 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - i32.const 12224 + i32.const 2880 + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=16 + local.get $4 + call $~lib/string/String#replace local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 12224 + i32.const 2880 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store offset=4 local.get $4 - call $~lib/string/String.__gt - i32.eqz + call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 96 - i32.const 392 + i32.const 430 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 12224 + i32.const 1104 + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=8 + local.get $4 + i32.const 1584 + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=12 + local.get $4 + i32.const 2880 + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=16 + local.get $4 + call $~lib/string/String#replace local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 12224 + i32.const 1104 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store offset=4 local.get $4 - call $~lib/string/String.__lte + call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 96 - i32.const 393 + i32.const 431 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 12224 + i32.const 1104 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 - i32.store + i32.store offset=8 local.get $4 - i32.const 12224 + i32.const 11712 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 - i32.store offset=4 + i32.store offset=12 local.get $4 - call $~lib/string/String.__gte - i32.eqz - if - i32.const 0 - i32.const 96 - i32.const 394 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - i32.const 12192 + i32.const 11712 + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=16 + local.get $4 + call $~lib/string/String#replace local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 12256 + i32.const 1104 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store offset=4 local.get $4 - call $~lib/string/String.__gte - i32.eqz + call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 96 - i32.const 395 + i32.const 432 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 12256 + i32.const 12624 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 - i32.store + i32.store offset=8 local.get $4 - i32.const 12192 + i32.const 2848 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 - i32.store offset=4 + i32.store offset=12 local.get $4 - call $~lib/string/String.__gte - i32.eqz - if - i32.const 0 - i32.const 96 - i32.const 396 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - i32.const 12192 + i32.const 2880 + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=16 + local.get $4 + call $~lib/string/String#replace local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 12256 + i32.const 12656 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store offset=4 local.get $4 - call $~lib/string/String.__lte + call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 96 - i32.const 397 + i32.const 433 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 1856 + i32.const 1104 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 - i32.store + i32.store offset=8 local.get $4 - i32.const 1856 + i32.const 688 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 - i32.store offset=4 + i32.store offset=12 local.get $4 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 96 - i32.const 398 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - i32.const 12224 + i32.const 2880 + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=16 + local.get $4 + call $~lib/string/String#replace local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 12224 + i32.const 12688 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 @@ -19216,18 +17202,36 @@ if i32.const 0 i32.const 96 - i32.const 399 + i32.const 434 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 1168 + i32.const 12720 + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=8 + local.get $4 + i32.const 12752 + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=12 + local.get $4 + i32.const 2880 + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=16 + local.get $4 + call $~lib/string/String#replace local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 1168 + i32.const 12688 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 @@ -19238,40 +17242,36 @@ if i32.const 0 i32.const 96 - i32.const 400 + i32.const 435 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 1168 + i32.const 1104 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 - i32.store + i32.store offset=8 local.get $4 - i32.const 12288 + i32.const 12784 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 - i32.store offset=4 + i32.store offset=12 local.get $4 - call $~lib/string/String.__ne - i32.eqz - if - i32.const 0 - i32.const 96 - i32.const 402 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - i32.const 12320 + i32.const 12816 + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=16 + local.get $4 + call $~lib/string/String#replace local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 12320 + i32.const 12848 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 @@ -19282,110 +17282,116 @@ if i32.const 0 i32.const 96 - i32.const 403 + i32.const 436 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 12352 + i32.const 1104 + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=8 + local.get $4 + i32.const 12784 + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=12 + local.get $4 + i32.const 688 + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=16 + local.get $4 + call $~lib/string/String#replace local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 12320 + i32.const 11712 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store offset=4 local.get $4 - call $~lib/string/String.__ne + call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 96 - i32.const 405 + i32.const 437 i32.const 1 call $~lib/builtins/abort unreachable end + i32.const 688 + local.set $4 global.get $~lib/memory/__stack_pointer - i32.const 65377 - call $~lib/string/String.fromCodePoint - local.tee $2 - i32.store offset=36 - global.get $~lib/memory/__stack_pointer - i32.const 55296 - call $~lib/string/String.fromCodePoint + local.get $4 + i32.store offset=8 + local.get $4 + i32.const 688 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 - i32.store + i32.store offset=12 local.get $4 - i32.const 56322 - call $~lib/string/String.fromCodePoint + i32.const 1104 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 - i32.store offset=4 + i32.store offset=16 local.get $4 - call $~lib/string/String.__concat - local.tee $3 - i32.store offset=40 - local.get $2 + call $~lib/string/String#replaceAll local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - local.get $3 + i32.const 1104 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store offset=4 local.get $4 - call $~lib/string/String.__gt + call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 96 - i32.const 410 - i32.const 3 + i32.const 439 + i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 1168 + i32.const 1104 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 - i32.store + i32.store offset=8 local.get $4 - call $~lib/string/String#get:length - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 96 - i32.const 413 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - i32.const 688 + i32.const 2848 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 - i32.store offset=8 + i32.store offset=12 local.get $4 - i32.const 100 - call $~lib/string/String#repeat + i32.const 2880 + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=16 + local.get $4 + call $~lib/string/String#replaceAll local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 688 + i32.const 1104 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 @@ -19396,25 +17402,36 @@ if i32.const 0 i32.const 96 - i32.const 415 + i32.const 440 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 784 + i32.const 1312 + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=8 + local.get $4 + i32.const 1104 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 - i32.store offset=8 + i32.store offset=12 local.get $4 - i32.const 0 - call $~lib/string/String#repeat + i32.const 2880 + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=16 + local.get $4 + call $~lib/string/String#replaceAll local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 688 + i32.const 12816 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 @@ -19425,25 +17442,36 @@ if i32.const 0 i32.const 96 - i32.const 416 + i32.const 442 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 784 + i32.const 12880 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store offset=8 local.get $4 - i32.const 1 - call $~lib/string/String#repeat + i32.const 1104 + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=12 + local.get $4 + i32.const 2880 + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=16 + local.get $4 + call $~lib/string/String#replaceAll local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 784 + i32.const 12928 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 @@ -19454,25 +17482,36 @@ if i32.const 0 i32.const 96 - i32.const 417 + i32.const 443 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 784 + i32.const 1312 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store offset=8 local.get $4 - i32.const 2 - call $~lib/string/String#repeat + i32.const 11712 + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=12 + local.get $4 + i32.const 11712 + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=16 + local.get $4 + call $~lib/string/String#replaceAll local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 12160 + i32.const 1312 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 @@ -19483,25 +17522,36 @@ if i32.const 0 i32.const 96 - i32.const 418 + i32.const 444 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 784 + i32.const 12960 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store offset=8 local.get $4 - i32.const 3 - call $~lib/string/String#repeat + i32.const 784 + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=12 + local.get $4 + i32.const 12928 + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=16 + local.get $4 + call $~lib/string/String#replaceAll local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 12432 + i32.const 13008 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 @@ -19512,25 +17562,36 @@ if i32.const 0 i32.const 96 - i32.const 419 + i32.const 445 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 11712 + i32.const 1312 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store offset=8 local.get $4 - i32.const 4 - call $~lib/string/String#repeat + i32.const 11712 + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=12 + local.get $4 + i32.const 12816 + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=16 + local.get $4 + call $~lib/string/String#replaceAll local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 12464 + i32.const 13056 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 @@ -19541,25 +17602,36 @@ if i32.const 0 i32.const 96 - i32.const 420 + i32.const 446 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 784 + i32.const 13088 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store offset=8 local.get $4 - i32.const 5 - call $~lib/string/String#repeat + i32.const 13120 + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=12 + local.get $4 + i32.const 12816 + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=16 + local.get $4 + call $~lib/string/String#replaceAll local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 12512 + i32.const 13152 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 @@ -19570,25 +17642,36 @@ if i32.const 0 i32.const 96 - i32.const 421 + i32.const 447 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 784 + i32.const 1104 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store offset=8 local.get $4 - i32.const 6 - call $~lib/string/String#repeat + i32.const 1584 + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=12 + local.get $4 + i32.const 2880 + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=16 + local.get $4 + call $~lib/string/String#replaceAll local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 12544 + i32.const 1104 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 @@ -19599,25 +17682,36 @@ if i32.const 0 i32.const 96 - i32.const 422 + i32.const 448 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 784 + i32.const 1584 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store offset=8 local.get $4 - i32.const 7 - call $~lib/string/String#repeat + i32.const 13184 + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=12 + local.get $4 + i32.const 12816 + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=16 + local.get $4 + call $~lib/string/String#replaceAll local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 12576 + i32.const 1584 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 @@ -19628,36 +17722,36 @@ if i32.const 0 i32.const 96 - i32.const 423 + i32.const 449 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 688 + i32.const 1104 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store offset=8 local.get $4 - i32.const 688 + i32.const 13216 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store offset=12 local.get $4 - i32.const 688 + i32.const 2880 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store offset=16 local.get $4 - call $~lib/string/String#replace + call $~lib/string/String#replaceAll local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 688 + i32.const 13248 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 @@ -19668,18 +17762,18 @@ if i32.const 0 i32.const 96 - i32.const 425 + i32.const 450 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 688 + i32.const 11712 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store offset=8 local.get $4 - i32.const 688 + i32.const 11712 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 @@ -19691,7 +17785,7 @@ local.get $4 i32.store offset=16 local.get $4 - call $~lib/string/String#replace + call $~lib/string/String#replaceAll local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 @@ -19708,36 +17802,36 @@ if i32.const 0 i32.const 96 - i32.const 426 + i32.const 451 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 2880 + i32.const 12624 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store offset=8 local.get $4 - i32.const 2880 + i32.const 2848 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store offset=12 local.get $4 - i32.const 688 + i32.const 2880 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store offset=16 local.get $4 - call $~lib/string/String#replace + call $~lib/string/String#replaceAll local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 688 + i32.const 13280 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 @@ -19748,12 +17842,12 @@ if i32.const 0 i32.const 96 - i32.const 427 + i32.const 452 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 2880 + i32.const 688 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 @@ -19771,13 +17865,13 @@ local.get $4 i32.store offset=16 local.get $4 - call $~lib/string/String#replace + call $~lib/string/String#replaceAll local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 2880 + i32.const 688 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 @@ -19788,18 +17882,18 @@ if i32.const 0 i32.const 96 - i32.const 428 + i32.const 454 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 1104 + i32.const 688 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store offset=8 local.get $4 - i32.const 2848 + i32.const 688 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 @@ -19811,13 +17905,13 @@ local.get $4 i32.store offset=16 local.get $4 - call $~lib/string/String#replace + call $~lib/string/String#replaceAll local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 1104 + i32.const 2880 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 @@ -19828,36 +17922,36 @@ if i32.const 0 i32.const 96 - i32.const 429 + i32.const 455 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 1104 + i32.const 2880 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store offset=8 local.get $4 - i32.const 1104 + i32.const 2880 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store offset=12 local.get $4 - i32.const 2880 + i32.const 688 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store offset=16 local.get $4 - call $~lib/string/String#replace + call $~lib/string/String#replaceAll local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 2880 + i32.const 688 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 @@ -19868,36 +17962,36 @@ if i32.const 0 i32.const 96 - i32.const 430 + i32.const 456 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 1104 + i32.const 2880 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store offset=8 local.get $4 - i32.const 1584 + i32.const 688 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store offset=12 local.get $4 - i32.const 2880 + i32.const 688 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store offset=16 local.get $4 - call $~lib/string/String#replace + call $~lib/string/String#replaceAll local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 1104 + i32.const 2880 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 @@ -19908,7 +18002,7 @@ if i32.const 0 i32.const 96 - i32.const 431 + i32.const 457 i32.const 1 call $~lib/builtins/abort unreachable @@ -19919,25 +18013,25 @@ local.get $4 i32.store offset=8 local.get $4 - i32.const 11712 + i32.const 1104 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store offset=12 local.get $4 - i32.const 11712 + i32.const 2848 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store offset=16 local.get $4 - call $~lib/string/String#replace + call $~lib/string/String#replaceAll local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 1104 + i32.const 2848 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 @@ -19948,36 +18042,36 @@ if i32.const 0 i32.const 96 - i32.const 432 + i32.const 458 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 12624 + i32.const 1104 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store offset=8 local.get $4 - i32.const 2848 + i32.const 1552 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store offset=12 local.get $4 - i32.const 2880 + i32.const 2848 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store offset=16 local.get $4 - call $~lib/string/String#replace + call $~lib/string/String#replaceAll local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 12656 + i32.const 1104 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 @@ -19988,7 +18082,7 @@ if i32.const 0 i32.const 96 - i32.const 433 + i32.const 459 i32.const 1 call $~lib/builtins/abort unreachable @@ -20011,13 +18105,13 @@ local.get $4 i32.store offset=16 local.get $4 - call $~lib/string/String#replace + call $~lib/string/String#replaceAll local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 12688 + i32.const 13312 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 @@ -20028,36 +18122,36 @@ if i32.const 0 i32.const 96 - i32.const 434 + i32.const 460 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 12720 + i32.const 1104 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store offset=8 local.get $4 - i32.const 12752 + i32.const 688 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store offset=12 local.get $4 - i32.const 2880 + i32.const 688 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store offset=16 local.get $4 - call $~lib/string/String#replace + call $~lib/string/String#replaceAll local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 12688 + i32.const 1104 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 @@ -20068,36 +18162,36 @@ if i32.const 0 i32.const 96 - i32.const 435 + i32.const 461 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 1104 + i32.const 13360 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store offset=8 local.get $4 - i32.const 12784 + i32.const 784 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store offset=12 local.get $4 - i32.const 12816 + i32.const 13392 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store offset=16 local.get $4 - call $~lib/string/String#replace + call $~lib/string/String#replaceAll local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 12848 + i32.const 13424 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 @@ -20108,36 +18202,36 @@ if i32.const 0 i32.const 96 - i32.const 436 + i32.const 464 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 1104 + i32.const 11712 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store offset=8 local.get $4 - i32.const 12784 + i32.const 11712 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store offset=12 local.get $4 - i32.const 688 + i32.const 13472 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store offset=16 local.get $4 - call $~lib/string/String#replace + call $~lib/string/String#replaceAll local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 11712 + i32.const 13472 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 @@ -20148,24 +18242,24 @@ if i32.const 0 i32.const 96 - i32.const 437 + i32.const 465 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 688 + i32.const 12432 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store offset=8 local.get $4 - i32.const 688 + i32.const 784 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store offset=12 local.get $4 - i32.const 1104 + i32.const 13504 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 @@ -20177,7 +18271,7 @@ local.get $4 i32.store local.get $4 - i32.const 1104 + i32.const 13536 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 @@ -20188,24 +18282,24 @@ if i32.const 0 i32.const 96 - i32.const 439 + i32.const 466 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 1104 + i32.const 12432 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store offset=8 local.get $4 - i32.const 2848 + i32.const 12160 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store offset=12 local.get $4 - i32.const 2880 + i32.const 13392 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 @@ -20217,7 +18311,7 @@ local.get $4 i32.store local.get $4 - i32.const 1104 + i32.const 13584 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 @@ -20228,36 +18322,28 @@ if i32.const 0 i32.const 96 - i32.const 440 + i32.const 467 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 1312 + i32.const 13616 + global.set $std/string/str + global.get $std/string/str local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store offset=8 local.get $4 - i32.const 1104 - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=12 - local.get $4 - i32.const 2880 - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=16 - local.get $4 - call $~lib/string/String#replaceAll + i32.const 0 + global.get $~lib/builtins/i32.MAX_VALUE + call $~lib/string/String#slice local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 12816 + i32.const 13616 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 @@ -20268,36 +18354,56 @@ if i32.const 0 i32.const 96 - i32.const 442 + i32.const 471 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 12880 + global.get $std/string/str local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store offset=8 local.get $4 - i32.const 1104 + i32.const -1 + global.get $~lib/builtins/i32.MAX_VALUE + call $~lib/string/String#slice local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 - i32.store offset=12 + i32.store local.get $4 - i32.const 2880 + i32.const 13664 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 - i32.store offset=16 + i32.store offset=4 local.get $4 - call $~lib/string/String#replaceAll + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 472 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $std/string/str + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=8 + local.get $4 + i32.const -5 + global.get $~lib/builtins/i32.MAX_VALUE + call $~lib/string/String#slice local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 12928 + i32.const 13696 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 @@ -20308,36 +18414,56 @@ if i32.const 0 i32.const 96 - i32.const 443 + i32.const 473 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 1312 + global.get $std/string/str local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store offset=8 local.get $4 - i32.const 11712 + i32.const 2 + i32.const 7 + call $~lib/string/String#slice local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 - i32.store offset=12 + i32.store local.get $4 - i32.const 11712 + i32.const 13728 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 - i32.store offset=16 + i32.store offset=4 local.get $4 - call $~lib/string/String#replaceAll + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 474 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $std/string/str + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=8 + local.get $4 + i32.const -11 + i32.const -6 + call $~lib/string/String#slice local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 1312 + i32.const 13760 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 @@ -20348,36 +18474,56 @@ if i32.const 0 i32.const 96 - i32.const 444 + i32.const 475 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 12960 + global.get $std/string/str local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store offset=8 local.get $4 - i32.const 784 + i32.const 4 + i32.const 3 + call $~lib/string/String#slice local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 - i32.store offset=12 + i32.store local.get $4 - i32.const 12928 + i32.const 688 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 - i32.store offset=16 + i32.store offset=4 local.get $4 - call $~lib/string/String#replaceAll + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 476 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $std/string/str + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=8 + local.get $4 + i32.const 0 + i32.const -1 + call $~lib/string/String#slice local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 13008 + i32.const 13792 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 @@ -20388,36 +18534,56 @@ if i32.const 0 i32.const 96 - i32.const 445 + i32.const 477 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 1312 + global.get $std/string/str local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store offset=8 local.get $4 - i32.const 11712 + i32.const 0 + global.get $~lib/builtins/i32.MAX_VALUE + call $~lib/string/String#substr local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 - i32.store offset=12 + i32.store local.get $4 - i32.const 12816 + i32.const 13616 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 - i32.store offset=16 + i32.store offset=4 local.get $4 - call $~lib/string/String#replaceAll + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 479 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $std/string/str + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=8 + local.get $4 + i32.const -1 + global.get $~lib/builtins/i32.MAX_VALUE + call $~lib/string/String#substr local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 13056 + i32.const 13664 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 @@ -20428,36 +18594,56 @@ if i32.const 0 i32.const 96 - i32.const 446 + i32.const 480 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 13088 + global.get $std/string/str local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store offset=8 local.get $4 - i32.const 13120 + i32.const -5 + global.get $~lib/builtins/i32.MAX_VALUE + call $~lib/string/String#substr local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 - i32.store offset=12 + i32.store local.get $4 - i32.const 12816 + i32.const 13696 + 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 96 + i32.const 481 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $std/string/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#replaceAll + i32.const 2 + i32.const 7 + call $~lib/string/String#substr local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 13152 + i32.const 13840 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 @@ -20468,36 +18654,26 @@ if i32.const 0 i32.const 96 - i32.const 447 + i32.const 482 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 1104 + global.get $std/string/str local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store offset=8 local.get $4 - i32.const 1584 - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=12 - local.get $4 - i32.const 2880 - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=16 - local.get $4 - call $~lib/string/String#replaceAll + i32.const -11 + i32.const -6 + call $~lib/string/String#substr local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 1104 + i32.const 688 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 @@ -20508,36 +18684,26 @@ if i32.const 0 i32.const 96 - i32.const 448 + i32.const 483 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 1584 + global.get $std/string/str local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store offset=8 local.get $4 - i32.const 13184 - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=12 - local.get $4 - i32.const 12816 - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=16 - local.get $4 - call $~lib/string/String#replaceAll + i32.const 4 + i32.const 3 + call $~lib/string/String#substr local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 1584 + i32.const 13888 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 @@ -20548,36 +18714,26 @@ if i32.const 0 i32.const 96 - i32.const 449 + i32.const 484 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 1104 + global.get $std/string/str local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store offset=8 local.get $4 - i32.const 13216 - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=12 - local.get $4 - i32.const 2880 - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=16 - local.get $4 - call $~lib/string/String#replaceAll + i32.const 0 + i32.const -1 + call $~lib/string/String#substr local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 13248 + i32.const 688 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 @@ -20588,36 +18744,26 @@ if i32.const 0 i32.const 96 - i32.const 450 + i32.const 485 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 11712 + global.get $std/string/str local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store offset=8 local.get $4 - i32.const 11712 - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=12 - local.get $4 - i32.const 2880 - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=16 - local.get $4 - call $~lib/string/String#replaceAll + i32.const 0 + i32.const 100 + call $~lib/string/String#substr local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 2880 + i32.const 13616 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 @@ -20628,36 +18774,26 @@ if i32.const 0 i32.const 96 - i32.const 451 + i32.const 486 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 12624 + global.get $std/string/str local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store offset=8 local.get $4 - i32.const 2848 - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=12 - local.get $4 - i32.const 2880 - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=16 - local.get $4 - call $~lib/string/String#replaceAll + i32.const 4 + i32.const 4 + call $~lib/string/String#substr local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 13280 + i32.const 13920 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 @@ -20668,30 +18804,20 @@ if i32.const 0 i32.const 96 - i32.const 452 + i32.const 487 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 688 + global.get $std/string/str local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store offset=8 local.get $4 - i32.const 688 - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=12 - local.get $4 - i32.const 688 - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=16 - local.get $4 - call $~lib/string/String#replaceAll + i32.const 4 + i32.const -3 + call $~lib/string/String#substr local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 @@ -20708,36 +18834,26 @@ if i32.const 0 i32.const 96 - i32.const 454 + i32.const 488 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 688 + global.get $std/string/str local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store offset=8 local.get $4 - i32.const 688 - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=12 - local.get $4 - i32.const 2880 - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=16 - local.get $4 - call $~lib/string/String#replaceAll + i32.const 0 + global.get $~lib/builtins/i32.MAX_VALUE + call $~lib/string/String#substring local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 2880 + i32.const 13616 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 @@ -20748,36 +18864,26 @@ if i32.const 0 i32.const 96 - i32.const 455 + i32.const 490 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 2880 + global.get $std/string/str local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store offset=8 local.get $4 - i32.const 2880 - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=12 - local.get $4 - i32.const 688 - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=16 - local.get $4 - call $~lib/string/String#replaceAll + i32.const -1 + global.get $~lib/builtins/i32.MAX_VALUE + call $~lib/string/String#substring local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 688 + i32.const 13616 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 @@ -20788,36 +18894,26 @@ if i32.const 0 i32.const 96 - i32.const 456 + i32.const 491 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 2880 + global.get $std/string/str local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store offset=8 local.get $4 - i32.const 688 - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=12 - local.get $4 - i32.const 688 - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=16 - local.get $4 - call $~lib/string/String#replaceAll + i32.const -5 + global.get $~lib/builtins/i32.MAX_VALUE + call $~lib/string/String#substring local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 2880 + i32.const 13616 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 @@ -20828,36 +18924,26 @@ if i32.const 0 i32.const 96 - i32.const 457 + i32.const 492 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 1104 + global.get $std/string/str local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store offset=8 local.get $4 - i32.const 1104 - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=12 - local.get $4 - i32.const 2848 - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=16 - local.get $4 - call $~lib/string/String#replaceAll + i32.const 2 + i32.const 7 + call $~lib/string/String#substring local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 2848 + i32.const 13728 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 @@ -20868,36 +18954,56 @@ if i32.const 0 i32.const 96 - i32.const 458 + i32.const 493 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 1104 + global.get $std/string/str local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store offset=8 local.get $4 - i32.const 1552 + i32.const -11 + i32.const -6 + call $~lib/string/String#substring local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 - i32.store offset=12 + i32.store local.get $4 - i32.const 2848 + i32.const 688 + 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 96 + i32.const 494 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $std/string/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#replaceAll + i32.const 4 + i32.const 3 + call $~lib/string/String#substring local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 1104 + i32.const 13952 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 @@ -20908,36 +19014,26 @@ if i32.const 0 i32.const 96 - i32.const 459 + i32.const 495 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 1104 + global.get $std/string/str local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store offset=8 local.get $4 - i32.const 688 - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=12 - local.get $4 - i32.const 2880 - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=16 - local.get $4 - call $~lib/string/String#replaceAll + i32.const 0 + i32.const -1 + call $~lib/string/String#substring local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 13312 + i32.const 688 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 @@ -20948,36 +19044,26 @@ if i32.const 0 i32.const 96 - i32.const 460 + i32.const 496 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 1104 + global.get $std/string/str local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store offset=8 local.get $4 - i32.const 688 - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=12 - local.get $4 - i32.const 688 - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=16 - local.get $4 - call $~lib/string/String#replaceAll + i32.const 0 + i32.const 100 + call $~lib/string/String#substring local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 1104 + i32.const 13616 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 @@ -20988,36 +19074,26 @@ if i32.const 0 i32.const 96 - i32.const 461 + i32.const 497 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 13360 + global.get $std/string/str local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store offset=8 local.get $4 - i32.const 784 - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=12 - local.get $4 - i32.const 13392 - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=16 - local.get $4 - call $~lib/string/String#replaceAll + i32.const 4 + i32.const 4 + call $~lib/string/String#substring local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 13424 + i32.const 688 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 @@ -21028,36 +19104,26 @@ if i32.const 0 i32.const 96 - i32.const 464 + i32.const 498 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 11712 + global.get $std/string/str local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store offset=8 local.get $4 - i32.const 11712 - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=12 - local.get $4 - i32.const 13472 - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=16 - local.get $4 - call $~lib/string/String#replaceAll + i32.const 4 + i32.const -3 + call $~lib/string/String#substring local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 13472 + i32.const 1584 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 @@ -21068,252 +19134,764 @@ if i32.const 0 i32.const 96 - i32.const 465 + i32.const 499 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 12432 + global.get $~lib/memory/__stack_pointer + i32.const 688 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 - i32.store offset=8 + i32.store local.get $4 - i32.const 784 + i32.const 0 + global.get $~lib/builtins/i32.MAX_VALUE + call $~lib/string/String#split + local.tee $3 + i32.store offset=40 + local.get $3 + call $~lib/array/Array<~lib/string/String>#get:length + i32.const 1 + i32.eq + if (result i32) + local.get $3 + 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 688 + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + call $~lib/string/String.__eq + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 505 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 688 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 - i32.store offset=12 + i32.store local.get $4 - i32.const 13504 + i32.const 688 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 - i32.store offset=16 + i32.store offset=4 local.get $4 - call $~lib/string/String#replaceAll + global.get $~lib/builtins/i32.MAX_VALUE + call $~lib/string/String#split + local.tee $3 + i32.store offset=40 + local.get $3 + call $~lib/array/Array<~lib/string/String>#get:length + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 507 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 688 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 13536 + i32.const 1392 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store offset=4 local.get $4 - call $~lib/string/String.__eq + global.get $~lib/builtins/i32.MAX_VALUE + call $~lib/string/String#split + local.tee $3 + i32.store offset=40 + local.get $3 + call $~lib/array/Array<~lib/string/String>#get:length + i32.const 1 + i32.eq + if (result i32) + local.get $3 + 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 688 + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + call $~lib/string/String.__eq + else + i32.const 0 + end i32.eqz if i32.const 0 i32.const 96 - i32.const 466 - i32.const 1 + i32.const 509 + i32.const 3 call $~lib/builtins/abort unreachable end - i32.const 12432 - local.set $4 global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=8 - local.get $4 - i32.const 12160 + i32.const 14160 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 - i32.store offset=12 + i32.store local.get $4 - i32.const 13392 + i32.const 5920 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 - i32.store offset=16 + i32.store offset=4 local.get $4 - call $~lib/string/String#replaceAll + global.get $~lib/builtins/i32.MAX_VALUE + call $~lib/string/String#split + local.tee $3 + i32.store offset=40 + local.get $3 + call $~lib/array/Array<~lib/string/String>#get:length + i32.const 1 + i32.eq + if (result i32) + local.get $3 + 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 14160 + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + call $~lib/string/String.__eq + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 511 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 14160 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 13584 + i32.const 1392 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store offset=4 local.get $4 - call $~lib/string/String.__eq + global.get $~lib/builtins/i32.MAX_VALUE + call $~lib/string/String#split + local.tee $3 + i32.store offset=40 + local.get $3 + call $~lib/array/Array<~lib/string/String>#get:length + i32.const 3 + i32.eq + if (result i32) + local.get $3 + 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 784 + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + call $~lib/string/String.__eq + else + i32.const 0 + end + if (result i32) + local.get $3 + 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 11680 + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + call $~lib/string/String.__eq + else + i32.const 0 + end + if (result i32) + local.get $3 + 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 12784 + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + call $~lib/string/String.__eq + else + i32.const 0 + end i32.eqz if i32.const 0 i32.const 96 - i32.const 467 - i32.const 1 + i32.const 513 + i32.const 3 call $~lib/builtins/abort unreachable end - i32.const 13616 - global.set $std/string/str - global.get $std/string/str - local.set $4 global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=8 - local.get $4 - i32.const 0 - global.get $~lib/builtins/i32.MAX_VALUE - call $~lib/string/String#slice + i32.const 14192 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 13616 + i32.const 14240 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store offset=4 local.get $4 - call $~lib/string/String.__eq + global.get $~lib/builtins/i32.MAX_VALUE + call $~lib/string/String#split + local.tee $3 + i32.store offset=40 + local.get $3 + call $~lib/array/Array<~lib/string/String>#get:length + i32.const 3 + i32.eq + if (result i32) + local.get $3 + 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 784 + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + call $~lib/string/String.__eq + else + i32.const 0 + end + if (result i32) + local.get $3 + 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 11680 + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + call $~lib/string/String.__eq + else + i32.const 0 + end + if (result i32) + local.get $3 + 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 12784 + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + call $~lib/string/String.__eq + else + i32.const 0 + end i32.eqz if i32.const 0 i32.const 96 - i32.const 471 - i32.const 1 + i32.const 515 + i32.const 3 call $~lib/builtins/abort unreachable end - global.get $std/string/str - local.set $4 global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=8 - local.get $4 - i32.const -1 - global.get $~lib/builtins/i32.MAX_VALUE - call $~lib/string/String#slice + i32.const 14272 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 13664 + i32.const 1392 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store offset=4 local.get $4 - call $~lib/string/String.__eq + global.get $~lib/builtins/i32.MAX_VALUE + call $~lib/string/String#split + local.tee $3 + i32.store offset=40 + local.get $3 + call $~lib/array/Array<~lib/string/String>#get:length + i32.const 4 + i32.eq + if (result i32) + local.get $3 + 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 784 + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + call $~lib/string/String.__eq + else + i32.const 0 + end + if (result i32) + local.get $3 + 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 11680 + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + call $~lib/string/String.__eq + else + i32.const 0 + end + if (result i32) + local.get $3 + 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 688 + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + call $~lib/string/String.__eq + else + i32.const 0 + end + if (result i32) + local.get $3 + i32.const 3 + 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 12784 + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + call $~lib/string/String.__eq + else + i32.const 0 + end i32.eqz if i32.const 0 i32.const 96 - i32.const 472 - i32.const 1 + i32.const 517 + i32.const 3 call $~lib/builtins/abort unreachable end - global.get $std/string/str - local.set $4 global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=8 - local.get $4 - i32.const -5 - global.get $~lib/builtins/i32.MAX_VALUE - call $~lib/string/String#slice + i32.const 14304 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 13696 + i32.const 1392 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store offset=4 local.get $4 - call $~lib/string/String.__eq + global.get $~lib/builtins/i32.MAX_VALUE + call $~lib/string/String#split + local.tee $3 + i32.store offset=40 + local.get $3 + call $~lib/array/Array<~lib/string/String>#get:length + i32.const 4 + i32.eq + if (result i32) + local.get $3 + 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 688 + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + call $~lib/string/String.__eq + else + i32.const 0 + end + if (result i32) + local.get $3 + 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 784 + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + call $~lib/string/String.__eq + else + i32.const 0 + end + if (result i32) + local.get $3 + 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 11680 + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + call $~lib/string/String.__eq + else + i32.const 0 + end + if (result i32) + local.get $3 + i32.const 3 + 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 12784 + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + call $~lib/string/String.__eq + else + i32.const 0 + end i32.eqz if i32.const 0 i32.const 96 - i32.const 473 - i32.const 1 + i32.const 519 + i32.const 3 call $~lib/builtins/abort unreachable end - global.get $std/string/str - local.set $4 global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=8 - local.get $4 - i32.const 2 - i32.const 7 - call $~lib/string/String#slice + i32.const 14336 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 13728 + i32.const 1392 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store offset=4 local.get $4 - call $~lib/string/String.__eq + global.get $~lib/builtins/i32.MAX_VALUE + call $~lib/string/String#split + local.tee $3 + i32.store offset=40 + local.get $3 + call $~lib/array/Array<~lib/string/String>#get:length + i32.const 4 + i32.eq + if (result i32) + local.get $3 + 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 784 + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + call $~lib/string/String.__eq + else + i32.const 0 + end + if (result i32) + local.get $3 + 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 11680 + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + call $~lib/string/String.__eq + else + i32.const 0 + end + if (result i32) + local.get $3 + 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 12784 + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + call $~lib/string/String.__eq + else + i32.const 0 + end + if (result i32) + local.get $3 + i32.const 3 + 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 688 + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + call $~lib/string/String.__eq + else + i32.const 0 + end i32.eqz if i32.const 0 i32.const 96 - i32.const 474 - i32.const 1 + i32.const 521 + i32.const 3 call $~lib/builtins/abort unreachable end - global.get $std/string/str - local.set $4 global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=8 - local.get $4 - i32.const -11 - i32.const -6 - call $~lib/string/String#slice + i32.const 1104 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 13760 + i32.const 688 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store offset=4 local.get $4 - call $~lib/string/String.__eq + global.get $~lib/builtins/i32.MAX_VALUE + call $~lib/string/String#split + local.tee $3 + i32.store offset=40 + local.get $3 + call $~lib/array/Array<~lib/string/String>#get:length + i32.const 3 + i32.eq + if (result i32) + local.get $3 + 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 784 + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + call $~lib/string/String.__eq + else + i32.const 0 + end + if (result i32) + local.get $3 + 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 11680 + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + call $~lib/string/String.__eq + else + i32.const 0 + end + if (result i32) + local.get $3 + 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 12784 + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + call $~lib/string/String.__eq + else + i32.const 0 + end i32.eqz if i32.const 0 i32.const 96 - i32.const 475 - i32.const 1 + i32.const 523 + i32.const 3 call $~lib/builtins/abort unreachable end - global.get $std/string/str - local.set $4 global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=8 - local.get $4 - i32.const 4 - i32.const 3 - call $~lib/string/String#slice + i32.const 1104 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 @@ -21325,175 +19903,210 @@ local.get $4 i32.store offset=4 local.get $4 - call $~lib/string/String.__eq + i32.const 0 + call $~lib/string/String#split + local.tee $3 + i32.store offset=40 + local.get $3 + call $~lib/array/Array<~lib/string/String>#get:length + i32.const 0 + i32.eq i32.eqz if i32.const 0 i32.const 96 - i32.const 476 - i32.const 1 + i32.const 525 + i32.const 3 call $~lib/builtins/abort unreachable end - global.get $std/string/str - local.set $4 global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=8 - local.get $4 - i32.const 0 - i32.const -1 - call $~lib/string/String#slice + i32.const 1104 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 13792 + i32.const 688 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 1 + call $~lib/string/String#split + local.tee $3 + i32.store offset=40 + local.get $3 + call $~lib/array/Array<~lib/string/String>#get:length + i32.const 1 + i32.eq + if (result i32) + local.get $3 + 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 784 + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + call $~lib/string/String.__eq + else i32.const 0 - i32.const 96 - i32.const 477 - i32.const 1 - call $~lib/builtins/abort - unreachable end - global.get $std/string/str - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=8 - local.get $4 - i32.const 0 - global.get $~lib/builtins/i32.MAX_VALUE - call $~lib/string/String#substr - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store - local.get $4 - i32.const 13616 - 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 96 - i32.const 479 - i32.const 1 + i32.const 527 + i32.const 3 call $~lib/builtins/abort unreachable end - global.get $std/string/str - local.set $4 global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=8 - local.get $4 - i32.const -1 - global.get $~lib/builtins/i32.MAX_VALUE - call $~lib/string/String#substr + i32.const 14160 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 13664 + i32.const 1392 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.const 1 + call $~lib/string/String#split + local.tee $3 + i32.store offset=40 + local.get $3 + call $~lib/array/Array<~lib/string/String>#get:length + i32.const 1 + i32.eq + if (result i32) + local.get $3 + 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 784 + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + call $~lib/string/String.__eq + else + i32.const 0 + end i32.eqz if i32.const 0 i32.const 96 - i32.const 480 - i32.const 1 + i32.const 529 + i32.const 3 call $~lib/builtins/abort unreachable end - global.get $std/string/str - local.set $4 global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=8 - local.get $4 - i32.const -5 - global.get $~lib/builtins/i32.MAX_VALUE - call $~lib/string/String#substr + i32.const 1104 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 13696 + i32.const 688 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 4 + call $~lib/string/String#split + local.tee $3 + i32.store offset=40 + local.get $3 + call $~lib/array/Array<~lib/string/String>#get:length + i32.const 3 + i32.eq + if (result i32) + local.get $3 i32.const 0 - i32.const 96 - i32.const 481 + 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 784 + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + call $~lib/string/String.__eq + else + i32.const 0 + end + if (result i32) + local.get $3 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 11680 + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + call $~lib/string/String.__eq + else + i32.const 0 + end + if (result i32) + local.get $3 + 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 12784 + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + call $~lib/string/String.__eq + else + i32.const 0 end - global.get $std/string/str - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=8 - local.get $4 - i32.const 2 - i32.const 7 - call $~lib/string/String#substr - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store - local.get $4 - i32.const 13840 - 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 96 - i32.const 482 - i32.const 1 + i32.const 531 + i32.const 3 call $~lib/builtins/abort unreachable end - global.get $std/string/str - local.set $4 global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=8 - local.get $4 - i32.const -11 - i32.const -6 - call $~lib/string/String#substr + i32.const 1104 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 @@ -21505,61 +20118,176 @@ local.get $4 i32.store offset=4 local.get $4 - call $~lib/string/String.__eq + i32.const -1 + call $~lib/string/String#split + local.tee $3 + i32.store offset=40 + local.get $3 + call $~lib/array/Array<~lib/string/String>#get:length + i32.const 3 + i32.eq + if (result i32) + local.get $3 + 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 784 + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + call $~lib/string/String.__eq + else + i32.const 0 + end + if (result i32) + local.get $3 + 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 11680 + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + call $~lib/string/String.__eq + else + i32.const 0 + end + if (result i32) + local.get $3 + 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 12784 + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + call $~lib/string/String.__eq + else + i32.const 0 + end i32.eqz if i32.const 0 i32.const 96 - i32.const 483 - i32.const 1 + i32.const 533 + i32.const 3 call $~lib/builtins/abort unreachable end - global.get $std/string/str - local.set $4 global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=8 - local.get $4 - i32.const 4 - i32.const 3 - call $~lib/string/String#substr + i32.const 14160 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 13888 + i32.const 1392 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.const -1 + call $~lib/string/String#split + local.tee $3 + i32.store offset=40 + local.get $3 + call $~lib/array/Array<~lib/string/String>#get:length + i32.const 3 + i32.eq + if (result i32) + local.get $3 + 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 784 + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + call $~lib/string/String.__eq + else + i32.const 0 + end + if (result i32) + local.get $3 + 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 11680 + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + call $~lib/string/String.__eq + else + i32.const 0 + end + if (result i32) + local.get $3 + 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 12784 + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + call $~lib/string/String.__eq + else + i32.const 0 + end i32.eqz if i32.const 0 i32.const 96 - i32.const 484 - i32.const 1 + i32.const 535 + i32.const 3 call $~lib/builtins/abort unreachable end - global.get $std/string/str - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=8 - local.get $4 i32.const 0 - i32.const -1 - call $~lib/string/String#substr + i32.const 10 + call $~lib/util/number/itoa32 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 688 + i32.const 1792 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 @@ -21570,26 +20298,20 @@ if i32.const 0 i32.const 96 - i32.const 485 + i32.const 540 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $std/string/str - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=8 - local.get $4 - i32.const 0 - i32.const 100 - call $~lib/string/String#substr + i32.const 1 + i32.const 10 + call $~lib/util/number/itoa32 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 13616 + i32.const 1856 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 @@ -21600,26 +20322,20 @@ if i32.const 0 i32.const 96 - i32.const 486 + i32.const 541 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $std/string/str - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=8 - local.get $4 - i32.const 4 - i32.const 4 - call $~lib/string/String#substr + i32.const 8 + i32.const 10 + call $~lib/util/number/itoa32 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 13920 + i32.const 16112 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 @@ -21630,26 +20346,20 @@ if i32.const 0 i32.const 96 - i32.const 487 + i32.const 542 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $std/string/str - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=8 - local.get $4 - i32.const 4 - i32.const -3 - call $~lib/string/String#substr + i32.const 12 + i32.const 10 + call $~lib/util/number/itoa32 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 688 + i32.const 16144 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 @@ -21660,26 +20370,20 @@ if i32.const 0 i32.const 96 - i32.const 488 + i32.const 543 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $std/string/str - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=8 - local.get $4 - i32.const 0 - global.get $~lib/builtins/i32.MAX_VALUE - call $~lib/string/String#substring + i32.const 123 + i32.const 10 + call $~lib/util/number/itoa32 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 13616 + i32.const 1168 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 @@ -21690,26 +20394,20 @@ if i32.const 0 i32.const 96 - i32.const 490 + i32.const 544 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $std/string/str - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=8 - local.get $4 - i32.const -1 - global.get $~lib/builtins/i32.MAX_VALUE - call $~lib/string/String#substring + i32.const -1000 + i32.const 10 + call $~lib/util/number/itoa32 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 13616 + i32.const 16176 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 @@ -21720,26 +20418,20 @@ if i32.const 0 i32.const 96 - i32.const 491 + i32.const 545 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $std/string/str - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=8 - local.get $4 - i32.const -5 - global.get $~lib/builtins/i32.MAX_VALUE - call $~lib/string/String#substring + i32.const 1234 + i32.const 10 + call $~lib/util/number/itoa32 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 13616 + i32.const 12320 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 @@ -21750,26 +20442,20 @@ if i32.const 0 i32.const 96 - i32.const 492 + i32.const 546 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $std/string/str - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=8 - local.get $4 - i32.const 2 - i32.const 7 - call $~lib/string/String#substring + i32.const 12345 + i32.const 10 + call $~lib/util/number/itoa32 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 13728 + i32.const 16208 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 @@ -21780,26 +20466,20 @@ if i32.const 0 i32.const 96 - i32.const 493 + i32.const 547 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $std/string/str - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=8 - local.get $4 - i32.const -11 - i32.const -6 - call $~lib/string/String#substring + i32.const 123456 + i32.const 10 + call $~lib/util/number/itoa32 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 688 + i32.const 16240 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 @@ -21810,26 +20490,20 @@ if i32.const 0 i32.const 96 - i32.const 494 + i32.const 548 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $std/string/str - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=8 - local.get $4 - i32.const 4 - i32.const 3 - call $~lib/string/String#substring + i32.const 1111111 + i32.const 10 + call $~lib/util/number/itoa32 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 13952 + i32.const 16272 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 @@ -21840,26 +20514,20 @@ if i32.const 0 i32.const 96 - i32.const 495 + i32.const 549 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $std/string/str - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=8 - local.get $4 - i32.const 0 - i32.const -1 - call $~lib/string/String#substring + i32.const 1234567 + i32.const 10 + call $~lib/util/number/itoa32 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 688 + i32.const 16320 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 @@ -21870,26 +20538,20 @@ if i32.const 0 i32.const 96 - i32.const 496 + i32.const 550 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $std/string/str - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=8 - local.get $4 - i32.const 0 - i32.const 100 - call $~lib/string/String#substring + i32.const 12345678 + i32.const 10 + call $~lib/util/number/itoa32 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 13616 + i32.const 16368 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 @@ -21900,26 +20562,20 @@ if i32.const 0 i32.const 96 - i32.const 497 + i32.const 551 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $std/string/str - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=8 - local.get $4 - i32.const 4 - i32.const 4 - call $~lib/string/String#substring + i32.const 123456789 + i32.const 10 + call $~lib/util/number/itoa32 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 688 + i32.const 16416 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 @@ -21930,26 +20586,20 @@ if i32.const 0 i32.const 96 - i32.const 498 + i32.const 552 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $std/string/str - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=8 - local.get $4 - i32.const 4 - i32.const -3 - call $~lib/string/String#substring + i32.const 2147483646 + i32.const 10 + call $~lib/util/number/itoa32 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 1584 + i32.const 16464 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 @@ -21960,1415 +20610,668 @@ if i32.const 0 i32.const 96 - i32.const 499 + i32.const 553 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 688 + i32.const 2147483647 + i32.const 10 + call $~lib/util/number/itoa32 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 0 - global.get $~lib/builtins/i32.MAX_VALUE - call $~lib/string/String#split - local.tee $3 - i32.store offset=40 - local.get $3 + i32.const 16512 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 - i32.store + i32.store offset=4 local.get $4 - call $~lib/array/Array<~lib/string/String>#get:length - i32.const 1 - i32.eq - if (result i32) - local.get $3 - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=8 - local.get $4 - 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 688 - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - call $~lib/string/String.__eq - else - i32.const 0 - end + call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 96 - i32.const 505 - i32.const 3 + i32.const 554 + i32.const 1 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 688 + i32.const -2147483648 + i32.const 10 + call $~lib/util/number/itoa32 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 688 + i32.const 16560 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store offset=4 local.get $4 - global.get $~lib/builtins/i32.MAX_VALUE - call $~lib/string/String#split - local.tee $3 - i32.store offset=40 - local.get $3 - 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 - i32.const 0 - i32.eq + call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 96 - i32.const 507 - i32.const 3 + i32.const 555 + i32.const 1 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 688 + i32.const -1 + i32.const 10 + call $~lib/util/number/itoa32 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 1392 + i32.const 16608 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store offset=4 local.get $4 - global.get $~lib/builtins/i32.MAX_VALUE - call $~lib/string/String#split - local.tee $3 - i32.store offset=40 - local.get $3 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 556 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + i32.const 10 + call $~lib/util/number/utoa32 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 - i32.const 1 - i32.eq - if (result i32) - local.get $3 - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=8 - local.get $4 - 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 688 - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - call $~lib/string/String.__eq - else - i32.const 0 - end + i32.const 1792 + 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 96 - i32.const 509 - i32.const 3 + i32.const 558 + i32.const 1 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 14160 + i32.const 1000 + i32.const 10 + call $~lib/util/number/utoa32 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 5920 + i32.const 16640 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store offset=4 local.get $4 - global.get $~lib/builtins/i32.MAX_VALUE - call $~lib/string/String#split - local.tee $3 - i32.store offset=40 - local.get $3 - 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 - i32.const 1 - i32.eq - if (result i32) - local.get $3 - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=8 - local.get $4 - 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 14160 - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - call $~lib/string/String.__eq - else - i32.const 0 - end + call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 96 - i32.const 511 - i32.const 3 + i32.const 559 + i32.const 1 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 14160 + i32.const 2147483647 + i32.const 10 + call $~lib/util/number/utoa32 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 1392 + i32.const 16512 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store offset=4 local.get $4 - global.get $~lib/builtins/i32.MAX_VALUE - call $~lib/string/String#split - local.tee $3 - i32.store offset=40 - local.get $3 - 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 - i32.const 3 - i32.eq - if (result i32) - local.get $3 - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=8 - local.get $4 - 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 784 - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - call $~lib/string/String.__eq - else - i32.const 0 - end - if (result i32) - local.get $3 - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=8 - local.get $4 - 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 11680 - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - call $~lib/string/String.__eq - else - i32.const 0 - end - if (result i32) - local.get $3 - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=8 - local.get $4 - 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 12784 - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - call $~lib/string/String.__eq - else - i32.const 0 - end + call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 96 - i32.const 513 - i32.const 3 + i32.const 560 + i32.const 1 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 14192 + i32.const -2147483648 + i32.const 10 + call $~lib/util/number/utoa32 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 14240 + i32.const 16672 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store offset=4 local.get $4 - global.get $~lib/builtins/i32.MAX_VALUE - call $~lib/string/String#split - local.tee $3 - i32.store offset=40 - local.get $3 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 561 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/builtins/u32.MAX_VALUE + i32.const 10 + call $~lib/util/number/utoa32 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 - i32.const 3 - i32.eq - if (result i32) - local.get $3 - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=8 - local.get $4 - 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 784 - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - call $~lib/string/String.__eq - else - i32.const 0 - end - if (result i32) - local.get $3 - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=8 - local.get $4 - 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 11680 - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - call $~lib/string/String.__eq - else - i32.const 0 - end - if (result i32) - local.get $3 - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=8 - local.get $4 - 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 12784 - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - call $~lib/string/String.__eq - else - i32.const 0 - end + i32.const 16720 + 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 96 - i32.const 515 - i32.const 3 + i32.const 562 + i32.const 1 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 14272 + i32.const 0 + i32.const 16 + call $~lib/util/number/utoa32 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 1392 + i32.const 1792 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store offset=4 local.get $4 - global.get $~lib/builtins/i32.MAX_VALUE - call $~lib/string/String#split - local.tee $3 - i32.store offset=40 - local.get $3 - 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 - i32.const 4 - i32.eq - if (result i32) - local.get $3 - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=8 - local.get $4 - 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 784 - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - call $~lib/string/String.__eq - else - i32.const 0 - end - if (result i32) - local.get $3 - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=8 - local.get $4 - 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 11680 - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - call $~lib/string/String.__eq - else - i32.const 0 - end - if (result i32) - local.get $3 - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=8 - local.get $4 - 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 688 - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - call $~lib/string/String.__eq - else - i32.const 0 - end - if (result i32) - local.get $3 - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=8 - local.get $4 - i32.const 3 - 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 12784 - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - call $~lib/string/String.__eq - else - i32.const 0 - end + call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 96 - i32.const 517 - i32.const 3 + i32.const 566 + i32.const 1 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 14304 + i32.const 1 + i32.const 16 + call $~lib/util/number/utoa32 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 1392 + i32.const 1856 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store offset=4 local.get $4 - global.get $~lib/builtins/i32.MAX_VALUE - call $~lib/string/String#split - local.tee $3 - i32.store offset=40 - local.get $3 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 567 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 8 + i32.const 16 + call $~lib/util/number/utoa32 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 - i32.const 4 - i32.eq - if (result i32) - local.get $3 - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=8 - local.get $4 - 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 688 - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - call $~lib/string/String.__eq - else - i32.const 0 - end - if (result i32) - local.get $3 - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=8 - local.get $4 - 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 784 - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - call $~lib/string/String.__eq - else - i32.const 0 - end - if (result i32) - local.get $3 - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=8 - local.get $4 - 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 11680 - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - call $~lib/string/String.__eq - else - i32.const 0 - end - if (result i32) - local.get $3 - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=8 - local.get $4 - i32.const 3 - 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 12784 - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - call $~lib/string/String.__eq - else - i32.const 0 - end + i32.const 16112 + 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 96 - i32.const 519 - i32.const 3 + i32.const 568 + i32.const 1 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 14336 + i32.const 12 + i32.const 16 + call $~lib/util/number/utoa32 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 1392 + i32.const 12784 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store offset=4 local.get $4 - global.get $~lib/builtins/i32.MAX_VALUE - call $~lib/string/String#split - local.tee $3 - i32.store offset=40 - local.get $3 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 569 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 123 + i32.const 16 + call $~lib/util/number/utoa32 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 - i32.const 4 - i32.eq - if (result i32) - local.get $3 - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=8 - local.get $4 - 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 784 - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - call $~lib/string/String.__eq - else - i32.const 0 - end - if (result i32) - local.get $3 - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=8 - local.get $4 - 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 11680 - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - call $~lib/string/String.__eq - else - i32.const 0 - end - if (result i32) - local.get $3 - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=8 - local.get $4 - 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 12784 - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - call $~lib/string/String.__eq - else - i32.const 0 - end - if (result i32) - local.get $3 - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=8 - local.get $4 - i32.const 3 - 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 688 - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - call $~lib/string/String.__eq - else - i32.const 0 - end + i32.const 16768 + 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 96 - i32.const 521 - i32.const 3 + i32.const 570 + i32.const 1 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 1104 + i32.const 1234 + i32.const 16 + call $~lib/util/number/utoa32 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 688 + i32.const 16800 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store offset=4 local.get $4 - global.get $~lib/builtins/i32.MAX_VALUE - call $~lib/string/String#split - local.tee $3 - i32.store offset=40 - local.get $3 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 571 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 12345 + i32.const 16 + call $~lib/util/number/utoa32 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 - i32.const 3 - i32.eq - if (result i32) - local.get $3 - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=8 - local.get $4 - 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 784 - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - call $~lib/string/String.__eq - else - i32.const 0 - end - if (result i32) - local.get $3 - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=8 - local.get $4 - 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 11680 - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - call $~lib/string/String.__eq - else - i32.const 0 - end - if (result i32) - local.get $3 - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=8 - local.get $4 - 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 12784 - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - call $~lib/string/String.__eq - else - i32.const 0 - end + i32.const 16832 + 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 96 - i32.const 523 - i32.const 3 + i32.const 572 + i32.const 1 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 1104 + i32.const 123456 + i32.const 16 + call $~lib/util/number/utoa32 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 688 + i32.const 16864 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store offset=4 local.get $4 - i32.const 0 - call $~lib/string/String#split - local.tee $3 - i32.store offset=40 - local.get $3 - 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 - i32.const 0 - i32.eq + call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 96 - i32.const 525 - i32.const 3 + i32.const 573 + i32.const 1 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 1104 + i32.const 1111111 + i32.const 16 + call $~lib/util/number/utoa32 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 688 + i32.const 16896 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store offset=4 local.get $4 - i32.const 1 - call $~lib/string/String#split - local.tee $3 - i32.store offset=40 - local.get $3 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 574 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 1234567 + i32.const 16 + call $~lib/util/number/utoa32 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 - i32.const 1 - i32.eq - if (result i32) - local.get $3 - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=8 - local.get $4 - 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 784 - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - call $~lib/string/String.__eq - else - i32.const 0 - end + i32.const 16928 + 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 96 - i32.const 527 - i32.const 3 + i32.const 575 + i32.const 1 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 14160 + i32.const 12345678 + i32.const 16 + call $~lib/util/number/utoa32 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 1392 + i32.const 16960 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store offset=4 local.get $4 - i32.const 1 - call $~lib/string/String#split - local.tee $3 - i32.store offset=40 - local.get $3 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 576 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 123456789 + i32.const 16 + call $~lib/util/number/utoa32 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 - i32.const 1 - i32.eq - if (result i32) - local.get $3 - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=8 - local.get $4 - 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 784 - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - call $~lib/string/String.__eq - else - i32.const 0 - end + i32.const 16992 + 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 96 - i32.const 529 - i32.const 3 + i32.const 577 + i32.const 1 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 1104 + i32.const 2147483646 + i32.const 16 + call $~lib/util/number/utoa32 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 688 + i32.const 17040 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store offset=4 local.get $4 - i32.const 4 - call $~lib/string/String#split - local.tee $3 - i32.store offset=40 - local.get $3 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 578 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 2147483647 + i32.const 16 + call $~lib/util/number/utoa32 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 - i32.const 3 - i32.eq - if (result i32) - local.get $3 - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=8 - local.get $4 - 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 784 - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - call $~lib/string/String.__eq - else - i32.const 0 - end - if (result i32) - local.get $3 - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=8 - local.get $4 - 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 11680 - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - call $~lib/string/String.__eq - else - i32.const 0 - end - if (result i32) - local.get $3 - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=8 - local.get $4 - 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 12784 - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - call $~lib/string/String.__eq - else - i32.const 0 - end + i32.const 17088 + 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 96 - i32.const 531 - i32.const 3 + i32.const 579 + i32.const 1 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 1104 + i32.const -2147483648 + i32.const 16 + call $~lib/util/number/utoa32 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 688 + i32.const 17136 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 96 + i32.const 580 + i32.const 1 + call $~lib/builtins/abort + unreachable + end i32.const -1 - call $~lib/string/String#split - local.tee $3 - i32.store offset=40 - local.get $3 + i32.const 16 + call $~lib/util/number/utoa32 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 - i32.const 3 - i32.eq - if (result i32) - local.get $3 - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=8 - local.get $4 - 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 784 - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - call $~lib/string/String.__eq - else - i32.const 0 - end - if (result i32) - local.get $3 - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=8 - local.get $4 - 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 11680 - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - call $~lib/string/String.__eq - else - i32.const 0 - end - if (result i32) - local.get $3 - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=8 - local.get $4 - 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 12784 - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - call $~lib/string/String.__eq - else - i32.const 0 - end + i32.const 17184 + 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 96 - i32.const 533 - i32.const 3 + i32.const 581 + i32.const 1 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 14160 + i32.const 0 + i32.const 16 + call $~lib/util/number/itoa32 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 1392 + i32.const 1792 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store offset=4 local.get $4 - i32.const -1 - call $~lib/string/String#split - local.tee $3 - i32.store offset=40 - local.get $3 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 583 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const -4096 + i32.const 16 + call $~lib/util/number/itoa32 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 - i32.const 3 - i32.eq - if (result i32) - local.get $3 - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=8 - local.get $4 - 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 784 - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - call $~lib/string/String.__eq - else + i32.const 16176 + 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 - end - if (result i32) - local.get $3 - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=8 - local.get $4 + i32.const 96 + i32.const 584 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 11680 - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - call $~lib/string/String.__eq - else - i32.const 0 - end - if (result i32) - local.get $3 - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=8 - local.get $4 - 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 12784 - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - call $~lib/string/String.__eq - else - i32.const 0 + call $~lib/builtins/abort + unreachable end + i32.const 2147483647 + i32.const 16 + call $~lib/util/number/itoa32 + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store + local.get $4 + i32.const 17088 + 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 96 - i32.const 535 - i32.const 3 + i32.const 585 + i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 0 - i32.const 10 + i32.const -2147483647 + i32.const 16 call $~lib/util/number/itoa32 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 1792 + i32.const 17232 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 @@ -23379,20 +21282,20 @@ if i32.const 0 i32.const 96 - i32.const 540 + i32.const 586 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 1 - i32.const 10 + i32.const -268435455 + i32.const 16 call $~lib/util/number/itoa32 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 1856 + i32.const 17280 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 @@ -23403,20 +21306,20 @@ if i32.const 0 i32.const 96 - i32.const 541 + i32.const 587 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 8 - i32.const 10 + i32.const -2147483648 + i32.const 16 call $~lib/util/number/itoa32 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 16112 + i32.const 17328 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 @@ -23427,20 +21330,20 @@ if i32.const 0 i32.const 96 - i32.const 542 + i32.const 588 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 12 - i32.const 10 + i32.const -2147483648 + i32.const 16 call $~lib/util/number/itoa32 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 16144 + i32.const 17328 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 @@ -23451,20 +21354,20 @@ if i32.const 0 i32.const 96 - i32.const 543 + i32.const 589 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 123 - i32.const 10 - call $~lib/util/number/itoa32 + i32.const 0 + i32.const 2 + call $~lib/util/number/utoa32 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 1168 + i32.const 1792 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 @@ -23475,20 +21378,20 @@ if i32.const 0 i32.const 96 - i32.const 544 + i32.const 593 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const -1000 - i32.const 10 - call $~lib/util/number/itoa32 + i32.const 1 + i32.const 2 + call $~lib/util/number/utoa32 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 16176 + i32.const 1856 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 @@ -23499,20 +21402,20 @@ if i32.const 0 i32.const 96 - i32.const 545 + i32.const 594 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 1234 - i32.const 10 - call $~lib/util/number/itoa32 + i32.const 3 + i32.const 2 + call $~lib/util/number/utoa32 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 12320 + i32.const 12224 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 @@ -23523,20 +21426,20 @@ if i32.const 0 i32.const 96 - i32.const 546 + i32.const 595 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 12345 - i32.const 10 - call $~lib/util/number/itoa32 + i32.const 7 + i32.const 2 + call $~lib/util/number/utoa32 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 16208 + i32.const 17376 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 @@ -23547,20 +21450,20 @@ if i32.const 0 i32.const 96 - i32.const 547 + i32.const 596 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 123456 - i32.const 10 - call $~lib/util/number/itoa32 + i32.const 14 + i32.const 2 + call $~lib/util/number/utoa32 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 16240 + i32.const 17408 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 @@ -23571,20 +21474,20 @@ if i32.const 0 i32.const 96 - i32.const 548 + i32.const 597 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 1111111 - i32.const 10 - call $~lib/util/number/itoa32 + i32.const 29 + i32.const 2 + call $~lib/util/number/utoa32 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 16272 + i32.const 17440 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 @@ -23595,20 +21498,20 @@ if i32.const 0 i32.const 96 - i32.const 549 + i32.const 598 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 1234567 - i32.const 10 - call $~lib/util/number/itoa32 + i32.const 59 + i32.const 2 + call $~lib/util/number/utoa32 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 16320 + i32.const 17472 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 @@ -23619,20 +21522,20 @@ if i32.const 0 i32.const 96 - i32.const 550 + i32.const 599 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 12345678 - i32.const 10 - call $~lib/util/number/itoa32 + i32.const 4095 + i32.const 2 + call $~lib/util/number/utoa32 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 16368 + i32.const 17504 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 @@ -23643,20 +21546,20 @@ if i32.const 0 i32.const 96 - i32.const 551 + i32.const 600 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 123456789 - i32.const 10 - call $~lib/util/number/itoa32 + i32.const 33554431 + i32.const 2 + call $~lib/util/number/utoa32 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 16416 + i32.const 17552 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 @@ -23667,20 +21570,20 @@ if i32.const 0 i32.const 96 - i32.const 552 + i32.const 601 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 2147483646 - i32.const 10 - call $~lib/util/number/itoa32 + i32.const -12 + i32.const 2 + call $~lib/util/number/utoa32 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 16464 + i32.const 17632 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 @@ -23691,20 +21594,20 @@ if i32.const 0 i32.const 96 - i32.const 553 + i32.const 602 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 2147483647 - i32.const 10 - call $~lib/util/number/itoa32 + i32.const -4 + i32.const 2 + call $~lib/util/number/utoa32 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 16512 + i32.const 17728 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 @@ -23715,20 +21618,20 @@ if i32.const 0 i32.const 96 - i32.const 554 + i32.const 603 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const -2147483648 - i32.const 10 - call $~lib/util/number/itoa32 + i32.const -2 + i32.const 2 + call $~lib/util/number/utoa32 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 16560 + i32.const 17824 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 @@ -23739,20 +21642,20 @@ if i32.const 0 i32.const 96 - i32.const 555 + i32.const 604 i32.const 1 call $~lib/builtins/abort unreachable end i32.const -1 - i32.const 10 - call $~lib/util/number/itoa32 + i32.const 2 + call $~lib/util/number/utoa32 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 16608 + i32.const 17920 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 @@ -23763,20 +21666,20 @@ if i32.const 0 i32.const 96 - i32.const 556 + i32.const 605 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 0 - i32.const 10 - call $~lib/util/number/utoa32 + i32.const -2047 + i32.const 2 + call $~lib/util/number/itoa32 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 1792 + i32.const 18016 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 @@ -23787,20 +21690,20 @@ if i32.const 0 i32.const 96 - i32.const 558 + i32.const 607 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 1000 - i32.const 10 + i32.const -1 + i32.const 3 call $~lib/util/number/utoa32 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 16640 + i32.const 18064 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 @@ -23811,20 +21714,20 @@ if i32.const 0 i32.const 96 - i32.const 559 + i32.const 611 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 2147483647 - i32.const 10 + i32.const -1 + i32.const 4 call $~lib/util/number/utoa32 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 16512 + i32.const 18128 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 @@ -23835,20 +21738,20 @@ if i32.const 0 i32.const 96 - i32.const 560 + i32.const 612 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const -2147483648 - i32.const 10 + i32.const -1 + i32.const 5 call $~lib/util/number/utoa32 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 16672 + i32.const 18192 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 @@ -23859,20 +21762,20 @@ if i32.const 0 i32.const 96 - i32.const 561 + i32.const 613 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $~lib/builtins/u32.MAX_VALUE - i32.const 10 + i32.const -1 + i32.const 8 call $~lib/util/number/utoa32 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 16720 + i32.const 18240 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 @@ -23883,20 +21786,20 @@ if i32.const 0 i32.const 96 - i32.const 562 + i32.const 614 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 0 - i32.const 16 + i32.const -1 + i32.const 11 call $~lib/util/number/utoa32 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 1792 + i32.const 18288 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 @@ -23907,20 +21810,20 @@ if i32.const 0 i32.const 96 - i32.const 566 + i32.const 615 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 1 - i32.const 16 + i32.const -1 + i32.const 15 call $~lib/util/number/utoa32 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 1856 + i32.const 18336 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 @@ -23931,20 +21834,20 @@ if i32.const 0 i32.const 96 - i32.const 567 + i32.const 616 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 8 - i32.const 16 + i32.const -1 + i32.const 17 call $~lib/util/number/utoa32 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 16112 + i32.const 18384 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 @@ -23955,20 +21858,20 @@ if i32.const 0 i32.const 96 - i32.const 568 + i32.const 617 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 12 - i32.const 16 + i32.const -1 + i32.const 21 call $~lib/util/number/utoa32 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 12784 + i32.const 18432 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 @@ -23979,20 +21882,20 @@ if i32.const 0 i32.const 96 - i32.const 569 + i32.const 618 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 123 - i32.const 16 + i32.const -1 + i32.const 27 call $~lib/util/number/utoa32 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 16768 + i32.const 18480 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 @@ -24003,20 +21906,20 @@ if i32.const 0 i32.const 96 - i32.const 570 + i32.const 619 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 1234 - i32.const 16 + i32.const -1 + i32.const 32 call $~lib/util/number/utoa32 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 16800 + i32.const 18528 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 @@ -24027,20 +21930,20 @@ if i32.const 0 i32.const 96 - i32.const 571 + i32.const 620 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 12345 - i32.const 16 + i32.const -1 + i32.const 36 call $~lib/util/number/utoa32 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 16832 + i32.const 18576 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 @@ -24051,20 +21954,20 @@ if i32.const 0 i32.const 96 - i32.const 572 + i32.const 621 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 123456 - i32.const 16 - call $~lib/util/number/utoa32 + i64.const 0 + i32.const 10 + call $~lib/util/number/utoa64 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 16864 + i32.const 1792 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 @@ -24075,20 +21978,20 @@ if i32.const 0 i32.const 96 - i32.const 573 + i32.const 625 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 1111111 - i32.const 16 - call $~lib/util/number/utoa32 + i64.const 12 + i32.const 10 + call $~lib/util/number/utoa64 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 16896 + i32.const 16144 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 @@ -24099,20 +22002,20 @@ if i32.const 0 i32.const 96 - i32.const 574 + i32.const 626 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 1234567 - i32.const 16 - call $~lib/util/number/utoa32 + i64.const 123 + i32.const 10 + call $~lib/util/number/utoa64 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 16928 + i32.const 1168 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 @@ -24123,20 +22026,20 @@ if i32.const 0 i32.const 96 - i32.const 575 + i32.const 627 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 12345678 - i32.const 16 - call $~lib/util/number/utoa32 + i64.const 1234 + i32.const 10 + call $~lib/util/number/utoa64 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 16960 + i32.const 12320 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 @@ -24147,20 +22050,20 @@ if i32.const 0 i32.const 96 - i32.const 576 + i32.const 628 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 123456789 - i32.const 16 - call $~lib/util/number/utoa32 + i64.const 12345 + i32.const 10 + call $~lib/util/number/utoa64 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 16992 + i32.const 16208 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 @@ -24171,20 +22074,20 @@ if i32.const 0 i32.const 96 - i32.const 577 + i32.const 629 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 2147483646 - i32.const 16 - call $~lib/util/number/utoa32 + i64.const 123456 + i32.const 10 + call $~lib/util/number/utoa64 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 17040 + i32.const 16240 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 @@ -24195,20 +22098,20 @@ if i32.const 0 i32.const 96 - i32.const 578 + i32.const 630 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 2147483647 - i32.const 16 - call $~lib/util/number/utoa32 + i64.const 1234567 + i32.const 10 + call $~lib/util/number/utoa64 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 17088 + i32.const 16320 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 @@ -24219,20 +22122,20 @@ if i32.const 0 i32.const 96 - i32.const 579 + i32.const 631 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const -2147483648 - i32.const 16 - call $~lib/util/number/utoa32 + i64.const 99999999 + i32.const 10 + call $~lib/util/number/utoa64 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 17136 + i32.const 18624 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 @@ -24243,20 +22146,20 @@ if i32.const 0 i32.const 96 - i32.const 580 + i32.const 632 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const -1 - i32.const 16 - call $~lib/util/number/utoa32 + i64.const 100000000 + i32.const 10 + call $~lib/util/number/utoa64 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 17184 + i32.const 18672 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 @@ -24267,20 +22170,20 @@ if i32.const 0 i32.const 96 - i32.const 581 + i32.const 633 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 0 - i32.const 16 - call $~lib/util/number/itoa32 + i64.const 4294967295 + i32.const 10 + call $~lib/util/number/utoa64 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 1792 + i32.const 16720 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 @@ -24291,20 +22194,20 @@ if i32.const 0 i32.const 96 - i32.const 583 + i32.const 634 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const -4096 - i32.const 16 - call $~lib/util/number/itoa32 + i64.const 4294967297 + i32.const 10 + call $~lib/util/number/utoa64 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 16176 + i32.const 18720 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 @@ -24315,20 +22218,20 @@ if i32.const 0 i32.const 96 - i32.const 584 + i32.const 635 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 2147483647 - i32.const 16 - call $~lib/util/number/itoa32 + i64.const 68719476735 + i32.const 10 + call $~lib/util/number/utoa64 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 17088 + i32.const 18768 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 @@ -24339,20 +22242,20 @@ if i32.const 0 i32.const 96 - i32.const 585 + i32.const 636 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const -2147483647 - i32.const 16 - call $~lib/util/number/itoa32 + i64.const 868719476735 + i32.const 10 + call $~lib/util/number/utoa64 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 17232 + i32.const 18816 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 @@ -24363,20 +22266,20 @@ if i32.const 0 i32.const 96 - i32.const 586 + i32.const 637 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const -268435455 - i32.const 16 - call $~lib/util/number/itoa32 + i64.const 8687194767350 + i32.const 10 + call $~lib/util/number/utoa64 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 17280 + i32.const 18864 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 @@ -24387,20 +22290,20 @@ if i32.const 0 i32.const 96 - i32.const 587 + i32.const 638 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const -2147483648 - i32.const 16 - call $~lib/util/number/itoa32 + i64.const 86871947673501 + i32.const 10 + call $~lib/util/number/utoa64 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 17328 + i32.const 18912 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 @@ -24411,20 +22314,20 @@ if i32.const 0 i32.const 96 - i32.const 588 + i32.const 639 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const -2147483648 - i32.const 16 - call $~lib/util/number/itoa32 + i64.const 999868719476735 + i32.const 10 + call $~lib/util/number/utoa64 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 17328 + i32.const 18960 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 @@ -24435,20 +22338,20 @@ if i32.const 0 i32.const 96 - i32.const 589 + i32.const 640 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 0 - i32.const 2 - call $~lib/util/number/utoa32 + i64.const 9999868719476735 + i32.const 10 + call $~lib/util/number/utoa64 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 1792 + i32.const 19024 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 @@ -24459,20 +22362,20 @@ if i32.const 0 i32.const 96 - i32.const 593 + i32.const 641 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 1 - i32.const 2 - call $~lib/util/number/utoa32 + i64.const 19999868719476735 + i32.const 10 + call $~lib/util/number/utoa64 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 1856 + i32.const 19088 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 @@ -24483,20 +22386,20 @@ if i32.const 0 i32.const 96 - i32.const 594 + i32.const 642 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 3 - i32.const 2 - call $~lib/util/number/utoa32 + i64.const 129999868719476735 + i32.const 10 + call $~lib/util/number/utoa64 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 12224 + i32.const 19152 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 @@ -24507,20 +22410,20 @@ if i32.const 0 i32.const 96 - i32.const 595 + i32.const 643 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 7 - i32.const 2 - call $~lib/util/number/utoa32 + i64.const 1239999868719476735 + i32.const 10 + call $~lib/util/number/utoa64 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 17376 + i32.const 19216 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 @@ -24531,20 +22434,20 @@ if i32.const 0 i32.const 96 - i32.const 596 + i32.const 644 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 14 - i32.const 2 - call $~lib/util/number/utoa32 + global.get $~lib/builtins/u64.MAX_VALUE + i32.const 10 + call $~lib/util/number/utoa64 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 17408 + i32.const 19280 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 @@ -24555,20 +22458,20 @@ if i32.const 0 i32.const 96 - i32.const 597 + i32.const 645 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 29 - i32.const 2 - call $~lib/util/number/utoa32 + i64.const 0 + i32.const 10 + call $~lib/util/number/itoa64 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 17440 + i32.const 1792 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 @@ -24579,20 +22482,20 @@ if i32.const 0 i32.const 96 - i32.const 598 + i32.const 647 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 59 - i32.const 2 - call $~lib/util/number/utoa32 + i64.const -1234 + i32.const 10 + call $~lib/util/number/itoa64 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 17472 + i32.const 19344 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 @@ -24603,20 +22506,20 @@ if i32.const 0 i32.const 96 - i32.const 599 + i32.const 648 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 4095 - i32.const 2 - call $~lib/util/number/utoa32 + i64.const 4294967295 + i32.const 10 + call $~lib/util/number/itoa64 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 17504 + i32.const 16720 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 @@ -24627,20 +22530,20 @@ if i32.const 0 i32.const 96 - i32.const 600 + i32.const 649 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 33554431 - i32.const 2 - call $~lib/util/number/utoa32 + i64.const 4294967297 + i32.const 10 + call $~lib/util/number/itoa64 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 17552 + i32.const 18720 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 @@ -24651,20 +22554,20 @@ if i32.const 0 i32.const 96 - i32.const 601 + i32.const 650 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const -12 - i32.const 2 - call $~lib/util/number/utoa32 + i64.const -4294967295 + i32.const 10 + call $~lib/util/number/itoa64 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 17632 + i32.const 19376 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 @@ -24675,20 +22578,20 @@ if i32.const 0 i32.const 96 - i32.const 602 + i32.const 651 i32.const 1 call $~lib/builtins/abort - unreachable - end - i32.const -4 - i32.const 2 - call $~lib/util/number/utoa32 + unreachable + end + i64.const 68719476735 + i32.const 10 + call $~lib/util/number/itoa64 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 17728 + i32.const 18768 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 @@ -24699,20 +22602,20 @@ if i32.const 0 i32.const 96 - i32.const 603 + i32.const 652 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const -2 - i32.const 2 - call $~lib/util/number/utoa32 + i64.const -68719476735 + i32.const 10 + call $~lib/util/number/itoa64 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 17824 + i32.const 19424 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 @@ -24723,20 +22626,20 @@ if i32.const 0 i32.const 96 - i32.const 604 + i32.const 653 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const -1 - i32.const 2 - call $~lib/util/number/utoa32 + i64.const -868719476735 + i32.const 10 + call $~lib/util/number/itoa64 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 17920 + i32.const 19472 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 @@ -24747,20 +22650,20 @@ if i32.const 0 i32.const 96 - i32.const 605 + i32.const 654 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const -2047 - i32.const 2 - call $~lib/util/number/itoa32 + i64.const -999868719476735 + i32.const 10 + call $~lib/util/number/itoa64 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 18016 + i32.const 19520 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 @@ -24771,20 +22674,20 @@ if i32.const 0 i32.const 96 - i32.const 607 + i32.const 655 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const -1 - i32.const 3 - call $~lib/util/number/utoa32 + i64.const -19999868719476735 + i32.const 10 + call $~lib/util/number/itoa64 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 18064 + i32.const 19584 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 @@ -24795,20 +22698,20 @@ if i32.const 0 i32.const 96 - i32.const 611 + i32.const 656 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const -1 - i32.const 4 - call $~lib/util/number/utoa32 + global.get $~lib/builtins/i64.MAX_VALUE + i32.const 10 + call $~lib/util/number/itoa64 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 18128 + i32.const 19648 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 @@ -24819,20 +22722,20 @@ if i32.const 0 i32.const 96 - i32.const 612 + i32.const 657 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const -1 - i32.const 5 - call $~lib/util/number/utoa32 + global.get $~lib/builtins/i64.MIN_VALUE + i32.const 10 + call $~lib/util/number/itoa64 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 18192 + i32.const 19712 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 @@ -24843,20 +22746,20 @@ if i32.const 0 i32.const 96 - i32.const 613 + i32.const 658 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const -1 - i32.const 8 - call $~lib/util/number/utoa32 + i64.const 0 + i32.const 16 + call $~lib/util/number/utoa64 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 18240 + i32.const 1792 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 @@ -24867,20 +22770,20 @@ if i32.const 0 i32.const 96 - i32.const 614 + i32.const 662 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const -1 - i32.const 11 - call $~lib/util/number/utoa32 + i64.const 1 + i32.const 16 + call $~lib/util/number/utoa64 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 18288 + i32.const 1856 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 @@ -24891,20 +22794,20 @@ if i32.const 0 i32.const 96 - i32.const 615 + i32.const 663 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const -1 - i32.const 15 - call $~lib/util/number/utoa32 + i64.const 12 + i32.const 16 + call $~lib/util/number/utoa64 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 18336 + i32.const 12784 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 @@ -24915,20 +22818,20 @@ if i32.const 0 i32.const 96 - i32.const 616 + i32.const 664 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const -1 - i32.const 17 - call $~lib/util/number/utoa32 + i64.const 1234 + i32.const 16 + call $~lib/util/number/utoa64 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 18384 + i32.const 16800 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 @@ -24939,20 +22842,20 @@ if i32.const 0 i32.const 96 - i32.const 617 + i32.const 665 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const -1 - i32.const 21 - call $~lib/util/number/utoa32 + i64.const 1111111 + i32.const 16 + call $~lib/util/number/utoa64 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 18432 + i32.const 16896 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 @@ -24963,20 +22866,20 @@ if i32.const 0 i32.const 96 - i32.const 618 + i32.const 666 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const -1 - i32.const 27 - call $~lib/util/number/utoa32 + i64.const 8589934591 + i32.const 16 + call $~lib/util/number/utoa64 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 18480 + i32.const 19776 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 @@ -24987,20 +22890,20 @@ if i32.const 0 i32.const 96 - i32.const 619 + i32.const 667 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const -1 - i32.const 32 - call $~lib/util/number/utoa32 + i64.const 5942249508321 + i32.const 16 + call $~lib/util/number/utoa64 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 18528 + i32.const 19824 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 @@ -25011,20 +22914,20 @@ if i32.const 0 i32.const 96 - i32.const 620 + i32.const 668 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const -1 - i32.const 36 - call $~lib/util/number/utoa32 + i64.const 76310993685985 + i32.const 16 + call $~lib/util/number/utoa64 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 18576 + i32.const 19872 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 @@ -25035,20 +22938,20 @@ if i32.const 0 i32.const 96 - i32.const 621 + i32.const 669 i32.const 1 call $~lib/builtins/abort unreachable end - i64.const 0 - i32.const 10 + i64.const 920735923817967 + i32.const 16 call $~lib/util/number/utoa64 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 1792 + i32.const 19920 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 @@ -25059,20 +22962,20 @@ if i32.const 0 i32.const 96 - i32.const 625 + i32.const 670 i32.const 1 call $~lib/builtins/abort unreachable end - i64.const 12 - i32.const 10 + i64.const 9927935178558959 + i32.const 16 call $~lib/util/number/utoa64 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 16144 + i32.const 19968 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 @@ -25083,20 +22986,20 @@ if i32.const 0 i32.const 96 - i32.const 626 + i32.const 671 i32.const 1 call $~lib/builtins/abort unreachable end - i64.const 123 - i32.const 10 + i64.const 81985529216486895 + i32.const 16 call $~lib/util/number/utoa64 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 1168 + i32.const 20016 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 @@ -25107,20 +23010,20 @@ if i32.const 0 i32.const 96 - i32.const 627 + i32.const 672 i32.const 1 call $~lib/builtins/abort unreachable end - i64.const 1234 - i32.const 10 + i64.const 1311768467463790320 + i32.const 16 call $~lib/util/number/utoa64 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 12320 + i32.const 20080 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 @@ -25131,20 +23034,20 @@ if i32.const 0 i32.const 96 - i32.const 628 + i32.const 673 i32.const 1 call $~lib/builtins/abort unreachable end - i64.const 12345 - i32.const 10 + i64.const 9223372036854775807 + i32.const 16 call $~lib/util/number/utoa64 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 16208 + i32.const 20144 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 @@ -25155,20 +23058,20 @@ if i32.const 0 i32.const 96 - i32.const 629 + i32.const 674 i32.const 1 call $~lib/builtins/abort unreachable end - i64.const 123456 - i32.const 10 + i64.const -1 + i32.const 16 call $~lib/util/number/utoa64 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 16240 + i32.const 20208 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 @@ -25179,20 +23082,20 @@ if i32.const 0 i32.const 96 - i32.const 630 + i32.const 675 i32.const 1 call $~lib/builtins/abort unreachable end - i64.const 1234567 - i32.const 10 - call $~lib/util/number/utoa64 + i64.const -9223372036854775807 + i32.const 16 + call $~lib/util/number/itoa64 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 16320 + i32.const 20272 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 @@ -25203,20 +23106,20 @@ if i32.const 0 i32.const 96 - i32.const 631 + i32.const 677 i32.const 1 call $~lib/builtins/abort unreachable end - i64.const 99999999 - i32.const 10 - call $~lib/util/number/utoa64 + i64.const -9223372036854775808 + i32.const 16 + call $~lib/util/number/itoa64 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 18624 + i32.const 20336 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 @@ -25227,20 +23130,20 @@ if i32.const 0 i32.const 96 - i32.const 632 + i32.const 678 i32.const 1 call $~lib/builtins/abort unreachable end - i64.const 100000000 - i32.const 10 - call $~lib/util/number/utoa64 + i64.const -9223372036854775808 + i32.const 16 + call $~lib/util/number/itoa64 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 18672 + i32.const 20336 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 @@ -25251,20 +23154,20 @@ if i32.const 0 i32.const 96 - i32.const 633 + i32.const 679 i32.const 1 call $~lib/builtins/abort unreachable end - i64.const 4294967295 - i32.const 10 + i64.const 0 + i32.const 2 call $~lib/util/number/utoa64 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 16720 + i32.const 1792 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 @@ -25275,20 +23178,20 @@ if i32.const 0 i32.const 96 - i32.const 634 + i32.const 683 i32.const 1 call $~lib/builtins/abort unreachable end - i64.const 4294967297 - i32.const 10 + i64.const 1 + i32.const 2 call $~lib/util/number/utoa64 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 18720 + i32.const 1856 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 @@ -25299,20 +23202,20 @@ if i32.const 0 i32.const 96 - i32.const 635 + i32.const 684 i32.const 1 call $~lib/builtins/abort unreachable end - i64.const 68719476735 - i32.const 10 + i64.const 7 + i32.const 2 call $~lib/util/number/utoa64 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 18768 + i32.const 17376 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 @@ -25323,20 +23226,20 @@ if i32.const 0 i32.const 96 - i32.const 636 + i32.const 685 i32.const 1 call $~lib/builtins/abort unreachable end - i64.const 868719476735 - i32.const 10 + i64.const 14 + i32.const 2 call $~lib/util/number/utoa64 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 18816 + i32.const 17408 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 @@ -25347,20 +23250,20 @@ if i32.const 0 i32.const 96 - i32.const 637 + i32.const 686 i32.const 1 call $~lib/builtins/abort unreachable end - i64.const 8687194767350 - i32.const 10 + i64.const 59 + i32.const 2 call $~lib/util/number/utoa64 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 18864 + i32.const 17472 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 @@ -25371,20 +23274,20 @@ if i32.const 0 i32.const 96 - i32.const 638 + i32.const 687 i32.const 1 call $~lib/builtins/abort unreachable end - i64.const 86871947673501 - i32.const 10 + i64.const 4095 + i32.const 2 call $~lib/util/number/utoa64 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 18912 + i32.const 17504 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 @@ -25395,20 +23298,20 @@ if i32.const 0 i32.const 96 - i32.const 639 + i32.const 688 i32.const 1 call $~lib/builtins/abort unreachable end - i64.const 999868719476735 - i32.const 10 + i64.const 4294967295 + i32.const 2 call $~lib/util/number/utoa64 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 18960 + i32.const 17920 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 @@ -25419,20 +23322,20 @@ if i32.const 0 i32.const 96 - i32.const 640 + i32.const 689 i32.const 1 call $~lib/builtins/abort unreachable end - i64.const 9999868719476735 - i32.const 10 + i64.const 562949953421311 + i32.const 2 call $~lib/util/number/utoa64 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 19024 + i32.const 20400 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 @@ -25443,20 +23346,20 @@ if i32.const 0 i32.const 96 - i32.const 641 + i32.const 690 i32.const 1 call $~lib/builtins/abort unreachable end - i64.const 19999868719476735 - i32.const 10 + i64.const -1 + i32.const 2 call $~lib/util/number/utoa64 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 19088 + i32.const 20528 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 @@ -25467,20 +23370,20 @@ if i32.const 0 i32.const 96 - i32.const 642 + i32.const 691 i32.const 1 call $~lib/builtins/abort unreachable end - i64.const 129999868719476735 - i32.const 10 - call $~lib/util/number/utoa64 + i64.const -8589934591 + i32.const 2 + call $~lib/util/number/itoa64 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 19152 + i32.const 20688 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 @@ -25491,20 +23394,20 @@ if i32.const 0 i32.const 96 - i32.const 643 + i32.const 693 i32.const 1 call $~lib/builtins/abort unreachable end - i64.const 1239999868719476735 - i32.const 10 + i64.const -1 + i32.const 3 call $~lib/util/number/utoa64 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 19216 + i32.const 20784 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 @@ -25515,20 +23418,20 @@ if i32.const 0 i32.const 96 - i32.const 644 + i32.const 697 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $~lib/builtins/u64.MAX_VALUE - i32.const 10 + i64.const -1 + i32.const 4 call $~lib/util/number/utoa64 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 19280 + i32.const 20896 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 @@ -25539,20 +23442,20 @@ if i32.const 0 i32.const 96 - i32.const 645 + i32.const 698 i32.const 1 call $~lib/builtins/abort unreachable end - i64.const 0 - i32.const 10 - call $~lib/util/number/itoa64 + i64.const -1 + i32.const 5 + call $~lib/util/number/utoa64 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 1792 + i32.const 20992 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 @@ -25563,20 +23466,20 @@ if i32.const 0 i32.const 96 - i32.const 647 + i32.const 699 i32.const 1 call $~lib/builtins/abort unreachable end - i64.const -1234 - i32.const 10 - call $~lib/util/number/itoa64 + i64.const -1 + i32.const 8 + call $~lib/util/number/utoa64 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 19344 + i32.const 21072 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 @@ -25587,20 +23490,20 @@ if i32.const 0 i32.const 96 - i32.const 648 + i32.const 700 i32.const 1 call $~lib/builtins/abort unreachable end - i64.const 4294967295 - i32.const 10 - call $~lib/util/number/itoa64 + i64.const -1 + i32.const 11 + call $~lib/util/number/utoa64 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 16720 + i32.const 21136 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 @@ -25611,20 +23514,20 @@ if i32.const 0 i32.const 96 - i32.const 649 + i32.const 701 i32.const 1 call $~lib/builtins/abort unreachable end - i64.const 4294967297 - i32.const 10 - call $~lib/util/number/itoa64 + i64.const -1 + i32.const 15 + call $~lib/util/number/utoa64 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 18720 + i32.const 21200 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 @@ -25635,20 +23538,20 @@ if i32.const 0 i32.const 96 - i32.const 650 + i32.const 702 i32.const 1 call $~lib/builtins/abort unreachable end - i64.const -4294967295 - i32.const 10 - call $~lib/util/number/itoa64 + i64.const -1 + i32.const 17 + call $~lib/util/number/utoa64 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 19376 + i32.const 21264 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 @@ -25659,20 +23562,20 @@ if i32.const 0 i32.const 96 - i32.const 651 + i32.const 703 i32.const 1 call $~lib/builtins/abort unreachable end - i64.const 68719476735 - i32.const 10 - call $~lib/util/number/itoa64 + i64.const -1 + i32.const 21 + call $~lib/util/number/utoa64 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 18768 + i32.const 21328 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 @@ -25683,20 +23586,20 @@ if i32.const 0 i32.const 96 - i32.const 652 + i32.const 704 i32.const 1 call $~lib/builtins/abort unreachable end - i64.const -68719476735 - i32.const 10 - call $~lib/util/number/itoa64 + i64.const -1 + i32.const 27 + call $~lib/util/number/utoa64 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 19424 + i32.const 21392 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 @@ -25707,20 +23610,20 @@ if i32.const 0 i32.const 96 - i32.const 653 + i32.const 705 i32.const 1 call $~lib/builtins/abort unreachable end - i64.const -868719476735 - i32.const 10 - call $~lib/util/number/itoa64 + i64.const -1 + i32.const 32 + call $~lib/util/number/utoa64 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 19472 + i32.const 21440 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 @@ -25731,20 +23634,20 @@ if i32.const 0 i32.const 96 - i32.const 654 + i32.const 706 i32.const 1 call $~lib/builtins/abort unreachable end - i64.const -999868719476735 - i32.const 10 - call $~lib/util/number/itoa64 + i64.const -1 + i32.const 36 + call $~lib/util/number/utoa64 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 19520 + i32.const 21488 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 @@ -25755,20 +23658,19 @@ if i32.const 0 i32.const 96 - i32.const 655 + i32.const 707 i32.const 1 call $~lib/builtins/abort unreachable end - i64.const -19999868719476735 - i32.const 10 - call $~lib/util/number/itoa64 + f64.const 0 + call $~lib/util/number/dtoa local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 19584 + i32.const 21536 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 @@ -25779,20 +23681,19 @@ if i32.const 0 i32.const 96 - i32.const 656 + i32.const 710 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $~lib/builtins/i64.MAX_VALUE - i32.const 10 - call $~lib/util/number/itoa64 + f64.const -0 + call $~lib/util/number/dtoa local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 19648 + i32.const 21536 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 @@ -25803,20 +23704,19 @@ if i32.const 0 i32.const 96 - i32.const 657 + i32.const 711 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $~lib/builtins/i64.MIN_VALUE - i32.const 10 - call $~lib/util/number/itoa64 + f64.const nan:0x8000000000000 + call $~lib/util/number/dtoa local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 19712 + i32.const 5984 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 @@ -25827,20 +23727,19 @@ if i32.const 0 i32.const 96 - i32.const 658 + i32.const 712 i32.const 1 call $~lib/builtins/abort unreachable end - i64.const 0 - i32.const 16 - call $~lib/util/number/utoa64 + f64.const inf + call $~lib/util/number/dtoa local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 1792 + i32.const 21568 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 @@ -25851,20 +23750,20 @@ if i32.const 0 i32.const 96 - i32.const 662 + i32.const 713 i32.const 1 call $~lib/builtins/abort unreachable end - i64.const 1 - i32.const 16 - call $~lib/util/number/utoa64 + f64.const inf + f64.neg + call $~lib/util/number/dtoa local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 1856 + i32.const 7280 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 @@ -25875,20 +23774,19 @@ if i32.const 0 i32.const 96 - i32.const 663 + i32.const 714 i32.const 1 call $~lib/builtins/abort unreachable end - i64.const 12 - i32.const 16 - call $~lib/util/number/utoa64 + global.get $~lib/builtins/f64.EPSILON + call $~lib/util/number/dtoa local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 12784 + i32.const 6496 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 @@ -25899,20 +23797,20 @@ if i32.const 0 i32.const 96 - i32.const 664 + i32.const 715 i32.const 1 call $~lib/builtins/abort unreachable end - i64.const 1234 - i32.const 16 - call $~lib/util/number/utoa64 + global.get $~lib/builtins/f64.EPSILON + f64.neg + call $~lib/util/number/dtoa local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 16800 + i32.const 22592 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 @@ -25923,20 +23821,19 @@ if i32.const 0 i32.const 96 - i32.const 665 + i32.const 716 i32.const 1 call $~lib/builtins/abort unreachable end - i64.const 1111111 - i32.const 16 - call $~lib/util/number/utoa64 + global.get $~lib/builtins/f64.MAX_VALUE + call $~lib/util/number/dtoa local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 16896 + i32.const 6560 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 @@ -25947,20 +23844,20 @@ if i32.const 0 i32.const 96 - i32.const 666 + i32.const 717 i32.const 1 call $~lib/builtins/abort unreachable end - i64.const 8589934591 - i32.const 16 - call $~lib/util/number/utoa64 + global.get $~lib/builtins/f64.MAX_VALUE + f64.neg + call $~lib/util/number/dtoa local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 19776 + i32.const 22656 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 @@ -25971,20 +23868,19 @@ if i32.const 0 i32.const 96 - i32.const 667 + i32.const 718 i32.const 1 call $~lib/builtins/abort unreachable end - i64.const 5942249508321 - i32.const 16 - call $~lib/util/number/utoa64 + f64.const 4185580496821356722454785e274 + call $~lib/util/number/dtoa local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 19824 + i32.const 22736 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 @@ -25995,20 +23891,19 @@ if i32.const 0 i32.const 96 - i32.const 668 + i32.const 719 i32.const 1 call $~lib/builtins/abort unreachable - end - i64.const 76310993685985 - i32.const 16 - call $~lib/util/number/utoa64 + end + f64.const 2.2250738585072014e-308 + call $~lib/util/number/dtoa local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 19872 + i32.const 22800 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 @@ -26019,20 +23914,19 @@ if i32.const 0 i32.const 96 - i32.const 669 + i32.const 720 i32.const 1 call $~lib/builtins/abort unreachable end - i64.const 920735923817967 - i32.const 16 - call $~lib/util/number/utoa64 + f64.const 4.940656e-318 + call $~lib/util/number/dtoa local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 19920 + i32.const 22880 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 @@ -26043,20 +23937,19 @@ if i32.const 0 i32.const 96 - i32.const 670 + i32.const 723 i32.const 1 call $~lib/builtins/abort unreachable end - i64.const 9927935178558959 - i32.const 16 - call $~lib/util/number/utoa64 + f64.const 9060801153433600 + call $~lib/util/number/dtoa local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 19968 + i32.const 22928 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 @@ -26067,20 +23960,19 @@ if i32.const 0 i32.const 96 - i32.const 671 + i32.const 724 i32.const 1 call $~lib/builtins/abort unreachable end - i64.const 81985529216486895 - i32.const 16 - call $~lib/util/number/utoa64 + f64.const 4708356024711512064 + call $~lib/util/number/dtoa local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 20016 + i32.const 22992 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 @@ -26091,20 +23983,19 @@ if i32.const 0 i32.const 96 - i32.const 672 + i32.const 725 i32.const 1 call $~lib/builtins/abort unreachable end - i64.const 1311768467463790320 - i32.const 16 - call $~lib/util/number/utoa64 + f64.const 9409340012568248320 + call $~lib/util/number/dtoa local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 20080 + i32.const 23056 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 @@ -26115,20 +24006,19 @@ if i32.const 0 i32.const 96 - i32.const 673 + i32.const 726 i32.const 1 call $~lib/builtins/abort unreachable end - i64.const 9223372036854775807 - i32.const 16 - call $~lib/util/number/utoa64 + f64.const 5e-324 + call $~lib/util/number/dtoa local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 20144 + i32.const 6640 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 @@ -26139,20 +24029,19 @@ if i32.const 0 i32.const 96 - i32.const 674 + i32.const 727 i32.const 1 call $~lib/builtins/abort unreachable end - i64.const -1 - i32.const 16 - call $~lib/util/number/utoa64 + f64.const 1 + call $~lib/util/number/dtoa local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 20208 + i32.const 23120 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 @@ -26163,20 +24052,19 @@ if i32.const 0 i32.const 96 - i32.const 675 + i32.const 733 i32.const 1 call $~lib/builtins/abort unreachable end - i64.const -9223372036854775807 - i32.const 16 - call $~lib/util/number/itoa64 + f64.const 0.1 + call $~lib/util/number/dtoa local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 20272 + i32.const 3568 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 @@ -26187,20 +24075,19 @@ if i32.const 0 i32.const 96 - i32.const 677 + i32.const 734 i32.const 1 call $~lib/builtins/abort unreachable end - i64.const -9223372036854775808 - i32.const 16 - call $~lib/util/number/itoa64 + f64.const -1 + call $~lib/util/number/dtoa local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 20336 + i32.const 23152 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 @@ -26211,20 +24098,19 @@ if i32.const 0 i32.const 96 - i32.const 678 + i32.const 735 i32.const 1 call $~lib/builtins/abort unreachable end - i64.const -9223372036854775808 - i32.const 16 - call $~lib/util/number/itoa64 + f64.const -0.1 + call $~lib/util/number/dtoa local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 20336 + i32.const 23184 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 @@ -26235,20 +24121,19 @@ if i32.const 0 i32.const 96 - i32.const 679 + i32.const 736 i32.const 1 call $~lib/builtins/abort unreachable end - i64.const 0 - i32.const 2 - call $~lib/util/number/utoa64 + f64.const 1e6 + call $~lib/util/number/dtoa local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 1792 + i32.const 23216 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 @@ -26259,20 +24144,19 @@ if i32.const 0 i32.const 96 - i32.const 683 + i32.const 738 i32.const 1 call $~lib/builtins/abort unreachable end - i64.const 1 - i32.const 2 - call $~lib/util/number/utoa64 + f64.const 1e-06 + call $~lib/util/number/dtoa local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 1856 + i32.const 23264 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 @@ -26283,20 +24167,19 @@ if i32.const 0 i32.const 96 - i32.const 684 + i32.const 739 i32.const 1 call $~lib/builtins/abort unreachable end - i64.const 7 - i32.const 2 - call $~lib/util/number/utoa64 + f64.const -1e6 + call $~lib/util/number/dtoa local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 17376 + i32.const 23312 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 @@ -26307,20 +24190,19 @@ if i32.const 0 i32.const 96 - i32.const 685 + i32.const 740 i32.const 1 call $~lib/builtins/abort unreachable end - i64.const 14 - i32.const 2 - call $~lib/util/number/utoa64 + f64.const -1e-06 + call $~lib/util/number/dtoa local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 17408 + i32.const 23360 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 @@ -26331,20 +24213,19 @@ if i32.const 0 i32.const 96 - i32.const 686 + i32.const 741 i32.const 1 call $~lib/builtins/abort unreachable end - i64.const 59 - i32.const 2 - call $~lib/util/number/utoa64 + f64.const 1e7 + call $~lib/util/number/dtoa local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 17472 + i32.const 23408 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 @@ -26355,20 +24236,19 @@ if i32.const 0 i32.const 96 - i32.const 687 + i32.const 742 i32.const 1 call $~lib/builtins/abort unreachable end - i64.const 4095 - i32.const 2 - call $~lib/util/number/utoa64 + f64.const 1e-07 + call $~lib/util/number/dtoa local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 17504 + i32.const 23456 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 @@ -26379,20 +24259,19 @@ if i32.const 0 i32.const 96 - i32.const 688 + i32.const 743 i32.const 1 call $~lib/builtins/abort unreachable end - i64.const 4294967295 - i32.const 2 - call $~lib/util/number/utoa64 + f64.const 1.e+308 + call $~lib/util/number/dtoa local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 17920 + i32.const 3856 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 @@ -26403,20 +24282,19 @@ if i32.const 0 i32.const 96 - i32.const 689 + i32.const 745 i32.const 1 call $~lib/builtins/abort unreachable end - i64.const 562949953421311 - i32.const 2 - call $~lib/util/number/utoa64 + f64.const -1.e+308 + call $~lib/util/number/dtoa local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 20400 + i32.const 23488 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 @@ -26427,20 +24305,19 @@ if i32.const 0 i32.const 96 - i32.const 690 + i32.const 746 i32.const 1 call $~lib/builtins/abort unreachable end - i64.const -1 - i32.const 2 - call $~lib/util/number/utoa64 + f64.const inf + call $~lib/util/number/dtoa local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 20528 + i32.const 21568 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 @@ -26451,20 +24328,19 @@ if i32.const 0 i32.const 96 - i32.const 691 + i32.const 747 i32.const 1 call $~lib/builtins/abort unreachable end - i64.const -8589934591 - i32.const 2 - call $~lib/util/number/itoa64 + f64.const -inf + call $~lib/util/number/dtoa local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 20688 + i32.const 7280 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 @@ -26475,20 +24351,19 @@ if i32.const 0 i32.const 96 - i32.const 693 + i32.const 748 i32.const 1 call $~lib/builtins/abort unreachable end - i64.const -1 - i32.const 3 - call $~lib/util/number/utoa64 + f64.const 1e-308 + call $~lib/util/number/dtoa local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 20784 + i32.const 23536 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 @@ -26499,20 +24374,19 @@ if i32.const 0 i32.const 96 - i32.const 697 + i32.const 749 i32.const 1 call $~lib/builtins/abort unreachable end - i64.const -1 - i32.const 4 - call $~lib/util/number/utoa64 + f64.const -1e-308 + call $~lib/util/number/dtoa local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 20896 + i32.const 23568 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 @@ -26523,20 +24397,19 @@ if i32.const 0 i32.const 96 - i32.const 698 + i32.const 750 i32.const 1 call $~lib/builtins/abort unreachable end - i64.const -1 - i32.const 5 - call $~lib/util/number/utoa64 + f64.const 1e-323 + call $~lib/util/number/dtoa local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 20992 + i32.const 23616 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 @@ -26547,20 +24420,19 @@ if i32.const 0 i32.const 96 - i32.const 699 + i32.const 751 i32.const 1 call $~lib/builtins/abort unreachable end - i64.const -1 - i32.const 8 - call $~lib/util/number/utoa64 + f64.const -1e-323 + call $~lib/util/number/dtoa local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 21072 + i32.const 23648 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 @@ -26571,20 +24443,19 @@ if i32.const 0 i32.const 96 - i32.const 700 + i32.const 752 i32.const 1 call $~lib/builtins/abort unreachable end - i64.const -1 - i32.const 11 - call $~lib/util/number/utoa64 + f64.const 0 + call $~lib/util/number/dtoa local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 21136 + i32.const 21536 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 @@ -26595,20 +24466,19 @@ if i32.const 0 i32.const 96 - i32.const 701 + i32.const 753 i32.const 1 call $~lib/builtins/abort unreachable end - i64.const -1 - i32.const 15 - call $~lib/util/number/utoa64 + f64.const 4294967272 + call $~lib/util/number/dtoa local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 21200 + i32.const 23696 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 @@ -26619,20 +24489,19 @@ if i32.const 0 i32.const 96 - i32.const 702 + i32.const 755 i32.const 1 call $~lib/builtins/abort unreachable end - i64.const -1 - i32.const 17 - call $~lib/util/number/utoa64 + f64.const 1.2312145673456234e-08 + call $~lib/util/number/dtoa local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 21264 + i32.const 23744 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 @@ -26643,20 +24512,19 @@ if i32.const 0 i32.const 96 - i32.const 703 + i32.const 756 i32.const 1 call $~lib/builtins/abort unreachable end - i64.const -1 - i32.const 21 - call $~lib/util/number/utoa64 + f64.const 555555555.5555556 + call $~lib/util/number/dtoa local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 21328 + i32.const 23808 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 @@ -26667,20 +24535,19 @@ if i32.const 0 i32.const 96 - i32.const 704 + i32.const 758 i32.const 1 call $~lib/builtins/abort unreachable end - i64.const -1 - i32.const 27 - call $~lib/util/number/utoa64 + f64.const 0.9999999999999999 + call $~lib/util/number/dtoa local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 21392 + i32.const 23872 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 @@ -26691,20 +24558,19 @@ if i32.const 0 i32.const 96 - i32.const 705 + i32.const 759 i32.const 1 call $~lib/builtins/abort unreachable end - i64.const -1 - i32.const 32 - call $~lib/util/number/utoa64 + f64.const 1 + call $~lib/util/number/dtoa local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 21440 + i32.const 23120 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 @@ -26715,20 +24581,19 @@ if i32.const 0 i32.const 96 - i32.const 706 + i32.const 760 i32.const 1 call $~lib/builtins/abort unreachable end - i64.const -1 - i32.const 36 - call $~lib/util/number/utoa64 + f64.const 12.34 + call $~lib/util/number/dtoa local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 21488 + i32.const 23936 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 @@ -26739,19 +24604,21 @@ if i32.const 0 i32.const 96 - i32.const 707 + i32.const 761 i32.const 1 call $~lib/builtins/abort unreachable end - f64.const 0 + f64.const 1 + f64.const 3 + f64.div call $~lib/util/number/dtoa local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 21536 + i32.const 23968 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 @@ -26762,19 +24629,19 @@ if i32.const 0 i32.const 96 - i32.const 710 + i32.const 763 i32.const 1 call $~lib/builtins/abort unreachable end - f64.const -0 + f64.const 1234e17 call $~lib/util/number/dtoa local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 21536 + i32.const 24032 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 @@ -26785,19 +24652,19 @@ if i32.const 0 i32.const 96 - i32.const 711 + i32.const 764 i32.const 1 call $~lib/builtins/abort unreachable end - f64.const nan:0x8000000000000 + f64.const 1234e18 call $~lib/util/number/dtoa local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 5984 + i32.const 24112 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 @@ -26808,19 +24675,19 @@ if i32.const 0 i32.const 96 - i32.const 712 + i32.const 765 i32.const 1 call $~lib/builtins/abort unreachable end - f64.const inf + f64.const 2.71828 call $~lib/util/number/dtoa local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 21568 + i32.const 24160 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 @@ -26831,20 +24698,19 @@ if i32.const 0 i32.const 96 - i32.const 713 + i32.const 766 i32.const 1 call $~lib/builtins/abort unreachable end - f64.const inf - f64.neg + f64.const 0.0271828 call $~lib/util/number/dtoa local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 7280 + i32.const 24208 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 @@ -26855,19 +24721,19 @@ if i32.const 0 i32.const 96 - i32.const 714 + i32.const 767 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $~lib/builtins/f64.EPSILON + f64.const 271.828 call $~lib/util/number/dtoa local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 6496 + i32.const 24256 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 @@ -26878,20 +24744,19 @@ if i32.const 0 i32.const 96 - i32.const 715 + i32.const 768 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $~lib/builtins/f64.EPSILON - f64.neg + f64.const 1.1e+128 call $~lib/util/number/dtoa local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 22592 + i32.const 24304 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 @@ -26902,19 +24767,19 @@ if i32.const 0 i32.const 96 - i32.const 716 + i32.const 769 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $~lib/builtins/f64.MAX_VALUE + f64.const 1.1e-64 call $~lib/util/number/dtoa local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 6560 + i32.const 24352 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 @@ -26925,20 +24790,19 @@ if i32.const 0 i32.const 96 - i32.const 717 + i32.const 770 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $~lib/builtins/f64.MAX_VALUE - f64.neg + f64.const 0.000035689 call $~lib/util/number/dtoa local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 - i32.const 22656 + i32.const 24400 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 @@ -26949,970 +24813,1589 @@ if i32.const 0 i32.const 96 - i32.const 718 + i32.const 771 i32.const 1 call $~lib/builtins/abort unreachable end - f64.const 4185580496821356722454785e274 - call $~lib/util/number/dtoa + i32.const 0 + global.set $std/string/str + 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.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/string/String#charAt (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 + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $1 + local.get $0 + call $~lib/string/String#get:length + i32.ge_u + if + i32.const 688 + 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 + global.get $~lib/memory/__stack_pointer + i32.const 2 + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $2 + i32.store + local.get $2 + local.get $0 + local.get $1 + i32.const 1 + i32.shl + i32.add + i32.load16_u + i32.store16 + local.get $2 + 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/string/String.fromCharCode (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 + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $1 + i32.const 0 + i32.gt_s + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 2 + local.get $2 + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $3 + i32.store + local.get $3 + local.get $0 + i32.store16 + local.get $2 + if + local.get $3 + local.get $1 + i32.store16 offset=2 + end + local.get $3 local.set $4 global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store - local.get $4 - i32.const 22736 - local.set $4 + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $4 + ) + (func $~lib/string/String.fromCodePoint (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 + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.const 1114111 + i32.le_u + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 33 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 65535 + i32.gt_s + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 2 + local.get $1 + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $2 + i32.store + local.get $1 + i32.eqz + if + local.get $2 + local.get $0 + i32.store16 + else + local.get $0 + i32.const 65536 + i32.sub + local.set $0 + local.get $0 + i32.const 1023 + i32.and + i32.const 56320 + i32.or + local.set $3 + local.get $0 + i32.const 10 + i32.shr_u + i32.const 55296 + i32.or + local.set $4 + local.get $2 + local.get $4 + local.get $3 + i32.const 16 + i32.shl + i32.or + i32.store + end + local.get $2 + local.set $5 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $5 + ) + (func $~lib/string/String#startsWith (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 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - call $~lib/string/String.__eq - i32.eqz + i32.const 0 + i32.store + local.get $1 + i32.const 0 + i32.eq if - i32.const 0 - i32.const 96 - i32.const 719 - i32.const 1 - call $~lib/builtins/abort - unreachable + global.get $~lib/memory/__stack_pointer + i32.const 944 + local.tee $1 + i32.store end - f64.const 2.2250738585072014e-308 - call $~lib/util/number/dtoa - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store - local.get $4 - i32.const 22800 - local.set $4 - global.get $~lib/memory/__stack_pointer + local.get $0 + call $~lib/string/String#get:length + local.set $3 + local.get $2 + local.tee $4 + i32.const 0 + local.tee $5 local.get $4 - i32.store offset=4 + local.get $5 + i32.gt_s + select + local.tee $5 + local.get $3 + local.tee $4 + local.get $5 local.get $4 - call $~lib/string/String.__eq - i32.eqz + i32.lt_s + select + local.set $6 + local.get $1 + call $~lib/string/String#get:length + local.set $7 + local.get $7 + local.get $6 + i32.add + local.get $3 + i32.gt_s if i32.const 0 - i32.const 96 - i32.const 720 - i32.const 1 - call $~lib/builtins/abort - unreachable + local.set $8 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $8 + return end - f64.const 4.940656e-318 - call $~lib/util/number/dtoa - local.set $4 + local.get $0 + local.get $6 + local.get $1 + i32.const 0 + local.get $7 + call $~lib/util/string/compareImpl + i32.eqz + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store - local.get $4 - i32.const 22880 - local.set $4 + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $8 + ) + (func $~lib/string/String#padStart (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) + (local $11 i32) 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 96 - i32.const 723 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - f64.const 9060801153433600 - call $~lib/util/number/dtoa - local.set $4 + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check global.get $~lib/memory/__stack_pointer - local.get $4 + i32.const 0 i32.store - local.get $4 - i32.const 22928 + local.get $0 + call $~lib/string/String#get:length + i32.const 1 + i32.shl + local.set $3 + local.get $1 + i32.const 1 + i32.shl local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 + local.get $2 + call $~lib/string/String#get:length + i32.const 1 + i32.shl + local.set $5 local.get $4 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 96 - i32.const 724 + local.get $3 + i32.lt_u + if (result i32) i32.const 1 - call $~lib/builtins/abort - unreachable + else + local.get $5 + i32.eqz + end + if + local.get $0 + local.set $11 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $11 + return end - f64.const 4708356024711512064 - call $~lib/util/number/dtoa - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store local.get $4 - i32.const 22992 - local.set $4 + local.get $3 + i32.sub + local.set $6 global.get $~lib/memory/__stack_pointer local.get $4 - i32.store offset=4 - local.get $4 - call $~lib/string/String.__eq - i32.eqz + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $7 + i32.store + local.get $6 + local.get $5 + i32.gt_u if - i32.const 0 - i32.const 96 - i32.const 725 - i32.const 1 - call $~lib/builtins/abort - unreachable + local.get $6 + i32.const 2 + i32.sub + local.get $5 + i32.div_u + local.set $8 + local.get $8 + local.get $5 + i32.mul + local.set $9 + local.get $6 + local.get $9 + i32.sub + local.set $10 + local.get $7 + local.get $2 + local.get $5 + local.get $8 + call $~lib/memory/memory.repeat + local.get $7 + local.get $9 + i32.add + local.get $2 + local.get $10 + call $~lib/memory/memory.copy + else + local.get $7 + local.get $2 + local.get $6 + call $~lib/memory/memory.copy end - f64.const 9409340012568248320 - call $~lib/util/number/dtoa - local.set $4 + local.get $7 + local.get $6 + i32.add + local.get $0 + local.get $3 + call $~lib/memory/memory.copy + local.get $7 + local.set $11 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $11 + ) + (func $~lib/string/String#padEnd (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) + (local $11 i32) global.get $~lib/memory/__stack_pointer - local.get $4 + 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 $4 - i32.const 23056 + local.get $0 + call $~lib/string/String#get:length + i32.const 1 + i32.shl + local.set $3 + local.get $1 + i32.const 1 + i32.shl local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 + local.get $2 + call $~lib/string/String#get:length + i32.const 1 + i32.shl + local.set $5 local.get $4 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 96 - i32.const 726 + local.get $3 + i32.lt_u + if (result i32) i32.const 1 - call $~lib/builtins/abort - unreachable + else + local.get $5 + i32.eqz end - f64.const 5e-324 - call $~lib/util/number/dtoa - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store - local.get $4 - i32.const 6640 - 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 96 - i32.const 727 - i32.const 1 - call $~lib/builtins/abort - unreachable + local.get $0 + local.set $11 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $11 + return end - f64.const 1 - call $~lib/util/number/dtoa - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store local.get $4 - i32.const 23120 - local.set $4 + local.get $3 + i32.sub + local.set $6 global.get $~lib/memory/__stack_pointer local.get $4 - i32.store offset=4 - local.get $4 - call $~lib/string/String.__eq - i32.eqz + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $7 + i32.store + local.get $7 + local.get $0 + local.get $3 + call $~lib/memory/memory.copy + local.get $6 + local.get $5 + i32.gt_u if - i32.const 0 - i32.const 96 - i32.const 733 - i32.const 1 - call $~lib/builtins/abort - unreachable + local.get $6 + i32.const 2 + i32.sub + local.get $5 + i32.div_u + local.set $8 + local.get $8 + local.get $5 + i32.mul + local.set $9 + local.get $6 + local.get $9 + i32.sub + local.set $10 + local.get $7 + local.get $3 + i32.add + local.get $2 + local.get $5 + local.get $8 + call $~lib/memory/memory.repeat + local.get $7 + local.get $3 + i32.add + local.get $9 + i32.add + local.get $2 + local.get $10 + call $~lib/memory/memory.copy + else + local.get $7 + local.get $3 + i32.add + local.get $2 + local.get $6 + call $~lib/memory/memory.copy end - f64.const 0.1 - call $~lib/util/number/dtoa - local.set $4 + local.get $7 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store - local.get $4 - i32.const 3568 - local.set $4 + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $11 + ) + (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) 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 96 - i32.const 734 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - f64.const -1 - call $~lib/util/number/dtoa - local.set $4 + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check global.get $~lib/memory/__stack_pointer - local.get $4 + i32.const 0 i32.store - local.get $4 - i32.const 23152 - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - call $~lib/string/String.__eq + local.get $0 + call $~lib/string/String#get:length + i32.const 1 + i32.shl + local.set $1 + i32.const 0 + local.set $2 + loop $while-continue|0 + local.get $2 + local.get $1 + i32.lt_u + if (result i32) + local.get $0 + local.get $2 + i32.add + i32.load16_u + call $~lib/util/string/isSpace + else + i32.const 0 + end + local.set $3 + local.get $3 + if + local.get $2 + i32.const 2 + i32.add + local.set $2 + br $while-continue|0 + end + end + local.get $2 i32.eqz if - i32.const 0 - i32.const 96 - i32.const 735 - i32.const 1 - call $~lib/builtins/abort - unreachable + local.get $0 + local.set $5 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $5 + return end - f64.const -0.1 - call $~lib/util/number/dtoa - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store - local.get $4 - i32.const 23184 - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - call $~lib/string/String.__eq + local.get $1 + local.get $2 + i32.sub + local.set $1 + local.get $1 i32.eqz if - i32.const 0 - i32.const 96 - i32.const 736 - i32.const 1 - call $~lib/builtins/abort - unreachable + i32.const 688 + local.set $5 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $5 + return end - f64.const 1e6 - call $~lib/util/number/dtoa - local.set $4 global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $1 + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $4 i32.store local.get $4 - i32.const 23216 - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 + local.get $0 + local.get $2 + i32.add + local.get $1 + call $~lib/memory/memory.copy local.get $4 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 96 - i32.const 738 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - f64.const 1e-06 - call $~lib/util/number/dtoa - local.set $4 + local.set $5 global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store - local.get $4 - i32.const 23264 - local.set $4 + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $5 + ) + (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) global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - call $~lib/string/String.__eq + 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 $0 + call $~lib/string/String#get:length + i32.const 1 + i32.shl + local.set $1 + local.get $1 + local.set $2 + loop $while-continue|0 + local.get $2 + if (result i32) + local.get $0 + local.get $2 + i32.add + i32.const 2 + i32.sub + i32.load16_u + call $~lib/util/string/isSpace + else + i32.const 0 + end + local.set $3 + local.get $3 + if + local.get $2 + i32.const 2 + i32.sub + local.set $2 + br $while-continue|0 + end + end + local.get $2 i32.eqz if - i32.const 0 - i32.const 96 - i32.const 739 - i32.const 1 - call $~lib/builtins/abort - unreachable + i32.const 688 + local.set $5 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $5 + return + end + local.get $2 + local.get $1 + i32.eq + if + local.get $0 + local.set $5 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $5 + return end - f64.const -1e6 - call $~lib/util/number/dtoa - local.set $4 global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $2 + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $4 i32.store local.get $4 - i32.const 23312 - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 + local.get $0 + local.get $2 + call $~lib/memory/memory.copy local.get $4 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 96 - i32.const 740 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - f64.const -1e-06 - call $~lib/util/number/dtoa - local.set $4 + local.set $5 global.get $~lib/memory/__stack_pointer - local.get $4 + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $5 + ) + (func $~lib/string/String#trim (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 + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 i32.store - local.get $4 - i32.const 23360 + local.get $0 + call $~lib/string/String#get:length + local.set $1 + local.get $1 + i32.const 1 + i32.shl + local.set $2 + loop $while-continue|0 + local.get $2 + if (result i32) + local.get $0 + local.get $2 + i32.add + i32.const 2 + i32.sub + i32.load16_u + call $~lib/util/string/isSpace + else + i32.const 0 + end + local.set $3 + local.get $3 + if + local.get $2 + i32.const 2 + i32.sub + local.set $2 + br $while-continue|0 + end + end + i32.const 0 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 96 - i32.const 741 - i32.const 1 - call $~lib/builtins/abort - unreachable + loop $while-continue|1 + local.get $4 + local.get $2 + i32.lt_u + if (result i32) + local.get $0 + local.get $4 + i32.add + i32.load16_u + call $~lib/util/string/isSpace + else + i32.const 0 + end + local.set $3 + local.get $3 + if + local.get $4 + i32.const 2 + i32.add + local.set $4 + local.get $2 + i32.const 2 + i32.sub + local.set $2 + br $while-continue|1 + end end - f64.const 1e7 - call $~lib/util/number/dtoa - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store - local.get $4 - i32.const 23408 - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - call $~lib/string/String.__eq + local.get $2 i32.eqz if - i32.const 0 - i32.const 96 - i32.const 742 - i32.const 1 - call $~lib/builtins/abort - unreachable + i32.const 688 + local.set $6 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $6 + return end - f64.const 1e-07 - call $~lib/util/number/dtoa - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store - local.get $4 - i32.const 23456 - 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 96 - i32.const 743 + if (result i32) + local.get $2 + local.get $1 i32.const 1 - call $~lib/builtins/abort - unreachable + i32.shl + i32.eq + else + i32.const 0 end - f64.const 1.e+308 - call $~lib/util/number/dtoa - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store - local.get $4 - i32.const 3856 - 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 96 - i32.const 745 - i32.const 1 - call $~lib/builtins/abort - unreachable + local.get $0 + local.set $6 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $6 + return end - f64.const -1.e+308 - call $~lib/util/number/dtoa - local.set $4 global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $2 + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $5 i32.store + local.get $5 + local.get $0 local.get $4 - i32.const 23488 - local.set $4 + i32.add + local.get $2 + call $~lib/memory/memory.copy + local.get $5 + local.set $6 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 96 - i32.const 746 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - f64.const inf - call $~lib/util/number/dtoa - local.set $4 + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $6 + ) + (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) global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store - local.get $4 - i32.const 21568 - local.set $4 + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - call $~lib/string/String.__eq - i32.eqz + i64.const 0 + i64.store + local.get $1 + i32.const 0 + i32.eq if - i32.const 0 - i32.const 96 - i32.const 747 - i32.const 1 - call $~lib/builtins/abort - unreachable + global.get $~lib/memory/__stack_pointer + i32.const 944 + local.tee $1 + i32.store end - f64.const -inf - call $~lib/util/number/dtoa - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store - local.get $4 - i32.const 7280 + local.get $0 + call $~lib/string/String#get:length + i32.const 1 + i32.shl + local.set $2 + local.get $1 + call $~lib/string/String#get:length + i32.const 1 + i32.shl + local.set $3 + local.get $2 + local.get $3 + i32.add 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 + i32.const 0 + i32.eq if - i32.const 0 - i32.const 96 - i32.const 748 - i32.const 1 - call $~lib/builtins/abort - unreachable + i32.const 688 + 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 - f64.const 1e-308 - call $~lib/util/number/dtoa - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store - local.get $4 - i32.const 23536 - local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $5 i32.store offset=4 - local.get $4 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 96 - i32.const 749 + local.get $5 + local.get $0 + local.get $2 + call $~lib/memory/memory.copy + local.get $5 + local.get $2 + i32.add + local.get $1 + local.get $3 + call $~lib/memory/memory.copy + local.get $5 + local.set $6 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $6 + ) + (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.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + call $~lib/string/String#get:length + local.set $2 + local.get $1 + i32.const 0 + i32.lt_s + if (result i32) i32.const 1 - call $~lib/builtins/abort - unreachable + else + local.get $2 + i64.extend_i32_s + local.get $1 + i64.extend_i32_s + i64.mul + i64.const 1 + i64.const 28 + i64.shl + i64.gt_u end - f64.const -1e-308 - call $~lib/util/number/dtoa - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store - local.get $4 - i32.const 23568 - 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 96 - i32.const 750 - i32.const 1 + i32.const 12384 + i32.const 304 + i32.const 333 + i32.const 7 call $~lib/builtins/abort unreachable end - f64.const 1e-323 - call $~lib/util/number/dtoa - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store - local.get $4 - i32.const 23616 - 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 96 - i32.const 751 + local.get $1 + i32.const 0 + i32.eq + if (result i32) i32.const 1 - call $~lib/builtins/abort - unreachable + else + local.get $2 + i32.eqz + end + if + i32.const 688 + local.set $4 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $4 + return + end + local.get $1 + i32.const 1 + i32.eq + if + local.get $0 + local.set $4 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $4 + return end - f64.const -1e-323 - call $~lib/util/number/dtoa - local.set $4 global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $2 + local.get $1 + i32.mul + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $3 i32.store - local.get $4 - i32.const 23648 + local.get $3 + local.get $0 + local.get $2 + i32.const 1 + i32.shl + local.get $1 + call $~lib/memory/memory.repeat + local.get $3 local.set $4 global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~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 96 - i32.const 752 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - f64.const 0 - call $~lib/util/number/dtoa - local.set $4 + ) + (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) + (local $8 i32) + (local $9 i32) global.get $~lib/memory/__stack_pointer - local.get $4 + 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 $4 - i32.const 21536 + local.get $0 + call $~lib/string/String#get:length + local.set $3 + local.get $1 + call $~lib/string/String#get:length local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 + local.get $3 local.get $4 - call $~lib/string/String.__eq - i32.eqz + i32.le_u if - i32.const 0 - i32.const 96 - i32.const 753 - i32.const 1 - call $~lib/builtins/abort - unreachable + local.get $3 + local.get $4 + i32.lt_u + if (result i32) + local.get $0 + else + local.get $2 + local.get $0 + local.get $1 + local.get $0 + call $~lib/string/String.__eq + select + end + local.set $9 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $9 + return + end + local.get $0 + local.get $1 + i32.const 0 + call $~lib/string/String#indexOf + local.set $5 + local.get $5 + i32.const -1 + i32.xor + if + local.get $2 + call $~lib/string/String#get:length + local.set $6 + local.get $3 + local.get $4 + i32.sub + local.set $3 + local.get $3 + local.get $6 + i32.add + local.set $7 + local.get $7 + if + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $8 + i32.store + local.get $8 + local.get $0 + local.get $5 + i32.const 1 + i32.shl + call $~lib/memory/memory.copy + local.get $8 + local.get $5 + i32.const 1 + i32.shl + i32.add + local.get $2 + local.get $6 + i32.const 1 + i32.shl + call $~lib/memory/memory.copy + local.get $8 + local.get $5 + local.get $6 + i32.add + i32.const 1 + i32.shl + i32.add + local.get $0 + local.get $5 + local.get $4 + i32.add + i32.const 1 + i32.shl + i32.add + local.get $3 + local.get $5 + i32.sub + i32.const 1 + i32.shl + call $~lib/memory/memory.copy + local.get $8 + local.set $9 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $9 + return + end end - f64.const 4294967272 - call $~lib/util/number/dtoa - local.set $4 + local.get $0 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store - local.get $4 - i32.const 23696 - local.set $4 + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $9 + ) + (func $~lib/string/String#replaceAll (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) + (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) + (local $15 i32) + (local $16 i32) 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 96 - i32.const 755 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - f64.const 1.2312145673456234e-08 - call $~lib/util/number/dtoa - local.set $4 + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store - local.get $4 - i32.const 23744 + i64.const 0 + i64.store + local.get $0 + call $~lib/string/String#get:length + local.set $3 + local.get $1 + call $~lib/string/String#get:length local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 + local.get $3 local.get $4 - call $~lib/string/String.__eq - i32.eqz + i32.le_u if - i32.const 0 - i32.const 96 - i32.const 756 - i32.const 1 - call $~lib/builtins/abort - unreachable + local.get $3 + local.get $4 + i32.lt_u + if (result i32) + local.get $0 + else + local.get $2 + local.get $0 + local.get $1 + local.get $0 + call $~lib/string/String.__eq + select + end + local.set $16 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $16 + return end - f64.const 555555555.5555556 - call $~lib/util/number/dtoa - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store - local.get $4 - i32.const 23808 - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 + local.get $2 + call $~lib/string/String#get:length + local.set $5 local.get $4 - call $~lib/string/String.__eq i32.eqz if - i32.const 0 - i32.const 96 - i32.const 758 + local.get $5 + i32.eqz + if + local.get $0 + local.set $16 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $16 + return + end + global.get $~lib/memory/__stack_pointer + local.get $3 + local.get $3 i32.const 1 - call $~lib/builtins/abort - unreachable - end - f64.const 0.9999999999999999 - call $~lib/util/number/dtoa - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store - local.get $4 - i32.const 23872 - 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 96 - i32.const 759 + i32.add + local.get $5 + i32.mul + i32.add i32.const 1 - call $~lib/builtins/abort - unreachable - end - f64.const 1 - call $~lib/util/number/dtoa - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store - local.get $4 - i32.const 23120 - 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 96 - i32.const 760 + i32.shl i32.const 1 - call $~lib/builtins/abort - unreachable - end - f64.const 12.34 - call $~lib/util/number/dtoa - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store - local.get $4 - i32.const 23936 - 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 96 - i32.const 761 + call $~lib/rt/itcms/__new + local.tee $6 + i32.store + local.get $6 + local.get $2 + local.get $5 i32.const 1 - call $~lib/builtins/abort - unreachable + i32.shl + call $~lib/memory/memory.copy + local.get $5 + local.set $7 + i32.const 0 + local.set $8 + loop $for-loop|0 + local.get $8 + local.get $3 + i32.lt_u + local.set $9 + local.get $9 + if + local.get $6 + local.get $7 + local.tee $10 + i32.const 1 + i32.add + local.set $7 + local.get $10 + i32.const 1 + i32.shl + i32.add + local.get $0 + local.get $8 + i32.const 1 + i32.shl + i32.add + i32.load16_u + i32.store16 + local.get $6 + local.get $7 + i32.const 1 + i32.shl + i32.add + local.get $2 + local.get $5 + i32.const 1 + i32.shl + call $~lib/memory/memory.copy + local.get $7 + local.get $5 + i32.add + local.set $7 + local.get $8 + i32.const 1 + i32.add + local.set $8 + br $for-loop|0 + end + end + local.get $6 + local.set $16 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $16 + return end - f64.const 1 - f64.const 3 - f64.div - call $~lib/util/number/dtoa - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store - local.get $4 - i32.const 23968 - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 + i32.const 0 + local.set $11 + i32.const 0 + local.set $12 local.get $4 - call $~lib/string/String.__eq - i32.eqz + local.get $5 + i32.eq if - i32.const 0 - i32.const 96 - i32.const 763 + local.get $3 i32.const 1 - call $~lib/builtins/abort - unreachable - end - f64.const 1234e17 - call $~lib/util/number/dtoa - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store - local.get $4 - i32.const 24032 - 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 96 - i32.const 764 + i32.shl + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 i32.const 1 - call $~lib/builtins/abort - unreachable + call $~lib/rt/itcms/__new + local.tee $6 + i32.store + local.get $6 + local.get $0 + local.get $7 + call $~lib/memory/memory.copy + loop $while-continue|1 + local.get $0 + local.get $1 + local.get $11 + call $~lib/string/String#indexOf + local.tee $12 + i32.const -1 + i32.xor + local.set $8 + local.get $8 + if + local.get $6 + local.get $12 + i32.const 1 + i32.shl + i32.add + local.get $2 + local.get $5 + i32.const 1 + i32.shl + call $~lib/memory/memory.copy + local.get $12 + local.get $4 + i32.add + local.set $11 + br $while-continue|1 + end + end + local.get $6 + local.set $16 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $16 + return end - f64.const 1234e18 - call $~lib/util/number/dtoa - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store - local.get $4 - i32.const 24112 - 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 96 - i32.const 765 - i32.const 1 - call $~lib/builtins/abort - unreachable + i32.const 0 + local.set $13 + i32.const 0 + local.set $14 + local.get $3 + local.set $15 + loop $while-continue|2 + local.get $0 + local.get $1 + local.get $11 + call $~lib/string/String#indexOf + local.tee $12 + i32.const -1 + i32.xor + local.set $6 + local.get $6 + if + local.get $13 + call $~lib/string/String.__not + if + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $13 + i32.store offset=4 + end + local.get $12 + local.get $11 + i32.sub + local.set $7 + local.get $14 + local.get $7 + i32.add + local.get $5 + i32.add + local.get $15 + i32.gt_u + if + local.get $15 + i32.const 1 + i32.shl + local.set $15 + global.get $~lib/memory/__stack_pointer + local.get $13 + local.get $15 + i32.const 1 + i32.shl + call $~lib/rt/itcms/__renew + local.tee $13 + i32.store offset=4 + end + local.get $13 + local.get $14 + i32.const 1 + i32.shl + i32.add + local.get $0 + local.get $11 + i32.const 1 + i32.shl + i32.add + local.get $7 + i32.const 1 + i32.shl + call $~lib/memory/memory.copy + local.get $14 + local.get $7 + i32.add + local.set $14 + local.get $13 + local.get $14 + i32.const 1 + i32.shl + i32.add + local.get $2 + local.get $5 + i32.const 1 + i32.shl + call $~lib/memory/memory.copy + local.get $14 + local.get $5 + i32.add + local.set $14 + local.get $12 + local.get $4 + i32.add + local.set $11 + br $while-continue|2 + end end - f64.const 2.71828 - call $~lib/util/number/dtoa - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store - local.get $4 - i32.const 24160 - 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 + local.get $13 if - i32.const 0 - i32.const 96 - i32.const 766 - i32.const 1 - call $~lib/builtins/abort - unreachable + local.get $3 + local.get $11 + i32.sub + local.set $6 + local.get $14 + local.get $6 + i32.add + local.get $15 + i32.gt_u + if + local.get $15 + i32.const 1 + i32.shl + local.set $15 + global.get $~lib/memory/__stack_pointer + local.get $13 + local.get $15 + i32.const 1 + i32.shl + call $~lib/rt/itcms/__renew + local.tee $13 + i32.store offset=4 + end + local.get $6 + if + local.get $13 + local.get $14 + i32.const 1 + i32.shl + i32.add + local.get $0 + local.get $11 + i32.const 1 + i32.shl + i32.add + local.get $6 + i32.const 1 + i32.shl + call $~lib/memory/memory.copy + end + local.get $6 + local.get $14 + i32.add + local.set $6 + local.get $15 + local.get $6 + i32.gt_u + if + global.get $~lib/memory/__stack_pointer + local.get $13 + local.get $6 + i32.const 1 + i32.shl + call $~lib/rt/itcms/__renew + local.tee $13 + i32.store offset=4 + end + local.get $13 + local.set $16 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $16 + return end - f64.const 0.0271828 - call $~lib/util/number/dtoa - local.set $4 + local.get $0 + local.set $16 global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store - local.get $4 - i32.const 24208 - local.set $4 + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $16 + ) + (func $~lib/string/String#slice (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 - local.get $4 - i32.store offset=4 - local.get $4 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 96 - i32.const 767 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - f64.const 271.828 - call $~lib/util/number/dtoa - local.set $4 + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check global.get $~lib/memory/__stack_pointer - local.get $4 + i32.const 0 i32.store - local.get $4 - i32.const 24256 - 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 + local.get $0 + call $~lib/string/String#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 $4 i32.const 0 - i32.const 96 - i32.const 768 - i32.const 1 - call $~lib/builtins/abort - unreachable + local.tee $5 + local.get $4 + local.get $5 + i32.gt_s + select + else + local.get $1 + local.tee $5 + local.get $3 + local.tee $4 + local.get $5 + local.get $4 + i32.lt_s + select end - f64.const 1.1e+128 - call $~lib/util/number/dtoa - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store - local.get $4 - i32.const 24304 - 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 + 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 $4 i32.const 0 - i32.const 96 - i32.const 769 - i32.const 1 - call $~lib/builtins/abort - unreachable + local.tee $5 + local.get $4 + local.get $5 + i32.gt_s + select + else + local.get $2 + local.tee $5 + local.get $3 + local.tee $4 + local.get $5 + local.get $4 + i32.lt_s + select end - f64.const 1.1e-64 - call $~lib/util/number/dtoa - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store - local.get $4 - i32.const 24352 - 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 + local.set $2 + local.get $2 + local.get $1 + i32.sub + local.set $3 + local.get $3 + i32.const 0 + i32.le_s if - i32.const 0 - i32.const 96 - i32.const 770 - i32.const 1 - call $~lib/builtins/abort - unreachable + i32.const 688 + local.set $7 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $7 + return end - f64.const 0.000035689 - call $~lib/util/number/dtoa - local.set $4 global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $3 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $6 i32.store - local.get $4 - i32.const 24400 - 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 96 - i32.const 771 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - i32.const 0 - global.set $std/string/str - global.get $~lib/memory/__heap_base - global.set $~lib/memory/__stack_pointer - call $~lib/rt/itcms/__collect + local.get $6 + local.get $0 + local.get $1 + i32.const 1 + i32.shl + i32.add + local.get $3 + i32.const 1 + i32.shl + call $~lib/memory/memory.copy + local.get $6 + local.set $7 global.get $~lib/memory/__stack_pointer - i32.const 44 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer + local.get $7 ) - (func $~lib/string/String.fromCharCode (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) + (func $~lib/string/String#substr (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.sub @@ -27922,40 +26405,94 @@ i32.const 0 i32.store local.get $1 + local.set $3 + local.get $2 + local.set $4 + local.get $0 + call $~lib/string/String#get:length + local.set $5 + local.get $3 + i32.const 0 + i32.lt_s + if + local.get $5 + local.get $3 + i32.add + local.tee $6 + i32.const 0 + local.tee $7 + local.get $6 + local.get $7 + i32.gt_s + select + local.set $3 + end + local.get $4 + local.tee $7 i32.const 0 + local.tee $6 + local.get $7 + local.get $6 i32.gt_s - local.set $2 - global.get $~lib/memory/__stack_pointer - i32.const 2 - local.get $2 + select + local.tee $6 + local.get $5 + local.get $3 + i32.sub + local.tee $7 + local.get $6 + local.get $7 + i32.lt_s + select + i32.const 1 i32.shl + local.set $8 + local.get $8 + i32.const 0 + i32.le_s + if + i32.const 688 + 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 + global.get $~lib/memory/__stack_pointer + local.get $8 i32.const 1 call $~lib/rt/itcms/__new - local.tee $3 + local.tee $9 i32.store - local.get $3 + local.get $9 local.get $0 - i32.store16 - local.get $2 - if - local.get $3 - local.get $1 - i32.store16 offset=2 - end local.get $3 - local.set $4 + i32.const 1 + i32.shl + i32.add + local.get $8 + call $~lib/memory/memory.copy + local.get $9 + local.set $10 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $4 + local.get $10 ) - (func $~lib/string/String.fromCodePoint (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) (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 4 i32.sub @@ -27965,67 +26502,118 @@ i32.const 0 i32.store local.get $0 - i32.const 1114111 - i32.le_u - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 33 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 65535 - i32.gt_s - local.set $1 - global.get $~lib/memory/__stack_pointer - i32.const 2 + call $~lib/string/String#get:length + local.set $3 local.get $1 + local.tee $4 + i32.const 0 + local.tee $5 + local.get $4 + local.get $5 + i32.gt_s + select + local.tee $5 + local.get $3 + local.tee $4 + local.get $5 + local.get $4 + i32.lt_s + select + local.set $6 + local.get $2 + local.tee $4 + i32.const 0 + local.tee $5 + local.get $4 + local.get $5 + i32.gt_s + select + local.tee $5 + local.get $3 + local.tee $4 + local.get $5 + local.get $4 + i32.lt_s + select + local.set $7 + local.get $6 + local.tee $4 + local.get $7 + local.tee $5 + local.get $4 + local.get $5 + i32.lt_s + select + i32.const 1 i32.shl + local.set $8 + local.get $6 + local.tee $5 + local.get $7 + local.tee $4 + local.get $5 + local.get $4 + i32.gt_s + select i32.const 1 - call $~lib/rt/itcms/__new - local.tee $2 - i32.store - local.get $1 + i32.shl + local.set $9 + local.get $9 + local.get $8 + i32.sub + local.set $10 + local.get $10 i32.eqz if - local.get $2 - local.get $0 - i32.store16 - else - local.get $0 - i32.const 65536 - i32.sub - local.set $0 - local.get $0 - i32.const 1023 - i32.and - i32.const 56320 - i32.or - local.set $3 - local.get $0 - i32.const 10 - i32.shr_u - i32.const 55296 - i32.or - local.set $4 - local.get $2 - local.get $4 + i32.const 688 + local.set $12 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $12 + return + end + local.get $8 + i32.eqz + if (result i32) + local.get $9 local.get $3 - i32.const 16 + i32.const 1 i32.shl - i32.or - i32.store + i32.eq + else + i32.const 0 + end + if + local.get $0 + local.set $12 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $12 + return end - local.get $2 - local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $10 + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $11 + i32.store + local.get $11 + local.get $0 + local.get $8 + i32.add + local.get $10 + call $~lib/memory/memory.copy + local.get $11 + local.set $12 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $5 + local.get $12 ) (func $~lib/rt/__newArray (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) (local $4 i32) diff --git a/tests/compiler/std/symbol.optimized.wat b/tests/compiler/std/symbol.optimized.wat index 01056c78d2..fbcdfdfad8 100644 --- a/tests/compiler/std/symbol.optimized.wat +++ b/tests/compiler/std/symbol.optimized.wat @@ -1924,79 +1924,164 @@ i32.const 0 call $~lib/rt/itcms/__link ) - (func $~lib/util/hash/hash32 (param $0 i32) (result i32) - local.get $0 - i32.const 255 - i32.and + (func $~lib/util/hash/hashStr (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) i32.const -2128831035 - i32.xor - i32.const 16777619 - i32.mul - local.get $0 - i32.const 8 - i32.shr_u - i32.const 255 - i32.and - i32.xor - i32.const 16777619 - i32.mul - local.get $0 - i32.const 16 - i32.shr_u - i32.const 255 - i32.and - i32.xor - i32.const 16777619 - i32.mul + local.set $1 local.get $0 - i32.const 24 - i32.shr_u - i32.xor - i32.const 16777619 - i32.mul + if + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u + i32.const 1 + i32.shl + local.set $3 + loop $for-loop|0 + local.get $2 + local.get $3 + i32.lt_u + if + local.get $1 + local.get $0 + local.get $2 + i32.add + i32.load8_u + i32.xor + i32.const 16777619 + i32.mul + local.set $1 + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|0 + end + end + end + local.get $1 ) - (func $~lib/map/Map#find (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/string/String.__eq (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) local.get $0 - i32.load - local.get $2 + local.get $1 + i32.eq + if + i32.const 1 + return + end + local.get $1 + i32.eqz + i32.const 1 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 + select + if + i32.const 0 + return + end + 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.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u + i32.ne + if + i32.const 0 + return + end + block $__inlined_func$~lib/util/string/compareImpl (result i32) local.get $0 + local.tee $3 + i32.const 7 + i32.and + local.get $1 + i32.const 7 + i32.and + i32.or + i32.eqz + i32.const 0 + local.get $2 + local.tee $0 + i32.const 4 + i32.ge_u + select if + loop $do-continue|0 + local.get $3 + i64.load + local.get $1 + i64.load + i64.eq + if + local.get $3 + i32.const 8 + i32.add + local.set $3 + 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-continue|0 + end + end + end + loop $while-continue|1 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 + i32.sub + local.set $0 + local.get $2 if - local.get $0 - return + local.get $3 + i32.load16_u + local.tee $2 + local.get $1 + i32.load16_u + local.tee $4 + i32.ne + if + local.get $2 + local.get $4 + i32.sub + br $__inlined_func$~lib/util/string/compareImpl + end + local.get $3 + i32.const 2 + i32.add + local.set $3 + local.get $1 + i32.const 2 + i32.add + local.set $1 + br $while-continue|1 end - local.get $2 - i32.const -2 - i32.and - local.set $0 - br $while-continue|0 end + i32.const 0 end - i32.const 0 + i32.eqz ) - (func $~lib/map/Map#rehash (param $0 i32) (param $1 i32) + (func $~lib/map/Map<~lib/string/String,usize>#rehash (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -2005,7 +2090,7 @@ (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 @@ -2013,6 +2098,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 $1 i32.const 1 i32.add @@ -2056,10 +2144,13 @@ i32.and i32.eqz if - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $8 i32.load local.tee $7 + i32.store offset=8 + local.get $2 + local.get $7 i32.store local.get $2 local.get $8 @@ -2068,7 +2159,7 @@ local.get $2 local.get $6 local.get $7 - call $~lib/util/hash/hash32 + call $~lib/util/hash/hashStr local.get $1 i32.and i32.const 2 @@ -2109,22 +2200,239 @@ i32.load offset=20 i32.store offset=16 global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 12 i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/memory/memory.copy (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) - (local $4 i32) - block $~lib/util/memory/memmove|inlined.0 - local.get $2 - local.set $4 - local.get $0 - local.get $1 - i32.eq - br_if $~lib/util/memory/memmove|inlined.0 + (func $~lib/util/hash/hash32 (param $0 i32) (result i32) + local.get $0 + i32.const 255 + i32.and + i32.const -2128831035 + i32.xor + i32.const 16777619 + i32.mul + local.get $0 + i32.const 8 + i32.shr_u + i32.const 255 + i32.and + i32.xor + i32.const 16777619 + i32.mul + local.get $0 + i32.const 16 + i32.shr_u + i32.const 255 + i32.and + i32.xor + i32.const 16777619 + i32.mul + local.get $0 + i32.const 24 + i32.shr_u + i32.xor + i32.const 16777619 + i32.mul + ) + (func $~lib/map/Map#find (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + local.get $0 + i32.load + 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 - local.get $1 + 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 + 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 + ) + (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 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 + 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 + local.get $0 + i32.load offset=8 + local.tee $8 + 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 $8 + i32.ne + if + local.get $8 + i32.load offset=8 + i32.const 1 + i32.and + i32.eqz + if + local.get $2 + local.get $8 + i32.load + local.tee $7 + i32.store + local.get $2 + local.get $8 + i32.load offset=4 + i32.store offset=4 + local.get $2 + local.get $6 + local.get $7 + call $~lib/util/hash/hash32 + local.get $1 + i32.and + i32.const 2 + i32.shl + i32.add + local.tee $7 + i32.load + i32.store offset=8 + local.get $7 + local.get $2 + i32.store + local.get $2 + i32.const 12 + i32.add + local.set $2 + end + local.get $8 + i32.const 12 + i32.add + local.set $8 + br $while-continue|0 + end + end + local.get $0 + local.get $6 + call $~lib/map/Map<~lib/string/String,usize>#set:buckets + local.get $0 + local.get $1 + i32.store offset=4 + local.get $0 + local.get $3 + call $~lib/map/Map<~lib/string/String,usize>#set:entries + local.get $0 + local.get $5 + 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.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/map/Map#has (param $0 i32) (param $1 i32) (result i32) + local.get $0 + local.get $1 + local.get $1 + call $~lib/util/hash/hash32 + call $~lib/map/Map#find + i32.const 0 + i32.ne + ) + (func $~lib/map/Map#get (param $0 i32) (param $1 i32) (result i32) + local.get $0 + local.get $1 + local.get $1 + call $~lib/util/hash/hash32 + 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 + ) + (func $~lib/memory/memory.copy (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + block $~lib/util/memory/memmove|inlined.0 + local.get $2 + local.set $4 + local.get $0 + local.get $1 + i32.eq + br_if $~lib/util/memory/memmove|inlined.0 + local.get $0 + local.get $1 i32.lt_u if local.get $1 @@ -2416,10 +2724,8 @@ unreachable end ) - (func $~lib/util/hash/hashStr (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) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -2428,208 +2734,8 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - i32.const -2128831035 - local.set $1 local.get $0 - 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 - i32.const 1 - i32.shl - local.set $3 - loop $for-loop|0 - local.get $2 - local.get $3 - i32.lt_u - if - local.get $1 - local.get $0 - local.get $2 - i32.add - i32.load8_u - i32.xor - i32.const 16777619 - i32.mul - local.set $1 - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $for-loop|0 - end - end - 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.__eq (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 - call $~stack_check - 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 - i32.const 1 - local.get $0 - select - 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 - block $__inlined_func$~lib/util/string/compareImpl (result i32) - local.get $0 - local.tee $3 - i32.const 7 - i32.and - local.get $1 - i32.const 7 - i32.and - i32.or - i32.eqz - i32.const 0 - local.get $2 - i32.const 4 - i32.ge_u - select - if - loop $do-continue|0 - local.get $3 - i64.load - local.get $1 - i64.load - i64.eq - if - local.get $3 - i32.const 8 - i32.add - local.set $3 - 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-continue|0 - end - end - end - loop $while-continue|1 - local.get $2 - local.tee $0 - i32.const 1 - i32.sub - local.set $2 - local.get $0 - if - local.get $3 - i32.load16_u - local.tee $4 - local.get $1 - i32.load16_u - local.tee $0 - i32.ne - if - local.get $4 - local.get $0 - i32.sub - br $__inlined_func$~lib/util/string/compareImpl - end - local.get $3 - i32.const 2 - i32.add - local.set $3 - local.get $1 - i32.const 2 - i32.add - local.set $1 - br $while-continue|1 - end - end - i32.const 0 - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - 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 - call $~stack_check - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - local.get $0 - i32.load + i32.load local.get $1 local.get $0 i32.load offset=4 @@ -2646,507 +2752,66 @@ i32.load offset=8 local.tee $2 i32.const 1 - i32.and - if (result i32) - i32.const 0 - else - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.load - local.tee $1 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1056 - i32.store offset=4 - local.get $1 - i32.const 1056 - call $~lib/string/String.__eq - end - 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 - i32.const -2 - 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 - i32.const 0 - ) - (func $~lib/map/Map<~lib/string/String,usize>#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 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 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=16 - 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 - local.get $0 - i32.load offset=8 - local.tee $8 - 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 $8 - i32.ne - if - local.get $8 - i32.load offset=8 - i32.const 1 - i32.and - i32.eqz - if - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.load - local.tee $7 - i32.store offset=8 - local.get $2 - local.get $7 - i32.store - local.get $2 - local.get $8 - i32.load offset=4 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=16 - local.get $2 - local.get $6 - local.get $7 - call $~lib/util/hash/hashStr - local.get $1 - i32.and - i32.const 2 - i32.shl - i32.add - local.tee $7 - i32.load - i32.store offset=8 - local.get $7 - local.get $2 - i32.store - local.get $2 - i32.const 12 - i32.add - local.set $2 - end - local.get $8 - i32.const 12 - i32.add - local.set $8 - br $while-continue|0 - end - end - local.get $0 - local.get $6 - call $~lib/map/Map<~lib/string/String,usize>#set:buckets - local.get $0 - local.get $1 - i32.store offset=4 - local.get $0 - local.get $3 - call $~lib/map/Map<~lib/string/String,usize>#set:entries - local.get $0 - local.get $5 - 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 20 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/map/Map<~lib/string/String,usize>#set (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 - 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 - 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 - call $~lib/util/hash/hashStr - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 1056 - i32.store offset=8 - local.get $0 - local.get $3 - call $~lib/map/Map<~lib/string/String,usize>#find - local.tee $2 - if - local.get $2 - local.get $1 - i32.store offset=4 - else - local.get $0 - i32.load offset=16 - local.get $0 - i32.load offset=12 - i32.eq - if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - local.get $0 - i32.load offset=20 - 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 $0 - i32.load offset=4 - else - local.get $0 - i32.load offset=4 - i32.const 1 - i32.shl - i32.const 1 - i32.or - end - call $~lib/map/Map<~lib/string/String,usize>#rehash - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.load offset=8 - local.tee $2 - i32.store - local.get $0 - local.get $0 - i32.load offset=16 - local.tee $4 - i32.const 1 - i32.add - i32.store offset=16 - local.get $2 - local.get $4 - 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 - local.get $0 - local.get $0 - i32.load offset=20 - i32.const 1 - i32.add - i32.store offset=20 - local.get $2 - local.get $0 - i32.load - 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 $2 - 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) - (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 - call $~stack_check - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - local.get $1 - call $~lib/util/hash/hash32 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - local.get $1 - local.get $3 - call $~lib/map/Map#find - local.tee $2 - if - 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 - local.get $0 - i32.load offset=16 - local.get $0 - i32.load offset=12 - i32.eq - if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - local.get $0 - i32.load offset=20 - local.get $0 - i32.load offset=12 - i32.const 3 - i32.mul - i32.const 4 - i32.div_s - i32.lt_s + i32.and if (result i32) - local.get $0 - i32.load offset=4 + i32.const 0 else + global.get $~lib/memory/__stack_pointer local.get $0 - i32.load offset=4 - i32.const 1 - i32.shl - i32.const 1 - i32.or + i32.load + local.tee $1 + i32.store + local.get $1 + i32.const 1056 + call $~lib/string/String.__eq end - call $~lib/map/Map#rehash + 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 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.load offset=8 - local.tee $2 - 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 $2 - local.get $4 - i32.const 12 - i32.mul - i32.add - local.tee $2 - local.get $1 - 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 - local.get $0 - local.get $0 - i32.load offset=20 - i32.const 1 - i32.add - i32.store offset=20 - local.get $2 - local.get $0 - i32.load - 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 $2 - i32.store 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/symbol/_Symbol.for (result i32) (local $0 i32) (local $1 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer 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 global.get $~lib/symbol/stringToId 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 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 - 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 - global.get $~lib/memory/__stack_pointer - i32.const 1056 - i32.store offset=12 local.get $0 i32.const 1056 call $~lib/util/hash/hashStr call $~lib/map/Map<~lib/string/String,usize>#find - i32.const 0 - i32.ne - global.get $~lib/memory/__stack_pointer - i32.const 16 - 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 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 - 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 - global.get $~lib/memory/__stack_pointer - i32.const 1056 - i32.store offset=12 local.get $0 i32.const 1056 call $~lib/util/hash/hashStr @@ -3164,11 +2829,7 @@ local.get $0 i32.load offset=4 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.const 4 i32.add global.set $~lib/memory/__stack_pointer return @@ -3269,9 +2930,6 @@ 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 @@ -3279,75 +2937,14 @@ global.get $~lib/symbol/idToString local.tee $1 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1056 - i32.store offset=8 local.get $1 local.get $0 call $~lib/map/Map#set 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 - 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 - local.get $0 - i32.store - local.get $0 - local.get $1 - local.get $1 - call $~lib/util/hash/hash32 - 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 - call $~stack_check - global.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 - call $~lib/util/hash/hash32 - 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/symbol/_Symbol.keyFor (param $0 i32) (result i32) (local $1 i32) @@ -3392,62 +2989,48 @@ (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 call $~stack_check 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.const 2400 local.get $0 select - local.tee $0 + local.tee $2 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.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 $1 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 2400 - i32.store - i32.const 2400 - local.set $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 $2 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 block $__inlined_func$~lib/string/String#concat - local.get $2 + local.get $1 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 2400 + i32.store + i32.const 2400 + local.set $1 + end + local.get $1 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u i32.const 1 i32.shl - local.tee $3 - local.get $1 + local.tee $4 + local.get $2 i32.const 20 i32.sub i32.load offset=16 @@ -3455,51 +3038,51 @@ i32.shr_u i32.const 1 i32.shl - local.tee $4 + local.tee $3 i32.add - local.tee $2 + local.tee $0 i32.eqz if global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer i32.const 1824 - local.set $2 + local.set $0 br $__inlined_func$~lib/string/String#concat end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.const 1 call $~lib/rt/itcms/__new - local.tee $2 - i32.store offset=8 - local.get $2 + local.tee $0 + i32.store offset=4 local.get $0 + local.get $2 local.get $3 call $~lib/memory/memory.copy - local.get $2 + local.get $0 local.get $3 i32.add local.get $1 local.get $4 call $~lib/memory/memory.copy global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer end global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 + local.get $0 ) (func $~lib/symbol/_Symbol#toString (param $0 i32) (result i32) (local $1 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 @@ -3509,9 +3092,6 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=16 i32.const 1824 local.set $1 global.get $~lib/memory/__stack_pointer @@ -3640,9 +3220,6 @@ global.get $~lib/memory/__stack_pointer i32.const 2352 i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=16 i32.const 2352 local.get $1 call $~lib/string/String.__concat @@ -3657,7 +3234,7 @@ i32.const 2432 call $~lib/string/String.__concat global.get $~lib/memory/__stack_pointer - i32.const 20 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer ) @@ -3950,4 +3527,223 @@ global.set $~lib/memory/__stack_pointer local.get $1 ) + (func $~lib/map/Map<~lib/string/String,usize>#set (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 + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.const 1056 + call $~lib/util/hash/hashStr + local.tee $3 + call $~lib/map/Map<~lib/string/String,usize>#find + local.tee $2 + if + local.get $2 + local.get $1 + i32.store offset=4 + else + local.get $0 + i32.load offset=16 + local.get $0 + i32.load offset=12 + i32.eq + if + local.get $0 + local.get $0 + i32.load offset=20 + 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 $0 + i32.load offset=4 + else + local.get $0 + i32.load offset=4 + i32.const 1 + i32.shl + i32.const 1 + i32.or + end + call $~lib/map/Map<~lib/string/String,usize>#rehash + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.load offset=8 + local.tee $2 + i32.store + local.get $0 + local.get $0 + i32.load offset=16 + local.tee $4 + i32.const 1 + i32.add + i32.store offset=16 + local.get $2 + local.get $4 + 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 + local.get $0 + local.get $0 + i32.load offset=20 + i32.const 1 + i32.add + i32.store offset=20 + local.get $2 + local.get $0 + i32.load + 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 $2 + i32.store + end + 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) + (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 + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + local.get $1 + local.get $1 + call $~lib/util/hash/hash32 + local.tee $3 + call $~lib/map/Map#find + local.tee $2 + if + 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 + local.get $0 + i32.load offset=16 + local.get $0 + i32.load offset=12 + i32.eq + if + local.get $0 + local.get $0 + i32.load offset=20 + 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 $0 + i32.load offset=4 + else + 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.load offset=8 + local.tee $2 + i32.store + local.get $0 + local.get $0 + i32.load offset=16 + local.tee $4 + i32.const 1 + i32.add + i32.store offset=16 + local.get $2 + local.get $4 + i32.const 12 + i32.mul + i32.add + local.tee $2 + local.get $1 + 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 + local.get $0 + local.get $0 + i32.load offset=20 + i32.const 1 + i32.add + i32.store offset=20 + local.get $2 + local.get $0 + i32.load + 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 $2 + i32.store + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) ) diff --git a/tests/compiler/std/symbol.untouched.wat b/tests/compiler/std/symbol.untouched.wat index c840db0621..cbafc7605d 100644 --- a/tests/compiler/std/symbol.untouched.wat +++ b/tests/compiler/std/symbol.untouched.wat @@ -2563,6 +2563,50 @@ i32.const 1 i32.shr_u ) + (func $~lib/util/hash/hashStr (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + i32.const -2128831035 + local.set $1 + local.get $0 + i32.const 0 + i32.ne + if + i32.const 0 + local.set $2 + local.get $0 + call $~lib/string/String#get:length + i32.const 1 + i32.shl + local.set $3 + loop $for-loop|0 + local.get $2 + local.get $3 + i32.lt_u + local.set $4 + local.get $4 + if + local.get $1 + local.get $0 + local.get $2 + i32.add + i32.load8_u + i32.xor + i32.const 16777619 + i32.mul + local.set $1 + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|0 + end + end + end + local.get $1 + ) (func $~lib/util/string/compareImpl (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) (result i32) (local $5 i32) (local $6 i32) @@ -2670,129 +2714,110 @@ end i32.const 0 ) - (func $~lib/map/MapEntry<~lib/string/String,usize>#set:value (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - i32.store offset=4 - ) - (func $~lib/map/MapEntry<~lib/string/String,usize>#set:key (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - i32.store - ) - (func $~lib/map/MapEntry<~lib/string/String,usize>#set:taggedNext (param $0 i32) (param $1 i32) + (func $~lib/string/String.__eq (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) local.get $0 local.get $1 - i32.store offset=8 - ) - (func $~lib/util/hash/hash32 (param $0 i32) (result i32) - (local $1 i32) - i32.const -2128831035 - local.set $1 - local.get $1 + i32.eq + if + i32.const 1 + return + end local.get $0 - i32.const 255 - i32.and - i32.xor - i32.const 16777619 - i32.mul - local.set $1 - local.get $1 + i32.const 0 + i32.eq + if (result i32) + i32.const 1 + else + local.get $1 + i32.const 0 + i32.eq + end + if + i32.const 0 + return + end local.get $0 - i32.const 8 - i32.shr_u - i32.const 255 - i32.and - i32.xor - i32.const 16777619 - i32.mul - local.set $1 + call $~lib/string/String#get:length + local.set $2 + local.get $2 local.get $1 + call $~lib/string/String#get:length + i32.ne + if + i32.const 0 + return + end local.get $0 - i32.const 16 - i32.shr_u - i32.const 255 - i32.and - i32.xor - i32.const 16777619 - i32.mul - local.set $1 + i32.const 0 local.get $1 + i32.const 0 + local.get $2 + call $~lib/util/string/compareImpl + i32.eqz + ) + (func $~lib/map/Map<~lib/string/String,usize>#has (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) local.get $0 - i32.const 24 - i32.shr_u - i32.xor - i32.const 16777619 - i32.mul - local.set $1 local.get $1 + block $~lib/util/hash/HASH<~lib/string/String>|inlined.0 (result i32) + local.get $1 + local.set $2 + i32.const 1 + drop + local.get $2 + call $~lib/util/hash/hashStr + br $~lib/util/hash/HASH<~lib/string/String>|inlined.0 + end + call $~lib/map/Map<~lib/string/String,usize>#find + i32.const 0 + i32.ne ) - (func $~lib/map/Map#find (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/map/Map<~lib/string/String,usize>#get (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) (local $3 i32) - (local $4 i32) - (local $5 i32) - local.get $0 - i32.load - local.get $2 local.get $0 - i32.load offset=4 - i32.and - i32.const 4 - i32.mul - i32.add - i32.load + local.get $1 + block $~lib/util/hash/HASH<~lib/string/String>|inlined.1 (result i32) + local.get $1 + local.set $2 + i32.const 1 + drop + local.get $2 + call $~lib/util/hash/hashStr + br $~lib/util/hash/HASH<~lib/string/String>|inlined.1 + end + call $~lib/map/Map<~lib/string/String,usize>#find local.set $3 - loop $while-continue|0 - local.get $3 - local.set $4 - local.get $4 - if - local.get $3 - i32.load offset=8 - local.set $5 - local.get $5 - i32.const 1 - i32.and - i32.eqz - if (result i32) - local.get $3 - i32.load - local.get $1 - i32.eq - else - i32.const 0 - end - if - local.get $3 - return - end - local.get $5 - i32.const 1 - i32.const -1 - i32.xor - i32.and - local.set $3 - br $while-continue|0 - end + local.get $3 + i32.eqz + if + i32.const 624 + i32.const 688 + i32.const 105 + i32.const 17 + call $~lib/builtins/abort + unreachable end - i32.const 0 + local.get $3 + i32.load offset=4 ) - (func $~lib/map/MapEntry#set:value (param $0 i32) (param $1 i32) + (func $~lib/map/MapEntry<~lib/string/String,usize>#set:value (param $0 i32) (param $1 i32) local.get $0 local.get $1 i32.store offset=4 ) - (func $~lib/map/MapEntry#set:key (param $0 i32) (param $1 i32) + (func $~lib/map/MapEntry<~lib/string/String,usize>#set:key (param $0 i32) (param $1 i32) local.get $0 local.get $1 i32.store ) - (func $~lib/map/MapEntry#set:taggedNext (param $0 i32) (param $1 i32) + (func $~lib/map/MapEntry<~lib/string/String,usize>#set:taggedNext (param $0 i32) (param $1 i32) local.get $0 local.get $1 i32.store offset=8 ) - (func $~lib/map/Map#rehash (param $0 i32) (param $1 i32) + (func $~lib/map/Map<~lib/string/String,usize>#rehash (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -2807,13 +2832,16 @@ (local $13 i32) (local $14 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 $1 i32.const 1 i32.add @@ -2869,40 +2897,26 @@ if local.get $8 local.set $11 + global.get $~lib/memory/__stack_pointer local.get $10 i32.load - local.set $12 + local.tee $12 + i32.store offset=8 local.get $11 local.get $12 - call $~lib/map/MapEntry#set:key + call $~lib/map/MapEntry<~lib/string/String,usize>#set:key local.get $11 local.get $10 i32.load offset=4 - call $~lib/map/MapEntry#set:value - block $~lib/util/hash/HASH|inlined.1 (result i32) + call $~lib/map/MapEntry<~lib/string/String,usize>#set:value + block $~lib/util/hash/HASH<~lib/string/String>|inlined.3 (result i32) local.get $12 local.set $13 - i32.const 0 - drop - i32.const 0 - drop - i32.const 0 - drop - i32.const 4 i32.const 1 - i32.eq - drop - i32.const 4 - i32.const 2 - i32.eq - drop - i32.const 4 - i32.const 4 - i32.eq drop local.get $13 - call $~lib/util/hash/hash32 - br $~lib/util/hash/HASH|inlined.1 + call $~lib/util/hash/hashStr + br $~lib/util/hash/HASH<~lib/string/String>|inlined.3 end local.get $1 i32.and @@ -2916,7 +2930,7 @@ local.get $11 local.get $14 i32.load - call $~lib/map/MapEntry#set:taggedNext + call $~lib/map/MapEntry<~lib/string/String,usize>#set:taggedNext local.get $14 local.get $8 i32.store @@ -2934,115 +2948,461 @@ end local.get $0 local.get $3 - call $~lib/map/Map#set:buckets + call $~lib/map/Map<~lib/string/String,usize>#set:buckets local.get $0 local.get $1 - call $~lib/map/Map#set:bucketsMask + call $~lib/map/Map<~lib/string/String,usize>#set:bucketsMask local.get $0 local.get $5 - call $~lib/map/Map#set:entries + call $~lib/map/Map<~lib/string/String,usize>#set:entries local.get $0 local.get $4 - call $~lib/map/Map#set:entriesCapacity + call $~lib/map/Map<~lib/string/String,usize>#set:entriesCapacity local.get $0 local.get $0 i32.load offset=20 - call $~lib/map/Map#set:entriesOffset + call $~lib/map/Map<~lib/string/String,usize>#set:entriesOffset global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 12 i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/util/memory/memcpy (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/util/hash/hash32 (param $0 i32) (result i32) + (local $1 i32) + i32.const -2128831035 + local.set $1 + local.get $1 + local.get $0 + i32.const 255 + i32.and + i32.xor + i32.const 16777619 + i32.mul + local.set $1 + local.get $1 + local.get $0 + i32.const 8 + i32.shr_u + i32.const 255 + i32.and + i32.xor + i32.const 16777619 + i32.mul + local.set $1 + local.get $1 + local.get $0 + i32.const 16 + i32.shr_u + i32.const 255 + i32.and + i32.xor + i32.const 16777619 + i32.mul + local.set $1 + local.get $1 + local.get $0 + i32.const 24 + i32.shr_u + i32.xor + i32.const 16777619 + i32.mul + local.set $1 + local.get $1 + ) + (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) - (local $6 i32) + local.get $0 + i32.load + local.get $2 + local.get $0 + i32.load offset=4 + i32.and + i32.const 4 + i32.mul + i32.add + i32.load + local.set $3 loop $while-continue|0 - local.get $2 - if (result i32) - local.get $1 - i32.const 3 - i32.and - else - i32.const 0 - end - local.set $5 - local.get $5 + local.get $3 + local.set $4 + local.get $4 if - local.get $0 - local.tee $6 - i32.const 1 - i32.add - local.set $0 - local.get $6 - local.get $1 - local.tee $6 + local.get $3 + i32.load offset=8 + local.set $5 + local.get $5 i32.const 1 - i32.add - local.set $1 - local.get $6 - i32.load8_u - i32.store8 - local.get $2 + i32.and + i32.eqz + if (result i32) + local.get $3 + i32.load + local.get $1 + i32.eq + else + i32.const 0 + end + if + local.get $3 + return + end + local.get $5 i32.const 1 - i32.sub - local.set $2 + i32.const -1 + i32.xor + i32.and + local.set $3 br $while-continue|0 end end + i32.const 0 + ) + (func $~lib/map/MapEntry#set:value (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=4 + ) + (func $~lib/map/MapEntry#set:key (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + ) + (func $~lib/map/MapEntry#set:taggedNext (param $0 i32) (param $1 i32) local.get $0 + local.get $1 + i32.store offset=8 + ) + (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) + (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 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 $1 + i32.const 1 + i32.add + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 0 + local.get $2 + i32.const 4 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $3 + i32.store + local.get $2 + i32.const 8 + i32.mul i32.const 3 - i32.and + i32.div_s + local.set $4 + global.get $~lib/memory/__stack_pointer i32.const 0 - i32.eq - if - loop $while-continue|1 - local.get $2 - i32.const 16 - i32.ge_u - local.set $5 - local.get $5 + local.get $4 + i32.const 12 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $5 + i32.store offset=4 + local.get $0 + i32.load offset=8 + local.set $6 + local.get $6 + local.get $0 + i32.load offset=16 + i32.const 12 + i32.mul + i32.add + local.set $7 + local.get $5 + local.set $8 + loop $while-continue|0 + local.get $6 + local.get $7 + i32.ne + local.set $9 + local.get $9 + if + local.get $6 + local.set $10 + local.get $10 + i32.load offset=8 + i32.const 1 + i32.and + i32.eqz if - local.get $0 - local.get $1 - i32.load - i32.store - local.get $0 - i32.const 4 - i32.add - local.get $1 - i32.const 4 - i32.add - i32.load - i32.store - local.get $0 - i32.const 8 - i32.add - local.get $1 - i32.const 8 - i32.add - i32.load - i32.store - local.get $0 - i32.const 12 - i32.add - local.get $1 - i32.const 12 - i32.add + local.get $8 + local.set $11 + local.get $10 i32.load - i32.store - local.get $1 - i32.const 16 - i32.add - local.set $1 - local.get $0 - i32.const 16 - i32.add - local.set $0 - local.get $2 - i32.const 16 - i32.sub + local.set $12 + local.get $11 + local.get $12 + call $~lib/map/MapEntry#set:key + local.get $11 + local.get $10 + i32.load offset=4 + call $~lib/map/MapEntry#set:value + block $~lib/util/hash/HASH|inlined.1 (result i32) + local.get $12 + local.set $13 + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 4 + i32.const 1 + i32.eq + drop + i32.const 4 + i32.const 2 + i32.eq + drop + i32.const 4 + i32.const 4 + i32.eq + drop + local.get $13 + call $~lib/util/hash/hash32 + br $~lib/util/hash/HASH|inlined.1 + end + local.get $1 + i32.and + local.set $13 + local.get $3 + local.get $13 + i32.const 4 + i32.mul + i32.add + local.set $14 + local.get $11 + local.get $14 + i32.load + call $~lib/map/MapEntry#set:taggedNext + local.get $14 + local.get $8 + i32.store + local.get $8 + i32.const 12 + i32.add + local.set $8 + end + local.get $6 + i32.const 12 + i32.add + local.set $6 + br $while-continue|0 + end + end + local.get $0 + local.get $3 + call $~lib/map/Map#set:buckets + local.get $0 + local.get $1 + call $~lib/map/Map#set:bucketsMask + local.get $0 + local.get $5 + call $~lib/map/Map#set:entries + local.get $0 + local.get $4 + call $~lib/map/Map#set:entriesCapacity + local.get $0 + local.get $0 + i32.load offset=20 + call $~lib/map/Map#set:entriesOffset + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/map/Map#has (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + local.get $0 + local.get $1 + block $~lib/util/hash/HASH|inlined.2 (result i32) + local.get $1 + local.set $2 + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 4 + i32.const 1 + i32.eq + drop + i32.const 4 + i32.const 2 + i32.eq + drop + i32.const 4 + i32.const 4 + i32.eq + drop + local.get $2 + call $~lib/util/hash/hash32 + br $~lib/util/hash/HASH|inlined.2 + end + call $~lib/map/Map#find + i32.const 0 + i32.ne + ) + (func $~lib/map/Map#get (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + local.get $0 + local.get $1 + block $~lib/util/hash/HASH|inlined.3 (result i32) + local.get $1 + local.set $2 + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 4 + i32.const 1 + i32.eq + drop + i32.const 4 + i32.const 2 + i32.eq + drop + i32.const 4 + i32.const 4 + i32.eq + drop + local.get $2 + call $~lib/util/hash/hash32 + br $~lib/util/hash/HASH|inlined.3 + end + call $~lib/map/Map#find + local.set $3 + local.get $3 + i32.eqz + if + i32.const 624 + i32.const 688 + i32.const 105 + i32.const 17 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.load offset=4 + ) + (func $~lib/util/memory/memcpy (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + loop $while-continue|0 + local.get $2 + if (result i32) + local.get $1 + i32.const 3 + i32.and + else + i32.const 0 + end + local.set $5 + local.get $5 + if + local.get $0 + local.tee $6 + i32.const 1 + i32.add + local.set $0 + local.get $6 + local.get $1 + local.tee $6 + i32.const 1 + i32.add + local.set $1 + local.get $6 + i32.load8_u + i32.store8 + local.get $2 + i32.const 1 + i32.sub + local.set $2 + br $while-continue|0 + end + end + local.get $0 + i32.const 3 + i32.and + i32.const 0 + i32.eq + if + loop $while-continue|1 + local.get $2 + i32.const 16 + i32.ge_u + local.set $5 + local.get $5 + if + local.get $0 + local.get $1 + i32.load + i32.store + local.get $0 + i32.const 4 + i32.add + local.get $1 + i32.const 4 + i32.add + i32.load + i32.store + local.get $0 + i32.const 8 + i32.add + local.get $1 + i32.const 8 + i32.add + i32.load + i32.store + local.get $0 + i32.const 12 + i32.add + local.get $1 + i32.const 12 + i32.add + i32.load + i32.store + local.get $1 + i32.const 16 + i32.add + local.set $1 + local.get $0 + i32.const 16 + i32.add + local.set $0 + local.get $2 + i32.const 16 + i32.sub local.set $2 br $while-continue|1 end @@ -4478,12 +4838,11 @@ unreachable end ) - (func $~lib/util/hash/hashStr (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) + (func $~lib/map/Map<~lib/string/String,usize>#find (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 4 i32.sub @@ -4492,164 +4851,6 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - i32.const -2128831035 - local.set $1 - local.get $0 - i32.const 0 - i32.ne - if - i32.const 0 - local.set $2 - local.get $0 - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - local.get $5 - call $~lib/string/String#get:length - i32.const 1 - i32.shl - local.set $3 - loop $for-loop|0 - local.get $2 - local.get $3 - i32.lt_u - local.set $4 - local.get $4 - if - local.get $1 - local.get $0 - local.get $2 - i32.add - i32.load8_u - i32.xor - i32.const 16777619 - i32.mul - local.set $1 - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $for-loop|0 - end - end - end - local.get $1 - local.set $5 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $5 - ) - (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 - call $~stack_check - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - local.get $0 - local.get $1 - 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 $0 - i32.const 0 - i32.eq - if (result i32) - i32.const 1 - else - local.get $1 - 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 $0 - 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 $2 - local.get $2 - local.get $1 - 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 $0 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store - local.get $3 - i32.const 0 - local.get $1 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - i32.const 0 - local.get $2 - 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 - ) - (func $~lib/map/Map<~lib/string/String,usize>#find (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 - call $~stack_check - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store local.get $0 i32.load local.get $2 @@ -4682,11 +4883,6 @@ i32.store local.get $6 local.get $1 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 call $~lib/string/String.__eq else i32.const 0 @@ -4695,7 +4891,7 @@ local.get $3 local.set $6 global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer local.get $6 @@ -4708,623 +4904,28 @@ i32.and local.set $3 br $while-continue|0 - end - end - i32.const 0 - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - ) - (func $~lib/map/Map<~lib/string/String,usize>#has (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=8 - local.get $0 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store - local.get $3 - local.get $1 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - block $~lib/util/hash/HASH<~lib/string/String>|inlined.0 (result i32) - global.get $~lib/memory/__stack_pointer - local.get $1 - local.tee $2 - i32.store offset=8 - i32.const 1 - drop - local.get $2 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=12 - local.get $3 - call $~lib/util/hash/hashStr - br $~lib/util/hash/HASH<~lib/string/String>|inlined.0 - end - call $~lib/map/Map<~lib/string/String,usize>#find - i32.const 0 - i32.ne - local.set $3 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $3 - ) - (func $~lib/map/Map<~lib/string/String,usize>#get (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 16 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=8 - local.get $0 - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store - local.get $4 - local.get $1 - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - block $~lib/util/hash/HASH<~lib/string/String>|inlined.1 (result i32) - global.get $~lib/memory/__stack_pointer - local.get $1 - local.tee $2 - i32.store offset=8 - i32.const 1 - drop - local.get $2 - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=12 - local.get $4 - call $~lib/util/hash/hashStr - br $~lib/util/hash/HASH<~lib/string/String>|inlined.1 - end - call $~lib/map/Map<~lib/string/String,usize>#find - local.set $3 - local.get $3 - i32.eqz - if - i32.const 624 - i32.const 688 - i32.const 105 - i32.const 17 - call $~lib/builtins/abort - unreachable - end - local.get $3 - i32.load offset=4 - local.set $4 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $4 - ) - (func $~lib/map/Map<~lib/string/String,usize>#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 $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 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 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=16 - local.get $1 - i32.const 1 - i32.add - local.set $2 - global.get $~lib/memory/__stack_pointer - i32.const 0 - local.get $2 - i32.const 4 - i32.mul - call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $3 - i32.store - local.get $2 - i32.const 8 - i32.mul - i32.const 3 - i32.div_s - local.set $4 - global.get $~lib/memory/__stack_pointer - i32.const 0 - local.get $4 - i32.const 12 - i32.mul - call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $5 - i32.store offset=4 - local.get $0 - i32.load offset=8 - local.set $6 - local.get $6 - local.get $0 - i32.load offset=16 - i32.const 12 - i32.mul - i32.add - local.set $7 - local.get $5 - local.set $8 - loop $while-continue|0 - local.get $6 - local.get $7 - i32.ne - local.set $9 - local.get $9 - if - local.get $6 - local.set $10 - local.get $10 - i32.load offset=8 - i32.const 1 - i32.and - i32.eqz - if - local.get $8 - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.load - local.tee $12 - i32.store offset=8 - local.get $11 - local.get $12 - call $~lib/map/MapEntry<~lib/string/String,usize>#set:key - local.get $11 - local.get $10 - i32.load offset=4 - call $~lib/map/MapEntry<~lib/string/String,usize>#set:value - block $~lib/util/hash/HASH<~lib/string/String>|inlined.3 (result i32) - global.get $~lib/memory/__stack_pointer - local.get $12 - local.tee $13 - i32.store offset=12 - i32.const 1 - drop - local.get $13 - local.set $15 - global.get $~lib/memory/__stack_pointer - local.get $15 - i32.store offset=16 - local.get $15 - call $~lib/util/hash/hashStr - br $~lib/util/hash/HASH<~lib/string/String>|inlined.3 - end - local.get $1 - i32.and - local.set $13 - local.get $3 - local.get $13 - i32.const 4 - i32.mul - i32.add - local.set $14 - local.get $11 - local.get $14 - i32.load - call $~lib/map/MapEntry<~lib/string/String,usize>#set:taggedNext - local.get $14 - local.get $8 - i32.store - local.get $8 - i32.const 12 - i32.add - local.set $8 - end - local.get $6 - i32.const 12 - i32.add - local.set $6 - br $while-continue|0 - end - end - local.get $0 - local.get $3 - call $~lib/map/Map<~lib/string/String,usize>#set:buckets - local.get $0 - local.get $1 - call $~lib/map/Map<~lib/string/String,usize>#set:bucketsMask - local.get $0 - local.get $5 - call $~lib/map/Map<~lib/string/String,usize>#set:entries - local.get $0 - local.get $4 - call $~lib/map/Map<~lib/string/String,usize>#set:entriesCapacity - local.get $0 - local.get $0 - i32.load offset=20 - 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 $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 - 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 $~lib/util/hash/HASH<~lib/string/String>|inlined.2 (result i32) - global.get $~lib/memory/__stack_pointer - local.get $1 - local.tee $3 - i32.store - i32.const 1 - drop - local.get $3 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - call $~lib/util/hash/hashStr - br $~lib/util/hash/HASH<~lib/string/String>|inlined.2 - end - local.set $4 - local.get $0 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - local.get $1 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=8 - local.get $7 - local.get $4 - call $~lib/map/Map<~lib/string/String,usize>#find - local.set $5 - local.get $5 - if - local.get $5 - local.get $2 - call $~lib/map/MapEntry<~lib/string/String,usize>#set:value - i32.const 0 - drop - else - local.get $0 - i32.load offset=16 - local.get $0 - i32.load offset=12 - i32.eq - if - local.get $0 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - local.get $0 - i32.load offset=20 - 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 $0 - i32.load offset=4 - else - local.get $0 - i32.load offset=4 - i32.const 1 - i32.shl - i32.const 1 - i32.or - end - call $~lib/map/Map<~lib/string/String,usize>#rehash - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.load offset=8 - local.tee $3 - i32.store - local.get $3 - local.get $0 - local.get $0 - i32.load offset=16 - local.tee $6 - i32.const 1 - i32.add - call $~lib/map/Map<~lib/string/String,usize>#set:entriesOffset - local.get $6 - i32.const 12 - i32.mul - i32.add - local.set $5 - local.get $5 - local.get $1 - call $~lib/map/MapEntry<~lib/string/String,usize>#set:key - i32.const 1 - drop - local.get $0 - local.get $1 - i32.const 1 - call $~lib/rt/itcms/__link - local.get $5 - local.get $2 - call $~lib/map/MapEntry<~lib/string/String,usize>#set:value - i32.const 0 - drop - local.get $0 - local.get $0 - i32.load offset=20 - i32.const 1 - i32.add - call $~lib/map/Map<~lib/string/String,usize>#set:entriesCount - local.get $0 - i32.load - local.get $4 - local.get $0 - i32.load offset=4 - i32.and - i32.const 4 - i32.mul - i32.add - local.set $6 - local.get $5 - local.get $6 - i32.load - call $~lib/map/MapEntry<~lib/string/String,usize>#set:taggedNext - local.get $6 - local.get $5 - i32.store - end - local.get $0 - local.set $7 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $7 - ) - (func $~lib/map/Map#set (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 - call $~stack_check - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - block $~lib/util/hash/HASH|inlined.0 (result i32) - local.get $1 - local.set $3 - i32.const 0 - drop - i32.const 0 - drop - i32.const 0 - drop - i32.const 4 - i32.const 1 - i32.eq - drop - i32.const 4 - i32.const 2 - i32.eq - drop - i32.const 4 - i32.const 4 - i32.eq - drop - local.get $3 - call $~lib/util/hash/hash32 - br $~lib/util/hash/HASH|inlined.0 - end - local.set $4 - local.get $0 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store - local.get $7 - local.get $1 - local.get $4 - call $~lib/map/Map#find - local.set $5 - local.get $5 - if - local.get $5 - local.get $2 - call $~lib/map/MapEntry#set:value - i32.const 1 - drop - local.get $0 - local.get $2 - i32.const 1 - call $~lib/rt/itcms/__link - else - local.get $0 - i32.load offset=16 - local.get $0 - i32.load offset=12 - i32.eq - if - local.get $0 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store - local.get $7 - local.get $0 - i32.load offset=20 - 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 $0 - i32.load offset=4 - else - 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.load offset=8 - local.tee $3 - i32.store offset=4 - local.get $3 - local.get $0 - local.get $0 - i32.load offset=16 - local.tee $6 - i32.const 1 - i32.add - call $~lib/map/Map#set:entriesOffset - local.get $6 - i32.const 12 - i32.mul - i32.add - local.set $5 - local.get $5 - local.get $1 - call $~lib/map/MapEntry#set:key - i32.const 0 - drop - local.get $5 - local.get $2 - call $~lib/map/MapEntry#set:value - i32.const 1 - drop - local.get $0 - local.get $2 - i32.const 1 - call $~lib/rt/itcms/__link - local.get $0 - local.get $0 - i32.load offset=20 - i32.const 1 - i32.add - call $~lib/map/Map#set:entriesCount - local.get $0 - i32.load - local.get $4 - local.get $0 - i32.load offset=4 - i32.and - i32.const 4 - i32.mul - i32.add - local.set $6 - local.get $5 - local.get $6 - i32.load - call $~lib/map/MapEntry#set:taggedNext - local.get $6 - local.get $5 - i32.store + end end - local.get $0 - local.set $7 + i32.const 0 + local.set $6 global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $7 + local.get $6 ) (func $~lib/symbol/_Symbol.for (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 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 global.get $~lib/symbol/stringToId i32.eqz if @@ -5342,11 +4943,6 @@ i32.store local.get $3 local.get $0 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 call $~lib/map/Map<~lib/string/String,usize>#has if global.get $~lib/symbol/stringToId @@ -5356,15 +4952,10 @@ i32.store local.get $3 local.get $0 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 call $~lib/map/Map<~lib/string/String,usize>#get local.set $3 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer local.get $3 @@ -5390,11 +4981,6 @@ i32.store local.get $3 local.get $0 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 local.get $2 call $~lib/map/Map<~lib/string/String,usize>#set drop @@ -5406,139 +4992,16 @@ local.get $3 local.get $2 local.get $0 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=8 - local.get $3 call $~lib/map/Map#set drop local.get $2 local.set $3 global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $3 - ) - (func $~lib/map/Map#has (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 - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - local.get $0 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store - local.get $3 - local.get $1 - block $~lib/util/hash/HASH|inlined.2 (result i32) - local.get $1 - local.set $2 - i32.const 0 - drop - i32.const 0 - drop - i32.const 0 - drop - i32.const 4 - i32.const 1 - i32.eq - drop - i32.const 4 - i32.const 2 - i32.eq - drop - i32.const 4 - i32.const 4 - i32.eq - drop - local.get $2 - call $~lib/util/hash/hash32 - br $~lib/util/hash/HASH|inlined.2 - end - call $~lib/map/Map#find - i32.const 0 - i32.ne - local.set $3 - global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer local.get $3 ) - (func $~lib/map/Map#get (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 - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - local.get $0 - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store - local.get $4 - local.get $1 - block $~lib/util/hash/HASH|inlined.3 (result i32) - local.get $1 - local.set $2 - i32.const 0 - drop - i32.const 0 - drop - i32.const 0 - drop - i32.const 4 - i32.const 1 - i32.eq - drop - i32.const 4 - i32.const 2 - i32.eq - drop - i32.const 4 - i32.const 4 - i32.eq - drop - local.get $2 - call $~lib/util/hash/hash32 - br $~lib/util/hash/HASH|inlined.3 - end - call $~lib/map/Map#find - local.set $3 - local.get $3 - i32.eqz - if - i32.const 624 - i32.const 688 - i32.const 105 - i32.const 17 - call $~lib/builtins/abort - unreachable - end - local.get $3 - i32.load offset=4 - local.set $4 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $4 - ) (func $~lib/symbol/_Symbol.keyFor (param $0 i32) (result i32) (local $1 i32) global.get $~lib/memory/__stack_pointer @@ -5583,103 +5046,16 @@ 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) - (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 - local.get $1 - i32.const 0 - i32.eq - if - global.get $~lib/memory/__stack_pointer - i32.const 1376 - local.tee $1 - i32.store - end - local.get $0 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - call $~lib/string/String#get:length - i32.const 1 - i32.shl - local.set $2 - local.get $1 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - call $~lib/string/String#get:length - i32.const 1 - i32.shl - local.set $3 - local.get $2 - local.get $3 - i32.add - local.set $4 - local.get $4 - i32.const 0 - i32.eq - if - i32.const 800 - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - return - end - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $5 - i32.store offset=8 - local.get $5 - local.get $0 - local.get $2 - call $~lib/memory/memory.copy - local.get $5 - local.get $2 - i32.add - local.get $1 - local.get $3 - call $~lib/memory/memory.copy - local.get $5 - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - ) (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.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 $0 i32.const 1376 local.get $0 @@ -5692,15 +5068,10 @@ i32.store local.get $2 local.get $1 - 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.const 4 i32.add global.set $~lib/memory/__stack_pointer local.get $2 @@ -5711,7 +5082,7 @@ (local $3 i32) (local $4 i32) global.get $~lib/memory/__stack_pointer - i32.const 20 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check @@ -5721,9 +5092,6 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=16 local.get $0 local.set $1 global.get $~lib/memory/__stack_pointer @@ -5894,11 +5262,6 @@ i32.store offset=12 local.get $4 local.get $2 - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=16 - local.get $4 call $~lib/string/String.__concat local.set $4 global.get $~lib/memory/__stack_pointer @@ -5914,7 +5277,7 @@ call $~lib/string/String.__concat local.set $4 global.get $~lib/memory/__stack_pointer - i32.const 20 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer local.get $4 @@ -6263,105 +5626,459 @@ i32.const 0 i32.store local.get $0 - i32.eqz + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 24 + i32.const 3 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + local.get $0 + i32.const 0 + i32.const 4 + i32.const 4 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + call $~lib/map/Map<~lib/string/String,usize>#set:buckets + local.get $0 + i32.const 4 + i32.const 1 + i32.sub + call $~lib/map/Map<~lib/string/String,usize>#set:bucketsMask + local.get $0 + i32.const 0 + i32.const 4 + i32.const 12 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + call $~lib/map/Map<~lib/string/String,usize>#set:entries + local.get $0 + i32.const 4 + call $~lib/map/Map<~lib/string/String,usize>#set:entriesCapacity + local.get $0 + i32.const 0 + call $~lib/map/Map<~lib/string/String,usize>#set:entriesOffset + local.get $0 + i32.const 0 + call $~lib/map/Map<~lib/string/String,usize>#set:entriesCount + local.get $0 + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $~lib/map/Map#constructor (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 + call $~stack_check + 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 24 + i32.const 4 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + local.get $0 + i32.const 0 + i32.const 4 + i32.const 4 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + call $~lib/map/Map#set:buckets + local.get $0 + i32.const 4 + i32.const 1 + i32.sub + call $~lib/map/Map#set:bucketsMask + local.get $0 + i32.const 0 + i32.const 4 + i32.const 12 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + call $~lib/map/Map#set:entries + local.get $0 + i32.const 4 + call $~lib/map/Map#set:entriesCapacity + local.get $0 + i32.const 0 + call $~lib/map/Map#set:entriesOffset + local.get $0 + i32.const 0 + call $~lib/map/Map#set:entriesCount + local.get $0 + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $~lib/map/Map<~lib/string/String,usize>#set (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 + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + block $~lib/util/hash/HASH<~lib/string/String>|inlined.2 (result i32) + local.get $1 + local.set $3 + i32.const 1 + drop + local.get $3 + call $~lib/util/hash/hashStr + br $~lib/util/hash/HASH<~lib/string/String>|inlined.2 + end + local.set $4 + local.get $0 + local.get $1 + local.get $4 + call $~lib/map/Map<~lib/string/String,usize>#find + local.set $5 + local.get $5 + if + local.get $5 + local.get $2 + call $~lib/map/MapEntry<~lib/string/String,usize>#set:value + i32.const 0 + drop + else + local.get $0 + i32.load offset=16 + local.get $0 + i32.load offset=12 + i32.eq + if + local.get $0 + local.get $0 + i32.load offset=20 + 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 $0 + i32.load offset=4 + else + local.get $0 + i32.load offset=4 + i32.const 1 + i32.shl + i32.const 1 + i32.or + end + call $~lib/map/Map<~lib/string/String,usize>#rehash + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.load offset=8 + local.tee $3 + i32.store + local.get $3 + local.get $0 + local.get $0 + i32.load offset=16 + local.tee $6 + i32.const 1 + i32.add + call $~lib/map/Map<~lib/string/String,usize>#set:entriesOffset + local.get $6 + i32.const 12 + i32.mul + i32.add + local.set $5 + local.get $5 + local.get $1 + call $~lib/map/MapEntry<~lib/string/String,usize>#set:key + i32.const 1 + drop + local.get $0 + local.get $1 + i32.const 1 + call $~lib/rt/itcms/__link + local.get $5 + local.get $2 + call $~lib/map/MapEntry<~lib/string/String,usize>#set:value + i32.const 0 + drop + local.get $0 + local.get $0 + i32.load offset=20 + i32.const 1 + i32.add + call $~lib/map/Map<~lib/string/String,usize>#set:entriesCount + local.get $0 + i32.load + local.get $4 + local.get $0 + i32.load offset=4 + i32.and + i32.const 4 + i32.mul + i32.add + local.set $6 + local.get $5 + local.get $6 + i32.load + call $~lib/map/MapEntry<~lib/string/String,usize>#set:taggedNext + local.get $6 + local.get $5 + i32.store + end + local.get $0 + local.set $7 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $7 + ) + (func $~lib/map/Map#set (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 + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + block $~lib/util/hash/HASH|inlined.0 (result i32) + local.get $1 + local.set $3 + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 4 + i32.const 1 + i32.eq + drop + i32.const 4 + i32.const 2 + i32.eq + drop + i32.const 4 + i32.const 4 + i32.eq + drop + local.get $3 + call $~lib/util/hash/hash32 + br $~lib/util/hash/HASH|inlined.0 + end + local.set $4 + local.get $0 + local.get $1 + local.get $4 + call $~lib/map/Map#find + local.set $5 + local.get $5 if + local.get $5 + local.get $2 + call $~lib/map/MapEntry#set:value + i32.const 1 + drop + local.get $0 + local.get $2 + i32.const 1 + call $~lib/rt/itcms/__link + else + local.get $0 + i32.load offset=16 + local.get $0 + i32.load offset=12 + i32.eq + if + local.get $0 + local.get $0 + i32.load offset=20 + 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 $0 + i32.load offset=4 + else + 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 - i32.const 24 - i32.const 3 - call $~lib/rt/itcms/__new - local.tee $0 + local.get $0 + i32.load offset=8 + local.tee $3 + i32.store + local.get $3 + local.get $0 + local.get $0 + i32.load offset=16 + local.tee $6 + i32.const 1 + i32.add + call $~lib/map/Map#set:entriesOffset + local.get $6 + i32.const 12 + i32.mul + i32.add + local.set $5 + local.get $5 + local.get $1 + call $~lib/map/MapEntry#set:key + i32.const 0 + drop + local.get $5 + local.get $2 + call $~lib/map/MapEntry#set:value + i32.const 1 + drop + local.get $0 + local.get $2 + i32.const 1 + call $~lib/rt/itcms/__link + local.get $0 + local.get $0 + i32.load offset=20 + i32.const 1 + i32.add + call $~lib/map/Map#set:entriesCount + local.get $0 + i32.load + local.get $4 + local.get $0 + i32.load offset=4 + i32.and + i32.const 4 + i32.mul + i32.add + local.set $6 + local.get $5 + local.get $6 + i32.load + call $~lib/map/MapEntry#set:taggedNext + local.get $6 + local.get $5 i32.store end local.get $0 - i32.const 0 - i32.const 4 - i32.const 4 - i32.mul - call $~lib/arraybuffer/ArrayBuffer#constructor - call $~lib/map/Map<~lib/string/String,usize>#set:buckets - local.get $0 - i32.const 4 - i32.const 1 - i32.sub - call $~lib/map/Map<~lib/string/String,usize>#set:bucketsMask - local.get $0 - i32.const 0 - i32.const 4 - i32.const 12 - i32.mul - call $~lib/arraybuffer/ArrayBuffer#constructor - call $~lib/map/Map<~lib/string/String,usize>#set:entries - local.get $0 - i32.const 4 - call $~lib/map/Map<~lib/string/String,usize>#set:entriesCapacity - local.get $0 - i32.const 0 - call $~lib/map/Map<~lib/string/String,usize>#set:entriesOffset - local.get $0 - i32.const 0 - call $~lib/map/Map<~lib/string/String,usize>#set:entriesCount - local.get $0 - local.set $1 + local.set $7 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 + local.get $7 ) - (func $~lib/map/Map#constructor (param $0 i32) (result i32) - (local $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) 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 + i64.const 0 + i64.store + local.get $1 i32.const 0 - i32.store - local.get $0 - i32.eqz + i32.eq if global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.const 4 - call $~lib/rt/itcms/__new - local.tee $0 + i32.const 1376 + local.tee $1 i32.store end local.get $0 - i32.const 0 - i32.const 4 - i32.const 4 - i32.mul - call $~lib/arraybuffer/ArrayBuffer#constructor - call $~lib/map/Map#set:buckets - local.get $0 - i32.const 4 + call $~lib/string/String#get:length i32.const 1 - i32.sub - call $~lib/map/Map#set:bucketsMask - local.get $0 - i32.const 0 - i32.const 4 - i32.const 12 - i32.mul - call $~lib/arraybuffer/ArrayBuffer#constructor - call $~lib/map/Map#set:entries - local.get $0 - i32.const 4 - call $~lib/map/Map#set:entriesCapacity - local.get $0 - i32.const 0 - call $~lib/map/Map#set:entriesOffset - local.get $0 + i32.shl + local.set $2 + local.get $1 + call $~lib/string/String#get:length + i32.const 1 + i32.shl + local.set $3 + local.get $2 + local.get $3 + i32.add + local.set $4 + local.get $4 i32.const 0 - call $~lib/map/Map#set:entriesCount + i32.eq + if + i32.const 800 + 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 $4 + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $5 + i32.store offset=4 + local.get $5 local.get $0 - local.set $1 + local.get $2 + call $~lib/memory/memory.copy + local.get $5 + local.get $2 + i32.add + local.get $1 + local.get $3 + call $~lib/memory/memory.copy + local.get $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 $1 + local.get $6 ) ) diff --git a/tests/compiler/std/typedarray.optimized.wat b/tests/compiler/std/typedarray.optimized.wat index 65a210c46d..500a78968a 100644 --- a/tests/compiler/std/typedarray.optimized.wat +++ b/tests/compiler/std/typedarray.optimized.wat @@ -4,10 +4,10 @@ (type $i32_i32_i32_=>_i32 (func (param i32 i32 i32) (result i32))) (type $i32_=>_i32 (func (param i32) (result i32))) (type $i32_i32_=>_none (func (param i32 i32))) - (type $i32_=>_none (func (param i32))) (type $i32_i32_i32_=>_none (func (param i32 i32 i32))) (type $i32_i32_i32_i32_=>_i32 (func (param i32 i32 i32 i32) (result i32))) (type $i64_i32_i32_=>_i32 (func (param i64 i32 i32) (result i32))) + (type $i32_=>_none (func (param i32))) (type $f32_i32_i32_=>_i32 (func (param f32 i32 i32) (result i32))) (type $f64_i32_i32_=>_i32 (func (param f64 i32 i32) (result i32))) (type $i32_i32_=>_i64 (func (param i32 i32) (result i64))) @@ -2388,1258 +2388,541 @@ local.get $1 call $~lib/rt/itcms/__link ) - (func $~lib/typedarray/Int32Array#__set (param $0 i32) (param $1 i32) (param $2 i32) - local.get $1 + (func $std/typedarray/testInstantiate (param $0 i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 44 + 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 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=16 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=24 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=32 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=40 + global.get $~lib/memory/__stack_pointer local.get $0 - i32.load offset=8 - i32.const 2 - i32.shr_u - i32.ge_u + call $~lib/typedarray/Int8Array#constructor + local.tee $1 + i32.store + local.get $1 + i32.load offset=4 + local.get $1 + i32.load + i32.sub if - i32.const 1360 - i32.const 1632 - i32.const 710 - i32.const 64 + i32.const 0 + i32.const 1568 + i32.const 32 + i32.const 3 call $~lib/builtins/abort unreachable end local.get $0 - i32.load offset=4 - local.get $1 - i32.const 2 - i32.shl - i32.add - local.get $2 - i32.store - ) - (func $~lib/typedarray/Int32Array#__get (param $0 i32) (param $1 i32) (result i32) local.get $1 - local.get $0 i32.load offset=8 - i32.const 2 - i32.shr_u - i32.ge_u + i32.ne if - i32.const 1360 - i32.const 1632 - i32.const 699 - i32.const 64 + i32.const 0 + i32.const 1568 + i32.const 33 + i32.const 3 call $~lib/builtins/abort unreachable end local.get $0 - i32.load offset=4 local.get $1 - i32.const 2 - i32.shl - i32.add - i32.load - ) - (func $~lib/typedarray/Float64Array#__set (param $0 i32) (param $1 i32) (param $2 f64) - local.get $1 - local.get $0 i32.load offset=8 - i32.const 3 - i32.shr_u - i32.ge_u + i32.ne if - i32.const 1360 - i32.const 1632 - i32.const 1385 - i32.const 64 + 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 - i32.load offset=4 - local.get $1 - i32.const 3 - i32.shl - i32.add - local.get $2 - f64.store - ) - (func $~lib/util/sort/weakHeapSort (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 f64) - (local $6 i32) - (local $7 f64) - (local $8 i32) + call $~lib/typedarray/Uint8Array#constructor + local.tee $1 + i32.store offset=4 local.get $1 - i32.const 31 - i32.add - i32.const 5 - i32.shr_u - i32.const 2 - i32.shl - local.tee $3 - call $~lib/rt/tlsf/__alloc - local.tee $6 - i32.const 0 - local.get $3 - call $~lib/memory/memory.fill + i32.load offset=4 local.get $1 - i32.const 1 + i32.load i32.sub - local.set $4 - loop $for-loop|0 - local.get $4 + if i32.const 0 - i32.gt_s - if - local.get $4 - local.set $3 - loop $while-continue|1 - local.get $3 - i32.const 1 - i32.and - local.get $6 - local.get $3 - i32.const 6 - i32.shr_u - i32.const 2 - i32.shl - i32.add - i32.load - local.get $3 - i32.const 1 - i32.shr_s - i32.shr_u - i32.const 1 - i32.and - i32.eq - if - local.get $3 - i32.const 1 - i32.shr_s - local.set $3 - br $while-continue|1 - end - end - local.get $0 - local.get $3 - i32.const 1 - i32.shr_s - local.tee $3 - i32.const 3 - i32.shl - i32.add - f64.load - local.set $5 - local.get $0 - local.get $4 - i32.const 3 - i32.shl - i32.add - f64.load - local.set $7 - i32.const 2 - global.set $~argumentsLength - local.get $5 - local.get $7 - local.get $2 - i32.load - call_indirect (type $f64_f64_=>_i32) - i32.const 0 - i32.lt_s - if - local.get $6 - local.get $4 - i32.const 5 - i32.shr_u - i32.const 2 - i32.shl - i32.add - local.tee $8 - local.get $8 - i32.load - i32.const 1 - local.get $4 - i32.shl - i32.xor - i32.store - local.get $0 - local.get $4 - i32.const 3 - i32.shl - i32.add - local.get $5 - f64.store - local.get $0 - local.get $3 - i32.const 3 - i32.shl - i32.add - local.get $7 - f64.store - end - local.get $4 - i32.const 1 - i32.sub - local.set $4 - br $for-loop|0 - end + i32.const 1568 + i32.const 37 + i32.const 3 + call $~lib/builtins/abort + unreachable end + local.get $0 local.get $1 - i32.const 1 - i32.sub - local.set $4 - loop $for-loop|2 - local.get $4 - i32.const 2 - i32.ge_s - if - local.get $0 - f64.load - local.set $5 - local.get $0 - local.get $0 - local.get $4 - i32.const 3 - i32.shl - i32.add - local.tee $1 - f64.load - f64.store - local.get $1 - local.get $5 - f64.store - i32.const 1 - local.set $1 - loop $while-continue|3 - local.get $4 - local.get $6 - local.get $1 - i32.const 5 - i32.shr_u - i32.const 2 - i32.shl - i32.add - i32.load - local.get $1 - i32.shr_u - i32.const 1 - i32.and - local.get $1 - i32.const 1 - i32.shl - i32.add - local.tee $3 - i32.gt_s - if - local.get $3 - local.set $1 - br $while-continue|3 - end - end - loop $while-continue|4 - local.get $1 - i32.const 0 - i32.gt_s - if - local.get $0 - f64.load - local.set $5 - local.get $0 - local.get $1 - i32.const 3 - i32.shl - i32.add - f64.load - local.set $7 - i32.const 2 - global.set $~argumentsLength - local.get $5 - local.get $7 - local.get $2 - i32.load - call_indirect (type $f64_f64_=>_i32) - i32.const 0 - i32.lt_s - if - local.get $6 - local.get $1 - i32.const 5 - i32.shr_u - i32.const 2 - i32.shl - i32.add - local.tee $3 - local.get $3 - i32.load - i32.const 1 - local.get $1 - i32.shl - i32.xor - i32.store - local.get $0 - local.get $1 - i32.const 3 - i32.shl - i32.add - local.get $5 - f64.store - local.get $0 - local.get $7 - f64.store - end - local.get $1 - i32.const 1 - i32.shr_s - local.set $1 - br $while-continue|4 - end - end - local.get $4 - i32.const 1 - i32.sub - local.set $4 - br $for-loop|2 - end + 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 - local.get $6 - call $~lib/rt/tlsf/__free - local.get $0 - f64.load offset=8 - local.set $5 - local.get $0 - local.get $0 - f64.load - f64.store offset=8 - local.get $0 - local.get $5 - f64.store - ) - (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 - local.get $2 - i64.const 63 - i64.shr_s - i64.const 1 - i64.shr_u - i64.xor - local.tee $2 - local.get $1 - i64.reinterpret_f64 - local.tee $3 - local.get $3 - i64.const 63 - i64.shr_s - i64.const 1 - i64.shr_u - i64.xor - local.tee $3 - i64.gt_s - local.get $2 - local.get $3 - i64.lt_s - i32.sub - ) - (func $~lib/typedarray/Float64Array#__get (param $0 i32) (param $1 i32) (result f64) local.get $1 - local.get $0 i32.load offset=8 - i32.const 3 - i32.shr_u - i32.ge_u + i32.ne if - i32.const 1360 - i32.const 1632 - i32.const 1374 - i32.const 64 + 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 - i32.load offset=4 + call $~lib/typedarray/Uint8ClampedArray#constructor + local.tee $1 + i32.store offset=8 local.get $1 - i32.const 3 - i32.shl - i32.add - f64.load - ) - (func $~lib/typedarray/Uint8ClampedArray#__set (param $0 i32) (param $1 i32) (param $2 i32) + i32.load offset=4 local.get $1 + i32.load + i32.sub + if + i32.const 0 + i32.const 1568 + i32.const 42 + i32.const 3 + call $~lib/builtins/abort + unreachable + end local.get $0 + local.get $1 i32.load offset=8 - i32.ge_u + i32.ne if - i32.const 1360 - i32.const 1632 - i32.const 305 - i32.const 45 + i32.const 0 + i32.const 1568 + i32.const 43 + i32.const 3 call $~lib/builtins/abort unreachable end - local.get $1 local.get $0 - i32.load offset=4 - i32.add - local.get $2 - i32.const 255 - local.get $2 - i32.sub - i32.const 31 - i32.shr_s - i32.or - local.get $2 - i32.const 31 - i32.shr_s - i32.const -1 - i32.xor - i32.and - i32.store8 - ) - (func $~lib/typedarray/Uint8ClampedArray#__get (param $0 i32) (param $1 i32) (result i32) local.get $1 - local.get $0 i32.load offset=8 - i32.ge_u + i32.ne if - i32.const 1360 - i32.const 1632 - i32.const 294 - i32.const 45 + i32.const 0 + i32.const 1568 + i32.const 44 + i32.const 3 call $~lib/builtins/abort unreachable end - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 + call $~lib/typedarray/Int16Array#constructor + local.tee $1 + i32.store offset=12 + local.get $1 i32.load offset=4 - i32.add - i32.load8_u - ) - (func $~lib/typedarray/Int8Array#__set (param $0 i32) (param $1 i32) (param $2 i32) local.get $1 - local.get $0 - i32.load offset=8 - i32.ge_u + i32.load + i32.sub if - i32.const 1360 - i32.const 1632 - i32.const 35 - i32.const 45 + i32.const 0 + i32.const 1568 + i32.const 47 + i32.const 3 call $~lib/builtins/abort unreachable end local.get $1 + i32.load offset=8 local.get $0 - i32.load offset=4 - i32.add - local.get $2 - i32.store8 - ) - (func $~lib/memory/memory.copy (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) - (local $4 i32) - block $~lib/util/memory/memmove|inlined.0 - local.get $2 - local.set $4 - local.get $0 - local.get $1 - i32.eq - br_if $~lib/util/memory/memmove|inlined.0 - local.get $0 - local.get $1 - i32.lt_u - if - local.get $1 - i32.const 7 - i32.and - local.get $0 - i32.const 7 - i32.and - i32.eq - if - loop $while-continue|0 - local.get $0 - i32.const 7 - i32.and - if - local.get $4 - i32.eqz - br_if $~lib/util/memory/memmove|inlined.0 - local.get $4 - i32.const 1 - i32.sub - local.set $4 - local.get $0 - local.tee $2 - i32.const 1 - i32.add - local.set $0 - local.get $1 - local.tee $3 - i32.const 1 - i32.add - local.set $1 - local.get $2 - local.get $3 - i32.load8_u - i32.store8 - br $while-continue|0 - end - end - loop $while-continue|1 - local.get $4 - i32.const 8 - i32.ge_u - if - local.get $0 - local.get $1 - i64.load - i64.store - local.get $4 - i32.const 8 - i32.sub - local.set $4 - local.get $0 - i32.const 8 - i32.add - local.set $0 - local.get $1 - i32.const 8 - i32.add - local.set $1 - br $while-continue|1 - end - end - end - loop $while-continue|2 - local.get $4 - if - local.get $0 - local.tee $2 - i32.const 1 - i32.add - local.set $0 - local.get $1 - local.tee $3 - i32.const 1 - i32.add - local.set $1 - local.get $2 - local.get $3 - i32.load8_u - i32.store8 - local.get $4 - i32.const 1 - i32.sub - local.set $4 - br $while-continue|2 - end - end - else - local.get $1 - i32.const 7 - i32.and - local.get $0 - i32.const 7 - i32.and - i32.eq - if - loop $while-continue|3 - local.get $0 - local.get $4 - i32.add - i32.const 7 - i32.and - if - local.get $4 - i32.eqz - br_if $~lib/util/memory/memmove|inlined.0 - local.get $4 - i32.const 1 - i32.sub - local.tee $4 - local.get $0 - i32.add - local.get $1 - local.get $4 - i32.add - i32.load8_u - i32.store8 - br $while-continue|3 - end - end - loop $while-continue|4 - local.get $4 - i32.const 8 - i32.ge_u - if - local.get $4 - i32.const 8 - i32.sub - local.tee $4 - local.get $0 - i32.add - local.get $1 - local.get $4 - i32.add - i64.load - i64.store - br $while-continue|4 - end - end - end - loop $while-continue|5 - local.get $4 - if - local.get $4 - i32.const 1 - i32.sub - local.tee $4 - local.get $0 - i32.add - local.get $1 - local.get $4 - i32.add - i32.load8_u - i32.store8 - br $while-continue|5 - end - end - end - end - ) - (func $~lib/typedarray/Int8Array#__get (param $0 i32) (param $1 i32) (result i32) - local.get $1 - local.get $0 - i32.load offset=8 - i32.ge_u + i32.const 1 + i32.shl + i32.ne if - i32.const 1360 - i32.const 1632 - i32.const 24 - i32.const 45 + i32.const 0 + i32.const 1568 + i32.const 48 + i32.const 3 call $~lib/builtins/abort unreachable end - local.get $1 local.get $0 - i32.load offset=4 - i32.add - i32.load8_s - ) - (func $~lib/array/Array#__get (param $0 i32) (param $1 i32) (result i32) local.get $1 - local.get $0 - i32.load offset=12 - i32.ge_u + i32.load offset=8 + i32.const 1 + i32.shr_u + i32.ne if - i32.const 1360 - i32.const 1760 - i32.const 92 - i32.const 42 + 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 + call $~lib/typedarray/Uint16Array#constructor + local.tee $1 + i32.store offset=16 + local.get $1 i32.load offset=4 local.get $1 - i32.const 2 - i32.shl - i32.add i32.load - ) - (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 $~lib/typedarray/Uint8Array#__set (param $0 i32) (param $1 i32) (param $2 i32) - local.get $1 - local.get $0 - i32.load offset=8 - i32.ge_u + i32.sub if - i32.const 1360 - i32.const 1632 - i32.const 170 - i32.const 45 + i32.const 0 + i32.const 1568 + i32.const 52 + i32.const 3 call $~lib/builtins/abort unreachable end local.get $1 - local.get $0 - i32.load offset=4 - i32.add - local.get $2 - i32.store8 - ) - (func $~lib/typedarray/Int16Array#__set (param $0 i32) (param $1 i32) (param $2 i32) - local.get $1 - local.get $0 i32.load offset=8 + local.get $0 i32.const 1 - i32.shr_u - i32.ge_u + i32.shl + i32.ne if - i32.const 1360 - i32.const 1632 - i32.const 440 - i32.const 64 + i32.const 0 + i32.const 1568 + i32.const 53 + i32.const 3 call $~lib/builtins/abort unreachable end local.get $0 - i32.load offset=4 - local.get $1 - i32.const 1 - i32.shl - i32.add - local.get $2 - i32.store16 - ) - (func $~lib/typedarray/Uint16Array#__set (param $0 i32) (param $1 i32) (param $2 i32) local.get $1 - local.get $0 i32.load offset=8 i32.const 1 i32.shr_u - i32.ge_u + i32.ne if - i32.const 1360 - i32.const 1632 - i32.const 575 - i32.const 64 + i32.const 0 + i32.const 1568 + i32.const 54 + i32.const 3 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=20 + local.get $1 i32.load offset=4 local.get $1 - i32.const 1 - i32.shl - i32.add - local.get $2 - i32.store16 - ) - (func $~lib/typedarray/Uint32Array#__set (param $0 i32) (param $1 i32) (param $2 i32) + i32.load + i32.sub + if + i32.const 0 + i32.const 1568 + i32.const 57 + i32.const 3 + call $~lib/builtins/abort + unreachable + end local.get $1 - local.get $0 i32.load offset=8 + local.get $0 i32.const 2 - i32.shr_u - i32.ge_u + i32.shl + i32.ne if - i32.const 1360 - i32.const 1632 - i32.const 845 - i32.const 64 + i32.const 0 + i32.const 1568 + i32.const 58 + i32.const 3 call $~lib/builtins/abort unreachable end local.get $0 - i32.load offset=4 - local.get $1 - i32.const 2 - i32.shl - i32.add - local.get $2 - i32.store - ) - (func $~lib/typedarray/Int64Array#__set (param $0 i32) (param $1 i32) (param $2 i64) local.get $1 - local.get $0 i32.load offset=8 - i32.const 3 + i32.const 2 i32.shr_u - i32.ge_u + i32.ne if - i32.const 1360 - i32.const 1632 - i32.const 980 - i32.const 64 + 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 - i32.load offset=4 + call $~lib/typedarray/Uint32Array#constructor + local.tee $1 + i32.store offset=24 local.get $1 - i32.const 3 - i32.shl - i32.add - local.get $2 - i64.store - ) - (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 + i32.load offset=4 local.get $1 - i64.add - ) - (func $~lib/typedarray/Uint64Array#__set (param $0 i32) (param $1 i32) (param $2 i64) + i32.load + i32.sub + if + i32.const 0 + i32.const 1568 + i32.const 62 + i32.const 3 + call $~lib/builtins/abort + unreachable + end local.get $1 - local.get $0 i32.load offset=8 - i32.const 3 - i32.shr_u - i32.ge_u + local.get $0 + i32.const 2 + i32.shl + i32.ne if - i32.const 1360 - i32.const 1632 - i32.const 1115 - i32.const 64 + i32.const 0 + i32.const 1568 + i32.const 63 + i32.const 3 call $~lib/builtins/abort unreachable end local.get $0 - i32.load offset=4 - local.get $1 - i32.const 3 - i32.shl - i32.add - local.get $2 - i64.store - ) - (func $~lib/typedarray/Float32Array#__set (param $0 i32) (param $1 i32) (param $2 f32) local.get $1 - local.get $0 i32.load offset=8 i32.const 2 i32.shr_u - i32.ge_u + i32.ne if - i32.const 1360 - i32.const 1632 - i32.const 1250 + i32.const 0 + i32.const 1568 i32.const 64 + i32.const 3 call $~lib/builtins/abort unreachable end + global.get $~lib/memory/__stack_pointer local.get $0 - i32.load offset=4 - local.get $1 - i32.const 2 - i32.shl - i32.add - local.get $2 - f32.store - ) - (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 + call $~lib/typedarray/Int64Array#constructor + local.tee $1 + i32.store offset=28 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) - local.get $0 + i32.load offset=4 local.get $1 - f64.add - ) - (func $~lib/typedarray/Int8Array#at (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) + i32.load + i32.sub + if + i32.const 0 + i32.const 1568 + i32.const 67 + i32.const 3 + call $~lib/builtins/abort + unreachable + end local.get $1 - i32.const 0 - local.get $0 i32.load offset=8 - local.tee $2 - local.get $1 - i32.const 0 - i32.ge_s - select - i32.add - local.tee $1 - local.get $2 - i32.ge_u + local.get $0 + i32.const 3 + i32.shl + i32.ne if - i32.const 1360 - i32.const 1632 - i32.const 47 - i32.const 33 + i32.const 0 + i32.const 1568 + i32.const 68 + i32.const 3 call $~lib/builtins/abort unreachable end - local.get $1 local.get $0 - i32.load offset=4 - i32.add - i32.load8_s - ) - (func $~lib/typedarray/Uint8Array#at (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) local.get $1 - i32.const 0 - local.get $0 i32.load offset=8 - local.tee $2 - local.get $1 - i32.const 0 - i32.ge_s - select - i32.add - local.tee $1 - local.get $2 - i32.ge_u + i32.const 3 + i32.shr_u + i32.ne if - i32.const 1360 - i32.const 1632 - i32.const 182 - i32.const 33 + i32.const 0 + i32.const 1568 + i32.const 69 + i32.const 3 call $~lib/builtins/abort unreachable end - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 - i32.load offset=4 - i32.add - i32.load8_u - ) - (func $~lib/typedarray/Uint8ClampedArray#at (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) + call $~lib/typedarray/Uint64Array#constructor + local.tee $1 + i32.store offset=32 local.get $1 - i32.const 0 - local.get $0 - i32.load offset=8 - local.tee $2 + i32.load offset=4 local.get $1 - i32.const 0 - i32.ge_s - select - i32.add - local.tee $1 - local.get $2 - i32.ge_u + i32.load + i32.sub if - i32.const 1360 - i32.const 1632 - i32.const 317 - i32.const 33 + i32.const 0 + i32.const 1568 + i32.const 72 + i32.const 3 call $~lib/builtins/abort unreachable end local.get $1 + i32.load offset=8 local.get $0 - i32.load offset=4 - i32.add - i32.load8_u - ) - (func $~lib/typedarray/Int16Array#at (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - local.get $1 - i32.const 0 - local.get $0 - i32.load offset=8 - i32.const 1 - i32.shr_u - local.tee $2 - local.get $1 - i32.const 0 - i32.ge_s - select - i32.add - local.tee $1 - local.get $2 - i32.ge_u - if - i32.const 1360 - i32.const 1632 - i32.const 452 - i32.const 33 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load offset=4 - local.get $1 - i32.const 1 + i32.const 3 i32.shl - i32.add - i32.load16_s - ) - (func $~lib/typedarray/Uint16Array#at (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - local.get $1 - i32.const 0 - local.get $0 - i32.load offset=8 - i32.const 1 - i32.shr_u - local.tee $2 - local.get $1 - i32.const 0 - i32.ge_s - select - i32.add - local.tee $1 - local.get $2 - i32.ge_u + i32.ne if - i32.const 1360 - i32.const 1632 - i32.const 587 - i32.const 33 + i32.const 0 + i32.const 1568 + i32.const 73 + i32.const 3 call $~lib/builtins/abort unreachable end local.get $0 - i32.load offset=4 - local.get $1 - i32.const 1 - i32.shl - i32.add - i32.load16_u - ) - (func $~lib/typedarray/Int32Array#at (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) local.get $1 - i32.const 0 - local.get $0 i32.load offset=8 - i32.const 2 + i32.const 3 i32.shr_u - local.tee $2 - local.get $1 - i32.const 0 - i32.ge_s - select - i32.add - local.tee $1 - local.get $2 - i32.ge_u + i32.ne if - i32.const 1360 - i32.const 1632 - i32.const 722 - i32.const 33 + 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=36 + local.get $1 i32.load offset=4 local.get $1 - i32.const 2 - i32.shl - i32.add i32.load - ) - (func $~lib/typedarray/Uint32Array#at (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - local.get $1 - i32.const 0 - local.get $0 - i32.load offset=8 - i32.const 2 - i32.shr_u - local.tee $2 - local.get $1 - i32.const 0 - i32.ge_s - select - i32.add - local.tee $1 - local.get $2 - i32.ge_u + i32.sub if - i32.const 1360 - i32.const 1632 - i32.const 857 - i32.const 33 + i32.const 0 + i32.const 1568 + i32.const 77 + i32.const 3 call $~lib/builtins/abort unreachable end - local.get $0 - i32.load offset=4 - local.get $1 - i32.const 2 - i32.shl - i32.add - i32.load - ) - (func $~lib/typedarray/Int64Array#at (param $0 i32) (param $1 i32) (result i64) - (local $2 i32) local.get $1 - i32.const 0 - local.get $0 i32.load offset=8 - i32.const 3 - i32.shr_u - local.tee $2 - local.get $1 - i32.const 0 - i32.ge_s - select - i32.add - local.tee $1 - local.get $2 - i32.ge_u - if - i32.const 1360 - i32.const 1632 - i32.const 992 - i32.const 33 - call $~lib/builtins/abort - unreachable - end local.get $0 - i32.load offset=4 - local.get $1 - i32.const 3 + i32.const 2 i32.shl - i32.add - i64.load - ) - (func $~lib/typedarray/Uint64Array#at (param $0 i32) (param $1 i32) (result i64) - (local $2 i32) - local.get $1 - i32.const 0 - local.get $0 - i32.load offset=8 - i32.const 3 - i32.shr_u - local.tee $2 - local.get $1 - i32.const 0 - i32.ge_s - select - i32.add - local.tee $1 - local.get $2 - i32.ge_u + i32.ne if - i32.const 1360 - i32.const 1632 - i32.const 1127 - i32.const 33 + i32.const 0 + i32.const 1568 + i32.const 78 + i32.const 3 call $~lib/builtins/abort unreachable end local.get $0 - i32.load offset=4 - local.get $1 - i32.const 3 - i32.shl - i32.add - i64.load - ) - (func $~lib/typedarray/Float32Array#at (param $0 i32) (param $1 i32) (result f32) - (local $2 i32) local.get $1 - i32.const 0 - local.get $0 i32.load offset=8 i32.const 2 i32.shr_u - local.tee $2 - local.get $1 - i32.const 0 - i32.ge_s - select - i32.add - local.tee $1 - local.get $2 - i32.ge_u + i32.ne if - i32.const 1360 - i32.const 1632 - i32.const 1262 - i32.const 33 + i32.const 0 + i32.const 1568 + i32.const 79 + i32.const 3 call $~lib/builtins/abort unreachable end + 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 - ) - (func $~lib/typedarray/Float64Array#at (param $0 i32) (param $1 i32) (result f64) - (local $2 i32) + call $~lib/typedarray/Float64Array#constructor + local.tee $1 + i32.store offset=40 local.get $1 - i32.const 0 - local.get $0 - i32.load offset=8 - i32.const 3 - i32.shr_u - local.tee $2 + i32.load offset=4 local.get $1 - i32.const 0 - i32.ge_s - select - i32.add - local.tee $1 - local.get $2 - i32.ge_u + i32.load + i32.sub if - i32.const 1360 - i32.const 1632 - i32.const 1397 - i32.const 33 + i32.const 0 + i32.const 1568 + i32.const 82 + i32.const 3 call $~lib/builtins/abort unreachable end - local.get $0 - i32.load offset=4 local.get $1 + i32.load offset=8 + local.get $0 i32.const 3 i32.shl - i32.add - f64.load - ) - (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 $~lib/typedarray/Uint8Array#__get (param $0 i32) (param $1 i32) (result i32) - local.get $1 - local.get $0 - i32.load offset=8 - i32.ge_u + i32.ne if - i32.const 1360 - i32.const 1632 - i32.const 159 - i32.const 45 + i32.const 0 + i32.const 1568 + i32.const 83 + i32.const 3 call $~lib/builtins/abort unreachable end - local.get $1 local.get $0 - i32.load offset=4 - i32.add - i32.load8_u - ) - (func $~lib/typedarray/Int16Array#__get (param $0 i32) (param $1 i32) (result i32) local.get $1 - local.get $0 i32.load offset=8 - i32.const 1 + i32.const 3 i32.shr_u - i32.ge_u + i32.ne if - i32.const 1360 - i32.const 1632 - i32.const 429 - i32.const 64 + i32.const 0 + i32.const 1568 + i32.const 84 + i32.const 3 call $~lib/builtins/abort unreachable end - local.get $0 - i32.load offset=4 - local.get $1 - i32.const 1 - i32.shl + global.get $~lib/memory/__stack_pointer + i32.const 44 i32.add - i32.load16_s + global.set $~lib/memory/__stack_pointer ) - (func $~lib/typedarray/Uint16Array#__get (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Int32Array#__set (param $0 i32) (param $1 i32) (param $2 i32) local.get $1 local.get $0 i32.load offset=8 - i32.const 1 + i32.const 2 i32.shr_u i32.ge_u if i32.const 1360 i32.const 1632 - i32.const 564 + i32.const 710 i32.const 64 call $~lib/builtins/abort unreachable @@ -3647,12 +2930,13 @@ local.get $0 i32.load offset=4 local.get $1 - i32.const 1 + i32.const 2 i32.shl i32.add - i32.load16_u + local.get $2 + i32.store ) - (func $~lib/typedarray/Uint32Array#__get (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Int32Array#__get (param $0 i32) (param $1 i32) (result i32) local.get $1 local.get $0 i32.load offset=8 @@ -3662,7 +2946,7 @@ if i32.const 1360 i32.const 1632 - i32.const 834 + i32.const 699 i32.const 64 call $~lib/builtins/abort unreachable @@ -3675,12 +2959,7 @@ i32.add i32.load ) - (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 $~lib/typedarray/Int64Array#__get (param $0 i32) (param $1 i32) (result i64) + (func $~lib/typedarray/Float64Array#__set (param $0 i32) (param $1 i32) (param $2 f64) local.get $1 local.get $0 i32.load offset=8 @@ -3690,7 +2969,7 @@ if i32.const 1360 i32.const 1632 - i32.const 969 + i32.const 1385 i32.const 64 call $~lib/builtins/abort unreachable @@ -3701,2084 +2980,1417 @@ i32.const 3 i32.shl i32.add - i64.load + local.get $2 + f64.store ) - (func $~lib/typedarray/Uint64Array#__get (param $0 i32) (param $1 i32) (result i64) - 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 1104 - i32.const 64 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load offset=4 + (func $~lib/util/sort/weakHeapSort (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 f64) + (local $6 i32) + (local $7 f64) + (local $8 i32) local.get $1 - i32.const 3 - i32.shl + i32.const 31 i32.add - i64.load - ) - (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 $~lib/typedarray/Float32Array#__get (param $0 i32) (param $1 i32) (result f32) - local.get $1 - local.get $0 - i32.load offset=8 - i32.const 2 + i32.const 5 i32.shr_u - i32.ge_u - if - i32.const 1360 - i32.const 1632 - i32.const 1239 - i32.const 64 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load offset=4 - local.get $1 i32.const 2 i32.shl - i32.add - f32.load - ) - (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.const 24 - i32.shl - i32.const 24 - i32.shr_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) - local.get $1 - local.get $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 $1 - i32.store offset=16 - local.get $0 - return - end - local.get $1 - local.get $2 - i32.load offset=12 - call $~lib/rt/itcms/__new local.tee $3 - local.get $0 - local.get $1 - local.get $2 - i32.load offset=16 - local.tee $0 - local.get $0 - local.get $1 - i32.gt_u - select - call $~lib/memory/memory.copy + call $~lib/rt/tlsf/__alloc + local.tee $6 + i32.const 0 local.get $3 - ) - (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) - local.get $0 - i32.const 16 - i32.shl - i32.const 16 - i32.shr_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) - 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) - 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) - 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) - 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) - 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) - 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) - 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) - 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) - 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) - 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) - 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) - 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) - 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) - 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) - 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) - 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) - 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) - 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) - 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 - 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) - 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) - 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) - 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) - 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) - 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) - local.get $0 - i32.const 24 - i32.shl - i32.const 24 - i32.shr_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) - 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) - local.get $0 - i32.const 16 - i32.shl - i32.const 16 - i32.shr_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) - local.get $0 - i64.const 1 - i64.and - i64.eqz - ) - (func $~lib/math/NativeMathf.mod (param $0 f32) (result f32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - local.get $0 - i32.reinterpret_f32 - local.tee $1 - i32.const -2147483648 - i32.and - local.set $4 - local.get $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 - return - end + call $~lib/memory/memory.fill local.get $1 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 - return - end - 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 - block $folding-inner0 - loop $while-continue|0 + i32.sub + local.set $4 + loop $for-loop|0 + local.get $4 + i32.const 0 + i32.gt_s + if + local.get $4 + local.set $3 + loop $while-continue|1 + local.get $3 + i32.const 1 + i32.and + local.get $6 + local.get $3 + i32.const 6 + i32.shr_u + i32.const 2 + i32.shl + i32.add + i32.load + local.get $3 + i32.const 1 + i32.shr_s + i32.shr_u + i32.const 1 + i32.and + i32.eq + if + local.get $3 + i32.const 1 + i32.shr_s + local.set $3 + br $while-continue|1 + end + end + local.get $0 + local.get $3 + i32.const 1 + i32.shr_s + local.tee $3 + i32.const 3 + i32.shl + i32.add + f64.load + local.set $5 + local.get $0 + local.get $4 + i32.const 3 + i32.shl + i32.add + f64.load + local.set $7 + i32.const 2 + global.set $~argumentsLength + local.get $5 + local.get $7 local.get $2 - i32.const 128 - i32.gt_s + i32.load + call_indirect (type $f64_f64_=>_i32) + i32.const 0 + i32.lt_s if - local.get $1 - i32.const 8388608 - i32.ge_u - if (result i32) - local.get $1 - i32.const 8388608 - i32.eq - br_if $folding-inner0 - local.get $1 - i32.const 8388608 - i32.sub - else - local.get $1 - end - i32.const 1 + local.get $6 + local.get $4 + i32.const 5 + i32.shr_u + i32.const 2 i32.shl - local.set $1 - local.get $2 + i32.add + local.tee $8 + local.get $8 + i32.load i32.const 1 - i32.sub - local.set $2 - br $while-continue|0 + local.get $4 + i32.shl + i32.xor + i32.store + local.get $0 + local.get $4 + i32.const 3 + i32.shl + i32.add + local.get $5 + f64.store + local.get $0 + local.get $3 + i32.const 3 + i32.shl + i32.add + local.get $7 + f64.store end - end - local.get $1 - i32.const 8388608 - i32.ge_u - if - local.get $1 - i32.const 8388608 - i32.eq - br_if $folding-inner0 - local.get $1 - i32.const 8388608 + local.get $4 + i32.const 1 i32.sub - local.set $1 + local.set $4 + br $for-loop|0 end - local.get $1 - local.get $1 - i32.const 8 - i32.shl - i32.clz - local.tee $3 - i32.shl - local.set $1 - local.get $2 - local.get $3 - i32.sub - local.tee $2 - i32.const 0 - i32.gt_s - if (result i32) - local.get $1 - i32.const 8388608 - i32.sub - local.get $2 - i32.const 23 + end + local.get $1 + i32.const 1 + i32.sub + local.set $4 + loop $for-loop|2 + local.get $4 + i32.const 2 + i32.ge_s + if + local.get $0 + f64.load + local.set $5 + local.get $0 + local.get $0 + local.get $4 + i32.const 3 i32.shl - i32.or - else + i32.add + local.tee $1 + f64.load + f64.store local.get $1 + local.get $5 + f64.store + i32.const 1 + local.set $1 + loop $while-continue|3 + local.get $4 + local.get $6 + local.get $1 + i32.const 5 + i32.shr_u + i32.const 2 + i32.shl + i32.add + i32.load + local.get $1 + i32.shr_u + i32.const 1 + i32.and + local.get $1 + i32.const 1 + i32.shl + i32.add + local.tee $3 + i32.gt_s + if + local.get $3 + local.set $1 + br $while-continue|3 + end + end + loop $while-continue|4 + local.get $1 + i32.const 0 + i32.gt_s + if + local.get $0 + f64.load + local.set $5 + local.get $0 + local.get $1 + i32.const 3 + i32.shl + i32.add + f64.load + local.set $7 + i32.const 2 + global.set $~argumentsLength + local.get $5 + local.get $7 + local.get $2 + i32.load + call_indirect (type $f64_f64_=>_i32) + i32.const 0 + i32.lt_s + if + local.get $6 + local.get $1 + i32.const 5 + i32.shr_u + i32.const 2 + i32.shl + i32.add + local.tee $3 + local.get $3 + i32.load + i32.const 1 + local.get $1 + i32.shl + i32.xor + i32.store + local.get $0 + local.get $1 + i32.const 3 + i32.shl + i32.add + local.get $5 + f64.store + local.get $0 + local.get $7 + f64.store + end + local.get $1 + i32.const 1 + i32.shr_s + local.set $1 + br $while-continue|4 + end + end + local.get $4 i32.const 1 - local.get $2 i32.sub - i32.shr_u + local.set $4 + br $for-loop|2 end - local.get $4 - i32.or - f32.reinterpret_i32 - return end + local.get $6 + call $~lib/rt/tlsf/__free local.get $0 - f32.const 0 - f32.mul - ) - (func $std/typedarray/testArrayEvery<~lib/typedarray/Float32Array,f32>~anonymous|0 (param $0 f32) (param $1 i32) (param $2 i32) (result i32) + f64.load offset=8 + local.set $5 local.get $0 - call $~lib/math/NativeMathf.mod - f32.const 0 - f32.eq - ) - (func $~lib/math/NativeMath.mod (param $0 f64) (result f64) - (local $1 i64) - (local $2 i64) - (local $3 i64) - (local $4 i64) local.get $0 - i64.reinterpret_f64 - local.tee $1 - i64.const 63 - i64.shr_u - local.set $4 - local.get $1 - i64.const 52 - i64.shr_u - i64.const 2047 - i64.and - local.tee $2 - i64.const 2047 - i64.eq - if - local.get $0 - local.get $0 - f64.add - local.tee $0 + f64.load + f64.store offset=8 + local.get $0 + local.get $5 + f64.store + ) + (func $~lib/typedarray/Float64Array#sort (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 f64) + (local $5 f64) + (local $6 i32) + (local $7 i32) + block $~lib/typedarray/SORT<~lib/typedarray/Float64Array,f64>|inlined.0 local.get $0 - f64.div - return - end - local.get $1 - i64.const 1 - i64.shl - local.tee $3 - i64.const -9223372036854775808 - i64.le_u - if + i32.load offset=8 + i32.const 3 + i32.shr_u + local.tee $7 + i32.const 1 + i32.le_u + br_if $~lib/typedarray/SORT<~lib/typedarray/Float64Array,f64>|inlined.0 local.get $0 - local.get $3 - i64.const -9223372036854775808 - i64.ne - f64.convert_i32_u - f64.mul - return - end - local.get $2 - i64.eqz - if (result i64) - local.get $1 - i64.const 1 - local.get $2 - local.get $1 - i64.const 12 - i64.shl - i64.clz - i64.sub - local.tee $2 - i64.sub - i64.shl - else - local.get $1 - i64.const 4503599627370495 - i64.and - i64.const 4503599627370496 - i64.or - end - local.set $1 - block $folding-inner0 - loop $while-continue|0 - local.get $2 - i64.const 1024 - i64.gt_s + i32.load offset=4 + local.set $3 + local.get $7 + i32.const 2 + i32.eq + if + local.get $3 + f64.load offset=8 + local.set $4 + local.get $3 + f64.load + local.set $5 + i32.const 2 + global.set $~argumentsLength + local.get $4 + local.get $5 + local.get $1 + i32.load + call_indirect (type $f64_f64_=>_i32) + i32.const 0 + i32.lt_s if - local.get $1 - i64.const 4503599627370496 - i64.ge_u - if (result i64) - local.get $1 - i64.const 4503599627370496 - i64.eq - br_if $folding-inner0 - local.get $1 - i64.const 4503599627370496 - i64.sub - else - local.get $1 - end - i64.const 1 - i64.shl - local.set $1 - local.get $2 - i64.const 1 - i64.sub - local.set $2 - br $while-continue|0 + local.get $3 + local.get $5 + f64.store offset=8 + local.get $3 + local.get $4 + f64.store end + br $~lib/typedarray/SORT<~lib/typedarray/Float64Array,f64>|inlined.0 end - local.get $1 - i64.const 4503599627370496 - i64.ge_u + local.get $7 + i32.const 256 + i32.lt_u if local.get $1 - i64.const 4503599627370496 - i64.eq - br_if $folding-inner0 - local.get $1 - i64.const 4503599627370496 - i64.sub - local.set $1 - end - local.get $1 - local.get $1 - i64.const 11 - i64.shl - i64.clz - local.tee $3 - i64.shl - local.set $1 - local.get $2 - local.get $3 - i64.sub - local.tee $2 - i64.const 0 - i64.gt_s - if (result i64) - local.get $1 - i64.const 4503599627370496 - i64.sub - local.get $2 - i64.const 52 - i64.shl - i64.or + local.set $2 + loop $for-loop|0 + local.get $6 + local.get $7 + i32.lt_s + if + local.get $3 + local.get $6 + i32.const 3 + i32.shl + i32.add + f64.load + local.set $4 + local.get $6 + i32.const 1 + i32.sub + local.set $1 + loop $while-continue|1 + local.get $1 + i32.const 0 + i32.ge_s + if + block $while-break|1 + local.get $3 + local.get $1 + i32.const 3 + i32.shl + i32.add + f64.load + local.set $5 + i32.const 2 + global.set $~argumentsLength + local.get $4 + local.get $5 + local.get $2 + i32.load + call_indirect (type $f64_f64_=>_i32) + i32.const 0 + i32.ge_s + br_if $while-break|1 + local.get $1 + local.tee $0 + i32.const 1 + i32.sub + local.set $1 + local.get $3 + local.get $0 + i32.const 1 + i32.add + i32.const 3 + i32.shl + i32.add + local.get $5 + f64.store + br $while-continue|1 + end + end + end + local.get $3 + local.get $1 + i32.const 1 + i32.add + i32.const 3 + i32.shl + i32.add + local.get $4 + f64.store + local.get $6 + i32.const 1 + i32.add + local.set $6 + br $for-loop|0 + end + end else + local.get $3 + local.get $7 local.get $1 - i64.const 1 - local.get $2 - i64.sub - i64.shr_u + call $~lib/util/sort/weakHeapSort end - local.get $4 - i64.const 63 - i64.shl - i64.or - f64.reinterpret_i64 - return end - local.get $0 - f64.const 0 - f64.mul ) - (func $std/typedarray/testArrayEvery<~lib/typedarray/Float64Array,f64>~anonymous|0 (param $0 f64) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/util/sort/COMPARATOR~anonymous|0 (param $0 f64) (param $1 f64) (result i32) + (local $2 i64) + (local $3 i64) local.get $0 - call $~lib/math/NativeMath.mod - f64.const 0 - f64.eq + i64.reinterpret_f64 + local.tee $2 + local.get $2 + i64.const 63 + i64.shr_s + i64.const 1 + i64.shr_u + i64.xor + local.tee $2 + local.get $1 + i64.reinterpret_f64 + local.tee $3 + local.get $3 + i64.const 63 + i64.shr_s + i64.const 1 + i64.shr_u + i64.xor + local.tee $3 + i64.gt_s + local.get $2 + local.get $3 + i64.lt_s + i32.sub ) - (func $~lib/util/number/decimalCount32 (param $0 i32) (result i32) + (func $~lib/typedarray/Float64Array#__get (param $0 i32) (param $1 i32) (result f64) + local.get $1 local.get $0 - i32.const 10 + i32.load offset=8 + i32.const 3 + i32.shr_u i32.ge_u - i32.const 1 - i32.add + if + i32.const 1360 + i32.const 1632 + i32.const 1374 + i32.const 64 + call $~lib/builtins/abort + unreachable + end local.get $0 - i32.const 10000 - i32.ge_u + i32.load offset=4 + local.get $1 i32.const 3 + i32.shl i32.add + f64.load + ) + (func $~lib/typedarray/Uint8ClampedArray#__set (param $0 i32) (param $1 i32) (param $2 i32) + local.get $1 local.get $0 - i32.const 1000 + i32.load offset=8 i32.ge_u - i32.add - local.get $0 - i32.const 100 - i32.lt_u - select + if + i32.const 1360 + i32.const 1632 + i32.const 305 + i32.const 45 + call $~lib/builtins/abort + unreachable + end + local.get $1 local.get $0 - i32.const 1000000 - i32.ge_u - i32.const 6 + i32.load offset=4 i32.add + local.get $2 + i32.const 255 + local.get $2 + i32.sub + i32.const 31 + i32.shr_s + i32.or + local.get $2 + i32.const 31 + i32.shr_s + i32.const -1 + i32.xor + i32.and + i32.store8 + ) + (func $~lib/typedarray/Uint8ClampedArray#__get (param $0 i32) (param $1 i32) (result i32) + local.get $1 local.get $0 - i32.const 1000000000 + i32.load offset=8 i32.ge_u - i32.const 8 + if + i32.const 1360 + i32.const 1632 + i32.const 294 + i32.const 45 + call $~lib/builtins/abort + unreachable + end + local.get $1 + local.get $0 + i32.load offset=4 i32.add + i32.load8_u + ) + (func $~lib/typedarray/Int8Array#__set (param $0 i32) (param $1 i32) (param $2 i32) + local.get $1 local.get $0 - i32.const 100000000 + i32.load offset=8 i32.ge_u + if + i32.const 1360 + i32.const 1632 + i32.const 35 + i32.const 45 + call $~lib/builtins/abort + unreachable + end + local.get $1 + local.get $0 + i32.load offset=4 i32.add + local.get $2 + i32.store8 + ) + (func $~lib/typedarray/Int8Array#fill (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) + (local $4 i32) + (local $5 i32) local.get $0 - i32.const 10000000 - i32.lt_u - select + i32.load offset=4 + local.set $5 local.get $0 - i32.const 100000 - i32.lt_u - select - ) - (func $~lib/util/number/utoa_dec_simple (param $0 i32) (param $1 i32) (param $2 i32) - loop $do-continue|0 - local.get $0 + i32.load offset=8 + local.set $4 + local.get $2 + i32.const 0 + i32.lt_s + if (result i32) local.get $2 - i32.const 1 - i32.sub - local.tee $2 - i32.const 1 - i32.shl - i32.add - local.get $1 - i32.const 10 - i32.rem_u - i32.const 48 + local.get $4 i32.add - i32.store16 - local.get $1 - i32.const 10 - i32.div_u - local.tee $1 - br_if $do-continue|0 + 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 - ) - (func $~lib/util/number/itoa_buffered (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - local.get $1 - i32.const 24 - i32.shl - i32.const 24 - i32.shr_s + local.tee $0 + local.get $3 i32.const 0 i32.lt_s - local.tee $2 - if - local.get $0 - i32.const 45 - i32.store16 + if (result i32) + local.get $3 + local.get $4 + i32.add + local.tee $2 i32.const 0 - local.get $1 - i32.sub - local.set $1 + local.get $2 + i32.const 0 + i32.gt_s + select + else + local.get $3 + local.get $4 + local.get $3 + local.get $4 + i32.lt_s + select end - local.get $1 - i32.const 24 - i32.shl - i32.const 24 - i32.shr_s - i32.const 10 - i32.lt_u + local.tee $2 + i32.lt_s if local.get $0 - local.get $2 - i32.const 1 - i32.shl + local.get $5 i32.add local.get $1 - i32.const 24 - i32.shl - i32.const 24 - i32.shr_s - i32.const 48 - i32.or - i32.store16 local.get $2 - i32.const 1 - i32.add - return + local.get $0 + i32.sub + call $~lib/memory/memory.fill end - local.get $2 - local.get $1 - i32.const 24 - i32.shl - i32.const 24 - i32.shr_s - local.tee $2 - call $~lib/util/number/decimalCount32 - i32.add - local.set $1 - local.get $0 - local.get $2 - local.get $1 - call $~lib/util/number/utoa_dec_simple - local.get $1 ) - (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 - i32.const 10 - i32.lt_u - if + (func $~lib/memory/memory.copy (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + block $~lib/util/memory/memmove|inlined.0 + local.get $2 + local.set $4 local.get $0 local.get $1 - i32.const 255 - i32.and - i32.const 48 - i32.or - i32.store16 - i32.const 1 - return - end - local.get $1 - i32.const 255 - i32.and - local.tee $2 - call $~lib/util/number/decimalCount32 - local.set $1 - local.get $0 - local.get $2 - local.get $1 - call $~lib/util/number/utoa_dec_simple - local.get $1 - ) - (func $~lib/util/number/itoa_buffered (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - local.get $1 - i32.const 16 - i32.shl - i32.const 16 - i32.shr_s - i32.const 0 - i32.lt_s - local.tee $2 - if + i32.eq + br_if $~lib/util/memory/memmove|inlined.0 local.get $0 - i32.const 45 - i32.store16 - i32.const 0 local.get $1 - i32.sub - local.set $1 + i32.lt_u + if + local.get $1 + i32.const 7 + i32.and + local.get $0 + i32.const 7 + i32.and + i32.eq + if + loop $while-continue|0 + local.get $0 + i32.const 7 + i32.and + if + local.get $4 + i32.eqz + br_if $~lib/util/memory/memmove|inlined.0 + local.get $4 + i32.const 1 + i32.sub + local.set $4 + local.get $0 + local.tee $2 + i32.const 1 + i32.add + local.set $0 + local.get $1 + local.tee $3 + i32.const 1 + i32.add + local.set $1 + local.get $2 + local.get $3 + i32.load8_u + i32.store8 + br $while-continue|0 + end + end + loop $while-continue|1 + local.get $4 + i32.const 8 + i32.ge_u + if + local.get $0 + local.get $1 + i64.load + i64.store + local.get $4 + i32.const 8 + i32.sub + local.set $4 + local.get $0 + i32.const 8 + i32.add + local.set $0 + local.get $1 + i32.const 8 + i32.add + local.set $1 + br $while-continue|1 + end + end + end + loop $while-continue|2 + local.get $4 + if + local.get $0 + local.tee $2 + i32.const 1 + i32.add + local.set $0 + local.get $1 + local.tee $3 + i32.const 1 + i32.add + local.set $1 + local.get $2 + local.get $3 + i32.load8_u + i32.store8 + local.get $4 + i32.const 1 + i32.sub + local.set $4 + br $while-continue|2 + end + end + else + local.get $1 + i32.const 7 + i32.and + local.get $0 + i32.const 7 + i32.and + i32.eq + if + loop $while-continue|3 + local.get $0 + local.get $4 + i32.add + i32.const 7 + i32.and + if + local.get $4 + i32.eqz + br_if $~lib/util/memory/memmove|inlined.0 + local.get $4 + i32.const 1 + i32.sub + local.tee $4 + local.get $0 + i32.add + local.get $1 + local.get $4 + i32.add + i32.load8_u + i32.store8 + br $while-continue|3 + end + end + loop $while-continue|4 + local.get $4 + i32.const 8 + i32.ge_u + if + local.get $4 + i32.const 8 + i32.sub + local.tee $4 + local.get $0 + i32.add + local.get $1 + local.get $4 + i32.add + i64.load + i64.store + br $while-continue|4 + end + end + end + loop $while-continue|5 + local.get $4 + if + local.get $4 + i32.const 1 + i32.sub + local.tee $4 + local.get $0 + i32.add + local.get $1 + local.get $4 + i32.add + i32.load8_u + i32.store8 + br $while-continue|5 + end + end + end end + ) + (func $~lib/typedarray/Int8Array#__get (param $0 i32) (param $1 i32) (result i32) local.get $1 - i32.const 16 - i32.shl - i32.const 16 - i32.shr_s - i32.const 10 - i32.lt_u + local.get $0 + i32.load offset=8 + i32.ge_u if - local.get $0 - local.get $2 - i32.const 1 - i32.shl - i32.add - local.get $1 - i32.const 16 - i32.shl - i32.const 16 - i32.shr_s - i32.const 48 - i32.or - i32.store16 - local.get $2 - i32.const 1 - i32.add - return + i32.const 1360 + i32.const 1632 + i32.const 24 + i32.const 45 + call $~lib/builtins/abort + unreachable end - local.get $2 local.get $1 - i32.const 16 - i32.shl - i32.const 16 - i32.shr_s - local.tee $2 - call $~lib/util/number/decimalCount32 - i32.add - local.set $1 local.get $0 - local.get $2 - local.get $1 - call $~lib/util/number/utoa_dec_simple - local.get $1 + i32.load offset=4 + i32.add + i32.load8_s ) - (func $~lib/util/number/itoa_buffered (param $0 i32) (param $1 i32) (result i32) + (func $std/typedarray/isInt8ArrayEqual (param $0 i32) (param $1 i32) (result i32) (local $2 i32) + (local $3 i32) + (local $4 i32) + local.get $0 + i32.load offset=8 local.get $1 - i32.const 65535 - i32.and - i32.const 10 - i32.lt_u + i32.load offset=12 + i32.ne if - local.get $0 - local.get $1 - i32.const 65535 - i32.and - i32.const 48 - i32.or - i32.store16 - i32.const 1 + i32.const 0 return end - local.get $1 - i32.const 65535 - i32.and - local.tee $2 - call $~lib/util/number/decimalCount32 - local.set $1 local.get $0 - local.get $2 - local.get $1 - call $~lib/util/number/utoa_dec_simple - local.get $1 + i32.load offset=8 + local.set $3 + loop $for-loop|0 + local.get $2 + local.get $3 + i32.lt_s + if + local.get $0 + local.get $2 + call $~lib/typedarray/Int8Array#__get + local.get $2 + local.get $1 + i32.load offset=12 + i32.ge_u + if + i32.const 1360 + i32.const 1760 + i32.const 92 + i32.const 42 + call $~lib/builtins/abort + unreachable + end + local.get $2 + local.get $1 + i32.load offset=4 + i32.add + i32.load8_s + i32.ne + if + i32.const 0 + return + end + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|0 + end + end + i32.const 1 ) - (func $~lib/util/number/itoa_buffered (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) + (func $~lib/typedarray/Int32Array#fill (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) + (local $4 i32) + (local $5 i32) local.get $1 + local.set $4 + local.get $0 + i32.load offset=4 + local.set $5 + local.get $0 + i32.load offset=8 + i32.const 2 + i32.shr_u + local.set $1 + local.get $2 i32.const 0 i32.lt_s - local.tee $2 - if - local.get $0 - i32.const 45 - i32.store16 - i32.const 0 + if (result i32) local.get $1 - i32.sub - local.set $1 - end - local.get $1 - i32.const 10 - i32.lt_u - if - local.get $0 local.get $2 - i32.const 1 - i32.shl i32.add + local.tee $0 + i32.const 0 + local.get $0 + i32.const 0 + i32.gt_s + select + else + local.get $2 + local.get $1 local.get $1 - i32.const 48 - i32.or - i32.store16 local.get $2 - i32.const 1 + i32.gt_s + select + end + local.set $0 + local.get $3 + i32.const 0 + i32.lt_s + if (result i32) + local.get $1 + local.get $3 i32.add - return + local.tee $1 + i32.const 0 + local.get $1 + i32.const 0 + i32.gt_s + select + else + local.get $3 + local.get $1 + local.get $1 + local.get $3 + i32.gt_s + select end - local.get $0 - local.get $1 - local.get $1 - call $~lib/util/number/decimalCount32 - local.get $2 - i32.add - local.tee $0 - call $~lib/util/number/utoa_dec_simple - 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.set $1 + loop $for-loop|0 local.get $0 local.get $1 - i32.const 48 - i32.or - i32.store16 - i32.const 1 - return + i32.lt_s + if + local.get $5 + local.get $0 + i32.const 2 + i32.shl + i32.add + local.get $4 + i32.store + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|0 + end end - local.get $0 - local.get $1 - local.get $1 - call $~lib/util/number/decimalCount32 - local.tee $0 - call $~lib/util/number/utoa_dec_simple - local.get $0 ) - (func $~lib/util/number/decimalCount64High (param $0 i64) (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 - 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 - local.get $0 - i64.const 1000000000000 - i64.lt_u - select - local.get $0 - i64.const 10000000000000000 - i64.ge_u - i32.const 16 - i32.add + (func $~lib/array/Array#__get (param $0 i32) (param $1 i32) (result i32) + local.get $1 local.get $0 - i64.const -8446744073709551616 - i64.ge_u - i32.const 18 - i32.add + i32.load offset=12 + i32.ge_u + if + i32.const 1360 + i32.const 1760 + i32.const 92 + i32.const 42 + call $~lib/builtins/abort + unreachable + end local.get $0 - i64.const 1000000000000000000 - i64.ge_u + i32.load offset=4 + local.get $1 + i32.const 2 + i32.shl i32.add - local.get $0 - i64.const 100000000000000000 - i64.lt_u - select - local.get $0 - i64.const 1000000000000000 - i64.lt_u - select - ) - (func $~lib/util/number/utoa_dec_simple (param $0 i32) (param $1 i64) (param $2 i32) - loop $do-continue|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 - i64.const 10 - i64.rem_u - i32.wrap_i64 - i32.const 48 - i32.add - i32.store16 - local.get $1 - i64.const 10 - i64.div_u - local.tee $1 - i64.const 0 - i64.ne - br_if $do-continue|0 - end + i32.load ) - (func $~lib/util/number/itoa_buffered (param $0 i32) (param $1 i64) (result i32) + (func $std/typedarray/isInt32ArrayEqual (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) local.get $1 - i64.const 0 - i64.lt_s - local.tee $2 - if - local.get $0 - i32.const 45 - i32.store16 - i64.const 0 - local.get $1 - i64.sub - local.set $1 - end - local.get $1 - i64.const 10 - i64.lt_u + i32.load offset=12 + local.get $0 + i32.load offset=8 + i32.const 2 + i32.shr_u + i32.ne if - local.get $0 - local.get $2 - i32.const 1 - i32.shl - i32.add - local.get $1 - i64.const 48 - i64.or - i64.store16 - local.get $2 - i32.const 1 - i32.add + i32.const 0 return end - local.get $1 - i64.const 4294967295 - i64.le_u - if - local.get $1 - i32.wrap_i64 - local.tee $3 - call $~lib/util/number/decimalCount32 + local.get $0 + i32.load offset=8 + 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 + call $~lib/typedarray/Int32Array#__get + local.get $1 + local.get $2 + call $~lib/array/Array#__get + i32.ne + if + i32.const 0 + return + end + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|0 + end + end + i32.const 1 + ) + (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) + (local $6 i32) + local.get $3 + local.get $0 + i32.load offset=8 + i32.const 2 + i32.shr_u + local.tee $4 + local.get $3 + local.get $4 + i32.lt_s + select + local.set $5 + local.get $0 + local.tee $3 + i32.load offset=4 + local.tee $6 + local.get $1 + i32.const 0 + i32.lt_s + if (result i32) + local.get $1 + local.get $4 i32.add - local.set $2 + local.tee $0 + i32.const 0 local.get $0 - local.get $3 - local.get $2 - call $~lib/util/number/utoa_dec_simple + i32.const 0 + i32.gt_s + select else - local.get $0 local.get $1 + local.get $4 local.get $1 - call $~lib/util/number/decimalCount64High + local.get $4 + i32.lt_s + select + end + local.tee $1 + i32.const 2 + i32.shl + i32.add + local.get $6 + 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.tee $0 + 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 $2 - call $~lib/util/number/utoa_dec_simple + i32.const 0 + local.get $2 + 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 $0 + i32.sub + local.tee $2 + local.get $4 + local.get $1 + i32.sub + local.tee $0 + local.get $0 local.get $2 + i32.gt_s + select + i32.const 2 + i32.shl + call $~lib/memory/memory.copy + local.get $3 ) - (func $~lib/util/number/itoa_buffered (param $0 i32) (param $1 i64) (result i32) - (local $2 i32) - (local $3 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 - i64.const 10 - i64.lt_u - if - local.get $0 - local.get $1 - i64.const 48 - i64.or - i64.store16 - i32.const 1 - return - end + i32.add + ) + (func $~lib/typedarray/Uint8Array#__set (param $0 i32) (param $1 i32) (param $2 i32) local.get $1 - i64.const 4294967295 - i64.le_u + local.get $0 + i32.load offset=8 + i32.ge_u if - local.get $1 - i32.wrap_i64 - local.tee $3 - call $~lib/util/number/decimalCount32 - local.set $2 - local.get $0 - local.get $3 - local.get $2 - call $~lib/util/number/utoa_dec_simple - else - local.get $0 - local.get $1 - local.get $1 - call $~lib/util/number/decimalCount64High - local.tee $2 - call $~lib/util/number/utoa_dec_simple + i32.const 1360 + i32.const 1632 + i32.const 170 + i32.const 45 + call $~lib/builtins/abort + unreachable end + local.get $1 + local.get $0 + i32.load offset=4 + i32.add local.get $2 + i32.store8 ) - (func $~lib/util/number/genDigits (param $0 i32) (param $1 i64) (param $2 i32) (param $3 i64) (param $4 i32) (param $5 i64) (param $6 i32) (result i32) - (local $7 i64) - (local $8 i64) - (local $9 i32) - (local $10 i64) - (local $11 i32) - (local $12 i64) - (local $13 i64) - local.get $3 - local.get $1 - i64.sub - local.set $8 - local.get $3 - i64.const 1 - i32.const 0 - local.get $4 - i32.sub - local.tee $11 - i64.extend_i32_s - i64.shl - local.tee $10 - i64.const 1 - i64.sub - local.tee $12 - i64.and - local.set $7 - local.get $3 - local.get $11 - i64.extend_i32_s - i64.shr_u - i32.wrap_i64 - local.tee $2 - call $~lib/util/number/decimalCount32 - local.set $9 - loop $while-continue|0 - local.get $9 - i32.const 0 - i32.gt_s + (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) + local.get $0 + i32.load offset=4 + local.set $4 + local.get $0 + i32.load offset=8 + local.set $5 + loop $for-loop|0 + local.get $2 + local.get $5 + i32.lt_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 $9 - 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 $4 - 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 $4 - 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 $4 - 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 $4 - 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 $4 - 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 $4 - 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 $4 - 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 $4 - 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 $4 - local.get $2 - i32.const 10 - i32.rem_u - local.set $2 - br $break|1 - end - local.get $2 - local.set $4 - i32.const 0 - local.set $2 - br $break|1 - end - i32.const 0 - local.set $4 - end + local.get $2 local.get $4 + i32.add + i32.load8_u + local.set $6 + i32.const 4 + global.set $~argumentsLength + local.get $3 local.get $6 - i32.or - if - local.get $0 - local.get $6 - i32.const 1 - i32.shl - i32.add - local.get $4 - i32.const 65535 - i32.and - i32.const 48 - i32.add - i32.store16 - local.get $6 - i32.const 1 - i32.add - local.set $6 - end - local.get $9 - i32.const 1 - i32.sub - local.set $9 - local.get $5 - local.get $7 local.get $2 - i64.extend_i32_u - local.get $11 - i64.extend_i32_s - i64.shl - i64.add - local.tee $1 - i64.ge_u - if - local.get $9 - global.get $~lib/util/number/_K - i32.add - global.set $~lib/util/number/_K - local.get $9 - i32.const 2 - i32.shl - i32.const 8576 - i32.add - i64.load32_u - local.get $11 - i64.extend_i32_s - i64.shl - local.set $10 - local.get $0 - local.get $6 - i32.const 1 - i32.sub - i32.const 1 - i32.shl - i32.add - local.tee $0 - i32.load16_u - local.set $2 - loop $while-continue|3 - i32.const 1 - local.get $8 - local.get $1 - i64.sub - local.get $1 - local.get $10 - i64.add - local.tee $3 - local.get $8 - i64.sub - i64.gt_u - local.get $3 - local.get $8 - i64.lt_u - select - i32.const 0 - local.get $10 - local.get $5 - local.get $1 - i64.sub - i64.le_u - i32.const 0 - local.get $1 - local.get $8 - i64.lt_u - select - select - if - local.get $2 - i32.const 1 - i32.sub - local.set $2 - local.get $1 - local.get $10 - i64.add - local.set $1 - br $while-continue|3 - end - end - local.get $0 - local.get $2 - i32.store16 - local.get $6 - return - end - br $while-continue|0 - end - end - local.get $11 - i64.extend_i32_s - local.set $13 - loop $while-continue|4 (result i32) - local.get $5 - i64.const 10 - i64.mul - local.set $5 - local.get $7 - i64.const 10 - i64.mul - local.tee $3 - local.get $13 - i64.shr_u - local.tee $1 - local.get $6 - i64.extend_i32_s - i64.or - i64.const 0 - i64.ne - if local.get $0 - local.get $6 - i32.const 1 - i32.shl - i32.add local.get $1 - i32.wrap_i64 - i32.const 65535 - i32.and - i32.const 48 - i32.add - i32.store16 - local.get $6 + i32.load + call_indirect (type $i32_i32_i32_i32_=>_i32) + local.set $3 + local.get $2 i32.const 1 i32.add - local.set $6 + local.set $2 + br $for-loop|0 end - local.get $9 - i32.const 1 - i32.sub - local.set $9 - local.get $3 - local.get $12 - i64.and - local.tee $7 - local.get $5 - i64.ge_u - br_if $while-continue|4 - local.get $9 - global.get $~lib/util/number/_K - i32.add - global.set $~lib/util/number/_K - local.get $7 - local.set $1 - local.get $8 - i32.const 0 - local.get $9 - i32.sub - i32.const 2 - i32.shl - i32.const 8576 - i32.add - i64.load32_u - i64.mul - local.set $8 - local.get $0 - local.get $6 - i32.const 1 - i32.sub - i32.const 1 - i32.shl - i32.add - local.tee $0 - i32.load16_u - local.set $2 - loop $while-continue|6 - i32.const 1 - local.get $8 - local.get $1 - i64.sub - local.get $1 - local.get $10 - i64.add - local.tee $3 - local.get $8 - i64.sub - i64.gt_u - local.get $3 - local.get $8 - i64.lt_u - select - i32.const 0 - local.get $10 - local.get $5 - local.get $1 - i64.sub - i64.le_u - i32.const 0 - local.get $1 - local.get $8 - i64.lt_u - select - select - if - local.get $2 - i32.const 1 - i32.sub - local.set $2 - local.get $1 - local.get $10 - i64.add - local.set $1 - br $while-continue|6 - end - end - local.get $0 - local.get $2 - i32.store16 - local.get $6 end + local.get $3 ) - (func $~lib/util/number/prettify (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (local $3 i32) - local.get $2 - i32.eqz + (func $~lib/typedarray/Int16Array#__set (param $0 i32) (param $1 i32) (param $2 i32) + local.get $1 + local.get $0 + i32.load offset=8 + i32.const 1 + i32.shr_u + i32.ge_u 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 + i32.const 1360 + i32.const 1632 + i32.const 440 + i32.const 64 + call $~lib/builtins/abort + unreachable end + local.get $0 + i32.load offset=4 local.get $1 - local.get $2 + i32.const 1 + i32.shl i32.add - local.tee $3 - i32.const 21 - i32.le_s - i32.const 0 - local.get $1 - local.get $3 - i32.le_s - select - 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 - i32.const 0 - local.get $3 - i32.const 0 - i32.gt_s - select - 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 - call $~lib/memory/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 - i32.const 0 - local.get $3 - i32.const -6 - i32.gt_s - select - 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 - call $~lib/memory/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 (result i32) - local.get $0 - i32.const 101 - i32.store16 offset=2 - local.get $0 - local.tee $1 - i32.const 4 - i32.add - 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 - call $~lib/util/number/decimalCount32 - i32.const 1 - i32.add - local.tee $0 - call $~lib/util/number/utoa_dec_simple - local.get $1 - i32.const 45 - i32.const 43 - local.get $2 - select - i32.store16 offset=4 - local.get $0 - i32.const 2 - i32.add - 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 - call $~lib/memory/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 - local.tee $2 - i32.const 4 - i32.add - 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 - call $~lib/util/number/decimalCount32 - i32.const 1 - i32.add - local.tee $0 - call $~lib/util/number/utoa_dec_simple - local.get $2 - i32.const 45 - i32.const 43 - local.get $3 - select - i32.store16 offset=4 - local.get $0 - local.get $1 - i32.add - i32.const 2 - i32.add - end - end - end - end + local.get $2 + i32.store16 ) - (func $~lib/util/number/dtoa_core (param $0 i32) (param $1 f64) (result i32) - (local $2 i64) - (local $3 i64) - (local $4 i32) - (local $5 i64) - (local $6 i64) - (local $7 i64) - (local $8 i32) - (local $9 i32) - (local $10 i32) + (func $~lib/typedarray/Uint16Array#__set (param $0 i32) (param $1 i32) (param $2 i32) local.get $1 - f64.const 0 - f64.lt - local.tee $9 - if (result f64) - local.get $0 - i32.const 45 - i32.store16 - local.get $1 - f64.neg - else - local.get $1 - end - i64.reinterpret_f64 - local.tee $2 - i64.const 9218868437227405312 - i64.and - i64.const 52 - i64.shr_u - i32.wrap_i64 - local.tee $8 - i32.const 0 - i32.ne - i64.extend_i32_u - i64.const 52 - i64.shl - local.get $2 - i64.const 4503599627370495 - i64.and - i64.add - local.tee $3 - i64.const 1 - i64.shl - i64.const 1 - i64.add - local.tee $2 - local.get $2 - i64.clz - i32.wrap_i64 - local.tee $4 - i64.extend_i32_s - i64.shl - global.set $~lib/util/number/_frc_plus - local.get $8 - i32.const 1 - local.get $8 - select - i32.const 1075 - i32.sub - local.tee $8 + local.get $0 + i32.load offset=8 i32.const 1 - i32.sub - local.get $4 - i32.sub - local.set $4 - local.get $3 - local.get $3 - i64.const 4503599627370496 - i64.eq + i32.shr_u + i32.ge_u + if + i32.const 1360 + i32.const 1632 + i32.const 575 + i32.const 64 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=4 + local.get $1 i32.const 1 + i32.shl i32.add - local.tee $10 - i64.extend_i32_s - i64.shl - i64.const 1 - i64.sub - local.get $8 - local.get $10 - 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 $1 - i32.trunc_f64_s - local.tee $4 + local.get $2 + i32.store16 + ) + (func $~lib/typedarray/Uint32Array#__set (param $0 i32) (param $1 i32) (param $2 i32) local.get $1 - local.get $4 - f64.convert_i32_s - f64.ne + 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 845 + i32.const 64 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 2 + i32.shl i32.add + local.get $2 + i32.store + ) + (func $~lib/typedarray/Int64Array#__set (param $0 i32) (param $1 i32) (param $2 i64) + local.get $1 + local.get $0 + i32.load offset=8 i32.const 3 - i32.shr_s - i32.const 1 - i32.add - local.tee $4 + i32.shr_u + i32.ge_u + if + i32.const 1360 + i32.const 1632 + i32.const 980 + i32.const 64 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=4 + local.get $1 i32.const 3 i32.shl - local.tee $10 - i32.sub - global.set $~lib/util/number/_K - local.get $10 - i32.const 7704 - i32.add - i64.load - global.set $~lib/util/number/_frc_pow - local.get $4 - i32.const 1 - i32.shl - i32.const 8400 i32.add - i32.load16_s - global.set $~lib/util/number/_exp_pow - global.get $~lib/util/number/_frc_pow - local.tee $6 - i64.const 4294967295 - i64.and - local.set $2 - local.get $6 - i64.const 32 - i64.shr_u - local.tee $6 - global.get $~lib/util/number/_frc_plus - local.tee $5 - i64.const 32 - i64.shr_u - local.tee $7 - i64.mul local.get $2 - local.get $7 - i64.mul - local.get $2 - local.get $5 - i64.const 4294967295 - i64.and - local.tee $5 - i64.mul - i64.const 32 - i64.shr_u - i64.add - local.tee $7 - i64.const 32 - i64.shr_u - i64.add - local.get $5 - 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.store + ) + (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 - i64.const 1 - i64.sub - local.set $5 + ) + (func $~lib/typedarray/Uint64Array#__set (param $0 i32) (param $1 i32) (param $2 i64) + local.get $1 local.get $0 - local.get $9 - i32.const 1 + i32.load offset=8 + i32.const 3 + i32.shr_u + i32.ge_u + if + i32.const 1360 + i32.const 1632 + i32.const 1115 + i32.const 64 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 3 i32.shl i32.add - local.get $0 - local.get $6 - local.get $3 - local.get $3 - i64.clz - i32.wrap_i64 - local.tee $0 - i64.extend_i32_s - i64.shl - local.tee $3 - i64.const 32 - i64.shr_u - local.tee $7 - i64.mul - local.get $2 - local.get $7 - i64.mul local.get $2 - local.get $3 - i64.const 4294967295 - i64.and - local.tee $3 - i64.mul - i64.const 32 - i64.shr_u - i64.add - local.tee $7 - i64.const 32 - i64.shr_u - i64.add - local.get $3 - 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 - global.get $~lib/util/number/_exp_pow - local.tee $4 - local.get $8 + i64.store + ) + (func $~lib/typedarray/Float32Array#__set (param $0 i32) (param $1 i32) (param $2 f32) + local.get $1 local.get $0 - i32.sub - i32.add - i32.const -64 - i32.sub - local.get $5 - local.get $4 - global.get $~lib/util/number/_exp + i32.load offset=8 + i32.const 2 + i32.shr_u + i32.ge_u + if + i32.const 1360 + i32.const 1632 + i32.const 1250 + i32.const 64 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 2 + i32.shl i32.add - i32.const -64 - i32.sub - local.get $5 - local.get $6 - global.get $~lib/util/number/_frc_minus - local.tee $3 - i64.const 32 - i64.shr_u - local.tee $5 - i64.mul - local.get $2 - local.get $5 - i64.mul local.get $2 - local.get $3 - i64.const 4294967295 - i64.and + f32.store + ) + (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) + local.get $0 + local.get $1 + f64.add + ) + (func $~lib/typedarray/Int8Array#at (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + local.get $1 + i32.const 0 + local.get $0 + i32.load offset=8 local.tee $2 - i64.mul - i64.const 32 - i64.shr_u - i64.add - local.tee $3 - i64.const 32 - i64.shr_u - i64.add + local.get $1 + i32.const 0 + i32.ge_s + select + i32.add + local.tee $1 local.get $2 - local.get $6 - i64.mul - local.get $3 - 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 $9 - call $~lib/util/number/genDigits - local.get $9 - i32.sub - global.get $~lib/util/number/_K - call $~lib/util/number/prettify - local.get $9 + i32.ge_u + if + i32.const 1360 + i32.const 1632 + i32.const 47 + i32.const 33 + call $~lib/builtins/abort + unreachable + end + local.get $1 + local.get $0 + i32.load offset=4 i32.add + i32.load8_s ) - (func $~lib/util/number/dtoa_buffered (param $0 i32) (param $1 f64) (result i32) + (func $~lib/typedarray/Uint8Array#at (param $0 i32) (param $1 i32) (result i32) (local $2 i32) local.get $1 - f64.const 0 - f64.eq + i32.const 0 + local.get $0 + i32.load offset=8 + local.tee $2 + local.get $1 + i32.const 0 + i32.ge_s + select + i32.add + local.tee $1 + local.get $2 + i32.ge_u 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 + i32.const 1360 + i32.const 1632 + i32.const 182 + i32.const 33 + call $~lib/builtins/abort + unreachable end local.get $1 + local.get $0 + i32.load offset=4 + i32.add + i32.load8_u + ) + (func $~lib/typedarray/Uint8ClampedArray#at (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) local.get $1 - f64.sub - f64.const 0 - f64.ne + i32.const 0 + local.get $0 + i32.load offset=8 + local.tee $2 + local.get $1 + i32.const 0 + i32.ge_s + select + i32.add + local.tee $1 + local.get $2 + i32.ge_u 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 - return - 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 - return - end + i32.const 1360 + i32.const 1632 + i32.const 317 + i32.const 33 + call $~lib/builtins/abort unreachable end - local.get $0 local.get $1 - call $~lib/util/number/dtoa_core + local.get $0 + i32.load offset=4 + i32.add + i32.load8_u ) - (func $~lib/typedarray/Uint8Array.wrap@varargs (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Int16Array#at (param $0 i32) (param $1 i32) (result i32) (local $2 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 0 - local.set $1 - end - i32.const -1 - local.set $2 - end + local.get $1 + i32.const 0 local.get $0 + i32.load offset=8 + i32.const 1 + i32.shr_u + local.tee $2 local.get $1 + i32.const 0 + i32.ge_s + select + i32.add + local.tee $1 local.get $2 - call $~lib/typedarray/Uint8Array.wrap - ) - (func $~lib/typedarray/Int16Array#__uget (param $0 i32) (param $1 i32) (result i32) + i32.ge_u + if + i32.const 1360 + i32.const 1632 + i32.const 452 + i32.const 33 + call $~lib/builtins/abort + unreachable + end local.get $0 i32.load offset=4 local.get $1 @@ -5787,7 +4399,31 @@ i32.add i32.load16_s ) - (func $~lib/typedarray/Uint16Array#__uget (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Uint16Array#at (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + local.get $1 + i32.const 0 + local.get $0 + i32.load offset=8 + i32.const 1 + i32.shr_u + local.tee $2 + local.get $1 + i32.const 0 + i32.ge_s + select + i32.add + local.tee $1 + local.get $2 + i32.ge_u + if + i32.const 1360 + i32.const 1632 + i32.const 587 + i32.const 33 + call $~lib/builtins/abort + unreachable + end local.get $0 i32.load offset=4 local.get $1 @@ -5796,7 +4432,31 @@ i32.add i32.load16_u ) - (func $~lib/typedarray/Int32Array#__uget (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Int32Array#at (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + local.get $1 + i32.const 0 + local.get $0 + i32.load offset=8 + i32.const 2 + i32.shr_u + local.tee $2 + local.get $1 + i32.const 0 + i32.ge_s + select + i32.add + local.tee $1 + local.get $2 + i32.ge_u + if + i32.const 1360 + i32.const 1632 + i32.const 722 + i32.const 33 + call $~lib/builtins/abort + unreachable + end local.get $0 i32.load offset=4 local.get $1 @@ -5805,7 +4465,31 @@ i32.add i32.load ) - (func $~lib/typedarray/Uint32Array#__uget (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Uint32Array#at (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + local.get $1 + i32.const 0 + local.get $0 + i32.load offset=8 + i32.const 2 + i32.shr_u + local.tee $2 + local.get $1 + i32.const 0 + i32.ge_s + select + i32.add + local.tee $1 + local.get $2 + i32.ge_u + if + i32.const 1360 + i32.const 1632 + i32.const 857 + i32.const 33 + call $~lib/builtins/abort + unreachable + end local.get $0 i32.load offset=4 local.get $1 @@ -5814,16 +4498,31 @@ i32.add i32.load ) - (func $~lib/typedarray/Int64Array#__uget (param $0 i32) (param $1 i32) (result i64) - local.get $0 - i32.load offset=4 + (func $~lib/typedarray/Int64Array#at (param $0 i32) (param $1 i32) (result i64) + (local $2 i32) local.get $1 + i32.const 0 + local.get $0 + i32.load offset=8 i32.const 3 - i32.shl + i32.shr_u + local.tee $2 + local.get $1 + i32.const 0 + i32.ge_s + select i32.add - i64.load - ) - (func $~lib/typedarray/Uint64Array#__uget (param $0 i32) (param $1 i32) (result i64) + local.tee $1 + local.get $2 + i32.ge_u + if + i32.const 1360 + i32.const 1632 + i32.const 992 + i32.const 33 + call $~lib/builtins/abort + unreachable + end local.get $0 i32.load offset=4 local.get $1 @@ -5832,1559 +4531,1028 @@ i32.add i64.load ) - (func $~lib/typedarray/Float32Array#__uget (param $0 i32) (param $1 i32) (result f32) + (func $~lib/typedarray/Uint64Array#at (param $0 i32) (param $1 i32) (result i64) + (local $2 i32) + local.get $1 + i32.const 0 local.get $0 - i32.load offset=4 + i32.load offset=8 + i32.const 3 + i32.shr_u + local.tee $2 local.get $1 - i32.const 2 - i32.shl + i32.const 0 + i32.ge_s + select i32.add - f32.load - ) - (func $~lib/typedarray/Float64Array#__uget (param $0 i32) (param $1 i32) (result f64) + local.tee $1 + local.get $2 + i32.ge_u + if + i32.const 1360 + i32.const 1632 + i32.const 1127 + i32.const 33 + call $~lib/builtins/abort + unreachable + end local.get $0 i32.load offset=4 local.get $1 i32.const 3 i32.shl i32.add - f64.load + i64.load ) - (func $~lib/rt/__visit_members (param $0 i32) - block $folding-inner3 - block $folding-inner2 - block $folding-inner1 - block $invalid - block $~lib/string/String - block $~lib/arraybuffer/ArrayBuffer - local.get $0 - i32.const 8 - i32.sub - i32.load - br_table $~lib/arraybuffer/ArrayBuffer $~lib/string/String $folding-inner3 $folding-inner3 $folding-inner3 $folding-inner3 $folding-inner3 $folding-inner3 $folding-inner3 $folding-inner3 $folding-inner3 $folding-inner3 $folding-inner3 $folding-inner3 $folding-inner1 $folding-inner2 $folding-inner2 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner2 $folding-inner2 $folding-inner2 $folding-inner2 $folding-inner2 $folding-inner2 $folding-inner2 $folding-inner2 $invalid - end - return - end - return - end - unreachable - 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 - return - end + (func $~lib/typedarray/Float32Array#at (param $0 i32) (param $1 i32) (result f32) + (local $2 i32) + local.get $1 + i32.const 0 local.get $0 - i32.load - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end - ) - (func $~start - call $start:std/typedarray - ) - (func $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 13724 - i32.lt_s + i32.load offset=8 + i32.const 2 + i32.shr_u + local.tee $2 + local.get $1 + i32.const 0 + i32.ge_s + select + i32.add + local.tee $1 + local.get $2 + i32.ge_u if - i32.const 30128 - i32.const 30176 - i32.const 1 - i32.const 1 + i32.const 1360 + i32.const 1632 + i32.const 1262 + i32.const 33 call $~lib/builtins/abort unreachable end - ) - (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 - call $~stack_check - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.const 3 - call $~lib/rt/itcms/__new - local.tee $1 - i32.store - global.get $~lib/memory/__stack_pointer + local.get $0 + i32.load offset=4 local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer + i32.const 2 + i32.shl + i32.add + f32.load + ) + (func $~lib/typedarray/Float64Array#at (param $0 i32) (param $1 i32) (result f64) + (local $2 i32) local.get $1 + i32.const 0 local.get $0 + i32.load offset=8 + i32.const 3 + i32.shr_u + local.tee $2 + local.get $1 i32.const 0 - call $~lib/arraybuffer/ArrayBufferView#constructor - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.ge_s + select i32.add - global.set $~lib/memory/__stack_pointer + local.tee $1 + local.get $2 + i32.ge_u + if + i32.const 1360 + i32.const 1632 + i32.const 1397 + i32.const 33 + call $~lib/builtins/abort + unreachable + end local.get $0 + i32.load offset=4 + local.get $1 + i32.const 3 + i32.shl + i32.add + f64.load ) - (func $~lib/typedarray/Uint8Array#constructor (param $0 i32) (result i32) - (local $1 i32) - global.get $~lib/memory/__stack_pointer - i32.const 8 + (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) + local.get $0 + local.tee $2 + i32.load offset=4 + local.set $4 + local.get $0 + i32.load offset=8 + i32.const 1 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 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.set $0 + loop $for-loop|0 + local.get $0 + i32.const 0 + i32.ge_s + if + local.get $0 + local.get $4 + i32.add + i32.load8_u + local.set $5 + i32.const 4 + global.set $~argumentsLength + local.get $3 + local.get $5 + local.get $0 + local.get $2 + local.get $1 + i32.load + call_indirect (type $i32_i32_i32_i32_=>_i32) + local.set $3 + local.get $0 + i32.const 1 + i32.sub + local.set $0 + br $for-loop|0 + end + end + local.get $3 + ) + (func $std/typedarray/testArrayMap<~lib/typedarray/Int8Array,i8>~anonymous|0 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) 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 + i32.mul ) - (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 - call $~stack_check - 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/typedarray/Uint8Array#__get (param $0 i32) (param $1 i32) (result i32) local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer + local.get $0 + i32.load offset=8 + i32.ge_u + if + i32.const 1360 + i32.const 1632 + i32.const 159 + i32.const 45 + call $~lib/builtins/abort + unreachable + end 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.load offset=4 i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 + i32.load8_u ) - (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 - call $~stack_check - 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 + (func $~lib/typedarray/Int16Array#__get (param $0 i32) (param $1 i32) (result i32) local.get $1 local.get $0 + i32.load offset=8 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 + i32.shr_u + i32.ge_u + if + i32.const 1360 + i32.const 1632 + i32.const 429 + i32.const 64 + call $~lib/builtins/abort + unreachable + end 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 - call $~stack_check - 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 + i32.load offset=4 local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer + i32.const 1 + i32.shl + i32.add + i32.load16_s + ) + (func $~lib/typedarray/Uint16Array#__get (param $0 i32) (param $1 i32) (result i32) local.get $1 local.get $0 + i32.load offset=8 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 + i32.shr_u + i32.ge_u + if + i32.const 1360 + i32.const 1632 + i32.const 564 + i32.const 64 + call $~lib/builtins/abort + unreachable + end 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 - 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 12 - i32.const 8 - call $~lib/rt/itcms/__new - local.tee $1 - i32.store - global.get $~lib/memory/__stack_pointer + i32.load offset=4 local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer + i32.const 1 + i32.shl + i32.add + i32.load16_u + ) + (func $~lib/typedarray/Uint32Array#__get (param $0 i32) (param $1 i32) (result i32) local.get $1 local.get $0 + i32.load offset=8 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 + i32.shr_u + i32.ge_u + if + i32.const 1360 + i32.const 1632 + i32.const 834 + i32.const 64 + call $~lib/builtins/abort + unreachable + end local.get $0 - ) - (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 - call $~stack_check - 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 - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer + i32.load offset=4 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.shl i32.add - global.set $~lib/memory/__stack_pointer + i32.load + ) + (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 $~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 - call $~stack_check - 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 + (func $~lib/typedarray/Int64Array#__get (param $0 i32) (param $1 i32) (result i64) local.get $1 local.get $0 + i32.load offset=8 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 + i32.shr_u + i32.ge_u + if + i32.const 1360 + i32.const 1632 + i32.const 969 + i32.const 64 + call $~lib/builtins/abort + unreachable + end local.get $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 - call $~stack_check - 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 + i32.load offset=4 local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer + i32.const 3 + i32.shl + i32.add + i64.load + ) + (func $~lib/typedarray/Uint64Array#__get (param $0 i32) (param $1 i32) (result i64) local.get $1 local.get $0 + i32.load offset=8 i32.const 3 - call $~lib/arraybuffer/ArrayBufferView#constructor - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.shr_u + i32.ge_u + if + i32.const 1360 + i32.const 1632 + i32.const 1104 + i32.const 64 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 3 + i32.shl i32.add - global.set $~lib/memory/__stack_pointer + i64.load + ) + (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 $~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 - call $~stack_check - 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 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/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 - call $~stack_check - 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 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 $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 - 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 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=16 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=24 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=32 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=40 - 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 - i32.load offset=4 - local.get $1 - i32.load - i32.sub - if - i32.const 0 - i32.const 1568 - i32.const 32 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - 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.get $0 - local.get $1 - i32.load offset=8 - 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 - local.tee $1 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.load offset=4 - local.get $1 - i32.load - i32.sub - if - i32.const 0 - i32.const 1568 - i32.const 37 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - 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 + (func $~lib/typedarray/Float32Array#__get (param $0 i32) (param $1 i32) (result f32) local.get $1 - i32.store offset=4 local.get $0 - local.get $1 i32.load offset=8 - i32.ne + i32.const 2 + i32.shr_u + i32.ge_u if - i32.const 0 - i32.const 1568 - i32.const 39 - i32.const 3 + i32.const 1360 + i32.const 1632 + i32.const 1239 + i32.const 64 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 i32.load offset=4 local.get $1 - i32.load - i32.sub - if - i32.const 0 - i32.const 1568 - i32.const 42 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - 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 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 + i32.const 2 + i32.shl + i32.add + f32.load + ) + (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 $1 - i32.load offset=8 - 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 $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 - i32.load offset=4 - local.get $1 - i32.load - i32.sub - if - i32.const 0 - i32.const 1568 - i32.const 47 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i32.load offset=8 + 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.const 1 + i32.const 24 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 $0 + i32.const 24 + i32.shr_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) local.get $1 - i32.load offset=8 - i32.const 1 - i32.shr_u - i32.ne - 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 - 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 $1 - i32.load offset=4 - local.get $1 + i32.const 20 + i32.sub + local.tee $2 i32.load + i32.const -4 + i32.and + i32.const 16 i32.sub + i32.le_u if - i32.const 0 - i32.const 1568 - i32.const 52 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i32.load offset=8 - local.get $0 - i32.const 1 - i32.shl - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 53 - i32.const 3 - call $~lib/builtins/abort - unreachable + local.get $2 + local.get $1 + i32.store offset=16 + local.get $0 + return end - global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=4 + local.get $2 + i32.load offset=12 + call $~lib/rt/itcms/__new + local.tee $3 local.get $0 local.get $1 - i32.load offset=8 - i32.const 1 - i32.shr_u - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 54 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer + local.get $2 + i32.load offset=16 + local.tee $0 local.get $0 - call $~lib/typedarray/Int32Array#constructor - local.tee $1 - i32.store offset=24 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.load offset=4 - local.get $1 - i32.load - i32.sub - if - i32.const 0 - i32.const 1568 - i32.const 57 - i32.const 3 - call $~lib/builtins/abort - unreachable - end local.get $1 - i32.load offset=8 + i32.gt_u + select + call $~lib/memory/memory.copy + local.get $3 + ) + (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.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 + i32.gt_u + ) + (func $std/typedarray/testArrayFilter<~lib/typedarray/Int16Array,i16>~anonymous|0 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $0 - local.get $1 - i32.load offset=8 + i32.const 16 + i32.shl + i32.const 16 + i32.shr_s i32.const 2 - i32.shr_u - 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 + i32.gt_s + ) + (func $std/typedarray/testArrayFilter<~lib/typedarray/Uint16Array,u16>~anonymous|0 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) 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 $1 - i32.load offset=4 - local.get $1 - i32.load - i32.sub - if - i32.const 0 - i32.const 1568 - i32.const 62 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i32.load offset=8 + 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) local.get $0 i32.const 2 - i32.shl - 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 + i32.gt_s + ) + (func $std/typedarray/testArrayFilter<~lib/typedarray/Uint32Array,u32>~anonymous|0 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $0 - local.get $1 - i32.load offset=8 i32.const 2 - i32.shr_u - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 64 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer + i32.gt_u + ) + (func $std/typedarray/testArrayFilter<~lib/typedarray/Int64Array,i64>~anonymous|0 (param $0 i64) (param $1 i32) (param $2 i32) (result i32) 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.store offset=4 - local.get $1 - i32.load offset=4 - local.get $1 - i32.load - i32.sub - if - i32.const 0 - i32.const 1568 - i32.const 67 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i32.load offset=8 + 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) local.get $0 - i32.const 3 - i32.shl - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 68 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 + 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) local.get $0 - local.get $1 - i32.load offset=8 - i32.const 3 - i32.shr_u - 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 + 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) local.get $0 - call $~lib/typedarray/Uint64Array#constructor - local.tee $1 - i32.store offset=36 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.load offset=4 - local.get $1 - i32.load - i32.sub - if - i32.const 0 - i32.const 1568 - i32.const 72 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i32.load offset=8 + 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) local.get $0 - i32.const 3 - i32.shl - i32.ne - if + i32.const 255 + i32.and + i32.const 2 + i32.eq + ) + (func $~lib/typedarray/Int8Array#some (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + block $~lib/typedarray/SOME<~lib/typedarray/Int8Array,i8>|inlined.0 (result i32) + local.get $0 + i32.load offset=4 + local.set $3 + local.get $0 + i32.load offset=8 + 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 + 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 $i32_i32_i32_=>_i32) + br_if $~lib/typedarray/SOME<~lib/typedarray/Int8Array,i8>|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 73 - i32.const 3 - call $~lib/builtins/abort - unreachable end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 + ) + (func $std/typedarray/testArraySome<~lib/typedarray/Int8Array,i8>~anonymous|1 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $0 - local.get $1 - i32.load offset=8 - i32.const 3 - i32.shr_u - i32.ne - if + i32.const 255 + i32.and + i32.eqz + ) + (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) + block $~lib/typedarray/SOME<~lib/typedarray/Uint8Array,u8>|inlined.0 (result i32) + local.get $0 + i32.load offset=4 + local.set $3 + local.get $0 + i32.load offset=8 + 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 + 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 $i32_i32_i32_=>_i32) + 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 - i32.const 1568 - i32.const 74 - i32.const 3 - call $~lib/builtins/abort - unreachable end - global.get $~lib/memory/__stack_pointer + ) + (func $std/typedarray/testArraySome<~lib/typedarray/Int16Array,i16>~anonymous|0 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) 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 - i32.load offset=4 - local.get $1 - i32.load - i32.sub - if + i32.const 65535 + i32.and + i32.const 2 + i32.eq + ) + (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) + block $~lib/typedarray/SOME<~lib/typedarray/Int16Array,i16>|inlined.0 (result i32) + local.get $0 + i32.load offset=4 + local.set $3 + local.get $0 + i32.load offset=8 + i32.const 1 + i32.shr_u + 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 + 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 $i32_i32_i32_=>_i32) + br_if $~lib/typedarray/SOME<~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 0 - i32.const 1568 - i32.const 77 - i32.const 3 - call $~lib/builtins/abort - unreachable end - local.get $1 - i32.load offset=8 + ) + (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 2 - i32.shl - i32.ne - if + i32.const 65535 + i32.and + i32.eqz + ) + (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) + block $~lib/typedarray/SOME<~lib/typedarray/Uint16Array,u16>|inlined.0 (result i32) + local.get $0 + i32.load offset=4 + local.set $3 + local.get $0 + i32.load offset=8 + i32.const 1 + i32.shr_u + 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 + 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 $i32_i32_i32_=>_i32) + br_if $~lib/typedarray/SOME<~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 0 - i32.const 1568 - i32.const 78 - i32.const 3 - call $~lib/builtins/abort - unreachable end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 + ) + (func $std/typedarray/testArraySome<~lib/typedarray/Int32Array,i32>~anonymous|0 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $0 - local.get $1 - i32.load offset=8 i32.const 2 - i32.shr_u - i32.ne - if + i32.eq + ) + (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) + block $~lib/typedarray/SOME<~lib/typedarray/Int32Array,i32>|inlined.0 (result i32) + local.get $0 + i32.load offset=4 + local.set $3 + local.get $0 + i32.load offset=8 + i32.const 2 + i32.shr_u + 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 + 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 $i32_i32_i32_=>_i32) + 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.const 1568 - i32.const 79 - i32.const 3 - call $~lib/builtins/abort - unreachable end - global.get $~lib/memory/__stack_pointer + ) + (func $std/typedarray/testArraySome<~lib/typedarray/Int32Array,i32>~anonymous|1 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) 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 - i32.load offset=4 - local.get $1 - i32.load - i32.sub - if + i32.eqz + ) + (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) + block $~lib/typedarray/SOME<~lib/typedarray/Uint32Array,u32>|inlined.0 (result i32) + local.get $0 + i32.load offset=4 + local.set $3 + local.get $0 + i32.load offset=8 + i32.const 2 + i32.shr_u + 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 + 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 $i32_i32_i32_=>_i32) + 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 - i32.const 1568 - i32.const 82 - i32.const 3 - call $~lib/builtins/abort - unreachable end - local.get $1 - i32.load offset=8 + ) + (func $std/typedarray/testArraySome<~lib/typedarray/Int64Array,i64>~anonymous|0 (param $0 i64) (param $1 i32) (param $2 i32) (result i32) local.get $0 - i32.const 3 - i32.shl - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 83 + i64.const 2 + i64.eq + ) + (func $~lib/typedarray/Int64Array#some (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i64) + block $~lib/typedarray/SOME<~lib/typedarray/Int64Array,i64>|inlined.0 (result i32) + local.get $0 + i32.load offset=4 + local.set $3 + local.get $0 + i32.load offset=8 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.const 3 - i32.shr_u - i32.ne - if + i32.shr_u + 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 + 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 $i64_i32_i32_=>_i32) + br_if $~lib/typedarray/SOME<~lib/typedarray/Int64Array,i64>|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 84 - i32.const 3 - call $~lib/builtins/abort - unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 48 - 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 $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 $~lib/typedarray/Uint64Array#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 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 - global.get $~lib/memory/__stack_pointer - local.get $0 - local.tee $3 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.load offset=8 - i32.const 2 - i32.shr_u - local.set $4 - local.get $1 - i32.const 0 - i32.lt_s - if (result i32) - local.get $1 - local.get $4 - i32.add - local.tee $0 - i32.const 0 + (local $5 i64) + block $~lib/typedarray/SOME<~lib/typedarray/Uint64Array,u64>|inlined.0 (result i32) local.get $0 + i32.load offset=4 + local.set $3 + local.get $0 + i32.load offset=8 + i32.const 3 + i32.shr_u + 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 + 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 $i64_i32_i32_=>_i32) + 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 - i32.gt_s - select - else - local.get $1 - local.get $4 - local.get $1 - local.get $4 - i32.lt_s - select - end - local.set $0 - local.get $2 - i32.const 0 - i32.lt_s - if (result i32) - local.get $2 - local.get $4 - i32.add - local.tee $1 - i32.const 0 - local.get $1 - 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.set $2 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.const 8 - call $~lib/rt/itcms/__new - local.tee $1 - i32.store offset=8 - local.get $1 - local.get $3 - i32.load - local.tee $4 - i32.store - local.get $1 - local.get $4 - call $~lib/rt/itcms/__link - local.get $1 - local.get $3 - i32.load offset=4 - local.get $0 - i32.const 2 - i32.shl - i32.add - i32.store offset=4 - local.get $1 - local.get $2 - local.get $0 - local.get $0 - local.get $2 - i32.lt_s - select + ) + (func $std/typedarray/testArraySome<~lib/typedarray/Float32Array,f32>~anonymous|0 (param $0 f32) (param $1 i32) (param $2 i32) (result i32) 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 $1 + f32.const 2 + f32.eq ) - (func $~lib/typedarray/Float64Array#subarray (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/typedarray/Float32Array#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 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 - global.get $~lib/memory/__stack_pointer - local.get $0 - local.tee $3 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.load offset=8 - i32.const 3 - i32.shr_u - local.set $4 - local.get $1 - i32.const 0 - i32.lt_s - if (result i32) - local.get $1 - local.get $4 - i32.add - local.tee $0 - i32.const 0 + (local $5 f32) + block $~lib/typedarray/SOME<~lib/typedarray/Float32Array,f32>|inlined.0 (result i32) local.get $0 + i32.load offset=4 + local.set $3 + local.get $0 + i32.load offset=8 + i32.const 2 + i32.shr_u + 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 + 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 $f32_i32_i32_=>_i32) + 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.gt_s - select - else - local.get $1 - local.get $4 - local.get $1 - local.get $4 - i32.lt_s - select - end - local.set $0 - local.get $2 - i32.const 0 - i32.lt_s - if (result i32) - local.get $2 - local.get $4 - i32.add - local.tee $1 - i32.const 0 - local.get $1 - 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.set $2 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.const 13 - call $~lib/rt/itcms/__new - local.tee $1 - i32.store offset=8 - local.get $1 - local.get $3 - i32.load - local.tee $4 - i32.store - local.get $1 - local.get $4 - call $~lib/rt/itcms/__link - local.get $1 - local.get $3 - i32.load offset=4 - local.get $0 - i32.const 3 - i32.shl - i32.add - i32.store offset=4 - local.get $1 - local.get $2 - local.get $0 + ) + (func $std/typedarray/testArraySome<~lib/typedarray/Float32Array,f32>~anonymous|1 (param $0 f32) (param $1 i32) (param $2 i32) (result i32) local.get $0 - local.get $2 - i32.lt_s - select + 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) 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 $1 + f64.const 2 + f64.eq ) - (func $~lib/typedarray/Float64Array#sort (param $0 i32) (param $1 i32) + (func $~lib/typedarray/Float64Array#some (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) - (local $4 f64) + (local $4 i32) (local $5 f64) - (local $6 i32) - (local $7 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 - 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 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 $0 - i32.store offset=8 - block $~lib/typedarray/SORT<~lib/typedarray/Float64Array,f64>|inlined.0 + block $~lib/typedarray/SOME<~lib/typedarray/Float64Array,f64>|inlined.0 (result i32) + local.get $0 + i32.load offset=4 + local.set $3 local.get $0 i32.load offset=8 i32.const 3 i32.shr_u - local.tee $7 - i32.const 1 - i32.le_u - br_if $~lib/typedarray/SORT<~lib/typedarray/Float64Array,f64>|inlined.0 - local.get $0 - i32.load offset=4 - local.set $3 - local.get $7 - i32.const 2 - i32.eq - if - local.get $3 - f64.load offset=8 - local.set $4 - local.get $3 - f64.load - local.set $5 - i32.const 2 - global.set $~argumentsLength + local.set $4 + loop $for-loop|0 + local.get $2 local.get $4 - local.get $5 - local.get $1 - i32.load - call_indirect (type $f64_f64_=>_i32) - i32.const 0 i32.lt_s if local.get $3 + local.get $2 + i32.const 3 + i32.shl + i32.add + f64.load + local.set $5 + i32.const 3 + global.set $~argumentsLength + i32.const 1 local.get $5 - f64.store offset=8 - local.get $3 - local.get $4 - f64.store - end - br $~lib/typedarray/SORT<~lib/typedarray/Float64Array,f64>|inlined.0 - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=12 - local.get $7 - i32.const 256 - i32.lt_u - if - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=16 - local.get $1 - local.set $2 - loop $for-loop|0 - local.get $6 - local.get $7 - i32.lt_s - if - local.get $3 - local.get $6 - i32.const 3 - i32.shl - i32.add - f64.load - local.set $4 - local.get $6 - i32.const 1 - i32.sub - local.set $1 - loop $while-continue|1 - local.get $1 - i32.const 0 - i32.ge_s - if - block $while-break|1 - local.get $3 - local.get $1 - i32.const 3 - i32.shl - i32.add - f64.load - local.set $5 - i32.const 2 - global.set $~argumentsLength - local.get $4 - local.get $5 - local.get $2 - i32.load - call_indirect (type $f64_f64_=>_i32) - i32.const 0 - i32.ge_s - br_if $while-break|1 - local.get $1 - local.tee $0 - i32.const 1 - i32.sub - local.set $1 - local.get $3 - local.get $0 - i32.const 1 - i32.add - i32.const 3 - i32.shl - i32.add - local.get $5 - f64.store - br $while-continue|1 - end - end - end - local.get $3 - local.get $1 - i32.const 1 - i32.add - i32.const 3 - i32.shl - i32.add - local.get $4 - f64.store - local.get $6 - i32.const 1 - i32.add - local.set $6 - br $for-loop|0 - end + local.get $2 + local.get $0 + local.get $1 + i32.load + call_indirect (type $f64_i32_i32_=>_i32) + 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 - else - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=16 - local.get $3 - local.get $7 - local.get $1 - call $~lib/util/sort/weakHeapSort end + i32.const 0 end - global.get $~lib/memory/__stack_pointer - i32.const 20 - 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) + (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 $~lib/typedarray/Int8Array#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.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 - 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 offset=4 + local.set $3 local.get $0 i32.load offset=8 local.set $4 - 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.tee $0 - local.get $3 - i32.const 0 - i32.lt_s - if (result i32) - local.get $3 - local.get $4 - i32.add - local.tee $2 - i32.const 0 - local.get $2 - i32.const 0 - i32.gt_s - select - else - local.get $3 - local.get $4 - local.get $3 - local.get $4 - i32.lt_s - select - end - local.tee $2 - i32.lt_s - if - local.get $0 - local.get $5 - i32.add - local.get $1 - local.get $2 - local.get $0 - i32.sub - call $~lib/memory/memory.fill + 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 + i32.const 3 + global.set $~argumentsLength + local.get $2 + local.get $0 + local.get $1 + i32.load + call_indirect (type $i32_i32_i32_=>_i32) + 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 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer + local.get $2 ) - (func $std/typedarray/isInt8ArrayEqual (param $0 i32) (param $1 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 $~lib/typedarray/Uint8Array#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 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 + (local $5 i32) local.get $0 - i32.store + i32.load offset=4 + local.set $3 local.get $0 i32.load offset=8 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - block $folding-inner0 - local.get $3 - local.get $1 - i32.load offset=12 - i32.ne - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=8 - local.set $4 + 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 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - local.get $2 - call $~lib/typedarray/Int8Array#__get - 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 92 - i32.const 42 - call $~lib/builtins/abort - unreachable - end + local.get $3 + i32.add + i32.load8_u + i32.const 3 + global.set $~argumentsLength local.get $2 + local.get $0 local.get $1 - i32.load offset=4 - i32.add - i32.load8_s - i32.ne - br_if $folding-inner0 + i32.load + call_indirect (type $i32_i32_i32_=>_i32) + br_if $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint8Array,u8>|inlined.0 local.get $2 i32.const 1 i32.add @@ -7392,276 +5560,141 @@ 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 - return + i32.const -1 + local.set $2 end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 0 + local.get $2 ) - (func $~lib/typedarray/Int8Array#subarray (param $0 i32) (param $1 i32) (param $2 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) - 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 - global.get $~lib/memory/__stack_pointer - local.get $0 - local.tee $3 - i32.store - global.get $~lib/memory/__stack_pointer + (local $5 i32) local.get $0 - i32.store offset=4 + i32.load offset=4 + local.set $3 local.get $0 i32.load offset=8 + i32.const 1 + i32.shr_u local.set $4 - local.get $1 - i32.const 0 - i32.lt_s - if (result i32) - local.get $1 - local.get $4 - i32.add - local.tee $0 - i32.const 0 - local.get $0 - 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.set $0 - local.get $2 - i32.const 0 - i32.lt_s - if (result i32) - local.get $2 - local.get $4 - i32.add - local.tee $1 - i32.const 0 - local.get $1 - i32.const 0 - i32.gt_s - select - else - local.get $2 - local.get $4 - local.get $2 - local.get $4 - i32.lt_s - select + 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 + i32.const 3 + global.set $~argumentsLength + local.get $2 + local.get $0 + local.get $1 + i32.load + call_indirect (type $i32_i32_i32_=>_i32) + 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 - local.set $2 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.const 3 - call $~lib/rt/itcms/__new - local.tee $1 - i32.store offset=8 - local.get $1 - local.get $3 - i32.load - local.tee $4 - i32.store - local.get $1 - local.get $4 - call $~lib/rt/itcms/__link - local.get $1 - local.get $0 - local.get $3 - i32.load offset=4 - i32.add - i32.store offset=4 - local.get $1 - local.get $2 - local.get $0 - local.get $0 local.get $2 - i32.lt_s - select + ) + (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.sub - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $1 + i32.const 65535 + i32.and + i32.const 4 + i32.eq ) - (func $~lib/typedarray/Int32Array#fill (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) + (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 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 - local.get $0 - i32.store - local.get $1 - local.set $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.set $3 local.get $0 i32.load offset=8 - i32.const 2 + i32.const 1 i32.shr_u - local.set $1 - local.get $2 - i32.const 0 - i32.lt_s - if (result i32) - local.get $1 - local.get $2 - i32.add - local.tee $0 - i32.const 0 - local.get $0 - i32.const 0 - i32.gt_s - select - else - local.get $2 - local.get $1 - local.get $1 - local.get $2 - i32.gt_s - select - end - local.set $0 - local.get $3 - 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 $3 - local.get $1 - local.get $1 - local.get $3 - i32.gt_s - select - end - local.set $1 - loop $for-loop|0 - local.get $0 - local.get $1 - i32.lt_s - if - local.get $5 - local.get $0 - i32.const 2 - i32.shl - i32.add + local.set $4 + block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint16Array,u16>|inlined.0 + loop $for-loop|0 + local.get $2 local.get $4 - i32.store - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|0 + i32.lt_s + if + local.get $3 + local.get $2 + i32.const 1 + i32.shl + i32.add + i32.load16_u + i32.const 3 + global.set $~argumentsLength + local.get $2 + local.get $0 + local.get $1 + i32.load + call_indirect (type $i32_i32_i32_=>_i32) + 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 end + 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 ) - (func $std/typedarray/isInt32ArrayEqual (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) - 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 + (local $5 i32) local.get $0 - i32.store + i32.load offset=4 + local.set $3 local.get $0 i32.load offset=8 i32.const 2 i32.shr_u - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - block $folding-inner0 - local.get $3 - local.get $1 - i32.load offset=12 - i32.ne - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=8 - i32.const 2 - i32.shr_u - local.set $3 + local.set $4 + block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int32Array,i32>|inlined.0 loop $for-loop|0 local.get $2 - local.get $3 + local.get $4 i32.lt_s if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 + local.get $3 local.get $2 - call $~lib/typedarray/Int32Array#__get - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $1 + i32.const 2 + i32.shl + i32.add + i32.load + i32.const 3 + global.set $~argumentsLength local.get $2 - call $~lib/array/Array#__get - local.get $4 - i32.ne - br_if $folding-inner0 + local.get $0 + local.get $1 + i32.load + call_indirect (type $i32_i32_i32_=>_i32) + br_if $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int32Array,i32>|inlined.0 local.get $2 i32.const 1 i32.add @@ -7669,1346 +5702,1409 @@ 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 - return + i32.const -1 + local.set $2 end - global.get $~lib/memory/__stack_pointer + local.get $2 + ) + (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.add - global.set $~lib/memory/__stack_pointer - i32.const 0 + i32.eq ) - (func $~lib/typedarray/Int32Array#slice (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/typedarray/Uint32Array#findIndex (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 - 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 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer + (local $4 i32) + (local $5 i32) local.get $0 - i32.store offset=4 + i32.load offset=4 + local.set $3 local.get $0 i32.load offset=8 i32.const 2 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 - 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 + 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 + i32.const 3 + global.set $~argumentsLength + local.get $2 + local.get $0 + local.get $1 + i32.load + call_indirect (type $i32_i32_i32_=>_i32) + 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 - local.get $1 - 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 - local.get $3 - i32.load 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 - call $~lib/memory/memory.copy - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $3 ) - (func $~lib/typedarray/Int32Array#copyWithin (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (func $~lib/typedarray/Int64Array#findIndex (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 - call $~stack_check - 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 $5 i64) local.get $0 - i32.store offset=4 - local.get $3 + i32.load offset=4 + local.set $3 local.get $0 i32.load offset=8 - i32.const 2 + i32.const 3 i32.shr_u - local.tee $4 - local.get $3 - local.get $4 - i32.lt_s - select - local.set $5 - local.get $0 - local.tee $3 - i32.load offset=4 - local.tee $6 - local.get $1 - i32.const 0 - i32.lt_s - if (result i32) - local.get $1 - local.get $4 - i32.add - local.tee $0 - i32.const 0 - local.get $0 - 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.set $4 + block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int64Array,i64>|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 + i64.load + i32.const 3 + global.set $~argumentsLength + local.get $2 + local.get $0 + local.get $1 + i32.load + call_indirect (type $i64_i32_i32_=>_i32) + br_if $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int64Array,i64>|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 - i32.const 2 - i32.shl - i32.add - local.get $6 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.tee $0 - 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 $2 - i32.const 0 - local.get $2 - 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 $0 - i32.sub - local.tee $2 - local.get $4 - local.get $1 - i32.sub - local.tee $0 + ) + (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Int64Array,i64>~anonymous|1 (param $0 i64) (param $1 i32) (param $2 i32) (result i32) local.get $0 - local.get $2 - i32.gt_s - select - i32.const 2 - i32.shl - call $~lib/memory/memory.copy - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $3 + i64.const 4 + i64.eq ) - (func $~lib/typedarray/Uint8Array#reduce (param $0 i32) (param $1 i32) (result 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) - 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 - 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 $5 i64) local.get $0 i32.load offset=4 - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 + local.set $3 local.get $0 i32.load offset=8 - local.set $5 - loop $for-loop|0 - local.get $2 - local.get $5 - i32.lt_s - if + i32.const 3 + i32.shr_u + local.set $4 + block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint64Array,u64>|inlined.0 + loop $for-loop|0 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=12 - 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 $i32_i32_i32_i32_=>_i32) - local.set $3 - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $for-loop|0 + i32.lt_s + if + local.get $3 + local.get $2 + i32.const 3 + i32.shl + i32.add + i64.load + i32.const 3 + global.set $~argumentsLength + local.get $2 + local.get $0 + local.get $1 + i32.load + call_indirect (type $i64_i32_i32_=>_i32) + br_if $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint64Array,u64>|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 16 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $3 + local.get $2 ) - (func $std/typedarray/testAt<~lib/typedarray/Int8Array,i8> - (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 - 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 + (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) local.get $0 - i32.store offset=4 + i32.load offset=4 + local.set $3 local.get $0 + i32.load offset=8 i32.const 2 - i32.const 3 - call $~lib/typedarray/Int8Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - call $~lib/typedarray/Int8Array#at - i32.const 1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 344 - i32.const 3 - call $~lib/builtins/abort - unreachable + i32.shr_u + 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 + i32.const 3 + global.set $~argumentsLength + local.get $2 + local.get $0 + local.get $1 + i32.load + call_indirect (type $f32_i32_i32_=>_i32) + 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 + local.get $2 + ) + (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Float32Array,f32>~anonymous|1 (param $0 f32) (param $1 i32) (param $2 i32) (result i32) local.get $0 - i32.store offset=4 + f32.const 4 + f32.eq + ) + (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) local.get $0 - i32.const -1 - call $~lib/typedarray/Int8Array#at + i32.load offset=4 + local.set $3 + local.get $0 + i32.load offset=8 i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 345 - i32.const 3 - call $~lib/builtins/abort - unreachable + i32.shr_u + 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 + i32.const 3 + global.set $~argumentsLength + local.get $2 + local.get $0 + local.get $1 + i32.load + call_indirect (type $f64_i32_i32_=>_i32) + 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 - global.get $~lib/memory/__stack_pointer + local.get $2 + ) + (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Float64Array,f64>~anonymous|1 (param $0 f64) (param $1 i32) (param $2 i32) (result i32) local.get $0 - i32.store offset=4 + 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) local.get $0 - i32.const -3 - call $~lib/typedarray/Int8Array#at + i32.const 24 + i32.shl + i32.const 24 + i32.shr_s i32.const 1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 346 - 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.and + i32.eqz ) - (func $std/typedarray/testAt<~lib/typedarray/Uint8Array,u8> - (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 - 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 - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - call $~lib/typedarray/Uint8Array#at - i32.const 1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 344 - 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/Uint8Array#at - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 345 - i32.const 3 - call $~lib/builtins/abort - unreachable + (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) + block $~lib/typedarray/EVERY<~lib/typedarray/Int8Array,i8>|inlined.0 (result i32) + local.get $0 + i32.load offset=4 + local.set $3 + local.get $0 + i32.load offset=8 + 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 + 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 $i32_i32_i32_=>_i32) + i32.eqz + br_if $~lib/typedarray/EVERY<~lib/typedarray/Int8Array,i8>|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 - local.get $0 - i32.store offset=4 + ) + (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 -3 - call $~lib/typedarray/Uint8Array#at i32.const 1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 346 - i32.const 3 - call $~lib/builtins/abort - unreachable + i32.and + i32.eqz + ) + (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) + block $~lib/typedarray/EVERY<~lib/typedarray/Uint8Array,u8>|inlined.0 (result i32) + local.get $0 + i32.load offset=4 + local.set $3 + local.get $0 + i32.load offset=8 + 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 + 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 $i32_i32_i32_=>_i32) + 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 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer ) - (func $std/typedarray/testAt<~lib/typedarray/Uint8ClampedArray,u8> - (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 - 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 - local.get $0 - i32.store offset=4 + (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.const 0 - call $~lib/typedarray/Uint8ClampedArray#at + i32.const 16 + i32.shl + i32.const 16 + i32.shr_s i32.const 1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 344 - 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#at - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 345 - i32.const 3 - call $~lib/builtins/abort - unreachable + i32.and + i32.eqz + ) + (func $~lib/typedarray/Int16Array#every (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + block $~lib/typedarray/EVERY<~lib/typedarray/Int16Array,i16>|inlined.0 (result i32) + local.get $0 + i32.load offset=4 + local.set $3 + local.get $0 + i32.load offset=8 + i32.const 1 + i32.shr_u + 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 + 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 $i32_i32_i32_=>_i32) + 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 - local.get $0 - i32.store offset=4 - local.get $0 - i32.const -3 - call $~lib/typedarray/Uint8ClampedArray#at - i32.const 1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 346 - i32.const 3 - call $~lib/builtins/abort - unreachable + ) + (func $~lib/typedarray/Uint16Array#every (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + block $~lib/typedarray/EVERY<~lib/typedarray/Uint16Array,u16>|inlined.0 (result i32) + local.get $0 + i32.load offset=4 + local.set $3 + local.get $0 + i32.load offset=8 + i32.const 1 + i32.shr_u + 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 + 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 $i32_i32_i32_=>_i32) + 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 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer ) - (func $std/typedarray/testAt<~lib/typedarray/Int16Array,i16> - (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 - 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 - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - call $~lib/typedarray/Int16Array#at - i32.const 1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 344 - i32.const 3 - call $~lib/builtins/abort - unreachable + (func $~lib/typedarray/Int32Array#every (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + block $~lib/typedarray/EVERY<~lib/typedarray/Int32Array,i32>|inlined.0 (result i32) + local.get $0 + i32.load offset=4 + local.set $3 + local.get $0 + i32.load offset=8 + i32.const 2 + i32.shr_u + 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 + 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 $i32_i32_i32_=>_i32) + i32.eqz + br_if $~lib/typedarray/EVERY<~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 1 end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const -1 - call $~lib/typedarray/Int16Array#at - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 345 - i32.const 3 - call $~lib/builtins/abort - unreachable + ) + (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) + block $~lib/typedarray/EVERY<~lib/typedarray/Uint32Array,u32>|inlined.0 (result i32) + local.get $0 + i32.load offset=4 + local.set $3 + local.get $0 + i32.load offset=8 + i32.const 2 + i32.shr_u + 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 + 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 $i32_i32_i32_=>_i32) + 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 - local.get $0 - i32.store offset=4 + ) + (func $std/typedarray/testArrayEvery<~lib/typedarray/Int64Array,i64>~anonymous|0 (param $0 i64) (param $1 i32) (param $2 i32) (result i32) local.get $0 - i32.const -3 - call $~lib/typedarray/Int16Array#at - i32.const 1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 346 - 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 + i64.const 1 + i64.and + i64.eqz ) - (func $std/typedarray/testAt<~lib/typedarray/Uint16Array,u16> - (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 - 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 - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - call $~lib/typedarray/Uint16Array#at - i32.const 1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 344 + (func $~lib/typedarray/Int64Array#every (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i64) + block $~lib/typedarray/EVERY<~lib/typedarray/Int64Array,i64>|inlined.0 (result i32) + local.get $0 + i32.load offset=4 + local.set $3 + local.get $0 + i32.load offset=8 i32.const 3 - call $~lib/builtins/abort - unreachable + i32.shr_u + 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 + 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 $i64_i32_i32_=>_i32) + 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 + end + i32.const 1 end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const -1 - call $~lib/typedarray/Uint16Array#at - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 345 + ) + (func $~lib/typedarray/Uint64Array#every (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i64) + block $~lib/typedarray/EVERY<~lib/typedarray/Uint64Array,u64>|inlined.0 (result i32) + local.get $0 + i32.load offset=4 + local.set $3 + local.get $0 + i32.load offset=8 i32.const 3 - call $~lib/builtins/abort - unreachable + i32.shr_u + 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 + 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 $i64_i32_i32_=>_i32) + 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 - local.get $0 - i32.store offset=4 + ) + (func $~lib/math/NativeMathf.mod (param $0 f32) (result f32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) local.get $0 - i32.const -3 - call $~lib/typedarray/Uint16Array#at - i32.const 1 - i32.ne + i32.reinterpret_f32 + local.tee $1 + i32.const -2147483648 + i32.and + local.set $4 + local.get $1 + i32.const 23 + i32.shr_u + i32.const 255 + i32.and + local.tee $2 + i32.const 255 + i32.eq if - i32.const 0 - i32.const 1568 - i32.const 346 - i32.const 3 - call $~lib/builtins/abort - unreachable + local.get $0 + local.get $0 + f32.add + local.tee $0 + local.get $0 + f32.div + return end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $std/typedarray/testAt<~lib/typedarray/Int32Array,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 - 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 - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - call $~lib/typedarray/Int32Array#at + local.get $1 i32.const 1 - i32.ne + i32.shl + local.tee $3 + i32.const -2147483648 + i32.le_u if - i32.const 0 - i32.const 1568 - i32.const 344 - i32.const 3 - call $~lib/builtins/abort - unreachable + local.get $0 + local.get $3 + i32.const -2147483648 + i32.ne + f32.convert_i32_u + f32.mul + return end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const -1 - call $~lib/typedarray/Int32Array#at - i32.const 3 - i32.ne - if + 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 + block $folding-inner0 + loop $while-continue|0 + local.get $2 + i32.const 128 + i32.gt_s + if + local.get $1 + i32.const 8388608 + i32.ge_u + if (result i32) + local.get $1 + i32.const 8388608 + i32.eq + br_if $folding-inner0 + local.get $1 + i32.const 8388608 + i32.sub + else + local.get $1 + end + i32.const 1 + i32.shl + local.set $1 + local.get $2 + i32.const 1 + i32.sub + local.set $2 + br $while-continue|0 + end + end + local.get $1 + i32.const 8388608 + i32.ge_u + if + local.get $1 + i32.const 8388608 + i32.eq + br_if $folding-inner0 + local.get $1 + i32.const 8388608 + i32.sub + local.set $1 + end + local.get $1 + local.get $1 + i32.const 8 + i32.shl + i32.clz + local.tee $3 + i32.shl + local.set $1 + local.get $2 + local.get $3 + i32.sub + local.tee $2 i32.const 0 - i32.const 1568 - i32.const 345 - i32.const 3 - call $~lib/builtins/abort - unreachable + 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 $4 + i32.or + f32.reinterpret_i32 + return end - global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=4 + f32.const 0 + f32.mul + ) + (func $std/typedarray/testArrayEvery<~lib/typedarray/Float32Array,f32>~anonymous|0 (param $0 f32) (param $1 i32) (param $2 i32) (result i32) local.get $0 - i32.const -3 - call $~lib/typedarray/Int32Array#at - i32.const 1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 346 - i32.const 3 - call $~lib/builtins/abort - unreachable + call $~lib/math/NativeMathf.mod + f32.const 0 + f32.eq + ) + (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) + block $~lib/typedarray/EVERY<~lib/typedarray/Float32Array,f32>|inlined.0 (result i32) + local.get $0 + i32.load offset=4 + local.set $3 + local.get $0 + i32.load offset=8 + i32.const 2 + i32.shr_u + 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 + 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 $f32_i32_i32_=>_i32) + 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 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer ) - (func $std/typedarray/testAt<~lib/typedarray/Uint32Array,u32> - (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 - 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 - 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 - local.get $0 - i32.store offset=4 + (func $~lib/math/NativeMath.mod (param $0 f64) (result f64) + (local $1 i64) + (local $2 i64) + (local $3 i64) + (local $4 i64) local.get $0 - i32.const 0 - call $~lib/typedarray/Uint32Array#at - i32.const 1 - i32.ne + i64.reinterpret_f64 + local.tee $1 + i64.const 63 + i64.shr_u + local.set $4 + local.get $1 + i64.const 52 + i64.shr_u + i64.const 2047 + i64.and + local.tee $2 + i64.const 2047 + i64.eq if - i32.const 0 - i32.const 1568 - i32.const 344 - i32.const 3 - call $~lib/builtins/abort - unreachable + local.get $0 + local.get $0 + f64.add + local.tee $0 + local.get $0 + f64.div + return end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const -1 - call $~lib/typedarray/Uint32Array#at - i32.const 3 - i32.ne + local.get $1 + i64.const 1 + i64.shl + local.tee $3 + i64.const -9223372036854775808 + i64.le_u if - i32.const 0 - i32.const 1568 - i32.const 345 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer + local.get $0 + local.get $3 + i64.const -9223372036854775808 + i64.ne + f64.convert_i32_u + f64.mul + return + end + local.get $2 + i64.eqz + if (result i64) + local.get $1 + i64.const 1 + local.get $2 + local.get $1 + i64.const 12 + i64.shl + i64.clz + i64.sub + local.tee $2 + i64.sub + i64.shl + else + local.get $1 + i64.const 4503599627370495 + i64.and + i64.const 4503599627370496 + i64.or + end + local.set $1 + block $folding-inner0 + loop $while-continue|0 + local.get $2 + i64.const 1024 + i64.gt_s + if + local.get $1 + i64.const 4503599627370496 + i64.ge_u + if (result i64) + local.get $1 + i64.const 4503599627370496 + i64.eq + br_if $folding-inner0 + local.get $1 + i64.const 4503599627370496 + i64.sub + else + local.get $1 + end + i64.const 1 + i64.shl + local.set $1 + local.get $2 + i64.const 1 + i64.sub + local.set $2 + br $while-continue|0 + end + end + local.get $1 + i64.const 4503599627370496 + i64.ge_u + if + local.get $1 + i64.const 4503599627370496 + i64.eq + br_if $folding-inner0 + local.get $1 + i64.const 4503599627370496 + i64.sub + local.set $1 + end + local.get $1 + local.get $1 + i64.const 11 + i64.shl + i64.clz + local.tee $3 + i64.shl + local.set $1 + local.get $2 + local.get $3 + i64.sub + local.tee $2 + i64.const 0 + i64.gt_s + if (result i64) + local.get $1 + i64.const 4503599627370496 + i64.sub + local.get $2 + i64.const 52 + i64.shl + i64.or + else + local.get $1 + i64.const 1 + local.get $2 + i64.sub + i64.shr_u + end + local.get $4 + i64.const 63 + i64.shl + i64.or + f64.reinterpret_i64 + return + end local.get $0 - i32.store offset=4 + f64.const 0 + f64.mul + ) + (func $std/typedarray/testArrayEvery<~lib/typedarray/Float64Array,f64>~anonymous|0 (param $0 f64) (param $1 i32) (param $2 i32) (result i32) local.get $0 - i32.const -3 - call $~lib/typedarray/Uint32Array#at - i32.const 1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 346 + call $~lib/math/NativeMath.mod + f64.const 0 + f64.eq + ) + (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) + block $~lib/typedarray/EVERY<~lib/typedarray/Float64Array,f64>|inlined.0 (result i32) + local.get $0 + i32.load offset=4 + local.set $3 + local.get $0 + i32.load offset=8 i32.const 3 - call $~lib/builtins/abort - unreachable + i32.shr_u + 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 + 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 $f64_i32_i32_=>_i32) + 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 + end + i32.const 1 end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer ) - (func $std/typedarray/testAt<~lib/typedarray/Int64Array,i64> - (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 - 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 + (func $~lib/typedarray/Uint8Array#forEach (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) local.get $0 - i32.store offset=4 + i32.load offset=4 + local.set $3 local.get $0 - i32.const 0 - i64.const 1 - call $~lib/typedarray/Int64Array#__set - global.get $~lib/memory/__stack_pointer + i32.load offset=8 + 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 + i32.const 3 + global.set $~argumentsLength + local.get $2 + local.get $0 + local.get $1 + i32.load + call_indirect (type $i32_i32_i32_=>_none) + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|0 + end + end + ) + (func $~lib/typedarray/Int8Array#reverse (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) local.get $0 - i32.store offset=4 + local.tee $1 + i32.load offset=4 + local.set $4 local.get $0 + i32.load offset=8 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 - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - call $~lib/typedarray/Int64Array#at - i64.const 1 - i64.ne - if - i32.const 0 - i32.const 1568 - i32.const 344 - i32.const 3 - call $~lib/builtins/abort - unreachable + i32.sub + local.set $0 + loop $for-loop|0 + local.get $0 + local.get $2 + i32.gt_u + if + local.get $2 + local.get $4 + i32.add + local.tee $3 + i32.load8_s + local.set $5 + local.get $3 + local.get $0 + local.get $4 + i32.add + local.tee $3 + i32.load8_s + i32.store8 + local.get $3 + local.get $5 + i32.store8 + local.get $2 + i32.const 1 + i32.add + local.set $2 + local.get $0 + i32.const 1 + i32.sub + local.set $0 + br $for-loop|0 + end end - global.get $~lib/memory/__stack_pointer + local.get $1 + ) + (func $~lib/typedarray/Uint8Array#reverse (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) local.get $0 - i32.store offset=4 + local.tee $1 + i32.load offset=4 + local.set $4 local.get $0 - i32.const -1 - call $~lib/typedarray/Int64Array#at - i64.const 3 - i64.ne - if - i32.const 0 - i32.const 1568 - i32.const 345 - i32.const 3 - call $~lib/builtins/abort - unreachable + i32.load offset=8 + i32.const 1 + i32.sub + local.set $0 + loop $for-loop|0 + local.get $0 + local.get $2 + i32.gt_u + if + local.get $2 + local.get $4 + i32.add + local.tee $3 + i32.load8_u + local.set $5 + local.get $3 + local.get $0 + local.get $4 + i32.add + local.tee $3 + i32.load8_u + i32.store8 + local.get $3 + local.get $5 + i32.store8 + local.get $2 + i32.const 1 + i32.add + local.set $2 + local.get $0 + i32.const 1 + i32.sub + local.set $0 + br $for-loop|0 + end end - global.get $~lib/memory/__stack_pointer + local.get $1 + ) + (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.get $0 - i32.store offset=4 + local.tee $1 + i32.load offset=4 + local.set $4 local.get $0 - i32.const -3 - call $~lib/typedarray/Int64Array#at - i64.const 1 - i64.ne - if - i32.const 0 - i32.const 1568 - i32.const 346 - i32.const 3 - call $~lib/builtins/abort - unreachable + i32.load offset=8 + i32.const 1 + i32.shr_u + i32.const 1 + i32.sub + local.set $0 + loop $for-loop|0 + local.get $0 + local.get $2 + i32.gt_u + if + local.get $4 + local.get $2 + i32.const 1 + i32.shl + i32.add + local.tee $3 + i32.load16_s + local.set $5 + local.get $3 + local.get $4 + local.get $0 + i32.const 1 + i32.shl + i32.add + local.tee $3 + i32.load16_s + i32.store16 + local.get $3 + local.get $5 + i32.store16 + local.get $2 + i32.const 1 + i32.add + local.set $2 + local.get $0 + i32.const 1 + i32.sub + 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 $1 ) - (func $std/typedarray/testAt<~lib/typedarray/Uint64Array,u64> - (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 - 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 + (func $~lib/typedarray/Uint16Array#reverse (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) local.get $0 - i32.store offset=4 + local.tee $1 + i32.load offset=4 + local.set $4 local.get $0 + i32.load offset=8 i32.const 1 - i64.const 2 - call $~lib/typedarray/Uint64Array#__set - global.get $~lib/memory/__stack_pointer + i32.shr_u + i32.const 1 + i32.sub + local.set $0 + loop $for-loop|0 + local.get $0 + local.get $2 + i32.gt_u + if + local.get $4 + local.get $2 + i32.const 1 + i32.shl + i32.add + local.tee $3 + i32.load16_u + local.set $5 + local.get $3 + local.get $4 + local.get $0 + i32.const 1 + i32.shl + i32.add + local.tee $3 + i32.load16_u + i32.store16 + local.get $3 + local.get $5 + i32.store16 + local.get $2 + i32.const 1 + i32.add + local.set $2 + local.get $0 + i32.const 1 + i32.sub + local.set $0 + br $for-loop|0 + end + end + local.get $1 + ) + (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.get $0 - i32.store offset=4 + local.tee $1 + i32.load offset=4 + local.set $4 local.get $0 + i32.load offset=8 i32.const 2 - i64.const 3 - call $~lib/typedarray/Uint64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - call $~lib/typedarray/Uint64Array#at - i64.const 1 - i64.ne - if - i32.const 0 - i32.const 1568 - i32.const 344 - 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#at - i64.const 3 - i64.ne - if - i32.const 0 - i32.const 1568 - i32.const 345 - 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#at - i64.const 1 - i64.ne - if - i32.const 0 - i32.const 1568 - i32.const 346 - 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 - ) - (func $std/typedarray/testAt<~lib/typedarray/Float32Array,f32> - (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 - 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.shr_u 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 - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - call $~lib/typedarray/Float32Array#at - f32.const 1 - f32.ne - if - i32.const 0 - i32.const 1568 - i32.const 344 - 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#at - f32.const 3 - f32.ne - if - i32.const 0 - i32.const 1568 - i32.const 345 - 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#at - f32.const 1 - f32.ne - if - i32.const 0 - i32.const 1568 - i32.const 346 - 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 - ) - (func $std/typedarray/testAt<~lib/typedarray/Float64Array,f64> - (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 - 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 - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - call $~lib/typedarray/Float64Array#at - f64.const 1 - f64.ne - if - i32.const 0 - i32.const 1568 - i32.const 344 - 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#at - f64.const 3 - f64.ne - if - i32.const 0 - i32.const 1568 - i32.const 345 - 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#at - f64.const 1 - f64.ne - if - i32.const 0 - i32.const 1568 - i32.const 346 - i32.const 3 - call $~lib/builtins/abort - unreachable + local.set $0 + loop $for-loop|0 + local.get $0 + local.get $2 + i32.gt_u + if + local.get $4 + local.get $2 + i32.const 2 + i32.shl + i32.add + local.tee $3 + i32.load + local.set $5 + local.get $3 + local.get $4 + local.get $0 + i32.const 2 + i32.shl + i32.add + local.tee $3 + i32.load + i32.store + local.get $3 + local.get $5 + i32.store + local.get $2 + i32.const 1 + i32.add + local.set $2 + local.get $0 + i32.const 1 + i32.sub + 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 $1 ) - (func $~lib/typedarray/Uint8Array#reduceRight (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Uint32Array#reverse (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 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 - 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.tee $1 i32.load offset=4 local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $0 - local.tee $2 - i32.store offset=8 local.get $0 i32.load offset=8 + i32.const 2 + i32.shr_u i32.const 1 i32.sub local.set $0 loop $for-loop|0 local.get $0 - i32.const 0 - i32.ge_s + local.get $2 + i32.gt_u if - local.get $0 local.get $4 + local.get $2 + i32.const 2 + i32.shl i32.add - i32.load8_u + local.tee $3 + i32.load local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=12 - i32.const 4 - global.set $~argumentsLength local.get $3 - local.get $5 + local.get $4 local.get $0 - local.get $2 - local.get $1 + i32.const 2 + i32.shl + i32.add + local.tee $3 i32.load - call_indirect (type $i32_i32_i32_i32_=>_i32) - local.set $3 + i32.store + local.get $3 + local.get $5 + i32.store + local.get $2 + i32.const 1 + i32.add + local.set $2 local.get $0 i32.const 1 i32.sub @@ -9016,315 +7112,372 @@ 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 $3 + local.get $1 ) - (func $~lib/typedarray/Int8Array#map (param $0 i32) (result i32) + (func $~lib/typedarray/Int64Array#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 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 - i64.const 0 - i64.store offset=8 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=16 - 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 $5 i64) local.get $0 - i32.load offset=8 + local.tee $1 + i32.load offset=4 local.set $4 local.get $0 - i32.load offset=4 - local.set $5 - global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.load offset=8 i32.const 3 - call $~lib/rt/itcms/__new - local.tee $1 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.const 0 - call $~lib/rt/itcms/__new - local.tee $3 - i32.store offset=16 + i32.shr_u + i32.const 1 + i32.sub + local.set $0 loop $for-loop|0 + local.get $0 local.get $2 - local.get $4 - i32.lt_s + i32.gt_u if + local.get $4 local.get $2 - local.get $5 + i32.const 3 + i32.shl i32.add - i32.load8_s - local.set $6 - global.get $~lib/memory/__stack_pointer + local.tee $3 + i64.load + local.set $5 + local.get $3 + local.get $4 local.get $0 - i32.store offset=20 i32.const 3 - global.set $~argumentsLength - local.get $2 - local.get $3 + i32.shl i32.add - local.get $6 - local.get $2 - local.get $0 - i32.const 3600 - i32.load - call_indirect (type $i32_i32_i32_=>_i32) - i32.store8 + local.tee $3 + i64.load + i64.store + local.get $3 + local.get $5 + i64.store local.get $2 i32.const 1 i32.add local.set $2 + local.get $0 + i32.const 1 + i32.sub + local.set $0 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 24 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $1 ) - (func $std/typedarray/testArrayMap<~lib/typedarray/Int8Array,i8> - (local $0 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 - 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 + (func $~lib/typedarray/Uint64Array#reverse (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i64) local.get $0 - i32.store offset=4 + local.tee $1 + i32.load offset=4 + local.set $4 local.get $0 + i32.load offset=8 + i32.const 3 + i32.shr_u i32.const 1 - i32.const 2 - call $~lib/typedarray/Int8Array#__set - global.get $~lib/memory/__stack_pointer + i32.sub + local.set $0 + loop $for-loop|0 + local.get $0 + local.get $2 + i32.gt_u + if + local.get $4 + local.get $2 + i32.const 3 + i32.shl + i32.add + local.tee $3 + i64.load + local.set $5 + local.get $3 + local.get $4 + local.get $0 + i32.const 3 + i32.shl + i32.add + local.tee $3 + i64.load + i64.store + local.get $3 + local.get $5 + i64.store + local.get $2 + i32.const 1 + i32.add + local.set $2 + local.get $0 + i32.const 1 + i32.sub + local.set $0 + br $for-loop|0 + end + end + local.get $1 + ) + (func $~lib/typedarray/Float32Array#reverse (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 f32) local.get $0 - i32.store offset=4 + local.tee $1 + i32.load offset=4 + local.set $4 local.get $0 + i32.load offset=8 i32.const 2 - i32.const 3 - call $~lib/typedarray/Int8Array#__set - 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 - local.get $0 - call $~lib/typedarray/Int8Array#map - local.tee $0 - i32.store offset=12 - 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 388 - 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.shr_u 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 $0 - i32.store offset=4 - local.get $0 - 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 + i32.sub + local.set $0 + loop $for-loop|0 + local.get $0 + local.get $2 + i32.gt_u + if + local.get $4 + local.get $2 + i32.const 2 + i32.shl + i32.add + local.tee $3 + f32.load + local.set $5 + local.get $3 + local.get $4 + local.get $0 + i32.const 2 + i32.shl + i32.add + local.tee $3 + f32.load + f32.store + local.get $3 + local.get $5 + f32.store + local.get $2 + i32.const 1 + i32.add + local.set $2 + local.get $0 + i32.const 1 + i32.sub + 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 $1 ) - (func $~lib/typedarray/Uint8Array#map (param $0 i32) (result i32) + (func $~lib/typedarray/Float64Array#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 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 - i64.const 0 - i64.store offset=8 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=16 - 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 $5 f64) local.get $0 - i32.load offset=8 + local.tee $1 + i32.load offset=4 local.set $4 local.get $0 - i32.load offset=4 - local.set $5 - 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 0 - call $~lib/rt/itcms/__new - local.tee $3 - i32.store offset=16 + i32.load offset=8 + i32.const 3 + i32.shr_u + i32.const 1 + i32.sub + local.set $0 loop $for-loop|0 + local.get $0 local.get $2 - local.get $4 - i32.lt_s + i32.gt_u if + local.get $4 local.get $2 - local.get $5 + i32.const 3 + i32.shl i32.add - i32.load8_u - local.set $6 - global.get $~lib/memory/__stack_pointer + local.tee $3 + f64.load + local.set $5 + local.get $3 + local.get $4 local.get $0 - i32.store offset=20 i32.const 3 - global.set $~argumentsLength - local.get $2 - local.get $3 + i32.shl i32.add - local.get $6 - local.get $2 - local.get $0 - i32.const 3632 - i32.load - call_indirect (type $i32_i32_i32_=>_i32) - i32.store8 + local.tee $3 + f64.load + f64.store + local.get $3 + local.get $5 + f64.store local.get $2 i32.const 1 i32.add local.set $2 + local.get $0 + i32.const 1 + i32.sub + local.set $0 br $for-loop|0 end end local.get $1 + ) + (func $~lib/typedarray/Int8Array#indexOf (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + i32.const -1 + local.set $3 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.0 + local.get $2 + local.get $0 + i32.load offset=8 + local.tee $4 + i32.ge_s + i32.const 1 + local.get $4 + select + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.0 + local.get $2 + i32.const 0 + i32.lt_s + if + local.get $2 + local.get $4 + i32.add + local.tee $2 + i32.const 0 + local.get $2 + i32.const 0 + i32.gt_s + select + local.set $2 + end + 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 $2 + local.tee $3 + local.get $0 + 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 + local.get $3 + i32.const 1 + i32.add + local.set $2 + br $while-continue|0 + end + end + i32.const -1 + local.set $3 + end local.get $3 - i32.store - local.get $1 - local.get $3 - call $~lib/rt/itcms/__link - local.get $1 + ) + (func $~lib/typedarray/Int8Array#lastIndexOf (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + i32.const -1 + local.set $3 + block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.0 + local.get $0 + i32.load offset=8 + local.tee $4 + i32.eqz + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.0 + local.get $2 + local.get $4 + i32.add + local.get $4 + i32.const 1 + i32.sub + local.get $2 + local.get $2 + local.get $4 + i32.ge_s + select + local.get $2 + i32.const 0 + i32.lt_s + select + local.set $2 + 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.tee $3 + local.get $0 + 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 + local.get $3 + i32.const 1 + i32.sub + local.set $2 + br $while-continue|0 + end + end + i32.const -1 + local.set $3 + end 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 24 - 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) + block $1of1 + block $0of1 + block $outOfRange + global.get $~argumentsLength + i32.const 1 + i32.sub + br_table $0of1 $1of1 $outOfRange + end + unreachable + end + local.get $0 + i32.load offset=8 + local.set $2 + end + local.get $0 local.get $1 + local.get $2 + call $~lib/typedarray/Int8Array#lastIndexOf ) - (func $std/typedarray/testArrayMap<~lib/typedarray/Uint8Array,u8> + (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 16 + i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check @@ -9332,521 +7485,436 @@ 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 - i32.const 3 - call $~lib/typedarray/Uint8Array#constructor - local.tee $0 + i32.const 7024 i32.store + i32.const 7036 + i32.load + local.tee $0 + local.set $2 global.get $~lib/memory/__stack_pointer local.get $0 + call $~lib/typedarray/Int8Array#constructor + local.tee $0 i32.store offset=4 + loop $for-loop|0 + local.get $1 + local.get $2 + i32.lt_s + if + local.get $0 + local.get $1 + i32.const 7024 + local.get $1 + call $~lib/array/Array#__get + i32.const 24 + i32.shl + i32.const 24 + i32.shr_s + call $~lib/typedarray/Int8Array#__set + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|0 + end + end local.get $0 i32.const 0 - i32.const 1 - call $~lib/typedarray/Uint8Array#__set - global.get $~lib/memory/__stack_pointer + i32.const 0 + call $~lib/typedarray/Int8Array#indexOf + if + i32.const 0 + i32.const 1568 + i32.const 580 + i32.const 3 + call $~lib/builtins/abort + unreachable + end local.get $0 - i32.store offset=4 + 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 581 + i32.const 3 + call $~lib/builtins/abort + unreachable + end local.get $0 - i32.const 1 - i32.const 2 - call $~lib/typedarray/Uint8Array#__set - global.get $~lib/memory/__stack_pointer + 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 582 + i32.const 3 + call $~lib/builtins/abort + unreachable + end local.get $0 - i32.store offset=4 + 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 583 + i32.const 3 + call $~lib/builtins/abort + unreachable + end local.get $0 + i32.const 3 i32.const 2 + call $~lib/typedarray/Int8Array#indexOf i32.const 3 - call $~lib/typedarray/Uint8Array#__set - 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.ne + if + i32.const 0 + i32.const 1568 + i32.const 584 + i32.const 3 + call $~lib/builtins/abort + unreachable + end local.get $0 - call $~lib/typedarray/Uint8Array#map - local.tee $0 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer + 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 585 + i32.const 3 + call $~lib/builtins/abort + unreachable + end local.get $0 - i32.store offset=4 + 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 586 + i32.const 3 + call $~lib/builtins/abort + unreachable + end local.get $0 - i32.const 0 - call $~lib/typedarray/Uint8Array#__get 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 388 + i32.const 587 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/Uint8Array#__get - i32.const 4 + i32.const -100 + call $~lib/typedarray/Int8Array#indexOf + i32.const 1 i32.ne if i32.const 0 i32.const 1568 - i32.const 389 + i32.const 588 i32.const 3 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 + i32.const 1 + global.set $~argumentsLength local.get $0 - i32.const 2 - call $~lib/typedarray/Uint8Array#__get - i32.const 9 - i32.ne + i32.const 0 + call $~lib/typedarray/Int8Array#lastIndexOf@varargs if i32.const 0 i32.const 1568 - i32.const 390 + i32.const 590 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 - ) - (func $~lib/typedarray/Uint8ClampedArray#map (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 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 - i64.const 0 - i64.store offset=8 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=16 - 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 - i32.load offset=8 - local.set $4 + i32.const 1 + global.set $~argumentsLength local.get $0 - i32.load offset=4 - local.set $5 - 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 0 - 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 $5 - i32.add - i32.load8_u - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=20 - i32.const 3 - global.set $~argumentsLength - local.get $2 - local.get $3 - i32.add - local.get $6 - local.get $2 - local.get $0 - i32.const 3664 - i32.load - call_indirect (type $i32_i32_i32_=>_i32) - i32.store8 - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $for-loop|0 - end + i32.const 11 + call $~lib/typedarray/Int8Array#lastIndexOf@varargs + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 591 + i32.const 3 + call $~lib/builtins/abort + unreachable 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 24 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $1 - ) - (func $std/typedarray/testArrayMap<~lib/typedarray/Uint8ClampedArray,u8> - (local $0 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 - 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 + global.set $~argumentsLength local.get $0 + i32.const -1 + call $~lib/typedarray/Int8Array#lastIndexOf@varargs + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 592 + i32.const 3 + call $~lib/builtins/abort + unreachable + end i32.const 1 - i32.const 2 - call $~lib/typedarray/Uint8ClampedArray#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 + global.set $~argumentsLength local.get $0 - i32.const 2 i32.const 3 - call $~lib/typedarray/Uint8ClampedArray#__set - 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 - local.get $0 - call $~lib/typedarray/Uint8ClampedArray#map - local.tee $0 - i32.store offset=12 - 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 + call $~lib/typedarray/Int8Array#lastIndexOf@varargs + i32.const 3 i32.ne if i32.const 0 i32.const 1568 - i32.const 388 + i32.const 593 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 3 i32.const 4 + call $~lib/typedarray/Int8Array#lastIndexOf + i32.const 3 i32.ne if i32.const 0 i32.const 1568 - i32.const 389 + i32.const 594 i32.const 3 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=4 + 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 595 + i32.const 3 + call $~lib/builtins/abort + unreachable + end local.get $0 + i32.const 3 i32.const 2 - call $~lib/typedarray/Uint8ClampedArray#__get - i32.const 9 + call $~lib/typedarray/Int8Array#lastIndexOf + i32.const -1 i32.ne if i32.const 0 i32.const 1568 - i32.const 390 + i32.const 596 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 - ) - (func $~lib/typedarray/Int16Array#map (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 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 - i64.const 0 - i64.store offset=8 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=16 - 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 - i32.load offset=8 i32.const 1 - i32.shr_u - local.set $4 - local.get $0 - i32.load offset=4 - local.set $5 - 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 100 + call $~lib/typedarray/Int8Array#lastIndexOf i32.const 1 - i32.shl - local.tee $6 - i32.const 0 - 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 $5 - local.get $3 - i32.const 1 - i32.shl - local.tee $7 - i32.add - i32.load16_s - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=20 - i32.const 3 - global.set $~argumentsLength - local.get $2 - local.get $7 - i32.add - local.get $8 - local.get $3 - local.get $0 - i32.const 3696 - i32.load - call_indirect (type $i32_i32_i32_=>_i32) - i32.store16 - local.get $3 - i32.const 1 - i32.add - local.set $3 - br $for-loop|0 - end + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 597 + i32.const 3 + call $~lib/builtins/abort + unreachable 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 $6 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $1 - ) - (func $std/typedarray/testArrayMap<~lib/typedarray/Int16Array,i16> - (local $0 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 - 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 + i32.const -10 + call $~lib/typedarray/Int8Array#lastIndexOf + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 598 + i32.const 3 + call $~lib/builtins/abort + unreachable + end local.get $0 i32.const 1 - i32.const 2 - call $~lib/typedarray/Int16Array#__set + i32.const -11 + call $~lib/typedarray/Int8Array#lastIndexOf + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 599 + i32.const 3 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=4 + i32.const 4 + i32.const 9 + call $~lib/typedarray/Int8Array#subarray + local.tee $0 + i32.store offset=8 local.get $0 - i32.const 2 i32.const 3 - call $~lib/typedarray/Int16Array#__set - global.get $~lib/memory/__stack_pointer + i32.const 0 + call $~lib/typedarray/Int8Array#indexOf + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 603 + i32.const 3 + call $~lib/builtins/abort + unreachable + end 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 4 + i32.const 0 + call $~lib/typedarray/Int8Array#indexOf + if + i32.const 0 + i32.const 1568 + i32.const 604 + i32.const 3 + call $~lib/builtins/abort + unreachable + end local.get $0 - call $~lib/typedarray/Int16Array#map - local.tee $0 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer + 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 605 + i32.const 3 + call $~lib/builtins/abort + unreachable + end local.get $0 - i32.store offset=4 + 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 606 + i32.const 3 + call $~lib/builtins/abort + unreachable + end local.get $0 + i32.const 10 i32.const 0 - call $~lib/typedarray/Int16Array#__get - i32.const 1 + call $~lib/typedarray/Int8Array#indexOf + i32.const -1 i32.ne if i32.const 0 i32.const 1568 - i32.const 388 + i32.const 607 i32.const 3 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=4 + 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 608 + i32.const 3 + call $~lib/builtins/abort + unreachable + end local.get $0 + i32.const 5 + i32.const 1 + call $~lib/typedarray/Int8Array#indexOf 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 609 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#__get - i32.const 9 + call $~lib/typedarray/Int8Array#indexOf + i32.const -1 i32.ne if i32.const 0 i32.const 1568 - i32.const 390 + i32.const 610 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 16 + i32.const 12 i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/typedarray/Uint16Array#map (param $0 i32) (result i32) + (func $std/typedarray/testArrayIndexOfAndLastIndexOf<~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 24 + i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check @@ -9854,632 +7922,433 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=8 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=16 + i32.const 0 + i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $0 + i32.const 7024 i32.store + i32.const 7036 + i32.load + local.tee $0 + local.set $2 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 - i32.load offset=8 - i32.const 1 - i32.shr_u - local.set $4 - local.get $0 - i32.load offset=4 - local.set $5 - 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 $6 - i32.const 0 - call $~lib/rt/itcms/__new - local.tee $2 - i32.store offset=16 + call $~lib/typedarray/Uint8Array#constructor + local.tee $0 + i32.store offset=4 loop $for-loop|0 - local.get $3 - local.get $4 + local.get $1 + local.get $2 i32.lt_s if - local.get $5 - local.get $3 - i32.const 1 - i32.shl - local.tee $7 - i32.add - i32.load16_u - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=20 - i32.const 3 - global.set $~argumentsLength - local.get $2 - local.get $7 - i32.add - local.get $8 - local.get $3 local.get $0 - i32.const 3728 - i32.load - call_indirect (type $i32_i32_i32_=>_i32) - i32.store16 - local.get $3 + local.get $1 + i32.const 7024 + local.get $1 + call $~lib/array/Array#__get + i32.const 255 + i32.and + call $~lib/typedarray/Uint8Array#__set + local.get $1 i32.const 1 i32.add - local.set $3 + local.set $1 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 $6 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $1 - ) - (func $std/typedarray/testArrayMap<~lib/typedarray/Uint16Array,u16> - (local $0 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 - 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 + i32.const 0 + call $~lib/typedarray/Int8Array#indexOf + if + i32.const 0 + i32.const 1568 + i32.const 580 + i32.const 3 + call $~lib/builtins/abort + unreachable + end local.get $0 - i32.store offset=4 + 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 581 + i32.const 3 + call $~lib/builtins/abort + unreachable + end local.get $0 - i32.const 1 - i32.const 2 - call $~lib/typedarray/Uint16Array#__set - global.get $~lib/memory/__stack_pointer + 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 582 + i32.const 3 + call $~lib/builtins/abort + unreachable + end local.get $0 - i32.store offset=4 + 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 583 + i32.const 3 + call $~lib/builtins/abort + unreachable + end local.get $0 + i32.const 3 i32.const 2 + call $~lib/typedarray/Int8Array#indexOf i32.const 3 - call $~lib/typedarray/Uint16Array#__set - 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 - local.get $0 - call $~lib/typedarray/Uint16Array#map - local.tee $0 - i32.store offset=12 - 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 388 + i32.const 584 i32.const 3 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=4 + 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 585 + i32.const 3 + call $~lib/builtins/abort + unreachable + end local.get $0 - i32.const 1 - call $~lib/typedarray/Uint16Array#__get + 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 389 + i32.const 586 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 9 + 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 390 + i32.const 587 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 - ) - (func $~lib/typedarray/Int32Array#map (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 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 - i64.const 0 - i64.store offset=8 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=16 - 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 - i32.load offset=8 - i32.const 2 - i32.shr_u - local.set $4 local.get $0 - i32.load offset=4 - local.set $5 - 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 2 - i32.shl - local.tee $6 - i32.const 0 - 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 $5 - local.get $3 - i32.const 2 - i32.shl - local.tee $7 - i32.add - i32.load - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=20 - i32.const 3 - global.set $~argumentsLength - local.get $2 - local.get $7 - i32.add - local.get $8 - local.get $3 - local.get $0 - i32.const 3760 - i32.load - call_indirect (type $i32_i32_i32_=>_i32) - i32.store - local.get $3 - i32.const 1 - i32.add - local.set $3 - br $for-loop|0 - end + 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 588 + i32.const 3 + call $~lib/builtins/abort + unreachable 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 $6 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $1 - ) - (func $std/typedarray/testArrayMap<~lib/typedarray/Int32Array,i32> - (local $0 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 - 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 + i32.const 1 + global.set $~argumentsLength local.get $0 i32.const 0 + call $~lib/typedarray/Int8Array#lastIndexOf@varargs + if + i32.const 0 + i32.const 1568 + i32.const 590 + i32.const 3 + call $~lib/builtins/abort + unreachable + end i32.const 1 - call $~lib/typedarray/Int32Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 + global.set $~argumentsLength local.get $0 + i32.const 11 + call $~lib/typedarray/Int8Array#lastIndexOf@varargs + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 591 + i32.const 3 + call $~lib/builtins/abort + unreachable + end i32.const 1 - i32.const 2 - call $~lib/typedarray/Int32Array#__set - global.get $~lib/memory/__stack_pointer + global.set $~argumentsLength local.get $0 - i32.store offset=4 + i32.const -1 + call $~lib/typedarray/Int8Array#lastIndexOf@varargs + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 592 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + global.set $~argumentsLength local.get $0 - i32.const 2 i32.const 3 - call $~lib/typedarray/Int32Array#__set - global.get $~lib/memory/__stack_pointer + call $~lib/typedarray/Int8Array#lastIndexOf@varargs + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 593 + i32.const 3 + call $~lib/builtins/abort + unreachable + end 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 3 + i32.const 4 + call $~lib/typedarray/Int8Array#lastIndexOf + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 594 + i32.const 3 + call $~lib/builtins/abort + unreachable + end local.get $0 - call $~lib/typedarray/Int32Array#map - local.tee $0 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer + 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 595 + i32.const 3 + call $~lib/builtins/abort + unreachable + end local.get $0 - i32.store offset=4 + 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 596 + i32.const 3 + call $~lib/builtins/abort + unreachable + end local.get $0 - i32.const 0 - call $~lib/typedarray/Int32Array#__get + 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 388 + i32.const 597 i32.const 3 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=4 + 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 598 + i32.const 3 + call $~lib/builtins/abort + unreachable + end local.get $0 i32.const 1 - call $~lib/typedarray/Int32Array#__get - i32.const 4 + i32.const -11 + call $~lib/typedarray/Int8Array#lastIndexOf + i32.const -1 i32.ne if i32.const 0 i32.const 1568 - i32.const 389 + i32.const 599 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 9 + call $~lib/typedarray/Uint8Array#subarray + local.tee $0 + i32.store offset=8 + 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 390 + i32.const 603 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 - ) - (func $~lib/typedarray/Uint32Array#map (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 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 - i64.const 0 - i64.store offset=8 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=16 - 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 - i32.load offset=8 - i32.const 2 - i32.shr_u - local.set $4 local.get $0 - i32.load offset=4 - local.set $5 - 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 $6 + i32.const 4 i32.const 0 - 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 $5 - local.get $3 - i32.const 2 - i32.shl - local.tee $7 - i32.add - i32.load - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=20 - i32.const 3 - global.set $~argumentsLength - local.get $2 - local.get $7 - i32.add - local.get $8 - local.get $3 - local.get $0 - i32.const 3792 - i32.load - call_indirect (type $i32_i32_i32_=>_i32) - i32.store - local.get $3 - i32.const 1 - i32.add - local.set $3 - br $for-loop|0 - end + call $~lib/typedarray/Int8Array#indexOf + if + i32.const 0 + i32.const 1568 + i32.const 604 + i32.const 3 + call $~lib/builtins/abort + unreachable 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 $6 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $1 - ) - (func $std/typedarray/testArrayMap<~lib/typedarray/Uint32Array,u32> - (local $0 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 - 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 5 i32.const 0 + call $~lib/typedarray/Int8Array#indexOf 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 - 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 - local.get $0 - call $~lib/typedarray/Uint32Array#map - local.tee $0 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 605 + i32.const 3 + call $~lib/builtins/abort + unreachable + end local.get $0 - i32.store offset=4 + 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 606 + i32.const 3 + call $~lib/builtins/abort + unreachable + end local.get $0 + i32.const 10 i32.const 0 - call $~lib/typedarray/Uint32Array#__get - i32.const 1 + call $~lib/typedarray/Int8Array#indexOf + i32.const -1 i32.ne if i32.const 0 i32.const 1568 - i32.const 388 + i32.const 607 i32.const 3 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=4 + 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 608 + i32.const 3 + call $~lib/builtins/abort + unreachable + end local.get $0 + i32.const 5 + i32.const 1 + call $~lib/typedarray/Int8Array#indexOf 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 609 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#__get - i32.const 9 + call $~lib/typedarray/Int8Array#indexOf + i32.const -1 i32.ne if i32.const 0 i32.const 1568 - i32.const 390 + i32.const 610 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 16 + i32.const 12 i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/typedarray/Int64Array#map (param $0 i32) (result i32) + (func $std/typedarray/testArrayIndexOfAndLastIndexOf<~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 i64) global.get $~lib/memory/__stack_pointer - i32.const 24 + i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check @@ -10487,733 +8356,581 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=8 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=16 + i32.const 0 + i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $0 + i32.const 7024 i32.store + i32.const 7036 + i32.load + local.tee $0 + local.set $2 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 - i32.load offset=8 - i32.const 3 - i32.shr_u - local.set $4 local.get $0 - i32.load offset=4 - local.set $5 - 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 3 - i32.shl - local.tee $6 - i32.const 0 - call $~lib/rt/itcms/__new - local.tee $2 - i32.store offset=16 + call $~lib/typedarray/Uint8ClampedArray#constructor + local.tee $0 + i32.store offset=4 loop $for-loop|0 - local.get $3 - local.get $4 + local.get $1 + local.get $2 i32.lt_s if - local.get $5 - local.get $3 - i32.const 3 - i32.shl - local.tee $7 - i32.add - i64.load - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=20 - i32.const 3 - global.set $~argumentsLength - local.get $2 - local.get $7 - i32.add - local.get $8 - local.get $3 local.get $0 - i32.const 3824 - i32.load - call_indirect (type $i64_i32_i32_=>_i64) - i64.store - local.get $3 + local.get $1 + i32.const 7024 + local.get $1 + call $~lib/array/Array#__get + i32.const 255 + i32.and + call $~lib/typedarray/Uint8ClampedArray#__set + local.get $1 i32.const 1 i32.add - local.set $3 + local.set $1 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 $6 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $1 - ) - (func $std/typedarray/testArrayMap<~lib/typedarray/Int64Array,i64> - (local $0 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 - 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 + i32.const 0 + call $~lib/typedarray/Int8Array#indexOf + if + i32.const 0 + i32.const 1568 + i32.const 580 + i32.const 3 + call $~lib/builtins/abort + unreachable + end local.get $0 - i32.store offset=4 + 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 581 + i32.const 3 + call $~lib/builtins/abort + unreachable + end local.get $0 - i32.const 1 - i64.const 2 - call $~lib/typedarray/Int64Array#__set - global.get $~lib/memory/__stack_pointer + 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 582 + i32.const 3 + call $~lib/builtins/abort + unreachable + end local.get $0 - i32.store offset=4 + 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 583 + i32.const 3 + call $~lib/builtins/abort + unreachable + end local.get $0 + i32.const 3 i32.const 2 - i64.const 3 - call $~lib/typedarray/Int64Array#__set - 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 - local.get $0 - call $~lib/typedarray/Int64Array#map - local.tee $0 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer + call $~lib/typedarray/Int8Array#indexOf + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 584 + i32.const 3 + call $~lib/builtins/abort + unreachable + end local.get $0 - i32.store offset=4 + 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 585 + i32.const 3 + call $~lib/builtins/abort + unreachable + end local.get $0 - i32.const 0 - call $~lib/typedarray/Int64Array#__get - i64.const 1 - i64.ne + 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 388 + i32.const 586 i32.const 3 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=4 + 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 587 + i32.const 3 + call $~lib/builtins/abort + unreachable + end local.get $0 i32.const 1 - call $~lib/typedarray/Int64Array#__get - i64.const 4 - i64.ne + i32.const -100 + call $~lib/typedarray/Int8Array#indexOf + i32.const 1 + i32.ne if i32.const 0 i32.const 1568 - i32.const 389 + i32.const 588 i32.const 3 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer + i32.const 1 + global.set $~argumentsLength local.get $0 - i32.store offset=4 + i32.const 0 + call $~lib/typedarray/Int8Array#lastIndexOf@varargs + if + i32.const 0 + i32.const 1568 + i32.const 590 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + global.set $~argumentsLength local.get $0 - i32.const 2 - call $~lib/typedarray/Int64Array#__get - i64.const 9 - i64.ne + i32.const 11 + call $~lib/typedarray/Int8Array#lastIndexOf@varargs + i32.const -1 + i32.ne if i32.const 0 i32.const 1568 - i32.const 390 + i32.const 591 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 - ) - (func $~lib/typedarray/Uint64Array#map (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 i64) - global.get $~lib/memory/__stack_pointer - 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 - i64.const 0 - i64.store offset=8 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=16 - 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 + i32.const 1 + global.set $~argumentsLength local.get $0 - i32.store offset=8 + i32.const -1 + call $~lib/typedarray/Int8Array#lastIndexOf@varargs + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 592 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + global.set $~argumentsLength local.get $0 - i32.load offset=8 i32.const 3 - i32.shr_u - local.set $4 - local.get $0 - i32.load offset=4 - local.set $5 - 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 + call $~lib/typedarray/Int8Array#lastIndexOf@varargs i32.const 3 - i32.shl - local.tee $6 - i32.const 0 - 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 $5 - local.get $3 - i32.const 3 - i32.shl - local.tee $7 - i32.add - i64.load - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=20 - i32.const 3 - global.set $~argumentsLength - local.get $2 - local.get $7 - i32.add - local.get $8 - local.get $3 - local.get $0 - i32.const 3856 - i32.load - call_indirect (type $i64_i32_i32_=>_i64) - i64.store - local.get $3 - i32.const 1 - i32.add - local.set $3 - br $for-loop|0 - end + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 593 + i32.const 3 + call $~lib/builtins/abort + unreachable 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 $6 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $1 - ) - (func $std/typedarray/testArrayMap<~lib/typedarray/Uint64Array,u64> - (local $0 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 - 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 + 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 594 + i32.const 3 + call $~lib/builtins/abort + unreachable + end local.get $0 - i32.store offset=4 + 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 595 + i32.const 3 + call $~lib/builtins/abort + unreachable + end local.get $0 + i32.const 3 i32.const 2 - i64.const 3 - call $~lib/typedarray/Uint64Array#__set - 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 - local.get $0 - call $~lib/typedarray/Uint64Array#map - local.tee $0 - i32.store offset=12 - 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 + call $~lib/typedarray/Int8Array#lastIndexOf + i32.const -1 + i32.ne if i32.const 0 i32.const 1568 - i32.const 388 + i32.const 596 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 4 - i64.ne + i32.const 100 + call $~lib/typedarray/Int8Array#lastIndexOf + i32.const 1 + i32.ne if i32.const 0 i32.const 1568 - i32.const 389 + i32.const 597 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 9 - i64.ne + 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 390 + i32.const 598 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 - ) - (func $~lib/typedarray/Float32Array#map (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 f32) - global.get $~lib/memory/__stack_pointer - 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 - i64.const 0 - i64.store offset=8 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=16 - global.get $~lib/memory/__stack_pointer local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 3888 - i32.store offset=4 + 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 599 + i32.const 3 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer local.get $0 + i32.const 9 + call $~lib/typedarray/Uint8ClampedArray#subarray + local.tee $0 i32.store offset=8 local.get $0 - i32.load offset=8 - i32.const 2 - i32.shr_u - local.set $4 - local.get $0 - i32.load offset=4 - local.set $5 - 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 2 - i32.shl - local.tee $6 + i32.const 3 i32.const 0 - 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 $5 - local.get $3 - i32.const 2 - i32.shl - local.tee $7 - i32.add - f32.load - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=20 - i32.const 3 - global.set $~argumentsLength - local.get $2 - local.get $7 - i32.add - local.get $8 - local.get $3 - local.get $0 - i32.const 3888 - i32.load - call_indirect (type $f32_i32_i32_=>_f32) - f32.store - local.get $3 - i32.const 1 - i32.add - local.set $3 - br $for-loop|0 - end + call $~lib/typedarray/Int8Array#indexOf + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 603 + i32.const 3 + call $~lib/builtins/abort + unreachable 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 $6 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $1 - ) - (func $std/typedarray/testArrayMap<~lib/typedarray/Float32Array,f32> - (local $0 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 - 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 4 i32.const 0 - f32.const 1 - call $~lib/typedarray/Float32Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 + call $~lib/typedarray/Int8Array#indexOf + if + i32.const 0 + i32.const 1568 + i32.const 604 + i32.const 3 + call $~lib/builtins/abort + unreachable + end local.get $0 + i32.const 5 + i32.const 0 + call $~lib/typedarray/Int8Array#indexOf 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 - 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 - local.get $0 - call $~lib/typedarray/Float32Array#map - local.tee $0 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 605 + i32.const 3 + call $~lib/builtins/abort + unreachable + end local.get $0 - i32.store offset=4 + 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 606 + i32.const 3 + call $~lib/builtins/abort + unreachable + end local.get $0 + i32.const 10 i32.const 0 - call $~lib/typedarray/Float32Array#__get - f32.const 1 - f32.ne + call $~lib/typedarray/Int8Array#indexOf + i32.const -1 + i32.ne if i32.const 0 i32.const 1568 - i32.const 388 + i32.const 607 i32.const 3 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=4 + 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 608 + i32.const 3 + call $~lib/builtins/abort + unreachable + end local.get $0 + i32.const 5 i32.const 1 - call $~lib/typedarray/Float32Array#__get - f32.const 4 - f32.ne + call $~lib/typedarray/Int8Array#indexOf + i32.const 1 + i32.ne if i32.const 0 i32.const 1568 - i32.const 389 + i32.const 609 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/Float32Array#__get - f32.const 9 - f32.ne + call $~lib/typedarray/Int8Array#indexOf + i32.const -1 + i32.ne if i32.const 0 i32.const 1568 - i32.const 390 + i32.const 610 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 16 + i32.const 12 i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/typedarray/Float64Array#map (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) + (func $~lib/typedarray/Int16Array#indexOf (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 f64) - global.get $~lib/memory/__stack_pointer - 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 - i64.const 0 - i64.store offset=8 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=16 - 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 - i32.load offset=8 - i32.const 3 - i32.shr_u - local.set $4 - local.get $0 - i32.load offset=4 - local.set $5 - 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 3 - i32.shl - local.tee $6 - i32.const 0 - call $~lib/rt/itcms/__new - local.tee $2 - i32.store offset=16 - loop $for-loop|0 - local.get $3 + i32.const -1 + local.set $3 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.0 + local.get $2 + local.get $0 + i32.load offset=8 + i32.const 1 + i32.shr_u + local.tee $4 + i32.ge_s + i32.const 1 local.get $4 + select + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.0 + local.get $2 + i32.const 0 i32.lt_s if - local.get $5 - local.get $3 - i32.const 3 - i32.shl - local.tee $7 - i32.add - f64.load - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=20 - i32.const 3 - global.set $~argumentsLength local.get $2 - local.get $7 - i32.add - local.get $8 - local.get $3 - local.get $0 - i32.const 3920 - i32.load - call_indirect (type $f64_i32_i32_=>_f64) - f64.store - local.get $3 - i32.const 1 + local.get $4 i32.add - local.set $3 - br $for-loop|0 + local.tee $2 + i32.const 0 + local.get $2 + i32.const 0 + i32.gt_s + select + local.set $2 + end + 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 $0 + local.get $2 + local.tee $3 + 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/Int16Array,i16>|inlined.0 + local.get $3 + i32.const 1 + i32.add + local.set $2 + br $while-continue|0 + end end + i32.const -1 + local.set $3 end + local.get $3 + ) + (func $~lib/typedarray/Int16Array#lastIndexOf (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + i32.const -1 + local.set $3 + block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.0 + local.get $0 + i32.load offset=8 + i32.const 1 + i32.shr_u + local.tee $4 + i32.eqz + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.0 + local.get $2 + local.get $4 + i32.add + local.get $4 + i32.const 1 + i32.sub + local.get $2 + local.get $2 + local.get $4 + i32.ge_s + select + local.get $2 + i32.const 0 + i32.lt_s + select + local.set $2 + 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 $0 + local.get $2 + local.tee $3 + i32.const 1 + i32.shl + i32.add + i32.load16_u + local.get $1 + i32.const 65535 + i32.and + i32.eq + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.0 + local.get $3 + i32.const 1 + i32.sub + local.set $2 + br $while-continue|0 + end + end + i32.const -1 + local.set $3 + end + local.get $3 + ) + (func $~lib/typedarray/Int16Array#lastIndexOf@varargs (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + block $1of1 + block $0of1 + block $outOfRange + global.get $~argumentsLength + i32.const 1 + i32.sub + br_table $0of1 $1of1 $outOfRange + end + unreachable + end + local.get $0 + i32.load offset=8 + i32.const 1 + i32.shr_u + local.set $2 + end + local.get $0 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 $6 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $1 + call $~lib/typedarray/Int16Array#lastIndexOf ) - (func $std/typedarray/testArrayMap<~lib/typedarray/Float64Array,f64> + (func $std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Int16Array,i16> (local $0 i32) + (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 call $~stack_check @@ -11221,622 +8938,435 @@ 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 - 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 - local.get $0 - call $~lib/typedarray/Float64Array#map + i32.const 7024 + i32.store + i32.const 7036 + i32.load local.tee $0 - i32.store offset=12 + local.set $2 global.get $~lib/memory/__stack_pointer local.get $0 + call $~lib/typedarray/Int16Array#constructor + local.tee $0 i32.store offset=4 + loop $for-loop|0 + local.get $1 + local.get $2 + i32.lt_s + if + local.get $0 + local.get $1 + i32.const 7024 + local.get $1 + call $~lib/array/Array#__get + i32.const 16 + i32.shl + i32.const 16 + i32.shr_s + call $~lib/typedarray/Int16Array#__set + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|0 + end + end local.get $0 i32.const 0 - call $~lib/typedarray/Float64Array#__get - f64.const 1 - f64.ne + i32.const 0 + call $~lib/typedarray/Int16Array#indexOf if i32.const 0 i32.const 1568 - i32.const 388 + i32.const 580 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 4 - f64.ne + 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 389 + i32.const 581 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 9 - f64.ne + 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 390 + i32.const 582 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 - ) - (func $~lib/typedarray/Int8Array#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) - global.get $~lib/memory/__stack_pointer - 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 - i64.const 0 - i64.store offset=8 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=16 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 3952 - 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 - i32.const 12 i32.const 3 - call $~lib/rt/itcms/__new - local.tee $2 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.const 0 - call $~lib/rt/itcms/__new - local.tee $5 - i32.store offset=16 - local.get $0 - i32.load offset=4 - local.set $7 - loop $for-loop|0 - local.get $3 - local.get $4 - i32.lt_s - if - local.get $3 - local.get $7 - i32.add - i32.load8_s - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=20 - i32.const 3 - global.set $~argumentsLength - local.get $6 - local.get $3 - local.get $0 - i32.const 3952 - i32.load - call_indirect (type $i32_i32_i32_=>_i32) - if - local.get $1 - local.get $5 - i32.add - local.get $6 - i32.store8 - local.get $1 - i32.const 1 - 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 $5 - local.get $1 - call $~lib/rt/itcms/__renew - local.tee $0 - i32.store - local.get $2 - local.get $0 - call $~lib/rt/itcms/__link - local.get $2 - local.get $1 - i32.store offset=8 - local.get $2 - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $2 - ) - (func $std/typedarray/testArrayFilter<~lib/typedarray/Int8Array,i8> - (local $0 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 - global.get $~lib/memory/__stack_pointer - i32.const 6 - 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 - local.get $0 - i32.store offset=4 - local.get $0 + call $~lib/typedarray/Int16Array#indexOf i32.const 3 - i32.const 4 - call $~lib/typedarray/Int8Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 5 - i32.const 5 - call $~lib/typedarray/Int8Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 3952 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - call $~lib/typedarray/Int8Array#filter - local.tee $0 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.load offset=4 - local.get $0 - i32.load - i32.sub + i32.ne if i32.const 0 i32.const 1568 - i32.const 413 + i32.const 583 i32.const 3 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 local.get $0 - i32.load offset=8 + i32.const 3 + i32.const 2 + call $~lib/typedarray/Int16Array#indexOf i32.const 3 i32.ne if i32.const 0 i32.const 1568 - i32.const 414 + i32.const 584 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 0 - call $~lib/typedarray/Int8Array#__get + 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 415 + i32.const 585 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 3 i32.const 4 + call $~lib/typedarray/Int16Array#indexOf + i32.const -1 i32.ne if i32.const 0 i32.const 1568 - i32.const 416 + i32.const 586 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 5 + 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 417 + i32.const 587 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 - ) - (func $~lib/typedarray/Uint8Array#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) - global.get $~lib/memory/__stack_pointer - 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 - i64.const 0 - i64.store offset=8 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=16 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 3984 - 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 - i32.const 12 - i32.const 4 - call $~lib/rt/itcms/__new - local.tee $2 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.const 0 - call $~lib/rt/itcms/__new - local.tee $5 - i32.store offset=16 local.get $0 - i32.load offset=4 - local.set $7 - loop $for-loop|0 - local.get $3 - local.get $4 - i32.lt_s - if - local.get $3 - local.get $7 - i32.add - i32.load8_u - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=20 - i32.const 3 - global.set $~argumentsLength - local.get $6 - local.get $3 - local.get $0 - i32.const 3984 - i32.load - call_indirect (type $i32_i32_i32_=>_i32) - if - local.get $1 - local.get $5 - i32.add - local.get $6 - i32.store8 - local.get $1 - i32.const 1 - i32.add - local.set $1 - end - local.get $3 - i32.const 1 - i32.add - local.set $3 - br $for-loop|0 - end + 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 588 + i32.const 3 + call $~lib/builtins/abort + unreachable end - local.get $2 - local.get $5 - local.get $1 - call $~lib/rt/itcms/__renew - local.tee $0 - i32.store - local.get $2 - local.get $0 - call $~lib/rt/itcms/__link - local.get $2 - local.get $1 - i32.store offset=8 - local.get $2 - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $2 - ) - (func $std/typedarray/testArrayFilter<~lib/typedarray/Uint8Array,u8> - (local $0 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 - global.get $~lib/memory/__stack_pointer - i32.const 6 - call $~lib/typedarray/Uint8Array#constructor - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 + i32.const 1 + global.set $~argumentsLength local.get $0 i32.const 0 + call $~lib/typedarray/Int16Array#lastIndexOf@varargs + if + i32.const 0 + i32.const 1568 + i32.const 590 + i32.const 3 + call $~lib/builtins/abort + unreachable + end i32.const 1 - call $~lib/typedarray/Uint8Array#__set - global.get $~lib/memory/__stack_pointer + global.set $~argumentsLength local.get $0 - i32.store offset=4 + i32.const 11 + call $~lib/typedarray/Int16Array#lastIndexOf@varargs + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 591 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + global.set $~argumentsLength local.get $0 + i32.const -1 + call $~lib/typedarray/Int16Array#lastIndexOf@varargs + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 592 + i32.const 3 + call $~lib/builtins/abort + unreachable + end i32.const 1 - i32.const 2 - call $~lib/typedarray/Uint8Array#__set - global.get $~lib/memory/__stack_pointer + global.set $~argumentsLength local.get $0 - i32.store offset=4 + i32.const 3 + call $~lib/typedarray/Int16Array#lastIndexOf@varargs + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 593 + i32.const 3 + call $~lib/builtins/abort + unreachable + end local.get $0 - i32.const 2 i32.const 3 - call $~lib/typedarray/Uint8Array#__set - global.get $~lib/memory/__stack_pointer + i32.const 4 + call $~lib/typedarray/Int16Array#lastIndexOf + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 594 + i32.const 3 + call $~lib/builtins/abort + unreachable + end local.get $0 - i32.store offset=4 + 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 595 + i32.const 3 + call $~lib/builtins/abort + unreachable + end local.get $0 i32.const 3 - i32.const 4 - call $~lib/typedarray/Uint8Array#__set - global.get $~lib/memory/__stack_pointer + i32.const 2 + call $~lib/typedarray/Int16Array#lastIndexOf + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 596 + i32.const 3 + call $~lib/builtins/abort + unreachable + end local.get $0 - i32.store offset=4 + 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 597 + i32.const 3 + call $~lib/builtins/abort + unreachable + end local.get $0 - i32.const 5 - i32.const 5 - call $~lib/typedarray/Uint8Array#__set - global.get $~lib/memory/__stack_pointer + 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 598 + i32.const 3 + call $~lib/builtins/abort + unreachable + end local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 3984 - i32.store offset=8 + 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 599 + i32.const 3 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer local.get $0 - call $~lib/typedarray/Uint8Array#filter + i32.const 9 + call $~lib/typedarray/Int16Array#subarray local.tee $0 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.load offset=4 + i32.store offset=8 local.get $0 - i32.load - i32.sub + 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 413 + i32.const 603 i32.const 3 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=4 + i32.const 4 + i32.const 0 + call $~lib/typedarray/Int16Array#indexOf + if + i32.const 0 + i32.const 1568 + i32.const 604 + i32.const 3 + call $~lib/builtins/abort + unreachable + end local.get $0 - i32.load offset=8 - i32.const 3 + 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 414 + i32.const 605 i32.const 3 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=4 + 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 606 + i32.const 3 + call $~lib/builtins/abort + unreachable + end local.get $0 + i32.const 10 i32.const 0 - call $~lib/typedarray/Uint8Array#__get - i32.const 3 + call $~lib/typedarray/Int16Array#indexOf + i32.const -1 i32.ne if i32.const 0 i32.const 1568 - i32.const 415 + i32.const 607 i32.const 3 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=4 + 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 608 + i32.const 3 + call $~lib/builtins/abort + unreachable + end local.get $0 + i32.const 5 + i32.const 1 + call $~lib/typedarray/Int16Array#indexOf 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 609 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.const 5 + i32.const 2 + call $~lib/typedarray/Int16Array#indexOf + i32.const -1 i32.ne if i32.const 0 i32.const 1568 - i32.const 417 + i32.const 610 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 16 + i32.const 12 i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/typedarray/Uint8ClampedArray#filter (param $0 i32) (result i32) + (func $std/typedarray/testArrayIndexOfAndLastIndexOf<~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) global.get $~lib/memory/__stack_pointer - i32.const 24 + i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check @@ -11844,640 +9374,577 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=8 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=16 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 4016 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 + i32.const 0 i32.store offset=8 - local.get $0 - i32.load offset=8 - local.set $4 global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.const 5 - call $~lib/rt/itcms/__new - local.tee $2 - i32.store offset=12 + i32.const 7024 + i32.store + i32.const 7036 + i32.load + local.tee $0 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $4 - i32.const 0 - call $~lib/rt/itcms/__new - local.tee $5 - i32.store offset=16 local.get $0 - i32.load offset=4 - local.set $7 + call $~lib/typedarray/Uint16Array#constructor + local.tee $0 + i32.store offset=4 loop $for-loop|0 - local.get $3 - local.get $4 + local.get $1 + local.get $2 i32.lt_s if - local.get $3 - local.get $7 - i32.add - i32.load8_u - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=20 - i32.const 3 - global.set $~argumentsLength - local.get $6 - local.get $3 local.get $0 - i32.const 4016 - i32.load - call_indirect (type $i32_i32_i32_=>_i32) - if - local.get $1 - local.get $5 - i32.add - local.get $6 - i32.store8 - local.get $1 - i32.const 1 - i32.add - local.set $1 - end - local.get $3 + local.get $1 + i32.const 7024 + local.get $1 + call $~lib/array/Array#__get + i32.const 65535 + i32.and + call $~lib/typedarray/Uint16Array#__set + local.get $1 i32.const 1 i32.add - local.set $3 + local.set $1 br $for-loop|0 end end - local.get $2 - local.get $5 - local.get $1 - call $~lib/rt/itcms/__renew - local.tee $0 - i32.store - local.get $2 - local.get $0 - call $~lib/rt/itcms/__link - local.get $2 - local.get $1 - i32.store offset=8 - local.get $2 - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $2 - ) - (func $std/typedarray/testArrayFilter<~lib/typedarray/Uint8ClampedArray,u8> - (local $0 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 - global.get $~lib/memory/__stack_pointer - i32.const 6 - 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 + i32.const 0 + call $~lib/typedarray/Int16Array#indexOf + if + i32.const 0 + i32.const 1568 + i32.const 580 + i32.const 3 + call $~lib/builtins/abort + unreachable + end local.get $0 - i32.const 1 - i32.const 2 - call $~lib/typedarray/Uint8ClampedArray#__set - global.get $~lib/memory/__stack_pointer + 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 581 + i32.const 3 + call $~lib/builtins/abort + unreachable + end local.get $0 - i32.store offset=4 + 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 582 + i32.const 3 + call $~lib/builtins/abort + unreachable + end local.get $0 - i32.const 2 i32.const 3 - call $~lib/typedarray/Uint8ClampedArray#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 + i32.const 0 + call $~lib/typedarray/Int16Array#indexOf i32.const 3 - i32.const 4 - call $~lib/typedarray/Uint8ClampedArray#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 5 - i32.const 5 - call $~lib/typedarray/Uint8ClampedArray#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 4016 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - call $~lib/typedarray/Uint8ClampedArray#filter - local.tee $0 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.load offset=4 - local.get $0 - i32.load - i32.sub + i32.ne if i32.const 0 i32.const 1568 - i32.const 413 + i32.const 583 i32.const 3 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 local.get $0 - i32.load offset=8 + i32.const 3 + i32.const 2 + call $~lib/typedarray/Int16Array#indexOf i32.const 3 i32.ne if i32.const 0 i32.const 1568 - i32.const 414 + i32.const 584 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 0 - call $~lib/typedarray/Uint8ClampedArray#__get + 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 415 + i32.const 585 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 3 i32.const 4 + call $~lib/typedarray/Int16Array#indexOf + i32.const -1 i32.ne if i32.const 0 i32.const 1568 - i32.const 416 + i32.const 586 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 5 + 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 417 + i32.const 587 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 - ) - (func $~lib/typedarray/Int16Array#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) - global.get $~lib/memory/__stack_pointer - 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 - i64.const 0 - i64.store offset=8 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=16 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 4048 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 local.get $0 - i32.load offset=8 i32.const 1 - i32.shr_u - local.set $3 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.const 6 - call $~lib/rt/itcms/__new - local.tee $2 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $3 + i32.const -100 + call $~lib/typedarray/Int16Array#indexOf i32.const 1 - i32.shl - i32.const 0 - call $~lib/rt/itcms/__new - local.tee $5 - i32.store offset=16 - local.get $0 - i32.load offset=4 - local.set $7 - loop $for-loop|0 - local.get $3 - local.get $4 - i32.gt_s - if - local.get $7 - local.get $4 - i32.const 1 - i32.shl - i32.add - i32.load16_s - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=20 - i32.const 3 - global.set $~argumentsLength - local.get $6 - local.get $4 - local.get $0 - i32.const 4048 - i32.load - call_indirect (type $i32_i32_i32_=>_i32) - if - local.get $5 - local.get $1 - i32.const 1 - i32.shl - i32.add - local.get $6 - i32.store16 - local.get $1 - i32.const 1 - i32.add - local.set $1 - end - local.get $4 - i32.const 1 - i32.add - local.set $4 - br $for-loop|0 - end + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 588 + i32.const 3 + call $~lib/builtins/abort + unreachable end - local.get $2 - local.get $5 - local.get $1 i32.const 1 - i32.shl - local.tee $3 - call $~lib/rt/itcms/__renew - local.tee $0 - i32.store - local.get $2 - local.get $0 - call $~lib/rt/itcms/__link - local.get $2 - local.get $3 - i32.store offset=8 - local.get $2 - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $2 - ) - (func $std/typedarray/testArrayFilter<~lib/typedarray/Int16Array,i16> - (local $0 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 - global.get $~lib/memory/__stack_pointer - i32.const 6 - call $~lib/typedarray/Int16Array#constructor - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 + global.set $~argumentsLength local.get $0 i32.const 0 + call $~lib/typedarray/Int16Array#lastIndexOf@varargs + if + i32.const 0 + i32.const 1568 + i32.const 590 + i32.const 3 + call $~lib/builtins/abort + unreachable + end i32.const 1 - call $~lib/typedarray/Int16Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 + global.set $~argumentsLength local.get $0 + i32.const 11 + call $~lib/typedarray/Int16Array#lastIndexOf@varargs + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 591 + i32.const 3 + call $~lib/builtins/abort + unreachable + end i32.const 1 - i32.const 2 - call $~lib/typedarray/Int16Array#__set - global.get $~lib/memory/__stack_pointer + global.set $~argumentsLength local.get $0 - i32.store offset=4 + i32.const -1 + call $~lib/typedarray/Int16Array#lastIndexOf@varargs + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 592 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + global.set $~argumentsLength local.get $0 - i32.const 2 i32.const 3 - call $~lib/typedarray/Int16Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 + call $~lib/typedarray/Int16Array#lastIndexOf@varargs + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 593 + i32.const 3 + call $~lib/builtins/abort + unreachable + end local.get $0 i32.const 3 i32.const 4 - call $~lib/typedarray/Int16Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 5 - i32.const 5 - call $~lib/typedarray/Int16Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 4048 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - call $~lib/typedarray/Int16Array#filter - local.tee $0 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer + call $~lib/typedarray/Int16Array#lastIndexOf + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 594 + i32.const 3 + call $~lib/builtins/abort + unreachable + end local.get $0 - i32.store offset=4 + 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 595 + i32.const 3 + call $~lib/builtins/abort + unreachable + end local.get $0 - i32.load offset=4 + 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 596 + i32.const 3 + call $~lib/builtins/abort + unreachable + end local.get $0 - i32.load - i32.sub + 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 413 + i32.const 597 i32.const 3 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=4 + 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 598 + i32.const 3 + call $~lib/builtins/abort + unreachable + end local.get $0 - i32.load offset=8 i32.const 1 - i32.shr_u - i32.const 3 + i32.const -11 + call $~lib/typedarray/Int16Array#lastIndexOf + i32.const -1 i32.ne if i32.const 0 i32.const 1568 - i32.const 414 + i32.const 599 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=4 + i32.const 9 + call $~lib/typedarray/Uint16Array#subarray + local.tee $0 + i32.store offset=8 local.get $0 - i32.const 0 - call $~lib/typedarray/Int16Array#__get 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 415 + i32.const 603 i32.const 3 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=4 + i32.const 4 + i32.const 0 + call $~lib/typedarray/Int16Array#indexOf + if + i32.const 0 + i32.const 1568 + i32.const 604 + i32.const 3 + call $~lib/builtins/abort + unreachable + end local.get $0 + i32.const 5 + i32.const 0 + call $~lib/typedarray/Int16Array#indexOf 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 605 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 5 + 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 417 + i32.const 606 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 - ) - (func $~lib/typedarray/Uint16Array#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) - global.get $~lib/memory/__stack_pointer - 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 - i64.const 0 - i64.store offset=8 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=16 - global.get $~lib/memory/__stack_pointer local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 4080 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer + 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 607 + i32.const 3 + call $~lib/builtins/abort + unreachable + end local.get $0 - i32.store offset=8 + 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 608 + i32.const 3 + call $~lib/builtins/abort + unreachable + end local.get $0 - i32.load offset=8 + i32.const 5 i32.const 1 - i32.shr_u - local.set $3 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.const 7 - call $~lib/rt/itcms/__new - local.tee $2 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $3 + call $~lib/typedarray/Int16Array#indexOf i32.const 1 - i32.shl - i32.const 0 - call $~lib/rt/itcms/__new - local.tee $5 - i32.store offset=16 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 609 + i32.const 3 + call $~lib/builtins/abort + unreachable + end local.get $0 - i32.load offset=4 - local.set $7 - loop $for-loop|0 - local.get $3 + 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 610 + 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#indexOf (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + i32.const -1 + local.set $3 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.0 + local.get $2 + local.get $0 + i32.load offset=8 + i32.const 2 + i32.shr_u + local.tee $4 + i32.ge_s + i32.const 1 local.get $4 - i32.gt_s + select + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.0 + local.get $2 + i32.const 0 + i32.lt_s if - local.get $7 + local.get $2 local.get $4 - i32.const 1 - i32.shl i32.add - i32.load16_u - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=20 - i32.const 3 - global.set $~argumentsLength - local.get $6 + local.tee $2 + i32.const 0 + local.get $2 + i32.const 0 + i32.gt_s + select + local.set $2 + end + local.get $0 + i32.load offset=4 + local.set $0 + loop $while-continue|0 + local.get $2 local.get $4 - local.get $0 - i32.const 4080 - i32.load - call_indirect (type $i32_i32_i32_=>_i32) + i32.lt_s if - local.get $5 local.get $1 - i32.const 1 + local.get $0 + local.get $2 + local.tee $3 + i32.const 2 i32.shl i32.add - local.get $6 - i32.store16 - local.get $1 + i32.load + i32.eq + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.0 + local.get $3 i32.const 1 i32.add - local.set $1 + local.set $2 + br $while-continue|0 end - local.get $4 - i32.const 1 - i32.add - local.set $4 - br $for-loop|0 end + i32.const -1 + local.set $3 end - local.get $2 - local.get $5 - local.get $1 - i32.const 1 - i32.shl - local.tee $3 - call $~lib/rt/itcms/__renew - local.tee $0 - i32.store - local.get $2 - local.get $0 - call $~lib/rt/itcms/__link - local.get $2 local.get $3 - i32.store offset=8 - local.get $2 + ) + (func $~lib/typedarray/Int32Array#lastIndexOf (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + i32.const -1 + local.set $3 + block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.0 + local.get $0 + i32.load offset=8 + i32.const 2 + i32.shr_u + local.tee $4 + i32.eqz + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.0 + local.get $2 + local.get $4 + i32.add + local.get $4 + i32.const 1 + i32.sub + local.get $2 + local.get $2 + local.get $4 + i32.ge_s + select + local.get $2 + i32.const 0 + i32.lt_s + select + local.set $2 + 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 $1 + local.get $0 + local.get $2 + local.tee $3 + i32.const 2 + i32.shl + i32.add + i32.load + i32.eq + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.0 + local.get $3 + i32.const 1 + i32.sub + local.set $2 + br $while-continue|0 + end + end + i32.const -1 + local.set $3 + end + local.get $3 + ) + (func $~lib/typedarray/Int32Array#lastIndexOf@varargs (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + block $1of1 + block $0of1 + block $outOfRange + global.get $~argumentsLength + i32.const 1 + i32.sub + br_table $0of1 $1of1 $outOfRange + end + unreachable + end + local.get $0 + i32.load offset=8 + i32.const 2 + i32.shr_u + local.set $2 + end local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.add - global.set $~lib/memory/__stack_pointer + local.get $1 local.get $2 + call $~lib/typedarray/Int32Array#lastIndexOf ) - (func $std/typedarray/testArrayFilter<~lib/typedarray/Uint16Array,u16> + (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 16 + i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check @@ -12485,809 +9952,576 @@ 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 - i32.const 6 - call $~lib/typedarray/Uint16Array#constructor - local.tee $0 + i32.const 7024 i32.store + i32.const 7036 + i32.load + local.tee $0 + local.set $2 global.get $~lib/memory/__stack_pointer local.get $0 + call $~lib/typedarray/Int32Array#constructor + local.tee $0 i32.store offset=4 + loop $for-loop|0 + local.get $1 + local.get $2 + i32.lt_s + if + local.get $0 + local.get $1 + i32.const 7024 + local.get $1 + call $~lib/array/Array#__get + call $~lib/typedarray/Int32Array#__set + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|0 + end + end local.get $0 i32.const 0 - i32.const 1 - call $~lib/typedarray/Uint16Array#__set - global.get $~lib/memory/__stack_pointer + i32.const 0 + call $~lib/typedarray/Int32Array#indexOf + if + i32.const 0 + i32.const 1568 + i32.const 580 + i32.const 3 + call $~lib/builtins/abort + unreachable + end local.get $0 - i32.store offset=4 + 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 581 + i32.const 3 + call $~lib/builtins/abort + unreachable + end local.get $0 - i32.const 1 - i32.const 2 - call $~lib/typedarray/Uint16Array#__set - global.get $~lib/memory/__stack_pointer + 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 582 + i32.const 3 + call $~lib/builtins/abort + unreachable + end local.get $0 - i32.store offset=4 + 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 583 + i32.const 3 + call $~lib/builtins/abort + unreachable + end local.get $0 + i32.const 3 i32.const 2 + call $~lib/typedarray/Int32Array#indexOf i32.const 3 - call $~lib/typedarray/Uint16Array#__set - global.get $~lib/memory/__stack_pointer + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 584 + i32.const 3 + call $~lib/builtins/abort + unreachable + end local.get $0 - i32.store offset=4 + 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 585 + i32.const 3 + call $~lib/builtins/abort + unreachable + end local.get $0 i32.const 3 i32.const 4 - call $~lib/typedarray/Uint16Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 5 - i32.const 5 - call $~lib/typedarray/Uint16Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 4080 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - call $~lib/typedarray/Uint16Array#filter - local.tee $0 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.load offset=4 - local.get $0 - i32.load - i32.sub + call $~lib/typedarray/Int32Array#indexOf + i32.const -1 + i32.ne if i32.const 0 i32.const 1568 - i32.const 413 + i32.const 586 i32.const 3 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 local.get $0 - i32.load offset=8 i32.const 1 - i32.shr_u - i32.const 3 + i32.const 10 + call $~lib/typedarray/Int32Array#indexOf + i32.const -1 i32.ne if i32.const 0 i32.const 1568 - i32.const 414 + i32.const 587 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 0 - call $~lib/typedarray/Uint16Array#__get - i32.const 3 + 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 415 + i32.const 588 i32.const 3 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 + i32.const 1 + global.set $~argumentsLength local.get $0 + i32.const 0 + call $~lib/typedarray/Int32Array#lastIndexOf@varargs + if + i32.const 0 + i32.const 1568 + i32.const 590 + i32.const 3 + call $~lib/builtins/abort + unreachable + end i32.const 1 - call $~lib/typedarray/Uint16Array#__get - i32.const 4 + global.set $~argumentsLength + local.get $0 + i32.const 11 + call $~lib/typedarray/Int32Array#lastIndexOf@varargs + i32.const -1 i32.ne if i32.const 0 i32.const 1568 - i32.const 416 + i32.const 591 i32.const 3 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer + i32.const 1 + global.set $~argumentsLength local.get $0 - i32.store offset=4 + i32.const -1 + call $~lib/typedarray/Int32Array#lastIndexOf@varargs + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 592 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + global.set $~argumentsLength local.get $0 - i32.const 2 - call $~lib/typedarray/Uint16Array#__get - i32.const 5 + i32.const 3 + call $~lib/typedarray/Int32Array#lastIndexOf@varargs + i32.const 3 i32.ne if i32.const 0 i32.const 1568 - i32.const 417 + i32.const 593 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 - ) - (func $~lib/typedarray/Int32Array#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) - global.get $~lib/memory/__stack_pointer - 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 - i64.const 0 - i64.store offset=8 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=16 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 4112 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - i32.load offset=8 - i32.const 2 - i32.shr_u - local.set $3 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.const 8 - call $~lib/rt/itcms/__new - local.tee $2 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.const 2 - i32.shl - i32.const 0 - call $~lib/rt/itcms/__new - local.tee $5 - i32.store offset=16 - local.get $0 - i32.load offset=4 - local.set $7 - loop $for-loop|0 - local.get $3 - local.get $4 - i32.gt_s - if - local.get $7 - local.get $4 - i32.const 2 - i32.shl - i32.add - i32.load - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=20 - i32.const 3 - global.set $~argumentsLength - local.get $6 - local.get $4 - local.get $0 - i32.const 4112 - i32.load - call_indirect (type $i32_i32_i32_=>_i32) - if - local.get $5 - local.get $1 - i32.const 2 - i32.shl - i32.add - local.get $6 - i32.store - local.get $1 - i32.const 1 - i32.add - local.set $1 - end - local.get $4 - i32.const 1 - i32.add - local.set $4 - br $for-loop|0 - end - end - local.get $2 - local.get $5 - local.get $1 - i32.const 2 - i32.shl - local.tee $3 - call $~lib/rt/itcms/__renew - local.tee $0 - i32.store - local.get $2 - local.get $0 - call $~lib/rt/itcms/__link - local.get $2 - local.get $3 - i32.store offset=8 - local.get $2 - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $2 - ) - (func $std/typedarray/testArrayFilter<~lib/typedarray/Int32Array,i32> - (local $0 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 - global.get $~lib/memory/__stack_pointer - i32.const 6 - 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 - local.get $0 - i32.store offset=4 local.get $0 i32.const 3 i32.const 4 - call $~lib/typedarray/Int32Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 5 - i32.const 5 - call $~lib/typedarray/Int32Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 4112 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - call $~lib/typedarray/Int32Array#filter - local.tee $0 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.load offset=4 - local.get $0 - i32.load - i32.sub + call $~lib/typedarray/Int32Array#lastIndexOf + i32.const 3 + i32.ne if i32.const 0 i32.const 1568 - i32.const 413 + i32.const 594 i32.const 3 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=4 - local.get $0 - i32.load offset=8 - i32.const 2 - i32.shr_u + 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 414 + i32.const 595 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 0 - call $~lib/typedarray/Int32Array#__get 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 415 + i32.const 596 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 4 + i32.const 100 + call $~lib/typedarray/Int32Array#lastIndexOf + i32.const 1 i32.ne if i32.const 0 i32.const 1568 - i32.const 416 + i32.const 597 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 5 + 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 417 + i32.const 598 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 - ) - (func $~lib/typedarray/Uint32Array#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) - global.get $~lib/memory/__stack_pointer - 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 - i64.const 0 - i64.store offset=8 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=16 - global.get $~lib/memory/__stack_pointer local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 4144 - i32.store offset=4 + 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 599 + 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=8 - i32.const 2 - i32.shr_u - local.set $3 - global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 4 i32.const 9 - call $~lib/rt/itcms/__new - local.tee $2 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.const 2 - i32.shl - i32.const 0 - call $~lib/rt/itcms/__new - local.tee $5 - i32.store offset=16 - local.get $0 - i32.load offset=4 - local.set $7 - loop $for-loop|0 - local.get $3 - local.get $4 - i32.gt_s - if - local.get $7 - local.get $4 - i32.const 2 - i32.shl - i32.add - i32.load - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=20 - i32.const 3 - global.set $~argumentsLength - local.get $6 - local.get $4 - local.get $0 - i32.const 4144 - i32.load - call_indirect (type $i32_i32_i32_=>_i32) - if - local.get $5 - local.get $1 - i32.const 2 - i32.shl - i32.add - local.get $6 - i32.store - local.get $1 - i32.const 1 - i32.add - local.set $1 - end - local.get $4 - i32.const 1 - i32.add - local.set $4 - br $for-loop|0 - end - end - local.get $2 - local.get $5 - local.get $1 - i32.const 2 - i32.shl - local.tee $3 - call $~lib/rt/itcms/__renew + call $~lib/typedarray/Int32Array#subarray local.tee $0 - i32.store - local.get $2 - local.get $0 - call $~lib/rt/itcms/__link - local.get $2 - local.get $3 i32.store offset=8 - local.get $2 - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $2 - ) - (func $std/typedarray/testArrayFilter<~lib/typedarray/Uint32Array,u32> - (local $0 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 - global.get $~lib/memory/__stack_pointer - i32.const 6 - 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 - 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 - local.get $0 - i32.store offset=4 + i32.const 0 + call $~lib/typedarray/Int32Array#indexOf + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 603 + i32.const 3 + call $~lib/builtins/abort + unreachable + end local.get $0 - i32.const 3 i32.const 4 - call $~lib/typedarray/Uint32Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 + i32.const 0 + call $~lib/typedarray/Int32Array#indexOf + if + i32.const 0 + i32.const 1568 + i32.const 604 + i32.const 3 + call $~lib/builtins/abort + unreachable + end local.get $0 i32.const 5 - i32.const 5 - call $~lib/typedarray/Uint32Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 4144 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - call $~lib/typedarray/Uint32Array#filter - local.tee $0 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.load offset=4 - local.get $0 - i32.load - i32.sub + i32.const 0 + call $~lib/typedarray/Int32Array#indexOf + i32.const 1 + i32.ne if i32.const 0 i32.const 1568 - i32.const 413 + i32.const 605 i32.const 3 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 local.get $0 - i32.load offset=8 - i32.const 2 - i32.shr_u - i32.const 3 + 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 414 + i32.const 606 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#__get - i32.const 3 + call $~lib/typedarray/Int32Array#indexOf + i32.const -1 i32.ne if i32.const 0 i32.const 1568 - i32.const 415 + i32.const 607 i32.const 3 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=4 + 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 608 + i32.const 3 + call $~lib/builtins/abort + unreachable + end local.get $0 + i32.const 5 + i32.const 1 + call $~lib/typedarray/Int32Array#indexOf 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 609 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 5 + i32.const 2 + call $~lib/typedarray/Int32Array#indexOf + i32.const -1 i32.ne if i32.const 0 i32.const 1568 - i32.const 417 + i32.const 610 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 16 + i32.const 12 i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/typedarray/Int64Array#filter (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) + (func $~lib/typedarray/Uint32Array#indexOf (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) - (local $5 i32) - (local $6 i64) - (local $7 i32) - global.get $~lib/memory/__stack_pointer - 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 - i64.const 0 - i64.store offset=8 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=16 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 4176 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - i32.load offset=8 - i32.const 3 - i32.shr_u + i32.const -1 local.set $3 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.const 10 - call $~lib/rt/itcms/__new - local.tee $2 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.const 3 - i32.shl - i32.const 0 - call $~lib/rt/itcms/__new - local.tee $5 - i32.store offset=16 - local.get $0 - i32.load offset=4 - local.set $7 - loop $for-loop|0 - local.get $3 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.0 + local.get $2 + local.get $0 + i32.load offset=8 + i32.const 2 + i32.shr_u + local.tee $4 + i32.ge_s + i32.const 1 local.get $4 - i32.gt_s + select + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.0 + local.get $2 + i32.const 0 + i32.lt_s if - local.get $7 + local.get $2 local.get $4 - i32.const 3 - i32.shl i32.add - i64.load - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=20 - i32.const 3 - global.set $~argumentsLength - local.get $6 + local.tee $2 + i32.const 0 + local.get $2 + i32.const 0 + i32.gt_s + select + local.set $2 + end + local.get $0 + i32.load offset=4 + local.set $0 + loop $while-continue|0 + local.get $2 local.get $4 - local.get $0 - i32.const 4176 - i32.load - call_indirect (type $i64_i32_i32_=>_i32) + i32.lt_s if - local.get $5 local.get $1 - i32.const 3 + local.get $0 + local.get $2 + local.tee $3 + i32.const 2 i32.shl i32.add - local.get $6 - i64.store - local.get $1 + i32.load + i32.eq + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.0 + local.get $3 i32.const 1 i32.add - local.set $1 + local.set $2 + br $while-continue|0 end - local.get $4 - i32.const 1 - i32.add - local.set $4 - br $for-loop|0 end + i32.const -1 + local.set $3 end - local.get $2 - local.get $5 - local.get $1 - i32.const 3 - i32.shl - local.tee $3 - call $~lib/rt/itcms/__renew - local.tee $0 - i32.store - local.get $2 - local.get $0 - call $~lib/rt/itcms/__link - local.get $2 local.get $3 - i32.store offset=8 - local.get $2 + ) + (func $~lib/typedarray/Uint32Array#lastIndexOf (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + i32.const -1 + local.set $3 + block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.0 + local.get $0 + i32.load offset=8 + i32.const 2 + i32.shr_u + local.tee $4 + i32.eqz + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.0 + local.get $2 + local.get $4 + i32.add + local.get $4 + i32.const 1 + i32.sub + local.get $2 + local.get $2 + local.get $4 + i32.ge_s + select + local.get $2 + i32.const 0 + i32.lt_s + select + local.set $2 + 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 $1 + local.get $0 + local.get $2 + local.tee $3 + i32.const 2 + i32.shl + i32.add + i32.load + i32.eq + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.0 + local.get $3 + i32.const 1 + i32.sub + local.set $2 + br $while-continue|0 + end + end + i32.const -1 + local.set $3 + end + local.get $3 + ) + (func $~lib/typedarray/Uint32Array#lastIndexOf@varargs (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + block $1of1 + block $0of1 + block $outOfRange + global.get $~argumentsLength + i32.const 1 + i32.sub + br_table $0of1 $1of1 $outOfRange + end + unreachable + end + local.get $0 + i32.load offset=8 + i32.const 2 + i32.shr_u + local.set $2 + end local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.add - global.set $~lib/memory/__stack_pointer + local.get $1 local.get $2 + call $~lib/typedarray/Uint32Array#lastIndexOf ) - (func $std/typedarray/testArrayFilter<~lib/typedarray/Int64Array,i64> + (func $std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Uint32Array,u32> (local $0 i32) + (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 call $~stack_check @@ -13295,809 +10529,575 @@ 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 - i32.const 6 - call $~lib/typedarray/Int64Array#constructor - local.tee $0 + i32.const 7024 i32.store + i32.const 7036 + i32.load + local.tee $0 + local.set $2 global.get $~lib/memory/__stack_pointer local.get $0 + call $~lib/typedarray/Uint32Array#constructor + local.tee $0 i32.store offset=4 + loop $for-loop|0 + local.get $1 + local.get $2 + i32.lt_s + if + local.get $0 + local.get $1 + i32.const 7024 + local.get $1 + call $~lib/array/Array#__get + call $~lib/typedarray/Uint32Array#__set + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|0 + end + end local.get $0 i32.const 0 - i64.const 1 - call $~lib/typedarray/Int64Array#__set - global.get $~lib/memory/__stack_pointer + i32.const 0 + call $~lib/typedarray/Uint32Array#indexOf + if + i32.const 0 + i32.const 1568 + i32.const 580 + i32.const 3 + call $~lib/builtins/abort + unreachable + end local.get $0 - i32.store offset=4 + 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 581 + i32.const 3 + call $~lib/builtins/abort + unreachable + end local.get $0 - i32.const 1 - i64.const 2 - call $~lib/typedarray/Int64Array#__set - global.get $~lib/memory/__stack_pointer + 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 582 + i32.const 3 + call $~lib/builtins/abort + unreachable + end local.get $0 - i32.store offset=4 + 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 583 + i32.const 3 + call $~lib/builtins/abort + unreachable + end local.get $0 + i32.const 3 i32.const 2 - i64.const 3 - call $~lib/typedarray/Int64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 + call $~lib/typedarray/Uint32Array#indexOf i32.const 3 - i64.const 4 - call $~lib/typedarray/Int64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 5 - i64.const 5 - call $~lib/typedarray/Int64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 4176 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - call $~lib/typedarray/Int64Array#filter - local.tee $0 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.load offset=4 - local.get $0 - i32.load - i32.sub + i32.ne if i32.const 0 i32.const 1568 - i32.const 413 + i32.const 584 i32.const 3 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 local.get $0 - i32.load offset=8 i32.const 3 - i32.shr_u + i32.const 3 + call $~lib/typedarray/Uint32Array#indexOf i32.const 3 i32.ne if i32.const 0 i32.const 1568 - i32.const 414 + i32.const 585 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 0 - call $~lib/typedarray/Int64Array#__get - i64.const 3 - i64.ne + 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 415 + i32.const 586 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 4 - i64.ne + i32.const 10 + call $~lib/typedarray/Uint32Array#indexOf + i32.const -1 + i32.ne if i32.const 0 i32.const 1568 - i32.const 416 + i32.const 587 i32.const 3 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=4 + 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 588 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + global.set $~argumentsLength local.get $0 - i32.const 2 - call $~lib/typedarray/Int64Array#__get - i64.const 5 - i64.ne + i32.const 0 + call $~lib/typedarray/Uint32Array#lastIndexOf@varargs if i32.const 0 i32.const 1568 - i32.const 417 + i32.const 590 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 - ) - (func $~lib/typedarray/Uint64Array#filter (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i64) - (local $7 i32) - global.get $~lib/memory/__stack_pointer - 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 - i64.const 0 - i64.store offset=8 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=16 - global.get $~lib/memory/__stack_pointer + i32.const 1 + global.set $~argumentsLength local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 4208 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer + i32.const 11 + call $~lib/typedarray/Uint32Array#lastIndexOf@varargs + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 591 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + global.set $~argumentsLength local.get $0 - i32.store offset=8 + i32.const -1 + call $~lib/typedarray/Uint32Array#lastIndexOf@varargs + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 592 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + global.set $~argumentsLength local.get $0 - i32.load offset=8 i32.const 3 - i32.shr_u - local.set $3 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.const 11 - call $~lib/rt/itcms/__new - local.tee $2 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $3 + call $~lib/typedarray/Uint32Array#lastIndexOf@varargs i32.const 3 - i32.shl - i32.const 0 - call $~lib/rt/itcms/__new - local.tee $5 - i32.store offset=16 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 593 + i32.const 3 + call $~lib/builtins/abort + unreachable + end local.get $0 - i32.load offset=4 - local.set $7 - loop $for-loop|0 - local.get $3 - local.get $4 - i32.gt_s - if - local.get $7 - local.get $4 - i32.const 3 - i32.shl - i32.add - i64.load - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=20 - i32.const 3 - global.set $~argumentsLength - local.get $6 - local.get $4 - local.get $0 - i32.const 4208 - i32.load - call_indirect (type $i64_i32_i32_=>_i32) - if - local.get $5 - local.get $1 - i32.const 3 - i32.shl - i32.add - local.get $6 - i64.store - local.get $1 - i32.const 1 - i32.add - local.set $1 - end - local.get $4 - i32.const 1 - i32.add - local.set $4 - br $for-loop|0 - end - end - local.get $2 - local.get $5 - local.get $1 i32.const 3 - i32.shl - local.tee $3 - call $~lib/rt/itcms/__renew - local.tee $0 - i32.store - local.get $2 - local.get $0 - call $~lib/rt/itcms/__link - local.get $2 - local.get $3 - i32.store offset=8 - local.get $2 - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $2 - ) - (func $std/typedarray/testArrayFilter<~lib/typedarray/Uint64Array,u64> - (local $0 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 - global.get $~lib/memory/__stack_pointer - i32.const 6 - 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 - local.get $0 - i32.store offset=4 - local.get $0 + i32.const 4 + call $~lib/typedarray/Uint32Array#lastIndexOf i32.const 3 - i64.const 4 - call $~lib/typedarray/Uint64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 5 - i64.const 5 - call $~lib/typedarray/Uint64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 4208 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - call $~lib/typedarray/Uint64Array#filter - local.tee $0 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.load offset=4 - local.get $0 - i32.load - i32.sub + i32.ne if i32.const 0 i32.const 1568 - i32.const 413 + i32.const 594 i32.const 3 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=4 - local.get $0 - i32.load offset=8 i32.const 3 - i32.shr_u + i32.const 3 + call $~lib/typedarray/Uint32Array#lastIndexOf i32.const 3 i32.ne if i32.const 0 i32.const 1568 - i32.const 414 + i32.const 595 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 0 - call $~lib/typedarray/Uint64Array#__get - i64.const 3 - i64.ne + 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 415 + i32.const 596 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 4 - i64.ne + i32.const 100 + call $~lib/typedarray/Uint32Array#lastIndexOf + i32.const 1 + i32.ne if i32.const 0 i32.const 1568 - i32.const 416 + i32.const 597 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 5 - i64.ne + 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 417 + i32.const 598 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 - ) - (func $~lib/typedarray/Float32Array#filter (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 f32) - (local $7 i32) - global.get $~lib/memory/__stack_pointer - 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 - i64.const 0 - i64.store offset=8 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=16 - global.get $~lib/memory/__stack_pointer local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 4240 - i32.store offset=4 + 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 599 + i32.const 3 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer local.get $0 + i32.const 9 + call $~lib/typedarray/Uint32Array#subarray + local.tee $0 i32.store offset=8 local.get $0 - i32.load offset=8 - i32.const 2 - i32.shr_u - local.set $3 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.const 12 - call $~lib/rt/itcms/__new - local.tee $2 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.const 2 - i32.shl + i32.const 3 i32.const 0 - call $~lib/rt/itcms/__new - local.tee $5 - i32.store offset=16 - local.get $0 - i32.load offset=4 - local.set $7 - loop $for-loop|0 - local.get $3 - local.get $4 - i32.gt_s - if - local.get $7 - local.get $4 - i32.const 2 - i32.shl - i32.add - f32.load - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=20 - i32.const 3 - global.set $~argumentsLength - local.get $6 - local.get $4 - local.get $0 - i32.const 4240 - i32.load - call_indirect (type $f32_i32_i32_=>_i32) - if - local.get $5 - local.get $1 - i32.const 2 - i32.shl - i32.add - local.get $6 - f32.store - local.get $1 - i32.const 1 - i32.add - local.set $1 - end - local.get $4 - i32.const 1 - i32.add - local.set $4 - br $for-loop|0 - end + call $~lib/typedarray/Uint32Array#indexOf + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 603 + i32.const 3 + call $~lib/builtins/abort + unreachable end - local.get $2 - local.get $5 - local.get $1 - i32.const 2 - i32.shl - local.tee $3 - call $~lib/rt/itcms/__renew - local.tee $0 - i32.store - local.get $2 - local.get $0 - call $~lib/rt/itcms/__link - local.get $2 - local.get $3 - i32.store offset=8 - local.get $2 - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $2 - ) - (func $std/typedarray/testArrayFilter<~lib/typedarray/Float32Array,f32> - (local $0 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 - global.get $~lib/memory/__stack_pointer - i32.const 6 - 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 4 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 - 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 - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 3 - f32.const 4 - call $~lib/typedarray/Float32Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 + call $~lib/typedarray/Uint32Array#indexOf + if + i32.const 0 + i32.const 1568 + i32.const 604 + i32.const 3 + call $~lib/builtins/abort + unreachable + end local.get $0 i32.const 5 - f32.const 5 - call $~lib/typedarray/Float32Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 4240 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - call $~lib/typedarray/Float32Array#filter - local.tee $0 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.load offset=4 - local.get $0 - i32.load - i32.sub + i32.const 0 + call $~lib/typedarray/Uint32Array#indexOf + i32.const 1 + i32.ne if i32.const 0 i32.const 1568 - i32.const 413 + i32.const 605 i32.const 3 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 local.get $0 - i32.load offset=8 - i32.const 2 - i32.shr_u - i32.const 3 + 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 414 + i32.const 606 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/Float32Array#__get - f32.const 3 - f32.ne + call $~lib/typedarray/Uint32Array#indexOf + i32.const -1 + i32.ne if i32.const 0 i32.const 1568 - i32.const 415 + i32.const 607 i32.const 3 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=4 + 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 608 + i32.const 3 + call $~lib/builtins/abort + unreachable + end local.get $0 + i32.const 5 i32.const 1 - call $~lib/typedarray/Float32Array#__get - f32.const 4 - f32.ne + call $~lib/typedarray/Uint32Array#indexOf + i32.const 1 + i32.ne if i32.const 0 i32.const 1568 - i32.const 416 + i32.const 609 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/Float32Array#__get - f32.const 5 - f32.ne + call $~lib/typedarray/Uint32Array#indexOf + i32.const -1 + i32.ne if i32.const 0 i32.const 1568 - i32.const 417 + i32.const 610 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 16 + i32.const 12 i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/typedarray/Float64Array#filter (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) + (func $~lib/typedarray/Int64Array#indexOf (param $0 i32) (param $1 i64) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) - (local $5 i32) - (local $6 f64) - (local $7 i32) - global.get $~lib/memory/__stack_pointer - 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 - i64.const 0 - i64.store offset=8 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=16 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 4272 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - i32.load offset=8 - i32.const 3 - i32.shr_u + i32.const -1 local.set $3 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.const 13 - call $~lib/rt/itcms/__new - local.tee $2 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.const 3 - i32.shl - i32.const 0 - call $~lib/rt/itcms/__new - local.tee $5 - i32.store offset=16 - local.get $0 - i32.load offset=4 - local.set $7 - loop $for-loop|0 - local.get $3 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.0 + local.get $2 + local.get $0 + i32.load offset=8 + i32.const 3 + i32.shr_u + local.tee $4 + i32.ge_s + i32.const 1 local.get $4 - i32.gt_s + select + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.0 + local.get $2 + i32.const 0 + i32.lt_s if - local.get $7 + local.get $2 local.get $4 - i32.const 3 - i32.shl i32.add - f64.load - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=20 - i32.const 3 - global.set $~argumentsLength - local.get $6 + local.tee $2 + i32.const 0 + local.get $2 + i32.const 0 + i32.gt_s + select + local.set $2 + end + local.get $0 + i32.load offset=4 + local.set $0 + loop $while-continue|0 + local.get $2 local.get $4 - local.get $0 - i32.const 4272 - i32.load - call_indirect (type $f64_i32_i32_=>_i32) + i32.lt_s if - local.get $5 local.get $1 + local.get $0 + local.get $2 + local.tee $3 i32.const 3 i32.shl i32.add - local.get $6 - f64.store - local.get $1 + i64.load + i64.eq + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.0 + local.get $3 i32.const 1 i32.add - local.set $1 + local.set $2 + br $while-continue|0 end - local.get $4 - i32.const 1 - i32.add - local.set $4 - br $for-loop|0 end + i32.const -1 + local.set $3 end - local.get $2 - local.get $5 - local.get $1 - i32.const 3 - i32.shl - local.tee $3 - call $~lib/rt/itcms/__renew - local.tee $0 - i32.store - local.get $2 - local.get $0 - call $~lib/rt/itcms/__link - local.get $2 local.get $3 - i32.store offset=8 - local.get $2 + ) + (func $~lib/typedarray/Int64Array#lastIndexOf (param $0 i32) (param $1 i64) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + i32.const -1 + local.set $3 + block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.0 + local.get $0 + i32.load offset=8 + i32.const 3 + i32.shr_u + local.tee $4 + i32.eqz + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.0 + local.get $2 + local.get $4 + i32.add + local.get $4 + i32.const 1 + i32.sub + local.get $2 + local.get $2 + local.get $4 + i32.ge_s + select + local.get $2 + i32.const 0 + i32.lt_s + select + local.set $2 + 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 $1 + local.get $0 + local.get $2 + local.tee $3 + i32.const 3 + i32.shl + i32.add + i64.load + i64.eq + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.0 + local.get $3 + i32.const 1 + i32.sub + local.set $2 + br $while-continue|0 + end + end + i32.const -1 + local.set $3 + end + local.get $3 + ) + (func $~lib/typedarray/Int64Array#lastIndexOf@varargs (param $0 i32) (param $1 i64) (result i32) + (local $2 i32) + block $1of1 + block $0of1 + block $outOfRange + global.get $~argumentsLength + i32.const 1 + i32.sub + br_table $0of1 $1of1 $outOfRange + end + unreachable + end + local.get $0 + i32.load offset=8 + i32.const 3 + i32.shr_u + local.set $2 + end local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.add - global.set $~lib/memory/__stack_pointer + local.get $1 local.get $2 + call $~lib/typedarray/Int64Array#lastIndexOf ) - (func $std/typedarray/testArrayFilter<~lib/typedarray/Float64Array,f64> + (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 16 + i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check @@ -14105,514 +11105,576 @@ 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 - i32.const 6 - call $~lib/typedarray/Float64Array#constructor - local.tee $0 + i32.const 7024 i32.store + i32.const 7036 + i32.load + local.tee $0 + local.set $2 global.get $~lib/memory/__stack_pointer local.get $0 + call $~lib/typedarray/Int64Array#constructor + local.tee $0 i32.store offset=4 + loop $for-loop|0 + local.get $1 + local.get $2 + i32.lt_s + if + local.get $0 + local.get $1 + i32.const 7024 + local.get $1 + call $~lib/array/Array#__get + i64.extend_i32_s + call $~lib/typedarray/Int64Array#__set + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|0 + end + end local.get $0 + i64.const 0 i32.const 0 - f64.const 1 - call $~lib/typedarray/Float64Array#__set - global.get $~lib/memory/__stack_pointer + call $~lib/typedarray/Int64Array#indexOf + if + i32.const 0 + i32.const 1568 + i32.const 580 + i32.const 3 + call $~lib/builtins/abort + unreachable + end local.get $0 - i32.store offset=4 + 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 581 + i32.const 3 + call $~lib/builtins/abort + unreachable + end local.get $0 - i32.const 1 - f64.const 2 - call $~lib/typedarray/Float64Array#__set - global.get $~lib/memory/__stack_pointer + 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 582 + i32.const 3 + call $~lib/builtins/abort + unreachable + end local.get $0 - i32.store offset=4 + 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 583 + i32.const 3 + call $~lib/builtins/abort + unreachable + end local.get $0 + i64.const 3 i32.const 2 - f64.const 3 - call $~lib/typedarray/Float64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 + call $~lib/typedarray/Int64Array#indexOf + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 584 + i32.const 3 + call $~lib/builtins/abort + unreachable + end local.get $0 + i64.const 3 i32.const 3 - f64.const 4 - call $~lib/typedarray/Float64Array#__set - global.get $~lib/memory/__stack_pointer + call $~lib/typedarray/Int64Array#indexOf + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 585 + i32.const 3 + call $~lib/builtins/abort + unreachable + end local.get $0 - i32.store offset=4 + 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 586 + i32.const 3 + call $~lib/builtins/abort + unreachable + end local.get $0 - i32.const 5 - f64.const 5 - call $~lib/typedarray/Float64Array#__set - global.get $~lib/memory/__stack_pointer + 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 587 + i32.const 3 + call $~lib/builtins/abort + unreachable + end local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 4272 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer + 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 588 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + global.set $~argumentsLength local.get $0 - call $~lib/typedarray/Float64Array#filter - local.tee $0 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer + i64.const 0 + call $~lib/typedarray/Int64Array#lastIndexOf@varargs + if + i32.const 0 + i32.const 1568 + i32.const 590 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + global.set $~argumentsLength local.get $0 - i32.store offset=4 + i64.const 11 + call $~lib/typedarray/Int64Array#lastIndexOf@varargs + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 591 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + global.set $~argumentsLength local.get $0 - i32.load offset=4 + i64.const -1 + call $~lib/typedarray/Int64Array#lastIndexOf@varargs + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 592 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + global.set $~argumentsLength local.get $0 - i32.load - i32.sub + i64.const 3 + call $~lib/typedarray/Int64Array#lastIndexOf@varargs + i32.const 3 + i32.ne if i32.const 0 i32.const 1568 - i32.const 413 + i32.const 593 i32.const 3 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=4 + 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 594 + i32.const 3 + call $~lib/builtins/abort + unreachable + end local.get $0 - i32.load offset=8 + i64.const 3 i32.const 3 - i32.shr_u + call $~lib/typedarray/Int64Array#lastIndexOf i32.const 3 i32.ne if i32.const 0 i32.const 1568 - i32.const 414 + i32.const 595 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 0 - call $~lib/typedarray/Float64Array#__get - f64.const 3 - f64.ne + 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 415 + i32.const 596 i32.const 3 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=4 + 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 597 + i32.const 3 + call $~lib/builtins/abort + unreachable + end local.get $0 + i64.const 1 + i32.const -10 + call $~lib/typedarray/Int64Array#lastIndexOf i32.const 1 - call $~lib/typedarray/Float64Array#__get - f64.const 4 - f64.ne + i32.ne if i32.const 0 i32.const 1568 - i32.const 416 + i32.const 598 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + 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 599 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=4 + i32.const 9 + call $~lib/typedarray/Int64Array#subarray + local.tee $0 + i32.store offset=8 local.get $0 - i32.const 2 - call $~lib/typedarray/Float64Array#__get - f64.const 5 - f64.ne + 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 417 + i32.const 603 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 - ) - (func $~lib/typedarray/Int8Array#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 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 - 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 - 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 - 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 - i32.store offset=12 - 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 $i32_i32_i32_=>_i32) - br_if $~lib/typedarray/SOME<~lib/typedarray/Int8Array,i8>|inlined.0 - drop - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $for-loop|0 - end - end + local.get $0 + i64.const 4 + i32.const 0 + call $~lib/typedarray/Int64Array#indexOf + if + i32.const 0 + i32.const 1568 + i32.const 604 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + 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 605 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + 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 606 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + 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 607 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + 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 608 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + 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 609 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + 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 610 + i32.const 3 + call $~lib/builtins/abort + unreachable end global.get $~lib/memory/__stack_pointer - i32.const 16 + i32.const 12 i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/typedarray/Uint8Array#some (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) + (func $~lib/typedarray/Uint64Array#indexOf (param $0 i32) (param $1 i64) (param $2 i32) (result 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 - 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 - 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 - local.get $0 - i32.load offset=4 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 + i32.const -1 + local.set $3 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.0 + local.get $2 local.get $0 i32.load offset=8 - local.set $4 - loop $for-loop|0 + i32.const 3 + i32.shr_u + local.tee $4 + i32.ge_s + i32.const 1 + local.get $4 + select + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.0 + local.get $2 + i32.const 0 + i32.lt_s + if 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=12 - 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 $i32_i32_i32_=>_i32) - 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 + i32.add + local.tee $2 + i32.const 0 + local.get $2 + i32.const 0 + i32.gt_s + select + local.set $2 end - i32.const 0 - end - global.get $~lib/memory/__stack_pointer - i32.const 16 - 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 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 - 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 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 - i32.const 1 - i32.shr_u - local.set $4 - loop $for-loop|0 + local.set $0 + loop $while-continue|0 local.get $2 local.get $4 i32.lt_s if - local.get $3 + local.get $1 + local.get $0 local.get $2 - i32.const 1 + local.tee $3 + i32.const 3 i32.shl i32.add - i32.load16_s - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=12 - 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 $i32_i32_i32_=>_i32) - br_if $~lib/typedarray/SOME<~lib/typedarray/Int16Array,i16>|inlined.0 - drop - local.get $2 + i64.load + i64.eq + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.0 + local.get $3 i32.const 1 i32.add local.set $2 - br $for-loop|0 + br $while-continue|0 end end - i32.const 0 + i32.const -1 + local.set $3 end - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer + local.get $3 ) - (func $~lib/typedarray/Uint16Array#some (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) + (func $~lib/typedarray/Uint64Array#lastIndexOf (param $0 i32) (param $1 i64) (param $2 i32) (result 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 - 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 - 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 - local.get $0 - i32.load offset=4 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 + i32.const -1 + local.set $3 + block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.0 local.get $0 i32.load offset=8 - i32.const 1 + i32.const 3 i32.shr_u - local.set $4 - loop $for-loop|0 + local.tee $4 + i32.eqz + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.0 + local.get $2 + local.get $4 + i32.add + local.get $4 + i32.const 1 + i32.sub + local.get $2 + local.get $2 + local.get $4 + i32.ge_s + select + local.get $2 + i32.const 0 + i32.lt_s + select + local.set $2 + local.get $0 + i32.load offset=4 + local.set $0 + loop $while-continue|0 local.get $2 - local.get $4 - i32.lt_s + i32.const 0 + i32.ge_s if - local.get $3 + local.get $1 + local.get $0 local.get $2 - i32.const 1 + local.tee $3 + i32.const 3 i32.shl i32.add - i32.load16_u - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=12 - 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 $i32_i32_i32_=>_i32) - br_if $~lib/typedarray/SOME<~lib/typedarray/Uint16Array,u16>|inlined.0 - drop - local.get $2 + i64.load + i64.eq + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.0 + local.get $3 i32.const 1 - i32.add + i32.sub local.set $2 - br $for-loop|0 + br $while-continue|0 end end - i32.const 0 + i32.const -1 + local.set $3 end - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer + local.get $3 ) - (func $~lib/typedarray/Int32Array#some (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Uint64Array#lastIndexOf@varargs (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 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 - 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 - local.get $1 - 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=8 - local.get $0 - i32.load offset=8 - i32.const 2 - i32.shr_u - 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=12 - 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 $i32_i32_i32_=>_i32) - br_if $~lib/typedarray/SOME<~lib/typedarray/Int32Array,i32>|inlined.0 - drop - local.get $2 + block $1of1 + block $0of1 + block $outOfRange + global.get $~argumentsLength i32.const 1 - i32.add - local.set $2 - br $for-loop|0 + i32.sub + br_table $0of1 $1of1 $outOfRange end + unreachable end - i32.const 0 + local.get $0 + i32.load offset=8 + i32.const 3 + i32.shr_u + local.set $2 end - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer + local.get $0 + local.get $1 + local.get $2 + call $~lib/typedarray/Uint64Array#lastIndexOf ) - (func $~lib/typedarray/Uint32Array#some (param $0 i32) (param $1 i32) (result 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 16 + i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check @@ -14620,437 +11682,576 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - 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 $0 - i32.store - global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 7024 + i32.store + i32.const 7036 + i32.load + local.tee $0 + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $0 + call $~lib/typedarray/Uint64Array#constructor + local.tee $0 + i32.store offset=4 + loop $for-loop|0 local.get $1 - 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=8 + local.get $2 + i32.lt_s + if + local.get $0 + local.get $1 + i32.const 7024 + local.get $1 + call $~lib/array/Array#__get + i64.extend_i32_s + call $~lib/typedarray/Uint64Array#__set + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|0 + end + end + local.get $0 + i64.const 0 + i32.const 0 + call $~lib/typedarray/Uint64Array#indexOf + if + i32.const 0 + i32.const 1568 + i32.const 580 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + 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 581 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + 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 582 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + 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 583 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + 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 584 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + 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 585 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + 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 586 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + 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 587 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + 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 588 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + global.set $~argumentsLength + local.get $0 + i64.const 0 + call $~lib/typedarray/Uint64Array#lastIndexOf@varargs + if + i32.const 0 + i32.const 1568 + i32.const 590 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + global.set $~argumentsLength + local.get $0 + i64.const 11 + call $~lib/typedarray/Uint64Array#lastIndexOf@varargs + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 591 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + global.set $~argumentsLength + local.get $0 + i64.const -1 + call $~lib/typedarray/Uint64Array#lastIndexOf@varargs + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 592 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + global.set $~argumentsLength + local.get $0 + i64.const 3 + call $~lib/typedarray/Uint64Array#lastIndexOf@varargs + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 593 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + 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 594 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + 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 595 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + 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 596 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + 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 597 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + 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 598 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + 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 599 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.const 9 + call $~lib/typedarray/Uint64Array#subarray + local.tee $0 + i32.store offset=8 + 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 603 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i64.const 4 + i32.const 0 + call $~lib/typedarray/Uint64Array#indexOf + if + i32.const 0 + i32.const 1568 + i32.const 604 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + 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 605 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + 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 606 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + 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 607 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + 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 608 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + 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 609 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + 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 610 + 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/Float32Array#indexOf (param $0 i32) (param $1 f32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + i32.const -1 + local.set $3 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.0 + local.get $2 local.get $0 i32.load offset=8 i32.const 2 i32.shr_u - local.set $4 - loop $for-loop|0 + local.tee $4 + i32.ge_s + i32.const 1 + local.get $4 + select + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.0 + local.get $2 + i32.const 0 + i32.lt_s + if + local.get $2 + local.get $4 + i32.add + local.tee $2 + i32.const 0 + local.get $2 + i32.const 0 + i32.gt_s + select + local.set $2 + end + 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 $3 + local.get $1 + local.get $0 local.get $2 + local.tee $3 i32.const 2 i32.shl i32.add - i32.load - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=12 - 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 $i32_i32_i32_=>_i32) - br_if $~lib/typedarray/SOME<~lib/typedarray/Uint32Array,u32>|inlined.0 - drop - local.get $2 + f32.load + f32.eq + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.0 + local.get $3 i32.const 1 i32.add local.set $2 - br $for-loop|0 + br $while-continue|0 end end - i32.const 0 + i32.const -1 + local.set $3 end - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer + local.get $3 ) - (func $~lib/typedarray/Int64Array#some (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) + (func $~lib/typedarray/Float32Array#lastIndexOf (param $0 i32) (param $1 f32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) - (local $5 i64) - 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 - 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 - local.get $0 - i32.load offset=4 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 + i32.const -1 + local.set $3 + block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.0 local.get $0 i32.load offset=8 - i32.const 3 + i32.const 2 i32.shr_u - 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=12 - 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 $i64_i32_i32_=>_i32) - br_if $~lib/typedarray/SOME<~lib/typedarray/Int64Array,i64>|inlined.0 - drop - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $for-loop|0 - end - end + local.tee $4 + i32.eqz + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.0 + local.get $2 + local.get $4 + i32.add + local.get $4 + i32.const 1 + i32.sub + local.get $2 + local.get $2 + local.get $4 + i32.ge_s + select + local.get $2 i32.const 0 - end - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (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 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 - 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 + i32.lt_s + select + local.set $2 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 - i32.const 3 - i32.shr_u - local.set $4 - loop $for-loop|0 + local.set $0 + loop $while-continue|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.shl - i32.add - i64.load - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=12 - 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 $i64_i32_i32_=>_i32) - 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 16 - 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) - 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 - 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 - 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 - i32.const 2 - i32.shr_u - local.set $4 - loop $for-loop|0 - local.get $2 - local.get $4 - i32.lt_s - if - local.get $3 + local.get $0 local.get $2 + local.tee $3 i32.const 2 i32.shl i32.add f32.load - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=12 - 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 $f32_i32_i32_=>_i32) - 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 - end - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (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 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 - 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 - 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 - i32.const 3 - i32.shr_u - local.set $4 - loop $for-loop|0 - local.get $2 - local.get $4 - i32.lt_s - if + f32.eq + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.0 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=12 - 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 $f64_i32_i32_=>_i32) - br_if $~lib/typedarray/SOME<~lib/typedarray/Float64Array,f64>|inlined.0 - drop - local.get $2 i32.const 1 - i32.add + i32.sub local.set $2 - br $for-loop|0 + br $while-continue|0 end end - i32.const 0 + i32.const -1 + local.set $3 end - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer + local.get $3 ) - (func $~lib/typedarray/Int8Array#findIndex (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Float32Array#lastIndexOf@varargs (param $0 i32) (param $1 f32) (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 - 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 - 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.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 - 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=12 - i32.const 3 - global.set $~argumentsLength - local.get $2 - local.get $0 - local.get $1 - i32.load - call_indirect (type $i32_i32_i32_=>_i32) - br_if $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int8Array,i8>|inlined.0 - local.get $2 + block $1of1 + block $0of1 + block $outOfRange + global.get $~argumentsLength i32.const 1 - i32.add - local.set $2 - br $for-loop|0 + i32.sub + br_table $0of1 $1of1 $outOfRange end + unreachable end - i32.const -1 + local.get $0 + i32.load offset=8 + i32.const 2 + i32.shr_u local.set $2 end - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer + local.get $0 + local.get $1 local.get $2 + call $~lib/typedarray/Float32Array#lastIndexOf ) - (func $~lib/typedarray/Uint8Array#findIndex (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) - (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 call $~stack_check @@ -15058,283 +12259,576 @@ 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.const 7024 i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $0 - i32.load offset=4 - local.set $3 + i32.const 7036 + i32.load + local.tee $0 + local.set $2 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=8 - local.get $0 - i32.load offset=8 - 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=12 - i32.const 3 - global.set $~argumentsLength - local.get $2 - local.get $0 - local.get $1 - i32.load - call_indirect (type $i32_i32_i32_=>_i32) - 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 + call $~lib/typedarray/Float32Array#constructor + local.tee $0 + i32.store offset=4 + loop $for-loop|0 + local.get $1 + local.get $2 + i32.lt_s + if + local.get $0 + local.get $1 + i32.const 7024 + local.get $1 + call $~lib/array/Array#__get + f32.convert_i32_s + call $~lib/typedarray/Float32Array#__set + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|0 end - i32.const -1 - local.set $2 end - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $2 - ) - (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 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 - global.get $~lib/memory/__stack_pointer local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 + f32.const 0 + i32.const 0 + call $~lib/typedarray/Float32Array#indexOf + if + i32.const 0 + i32.const 1568 + i32.const 580 + i32.const 3 + call $~lib/builtins/abort + unreachable + end local.get $0 - i32.load offset=4 - local.set $3 - global.get $~lib/memory/__stack_pointer + 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 581 + i32.const 3 + call $~lib/builtins/abort + unreachable + end local.get $0 - i32.store offset=8 + 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 582 + i32.const 3 + call $~lib/builtins/abort + unreachable + end local.get $0 - i32.load offset=8 + 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 583 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + 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 584 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + 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 585 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + 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 586 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + 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 587 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + f32.const 1 + i32.const -100 + call $~lib/typedarray/Float32Array#indexOf i32.const 1 - i32.shr_u - local.set $4 - block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int16Array,i16>|inlined.0 - loop $for-loop|0 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 588 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + global.set $~argumentsLength + local.get $0 + f32.const 0 + call $~lib/typedarray/Float32Array#lastIndexOf@varargs + if + i32.const 0 + i32.const 1568 + i32.const 590 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + global.set $~argumentsLength + local.get $0 + f32.const 11 + call $~lib/typedarray/Float32Array#lastIndexOf@varargs + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 591 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + global.set $~argumentsLength + local.get $0 + f32.const -1 + call $~lib/typedarray/Float32Array#lastIndexOf@varargs + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 592 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + global.set $~argumentsLength + local.get $0 + f32.const 3 + call $~lib/typedarray/Float32Array#lastIndexOf@varargs + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 593 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + 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 594 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + 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 595 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + 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 596 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + 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 597 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + 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 598 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + 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 599 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.const 9 + call $~lib/typedarray/Float32Array#subarray + local.tee $0 + i32.store offset=8 + 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 603 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + f32.const 4 + i32.const 0 + call $~lib/typedarray/Float32Array#indexOf + if + i32.const 0 + i32.const 1568 + i32.const 604 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + 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 605 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + 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 606 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + 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 607 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + 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 608 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + 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 609 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + 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 610 + 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/Float64Array#indexOf (param $0 i32) (param $1 f64) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + i32.const -1 + local.set $3 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.0 + local.get $2 + local.get $0 + i32.load offset=8 + i32.const 3 + i32.shr_u + local.tee $4 + i32.ge_s + i32.const 1 + local.get $4 + select + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.0 + local.get $2 + i32.const 0 + i32.lt_s + if + local.get $2 + local.get $4 + i32.add + local.tee $2 + i32.const 0 + local.get $2 + i32.const 0 + i32.gt_s + select + local.set $2 + end + 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 $3 + local.get $1 + local.get $0 local.get $2 - i32.const 1 + local.tee $3 + i32.const 3 i32.shl i32.add - i32.load16_s - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=12 - i32.const 3 - global.set $~argumentsLength - local.get $2 - local.get $0 - local.get $1 - i32.load - call_indirect (type $i32_i32_i32_=>_i32) - br_if $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int16Array,i16>|inlined.0 - local.get $2 + f64.load + f64.eq + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.0 + local.get $3 i32.const 1 i32.add local.set $2 - br $for-loop|0 + br $while-continue|0 end end i32.const -1 - local.set $2 + local.set $3 end - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $2 + local.get $3 ) - (func $~lib/typedarray/Uint16Array#findIndex (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) + (func $~lib/typedarray/Float64Array#lastIndexOf (param $0 i32) (param $1 f64) (param $2 i32) (result 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 - 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 - 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.load offset=4 + i32.const -1 local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - i32.load offset=8 - i32.const 1 - i32.shr_u - local.set $4 - block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint16Array,u16>|inlined.0 - loop $for-loop|0 + block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.0 + local.get $0 + i32.load offset=8 + i32.const 3 + i32.shr_u + local.tee $4 + i32.eqz + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.0 + local.get $2 + local.get $4 + i32.add + local.get $4 + i32.const 1 + i32.sub + local.get $2 + local.get $2 + local.get $4 + i32.ge_s + select + local.get $2 + i32.const 0 + i32.lt_s + select + local.set $2 + local.get $0 + i32.load offset=4 + local.set $0 + loop $while-continue|0 local.get $2 - local.get $4 - i32.lt_s + i32.const 0 + i32.ge_s if - local.get $3 + local.get $1 + local.get $0 local.get $2 - i32.const 1 + local.tee $3 + i32.const 3 i32.shl i32.add - i32.load16_u - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=12 - i32.const 3 - global.set $~argumentsLength - local.get $2 - local.get $0 - local.get $1 - i32.load - call_indirect (type $i32_i32_i32_=>_i32) - br_if $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint16Array,u16>|inlined.0 - local.get $2 + f64.load + f64.eq + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.0 + local.get $3 i32.const 1 - i32.add + i32.sub local.set $2 - br $for-loop|0 + br $while-continue|0 end end i32.const -1 - local.set $2 + local.set $3 end - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $2 + local.get $3 ) - (func $~lib/typedarray/Int32Array#findIndex (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Float64Array#lastIndexOf@varargs (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 - 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 - 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.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 - i32.const 2 - i32.shr_u - local.set $4 - block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int32Array,i32>|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 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=12 - i32.const 3 - global.set $~argumentsLength - local.get $2 - local.get $0 - local.get $1 - i32.load - call_indirect (type $i32_i32_i32_=>_i32) - br_if $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int32Array,i32>|inlined.0 - local.get $2 + block $1of1 + block $0of1 + block $outOfRange + global.get $~argumentsLength i32.const 1 - i32.add - local.set $2 - br $for-loop|0 + i32.sub + br_table $0of1 $1of1 $outOfRange end + unreachable end - i32.const -1 + local.get $0 + i32.load offset=8 + i32.const 3 + i32.shr_u local.set $2 end - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer + local.get $0 + local.get $1 local.get $2 + call $~lib/typedarray/Float64Array#lastIndexOf ) - (func $~lib/typedarray/Uint32Array#findIndex (param $0 i32) (param $1 i32) (result i32) + (func $std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Float64Array,f64> + (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 16 + i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check @@ -15342,2145 +12836,2140 @@ 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.const 7024 i32.store + i32.const 7036 + i32.load + local.tee $0 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $1 - 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=8 local.get $0 - i32.load offset=8 - i32.const 2 - i32.shr_u - 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 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=12 - i32.const 3 - global.set $~argumentsLength - local.get $2 - local.get $0 - local.get $1 - i32.load - call_indirect (type $i32_i32_i32_=>_i32) - 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 + call $~lib/typedarray/Float64Array#constructor + local.tee $0 + i32.store offset=4 + loop $for-loop|0 + local.get $1 + local.get $2 + i32.lt_s + if + local.get $0 + local.get $1 + i32.const 7024 + local.get $1 + call $~lib/array/Array#__get + f64.convert_i32_s + call $~lib/typedarray/Float64Array#__set + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|0 end - i32.const -1 - local.set $2 end - global.get $~lib/memory/__stack_pointer - i32.const 16 - 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 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 - global.get $~lib/memory/__stack_pointer local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 + f64.const 0 + i32.const 0 + call $~lib/typedarray/Float64Array#indexOf + if + i32.const 0 + i32.const 1568 + i32.const 580 + i32.const 3 + call $~lib/builtins/abort + unreachable + end local.get $0 - i32.load offset=4 - local.set $3 - global.get $~lib/memory/__stack_pointer + 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 581 + i32.const 3 + call $~lib/builtins/abort + unreachable + end local.get $0 - i32.store offset=8 + 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 582 + i32.const 3 + call $~lib/builtins/abort + unreachable + end local.get $0 - i32.load offset=8 + f64.const 3 + i32.const 0 + call $~lib/typedarray/Float64Array#indexOf i32.const 3 - i32.shr_u - local.set $4 - block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int64Array,i64>|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 - i64.load - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=12 - i32.const 3 - global.set $~argumentsLength - local.get $2 - local.get $0 - local.get $1 - i32.load - call_indirect (type $i64_i32_i32_=>_i32) - br_if $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int64Array,i64>|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 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 583 + 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 - local.get $2 - ) - (func $~lib/typedarray/Uint64Array#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 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 - 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.load offset=4 - local.set $3 - global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=8 + 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 584 + i32.const 3 + call $~lib/builtins/abort + unreachable + end local.get $0 - i32.load offset=8 + f64.const 3 i32.const 3 - i32.shr_u - local.set $4 - block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint64Array,u64>|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 - i64.load - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=12 - i32.const 3 - global.set $~argumentsLength - local.get $2 - local.get $0 - local.get $1 - i32.load - call_indirect (type $i64_i32_i32_=>_i32) - br_if $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint64Array,u64>|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 + call $~lib/typedarray/Float64Array#indexOf + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 585 + 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 - 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 - 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 - global.get $~lib/memory/__stack_pointer local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 + 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 586 + i32.const 3 + call $~lib/builtins/abort + unreachable + end local.get $0 - i32.load offset=4 - local.set $3 - global.get $~lib/memory/__stack_pointer + 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 587 + i32.const 3 + call $~lib/builtins/abort + unreachable + end local.get $0 - i32.store offset=8 + 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 588 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + global.set $~argumentsLength local.get $0 - i32.load offset=8 - i32.const 2 - i32.shr_u - 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=12 - i32.const 3 - global.set $~argumentsLength - local.get $2 - local.get $0 - local.get $1 - i32.load - call_indirect (type $f32_i32_i32_=>_i32) - 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 + f64.const 0 + call $~lib/typedarray/Float64Array#lastIndexOf@varargs + if + i32.const 0 + i32.const 1568 + i32.const 590 + 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 - local.get $2 - ) - (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 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 - global.get $~lib/memory/__stack_pointer + i32.const 1 + global.set $~argumentsLength local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 + f64.const 11 + call $~lib/typedarray/Float64Array#lastIndexOf@varargs + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 591 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + global.set $~argumentsLength local.get $0 - i32.load offset=4 - local.set $3 + f64.const -1 + call $~lib/typedarray/Float64Array#lastIndexOf@varargs + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 592 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + global.set $~argumentsLength + local.get $0 + f64.const 3 + call $~lib/typedarray/Float64Array#lastIndexOf@varargs + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 593 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + 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 594 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + 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 595 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + 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 596 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + 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 597 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + 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 598 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + 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 599 + i32.const 3 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer local.get $0 + i32.const 4 + i32.const 9 + call $~lib/typedarray/Float64Array#subarray + local.tee $0 i32.store offset=8 local.get $0 - i32.load offset=8 - i32.const 3 - i32.shr_u - 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=12 - i32.const 3 - global.set $~argumentsLength - local.get $2 - local.get $0 - local.get $1 - i32.load - call_indirect (type $f64_i32_i32_=>_i32) - 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 + 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 603 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + f64.const 4 + i32.const 0 + call $~lib/typedarray/Float64Array#indexOf + if + i32.const 0 + i32.const 1568 + i32.const 604 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + 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 605 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + 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 606 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + 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 607 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + 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 608 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + 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 609 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + 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 610 + i32.const 3 + call $~lib/builtins/abort + unreachable end global.get $~lib/memory/__stack_pointer - i32.const 16 + 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 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 - block $~lib/typedarray/EVERY<~lib/typedarray/Int8Array,i8>|inlined.0 (result i32) - global.get $~lib/memory/__stack_pointer + (func $~lib/util/number/decimalCount32 (param $0 i32) (result i32) + local.get $0 + i32.const 10 + i32.ge_u + i32.const 1 + i32.add + 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 + local.get $0 + i32.const 100 + i32.lt_u + select + local.get $0 + i32.const 1000000 + i32.ge_u + i32.const 6 + i32.add + 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 + local.get $0 + i32.const 10000000 + i32.lt_u + select + local.get $0 + i32.const 100000 + i32.lt_u + select + ) + (func $~lib/util/number/utoa_dec_simple (param $0 i32) (param $1 i32) (param $2 i32) + loop $do-continue|0 local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer + local.get $2 + i32.const 1 + i32.sub + local.tee $2 + i32.const 1 + i32.shl + i32.add local.get $1 - i32.store offset=4 - local.get $0 - i32.load offset=4 - local.set $3 - global.get $~lib/memory/__stack_pointer + i32.const 10 + i32.rem_u + i32.const 48 + i32.add + i32.store16 + local.get $1 + i32.const 10 + i32.div_u + local.tee $1 + br_if $do-continue|0 + end + ) + (func $~lib/util/number/itoa_buffered (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + local.get $1 + i32.const 24 + i32.shl + i32.const 24 + i32.shr_s + i32.const 0 + i32.lt_s + local.tee $2 + if local.get $0 - i32.store offset=8 + i32.const 45 + i32.store16 + i32.const 0 + local.get $1 + i32.sub + local.set $1 + end + local.get $1 + i32.const 24 + i32.shl + i32.const 24 + i32.shr_s + i32.const 10 + i32.lt_u + if local.get $0 - i32.load offset=8 - 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 - i32.store offset=12 - 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 $i32_i32_i32_=>_i32) - i32.eqz - br_if $~lib/typedarray/EVERY<~lib/typedarray/Int8Array,i8>|inlined.0 - drop - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $for-loop|0 - end - end + local.get $2 + i32.const 1 + i32.shl + i32.add + local.get $1 + i32.const 24 + i32.shl + i32.const 24 + i32.shr_s + i32.const 48 + i32.or + i32.store16 + local.get $2 i32.const 1 + i32.add + return end - global.get $~lib/memory/__stack_pointer - i32.const 16 + local.get $2 + local.get $1 + i32.const 24 + i32.shl + i32.const 24 + i32.shr_s + local.tee $2 + call $~lib/util/number/decimalCount32 i32.add - global.set $~lib/memory/__stack_pointer + local.set $1 + local.get $0 + local.get $2 + local.get $1 + call $~lib/util/number/utoa_dec_simple + local.get $1 ) - (func $~lib/typedarray/Uint8Array#every (param $0 i32) (param $1 i32) (result 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 16 + local.get $0 + local.get $1 + i32.eq + if + i32.const 1 + return + end + local.get $1 + i32.eqz + i32.const 1 + local.get $0 + select + if + i32.const 0 + return + end + local.get $0 + 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 - block $~lib/typedarray/EVERY<~lib/typedarray/Uint8Array,u8>|inlined.0 (result i32) - global.get $~lib/memory/__stack_pointer + i32.load offset=16 + i32.const 1 + i32.shr_u + local.tee $2 + local.get $1 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u + i32.ne + if + i32.const 0 + return + end + block $__inlined_func$~lib/util/string/compareImpl (result i32) local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer + local.tee $3 + i32.const 7 + i32.and local.get $1 - 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=8 - local.get $0 - i32.load offset=8 - local.set $4 - loop $for-loop|0 + i32.const 7 + i32.and + i32.or + i32.eqz + i32.const 0 + local.get $2 + local.tee $0 + i32.const 4 + i32.ge_u + select + if + loop $do-continue|0 + local.get $3 + i64.load + local.get $1 + i64.load + i64.eq + if + local.get $3 + i32.const 8 + i32.add + local.set $3 + 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-continue|0 + end + end + end + loop $while-continue|1 + local.get $0 + local.tee $2 + i32.const 1 + i32.sub + local.set $0 local.get $2 - local.get $4 - i32.lt_s if - local.get $2 local.get $3 + i32.load16_u + local.tee $2 + local.get $1 + i32.load16_u + local.tee $4 + i32.ne + if + local.get $2 + local.get $4 + i32.sub + br $__inlined_func$~lib/util/string/compareImpl + end + local.get $3 + i32.const 2 i32.add - i32.load8_u - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=12 - i32.const 3 - global.set $~argumentsLength - i32.const 0 - local.get $5 - local.get $2 - local.get $0 + local.set $3 local.get $1 - i32.load - call_indirect (type $i32_i32_i32_=>_i32) - i32.eqz - br_if $~lib/typedarray/EVERY<~lib/typedarray/Uint8Array,u8>|inlined.0 - drop - local.get $2 - i32.const 1 + i32.const 2 i32.add - local.set $2 - br $for-loop|0 + local.set $1 + br $while-continue|1 end end - i32.const 1 + i32.const 0 end - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer + i32.eqz ) - (func $~lib/typedarray/Int16Array#every (param $0 i32) (param $1 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 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 - block $~lib/typedarray/EVERY<~lib/typedarray/Int16Array,i16>|inlined.0 (result i32) - global.get $~lib/memory/__stack_pointer + local.get $1 + i32.const 255 + i32.and + i32.const 10 + i32.lt_u + if local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer local.get $1 - 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=8 - local.get $0 - i32.load offset=8 - i32.const 1 - i32.shr_u - 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=12 - 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 $i32_i32_i32_=>_i32) - 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 255 + i32.and + i32.const 48 + i32.or + i32.store16 i32.const 1 + return end - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer + local.get $1 + i32.const 255 + i32.and + local.tee $2 + call $~lib/util/number/decimalCount32 + local.set $1 + local.get $0 + local.get $2 + local.get $1 + call $~lib/util/number/utoa_dec_simple + local.get $1 ) - (func $~lib/typedarray/Uint16Array#every (param $0 i32) (param $1 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 + local.get $1 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 - block $~lib/typedarray/EVERY<~lib/typedarray/Uint16Array,u16>|inlined.0 (result i32) - global.get $~lib/memory/__stack_pointer + i32.shl + i32.const 16 + i32.shr_s + i32.const 0 + i32.lt_s + local.tee $2 + if local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer + i32.const 45 + i32.store16 + i32.const 0 local.get $1 - 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=8 + i32.sub + local.set $1 + end + local.get $1 + i32.const 16 + i32.shl + i32.const 16 + i32.shr_s + i32.const 10 + i32.lt_u + if local.get $0 - i32.load offset=8 + local.get $2 i32.const 1 - i32.shr_u - 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=12 - 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 $i32_i32_i32_=>_i32) - 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.shl + i32.add + local.get $1 + i32.const 16 + i32.shl + i32.const 16 + i32.shr_s + 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 $2 + local.get $1 + i32.const 16 + i32.shl i32.const 16 + i32.shr_s + local.tee $2 + call $~lib/util/number/decimalCount32 i32.add - global.set $~lib/memory/__stack_pointer + local.set $1 + local.get $0 + local.get $2 + local.get $1 + call $~lib/util/number/utoa_dec_simple + local.get $1 ) - (func $~lib/typedarray/Int32Array#every (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Int16Array#join (param $0 i32) (result i32) + local.get $0 + i32.load offset=4 + local.get $0 + i32.load offset=8 + i32.const 1 + i32.shr_u + call $~lib/util/string/joinIntegerArray + ) + (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 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 - block $~lib/typedarray/EVERY<~lib/typedarray/Int32Array,i32>|inlined.0 (result i32) - global.get $~lib/memory/__stack_pointer + local.get $1 + i32.const 65535 + i32.and + i32.const 10 + i32.lt_u + if local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer local.get $1 - 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=8 - local.get $0 - i32.load offset=8 - i32.const 2 - i32.shr_u - 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=12 - 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 $i32_i32_i32_=>_i32) - i32.eqz - br_if $~lib/typedarray/EVERY<~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 65535 + i32.and + i32.const 48 + i32.or + i32.store16 i32.const 1 + return end - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer + local.get $1 + i32.const 65535 + i32.and + local.tee $2 + call $~lib/util/number/decimalCount32 + local.set $1 + local.get $0 + local.get $2 + local.get $1 + call $~lib/util/number/utoa_dec_simple + local.get $1 ) - (func $~lib/typedarray/Uint32Array#every (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Uint16Array#join (param $0 i32) (result i32) + local.get $0 + i32.load offset=4 + local.get $0 + i32.load offset=8 + i32.const 1 + i32.shr_u + call $~lib/util/string/joinIntegerArray + ) + (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 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 - block $~lib/typedarray/EVERY<~lib/typedarray/Uint32Array,u32>|inlined.0 (result i32) - global.get $~lib/memory/__stack_pointer + local.get $1 + i32.const 0 + i32.lt_s + local.tee $2 + if local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer + i32.const 45 + i32.store16 + i32.const 0 local.get $1 - 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=8 + i32.sub + local.set $1 + end + local.get $1 + i32.const 10 + i32.lt_u + if local.get $0 - i32.load offset=8 - i32.const 2 - i32.shr_u - 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=12 - 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 $i32_i32_i32_=>_i32) - 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 + local.get $2 + i32.const 1 + i32.shl + i32.add + 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 - i32.const 16 + local.get $0 + local.get $1 + local.get $1 + call $~lib/util/number/decimalCount32 + local.get $2 i32.add - global.set $~lib/memory/__stack_pointer + local.tee $0 + call $~lib/util/number/utoa_dec_simple + local.get $0 ) - (func $~lib/typedarray/Int64Array#every (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 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 - block $~lib/typedarray/EVERY<~lib/typedarray/Int64Array,i64>|inlined.0 (result i32) - global.get $~lib/memory/__stack_pointer + (func $~lib/typedarray/Int32Array#join (param $0 i32) (result i32) + local.get $0 + i32.load offset=4 + local.get $0 + i32.load offset=8 + i32.const 2 + i32.shr_u + call $~lib/util/string/joinIntegerArray + ) + (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 - i32.store - global.get $~lib/memory/__stack_pointer local.get $1 - 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=8 - local.get $0 - i32.load offset=8 - i32.const 3 - i32.shr_u - 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=12 - 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 $i64_i32_i32_=>_i32) - 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 - end + i32.const 48 + i32.or + i32.store16 i32.const 1 + return end - global.get $~lib/memory/__stack_pointer + local.get $0 + local.get $1 + local.get $1 + call $~lib/util/number/decimalCount32 + local.tee $0 + call $~lib/util/number/utoa_dec_simple + local.get $0 + ) + (func $~lib/typedarray/Uint32Array#join (param $0 i32) (result i32) + local.get $0 + i32.load offset=4 + local.get $0 + i32.load offset=8 + i32.const 2 + i32.shr_u + call $~lib/util/string/joinIntegerArray + ) + (func $~lib/util/number/decimalCount64High (param $0 i64) (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 + 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 + local.get $0 + i64.const 1000000000000 + i64.lt_u + select + local.get $0 + i64.const 10000000000000000 + i64.ge_u i32.const 16 i32.add - global.set $~lib/memory/__stack_pointer + 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 + local.get $0 + i64.const 100000000000000000 + i64.lt_u + select + local.get $0 + i64.const 1000000000000000 + i64.lt_u + select ) - (func $~lib/typedarray/Uint64Array#every (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 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 - 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 - local.get $0 - i32.load offset=4 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 + (func $~lib/util/number/utoa_dec_simple (param $0 i32) (param $1 i64) (param $2 i32) + loop $do-continue|0 local.get $0 - i32.load offset=8 - i32.const 3 - i32.shr_u - 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=12 - 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 $i64_i32_i32_=>_i32) - 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 + local.get $2 i32.const 1 + i32.sub + local.tee $2 + i32.const 1 + i32.shl + i32.add + local.get $1 + i64.const 10 + i64.rem_u + i32.wrap_i64 + i32.const 48 + i32.add + i32.store16 + local.get $1 + i64.const 10 + i64.div_u + local.tee $1 + i64.const 0 + i64.ne + br_if $do-continue|0 end - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer ) - (func $~lib/typedarray/Float32Array#every (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 f32) - 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 + local.get $1 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 + i64.lt_s + local.tee $2 + if local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer + i32.const 45 + i32.store16 + i64.const 0 local.get $1 - 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=8 + i64.sub + local.set $1 + end + local.get $1 + i64.const 10 + i64.lt_u + if local.get $0 - i32.load offset=8 - i32.const 2 - i32.shr_u - 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=12 - 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 $f32_i32_i32_=>_i32) - 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 + local.get $2 + i32.const 1 + i32.shl + i32.add + local.get $1 + i64.const 48 + i64.or + i64.store16 + local.get $2 i32.const 1 + i32.add + return end - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (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 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 - 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 + i64.const 4294967295 + i64.le_u + if local.get $1 - i32.store offset=4 - local.get $0 - i32.load offset=4 - local.set $3 - global.get $~lib/memory/__stack_pointer + i32.wrap_i64 + local.tee $3 + call $~lib/util/number/decimalCount32 + local.get $2 + i32.add + local.set $2 local.get $0 - i32.store offset=8 + local.get $3 + local.get $2 + call $~lib/util/number/utoa_dec_simple + else local.get $0 - i32.load offset=8 - i32.const 3 - i32.shr_u - 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=12 - 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 $f64_i32_i32_=>_i32) - 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 - end - i32.const 1 + local.get $1 + local.get $1 + call $~lib/util/number/decimalCount64High + local.get $2 + i32.add + local.tee $2 + call $~lib/util/number/utoa_dec_simple end - global.get $~lib/memory/__stack_pointer - i32.const 16 - 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) - 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 - i32.const 6448 - i32.store + (func $~lib/typedarray/Int64Array#join (param $0 i32) (result i32) local.get $0 - i32.const 255 - i32.and - i32.const 6448 + i32.load offset=4 + local.get $0 + i32.load offset=8 + i32.const 3 + i32.shr_u + call $~lib/util/string/joinIntegerArray + ) + (func $~lib/util/number/itoa_buffered (param $0 i32) (param $1 i64) (result i32) + (local $2 i32) + (local $3 i32) local.get $1 - call $~lib/array/Array#__get - i32.const 255 - i32.and - i32.ne + i64.const 10 + i64.lt_u if - i32.const 0 - i32.const 1568 - i32.const 513 - i32.const 5 - call $~lib/builtins/abort - unreachable + local.get $0 + local.get $1 + i64.const 48 + i64.or + i64.store16 + i32.const 1 + return end local.get $1 - global.get $std/typedarray/forEachCallCount - i32.ne + i64.const 4294967295 + i64.le_u if - i32.const 0 - i32.const 1568 - i32.const 514 - i32.const 5 - call $~lib/builtins/abort - unreachable + local.get $1 + i32.wrap_i64 + local.tee $3 + call $~lib/util/number/decimalCount32 + local.set $2 + local.get $0 + local.get $3 + local.get $2 + call $~lib/util/number/utoa_dec_simple + else + local.get $0 + local.get $1 + local.get $1 + call $~lib/util/number/decimalCount64High + local.tee $2 + call $~lib/util/number/utoa_dec_simple end local.get $2 - global.get $std/typedarray/forEachSelf - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 515 - 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/Int8Array,i8> - (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.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 - global.set $std/typedarray/forEachCallCount - global.get $~lib/memory/__stack_pointer - i32.const 3 - call $~lib/typedarray/Int8Array#constructor - local.tee $0 - i32.store - local.get $0 - global.set $std/typedarray/forEachSelf - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 6448 - i32.store offset=8 - local.get $0 - i32.const 0 - i32.const 6448 - i32.const 0 - call $~lib/array/Array#__get - i32.const 24 - i32.shl - i32.const 24 - i32.shr_s - call $~lib/typedarray/Int8Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 6448 - i32.store offset=8 - local.get $0 - i32.const 1 - i32.const 6448 - i32.const 1 - call $~lib/array/Array#__get - i32.const 24 - i32.shl - i32.const 24 - i32.shr_s - call $~lib/typedarray/Int8Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 6448 - i32.store offset=8 - local.get $0 - i32.const 2 - i32.const 6448 - i32.const 2 - call $~lib/array/Array#__get - i32.const 24 - i32.shl - i32.const 24 - i32.shr_s - call $~lib/typedarray/Int8Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 6496 - i32.store offset=8 - 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 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 6496 - i32.store offset=4 + (func $~lib/typedarray/Uint64Array#join (param $0 i32) (result i32) local.get $0 i32.load offset=4 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 local.get $0 i32.load offset=8 - local.set $3 - loop $for-loop|0 - local.get $1 - local.get $3 - i32.lt_s - if - local.get $1 - local.get $2 - i32.add - i32.load8_s - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=12 - i32.const 3 - global.set $~argumentsLength - local.get $1 - local.get $0 - i32.const 6496 - i32.load - call_indirect (type $i32_i32_i32_=>_none) - 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 16 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $std/typedarray/forEachCallCount i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 518 - 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 + i32.shr_u + call $~lib/util/string/joinIntegerArray ) - (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 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 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer + (func $~lib/util/number/genDigits (param $0 i32) (param $1 i64) (param $2 i32) (param $3 i64) (param $4 i32) (param $5 i64) (param $6 i32) (result i32) + (local $7 i64) + (local $8 i64) + (local $9 i32) + (local $10 i64) + (local $11 i32) + (local $12 i64) + (local $13 i64) + local.get $3 local.get $1 - 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=8 - local.get $0 - i32.load offset=8 - local.set $4 - loop $for-loop|0 - local.get $2 - local.get $4 - i32.lt_s + i64.sub + local.set $8 + local.get $3 + i64.const 1 + i32.const 0 + local.get $4 + i32.sub + local.tee $11 + i64.extend_i32_s + i64.shl + local.tee $10 + i64.const 1 + i64.sub + local.tee $12 + i64.and + local.set $7 + local.get $3 + local.get $11 + i64.extend_i32_s + i64.shr_u + i32.wrap_i64 + local.tee $2 + call $~lib/util/number/decimalCount32 + local.set $9 + loop $while-continue|0 + local.get $9 + 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 $9 + 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 $4 + 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 $4 + 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 $4 + 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 $4 + 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 $4 + 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 $4 + 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 $4 + 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 $4 + 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 $4 + local.get $2 + i32.const 10 + i32.rem_u + local.set $2 + br $break|1 + end + local.get $2 + local.set $4 + i32.const 0 + local.set $2 + br $break|1 + end + i32.const 0 + local.set $4 + end + local.get $4 + local.get $6 + i32.or + if + local.get $0 + local.get $6 + i32.const 1 + i32.shl + i32.add + local.get $4 + i32.const 65535 + i32.and + i32.const 48 + i32.add + i32.store16 + local.get $6 + i32.const 1 + i32.add + local.set $6 + end + local.get $9 + i32.const 1 + i32.sub + local.set $9 + local.get $5 + local.get $7 local.get $2 - local.get $3 - i32.add - i32.load8_u - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=12 - i32.const 3 - global.set $~argumentsLength - local.get $2 + i64.extend_i32_u + local.get $11 + i64.extend_i32_s + i64.shl + i64.add + local.tee $1 + i64.ge_u + if + local.get $9 + global.get $~lib/util/number/_K + i32.add + global.set $~lib/util/number/_K + local.get $9 + i32.const 2 + i32.shl + i32.const 8576 + i32.add + i64.load32_u + local.get $11 + i64.extend_i32_s + i64.shl + local.set $10 + local.get $0 + local.get $6 + i32.const 1 + i32.sub + i32.const 1 + i32.shl + i32.add + local.tee $0 + i32.load16_u + local.set $2 + loop $while-continue|3 + i32.const 1 + local.get $8 + local.get $1 + i64.sub + local.get $1 + local.get $10 + i64.add + local.tee $3 + local.get $8 + i64.sub + i64.gt_u + local.get $3 + local.get $8 + i64.lt_u + select + i32.const 0 + local.get $10 + local.get $5 + local.get $1 + i64.sub + i64.le_u + i32.const 0 + local.get $1 + local.get $8 + i64.lt_u + select + select + if + local.get $2 + i32.const 1 + i32.sub + local.set $2 + local.get $1 + local.get $10 + i64.add + local.set $1 + br $while-continue|3 + end + end + local.get $0 + local.get $2 + i32.store16 + local.get $6 + return + end + br $while-continue|0 + end + end + local.get $11 + i64.extend_i32_s + local.set $13 + loop $while-continue|4 (result i32) + local.get $5 + i64.const 10 + i64.mul + local.set $5 + local.get $7 + i64.const 10 + i64.mul + local.tee $3 + local.get $13 + i64.shr_u + local.tee $1 + local.get $6 + i64.extend_i32_s + i64.or + i64.const 0 + i64.ne + if local.get $0 + local.get $6 + i32.const 1 + i32.shl + i32.add local.get $1 - i32.load - call_indirect (type $i32_i32_i32_=>_none) - local.get $2 + i32.wrap_i64 + i32.const 65535 + i32.and + i32.const 48 + i32.add + i32.store16 + local.get $6 i32.const 1 i32.add - local.set $2 - br $for-loop|0 + local.set $6 end - end - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $std/typedarray/testArrayForEach<~lib/typedarray/Uint8Array,u8> - (local $0 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 - i32.const 0 - global.set $std/typedarray/forEachCallCount - global.get $~lib/memory/__stack_pointer - i32.const 3 - call $~lib/typedarray/Uint8Array#constructor - local.tee $0 - i32.store - local.get $0 - global.set $std/typedarray/forEachSelf - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 6448 - i32.store offset=8 - local.get $0 - i32.const 0 - i32.const 6448 - i32.const 0 - call $~lib/array/Array#__get - i32.const 255 - i32.and - call $~lib/typedarray/Uint8Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 6448 - i32.store offset=8 - local.get $0 - i32.const 1 - i32.const 6448 - i32.const 1 - call $~lib/array/Array#__get - i32.const 255 - i32.and - call $~lib/typedarray/Uint8Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 6448 - i32.store offset=8 - local.get $0 - i32.const 2 - i32.const 6448 - i32.const 2 - call $~lib/array/Array#__get - i32.const 255 - i32.and - call $~lib/typedarray/Uint8Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 6528 - i32.store offset=8 - local.get $0 - i32.const 6528 - call $~lib/typedarray/Uint8Array#forEach - global.get $std/typedarray/forEachCallCount - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 518 - 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/testArrayForEach<~lib/typedarray/Uint8ClampedArray,u8> - (local $0 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 - i32.const 0 - global.set $std/typedarray/forEachCallCount - global.get $~lib/memory/__stack_pointer - i32.const 3 - call $~lib/typedarray/Uint8ClampedArray#constructor - local.tee $0 - i32.store - local.get $0 - global.set $std/typedarray/forEachSelf - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 6448 - i32.store offset=8 - local.get $0 - i32.const 0 - i32.const 6448 - i32.const 0 - call $~lib/array/Array#__get - i32.const 255 - i32.and - call $~lib/typedarray/Uint8ClampedArray#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 6448 - i32.store offset=8 - local.get $0 - i32.const 1 - i32.const 6448 - i32.const 1 - call $~lib/array/Array#__get - i32.const 255 - i32.and - call $~lib/typedarray/Uint8ClampedArray#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 6448 - i32.store offset=8 - local.get $0 - i32.const 2 - i32.const 6448 - i32.const 2 - call $~lib/array/Array#__get - i32.const 255 - i32.and - call $~lib/typedarray/Uint8ClampedArray#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 6560 - i32.store offset=8 - local.get $0 - i32.const 6560 - call $~lib/typedarray/Uint8Array#forEach - global.get $std/typedarray/forEachCallCount - i32.const 3 - i32.ne - if + local.get $9 + i32.const 1 + i32.sub + local.set $9 + local.get $3 + local.get $12 + i64.and + local.tee $7 + local.get $5 + i64.ge_u + br_if $while-continue|4 + local.get $9 + global.get $~lib/util/number/_K + i32.add + global.set $~lib/util/number/_K + local.get $7 + local.set $1 + local.get $8 i32.const 0 - i32.const 1568 - i32.const 518 - i32.const 3 - call $~lib/builtins/abort - unreachable + local.get $9 + i32.sub + i32.const 2 + i32.shl + i32.const 8576 + i32.add + i64.load32_u + i64.mul + local.set $8 + local.get $0 + local.get $6 + i32.const 1 + i32.sub + i32.const 1 + i32.shl + i32.add + local.tee $0 + i32.load16_u + local.set $2 + loop $while-continue|6 + i32.const 1 + local.get $8 + local.get $1 + i64.sub + local.get $1 + local.get $10 + i64.add + local.tee $3 + local.get $8 + i64.sub + i64.gt_u + local.get $3 + local.get $8 + i64.lt_u + select + i32.const 0 + local.get $10 + local.get $5 + local.get $1 + i64.sub + i64.le_u + i32.const 0 + local.get $1 + local.get $8 + i64.lt_u + select + select + if + local.get $2 + i32.const 1 + i32.sub + local.set $2 + local.get $1 + local.get $10 + i64.add + local.set $1 + br $while-continue|6 + end + end + local.get $0 + local.get $2 + i32.store16 + local.get $6 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) - 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 - i32.const 6448 - i32.store - local.get $0 - i32.const 65535 - i32.and - i32.const 6448 - local.get $1 - call $~lib/array/Array#__get - i32.const 65535 - i32.and - i32.ne + (func $~lib/util/number/prettify (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + local.get $2 + i32.eqz if - i32.const 0 - i32.const 1568 - i32.const 513 - i32.const 5 - call $~lib/builtins/abort - unreachable + 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 - global.get $std/typedarray/forEachCallCount - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 514 - 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 515 - 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/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 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 - global.set $std/typedarray/forEachCallCount - global.get $~lib/memory/__stack_pointer - i32.const 3 - call $~lib/typedarray/Int16Array#constructor - local.tee $0 - i32.store - local.get $0 - global.set $std/typedarray/forEachSelf - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 6448 - i32.store offset=8 - local.get $0 - i32.const 0 - i32.const 6448 + local.tee $3 + i32.const 21 + i32.le_s i32.const 0 - call $~lib/array/Array#__get - i32.const 16 - i32.shl - i32.const 16 - i32.shr_s - call $~lib/typedarray/Int16Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 6448 - i32.store offset=8 - local.get $0 - i32.const 1 - i32.const 6448 - i32.const 1 - call $~lib/array/Array#__get - i32.const 16 - i32.shl - i32.const 16 - i32.shr_s - call $~lib/typedarray/Int16Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 6448 - i32.store offset=8 - local.get $0 - i32.const 2 - i32.const 6448 - i32.const 2 - call $~lib/array/Array#__get - i32.const 16 - i32.shl - i32.const 16 - i32.shr_s - call $~lib/typedarray/Int16Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 6592 - i32.store offset=8 - 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 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 6592 - 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=8 - local.get $0 - i32.load offset=8 - i32.const 1 - i32.shr_u - local.set $3 - loop $for-loop|0 - local.get $1 - local.get $3 - i32.lt_s - if - local.get $2 + local.get $1 + local.get $3 + i32.le_s + select + 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 + i32.const 0 + local.get $3 + i32.const 0 + i32.gt_s + select + if (result i32) + local.get $0 + local.get $3 i32.const 1 i32.shl i32.add - i32.load16_s - global.get $~lib/memory/__stack_pointer + local.tee $0 + i32.const 2 + i32.add local.get $0 - i32.store offset=12 - i32.const 3 - global.set $~argumentsLength - local.get $1 + i32.const 0 + local.get $2 + i32.sub + i32.const 1 + i32.shl + call $~lib/memory/memory.copy local.get $0 - i32.const 6592 - i32.load - call_indirect (type $i32_i32_i32_=>_none) + i32.const 46 + 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 16 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $std/typedarray/forEachCallCount - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 518 - 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/testArrayForEach<~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 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 - global.set $std/typedarray/forEachCallCount - global.get $~lib/memory/__stack_pointer - i32.const 3 - call $~lib/typedarray/Uint16Array#constructor - local.tee $0 - i32.store - local.get $0 - global.set $std/typedarray/forEachSelf - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 6448 - i32.store offset=8 - local.get $0 - i32.const 0 - i32.const 6448 - i32.const 0 - call $~lib/array/Array#__get - i32.const 65535 - i32.and - call $~lib/typedarray/Uint16Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 6448 - i32.store offset=8 - local.get $0 - i32.const 1 - i32.const 6448 - i32.const 1 - call $~lib/array/Array#__get - i32.const 65535 - i32.and - call $~lib/typedarray/Uint16Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 6448 - i32.store offset=8 - local.get $0 - i32.const 2 - i32.const 6448 - i32.const 2 - call $~lib/array/Array#__get - i32.const 65535 - i32.and - call $~lib/typedarray/Uint16Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 6624 - i32.store offset=8 - 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 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 6624 - 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=8 - local.get $0 - i32.load offset=8 - i32.const 1 - i32.shr_u - local.set $3 - loop $for-loop|0 - local.get $1 - local.get $3 - i32.lt_s - if - local.get $2 - local.get $1 - i32.const 1 - i32.shl - i32.add - i32.load16_u - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=12 - i32.const 3 - global.set $~argumentsLength - local.get $1 - local.get $0 - i32.const 6624 - i32.load - call_indirect (type $i32_i32_i32_=>_none) - local.get $1 - i32.const 1 - i32.add - local.set $1 - br $for-loop|0 + else + local.get $3 + i32.const 0 + i32.le_s + i32.const 0 + local.get $3 + i32.const -6 + i32.gt_s + select + 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 + call $~lib/memory/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 (result i32) + local.get $0 + i32.const 101 + i32.store16 offset=2 + local.get $0 + local.tee $1 + i32.const 4 + i32.add + 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 + call $~lib/util/number/decimalCount32 + i32.const 1 + i32.add + local.tee $0 + call $~lib/util/number/utoa_dec_simple + local.get $1 + i32.const 45 + i32.const 43 + local.get $2 + select + i32.store16 offset=4 + local.get $0 + i32.const 2 + i32.add + 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 + call $~lib/memory/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 + local.tee $2 + i32.const 4 + i32.add + 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 + call $~lib/util/number/decimalCount32 + i32.const 1 + i32.add + local.tee $0 + call $~lib/util/number/utoa_dec_simple + local.get $2 + i32.const 45 + i32.const 43 + local.get $3 + select + i32.store16 offset=4 + local.get $0 + local.get $1 + i32.add + i32.const 2 + i32.add + end + end end end - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $std/typedarray/forEachCallCount - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 518 - 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/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 - 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 - i32.const 6448 - i32.store - i32.const 6448 + (func $~lib/util/number/dtoa_core (param $0 i32) (param $1 f64) (result i32) + (local $2 i64) + (local $3 i64) + (local $4 i32) + (local $5 i64) + (local $6 i64) + (local $7 i64) + (local $8 i32) + (local $9 i32) + (local $10 i32) local.get $1 - call $~lib/array/Array#__get - local.get $0 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 513 - i32.const 5 - call $~lib/builtins/abort - unreachable + f64.const 0 + f64.lt + local.tee $9 + if (result f64) + local.get $0 + i32.const 45 + i32.store16 + local.get $1 + f64.neg + else + local.get $1 end - local.get $1 - global.get $std/typedarray/forEachCallCount + i64.reinterpret_f64 + local.tee $2 + i64.const 9218868437227405312 + i64.and + i64.const 52 + i64.shr_u + i32.wrap_i64 + local.tee $8 + i32.const 0 i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 514 - i32.const 5 - call $~lib/builtins/abort - unreachable - end + i64.extend_i32_u + i64.const 52 + i64.shl local.get $2 - global.get $std/typedarray/forEachSelf - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 515 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $std/typedarray/forEachCallCount + i64.const 4503599627370495 + i64.and + i64.add + local.tee $3 + i64.const 1 + i64.shl + i64.const 1 + i64.add + local.tee $2 + local.get $2 + i64.clz + i32.wrap_i64 + local.tee $4 + i64.extend_i32_s + i64.shl + global.set $~lib/util/number/_frc_plus + local.get $8 + i32.const 1 + local.get $8 + select + i32.const 1075 + i32.sub + local.tee $8 + i32.const 1 + i32.sub + local.get $4 + i32.sub + local.set $4 + local.get $3 + local.get $3 + i64.const 4503599627370496 + i64.eq 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/Int64Array,i64>~anonymous|0 (param $0 i64) (param $1 i32) (param $2 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 + local.tee $10 + i64.extend_i32_s + i64.shl + i64.const 1 + i64.sub + local.get $8 + local.get $10 + i32.sub + local.get $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 - i32.const 6448 - i32.store - local.get $0 - i32.const 6448 - local.get $1 - call $~lib/array/Array#__get i64.extend_i32_s - i64.ne - if - i32.const 0 - i32.const 1568 - i32.const 513 - i32.const 5 - call $~lib/builtins/abort - unreachable - end + 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 $1 + i32.trunc_f64_s + local.tee $4 local.get $1 - global.get $std/typedarray/forEachCallCount - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 514 - 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 515 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $std/typedarray/forEachCallCount - i32.const 1 + local.get $4 + f64.convert_i32_s + f64.ne i32.add - global.set $std/typedarray/forEachCallCount - global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 3 + i32.shr_s + i32.const 1 i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $std/typedarray/testArrayForEach<~lib/typedarray/Int64Array,i64> - (local $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 - 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 - global.set $std/typedarray/forEachCallCount - global.get $~lib/memory/__stack_pointer + local.tee $4 i32.const 3 - call $~lib/typedarray/Int64Array#constructor - local.tee $0 - i32.store - local.get $0 - global.set $std/typedarray/forEachSelf - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 6448 - i32.store offset=8 - local.get $0 - i32.const 0 - i32.const 6448 - i32.const 0 - call $~lib/array/Array#__get - i64.extend_i32_s - call $~lib/typedarray/Int64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 6448 - i32.store offset=8 - local.get $0 - i32.const 1 - i32.const 6448 + i32.shl + local.tee $10 + i32.sub + global.set $~lib/util/number/_K + local.get $10 + i32.const 7704 + i32.add + i64.load + global.set $~lib/util/number/_frc_pow + local.get $4 i32.const 1 - call $~lib/array/Array#__get - i64.extend_i32_s - call $~lib/typedarray/Int64Array#__set - global.get $~lib/memory/__stack_pointer + i32.shl + i32.const 8400 + i32.add + i32.load16_s + global.set $~lib/util/number/_exp_pow + global.get $~lib/util/number/_frc_pow + local.tee $6 + i64.const 4294967295 + i64.and + local.set $2 + local.get $6 + i64.const 32 + i64.shr_u + local.tee $6 + global.get $~lib/util/number/_frc_plus + local.tee $5 + i64.const 32 + i64.shr_u + local.tee $7 + i64.mul + local.get $2 + local.get $7 + i64.mul + local.get $2 + local.get $5 + i64.const 4294967295 + i64.and + local.tee $5 + i64.mul + i64.const 32 + i64.shr_u + i64.add + local.tee $7 + i64.const 32 + i64.shr_u + i64.add + local.get $5 + 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 + i64.const 1 + i64.sub + local.set $5 local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 6448 - i32.store offset=8 + local.get $9 + i32.const 1 + i32.shl + i32.add local.get $0 - i32.const 2 - i32.const 6448 - i32.const 2 - call $~lib/array/Array#__get + local.get $6 + local.get $3 + local.get $3 + i64.clz + i32.wrap_i64 + local.tee $0 i64.extend_i32_s - call $~lib/typedarray/Int64Array#__set - global.get $~lib/memory/__stack_pointer + i64.shl + local.tee $3 + i64.const 32 + i64.shr_u + local.tee $7 + i64.mul + local.get $2 + local.get $7 + i64.mul + local.get $2 + local.get $3 + i64.const 4294967295 + i64.and + local.tee $3 + i64.mul + i64.const 32 + i64.shr_u + i64.add + local.tee $7 + i64.const 32 + i64.shr_u + i64.add + local.get $3 + 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 + global.get $~lib/util/number/_exp_pow + local.tee $4 + local.get $8 local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 6720 - i32.store offset=8 - 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 - global.get $~lib/memory/__stack_pointer + i32.add + i32.const -64 + i32.sub + local.get $5 + local.get $4 + global.get $~lib/util/number/_exp + i32.add + i32.const -64 + i32.sub + local.get $5 + local.get $6 + global.get $~lib/util/number/_frc_minus + local.tee $3 + i64.const 32 + i64.shr_u + local.tee $5 + i64.mul + local.get $2 + local.get $5 + i64.mul + local.get $2 + local.get $3 + i64.const 4294967295 + i64.and + local.tee $2 + i64.mul + i64.const 32 + i64.shr_u + i64.add + local.tee $3 + i64.const 32 + i64.shr_u + i64.add + local.get $2 + local.get $6 + i64.mul + local.get $3 + 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 $9 + call $~lib/util/number/genDigits + local.get $9 + i32.sub + global.get $~lib/util/number/_K + call $~lib/util/number/prettify + local.get $9 + 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 + 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 + 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 + return + 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 + return + end + unreachable + end local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 6720 - i32.store offset=4 + local.get $1 + call $~lib/util/number/dtoa_core + ) + (func $~lib/typedarray/Float32Array#join (param $0 i32) (result i32) local.get $0 i32.load offset=4 - local.set $2 - global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=8 + i32.load offset=8 + i32.const 2 + i32.shr_u + call $~lib/util/string/joinFloatArray + ) + (func $~lib/typedarray/Float64Array#join (param $0 i32) (result i32) + local.get $0 + i32.load offset=4 local.get $0 i32.load offset=8 i32.const 3 i32.shr_u + call $~lib/util/string/joinFloatArray + ) + (func $~lib/typedarray/Uint8Array.wrap@varargs (param $0 i32) (param $1 i32) (result i32) + (local $2 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 0 + local.set $1 + end + i32.const -1 + local.set $2 + end + local.get $0 + local.get $1 + local.get $2 + call $~lib/typedarray/Uint8Array.wrap + ) + (func $~lib/typedarray/Int8Array#set<~lib/array/Array> (param $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + i32.const 8860 + i32.load + local.get $0 + i32.load offset=8 + i32.gt_s + if + i32.const 1360 + i32.const 1632 + i32.const 1865 + i32.const 47 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=4 + local.set $0 + i32.const 8852 + i32.load + local.set $2 + i32.const 8860 + i32.load local.set $3 loop $for-loop|0 local.get $1 local.get $3 i32.lt_s if + local.get $0 + local.get $1 + i32.add local.get $2 local.get $1 - i32.const 3 + i32.const 2 i32.shl i32.add - i64.load - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=12 - i32.const 3 - global.set $~argumentsLength - local.get $1 - local.get $0 - i32.const 6720 i32.load - call_indirect (type $i64_i32_i32_=>_none) + i32.store8 local.get $1 i32.const 1 i32.add @@ -17488,1324 +14977,1212 @@ br $for-loop|0 end end - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $std/typedarray/forEachCallCount + ) + (func $~lib/typedarray/Int8Array#set<~lib/typedarray/Int64Array> (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + local.get $0 + i32.load offset=8 + local.get $1 + i32.load offset=8 i32.const 3 - i32.ne + i32.shr_u + i32.const 6 + i32.add + i32.lt_s if - i32.const 0 - i32.const 1568 - i32.const 518 - i32.const 3 + i32.const 1360 + i32.const 1632 + i32.const 1865 + i32.const 47 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/testArrayForEach<~lib/typedarray/Uint64Array,u64> - (local $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 - 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 - global.set $std/typedarray/forEachCallCount - global.get $~lib/memory/__stack_pointer - i32.const 3 - call $~lib/typedarray/Uint64Array#constructor - local.tee $0 - i32.store - local.get $0 - global.set $std/typedarray/forEachSelf - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 6448 - i32.store offset=8 - local.get $0 - i32.const 0 - i32.const 6448 - i32.const 0 - call $~lib/array/Array#__get - i64.extend_i32_s - call $~lib/typedarray/Uint64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 6448 - i32.store offset=8 - local.get $0 - i32.const 1 - i32.const 6448 - i32.const 1 - call $~lib/array/Array#__get - i64.extend_i32_s - call $~lib/typedarray/Uint64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 6448 - i32.store offset=8 - local.get $0 - i32.const 2 - i32.const 6448 - i32.const 2 - call $~lib/array/Array#__get - i64.extend_i32_s - call $~lib/typedarray/Uint64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 6752 - i32.store offset=8 - 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 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 6752 - 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=8 - local.get $0 + i32.const 6 + i32.add + local.set $0 + local.get $1 + i32.load offset=4 + local.set $3 + local.get $1 i32.load offset=8 i32.const 3 i32.shr_u - local.set $3 + local.set $1 loop $for-loop|0 local.get $1 - local.get $3 - i32.lt_s + local.get $2 + i32.gt_s if + local.get $0 + local.get $2 + i32.add + local.get $3 local.get $2 - local.get $1 i32.const 3 i32.shl i32.add i64.load - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=12 - i32.const 3 - global.set $~argumentsLength - local.get $1 - local.get $0 - i32.const 6752 - i32.load - call_indirect (type $i64_i32_i32_=>_none) - local.get $1 + i64.store8 + local.get $2 i32.const 1 i32.add - local.set $1 + 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 - global.get $std/typedarray/forEachCallCount - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 518 - 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/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 - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 6448 - i32.store - local.get $0 - i32.const 6448 + (func $~lib/typedarray/Int8Array#set<~lib/typedarray/Uint8Array> (param $0 i32) (param $1 i32) local.get $1 - call $~lib/array/Array#__get - f32.convert_i32_s - f32.ne + i32.load offset=8 + local.get $0 + i32.load offset=8 + i32.gt_s if - i32.const 0 - i32.const 1568 - i32.const 513 - i32.const 5 + i32.const 1360 + i32.const 1632 + i32.const 1865 + i32.const 47 call $~lib/builtins/abort unreachable end + local.get $0 + i32.load offset=4 local.get $1 - global.get $std/typedarray/forEachCallCount - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 514 - 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 515 - 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 + i32.load offset=4 + local.get $1 + i32.load offset=8 + call $~lib/memory/memory.copy ) - (func $std/typedarray/testArrayForEach<~lib/typedarray/Float32Array,f32> - (local $0 i32) - (local $1 i32) + (func $~lib/typedarray/Int8Array#set<~lib/typedarray/Int16Array> (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) - (local $4 f32) - 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 - i32.const 0 - global.set $std/typedarray/forEachCallCount - global.get $~lib/memory/__stack_pointer - i32.const 3 - call $~lib/typedarray/Float32Array#constructor - local.tee $0 - i32.store - local.get $0 - global.set $std/typedarray/forEachSelf - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 6448 - i32.store offset=8 - local.get $0 - i32.const 0 - i32.const 6448 - i32.const 0 - call $~lib/array/Array#__get - f32.convert_i32_s - call $~lib/typedarray/Float32Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 6448 - i32.store offset=8 local.get $0 + i32.load offset=8 + local.get $1 + i32.load offset=8 i32.const 1 - i32.const 6448 - i32.const 1 - call $~lib/array/Array#__get - f32.convert_i32_s - call $~lib/typedarray/Float32Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 6448 - i32.store offset=8 - local.get $0 - i32.const 2 - i32.const 6448 - i32.const 2 - call $~lib/array/Array#__get - f32.convert_i32_s - call $~lib/typedarray/Float32Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 6784 - i32.store offset=8 - 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 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 6784 - i32.store offset=4 + i32.shr_u + i32.const 4 + i32.add + i32.lt_s + if + i32.const 1360 + i32.const 1632 + i32.const 1865 + i32.const 47 + call $~lib/builtins/abort + unreachable + end local.get $0 i32.load offset=4 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 + i32.const 4 + i32.add + local.set $0 + local.get $1 + i32.load offset=4 + local.set $3 + local.get $1 i32.load offset=8 - i32.const 2 + i32.const 1 i32.shr_u - local.set $3 + local.set $1 loop $for-loop|0 local.get $1 - local.get $3 - i32.lt_s + local.get $2 + i32.gt_s if + local.get $0 local.get $2 - local.get $1 - i32.const 2 + i32.add + local.get $3 + local.get $2 + i32.const 1 i32.shl i32.add - f32.load - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=12 - i32.const 3 - global.set $~argumentsLength - local.get $1 - local.get $0 - i32.const 6784 - i32.load - call_indirect (type $f32_i32_i32_=>_none) - local.get $1 + i32.load16_s + i32.store8 + local.get $2 i32.const 1 i32.add - local.set $1 + local.set $2 br $for-loop|0 end end - global.get $~lib/memory/__stack_pointer - i32.const 16 + ) + (func $~lib/typedarray/Int8Array#set<~lib/array/Array> (param $0 i32) + local.get $0 + i32.load offset=8 + i32.const 9116 + i32.load + i32.const 7 i32.add - global.set $~lib/memory/__stack_pointer - global.get $std/typedarray/forEachCallCount - i32.const 3 - i32.ne + i32.lt_s if - i32.const 0 - i32.const 1568 - i32.const 518 - i32.const 3 + i32.const 1360 + i32.const 1632 + i32.const 1865 + i32.const 47 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 12 + local.get $0 + i32.load offset=4 + i32.const 7 i32.add - global.set $~lib/memory/__stack_pointer + i32.const 9108 + i32.load + i32.const 9112 + i32.load + call $~lib/memory/memory.copy ) - (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 - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~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.get $2 i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 6448 - i32.store - local.get $0 - i32.const 6448 - local.get $1 - call $~lib/array/Array#__get - f64.convert_i32_s - f64.ne + i32.lt_s if - i32.const 0 - i32.const 1568 - i32.const 513 - i32.const 5 + i32.const 1360 + i32.const 1632 + i32.const 1864 + i32.const 19 call $~lib/builtins/abort unreachable end + local.get $0 + i32.load offset=8 + local.get $2 local.get $1 - global.get $std/typedarray/forEachCallCount - i32.ne + i32.load offset=8 + i32.const 3 + i32.shr_u + i32.add + i32.lt_s if - i32.const 0 - i32.const 1568 - i32.const 514 - i32.const 5 + i32.const 1360 + i32.const 1632 + i32.const 1865 + i32.const 47 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 515 - 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/Float64Array,f64> - (local $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 f64) - 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 - i32.const 0 - global.set $std/typedarray/forEachCallCount - global.get $~lib/memory/__stack_pointer - i32.const 3 - call $~lib/typedarray/Float64Array#constructor - local.tee $0 - i32.store - local.get $0 - global.set $std/typedarray/forEachSelf - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 6448 - i32.store offset=8 - local.get $0 - i32.const 0 - i32.const 6448 - i32.const 0 - call $~lib/array/Array#__get - f64.convert_i32_s - call $~lib/typedarray/Float64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 6448 - i32.store offset=8 - local.get $0 - i32.const 1 - i32.const 6448 - i32.const 1 - call $~lib/array/Array#__get - f64.convert_i32_s - call $~lib/typedarray/Float64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 6448 - i32.store offset=8 - local.get $0 - i32.const 2 - i32.const 6448 - i32.const 2 - call $~lib/array/Array#__get - f64.convert_i32_s - call $~lib/typedarray/Float64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 6816 - i32.store offset=8 - 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 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 6816 - i32.store offset=4 local.get $0 i32.load offset=4 + i32.add + local.set $0 + local.get $1 + i32.load offset=4 local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 + local.get $1 i32.load offset=8 i32.const 3 i32.shr_u - local.set $3 + local.set $1 loop $for-loop|0 local.get $1 local.get $3 - i32.lt_s + i32.gt_s if + local.get $0 + local.get $3 + i32.add local.get $2 - local.get $1 + local.get $3 i32.const 3 i32.shl i32.add - f64.load - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=12 - i32.const 3 - global.set $~argumentsLength - local.get $1 - local.get $0 - i32.const 6816 - i32.load - call_indirect (type $f64_i32_i32_=>_none) - local.get $1 + i64.load + local.tee $4 + i32.wrap_i64 + i32.const 31 + i32.shr_s + i32.const -1 + i32.xor + i64.extend_i32_s + local.get $4 + i32.const 255 + local.get $4 + i32.wrap_i64 + i32.sub + i32.const 31 + i32.shr_s + i64.extend_i32_s + i64.or + i64.and + i64.store8 + local.get $3 i32.const 1 i32.add - local.set $1 + local.set $3 br $for-loop|0 end end - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $std/typedarray/forEachCallCount - i32.const 3 - i32.ne + ) + (func $~lib/typedarray/Uint8ClampedArray#set<~lib/typedarray/Int16Array> (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + local.get $2 + i32.const 0 + i32.lt_s if - i32.const 0 - i32.const 1568 - i32.const 518 - i32.const 3 + i32.const 1360 + i32.const 1632 + i32.const 1864 + i32.const 19 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 12 + local.get $0 + i32.load offset=8 + local.get $2 + local.get $1 + i32.load offset=8 + i32.const 1 + i32.shr_u i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/typedarray/Int8Array#reverse (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 - call $~stack_check - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - local.tee $1 - i32.store + i32.lt_s + if + i32.const 1360 + i32.const 1632 + i32.const 1865 + i32.const 47 + call $~lib/builtins/abort + unreachable + end + local.get $2 local.get $0 i32.load offset=4 + i32.add + local.set $2 + local.get $1 + i32.load offset=4 local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 + local.get $1 i32.load offset=8 i32.const 1 - i32.sub - local.set $0 + i32.shr_u + local.set $1 loop $for-loop|0 - local.get $0 - local.get $2 - i32.gt_u + local.get $1 + local.get $3 + i32.gt_s if local.get $2 - local.get $4 - i32.add - local.tee $3 - i32.load8_s - local.set $5 local.get $3 - local.get $0 - local.get $4 i32.add - local.tee $3 - i32.load8_s - i32.store8 + local.get $4 local.get $3 - local.get $5 - i32.store8 - local.get $2 i32.const 1 + i32.shl i32.add - local.set $2 + i32.load16_s + local.tee $0 + i32.const 31 + i32.shr_s + i32.const -1 + i32.xor + local.get $0 + i32.const 255 local.get $0 - i32.const 1 i32.sub - local.set $0 + i32.const 31 + i32.shr_s + i32.or + i32.and + i32.store8 + local.get $3 + i32.const 1 + i32.add + 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 $1 ) - (func $std/typedarray/testArrayReverse<~lib/typedarray/Int8Array,i8> - (local $0 i32) + (func $~lib/typedarray/Int16Array#set<~lib/array/Array> (param $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 - 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 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=16 - global.get $~lib/memory/__stack_pointer - i32.const 6912 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 6912 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 6924 + i32.const 8860 i32.load - local.tee $2 - call $~lib/typedarray/Int8Array#constructor - local.tee $1 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $2 - call $~lib/typedarray/Int8Array#constructor - local.tee $3 - i32.store offset=12 + local.get $0 + i32.load offset=8 + i32.const 1 + i32.shr_u + i32.gt_s + if + i32.const 1360 + i32.const 1632 + i32.const 1865 + i32.const 47 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=4 + local.set $0 + i32.const 8852 + i32.load + local.set $2 + i32.const 8860 + i32.load + local.set $3 loop $for-loop|0 - local.get $0 - local.get $2 + local.get $1 + 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 - i32.const 6912 - i32.store offset=16 - local.get $1 - local.get $0 - i32.const 6912 local.get $0 - call $~lib/array/Array#__get - i32.const 24 + local.get $1 + i32.const 1 i32.shl - i32.const 24 - i32.shr_s - call $~lib/typedarray/Int8Array#__set - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 6912 - i32.store offset=16 - local.get $3 - local.get $0 - i32.const 6912 - local.get $0 - call $~lib/array/Array#__get - i32.const 24 + i32.add + local.get $2 + local.get $1 + i32.const 2 i32.shl - i32.const 24 - i32.shr_s - call $~lib/typedarray/Int8Array#__set - local.get $0 + i32.add + i32.load + i32.store16 + 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 + ) + (func $~lib/typedarray/Int16Array#__uget (param $0 i32) (param $1 i32) (result i32) + local.get $0 + i32.load offset=4 local.get $1 - i32.store offset=4 + i32.const 1 + i32.shl + i32.add + i32.load16_s + ) + (func $~lib/typedarray/Int16Array#set<~lib/typedarray/Int64Array> (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) local.get $1 - call $~lib/typedarray/Int8Array#reverse - drop - i32.const 0 + i32.load offset=8 + i32.const 3 + i32.shr_u + i32.const 6 + i32.add + local.get $0 + i32.load offset=8 + i32.const 1 + i32.shr_u + i32.gt_s + if + i32.const 1360 + i32.const 1632 + i32.const 1865 + i32.const 47 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=4 + i32.const 12 + i32.add local.set $0 - loop $for-loop|1 - local.get $0 + local.get $1 + i32.load offset=4 + local.set $3 + local.get $1 + i32.load offset=8 + i32.const 3 + i32.shr_u + local.set $1 + loop $for-loop|0 + local.get $1 local.get $2 - i32.lt_s + i32.gt_s if - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 local.get $0 - call $~lib/typedarray/Int8Array#__get - global.get $~lib/memory/__stack_pointer - i32.const 6912 - i32.store offset=4 - i32.const 6912 local.get $2 i32.const 1 - i32.sub - local.get $0 - i32.sub - call $~lib/array/Array#__get - i32.const 24 i32.shl - i32.const 24 - i32.shr_s - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 547 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $0 + i32.add + local.get $3 + local.get $2 + i32.const 3 + i32.shl + i32.add + i64.load + i64.store16 + 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 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=16 - local.get $3 - i32.const 4 - i32.const 8 - call $~lib/typedarray/Int8Array#subarray - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - 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/Int8Array#__get - i32.const 8 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 552 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 + ) + (func $~lib/typedarray/Int16Array#set<~lib/typedarray/Uint8Array> (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + local.get $1 + i32.load offset=8 local.get $0 + i32.load offset=8 i32.const 1 - call $~lib/typedarray/Int8Array#__get - i32.const 7 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 553 - 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 6 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 554 - 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/Int8Array#__get - i32.const 5 - i32.ne + i32.shr_u + i32.gt_s if - i32.const 0 - i32.const 1568 - i32.const 555 - i32.const 3 + i32.const 1360 + i32.const 1632 + i32.const 1865 + i32.const 47 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/Uint8Array#reverse (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 - call $~stack_check - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - local.tee $1 - i32.store local.get $0 i32.load offset=4 - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.load offset=8 - i32.const 1 - i32.sub local.set $0 + local.get $1 + i32.load offset=4 + local.set $3 + local.get $1 + i32.load offset=8 + local.set $1 loop $for-loop|0 - local.get $0 + local.get $1 local.get $2 - i32.gt_u + i32.gt_s if + local.get $0 local.get $2 - local.get $4 + i32.const 1 + i32.shl i32.add - local.tee $3 - i32.load8_u - local.set $5 + local.get $2 local.get $3 - local.get $0 - local.get $4 i32.add - local.tee $3 i32.load8_u - i32.store8 - local.get $3 - local.get $5 - i32.store8 + i32.store16 local.get $2 i32.const 1 i32.add local.set $2 - local.get $0 - i32.const 1 - i32.sub - local.set $0 br $for-loop|0 end end - global.get $~lib/memory/__stack_pointer + ) + (func $~lib/typedarray/Int16Array#set<~lib/typedarray/Int16Array> (param $0 i32) (param $1 i32) + local.get $1 + i32.load offset=8 + i32.const 1 + i32.shr_u + i32.const 4 + i32.add + local.get $0 + i32.load offset=8 + i32.const 1 + i32.shr_u + i32.gt_s + if + i32.const 1360 + i32.const 1632 + i32.const 1865 + i32.const 47 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=4 i32.const 8 i32.add - global.set $~lib/memory/__stack_pointer local.get $1 + i32.load offset=4 + local.get $1 + i32.load offset=8 + call $~lib/memory/memory.copy ) - (func $~lib/typedarray/Uint8Array#subarray (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Int16Array#set<~lib/array/Array> (param $0 i32) + (local $1 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 - 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 - 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 4 + i32.const 9116 + i32.load + i32.const 7 + i32.add local.get $0 i32.load offset=8 - local.tee $2 - local.get $2 - i32.const 4 + i32.const 1 + i32.shr_u i32.gt_s - select + if + i32.const 1360 + i32.const 1632 + i32.const 1865 + i32.const 47 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=4 + i32.const 14 + i32.add + local.set $0 + i32.const 9108 + i32.load + local.set $2 + i32.const 9116 + i32.load local.set $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 + loop $for-loop|0 local.get $1 - i32.const 0 - i32.gt_s - select - else - local.get $1 - local.get $2 - local.get $1 - local.get $2 + local.get $3 i32.lt_s - select + if + local.get $0 + local.get $1 + i32.const 1 + i32.shl + i32.add + local.get $1 + local.get $2 + i32.add + i32.load8_s + i32.store16 + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|0 + end end - local.set $2 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.const 4 - call $~lib/rt/itcms/__new - local.tee $1 - i32.store offset=8 + ) + (func $~lib/typedarray/Uint16Array#__uget (param $0 i32) (param $1 i32) (result i32) + local.get $0 + i32.load offset=4 local.get $1 + i32.const 1 + i32.shl + i32.add + i32.load16_u + ) + (func $~lib/typedarray/Int32Array#set<~lib/array/Array> (param $0 i32) + i32.const 8860 + i32.load + local.get $0 + i32.load offset=8 + i32.const 2 + i32.shr_u + i32.gt_s + if + i32.const 1360 + i32.const 1632 + i32.const 1865 + i32.const 47 + call $~lib/builtins/abort + unreachable + end local.get $0 + i32.load offset=4 + i32.const 8852 i32.load - local.tee $4 - i32.store - local.get $1 - local.get $4 - call $~lib/rt/itcms/__link - local.get $1 - local.get $3 + i32.const 8856 + i32.load + call $~lib/memory/memory.copy + ) + (func $~lib/typedarray/Int32Array#__uget (param $0 i32) (param $1 i32) (result i32) local.get $0 i32.load offset=4 - i32.add - i32.store offset=4 local.get $1 - local.get $2 - local.get $3 - local.get $2 - local.get $3 - i32.gt_s - select - local.get $3 - i32.sub - 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 $1 + i32.load ) - (func $std/typedarray/testArrayReverse<~lib/typedarray/Uint8Array,u8> - (local $0 i32) - (local $1 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 + local.get $1 + i32.load offset=8 + i32.const 3 + i32.shr_u + i32.const 6 + i32.add + local.get $0 + i32.load offset=8 + i32.const 2 + i32.shr_u + i32.gt_s + if + i32.const 1360 + i32.const 1632 + i32.const 1865 + i32.const 47 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=4 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 - i64.const 0 - i64.store offset=8 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=16 - global.get $~lib/memory/__stack_pointer - i32.const 6912 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 6912 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 6924 - i32.load - local.tee $2 - call $~lib/typedarray/Uint8Array#constructor - local.tee $1 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $2 - call $~lib/typedarray/Uint8Array#constructor - local.tee $3 - i32.store offset=12 + i32.add + local.set $0 + local.get $1 + i32.load offset=4 + local.set $3 + local.get $1 + i32.load offset=8 + i32.const 3 + i32.shr_u + local.set $1 loop $for-loop|0 - local.get $0 + local.get $1 local.get $2 - i32.lt_s + i32.gt_s if - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 6912 - i32.store offset=16 - local.get $1 local.get $0 - i32.const 6912 - 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 $3 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 6912 - i32.store offset=16 + local.get $2 + i32.const 2 + i32.shl + i32.add local.get $3 - local.get $0 - i32.const 6912 - local.get $0 - call $~lib/array/Array#__get - i32.const 255 - i32.and - call $~lib/typedarray/Uint8Array#__set - local.get $0 + local.get $2 + i32.const 3 + i32.shl + i32.add + i64.load + i64.store32 + local.get $2 i32.const 1 i32.add - local.set $0 + local.set $2 br $for-loop|0 end end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 + ) + (func $~lib/typedarray/Int32Array#set<~lib/typedarray/Uint8Array> (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) local.get $1 - call $~lib/typedarray/Uint8Array#reverse - drop - i32.const 0 + i32.load offset=8 + local.get $0 + i32.load offset=8 + i32.const 2 + i32.shr_u + i32.gt_s + if + i32.const 1360 + i32.const 1632 + i32.const 1865 + i32.const 47 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=4 local.set $0 - loop $for-loop|1 - local.get $0 + local.get $1 + i32.load offset=4 + local.set $3 + local.get $1 + i32.load offset=8 + local.set $1 + loop $for-loop|0 + local.get $1 local.get $2 - i32.lt_s + i32.gt_s if - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 local.get $0 - call $~lib/typedarray/Uint8Array#__get - global.get $~lib/memory/__stack_pointer - i32.const 6912 - i32.store offset=4 - i32.const 6912 local.get $2 - 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 547 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $0 + i32.const 2 + i32.shl + i32.add + local.get $2 + local.get $3 + i32.add + i32.load8_u + i32.store + 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 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=16 - local.get $3 - i32.const 8 - call $~lib/typedarray/Uint8Array#subarray - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - call $~lib/typedarray/Uint8Array#reverse - local.tee $0 - i32.store offset=20 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 + ) + (func $~lib/typedarray/Int32Array#set<~lib/typedarray/Int16Array> (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + local.get $1 + i32.load offset=8 + i32.const 1 + i32.shr_u + i32.const 4 + i32.add local.get $0 - i32.const 0 - call $~lib/typedarray/Uint8Array#__get - i32.const 8 - i32.ne + i32.load offset=8 + i32.const 2 + i32.shr_u + i32.gt_s if - i32.const 0 - i32.const 1568 - i32.const 552 - i32.const 3 + i32.const 1360 + i32.const 1632 + i32.const 1865 + i32.const 47 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 16 + i32.add + local.set $0 + local.get $1 + i32.load offset=4 + local.set $3 + local.get $1 + i32.load offset=8 i32.const 1 - call $~lib/typedarray/Uint8Array#__get + i32.shr_u + local.set $1 + loop $for-loop|0 + local.get $1 + local.get $2 + i32.gt_s + if + local.get $0 + local.get $2 + i32.const 2 + i32.shl + i32.add + local.get $3 + local.get $2 + i32.const 1 + i32.shl + i32.add + i32.load16_s + i32.store + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|0 + end + end + ) + (func $~lib/typedarray/Int32Array#set<~lib/array/Array> (param $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + i32.const 9116 + i32.load i32.const 7 - i32.ne + i32.add + local.get $0 + i32.load offset=8 + i32.const 2 + i32.shr_u + i32.gt_s if - i32.const 0 - i32.const 1568 - i32.const 553 - i32.const 3 + i32.const 1360 + i32.const 1632 + i32.const 1865 + i32.const 47 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=4 + i32.load offset=4 + i32.const 28 + i32.add + local.set $0 + i32.const 9108 + i32.load + local.set $2 + i32.const 9116 + i32.load + local.set $3 + loop $for-loop|0 + local.get $1 + local.get $3 + i32.lt_s + if + local.get $0 + local.get $1 + i32.const 2 + i32.shl + i32.add + local.get $1 + local.get $2 + i32.add + i32.load8_s + i32.store + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|0 + end + end + ) + (func $~lib/typedarray/Uint32Array#__uget (param $0 i32) (param $1 i32) (result i32) local.get $0 + i32.load offset=4 + local.get $1 i32.const 2 - call $~lib/typedarray/Uint8Array#__get - i32.const 6 - i32.ne + i32.shl + i32.add + i32.load + ) + (func $~lib/typedarray/Int64Array#set<~lib/array/Array> (param $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + i32.const 8860 + i32.load + local.get $0 + i32.load offset=8 + i32.const 3 + i32.shr_u + i32.gt_s if - i32.const 0 - i32.const 1568 - i32.const 554 - i32.const 3 + i32.const 1360 + i32.const 1632 + i32.const 1865 + i32.const 47 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=4 + i32.load offset=4 + local.set $0 + i32.const 8852 + i32.load + local.set $2 + i32.const 8860 + i32.load + local.set $3 + loop $for-loop|0 + local.get $1 + local.get $3 + i32.lt_s + if + local.get $0 + local.get $1 + i32.const 3 + i32.shl + i32.add + local.get $2 + local.get $1 + i32.const 2 + i32.shl + i32.add + i64.load32_s + i64.store + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|0 + end + end + ) + (func $~lib/typedarray/Int64Array#__uget (param $0 i32) (param $1 i32) (result i64) local.get $0 + i32.load offset=4 + local.get $1 i32.const 3 - call $~lib/typedarray/Uint8Array#__get - i32.const 5 - i32.ne + i32.shl + i32.add + i64.load + ) + (func $~lib/typedarray/Int64Array#set<~lib/typedarray/Int64Array> (param $0 i32) (param $1 i32) + local.get $1 + i32.load offset=8 + i32.const 3 + i32.shr_u + i32.const 6 + i32.add + local.get $0 + i32.load offset=8 + i32.const 3 + i32.shr_u + i32.gt_s if - i32.const 0 - i32.const 1568 - i32.const 555 - i32.const 3 + i32.const 1360 + i32.const 1632 + i32.const 1865 + i32.const 47 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 24 + local.get $0 + i32.load offset=4 + i32.const 48 i32.add - global.set $~lib/memory/__stack_pointer + local.get $1 + i32.load offset=4 + local.get $1 + i32.load offset=8 + call $~lib/memory/memory.copy ) - (func $~lib/typedarray/Uint8ClampedArray#subarray (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) - 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 - global.get $~lib/memory/__stack_pointer + local.get $1 + i32.load offset=8 local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer + i32.load offset=8 + i32.const 3 + i32.shr_u + i32.gt_s + if + i32.const 1360 + i32.const 1632 + i32.const 1865 + i32.const 47 + call $~lib/builtins/abort + unreachable + end local.get $0 - i32.store offset=4 + i32.load offset=4 + local.set $0 + local.get $1 + i32.load offset=4 + local.set $3 + local.get $1 + i32.load offset=8 + local.set $1 + loop $for-loop|0 + local.get $1 + local.get $2 + i32.gt_s + if + local.get $0 + local.get $2 + i32.const 3 + i32.shl + i32.add + local.get $2 + local.get $3 + i32.add + i64.load8_u + i64.store + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|0 + end + end + ) + (func $~lib/typedarray/Int64Array#set<~lib/typedarray/Int16Array> (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + local.get $1 + i32.load offset=8 + i32.const 1 + i32.shr_u i32.const 4 + i32.add local.get $0 i32.load offset=8 - local.tee $2 - local.get $2 - i32.const 4 + i32.const 3 + i32.shr_u i32.gt_s - select + if + i32.const 1360 + i32.const 1632 + i32.const 1865 + i32.const 47 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=4 + i32.const 32 + i32.add + local.set $0 + local.get $1 + i32.load offset=4 local.set $3 local.get $1 - i32.const 0 - i32.lt_s - if (result i32) + i32.load offset=8 + i32.const 1 + i32.shr_u + local.set $1 + loop $for-loop|0 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 + if + local.get $0 + local.get $2 + i32.const 3 + i32.shl + i32.add + local.get $3 + local.get $2 + i32.const 1 + i32.shl + i32.add + i64.load16_s + i64.store + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|0 + end + end + ) + (func $~lib/typedarray/Int64Array#set<~lib/array/Array> (param $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + i32.const 9116 + i32.load + i32.const 7 + i32.add + local.get $0 + i32.load offset=8 + i32.const 3 + i32.shr_u + i32.gt_s + if + i32.const 1360 + i32.const 1632 + i32.const 1865 + i32.const 47 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=4 + i32.const 56 + i32.add + local.set $0 + i32.const 9108 + i32.load + local.set $2 + i32.const 9116 + i32.load + local.set $3 + loop $for-loop|0 local.get $1 - local.get $2 + local.get $3 i32.lt_s - select + if + local.get $0 + local.get $1 + i32.const 3 + i32.shl + i32.add + local.get $1 + local.get $2 + i32.add + i64.load8_s + i64.store + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|0 + end end - local.set $2 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.const 5 - call $~lib/rt/itcms/__new - local.tee $1 - i32.store offset=8 - local.get $1 + ) + (func $~lib/typedarray/Uint64Array#__uget (param $0 i32) (param $1 i32) (result i64) local.get $0 - i32.load - local.tee $4 - i32.store - local.get $1 - local.get $4 - call $~lib/rt/itcms/__link + i32.load offset=4 local.get $1 - local.get $3 + i32.const 3 + i32.shl + i32.add + i64.load + ) + (func $~lib/typedarray/Float32Array#__uget (param $0 i32) (param $1 i32) (result f32) local.get $0 i32.load offset=4 - i32.add - i32.store offset=4 local.get $1 - local.get $2 - local.get $3 - local.get $2 - local.get $3 - i32.gt_s - select - local.get $3 - i32.sub - 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 + f32.load + ) + (func $~lib/typedarray/Float64Array#__uget (param $0 i32) (param $1 i32) (result f64) + local.get $0 + i32.load offset=4 local.get $1 + i32.const 3 + i32.shl + i32.add + f64.load ) - (func $std/typedarray/testArrayReverse<~lib/typedarray/Uint8ClampedArray,u8> + (func $~lib/rt/__visit_members (param $0 i32) + block $folding-inner3 + block $folding-inner2 + block $folding-inner1 + block $invalid + block $~lib/string/String + block $~lib/arraybuffer/ArrayBuffer + local.get $0 + i32.const 8 + i32.sub + i32.load + br_table $~lib/arraybuffer/ArrayBuffer $~lib/string/String $folding-inner3 $folding-inner3 $folding-inner3 $folding-inner3 $folding-inner3 $folding-inner3 $folding-inner3 $folding-inner3 $folding-inner3 $folding-inner3 $folding-inner3 $folding-inner3 $folding-inner1 $folding-inner2 $folding-inner2 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner2 $folding-inner2 $folding-inner2 $folding-inner2 $folding-inner2 $folding-inner2 $folding-inner2 $folding-inner2 $invalid + end + return + end + return + end + unreachable + 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 + return + end + local.get $0 + i32.load + local.tee $0 + if + local.get $0 + call $~lib/rt/itcms/__visit + end + ) + (func $~start + call $start:std/typedarray + ) + (func $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 13724 + i32.lt_s + if + i32.const 30128 + i32.const 30176 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + ) + (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 24 + i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check @@ -18813,208 +16190,157 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=8 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=16 + i32.const 0 + i32.store offset=8 global.get $~lib/memory/__stack_pointer - i32.const 6912 + i32.const 3 + call $~lib/typedarray/Int8Array#constructor + local.tee $1 i32.store + local.get $1 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Int8Array#__set + local.get $1 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Int8Array#__set + local.get $1 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Int8Array#__set global.get $~lib/memory/__stack_pointer - i32.const 6912 + i32.const 3600 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 6924 - i32.load - local.tee $2 - call $~lib/typedarray/Uint8ClampedArray#constructor - local.tee $1 - i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $2 - call $~lib/typedarray/Uint8ClampedArray#constructor - local.tee $3 - i32.store offset=12 - loop $for-loop|0 - local.get $0 - local.get $2 - i32.lt_s - if - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 6912 - i32.store offset=16 - local.get $1 - local.get $0 - i32.const 6912 - 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 $3 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 6912 - i32.store offset=16 - local.get $3 - local.get $0 - i32.const 6912 - 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 + 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 $1 - i32.store offset=4 + i32.load offset=8 + local.set $4 local.get $1 - call $~lib/typedarray/Uint8Array#reverse - drop + i32.load offset=4 + local.set $6 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 3 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $4 i32.const 0 - local.set $0 - loop $for-loop|1 - local.get $0 + call $~lib/rt/itcms/__new + local.tee $3 + i32.store offset=4 + loop $for-loop|0 local.get $2 + local.get $4 i32.lt_s if - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 + local.get $2 + local.get $6 + i32.add + i32.load8_s + local.set $7 + i32.const 3 + global.set $~argumentsLength + local.get $2 + local.get $3 + i32.add + local.get $7 + local.get $2 local.get $1 - local.get $0 - call $~lib/typedarray/Uint8ClampedArray#__get - global.get $~lib/memory/__stack_pointer - i32.const 6912 - i32.store offset=4 - i32.const 6912 + i32.const 3600 + i32.load + call_indirect (type $i32_i32_i32_=>_i32) + i32.store8 local.get $2 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 547 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $0 - 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 - global.get $~lib/memory/__stack_pointer + local.get $0 local.get $3 - i32.store offset=16 + i32.store + local.get $0 local.get $3 - i32.const 8 - call $~lib/typedarray/Uint8ClampedArray#subarray - local.set $0 - global.get $~lib/memory/__stack_pointer + call $~lib/rt/itcms/__link local.get $0 + local.get $3 i32.store offset=4 local.get $0 - call $~lib/typedarray/Uint8Array#reverse - local.tee $0 - i32.store offset=20 + local.get $4 + 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 + i32.store offset=8 local.get $0 i32.const 0 - call $~lib/typedarray/Uint8ClampedArray#__get - i32.const 8 + call $~lib/typedarray/Int8Array#__get + i32.const 1 i32.ne if i32.const 0 i32.const 1568 - i32.const 552 + i32.const 388 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 + call $~lib/typedarray/Int8Array#__get + i32.const 4 i32.ne if i32.const 0 i32.const 1568 - i32.const 553 + i32.const 389 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 554 - 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 + call $~lib/typedarray/Int8Array#__get + i32.const 9 i32.ne if i32.const 0 i32.const 1568 - i32.const 555 + i32.const 390 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 $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 8 + i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check @@ -19022,68 +16348,155 @@ 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 + i32.const 3 + call $~lib/typedarray/Uint8Array#constructor local.tee $1 i32.store - local.get $0 - i32.load offset=4 - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.load offset=8 + local.get $1 + i32.const 0 i32.const 1 - i32.shr_u + call $~lib/typedarray/Uint8Array#__set + local.get $1 i32.const 1 + i32.const 2 + call $~lib/typedarray/Uint8Array#__set + local.get $1 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Uint8Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 3632 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 8 i32.sub - local.set $0 + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + local.get $1 + i32.load offset=8 + local.set $4 + local.get $1 + 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 $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.const 0 + call $~lib/rt/itcms/__new + local.tee $3 + i32.store offset=4 loop $for-loop|0 - local.get $0 local.get $2 - i32.gt_u + local.get $4 + i32.lt_s if - local.get $4 local.get $2 - i32.const 1 - i32.shl + local.get $6 i32.add - local.tee $3 - i32.load16_s - local.set $5 + i32.load8_u + local.set $7 + i32.const 3 + global.set $~argumentsLength + local.get $2 local.get $3 - local.get $4 - local.get $0 - i32.const 1 - i32.shl i32.add - local.tee $3 - i32.load16_s - i32.store16 - local.get $3 - local.get $5 - i32.store16 + local.get $7 + local.get $2 + local.get $1 + i32.const 3632 + i32.load + call_indirect (type $i32_i32_i32_=>_i32) + i32.store8 local.get $2 i32.const 1 i32.add local.set $2 - local.get $0 - i32.const 1 - i32.sub - local.set $0 br $for-loop|0 end end + local.get $0 + local.get $3 + i32.store + local.get $0 + local.get $3 + call $~lib/rt/itcms/__link + local.get $0 + local.get $3 + i32.store offset=4 + local.get $0 + local.get $4 + i32.store offset=8 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 + local.get $0 + i32.store offset=8 + local.get $0 + 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 + local.get $0 + 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 + local.get $0 + 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 12 + i32.add + global.set $~lib/memory/__stack_pointer ) - (func $~lib/typedarray/Int16Array#subarray (param $0 i32) (param $1 i32) (result i32) + (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 12 i32.sub @@ -19096,307 +16509,156 @@ 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 - i32.const 4 - local.get $0 - i32.load offset=8 - i32.const 1 - i32.shr_u - local.tee $2 - local.get $2 - i32.const 4 - i32.gt_s - select - local.set $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.set $2 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.const 6 - call $~lib/rt/itcms/__new + i32.const 3 + call $~lib/typedarray/Uint8ClampedArray#constructor local.tee $1 - i32.store offset=8 - local.get $1 - local.get $0 - i32.load - local.tee $4 i32.store local.get $1 - local.get $4 - call $~lib/rt/itcms/__link - local.get $1 - local.get $0 - i32.load offset=4 - local.get $3 + i32.const 0 i32.const 1 - i32.shl - i32.add - i32.store offset=4 + call $~lib/typedarray/Uint8ClampedArray#__set local.get $1 - local.get $2 - local.get $3 - local.get $2 - local.get $3 - i32.gt_s - select - local.get $3 - 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 + i32.const 2 + call $~lib/typedarray/Uint8ClampedArray#__set local.get $1 - ) - (func $std/typedarray/testArrayReverse<~lib/typedarray/Int16Array,i16> - (local $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) + i32.const 2 + i32.const 3 + call $~lib/typedarray/Uint8ClampedArray#__set global.get $~lib/memory/__stack_pointer - i32.const 24 + i32.const 3664 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + 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 $1 + i32.load offset=8 + local.set $4 + local.get $1 + i32.load offset=4 + local.set $6 global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=8 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=16 - global.get $~lib/memory/__stack_pointer - i32.const 6912 + i32.const 12 + i32.const 5 + call $~lib/rt/itcms/__new + local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - i32.const 6912 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 6924 - i32.load - local.tee $2 - call $~lib/typedarray/Int16Array#constructor - local.tee $1 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $2 - call $~lib/typedarray/Int16Array#constructor + local.get $4 + i32.const 0 + call $~lib/rt/itcms/__new local.tee $3 - i32.store offset=12 + i32.store offset=4 loop $for-loop|0 - local.get $0 local.get $2 + local.get $4 i32.lt_s if - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 6912 - i32.store offset=16 - local.get $1 - local.get $0 - i32.const 6912 - local.get $0 - call $~lib/array/Array#__get - i32.const 16 - i32.shl - i32.const 16 - i32.shr_s - call $~lib/typedarray/Int16Array#__set - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 6912 - i32.store offset=16 + local.get $2 + local.get $6 + i32.add + i32.load8_u + local.set $7 + i32.const 3 + global.set $~argumentsLength + local.get $2 local.get $3 - local.get $0 - i32.const 6912 - local.get $0 - call $~lib/array/Array#__get - i32.const 16 - i32.shl - i32.const 16 - i32.shr_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 $1 - i32.store offset=4 - local.get $1 - call $~lib/typedarray/Int16Array#reverse - drop - i32.const 0 - local.set $0 - loop $for-loop|1 - local.get $0 - local.get $2 - i32.lt_s - if - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 + local.get $7 + local.get $2 local.get $1 - local.get $0 - call $~lib/typedarray/Int16Array#__get - global.get $~lib/memory/__stack_pointer - i32.const 6912 - i32.store offset=4 - i32.const 6912 + i32.const 3664 + i32.load + call_indirect (type $i32_i32_i32_=>_i32) + i32.store8 local.get $2 i32.const 1 - i32.sub - local.get $0 - i32.sub - call $~lib/array/Array#__get - i32.const 16 - i32.shl - i32.const 16 - i32.shr_s - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 547 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $0 - 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 - global.get $~lib/memory/__stack_pointer + local.get $0 local.get $3 - i32.store offset=16 + i32.store + local.get $0 local.get $3 - i32.const 8 - call $~lib/typedarray/Int16Array#subarray - local.set $0 - global.get $~lib/memory/__stack_pointer + call $~lib/rt/itcms/__link local.get $0 + local.get $3 i32.store offset=4 local.get $0 - call $~lib/typedarray/Int16Array#reverse - local.tee $0 - i32.store offset=20 + local.get $4 + 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 + i32.store offset=8 local.get $0 i32.const 0 - call $~lib/typedarray/Int16Array#__get - i32.const 8 + call $~lib/typedarray/Uint8ClampedArray#__get + i32.const 1 i32.ne if i32.const 0 i32.const 1568 - i32.const 552 + i32.const 388 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 + call $~lib/typedarray/Uint8ClampedArray#__get + i32.const 4 i32.ne if i32.const 0 i32.const 1568 - i32.const 553 + i32.const 389 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 554 - 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 + call $~lib/typedarray/Uint8ClampedArray#__get + i32.const 9 i32.ne if i32.const 0 i32.const 1568 - i32.const 555 + i32.const 390 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/Uint16Array#reverse (param $0 i32) (result 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 8 + i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check @@ -19404,68 +16666,165 @@ 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 + i32.const 3 + call $~lib/typedarray/Int16Array#constructor local.tee $1 i32.store - local.get $0 - i32.load offset=4 - local.set $4 + local.get $1 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Int16Array#__set + local.get $1 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Int16Array#__set + local.get $1 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Int16Array#__set global.get $~lib/memory/__stack_pointer - local.get $0 + i32.const 3696 i32.store offset=4 - local.get $0 + global.get $~lib/memory/__stack_pointer + 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 $1 i32.load offset=8 i32.const 1 i32.shr_u + local.set $4 + local.get $1 + 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 $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $4 i32.const 1 - i32.sub - local.set $0 + i32.shl + local.tee $7 + i32.const 0 + call $~lib/rt/itcms/__new + local.tee $2 + i32.store offset=4 loop $for-loop|0 - local.get $0 - local.get $2 - i32.gt_u + local.get $3 + local.get $4 + i32.lt_s if - local.get $4 - local.get $2 - i32.const 1 - i32.shl - i32.add - local.tee $3 - i32.load16_u - local.set $5 + local.get $6 local.get $3 - local.get $4 - local.get $0 i32.const 1 i32.shl + local.tee $8 i32.add - local.tee $3 - i32.load16_u - i32.store16 + i32.load16_s + local.set $9 + i32.const 3 + global.set $~argumentsLength + local.get $2 + local.get $8 + i32.add + local.get $9 local.get $3 - local.get $5 + local.get $1 + i32.const 3696 + i32.load + call_indirect (type $i32_i32_i32_=>_i32) i32.store16 - local.get $2 + local.get $3 i32.const 1 i32.add - local.set $2 - local.get $0 - i32.const 1 - i32.sub - local.set $0 + local.set $3 br $for-loop|0 end end + local.get $0 + local.get $2 + i32.store + local.get $0 + local.get $2 + call $~lib/rt/itcms/__link + local.get $0 + local.get $2 + i32.store offset=4 + local.get $0 + local.get $7 + i32.store offset=8 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 + local.get $0 + i32.store offset=8 + 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 388 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + 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 + local.get $0 + 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 12 + i32.add + global.set $~lib/memory/__stack_pointer ) - (func $~lib/typedarray/Uint16Array#subarray (param $0 i32) (param $1 i32) (result i32) + (func $std/typedarray/testArrayMap<~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) + (local $9 i32) global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -19478,301 +16837,164 @@ 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 - i32.const 4 - local.get $0 - i32.load offset=8 - i32.const 1 - i32.shr_u - local.tee $2 - local.get $2 - i32.const 4 - i32.gt_s - select - local.set $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.set $2 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.const 7 - call $~lib/rt/itcms/__new + i32.const 3 + call $~lib/typedarray/Uint16Array#constructor local.tee $1 - i32.store offset=8 - local.get $1 - local.get $0 - i32.load - local.tee $4 i32.store local.get $1 - local.get $4 - call $~lib/rt/itcms/__link - local.get $1 - local.get $0 - i32.load offset=4 - local.get $3 + i32.const 0 i32.const 1 - i32.shl - i32.add - i32.store offset=4 + call $~lib/typedarray/Uint16Array#__set local.get $1 - local.get $2 - local.get $3 - local.get $2 - local.get $3 - i32.gt_s - select - local.get $3 - 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 + i32.const 2 + call $~lib/typedarray/Uint16Array#__set local.get $1 - ) - (func $std/typedarray/testArrayReverse<~lib/typedarray/Uint16Array,u16> - (local $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) + i32.const 2 + i32.const 3 + call $~lib/typedarray/Uint16Array#__set global.get $~lib/memory/__stack_pointer - i32.const 24 + i32.const 3728 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + 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 $1 + i32.load offset=8 + i32.const 1 + i32.shr_u + local.set $4 + local.get $1 + i32.load offset=4 + local.set $6 global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=8 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=16 - global.get $~lib/memory/__stack_pointer - i32.const 6912 + i32.const 12 + i32.const 7 + call $~lib/rt/itcms/__new + local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - i32.const 6912 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 6924 - i32.load + local.get $4 + i32.const 1 + i32.shl + local.tee $7 + i32.const 0 + call $~lib/rt/itcms/__new local.tee $2 - call $~lib/typedarray/Uint16Array#constructor - local.tee $1 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $2 - call $~lib/typedarray/Uint16Array#constructor - local.tee $3 - i32.store offset=12 + i32.store offset=4 loop $for-loop|0 - local.get $0 - local.get $2 + local.get $3 + local.get $4 i32.lt_s if - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 6912 - i32.store offset=16 - local.get $1 - local.get $0 - i32.const 6912 - 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 $3 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 6912 - i32.store offset=16 + local.get $6 local.get $3 - local.get $0 - i32.const 6912 - local.get $0 - call $~lib/array/Array#__get - i32.const 65535 - i32.and - call $~lib/typedarray/Uint16Array#__set - local.get $0 i32.const 1 + i32.shl + local.tee $8 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/typedarray/Uint16Array#reverse - drop - i32.const 0 - local.set $0 - loop $for-loop|1 - local.get $0 - local.get $2 - 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/typedarray/Uint16Array#__get - global.get $~lib/memory/__stack_pointer - i32.const 6912 - i32.store offset=4 - i32.const 6912 + i32.load16_u + local.set $9 + i32.const 3 + global.set $~argumentsLength local.get $2 - i32.const 1 - i32.sub - local.get $0 - i32.sub - call $~lib/array/Array#__get - i32.const 65535 - i32.and - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 547 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $0 + local.get $8 + i32.add + local.get $9 + local.get $3 + local.get $1 + i32.const 3728 + i32.load + call_indirect (type $i32_i32_i32_=>_i32) + i32.store16 + local.get $3 i32.const 1 i32.add - local.set $0 - br $for-loop|1 + local.set $3 + br $for-loop|0 end end - global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=16 - local.get $3 - i32.const 8 - call $~lib/typedarray/Uint16Array#subarray - local.set $0 - global.get $~lib/memory/__stack_pointer local.get $0 + local.get $2 + i32.store + local.get $0 + local.get $2 + call $~lib/rt/itcms/__link + local.get $0 + local.get $2 i32.store offset=4 local.get $0 - call $~lib/typedarray/Uint16Array#reverse - local.tee $0 - i32.store offset=20 + local.get $7 + 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 + i32.store offset=8 local.get $0 i32.const 0 call $~lib/typedarray/Uint16Array#__get - i32.const 8 + i32.const 1 i32.ne if i32.const 0 i32.const 1568 - i32.const 552 + i32.const 388 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.const 4 i32.ne if i32.const 0 i32.const 1568 - i32.const 553 + i32.const 389 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 554 - 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/Uint16Array#__get - i32.const 5 + i32.const 9 i32.ne if i32.const 0 i32.const 1568 - i32.const 555 + i32.const 390 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/Int32Array#reverse (param $0 i32) (result i32) + (func $std/typedarray/testArrayMap<~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) + (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 @@ -19780,278 +17002,167 @@ 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 + i32.const 3 + call $~lib/typedarray/Int32Array#constructor local.tee $1 i32.store - local.get $0 - i32.load offset=4 - local.set $4 + local.get $1 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Int32Array#__set + local.get $1 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Int32Array#__set + local.get $1 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Int32Array#__set global.get $~lib/memory/__stack_pointer - local.get $0 + i32.const 3760 i32.store offset=4 - local.get $0 + global.get $~lib/memory/__stack_pointer + 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 $1 i32.load offset=8 i32.const 2 i32.shr_u - i32.const 1 - i32.sub - local.set $0 + local.set $4 + local.get $1 + 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 $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.const 2 + i32.shl + local.tee $7 + i32.const 0 + call $~lib/rt/itcms/__new + local.tee $2 + i32.store offset=4 loop $for-loop|0 - local.get $0 - local.get $2 - i32.gt_u + local.get $3 + local.get $4 + i32.lt_s if - local.get $4 - local.get $2 + local.get $6 + local.get $3 i32.const 2 i32.shl + local.tee $8 i32.add - local.tee $3 i32.load - local.set $5 - local.get $3 - local.get $4 - local.get $0 - i32.const 2 - i32.shl + local.set $9 + i32.const 3 + global.set $~argumentsLength + local.get $2 + local.get $8 i32.add - local.tee $3 + local.get $9 + local.get $3 + local.get $1 + i32.const 3760 i32.load + call_indirect (type $i32_i32_i32_=>_i32) i32.store local.get $3 - local.get $5 - i32.store - local.get $2 i32.const 1 i32.add - local.set $2 - local.get $0 - i32.const 1 - i32.sub - local.set $0 + local.set $3 br $for-loop|0 end end + local.get $0 + local.get $2 + i32.store + local.get $0 + local.get $2 + call $~lib/rt/itcms/__link + local.get $0 + local.get $2 + i32.store offset=4 + local.get $0 + local.get $7 + 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 $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 - 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 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=16 - global.get $~lib/memory/__stack_pointer - i32.const 6912 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 6912 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 6924 - i32.load - local.tee $2 - call $~lib/typedarray/Int32Array#constructor - local.tee $1 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $2 - call $~lib/typedarray/Int32Array#constructor - local.tee $3 - i32.store offset=12 - loop $for-loop|0 - local.get $0 - local.get $2 - i32.lt_s - if - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 6912 - i32.store offset=16 - local.get $1 - local.get $0 - i32.const 6912 - local.get $0 - call $~lib/array/Array#__get - call $~lib/typedarray/Int32Array#__set - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 6912 - i32.store offset=16 - local.get $3 - local.get $0 - i32.const 6912 - local.get $0 - call $~lib/array/Array#__get - call $~lib/typedarray/Int32Array#__set - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|0 - end - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $~lib/typedarray/Int32Array#reverse - drop - i32.const 0 - local.set $0 - loop $for-loop|1 - local.get $0 - local.get $2 - 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/typedarray/Int32Array#__get - local.set $4 - global.get $~lib/memory/__stack_pointer - i32.const 6912 - i32.store offset=4 - i32.const 6912 - local.get $2 - i32.const 1 - i32.sub - local.get $0 - i32.sub - call $~lib/array/Array#__get - local.get $4 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 547 - 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 $3 - i32.store offset=16 - local.get $3 - i32.const 4 - i32.const 8 - call $~lib/typedarray/Int32Array#subarray - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - 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 + i32.store offset=8 local.get $0 i32.const 0 call $~lib/typedarray/Int32Array#__get - i32.const 8 + i32.const 1 i32.ne if i32.const 0 i32.const 1568 - i32.const 552 + i32.const 388 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.const 4 i32.ne if i32.const 0 i32.const 1568 - i32.const 553 + i32.const 389 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 554 - 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.const 9 i32.ne if i32.const 0 i32.const 1568 - i32.const 555 + i32.const 390 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/Uint32Array#reverse (param $0 i32) (result 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 8 + i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check @@ -20059,371 +17170,167 @@ 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 + i32.const 3 + call $~lib/typedarray/Uint32Array#constructor local.tee $1 i32.store - local.get $0 - i32.load offset=4 - local.set $4 + local.get $1 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Uint32Array#__set + local.get $1 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Uint32Array#__set + local.get $1 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Uint32Array#__set global.get $~lib/memory/__stack_pointer - local.get $0 + i32.const 3792 i32.store offset=4 - local.get $0 - i32.load offset=8 - i32.const 2 - i32.shr_u - i32.const 1 - i32.sub - local.set $0 - loop $for-loop|0 - local.get $0 - local.get $2 - i32.gt_u - if - local.get $4 - local.get $2 - i32.const 2 - i32.shl - i32.add - local.tee $3 - i32.load - local.set $5 - local.get $3 - local.get $4 - local.get $0 - i32.const 2 - i32.shl - i32.add - local.tee $3 - i32.load - i32.store - local.get $3 - local.get $5 - i32.store - local.get $2 - i32.const 1 - i32.add - local.set $2 - local.get $0 - i32.const 1 - i32.sub - 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 $1 - ) - (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.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 - 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 4 - local.get $0 + local.get $1 i32.load offset=8 i32.const 2 i32.shr_u - local.tee $2 - local.get $2 - i32.const 4 - i32.gt_s - select - local.set $3 + local.set $4 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.set $2 + 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=8 - local.get $1 - local.get $0 - i32.load - local.tee $4 + local.tee $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $4 - call $~lib/rt/itcms/__link - local.get $1 - local.get $0 - i32.load offset=4 - local.get $3 - i32.const 2 - i32.shl - i32.add - i32.store offset=4 - local.get $1 - local.get $2 - local.get $3 - local.get $2 - local.get $3 - i32.gt_s - select - local.get $3 - 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 $1 - ) - (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 - 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 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=16 - global.get $~lib/memory/__stack_pointer - i32.const 6912 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 6912 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 6924 - i32.load + local.tee $7 + i32.const 0 + call $~lib/rt/itcms/__new local.tee $2 - call $~lib/typedarray/Uint32Array#constructor - local.tee $1 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $2 - call $~lib/typedarray/Uint32Array#constructor - local.tee $3 - i32.store offset=12 + i32.store offset=4 loop $for-loop|0 - local.get $0 - local.get $2 + local.get $3 + local.get $4 i32.lt_s if - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 6912 - i32.store offset=16 - local.get $1 - local.get $0 - i32.const 6912 - local.get $0 - call $~lib/array/Array#__get - call $~lib/typedarray/Uint32Array#__set - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 6912 - i32.store offset=16 + local.get $6 local.get $3 - local.get $0 - i32.const 6912 - local.get $0 - call $~lib/array/Array#__get - call $~lib/typedarray/Uint32Array#__set - local.get $0 - i32.const 1 + i32.const 2 + i32.shl + local.tee $8 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/typedarray/Uint32Array#reverse - drop - i32.const 0 - local.set $0 - loop $for-loop|1 - local.get $0 - local.get $2 - 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/typedarray/Uint32Array#__get - local.set $4 - global.get $~lib/memory/__stack_pointer - i32.const 6912 - i32.store offset=4 - i32.const 6912 + i32.load + local.set $9 + i32.const 3 + global.set $~argumentsLength local.get $2 - i32.const 1 - i32.sub - local.get $0 - i32.sub - call $~lib/array/Array#__get - local.get $4 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 547 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $0 + local.get $8 + i32.add + local.get $9 + local.get $3 + local.get $1 + i32.const 3792 + i32.load + call_indirect (type $i32_i32_i32_=>_i32) + i32.store + local.get $3 i32.const 1 i32.add - local.set $0 - br $for-loop|1 + local.set $3 + br $for-loop|0 end end - global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=16 - local.get $3 - i32.const 8 - call $~lib/typedarray/Uint32Array#subarray - local.set $0 - global.get $~lib/memory/__stack_pointer local.get $0 + local.get $2 + i32.store + local.get $0 + local.get $2 + call $~lib/rt/itcms/__link + local.get $0 + local.get $2 i32.store offset=4 local.get $0 - call $~lib/typedarray/Uint32Array#reverse - local.tee $0 - i32.store offset=20 + local.get $7 + 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 + i32.store offset=8 local.get $0 i32.const 0 call $~lib/typedarray/Uint32Array#__get - i32.const 8 + i32.const 1 i32.ne if i32.const 0 i32.const 1568 - i32.const 552 + i32.const 388 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.const 4 i32.ne if i32.const 0 i32.const 1568 - i32.const 553 + i32.const 389 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.const 9 i32.ne if i32.const 0 i32.const 1568 - i32.const 554 + i32.const 390 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 555 - 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/Int64Array#reverse (param $0 i32) (result 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 i64) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i64) global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check @@ -20431,68 +17338,165 @@ 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 + i32.const 3 + call $~lib/typedarray/Int64Array#constructor local.tee $1 i32.store - local.get $0 - i32.load offset=4 - local.set $4 + local.get $1 + i32.const 0 + i64.const 1 + call $~lib/typedarray/Int64Array#__set + local.get $1 + i32.const 1 + i64.const 2 + call $~lib/typedarray/Int64Array#__set + local.get $1 + i32.const 2 + i64.const 3 + call $~lib/typedarray/Int64Array#__set global.get $~lib/memory/__stack_pointer - local.get $0 + i32.const 3824 i32.store offset=4 - local.get $0 + global.get $~lib/memory/__stack_pointer + 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 $1 i32.load offset=8 i32.const 3 i32.shr_u - i32.const 1 - i32.sub - local.set $0 + local.set $4 + local.get $1 + 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 $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.const 3 + i32.shl + local.tee $7 + i32.const 0 + call $~lib/rt/itcms/__new + local.tee $2 + i32.store offset=4 loop $for-loop|0 - local.get $0 - local.get $2 - i32.gt_u + local.get $3 + local.get $4 + i32.lt_s if - local.get $4 - local.get $2 + local.get $6 + local.get $3 i32.const 3 i32.shl + local.tee $8 i32.add - local.tee $3 i64.load - local.set $5 - local.get $3 - local.get $4 - local.get $0 + local.set $9 i32.const 3 - i32.shl + global.set $~argumentsLength + local.get $2 + local.get $8 i32.add - local.tee $3 - i64.load - i64.store + local.get $9 local.get $3 - local.get $5 + local.get $1 + i32.const 3824 + i32.load + call_indirect (type $i64_i32_i32_=>_i64) i64.store - local.get $2 + local.get $3 i32.const 1 i32.add - local.set $2 - local.get $0 - i32.const 1 - i32.sub - local.set $0 + local.set $3 br $for-loop|0 end end + local.get $0 + local.get $2 + i32.store + local.get $0 + local.get $2 + call $~lib/rt/itcms/__link + local.get $0 + local.get $2 + i32.store offset=4 + local.get $0 + local.get $7 + i32.store offset=8 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 + local.get $0 + i32.store offset=8 + 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 388 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + 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 + local.get $0 + 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 12 + i32.add + global.set $~lib/memory/__stack_pointer ) - (func $~lib/typedarray/Int64Array#subarray (param $0 i32) (param $1 i32) (result 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.sub @@ -20505,298 +17509,164 @@ 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 - i32.const 4 - local.get $0 - i32.load offset=8 i32.const 3 - i32.shr_u - local.tee $2 - local.get $2 - i32.const 4 - i32.gt_s - select - local.set $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.set $2 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.const 10 - call $~lib/rt/itcms/__new + call $~lib/typedarray/Uint64Array#constructor local.tee $1 - i32.store offset=8 - local.get $1 - local.get $0 - i32.load - local.tee $4 i32.store local.get $1 - local.get $4 - call $~lib/rt/itcms/__link + i32.const 0 + i64.const 1 + call $~lib/typedarray/Uint64Array#__set local.get $1 - local.get $0 - i32.load offset=4 - local.get $3 - i32.const 3 - i32.shl - i32.add - i32.store offset=4 + i32.const 1 + i64.const 2 + call $~lib/typedarray/Uint64Array#__set local.get $1 - local.get $2 - local.get $3 - local.get $2 - local.get $3 - i32.gt_s - select - local.get $3 - i32.sub - i32.const 3 - i32.shl - i32.store offset=8 + i32.const 2 + i64.const 3 + call $~lib/typedarray/Uint64Array#__set global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $1 - ) - (func $std/typedarray/testArrayReverse<~lib/typedarray/Int64Array,i64> - (local $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i64) + i32.const 3856 + i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 24 + 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 $1 + i32.load offset=8 + i32.const 3 + i32.shr_u + local.set $4 + local.get $1 + i32.load offset=4 + local.set $6 global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=8 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=16 - global.get $~lib/memory/__stack_pointer - i32.const 6912 + i32.const 12 + i32.const 11 + call $~lib/rt/itcms/__new + local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - i32.const 6912 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 6924 - i32.load + local.get $4 + i32.const 3 + i32.shl + local.tee $7 + i32.const 0 + call $~lib/rt/itcms/__new local.tee $2 - call $~lib/typedarray/Int64Array#constructor - local.tee $1 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $2 - call $~lib/typedarray/Int64Array#constructor - local.tee $3 - i32.store offset=12 + i32.store offset=4 loop $for-loop|0 - local.get $0 - local.get $2 + local.get $3 + local.get $4 i32.lt_s if - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 6912 - i32.store offset=16 - local.get $1 - local.get $0 - i32.const 6912 - 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 $3 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 6912 - i32.store offset=16 + local.get $6 local.get $3 - local.get $0 - i32.const 6912 - local.get $0 - call $~lib/array/Array#__get - i64.extend_i32_s - call $~lib/typedarray/Int64Array#__set - local.get $0 - i32.const 1 + i32.const 3 + i32.shl + local.tee $8 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/typedarray/Int64Array#reverse - drop - i32.const 0 - local.set $0 - loop $for-loop|1 - local.get $0 - local.get $2 - 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/typedarray/Int64Array#__get - global.get $~lib/memory/__stack_pointer - i32.const 6912 - i32.store offset=4 - i32.const 6912 + i64.load + local.set $9 + i32.const 3 + global.set $~argumentsLength local.get $2 - i32.const 1 - i32.sub - local.get $0 - i32.sub - call $~lib/array/Array#__get - i64.extend_i32_s - i64.ne - if - i32.const 0 - i32.const 1568 - i32.const 547 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $0 + local.get $8 + i32.add + local.get $9 + local.get $3 + local.get $1 + i32.const 3856 + i32.load + call_indirect (type $i64_i32_i32_=>_i64) + i64.store + local.get $3 i32.const 1 i32.add - local.set $0 - br $for-loop|1 + local.set $3 + br $for-loop|0 end end - global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=16 - local.get $3 - i32.const 8 - call $~lib/typedarray/Int64Array#subarray - local.set $0 - global.get $~lib/memory/__stack_pointer local.get $0 + local.get $2 + i32.store + local.get $0 + local.get $2 + call $~lib/rt/itcms/__link + local.get $0 + local.get $2 i32.store offset=4 local.get $0 - call $~lib/typedarray/Int64Array#reverse - local.tee $0 - i32.store offset=20 + local.get $7 + 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 + i32.store offset=8 local.get $0 i32.const 0 - call $~lib/typedarray/Int64Array#__get - i64.const 8 + call $~lib/typedarray/Uint64Array#__get + i64.const 1 i64.ne if i32.const 0 i32.const 1568 - i32.const 552 + i32.const 388 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 + call $~lib/typedarray/Uint64Array#__get + i64.const 4 i64.ne if i32.const 0 i32.const 1568 - i32.const 553 + i32.const 389 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 554 - 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 + call $~lib/typedarray/Uint64Array#__get + i64.const 9 i64.ne if i32.const 0 i32.const 1568 - i32.const 555 + i32.const 390 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/Uint64Array#reverse (param $0 i32) (result 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 i64) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 f32) global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check @@ -20804,68 +17674,165 @@ 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 + i32.const 3 + call $~lib/typedarray/Float32Array#constructor local.tee $1 i32.store - local.get $0 - i32.load offset=4 - local.set $4 + local.get $1 + i32.const 0 + f32.const 1 + call $~lib/typedarray/Float32Array#__set + local.get $1 + i32.const 1 + f32.const 2 + call $~lib/typedarray/Float32Array#__set + local.get $1 + i32.const 2 + f32.const 3 + call $~lib/typedarray/Float32Array#__set global.get $~lib/memory/__stack_pointer - local.get $0 + i32.const 3888 i32.store offset=4 - local.get $0 - i32.load offset=8 - i32.const 3 - i32.shr_u - i32.const 1 + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 8 i32.sub - local.set $0 + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + local.get $1 + i32.load offset=8 + i32.const 2 + i32.shr_u + local.set $4 + local.get $1 + 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 $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.const 2 + i32.shl + local.tee $7 + i32.const 0 + call $~lib/rt/itcms/__new + local.tee $2 + i32.store offset=4 loop $for-loop|0 - local.get $0 - local.get $2 - i32.gt_u + local.get $3 + local.get $4 + i32.lt_s if - local.get $4 - local.get $2 - i32.const 3 + local.get $6 + local.get $3 + i32.const 2 i32.shl + local.tee $8 i32.add - local.tee $3 - i64.load - local.set $5 - local.get $3 - local.get $4 - local.get $0 + f32.load + local.set $9 i32.const 3 - i32.shl + global.set $~argumentsLength + local.get $2 + local.get $8 i32.add - local.tee $3 - i64.load - i64.store + local.get $9 + local.get $3 + local.get $1 + i32.const 3888 + i32.load + call_indirect (type $f32_i32_i32_=>_f32) + f32.store local.get $3 - local.get $5 - i64.store - local.get $2 i32.const 1 i32.add - local.set $2 - local.get $0 - i32.const 1 - i32.sub - local.set $0 + local.set $3 br $for-loop|0 end end + local.get $0 + local.get $2 + i32.store + local.get $0 + local.get $2 + call $~lib/rt/itcms/__link + local.get $0 + local.get $2 + i32.store offset=4 + local.get $0 + local.get $7 + i32.store offset=8 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 + local.get $0 + i32.store offset=8 + 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 388 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + 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 + local.get $0 + 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 12 + i32.add + global.set $~lib/memory/__stack_pointer ) - (func $~lib/typedarray/Uint64Array#subarray (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 12 i32.sub @@ -20878,298 +17845,155 @@ 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 - i32.const 4 - local.get $0 - i32.load offset=8 i32.const 3 - i32.shr_u - local.tee $2 - local.get $2 - i32.const 4 - i32.gt_s - select - local.set $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.set $2 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.const 11 - call $~lib/rt/itcms/__new + call $~lib/typedarray/Float64Array#constructor local.tee $1 - i32.store offset=8 - local.get $1 - local.get $0 - i32.load - local.tee $4 i32.store local.get $1 - local.get $4 - call $~lib/rt/itcms/__link + i32.const 0 + f64.const 1 + call $~lib/typedarray/Float64Array#__set local.get $1 - local.get $0 - i32.load offset=4 - local.get $3 - i32.const 3 - i32.shl - i32.add - i32.store offset=4 + i32.const 1 + f64.const 2 + call $~lib/typedarray/Float64Array#__set local.get $1 - local.get $2 - local.get $3 - local.get $2 - local.get $3 - i32.gt_s - select - local.get $3 - i32.sub - i32.const 3 - i32.shl - i32.store offset=8 + i32.const 2 + f64.const 3 + call $~lib/typedarray/Float64Array#__set global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $1 - ) - (func $std/typedarray/testArrayReverse<~lib/typedarray/Uint64Array,u64> - (local $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i64) + i32.const 3920 + i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 24 + 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 $1 + i32.load offset=8 + i32.const 3 + i32.shr_u + local.set $4 + local.get $1 + i32.load offset=4 + local.set $6 global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=8 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=16 - global.get $~lib/memory/__stack_pointer - i32.const 6912 + i32.const 12 + i32.const 13 + call $~lib/rt/itcms/__new + local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - i32.const 6912 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 6924 - i32.load + local.get $4 + i32.const 3 + i32.shl + local.tee $7 + i32.const 0 + call $~lib/rt/itcms/__new local.tee $2 - call $~lib/typedarray/Uint64Array#constructor - local.tee $1 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $2 - call $~lib/typedarray/Uint64Array#constructor - local.tee $3 - i32.store offset=12 + i32.store offset=4 loop $for-loop|0 - local.get $0 - local.get $2 + local.get $3 + local.get $4 i32.lt_s if - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 6912 - i32.store offset=16 - local.get $1 - local.get $0 - i32.const 6912 - local.get $0 - call $~lib/array/Array#__get - i64.extend_i32_s - call $~lib/typedarray/Uint64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 6912 - i32.store offset=16 + local.get $6 local.get $3 - local.get $0 - i32.const 6912 - local.get $0 - call $~lib/array/Array#__get - i64.extend_i32_s - call $~lib/typedarray/Uint64Array#__set - local.get $0 - i32.const 1 + i32.const 3 + i32.shl + local.tee $8 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/typedarray/Uint64Array#reverse - drop - i32.const 0 - local.set $0 - loop $for-loop|1 - local.get $0 - local.get $2 - 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/typedarray/Uint64Array#__get - global.get $~lib/memory/__stack_pointer - i32.const 6912 - i32.store offset=4 - i32.const 6912 + f64.load + local.set $9 + i32.const 3 + global.set $~argumentsLength local.get $2 - i32.const 1 - i32.sub - local.get $0 - i32.sub - call $~lib/array/Array#__get - i64.extend_i32_s - i64.ne - if - i32.const 0 - i32.const 1568 - i32.const 547 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $0 + local.get $8 + i32.add + local.get $9 + local.get $3 + local.get $1 + i32.const 3920 + i32.load + call_indirect (type $f64_i32_i32_=>_f64) + f64.store + local.get $3 i32.const 1 i32.add - local.set $0 - br $for-loop|1 + local.set $3 + br $for-loop|0 end end - global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=16 - local.get $3 - i32.const 8 - call $~lib/typedarray/Uint64Array#subarray - local.set $0 - global.get $~lib/memory/__stack_pointer local.get $0 + local.get $2 + i32.store + local.get $0 + local.get $2 + call $~lib/rt/itcms/__link + local.get $0 + local.get $2 i32.store offset=4 local.get $0 - call $~lib/typedarray/Uint64Array#reverse - local.tee $0 - i32.store offset=20 + local.get $7 + 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 + i32.store offset=8 local.get $0 i32.const 0 - call $~lib/typedarray/Uint64Array#__get - i64.const 8 - i64.ne + call $~lib/typedarray/Float64Array#__get + f64.const 1 + f64.ne if i32.const 0 i32.const 1568 - i32.const 552 + i32.const 388 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 + call $~lib/typedarray/Float64Array#__get + f64.const 4 + f64.ne if i32.const 0 i32.const 1568 - i32.const 553 + i32.const 389 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 554 - 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 + call $~lib/typedarray/Float64Array#__get + f64.const 9 + f64.ne if i32.const 0 i32.const 1568 - i32.const 555 + i32.const 390 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/Float32Array#reverse (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 f32) + (func $std/typedarray/testArrayFilter<~lib/typedarray/Int8Array,i8> + (local $0 i32) global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check @@ -21177,68 +18001,112 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - local.get $0 - local.tee $1 + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 6 + call $~lib/typedarray/Int8Array#constructor + local.tee $0 i32.store local.get $0 - i32.load offset=4 - local.set $4 - global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 1 + call $~lib/typedarray/Int8Array#__set local.get $0 - i32.store offset=4 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Int8Array#__set local.get $0 - i32.load offset=8 i32.const 2 - i32.shr_u - i32.const 1 + i32.const 3 + call $~lib/typedarray/Int8Array#__set + local.get $0 + i32.const 3 + i32.const 4 + call $~lib/typedarray/Int8Array#__set + local.get $0 + i32.const 5 + i32.const 5 + call $~lib/typedarray/Int8Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 3952 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + call $~lib/typedarray/Int8Array#filter + local.tee $0 + i32.store offset=8 + local.get $0 + i32.load offset=4 + local.get $0 + i32.load i32.sub - local.set $0 - loop $for-loop|0 - local.get $0 - local.get $2 - i32.gt_u - if - local.get $4 - local.get $2 - i32.const 2 - i32.shl - i32.add - local.tee $3 - f32.load - local.set $5 - local.get $3 - local.get $4 - local.get $0 - i32.const 2 - i32.shl - i32.add - local.tee $3 - f32.load - f32.store - local.get $3 - local.get $5 - f32.store - local.get $2 - i32.const 1 - i32.add - local.set $2 - local.get $0 - i32.const 1 - i32.sub - local.set $0 - br $for-loop|0 - end + if + i32.const 0 + i32.const 1568 + i32.const 413 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=8 + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 414 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + 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 415 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + 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 + local.get $0 + 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 8 + i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 ) - (func $~lib/typedarray/Float32Array#subarray (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) + (func $std/typedarray/testArrayFilter<~lib/typedarray/Uint8Array,u8> + (local $0 i32) global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -21251,92 +18119,111 @@ i32.const 0 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $0 + i32.const 6 + call $~lib/typedarray/Uint8Array#constructor + local.tee $0 i32.store - global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=4 - i32.const 4 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Uint8Array#__set local.get $0 - i32.load offset=8 + i32.const 1 i32.const 2 - i32.shr_u - local.tee $2 - local.get $2 + call $~lib/typedarray/Uint8Array#__set + local.get $0 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Uint8Array#__set + local.get $0 + i32.const 3 i32.const 4 - i32.gt_s - select - local.set $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.set $2 + call $~lib/typedarray/Uint8Array#__set + local.get $0 + i32.const 5 + i32.const 5 + call $~lib/typedarray/Uint8Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 3984 + i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.const 12 - call $~lib/rt/itcms/__new - local.tee $1 - i32.store offset=8 - local.get $1 local.get $0 - i32.load - local.tee $4 - i32.store - local.get $1 - local.get $4 - call $~lib/rt/itcms/__link - local.get $1 + call $~lib/typedarray/Uint8Array#filter + local.tee $0 + i32.store offset=8 local.get $0 i32.load offset=4 - local.get $3 - i32.const 2 - i32.shl - i32.add - i32.store offset=4 - local.get $1 - local.get $2 - local.get $3 - local.get $2 - local.get $3 - i32.gt_s - select - local.get $3 + local.get $0 + i32.load i32.sub + if + i32.const 0 + i32.const 1568 + i32.const 413 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=8 + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 414 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + 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 415 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + 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 + local.get $0 i32.const 2 - i32.shl - i32.store offset=8 + 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 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 ) - (func $std/typedarray/testArrayReverse<~lib/typedarray/Float32Array,f32> + (func $std/typedarray/testArrayFilter<~lib/typedarray/Uint8ClampedArray,u8> (local $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 f32) global.get $~lib/memory/__stack_pointer - i32.const 24 + i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check @@ -21344,205 +18231,114 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=8 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=16 - global.get $~lib/memory/__stack_pointer - i32.const 6912 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 6912 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 6924 - i32.load - local.tee $2 - call $~lib/typedarray/Float32Array#constructor - local.tee $1 + i32.const 0 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $2 - call $~lib/typedarray/Float32Array#constructor - local.tee $3 - i32.store offset=12 - loop $for-loop|0 - local.get $0 - local.get $2 - i32.lt_s - if - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 6912 - i32.store offset=16 - local.get $1 - local.get $0 - i32.const 6912 - 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 $3 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 6912 - i32.store offset=16 - local.get $3 - local.get $0 - i32.const 6912 - 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 $1 - i32.store offset=4 - local.get $1 - call $~lib/typedarray/Float32Array#reverse - drop + i32.const 6 + call $~lib/typedarray/Uint8ClampedArray#constructor + local.tee $0 + i32.store + local.get $0 i32.const 0 - local.set $0 - loop $for-loop|1 - local.get $0 - local.get $2 - 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/typedarray/Float32Array#__get - global.get $~lib/memory/__stack_pointer - i32.const 6912 - i32.store offset=4 - i32.const 6912 - local.get $2 - i32.const 1 - i32.sub - local.get $0 - i32.sub - call $~lib/array/Array#__get - f32.convert_i32_s - f32.ne - if - i32.const 0 - i32.const 1568 - i32.const 547 - 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 $3 - i32.store offset=16 - local.get $3 - i32.const 8 - call $~lib/typedarray/Float32Array#subarray - local.set $0 - global.get $~lib/memory/__stack_pointer + i32.const 1 + call $~lib/typedarray/Uint8ClampedArray#__set + local.get $0 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Uint8ClampedArray#__set + local.get $0 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Uint8ClampedArray#__set + local.get $0 + i32.const 3 + i32.const 4 + call $~lib/typedarray/Uint8ClampedArray#__set local.get $0 + i32.const 5 + i32.const 5 + call $~lib/typedarray/Uint8ClampedArray#__set + global.get $~lib/memory/__stack_pointer + i32.const 4016 i32.store offset=4 + global.get $~lib/memory/__stack_pointer local.get $0 - call $~lib/typedarray/Float32Array#reverse + call $~lib/typedarray/Uint8ClampedArray#filter local.tee $0 - i32.store offset=20 - global.get $~lib/memory/__stack_pointer + i32.store offset=8 local.get $0 - i32.store offset=4 + i32.load offset=4 local.get $0 - i32.const 0 - call $~lib/typedarray/Float32Array#__get - f32.const 8 - f32.ne + i32.load + i32.sub if i32.const 0 i32.const 1568 - i32.const 552 + i32.const 413 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 + i32.load offset=8 + i32.const 3 + i32.ne if i32.const 0 i32.const 1568 - i32.const 553 + i32.const 414 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 6 - f32.ne + i32.const 0 + call $~lib/typedarray/Uint8ClampedArray#__get + i32.const 3 + i32.ne if i32.const 0 i32.const 1568 - i32.const 554 + i32.const 415 i32.const 3 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=4 + 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 local.get $0 - i32.const 3 - call $~lib/typedarray/Float32Array#__get - f32.const 5 - f32.ne + i32.const 2 + call $~lib/typedarray/Uint8ClampedArray#__get + i32.const 5 + i32.ne if i32.const 0 i32.const 1568 - i32.const 555 + i32.const 417 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/Float64Array#reverse (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 f64) + (func $std/typedarray/testArrayFilter<~lib/typedarray/Int16Array,i16> + (local $0 i32) global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check @@ -21550,72 +18346,116 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - local.get $0 - local.tee $1 + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 6 + call $~lib/typedarray/Int16Array#constructor + local.tee $0 i32.store local.get $0 - i32.load offset=4 - local.set $4 - global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 1 + call $~lib/typedarray/Int16Array#__set local.get $0 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Int16Array#__set + local.get $0 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Int16Array#__set + local.get $0 + i32.const 3 + i32.const 4 + call $~lib/typedarray/Int16Array#__set + local.get $0 + i32.const 5 + i32.const 5 + call $~lib/typedarray/Int16Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 4048 i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + call $~lib/typedarray/Int16Array#filter + local.tee $0 + i32.store offset=8 + local.get $0 + i32.load offset=4 + local.get $0 + i32.load + i32.sub + if + i32.const 0 + i32.const 1568 + i32.const 413 + i32.const 3 + call $~lib/builtins/abort + unreachable + end local.get $0 i32.load offset=8 - i32.const 3 - i32.shr_u i32.const 1 - i32.sub - local.set $0 - loop $for-loop|0 - local.get $0 - local.get $2 - i32.gt_u - if - local.get $4 - local.get $2 - i32.const 3 - i32.shl - i32.add - local.tee $3 - f64.load - local.set $5 - local.get $3 - local.get $4 - local.get $0 - i32.const 3 - i32.shl - i32.add - local.tee $3 - f64.load - f64.store - local.get $3 - local.get $5 - f64.store - local.get $2 - i32.const 1 - i32.add - local.set $2 - local.get $0 - i32.const 1 - i32.sub - local.set $0 - br $for-loop|0 - end + i32.shr_u + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 414 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + 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 415 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + 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 + local.get $0 + 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 8 + i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 ) - (func $std/typedarray/testArrayReverse<~lib/typedarray/Float64Array,f64> + (func $std/typedarray/testArrayFilter<~lib/typedarray/Uint16Array,u16> (local $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 f64) global.get $~lib/memory/__stack_pointer - i32.const 24 + i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check @@ -21623,203 +18463,116 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=8 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=16 - global.get $~lib/memory/__stack_pointer - i32.const 6912 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 6912 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 6924 - i32.load - local.tee $2 - call $~lib/typedarray/Float64Array#constructor - local.tee $1 + i32.const 0 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $2 - call $~lib/typedarray/Float64Array#constructor - local.tee $3 - i32.store offset=12 - loop $for-loop|0 - local.get $0 - local.get $2 - i32.lt_s - if - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 6912 - i32.store offset=16 - local.get $1 - local.get $0 - i32.const 6912 - 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 $3 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 6912 - i32.store offset=16 - local.get $3 - local.get $0 - i32.const 6912 - 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 $1 - i32.store offset=4 - local.get $1 - call $~lib/typedarray/Float64Array#reverse - drop + i32.const 6 + call $~lib/typedarray/Uint16Array#constructor + local.tee $0 + i32.store + local.get $0 i32.const 0 - local.set $0 - loop $for-loop|1 - local.get $0 - local.get $2 - 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/typedarray/Float64Array#__get - global.get $~lib/memory/__stack_pointer - i32.const 6912 - i32.store offset=4 - i32.const 6912 - local.get $2 - i32.const 1 - i32.sub - local.get $0 - i32.sub - call $~lib/array/Array#__get - f64.convert_i32_s - f64.ne - if - i32.const 0 - i32.const 1568 - i32.const 547 - 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 $3 - i32.store offset=16 - local.get $3 + i32.const 1 + call $~lib/typedarray/Uint16Array#__set + local.get $0 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Uint16Array#__set + local.get $0 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Uint16Array#__set + local.get $0 + i32.const 3 i32.const 4 - i32.const 8 - call $~lib/typedarray/Float64Array#subarray - local.set $0 - global.get $~lib/memory/__stack_pointer + call $~lib/typedarray/Uint16Array#__set local.get $0 + i32.const 5 + i32.const 5 + call $~lib/typedarray/Uint16Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 4080 i32.store offset=4 + global.get $~lib/memory/__stack_pointer local.get $0 - call $~lib/typedarray/Float64Array#reverse + call $~lib/typedarray/Uint16Array#filter local.tee $0 - i32.store offset=20 - global.get $~lib/memory/__stack_pointer + i32.store offset=8 local.get $0 - i32.store offset=4 + i32.load offset=4 local.get $0 - i32.const 0 - call $~lib/typedarray/Float64Array#__get - f64.const 8 - f64.ne + i32.load + i32.sub if i32.const 0 i32.const 1568 - i32.const 552 + i32.const 413 i32.const 3 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 local.get $0 + i32.load offset=8 i32.const 1 - call $~lib/typedarray/Float64Array#__get - f64.const 7 - f64.ne + i32.shr_u + i32.const 3 + i32.ne if i32.const 0 i32.const 1568 - i32.const 553 + i32.const 414 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 + i32.const 0 + call $~lib/typedarray/Uint16Array#__get + i32.const 3 + i32.ne if i32.const 0 i32.const 1568 - i32.const 554 + i32.const 415 i32.const 3 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=4 + 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 local.get $0 - i32.const 3 - call $~lib/typedarray/Float64Array#__get - f64.const 5 - f64.ne + i32.const 2 + call $~lib/typedarray/Uint16Array#__get + i32.const 5 + i32.ne if i32.const 0 i32.const 1568 - i32.const 555 + i32.const 417 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/Int8Array#indexOf (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (local $3 i32) - (local $4 i32) + (func $std/typedarray/testArrayFilter<~lib/typedarray/Int32Array,i32> + (local $0 i32) global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check @@ -21827,77 +18580,116 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store + i32.const 0 + i32.store offset=8 global.get $~lib/memory/__stack_pointer + i32.const 6 + call $~lib/typedarray/Int32Array#constructor + local.tee $0 + i32.store + local.get $0 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Int32Array#__set + local.get $0 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Int32Array#__set + local.get $0 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Int32Array#__set + local.get $0 + i32.const 3 + i32.const 4 + call $~lib/typedarray/Int32Array#__set local.get $0 + i32.const 5 + i32.const 5 + call $~lib/typedarray/Int32Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 4112 i32.store offset=4 - i32.const -1 - local.set $3 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.0 - local.get $2 - local.get $0 - i32.load offset=8 - local.tee $4 - i32.ge_s - i32.const 1 - local.get $4 - select - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.0 - local.get $2 + global.get $~lib/memory/__stack_pointer + local.get $0 + call $~lib/typedarray/Int32Array#filter + local.tee $0 + i32.store offset=8 + local.get $0 + i32.load offset=4 + local.get $0 + i32.load + i32.sub + if i32.const 0 - i32.lt_s - if - local.get $2 - local.get $4 - i32.add - local.tee $2 - i32.const 0 - local.get $2 - i32.const 0 - i32.gt_s - select - local.set $2 - end - 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 $2 - local.tee $3 - local.get $0 - 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 - local.get $3 - i32.const 1 - i32.add - local.set $2 - br $while-continue|0 - end - end - i32.const -1 - local.set $3 + i32.const 1568 + i32.const 413 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=8 + i32.const 2 + i32.shr_u + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 414 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + 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 415 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + 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 + local.get $0 + 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 8 + i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $3 ) - (func $~lib/typedarray/Int8Array#lastIndexOf (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (local $3 i32) - (local $4 i32) + (func $std/typedarray/testArrayFilter<~lib/typedarray/Uint32Array,u32> + (local $0 i32) global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check @@ -21905,644 +18697,648 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store + i32.const 0 + i32.store offset=8 global.get $~lib/memory/__stack_pointer + i32.const 6 + call $~lib/typedarray/Uint32Array#constructor + local.tee $0 + i32.store + local.get $0 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Uint32Array#__set + local.get $0 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Uint32Array#__set + local.get $0 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Uint32Array#__set + local.get $0 + i32.const 3 + i32.const 4 + call $~lib/typedarray/Uint32Array#__set local.get $0 + i32.const 5 + i32.const 5 + call $~lib/typedarray/Uint32Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 4144 i32.store offset=4 - i32.const -1 - local.set $3 - block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.0 - local.get $0 - i32.load offset=8 - local.tee $4 - i32.eqz - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.0 - local.get $2 - local.get $4 - i32.add - local.get $4 - i32.const 1 - i32.sub - local.get $2 - local.get $2 - local.get $4 - i32.ge_s - select - local.get $2 - i32.const 0 - i32.lt_s - select - local.set $2 - 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.tee $3 - local.get $0 - 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 - local.get $3 - i32.const 1 - i32.sub - local.set $2 - br $while-continue|0 - end - end - i32.const -1 - local.set $3 - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $3 - ) - (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 - call $~stack_check - 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 - 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 - 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 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - i32.const 7024 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 7024 - i32.store offset=4 - i32.const 7036 - i32.load - local.tee $0 - local.set $2 global.get $~lib/memory/__stack_pointer local.get $0 - call $~lib/typedarray/Int8Array#constructor + call $~lib/typedarray/Uint32Array#filter local.tee $0 i32.store offset=8 - loop $for-loop|0 - local.get $1 - local.get $2 - i32.lt_s - if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 7024 - i32.store offset=12 - local.get $0 - local.get $1 - i32.const 7024 - local.get $1 - call $~lib/array/Array#__get - i32.const 24 - i32.shl - i32.const 24 - i32.shr_s - call $~lib/typedarray/Int8Array#__set - 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 + i32.load offset=4 local.get $0 - i32.const 0 - i32.const 0 - call $~lib/typedarray/Int8Array#indexOf + i32.load + i32.sub if i32.const 0 i32.const 1568 - i32.const 580 + i32.const 413 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.load offset=8 + i32.const 2 + i32.shr_u + i32.const 3 i32.ne if i32.const 0 i32.const 1568 - i32.const 581 + i32.const 414 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 i32.const 0 - call $~lib/typedarray/Int8Array#indexOf - i32.const -1 + call $~lib/typedarray/Uint32Array#__get + i32.const 3 i32.ne if i32.const 0 i32.const 1568 - i32.const 582 + i32.const 415 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 - i32.const 0 - call $~lib/typedarray/Int8Array#indexOf - i32.const 3 + i32.const 1 + call $~lib/typedarray/Uint32Array#__get + i32.const 4 i32.ne if i32.const 0 i32.const 1568 - i32.const 583 + i32.const 416 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 i32.const 2 - call $~lib/typedarray/Int8Array#indexOf - i32.const 3 + call $~lib/typedarray/Uint32Array#__get + i32.const 5 i32.ne if i32.const 0 i32.const 1568 - i32.const 584 + i32.const 417 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/testArrayFilter<~lib/typedarray/Int64Array,i64> + (local $0 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 + global.get $~lib/memory/__stack_pointer + i32.const 6 + call $~lib/typedarray/Int64Array#constructor + local.tee $0 + i32.store local.get $0 - i32.store offset=4 + i32.const 0 + i64.const 1 + call $~lib/typedarray/Int64Array#__set + local.get $0 + i32.const 1 + i64.const 2 + call $~lib/typedarray/Int64Array#__set + local.get $0 + i32.const 2 + i64.const 3 + call $~lib/typedarray/Int64Array#__set local.get $0 i32.const 3 - i32.const 3 - call $~lib/typedarray/Int8Array#indexOf - i32.const 3 - i32.ne + i64.const 4 + call $~lib/typedarray/Int64Array#__set + local.get $0 + i32.const 5 + i64.const 5 + call $~lib/typedarray/Int64Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 4176 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + call $~lib/typedarray/Int64Array#filter + local.tee $0 + i32.store offset=8 + local.get $0 + i32.load offset=4 + local.get $0 + i32.load + i32.sub if i32.const 0 i32.const 1568 - i32.const 585 + i32.const 413 i32.const 3 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 local.get $0 + i32.load offset=8 + i32.const 3 + i32.shr_u 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 586 + i32.const 414 i32.const 3 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=4 + 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 local.get $0 i32.const 1 - i32.const 10 - call $~lib/typedarray/Int8Array#indexOf - i32.const -1 - i32.ne + call $~lib/typedarray/Int64Array#__get + i64.const 4 + i64.ne if i32.const 0 i32.const 1568 - i32.const 587 + i32.const 416 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 - i32.const -100 - call $~lib/typedarray/Int8Array#indexOf - i32.const 1 - i32.ne + i32.const 2 + call $~lib/typedarray/Int64Array#__get + i64.const 5 + i64.ne if i32.const 0 i32.const 1568 - i32.const 588 + i32.const 417 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/testArrayFilter<~lib/typedarray/Uint64Array,u64> + (local $0 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 + global.get $~lib/memory/__stack_pointer + i32.const 6 + call $~lib/typedarray/Uint64Array#constructor + local.tee $0 + i32.store + local.get $0 + i32.const 0 + i64.const 1 + call $~lib/typedarray/Uint64Array#__set local.get $0 - i32.store offset=4 i32.const 1 - global.set $~argumentsLength + i64.const 2 + call $~lib/typedarray/Uint64Array#__set local.get $0 - i32.const 0 - call $~lib/typedarray/Int8Array#lastIndexOf@varargs + i32.const 2 + i64.const 3 + call $~lib/typedarray/Uint64Array#__set + local.get $0 + i32.const 3 + i64.const 4 + call $~lib/typedarray/Uint64Array#__set + local.get $0 + i32.const 5 + i64.const 5 + call $~lib/typedarray/Uint64Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 4208 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + call $~lib/typedarray/Uint64Array#filter + local.tee $0 + i32.store offset=8 + local.get $0 + i32.load offset=4 + local.get $0 + i32.load + i32.sub if i32.const 0 i32.const 1568 - i32.const 590 + i32.const 413 i32.const 3 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - i32.const 1 - global.set $~argumentsLength local.get $0 - i32.const 11 - call $~lib/typedarray/Int8Array#lastIndexOf@varargs - i32.const -1 + i32.load offset=8 + i32.const 3 + i32.shr_u + i32.const 3 i32.ne if i32.const 0 i32.const 1568 - i32.const 591 + i32.const 414 i32.const 3 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - i32.const 1 - global.set $~argumentsLength local.get $0 - i32.const -1 - call $~lib/typedarray/Int8Array#lastIndexOf@varargs - i32.const -1 - i32.ne + i32.const 0 + call $~lib/typedarray/Uint64Array#__get + i64.const 3 + i64.ne if i32.const 0 i32.const 1568 - i32.const 592 + i32.const 415 i32.const 3 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=4 i32.const 1 - global.set $~argumentsLength - local.get $0 - i32.const 3 - call $~lib/typedarray/Int8Array#lastIndexOf@varargs - i32.const 3 - i32.ne + call $~lib/typedarray/Uint64Array#__get + i64.const 4 + i64.ne if i32.const 0 i32.const 1568 - i32.const 593 + i32.const 416 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 - i32.const 4 - call $~lib/typedarray/Int8Array#lastIndexOf - i32.const 3 - i32.ne + i32.const 2 + call $~lib/typedarray/Uint64Array#__get + i64.const 5 + i64.ne if i32.const 0 i32.const 1568 - i32.const 594 + i32.const 417 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/testArrayFilter<~lib/typedarray/Float32Array,f32> + (local $0 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 + global.get $~lib/memory/__stack_pointer + i32.const 6 + call $~lib/typedarray/Float32Array#constructor + local.tee $0 + i32.store local.get $0 - i32.store offset=4 + i32.const 0 + f32.const 1 + call $~lib/typedarray/Float32Array#__set + local.get $0 + i32.const 1 + f32.const 2 + call $~lib/typedarray/Float32Array#__set + local.get $0 + i32.const 2 + f32.const 3 + call $~lib/typedarray/Float32Array#__set local.get $0 i32.const 3 - i32.const 3 - call $~lib/typedarray/Int8Array#lastIndexOf - i32.const 3 - i32.ne + f32.const 4 + call $~lib/typedarray/Float32Array#__set + local.get $0 + i32.const 5 + f32.const 5 + call $~lib/typedarray/Float32Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 4240 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + call $~lib/typedarray/Float32Array#filter + local.tee $0 + i32.store offset=8 + local.get $0 + i32.load offset=4 + local.get $0 + i32.load + i32.sub if i32.const 0 i32.const 1568 - i32.const 595 + i32.const 413 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 + i32.load offset=8 i32.const 2 - call $~lib/typedarray/Int8Array#lastIndexOf - i32.const -1 + i32.shr_u + i32.const 3 i32.ne if i32.const 0 i32.const 1568 - i32.const 596 + i32.const 414 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 - i32.const 100 - call $~lib/typedarray/Int8Array#lastIndexOf - i32.const 1 - i32.ne + i32.const 0 + call $~lib/typedarray/Float32Array#__get + f32.const 3 + f32.ne if i32.const 0 i32.const 1568 - i32.const 597 + i32.const 415 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 - i32.const -10 - call $~lib/typedarray/Int8Array#lastIndexOf - i32.const 1 - i32.ne + call $~lib/typedarray/Float32Array#__get + f32.const 4 + f32.ne if i32.const 0 i32.const 1568 - i32.const 598 + i32.const 416 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 - i32.const -11 - call $~lib/typedarray/Int8Array#lastIndexOf - i32.const -1 - i32.ne + i32.const 2 + call $~lib/typedarray/Float32Array#__get + f32.const 5 + f32.ne if i32.const 0 i32.const 1568 - i32.const 599 + i32.const 417 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $std/typedarray/testArrayFilter<~lib/typedarray/Float64Array,f64> + (local $0 i32) global.get $~lib/memory/__stack_pointer - local.get $0 - i32.const 4 - i32.const 9 - call $~lib/typedarray/Int8Array#subarray - local.tee $0 - i32.store offset=16 + 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 + global.get $~lib/memory/__stack_pointer + i32.const 6 + call $~lib/typedarray/Float64Array#constructor + local.tee $0 + i32.store local.get $0 - i32.store offset=4 + i32.const 0 + f64.const 1 + call $~lib/typedarray/Float64Array#__set + local.get $0 + i32.const 1 + f64.const 2 + call $~lib/typedarray/Float64Array#__set + local.get $0 + i32.const 2 + f64.const 3 + call $~lib/typedarray/Float64Array#__set local.get $0 i32.const 3 - i32.const 0 - call $~lib/typedarray/Int8Array#indexOf - i32.const -1 - i32.ne + f64.const 4 + call $~lib/typedarray/Float64Array#__set + local.get $0 + i32.const 5 + f64.const 5 + call $~lib/typedarray/Float64Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 4272 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + call $~lib/typedarray/Float64Array#filter + local.tee $0 + i32.store offset=8 + local.get $0 + i32.load offset=4 + local.get $0 + i32.load + i32.sub if i32.const 0 i32.const 1568 - i32.const 603 + i32.const 413 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 + i32.load offset=8 + i32.const 3 + i32.shr_u + i32.const 3 + i32.ne if i32.const 0 i32.const 1568 - i32.const 604 + i32.const 414 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 + call $~lib/typedarray/Float64Array#__get + f64.const 3 + f64.ne if i32.const 0 i32.const 1568 - i32.const 605 + i32.const 415 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 + i32.const 1 + call $~lib/typedarray/Float64Array#__get + f64.const 4 + f64.ne if i32.const 0 i32.const 1568 - i32.const 606 + i32.const 416 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 + i32.const 2 + call $~lib/typedarray/Float64Array#__get + f64.const 5 + f64.ne if i32.const 0 i32.const 1568 - i32.const 607 + i32.const 417 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 12 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (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 + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer i32.const 0 - call $~lib/typedarray/Int8Array#indexOf - i32.const -1 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 6448 + i32.store + local.get $0 + i32.const 255 + i32.and + i32.const 6448 + local.get $1 + call $~lib/array/Array#__get + i32.const 255 + i32.and i32.ne if i32.const 0 i32.const 1568 - i32.const 608 - i32.const 3 + i32.const 513 + 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 5 - i32.const 1 - call $~lib/typedarray/Int8Array#indexOf - i32.const 1 + local.get $1 + global.get $std/typedarray/forEachCallCount i32.ne if i32.const 0 i32.const 1568 - i32.const 609 - i32.const 3 + i32.const 514 + 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 5 - i32.const 2 - call $~lib/typedarray/Int8Array#indexOf - i32.const -1 + local.get $2 + global.get $std/typedarray/forEachSelf i32.ne if i32.const 0 i32.const 1568 - i32.const 610 - i32.const 3 + i32.const 515 + 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 20 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer ) - (func $std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Uint8Array,u8> + (func $std/typedarray/testArrayForEach<~lib/typedarray/Int8Array,i8> (local $0 i32) (local $1 i32) (local $2 i32) + (local $3 i32) + (local $4 i32) global.get $~lib/memory/__stack_pointer - i32.const 20 + i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check @@ -22550,45 +19346,81 @@ 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 0 - i32.store offset=16 + i32.store offset=8 + i32.const 0 + global.set $std/typedarray/forEachCallCount global.get $~lib/memory/__stack_pointer - i32.const 7024 + i32.const 3 + call $~lib/typedarray/Int8Array#constructor + local.tee $0 i32.store + local.get $0 + global.set $std/typedarray/forEachSelf global.get $~lib/memory/__stack_pointer - i32.const 7024 + i32.const 6448 i32.store offset=4 - i32.const 7036 - i32.load - local.tee $0 - local.set $2 + local.get $0 + i32.const 0 + i32.const 6448 + i32.const 0 + call $~lib/array/Array#__get + i32.const 24 + i32.shl + i32.const 24 + i32.shr_s + call $~lib/typedarray/Int8Array#__set global.get $~lib/memory/__stack_pointer + i32.const 6448 + i32.store offset=4 local.get $0 - call $~lib/typedarray/Uint8Array#constructor - local.tee $0 + i32.const 1 + i32.const 6448 + i32.const 1 + call $~lib/array/Array#__get + i32.const 24 + i32.shl + i32.const 24 + i32.shr_s + call $~lib/typedarray/Int8Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 6448 + i32.store offset=4 + local.get $0 + i32.const 2 + i32.const 6448 + i32.const 2 + call $~lib/array/Array#__get + i32.const 24 + i32.shl + i32.const 24 + i32.shr_s + call $~lib/typedarray/Int8Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 6496 i32.store offset=8 + local.get $0 + i32.load offset=4 + local.set $2 + local.get $0 + i32.load offset=8 + local.set $3 loop $for-loop|0 local.get $1 - local.get $2 + local.get $3 i32.lt_s if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 7024 - i32.store offset=12 - local.get $0 local.get $1 - i32.const 7024 + local.get $2 + i32.add + i32.load8_s + i32.const 3 + global.set $~argumentsLength local.get $1 - call $~lib/array/Array#__get - i32.const 255 - i32.and - call $~lib/typedarray/Uint8Array#__set + local.get $0 + i32.const 6496 + i32.load + call_indirect (type $i32_i32_i32_=>_none) local.get $1 i32.const 1 i32.add @@ -22596,483 +19428,479 @@ br $for-loop|0 end end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.const 0 - call $~lib/typedarray/Int8Array#indexOf + global.get $std/typedarray/forEachCallCount + i32.const 3 + i32.ne if i32.const 0 i32.const 1568 - i32.const 580 + i32.const 518 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 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) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer i32.const 0 - call $~lib/typedarray/Int8Array#indexOf - i32.const -1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 581 - i32.const 3 - call $~lib/builtins/abort - unreachable - end + i32.store global.get $~lib/memory/__stack_pointer + i32.const 6448 + i32.store local.get $0 - i32.store offset=4 - local.get $0 - i32.const -1 - i32.const 0 - call $~lib/typedarray/Int8Array#indexOf - i32.const -1 + i32.const 65535 + i32.and + i32.const 6448 + local.get $1 + call $~lib/array/Array#__get + i32.const 65535 + i32.and i32.ne if i32.const 0 i32.const 1568 - i32.const 582 - i32.const 3 + i32.const 513 + 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 - i32.const 0 - call $~lib/typedarray/Int8Array#indexOf - i32.const 3 + local.get $1 + global.get $std/typedarray/forEachCallCount i32.ne if i32.const 0 i32.const 1568 - i32.const 583 - i32.const 3 + i32.const 514 + 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 - i32.const 2 - call $~lib/typedarray/Int8Array#indexOf - i32.const 3 + local.get $2 + global.get $std/typedarray/forEachSelf i32.ne if i32.const 0 i32.const 1568 - i32.const 584 - i32.const 3 + i32.const 515 + 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/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 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 + global.set $std/typedarray/forEachCallCount global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Int16Array#constructor + local.tee $0 + i32.store local.get $0 + global.set $std/typedarray/forEachSelf + global.get $~lib/memory/__stack_pointer + i32.const 6448 i32.store offset=4 local.get $0 - 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 585 - i32.const 3 - call $~lib/builtins/abort - unreachable - end + i32.const 0 + i32.const 6448 + i32.const 0 + call $~lib/array/Array#__get + i32.const 16 + i32.shl + i32.const 16 + i32.shr_s + call $~lib/typedarray/Int16Array#__set global.get $~lib/memory/__stack_pointer - local.get $0 + i32.const 6448 i32.store offset=4 local.get $0 - 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 586 - i32.const 3 - call $~lib/builtins/abort - unreachable - end + i32.const 1 + i32.const 6448 + i32.const 1 + call $~lib/array/Array#__get + i32.const 16 + i32.shl + i32.const 16 + i32.shr_s + call $~lib/typedarray/Int16Array#__set global.get $~lib/memory/__stack_pointer - local.get $0 + i32.const 6448 i32.store offset=4 local.get $0 - 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 587 - i32.const 3 - call $~lib/builtins/abort - unreachable - end + i32.const 2 + i32.const 6448 + i32.const 2 + call $~lib/array/Array#__get + i32.const 16 + i32.shl + i32.const 16 + i32.shr_s + call $~lib/typedarray/Int16Array#__set global.get $~lib/memory/__stack_pointer + i32.const 6592 + i32.store offset=8 local.get $0 - i32.store offset=4 + i32.load offset=4 + local.set $2 local.get $0 + i32.load offset=8 i32.const 1 - i32.const -100 - call $~lib/typedarray/Int8Array#indexOf - i32.const 1 + i32.shr_u + local.set $3 + loop $for-loop|0 + local.get $1 + local.get $3 + i32.lt_s + if + local.get $2 + local.get $1 + i32.const 1 + i32.shl + i32.add + i32.load16_s + i32.const 3 + global.set $~argumentsLength + local.get $1 + local.get $0 + i32.const 6592 + i32.load + call_indirect (type $i32_i32_i32_=>_none) + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|0 + end + end + global.get $std/typedarray/forEachCallCount + i32.const 3 i32.ne if i32.const 0 i32.const 1568 - i32.const 588 + i32.const 518 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - i32.const 1 - global.set $~argumentsLength - local.get $0 - i32.const 0 - call $~lib/typedarray/Int8Array#lastIndexOf@varargs - if - i32.const 0 - i32.const 1568 - i32.const 590 - i32.const 3 - call $~lib/builtins/abort - unreachable - end + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $std/typedarray/testArrayForEach<~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 - local.get $0 - i32.store offset=4 - i32.const 1 - global.set $~argumentsLength - local.get $0 - i32.const 11 - call $~lib/typedarray/Int8Array#lastIndexOf@varargs - i32.const -1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 591 - i32.const 3 - call $~lib/builtins/abort - unreachable - end + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - i32.const 1 - global.set $~argumentsLength - local.get $0 - i32.const -1 - call $~lib/typedarray/Int8Array#lastIndexOf@varargs - i32.const -1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 592 - i32.const 3 - call $~lib/builtins/abort - unreachable - end + i64.const 0 + i64.store global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - i32.const 1 - global.set $~argumentsLength - local.get $0 - i32.const 3 - call $~lib/typedarray/Int8Array#lastIndexOf@varargs - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 593 - i32.const 3 - call $~lib/builtins/abort - unreachable - end + i32.const 0 + i32.store offset=8 + i32.const 0 + global.set $std/typedarray/forEachCallCount global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - 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 594 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 + call $~lib/typedarray/Uint16Array#constructor + local.tee $0 + i32.store local.get $0 - 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 595 - i32.const 3 - call $~lib/builtins/abort - unreachable - end + global.set $std/typedarray/forEachSelf global.get $~lib/memory/__stack_pointer - local.get $0 + i32.const 6448 i32.store offset=4 local.get $0 - 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 596 - i32.const 3 - call $~lib/builtins/abort - unreachable - end + i32.const 0 + i32.const 6448 + i32.const 0 + call $~lib/array/Array#__get + i32.const 65535 + i32.and + call $~lib/typedarray/Uint16Array#__set global.get $~lib/memory/__stack_pointer - local.get $0 + i32.const 6448 i32.store offset=4 local.get $0 i32.const 1 - i32.const 100 - call $~lib/typedarray/Int8Array#lastIndexOf + i32.const 6448 i32.const 1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 597 - i32.const 3 - call $~lib/builtins/abort - unreachable - end + call $~lib/array/Array#__get + i32.const 65535 + i32.and + call $~lib/typedarray/Uint16Array#__set global.get $~lib/memory/__stack_pointer - local.get $0 + i32.const 6448 i32.store offset=4 local.get $0 - 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 598 - i32.const 3 - call $~lib/builtins/abort - unreachable - end + i32.const 2 + i32.const 6448 + i32.const 2 + call $~lib/array/Array#__get + i32.const 65535 + i32.and + call $~lib/typedarray/Uint16Array#__set global.get $~lib/memory/__stack_pointer + i32.const 6624 + i32.store offset=8 local.get $0 - i32.store offset=4 + i32.load offset=4 + local.set $2 local.get $0 + i32.load offset=8 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 599 - i32.const 3 - call $~lib/builtins/abort - unreachable + i32.shr_u + local.set $3 + loop $for-loop|0 + local.get $1 + local.get $3 + i32.lt_s + if + local.get $2 + local.get $1 + i32.const 1 + i32.shl + i32.add + i32.load16_u + i32.const 3 + global.set $~argumentsLength + local.get $1 + local.get $0 + i32.const 6624 + i32.load + call_indirect (type $i32_i32_i32_=>_none) + 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 - global.get $~lib/memory/__stack_pointer - local.get $0 - 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 + global.get $std/typedarray/forEachCallCount 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 603 + i32.const 518 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 12 + 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) + global.get $~lib/memory/__stack_pointer i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer i32.const 0 - call $~lib/typedarray/Int8Array#indexOf - if - i32.const 0 - i32.const 1568 - i32.const 604 - i32.const 3 - call $~lib/builtins/abort - unreachable - end + i32.store global.get $~lib/memory/__stack_pointer + i32.const 6448 + i32.store + i32.const 6448 + local.get $1 + call $~lib/array/Array#__get 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 605 - i32.const 3 + i32.const 513 + 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 9 - i32.const 0 - call $~lib/typedarray/Int8Array#indexOf - i32.const -1 + local.get $1 + global.get $std/typedarray/forEachCallCount i32.ne if i32.const 0 i32.const 1568 - i32.const 606 - i32.const 3 + i32.const 514 + 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 10 - i32.const 0 - call $~lib/typedarray/Int8Array#indexOf - i32.const -1 + local.get $2 + global.get $std/typedarray/forEachSelf i32.ne if i32.const 0 i32.const 1568 - i32.const 607 - i32.const 3 + i32.const 515 + 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/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 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 + global.set $std/typedarray/forEachCallCount global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Int32Array#constructor + local.tee $0 + i32.store local.get $0 + global.set $std/typedarray/forEachSelf + global.get $~lib/memory/__stack_pointer + i32.const 6448 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 608 - i32.const 3 - call $~lib/builtins/abort - unreachable - end + i32.const 6448 + i32.const 0 + call $~lib/array/Array#__get + call $~lib/typedarray/Int32Array#__set global.get $~lib/memory/__stack_pointer - local.get $0 + i32.const 6448 i32.store offset=4 local.get $0 - i32.const 5 i32.const 1 - call $~lib/typedarray/Int8Array#indexOf + i32.const 6448 i32.const 1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 609 - i32.const 3 - call $~lib/builtins/abort - unreachable - end + call $~lib/array/Array#__get + call $~lib/typedarray/Int32Array#__set global.get $~lib/memory/__stack_pointer - local.get $0 + i32.const 6448 i32.store offset=4 local.get $0 - i32.const 5 i32.const 2 - call $~lib/typedarray/Int8Array#indexOf - i32.const -1 + i32.const 6448 + i32.const 2 + call $~lib/array/Array#__get + call $~lib/typedarray/Int32Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 6656 + i32.store offset=8 + local.get $0 + i32.load offset=4 + local.set $2 + local.get $0 + i32.load offset=8 + i32.const 2 + i32.shr_u + local.set $3 + loop $for-loop|0 + local.get $1 + local.get $3 + i32.lt_s + if + local.get $2 + local.get $1 + i32.const 2 + i32.shl + i32.add + i32.load + i32.const 3 + global.set $~argumentsLength + local.get $1 + local.get $0 + i32.const 6656 + i32.load + call_indirect (type $i32_i32_i32_=>_none) + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|0 + end + end + global.get $std/typedarray/forEachCallCount + i32.const 3 i32.ne if i32.const 0 i32.const 1568 - i32.const 610 + i32.const 518 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 20 + i32.const 12 i32.add global.set $~lib/memory/__stack_pointer ) - (func $std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Uint8ClampedArray,u8> + (func $std/typedarray/testArrayForEach<~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 20 + i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check @@ -23080,45 +19908,73 @@ 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 0 - i32.store offset=16 + i32.store offset=8 + i32.const 0 + global.set $std/typedarray/forEachCallCount global.get $~lib/memory/__stack_pointer - i32.const 7024 + i32.const 3 + call $~lib/typedarray/Uint32Array#constructor + local.tee $0 i32.store + local.get $0 + global.set $std/typedarray/forEachSelf global.get $~lib/memory/__stack_pointer - i32.const 7024 + i32.const 6448 i32.store offset=4 - i32.const 7036 - i32.load - local.tee $0 - local.set $2 + local.get $0 + i32.const 0 + i32.const 6448 + i32.const 0 + call $~lib/array/Array#__get + call $~lib/typedarray/Uint32Array#__set global.get $~lib/memory/__stack_pointer + i32.const 6448 + i32.store offset=4 local.get $0 - call $~lib/typedarray/Uint8ClampedArray#constructor - local.tee $0 + i32.const 1 + i32.const 6448 + i32.const 1 + call $~lib/array/Array#__get + call $~lib/typedarray/Uint32Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 6448 + i32.store offset=4 + local.get $0 + i32.const 2 + i32.const 6448 + i32.const 2 + call $~lib/array/Array#__get + call $~lib/typedarray/Uint32Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 6688 i32.store offset=8 + local.get $0 + i32.load offset=4 + local.set $2 + local.get $0 + i32.load offset=8 + i32.const 2 + i32.shr_u + local.set $3 loop $for-loop|0 local.get $1 - local.get $2 + local.get $3 i32.lt_s if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 7024 - i32.store offset=12 - local.get $0 + local.get $2 local.get $1 - i32.const 7024 + i32.const 2 + i32.shl + i32.add + i32.load + i32.const 3 + global.set $~argumentsLength local.get $1 - call $~lib/array/Array#__get - i32.const 255 - i32.and - call $~lib/typedarray/Uint8ClampedArray#__set + local.get $0 + i32.const 6688 + i32.load + call_indirect (type $i32_i32_i32_=>_none) local.get $1 i32.const 1 i32.add @@ -23126,468 +19982,961 @@ br $for-loop|0 end end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.const 0 - call $~lib/typedarray/Int8Array#indexOf + global.get $std/typedarray/forEachCallCount + i32.const 3 + i32.ne if i32.const 0 i32.const 1568 - i32.const 580 + i32.const 518 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 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) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer i32.const 0 - call $~lib/typedarray/Int8Array#indexOf - i32.const -1 - i32.ne + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 6448 + i32.store + local.get $0 + i32.const 6448 + local.get $1 + call $~lib/array/Array#__get + i64.extend_i32_s + i64.ne if i32.const 0 i32.const 1568 - i32.const 581 - i32.const 3 + i32.const 513 + 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 -1 - i32.const 0 - call $~lib/typedarray/Int8Array#indexOf - i32.const -1 + local.get $1 + global.get $std/typedarray/forEachCallCount i32.ne if i32.const 0 i32.const 1568 - i32.const 582 - i32.const 3 + i32.const 514 + 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 - i32.const 0 - call $~lib/typedarray/Int8Array#indexOf - i32.const 3 + local.get $2 + global.get $std/typedarray/forEachSelf i32.ne if i32.const 0 i32.const 1568 - i32.const 583 - i32.const 3 + i32.const 515 + 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/Int64Array,i64> + (local $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 + 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 + global.set $std/typedarray/forEachCallCount global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Int64Array#constructor + local.tee $0 + i32.store local.get $0 + global.set $std/typedarray/forEachSelf + global.get $~lib/memory/__stack_pointer + i32.const 6448 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.const 6448 + i32.const 0 + call $~lib/array/Array#__get + i64.extend_i32_s + call $~lib/typedarray/Int64Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 6448 + i32.store offset=4 + local.get $0 + i32.const 1 + i32.const 6448 + i32.const 1 + call $~lib/array/Array#__get + i64.extend_i32_s + call $~lib/typedarray/Int64Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 6448 i32.store offset=4 local.get $0 - i32.const 3 i32.const 2 - call $~lib/typedarray/Int8Array#indexOf + i32.const 6448 + i32.const 2 + call $~lib/array/Array#__get + i64.extend_i32_s + call $~lib/typedarray/Int64Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 6720 + i32.store offset=8 + local.get $0 + i32.load offset=4 + local.set $2 + local.get $0 + i32.load offset=8 + i32.const 3 + i32.shr_u + local.set $3 + loop $for-loop|0 + local.get $1 + local.get $3 + i32.lt_s + if + local.get $2 + local.get $1 + i32.const 3 + i32.shl + i32.add + i64.load + i32.const 3 + global.set $~argumentsLength + local.get $1 + local.get $0 + i32.const 6720 + i32.load + call_indirect (type $i64_i32_i32_=>_none) + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|0 + end + end + global.get $std/typedarray/forEachCallCount i32.const 3 i32.ne if i32.const 0 i32.const 1568 - i32.const 584 + i32.const 518 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/testArrayForEach<~lib/typedarray/Uint64Array,u64> + (local $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 + 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 + global.set $std/typedarray/forEachCallCount + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Uint64Array#constructor + local.tee $0 + i32.store local.get $0 + global.set $std/typedarray/forEachSelf + global.get $~lib/memory/__stack_pointer + i32.const 6448 i32.store offset=4 local.get $0 + i32.const 0 + i32.const 6448 + i32.const 0 + call $~lib/array/Array#__get + i64.extend_i32_s + call $~lib/typedarray/Uint64Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 6448 + i32.store offset=4 + local.get $0 + i32.const 1 + i32.const 6448 + i32.const 1 + call $~lib/array/Array#__get + i64.extend_i32_s + call $~lib/typedarray/Uint64Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 6448 + i32.store offset=4 + local.get $0 + i32.const 2 + i32.const 6448 + i32.const 2 + call $~lib/array/Array#__get + i64.extend_i32_s + call $~lib/typedarray/Uint64Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 6752 + i32.store offset=8 + local.get $0 + i32.load offset=4 + local.set $2 + local.get $0 + i32.load offset=8 i32.const 3 - i32.const 3 - call $~lib/typedarray/Int8Array#indexOf + i32.shr_u + local.set $3 + loop $for-loop|0 + local.get $1 + local.get $3 + i32.lt_s + if + local.get $2 + local.get $1 + i32.const 3 + i32.shl + i32.add + i64.load + i32.const 3 + global.set $~argumentsLength + local.get $1 + local.get $0 + i32.const 6752 + i32.load + call_indirect (type $i64_i32_i32_=>_none) + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|0 + end + end + global.get $std/typedarray/forEachCallCount i32.const 3 i32.ne if i32.const 0 i32.const 1568 - i32.const 585 + i32.const 518 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 + i32.const 12 + 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 - call $~lib/typedarray/Int8Array#indexOf - i32.const -1 - i32.ne + 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 + i32.const 6448 + i32.store + local.get $0 + i32.const 6448 + local.get $1 + call $~lib/array/Array#__get + f32.convert_i32_s + f32.ne if i32.const 0 i32.const 1568 - i32.const 586 - i32.const 3 + i32.const 513 + 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 1 - i32.const 10 - call $~lib/typedarray/Int8Array#indexOf - i32.const -1 + local.get $1 + global.get $std/typedarray/forEachCallCount i32.ne if i32.const 0 i32.const 1568 - i32.const 587 - i32.const 3 + i32.const 514 + 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 1 - i32.const -100 - call $~lib/typedarray/Int8Array#indexOf - i32.const 1 + local.get $2 + global.get $std/typedarray/forEachSelf i32.ne if i32.const 0 i32.const 1568 - i32.const 588 - i32.const 3 + i32.const 515 + 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> + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 f32) + 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 + i32.const 0 + global.set $std/typedarray/forEachCallCount global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Float32Array#constructor + local.tee $0 + i32.store local.get $0 + global.set $std/typedarray/forEachSelf + global.get $~lib/memory/__stack_pointer + i32.const 6448 i32.store offset=4 - i32.const 1 - global.set $~argumentsLength local.get $0 i32.const 0 - call $~lib/typedarray/Int8Array#lastIndexOf@varargs - if - i32.const 0 - i32.const 1568 - i32.const 590 - i32.const 3 - call $~lib/builtins/abort - unreachable - end + i32.const 6448 + i32.const 0 + call $~lib/array/Array#__get + f32.convert_i32_s + call $~lib/typedarray/Float32Array#__set global.get $~lib/memory/__stack_pointer - local.get $0 + i32.const 6448 i32.store offset=4 + local.get $0 i32.const 1 - global.set $~argumentsLength + i32.const 6448 + i32.const 1 + call $~lib/array/Array#__get + f32.convert_i32_s + call $~lib/typedarray/Float32Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 6448 + i32.store offset=4 local.get $0 - i32.const 11 - call $~lib/typedarray/Int8Array#lastIndexOf@varargs - i32.const -1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 591 - i32.const 3 - call $~lib/builtins/abort - unreachable - end + i32.const 2 + i32.const 6448 + i32.const 2 + call $~lib/array/Array#__get + f32.convert_i32_s + call $~lib/typedarray/Float32Array#__set global.get $~lib/memory/__stack_pointer + i32.const 6784 + i32.store offset=8 local.get $0 - i32.store offset=4 - i32.const 1 - global.set $~argumentsLength + i32.load offset=4 + local.set $2 local.get $0 - i32.const -1 - call $~lib/typedarray/Int8Array#lastIndexOf@varargs - i32.const -1 + i32.load offset=8 + i32.const 2 + i32.shr_u + local.set $3 + loop $for-loop|0 + local.get $1 + local.get $3 + i32.lt_s + if + local.get $2 + local.get $1 + i32.const 2 + i32.shl + i32.add + f32.load + i32.const 3 + global.set $~argumentsLength + local.get $1 + local.get $0 + i32.const 6784 + i32.load + call_indirect (type $f32_i32_i32_=>_none) + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|0 + end + end + global.get $std/typedarray/forEachCallCount + i32.const 3 i32.ne if i32.const 0 i32.const 1568 - i32.const 592 + i32.const 518 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/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 + 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 + i32.const 6448 + i32.store local.get $0 - i32.store offset=4 - i32.const 1 - global.set $~argumentsLength - local.get $0 - i32.const 3 - call $~lib/typedarray/Int8Array#lastIndexOf@varargs - i32.const 3 - i32.ne + i32.const 6448 + local.get $1 + call $~lib/array/Array#__get + f64.convert_i32_s + f64.ne if i32.const 0 i32.const 1568 - i32.const 593 - i32.const 3 + i32.const 513 + 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 - i32.const 4 - call $~lib/typedarray/Int8Array#lastIndexOf - i32.const 3 + local.get $1 + global.get $std/typedarray/forEachCallCount i32.ne if i32.const 0 i32.const 1568 - i32.const 594 - i32.const 3 + i32.const 514 + 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 - i32.const 3 - call $~lib/typedarray/Int8Array#lastIndexOf - i32.const 3 + local.get $2 + global.get $std/typedarray/forEachSelf i32.ne if i32.const 0 i32.const 1568 - i32.const 595 - i32.const 3 + i32.const 515 + 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 - local.get $0 - i32.store offset=4 - local.get $0 - 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 596 - i32.const 3 - call $~lib/builtins/abort - unreachable - end + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $std/typedarray/testArrayForEach<~lib/typedarray/Float64Array,f64> + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 f64) + 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 + i32.const 0 + global.set $std/typedarray/forEachCallCount global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Float64Array#constructor + local.tee $0 + i32.store local.get $0 + global.set $std/typedarray/forEachSelf + global.get $~lib/memory/__stack_pointer + i32.const 6448 i32.store offset=4 local.get $0 - 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 597 - i32.const 3 - call $~lib/builtins/abort - unreachable - end + i32.const 0 + i32.const 6448 + i32.const 0 + call $~lib/array/Array#__get + f64.convert_i32_s + call $~lib/typedarray/Float64Array#__set global.get $~lib/memory/__stack_pointer - local.get $0 + i32.const 6448 i32.store offset=4 local.get $0 i32.const 1 - i32.const -10 - call $~lib/typedarray/Int8Array#lastIndexOf + i32.const 6448 i32.const 1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 598 - i32.const 3 - call $~lib/builtins/abort - unreachable - end + call $~lib/array/Array#__get + f64.convert_i32_s + call $~lib/typedarray/Float64Array#__set global.get $~lib/memory/__stack_pointer - local.get $0 + i32.const 6448 i32.store offset=4 local.get $0 - i32.const 1 - i32.const -11 - call $~lib/typedarray/Int8Array#lastIndexOf - i32.const -1 + i32.const 2 + i32.const 6448 + i32.const 2 + call $~lib/array/Array#__get + f64.convert_i32_s + call $~lib/typedarray/Float64Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 6816 + i32.store offset=8 + local.get $0 + i32.load offset=4 + local.set $2 + local.get $0 + i32.load offset=8 + i32.const 3 + i32.shr_u + local.set $3 + loop $for-loop|0 + local.get $1 + local.get $3 + i32.lt_s + if + local.get $2 + local.get $1 + i32.const 3 + i32.shl + i32.add + f64.load + i32.const 3 + global.set $~argumentsLength + local.get $1 + local.get $0 + i32.const 6816 + i32.load + call_indirect (type $f64_i32_i32_=>_none) + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|0 + end + end + global.get $std/typedarray/forEachCallCount + i32.const 3 i32.ne if i32.const 0 i32.const 1568 - i32.const 599 + i32.const 518 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $0 + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $std/typedarray/testArrayReverse<~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 + 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 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + i32.const 6912 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 6924 + i32.load + local.tee $1 + call $~lib/typedarray/Int8Array#constructor + local.tee $2 i32.store offset=4 global.get $~lib/memory/__stack_pointer + local.get $1 + call $~lib/typedarray/Int8Array#constructor + local.tee $3 + i32.store offset=8 + loop $for-loop|0 + local.get $0 + local.get $1 + i32.lt_s + if + local.get $2 + local.get $0 + i32.const 6912 + local.get $0 + call $~lib/array/Array#__get + i32.const 24 + i32.shl + i32.const 24 + i32.shr_s + call $~lib/typedarray/Int8Array#__set + local.get $3 + local.get $0 + i32.const 6912 + local.get $0 + call $~lib/array/Array#__get + i32.const 24 + i32.shl + i32.const 24 + i32.shr_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 $2 + call $~lib/typedarray/Int8Array#reverse + drop + i32.const 0 + local.set $0 + loop $for-loop|1 + local.get $0 + local.get $1 + i32.lt_s + if + local.get $2 + local.get $0 + call $~lib/typedarray/Int8Array#__get + i32.const 6912 + local.get $1 + i32.const 1 + i32.sub + local.get $0 + i32.sub + call $~lib/array/Array#__get + i32.const 24 + i32.shl + i32.const 24 + i32.shr_s + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 547 + 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 $3 + i32.const 4 + i32.const 8 + call $~lib/typedarray/Int8Array#subarray + local.set $0 + global.get $~lib/memory/__stack_pointer local.get $0 - i32.const 9 - call $~lib/typedarray/Uint8ClampedArray#subarray + i32.store offset=12 + local.get $0 + call $~lib/typedarray/Int8Array#reverse 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 + call $~lib/typedarray/Int8Array#__get + i32.const 8 i32.ne if i32.const 0 i32.const 1568 - i32.const 603 + i32.const 552 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 + i32.const 1 + call $~lib/typedarray/Int8Array#__get + i32.const 7 + i32.ne if i32.const 0 i32.const 1568 - i32.const 604 + i32.const 553 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.const 2 + call $~lib/typedarray/Int8Array#__get + i32.const 6 i32.ne if i32.const 0 i32.const 1568 - i32.const 605 + i32.const 554 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.const 3 + call $~lib/typedarray/Int8Array#__get + i32.const 5 i32.ne if i32.const 0 i32.const 1568 - i32.const 606 + i32.const 555 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $0 + i32.const 20 + 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) + 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 + 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 0 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + i32.const 6912 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 6924 + i32.load + local.tee $1 + call $~lib/typedarray/Uint8Array#constructor + local.tee $2 i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + call $~lib/typedarray/Uint8Array#constructor + local.tee $3 + i32.store offset=8 + loop $for-loop|0 + local.get $0 + local.get $1 + i32.lt_s + if + local.get $2 + local.get $0 + i32.const 6912 + local.get $0 + call $~lib/array/Array#__get + i32.const 255 + i32.and + call $~lib/typedarray/Uint8Array#__set + local.get $3 + local.get $0 + i32.const 6912 + 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 + local.get $2 + call $~lib/typedarray/Uint8Array#reverse + drop + i32.const 0 + local.set $0 + loop $for-loop|1 + local.get $0 + local.get $1 + i32.lt_s + if + local.get $2 + local.get $0 + call $~lib/typedarray/Uint8Array#__get + i32.const 6912 + local.get $1 + 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 547 + 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 $3 + i32.const 8 + call $~lib/typedarray/Uint8Array#subarray + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=12 + local.get $0 + call $~lib/typedarray/Uint8Array#reverse + local.tee $0 + i32.store offset=16 local.get $0 - i32.const 10 i32.const 0 - call $~lib/typedarray/Int8Array#indexOf - i32.const -1 + call $~lib/typedarray/Uint8Array#__get + i32.const 8 i32.ne if i32.const 0 i32.const 1568 - i32.const 607 + i32.const 552 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.const 1 + call $~lib/typedarray/Uint8Array#__get + i32.const 7 i32.ne if i32.const 0 i32.const 1568 - i32.const 608 + i32.const 553 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.const 2 + call $~lib/typedarray/Uint8Array#__get + i32.const 6 i32.ne if i32.const 0 i32.const 1568 - i32.const 609 + i32.const 554 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/Uint8Array#__get 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 610 + i32.const 555 i32.const 3 call $~lib/builtins/abort unreachable @@ -23597,11 +20946,13 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/typedarray/Int16Array#indexOf (param $0 i32) (param $1 i32) (param $2 i32) (result 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 8 + i32.const 20 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check @@ -23609,197 +20960,166 @@ 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 0 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + i32.const 6912 i32.store global.get $~lib/memory/__stack_pointer - local.get $0 + i32.const 6924 + i32.load + local.tee $1 + call $~lib/typedarray/Uint8ClampedArray#constructor + local.tee $2 i32.store offset=4 - i32.const -1 - local.set $3 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.0 - local.get $2 + global.get $~lib/memory/__stack_pointer + local.get $1 + call $~lib/typedarray/Uint8ClampedArray#constructor + local.tee $3 + i32.store offset=8 + loop $for-loop|0 local.get $0 - i32.load offset=8 - i32.const 1 - i32.shr_u - local.tee $4 - i32.ge_s - i32.const 1 - local.get $4 - select - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.0 - local.get $2 - i32.const 0 + local.get $1 i32.lt_s if local.get $2 - local.get $4 - i32.add - local.tee $2 - i32.const 0 - local.get $2 - i32.const 0 - i32.gt_s - select - local.set $2 - end - 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 $0 - local.get $2 - local.tee $3 - 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/Int16Array,i16>|inlined.0 - local.get $3 - i32.const 1 - i32.add - local.set $2 - br $while-continue|0 - end + local.get $0 + i32.const 6912 + local.get $0 + call $~lib/array/Array#__get + i32.const 255 + i32.and + call $~lib/typedarray/Uint8ClampedArray#__set + local.get $3 + local.get $0 + i32.const 6912 + 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 - i32.const -1 - local.set $3 end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $3 - ) - (func $~lib/typedarray/Int16Array#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 - call $~stack_check - 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 - i32.const -1 - local.set $3 - block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.0 + local.get $2 + call $~lib/typedarray/Uint8Array#reverse + drop + i32.const 0 + local.set $0 + loop $for-loop|1 local.get $0 - i32.load offset=8 - i32.const 1 - i32.shr_u - local.tee $4 - i32.eqz - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.0 - local.get $2 - local.get $4 - i32.add - local.get $4 - i32.const 1 - i32.sub - local.get $2 - local.get $2 - local.get $4 - i32.ge_s - select - local.get $2 - i32.const 0 + local.get $1 i32.lt_s - select - local.set $2 - local.get $0 - i32.load offset=4 - local.set $0 - loop $while-continue|0 + if local.get $2 - i32.const 0 - i32.ge_s + local.get $0 + call $~lib/typedarray/Uint8ClampedArray#__get + i32.const 6912 + local.get $1 + i32.const 1 + i32.sub + local.get $0 + i32.sub + call $~lib/array/Array#__get + i32.const 255 + i32.and + i32.ne if - local.get $0 - local.get $2 - local.tee $3 - i32.const 1 - i32.shl - i32.add - i32.load16_u - local.get $1 - i32.const 65535 - i32.and - i32.eq - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.0 - local.get $3 - i32.const 1 - i32.sub - local.set $2 - br $while-continue|0 + i32.const 0 + i32.const 1568 + i32.const 547 + i32.const 5 + call $~lib/builtins/abort + unreachable end + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|1 end - i32.const -1 - local.set $3 end global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer local.get $3 - ) - (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 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check + i32.const 8 + call $~lib/typedarray/Uint8ClampedArray#subarray + local.set $0 global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=12 + local.get $0 + call $~lib/typedarray/Uint8Array#reverse + local.tee $0 + i32.store offset=16 + local.get $0 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 - i32.const 1 - i32.shr_u - local.set $2 + call $~lib/typedarray/Uint8ClampedArray#__get + i32.const 8 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 552 + i32.const 3 + call $~lib/builtins/abort + unreachable end local.get $0 - local.get $1 - local.get $2 - call $~lib/typedarray/Int16Array#lastIndexOf + i32.const 1 + call $~lib/typedarray/Uint8ClampedArray#__get + i32.const 7 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 553 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + 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 554 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + 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 555 + 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/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Int16Array,i16> + (func $std/typedarray/testArrayReverse<~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 @@ -23815,510 +21135,648 @@ i32.const 0 i32.store offset=16 global.get $~lib/memory/__stack_pointer - i32.const 7024 + i32.const 6912 i32.store global.get $~lib/memory/__stack_pointer - i32.const 7024 - i32.store offset=4 - i32.const 7036 + i32.const 6924 i32.load - local.tee $0 - local.set $2 + local.tee $1 + call $~lib/typedarray/Int16Array#constructor + local.tee $2 + i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 call $~lib/typedarray/Int16Array#constructor - local.tee $0 + local.tee $3 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 $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 7024 - i32.store offset=12 + i32.const 6912 local.get $0 - local.get $1 - i32.const 7024 - local.get $1 call $~lib/array/Array#__get i32.const 16 i32.shl i32.const 16 i32.shr_s call $~lib/typedarray/Int16Array#__set - local.get $1 + local.get $3 + local.get $0 + i32.const 6912 + local.get $0 + call $~lib/array/Array#__get + i32.const 16 + i32.shl + i32.const 16 + i32.shr_s + call $~lib/typedarray/Int16Array#__set + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|0 end end + local.get $2 + call $~lib/typedarray/Int16Array#reverse + drop + i32.const 0 + local.set $0 + loop $for-loop|1 + local.get $0 + local.get $1 + i32.lt_s + if + local.get $2 + local.get $0 + call $~lib/typedarray/Int16Array#__get + i32.const 6912 + local.get $1 + i32.const 1 + i32.sub + local.get $0 + i32.sub + call $~lib/array/Array#__get + i32.const 16 + i32.shl + i32.const 16 + i32.shr_s + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 547 + 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 $3 + i32.const 8 + call $~lib/typedarray/Int16Array#subarray + local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=4 + i32.store offset=12 + local.get $0 + call $~lib/typedarray/Int16Array#reverse + local.tee $0 + i32.store offset=16 local.get $0 i32.const 0 - i32.const 0 - call $~lib/typedarray/Int16Array#indexOf + call $~lib/typedarray/Int16Array#__get + i32.const 8 + i32.ne if i32.const 0 i32.const 1568 - i32.const 580 + i32.const 552 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.const 1 + call $~lib/typedarray/Int16Array#__get + i32.const 7 i32.ne if i32.const 0 i32.const 1568 - i32.const 581 + i32.const 553 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 - i32.const 0 - call $~lib/typedarray/Int16Array#indexOf - i32.const -1 + i32.const 2 + call $~lib/typedarray/Int16Array#__get + i32.const 6 i32.ne if i32.const 0 i32.const 1568 - i32.const 582 + i32.const 554 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 - i32.const 0 - call $~lib/typedarray/Int16Array#indexOf - i32.const 3 + call $~lib/typedarray/Int16Array#__get + i32.const 5 i32.ne if i32.const 0 i32.const 1568 - i32.const 583 + i32.const 555 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $0 + i32.const 20 + 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) + 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 + 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 0 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + i32.const 6912 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 6924 + i32.load + local.tee $1 + call $~lib/typedarray/Uint16Array#constructor + local.tee $2 i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + call $~lib/typedarray/Uint16Array#constructor + local.tee $3 + i32.store offset=8 + loop $for-loop|0 + local.get $0 + local.get $1 + i32.lt_s + if + local.get $2 + local.get $0 + i32.const 6912 + local.get $0 + call $~lib/array/Array#__get + i32.const 65535 + i32.and + call $~lib/typedarray/Uint16Array#__set + local.get $3 + local.get $0 + i32.const 6912 + local.get $0 + call $~lib/array/Array#__get + i32.const 65535 + i32.and + call $~lib/typedarray/Uint16Array#__set + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|0 + end + end + local.get $2 + call $~lib/typedarray/Uint16Array#reverse + drop + i32.const 0 + local.set $0 + loop $for-loop|1 + local.get $0 + local.get $1 + i32.lt_s + if + local.get $2 + local.get $0 + call $~lib/typedarray/Uint16Array#__get + i32.const 6912 + local.get $1 + i32.const 1 + i32.sub + local.get $0 + i32.sub + call $~lib/array/Array#__get + i32.const 65535 + i32.and + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 547 + 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 $3 + i32.const 8 + call $~lib/typedarray/Uint16Array#subarray + local.set $0 + global.get $~lib/memory/__stack_pointer local.get $0 - i32.const 3 - i32.const 2 - call $~lib/typedarray/Int16Array#indexOf - i32.const 3 + i32.store offset=12 + local.get $0 + call $~lib/typedarray/Uint16Array#reverse + local.tee $0 + i32.store offset=16 + 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 584 + i32.const 552 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 - i32.const 3 - call $~lib/typedarray/Int16Array#indexOf - i32.const 3 + i32.const 1 + call $~lib/typedarray/Uint16Array#__get + i32.const 7 i32.ne if i32.const 0 i32.const 1568 - i32.const 585 + i32.const 553 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 - i32.const 4 - call $~lib/typedarray/Int16Array#indexOf - i32.const -1 + i32.const 2 + call $~lib/typedarray/Uint16Array#__get + i32.const 6 i32.ne if i32.const 0 i32.const 1568 - i32.const 586 + i32.const 554 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 - i32.const 10 - call $~lib/typedarray/Int16Array#indexOf - i32.const -1 + i32.const 3 + call $~lib/typedarray/Uint16Array#__get + i32.const 5 i32.ne if i32.const 0 i32.const 1568 - i32.const 587 + i32.const 555 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 - i32.const -100 - call $~lib/typedarray/Int16Array#indexOf - i32.const 1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 588 - i32.const 3 - call $~lib/builtins/abort - unreachable - end + i32.const 20 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $std/typedarray/testArrayReverse<~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 + 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 global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - i32.const 1 - global.set $~argumentsLength - local.get $0 i32.const 0 - call $~lib/typedarray/Int16Array#lastIndexOf@varargs - if - i32.const 0 - i32.const 1568 - i32.const 590 - i32.const 3 - call $~lib/builtins/abort - unreachable - end + i32.store offset=16 global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - i32.const 1 - global.set $~argumentsLength - local.get $0 - i32.const 11 - call $~lib/typedarray/Int16Array#lastIndexOf@varargs - i32.const -1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 591 - i32.const 3 - call $~lib/builtins/abort - unreachable - end + i32.const 6912 + i32.store global.get $~lib/memory/__stack_pointer - local.get $0 + i32.const 6924 + i32.load + local.tee $1 + call $~lib/typedarray/Int32Array#constructor + local.tee $2 i32.store offset=4 - i32.const 1 - global.set $~argumentsLength - local.get $0 - i32.const -1 - call $~lib/typedarray/Int16Array#lastIndexOf@varargs - i32.const -1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 592 - i32.const 3 - call $~lib/builtins/abort - unreachable - end global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - i32.const 1 - global.set $~argumentsLength - local.get $0 - i32.const 3 - call $~lib/typedarray/Int16Array#lastIndexOf@varargs - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 593 - i32.const 3 - call $~lib/builtins/abort - unreachable + local.get $1 + call $~lib/typedarray/Int32Array#constructor + local.tee $3 + i32.store offset=8 + loop $for-loop|0 + local.get $0 + local.get $1 + i32.lt_s + if + local.get $2 + local.get $0 + i32.const 6912 + local.get $0 + call $~lib/array/Array#__get + call $~lib/typedarray/Int32Array#__set + local.get $3 + local.get $0 + i32.const 6912 + 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 + local.get $2 + call $~lib/typedarray/Int32Array#reverse + drop + i32.const 0 + local.set $0 + loop $for-loop|1 + local.get $0 + local.get $1 + i32.lt_s + if + local.get $2 + local.get $0 + call $~lib/typedarray/Int32Array#__get + i32.const 6912 + local.get $1 + i32.const 1 + i32.sub + local.get $0 + i32.sub + call $~lib/array/Array#__get + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 547 + 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 - i32.store offset=4 - local.get $0 - i32.const 3 + local.get $3 i32.const 4 - call $~lib/typedarray/Int16Array#lastIndexOf - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 594 - i32.const 3 - call $~lib/builtins/abort - unreachable - end + i32.const 8 + call $~lib/typedarray/Int32Array#subarray + local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=4 - local.get $0 - 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 595 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer + i32.store offset=12 local.get $0 - i32.store offset=4 + call $~lib/typedarray/Int32Array#reverse + local.tee $0 + i32.store offset=16 local.get $0 - i32.const 3 - i32.const 2 - call $~lib/typedarray/Int16Array#lastIndexOf - i32.const -1 + i32.const 0 + call $~lib/typedarray/Int32Array#__get + i32.const 8 i32.ne if i32.const 0 i32.const 1568 - i32.const 596 + i32.const 552 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 - i32.const 100 - call $~lib/typedarray/Int16Array#lastIndexOf - i32.const 1 + call $~lib/typedarray/Int32Array#__get + i32.const 7 i32.ne if i32.const 0 i32.const 1568 - i32.const 597 + i32.const 553 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 - i32.const -10 - call $~lib/typedarray/Int16Array#lastIndexOf - i32.const 1 + i32.const 2 + call $~lib/typedarray/Int32Array#__get + i32.const 6 i32.ne if i32.const 0 i32.const 1568 - i32.const 598 + i32.const 554 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 - i32.const -11 - call $~lib/typedarray/Int16Array#lastIndexOf - i32.const -1 + i32.const 3 + call $~lib/typedarray/Int32Array#__get + i32.const 5 i32.ne if i32.const 0 i32.const 1568 - i32.const 599 + i32.const 555 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 + i32.const 20 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $std/typedarray/testArrayReverse<~lib/typedarray/Uint32Array,u32> + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) global.get $~lib/memory/__stack_pointer - local.get $0 - i32.const 9 - call $~lib/typedarray/Int16Array#subarray - local.tee $0 - i32.store offset=16 + i32.const 20 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check 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 603 - i32.const 3 - call $~lib/builtins/abort - unreachable - end + i64.const 0 + i64.store 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 604 - i32.const 3 - call $~lib/builtins/abort - unreachable - end + i64.const 0 + i64.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 5 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 + i32.store offset=16 global.get $~lib/memory/__stack_pointer - local.get $0 + i32.const 6912 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 6924 + i32.load + local.tee $1 + call $~lib/typedarray/Uint32Array#constructor + local.tee $2 i32.store offset=4 - local.get $0 - i32.const 9 + global.get $~lib/memory/__stack_pointer + local.get $1 + call $~lib/typedarray/Uint32Array#constructor + local.tee $3 + i32.store offset=8 + loop $for-loop|0 + local.get $0 + local.get $1 + i32.lt_s + if + local.get $2 + local.get $0 + i32.const 6912 + local.get $0 + call $~lib/array/Array#__get + call $~lib/typedarray/Uint32Array#__set + local.get $3 + local.get $0 + i32.const 6912 + local.get $0 + call $~lib/array/Array#__get + call $~lib/typedarray/Uint32Array#__set + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|0 + end + end + local.get $2 + call $~lib/typedarray/Uint32Array#reverse + drop i32.const 0 - call $~lib/typedarray/Int16Array#indexOf - i32.const -1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 606 - i32.const 3 - call $~lib/builtins/abort - unreachable + local.set $0 + loop $for-loop|1 + local.get $0 + local.get $1 + i32.lt_s + if + local.get $2 + local.get $0 + call $~lib/typedarray/Uint32Array#__get + i32.const 6912 + local.get $1 + i32.const 1 + i32.sub + local.get $0 + i32.sub + call $~lib/array/Array#__get + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 547 + 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 $3 + i32.const 8 + call $~lib/typedarray/Uint32Array#subarray + local.set $0 + global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=4 + i32.store offset=12 + local.get $0 + call $~lib/typedarray/Uint32Array#reverse + local.tee $0 + i32.store offset=16 local.get $0 - i32.const 10 i32.const 0 - call $~lib/typedarray/Int16Array#indexOf - i32.const -1 + call $~lib/typedarray/Uint32Array#__get + i32.const 8 i32.ne if i32.const 0 i32.const 1568 - i32.const 607 + i32.const 552 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.const 1 + call $~lib/typedarray/Uint32Array#__get + i32.const 7 i32.ne if i32.const 0 i32.const 1568 - i32.const 608 + i32.const 553 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.const 2 + call $~lib/typedarray/Uint32Array#__get + i32.const 6 i32.ne if i32.const 0 i32.const 1568 - i32.const 609 + i32.const 554 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.const 2 - call $~lib/typedarray/Int16Array#indexOf - i32.const -1 i32.ne if i32.const 0 i32.const 1568 - i32.const 610 + i32.const 555 i32.const 3 call $~lib/builtins/abort unreachable @@ -24328,10 +21786,11 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Uint16Array,u16> + (func $std/typedarray/testArrayReverse<~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 @@ -24347,508 +21806,642 @@ i32.const 0 i32.store offset=16 global.get $~lib/memory/__stack_pointer - i32.const 7024 + i32.const 6912 i32.store global.get $~lib/memory/__stack_pointer - i32.const 7024 - i32.store offset=4 - i32.const 7036 + i32.const 6924 i32.load - local.tee $0 - local.set $2 + local.tee $1 + call $~lib/typedarray/Int64Array#constructor + local.tee $2 + i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $0 - call $~lib/typedarray/Uint16Array#constructor - local.tee $0 + local.get $1 + call $~lib/typedarray/Int64Array#constructor + local.tee $3 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 $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 7024 - i32.store offset=12 + i32.const 6912 local.get $0 - local.get $1 - i32.const 7024 - local.get $1 call $~lib/array/Array#__get - i32.const 65535 - i32.and - call $~lib/typedarray/Uint16Array#__set - local.get $1 + i64.extend_i32_s + call $~lib/typedarray/Int64Array#__set + local.get $3 + local.get $0 + i32.const 6912 + 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 $1 + local.set $0 br $for-loop|0 end end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 + local.get $2 + call $~lib/typedarray/Int64Array#reverse + drop i32.const 0 - call $~lib/typedarray/Int16Array#indexOf - if - i32.const 0 - i32.const 1568 - i32.const 580 - i32.const 3 - call $~lib/builtins/abort - unreachable + local.set $0 + loop $for-loop|1 + local.get $0 + local.get $1 + i32.lt_s + if + local.get $2 + local.get $0 + call $~lib/typedarray/Int64Array#__get + i32.const 6912 + local.get $1 + 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 547 + 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 - 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 581 - i32.const 3 - call $~lib/builtins/abort - unreachable - end + local.get $3 + i32.const 8 + call $~lib/typedarray/Int64Array#subarray + local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=4 + i32.store offset=12 + local.get $0 + call $~lib/typedarray/Int64Array#reverse + local.tee $0 + i32.store offset=16 local.get $0 - i32.const -1 i32.const 0 - call $~lib/typedarray/Int16Array#indexOf - i32.const -1 - i32.ne + call $~lib/typedarray/Int64Array#__get + i64.const 8 + i64.ne if i32.const 0 i32.const 1568 - i32.const 582 + i32.const 552 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 - i32.const 0 - call $~lib/typedarray/Int16Array#indexOf - i32.const 3 - i32.ne + i32.const 1 + call $~lib/typedarray/Int64Array#__get + i64.const 7 + i64.ne if i32.const 0 i32.const 1568 - i32.const 583 + i32.const 553 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 i32.const 2 - call $~lib/typedarray/Int16Array#indexOf - i32.const 3 - i32.ne + call $~lib/typedarray/Int64Array#__get + i64.const 6 + i64.ne if i32.const 0 i32.const 1568 - i32.const 584 + i32.const 554 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 - i32.const 3 - call $~lib/typedarray/Int16Array#indexOf i32.const 3 - i32.ne + call $~lib/typedarray/Int64Array#__get + i64.const 5 + i64.ne if i32.const 0 i32.const 1568 - i32.const 585 + i32.const 555 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 - i32.const 4 - call $~lib/typedarray/Int16Array#indexOf - i32.const -1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 586 - i32.const 3 - call $~lib/builtins/abort - unreachable - end + i32.const 20 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $std/typedarray/testArrayReverse<~lib/typedarray/Uint64Array,u64> + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - 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 587 - i32.const 3 - call $~lib/builtins/abort - unreachable - end + i32.const 20 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check global.get $~lib/memory/__stack_pointer - local.get $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 + i32.const 0 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + i32.const 6912 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 6924 + i32.load + local.tee $1 + call $~lib/typedarray/Uint64Array#constructor + local.tee $2 i32.store offset=4 - local.get $0 - 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 588 - i32.const 3 - call $~lib/builtins/abort - unreachable + global.get $~lib/memory/__stack_pointer + local.get $1 + call $~lib/typedarray/Uint64Array#constructor + local.tee $3 + i32.store offset=8 + loop $for-loop|0 + local.get $0 + local.get $1 + i32.lt_s + if + local.get $2 + local.get $0 + i32.const 6912 + local.get $0 + call $~lib/array/Array#__get + i64.extend_i32_s + call $~lib/typedarray/Uint64Array#__set + local.get $3 + local.get $0 + i32.const 6912 + 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 + local.get $2 + call $~lib/typedarray/Uint64Array#reverse + drop + i32.const 0 + local.set $0 + loop $for-loop|1 + local.get $0 + local.get $1 + i32.lt_s + if + local.get $2 + local.get $0 + call $~lib/typedarray/Uint64Array#__get + i32.const 6912 + local.get $1 + 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 547 + 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 $3 + i32.const 8 + call $~lib/typedarray/Uint64Array#subarray + local.set $0 + global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=4 - i32.const 1 - global.set $~argumentsLength + i32.store offset=12 + local.get $0 + call $~lib/typedarray/Uint64Array#reverse + local.tee $0 + i32.store offset=16 local.get $0 i32.const 0 - call $~lib/typedarray/Int16Array#lastIndexOf@varargs + call $~lib/typedarray/Uint64Array#__get + i64.const 8 + i64.ne if i32.const 0 i32.const 1568 - i32.const 590 + i32.const 552 i32.const 3 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=4 i32.const 1 - global.set $~argumentsLength - local.get $0 - i32.const 11 - call $~lib/typedarray/Int16Array#lastIndexOf@varargs - i32.const -1 - i32.ne + call $~lib/typedarray/Uint64Array#__get + i64.const 7 + i64.ne if i32.const 0 i32.const 1568 - i32.const 591 + i32.const 553 i32.const 3 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - i32.const 1 - global.set $~argumentsLength local.get $0 - i32.const -1 - call $~lib/typedarray/Int16Array#lastIndexOf@varargs - i32.const -1 - i32.ne + i32.const 2 + call $~lib/typedarray/Uint64Array#__get + i64.const 6 + i64.ne if i32.const 0 i32.const 1568 - i32.const 592 + i32.const 554 i32.const 3 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - i32.const 1 - global.set $~argumentsLength local.get $0 i32.const 3 - call $~lib/typedarray/Int16Array#lastIndexOf@varargs - i32.const 3 - i32.ne + call $~lib/typedarray/Uint64Array#__get + i64.const 5 + i64.ne if i32.const 0 i32.const 1568 - i32.const 593 + i32.const 555 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $0 + i32.const 20 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $std/typedarray/testArrayReverse<~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 + 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 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + i32.const 6912 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 6924 + i32.load + local.tee $1 + call $~lib/typedarray/Float32Array#constructor + local.tee $2 i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + call $~lib/typedarray/Float32Array#constructor + local.tee $3 + i32.store offset=8 + loop $for-loop|0 + local.get $0 + local.get $1 + i32.lt_s + if + local.get $2 + local.get $0 + i32.const 6912 + local.get $0 + call $~lib/array/Array#__get + f32.convert_i32_s + call $~lib/typedarray/Float32Array#__set + local.get $3 + local.get $0 + i32.const 6912 + 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 + local.get $2 + call $~lib/typedarray/Float32Array#reverse + drop + i32.const 0 + local.set $0 + loop $for-loop|1 + local.get $0 + local.get $1 + i32.lt_s + if + local.get $2 + local.get $0 + call $~lib/typedarray/Float32Array#__get + i32.const 6912 + local.get $1 + 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 547 + 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 $3 + i32.const 8 + call $~lib/typedarray/Float32Array#subarray + local.set $0 + global.get $~lib/memory/__stack_pointer local.get $0 - i32.const 3 - i32.const 4 - call $~lib/typedarray/Int16Array#lastIndexOf - i32.const 3 - i32.ne + i32.store offset=12 + local.get $0 + call $~lib/typedarray/Float32Array#reverse + local.tee $0 + i32.store offset=16 + 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 594 + i32.const 552 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 - i32.const 3 - call $~lib/typedarray/Int16Array#lastIndexOf - i32.const 3 - i32.ne + i32.const 1 + call $~lib/typedarray/Float32Array#__get + f32.const 7 + f32.ne if i32.const 0 i32.const 1568 - i32.const 595 + i32.const 553 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 i32.const 2 - call $~lib/typedarray/Int16Array#lastIndexOf - i32.const -1 - i32.ne + call $~lib/typedarray/Float32Array#__get + f32.const 6 + f32.ne if i32.const 0 i32.const 1568 - i32.const 596 + i32.const 554 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 - i32.const 100 - call $~lib/typedarray/Int16Array#lastIndexOf - i32.const 1 - i32.ne + i32.const 3 + call $~lib/typedarray/Float32Array#__get + f32.const 5 + f32.ne if i32.const 0 i32.const 1568 - i32.const 597 + i32.const 555 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 - i32.const -10 - call $~lib/typedarray/Int16Array#lastIndexOf - i32.const 1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 598 - i32.const 3 - call $~lib/builtins/abort - unreachable - end + i32.const 20 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $std/typedarray/testArrayReverse<~lib/typedarray/Float64Array,f64> + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - 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 599 - i32.const 3 - call $~lib/builtins/abort - unreachable - end + i32.const 20 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 + i64.const 0 + i64.store global.get $~lib/memory/__stack_pointer - local.get $0 - i32.const 9 - call $~lib/typedarray/Uint16Array#subarray - local.tee $0 - i32.store offset=16 + i64.const 0 + i64.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 3 i32.const 0 - call $~lib/typedarray/Int16Array#indexOf - i32.const -1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 603 - i32.const 3 - call $~lib/builtins/abort - unreachable - end + i32.store offset=16 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 604 - i32.const 3 - call $~lib/builtins/abort - unreachable - end + i32.const 6912 + i32.store global.get $~lib/memory/__stack_pointer - local.get $0 + i32.const 6924 + i32.load + local.tee $1 + call $~lib/typedarray/Float64Array#constructor + local.tee $2 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 605 - 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 + local.get $1 + call $~lib/typedarray/Float64Array#constructor + local.tee $3 + i32.store offset=8 + loop $for-loop|0 + local.get $0 + local.get $1 + i32.lt_s + if + local.get $2 + local.get $0 + i32.const 6912 + local.get $0 + call $~lib/array/Array#__get + f64.convert_i32_s + call $~lib/typedarray/Float64Array#__set + local.get $3 + local.get $0 + i32.const 6912 + 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 + local.get $2 + call $~lib/typedarray/Float64Array#reverse + drop i32.const 0 - call $~lib/typedarray/Int16Array#indexOf - i32.const -1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 606 - i32.const 3 - call $~lib/builtins/abort - unreachable + local.set $0 + loop $for-loop|1 + local.get $0 + local.get $1 + i32.lt_s + if + local.get $2 + local.get $0 + call $~lib/typedarray/Float64Array#__get + i32.const 6912 + local.get $1 + 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 547 + 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 $3 + i32.const 4 + i32.const 8 + call $~lib/typedarray/Float64Array#subarray + local.set $0 + global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=4 + i32.store offset=12 + local.get $0 + call $~lib/typedarray/Float64Array#reverse + local.tee $0 + i32.store offset=16 local.get $0 - i32.const 10 i32.const 0 - call $~lib/typedarray/Int16Array#indexOf - i32.const -1 - i32.ne + call $~lib/typedarray/Float64Array#__get + f64.const 8 + f64.ne if i32.const 0 i32.const 1568 - i32.const 607 + i32.const 552 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 + i32.const 1 + call $~lib/typedarray/Float64Array#__get + f64.const 7 + f64.ne if i32.const 0 i32.const 1568 - i32.const 608 + i32.const 553 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 + i32.const 2 + call $~lib/typedarray/Float64Array#__get + f64.const 6 + f64.ne if i32.const 0 i32.const 1568 - i32.const 609 + i32.const 554 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 + i32.const 3 + call $~lib/typedarray/Float64Array#__get + f64.const 5 + f64.ne if i32.const 0 i32.const 1568 - i32.const 610 + i32.const 555 i32.const 3 call $~lib/builtins/abort unreachable @@ -24858,11 +22451,11 @@ 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) - (local $4 i32) + (func $std/typedarray/testArrayJoinAndToString<~lib/typedarray/Int8Array,i8> + (local $0 i32) + (local $1 i32) global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check @@ -24870,153 +22463,105 @@ 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 5 + call $~lib/typedarray/Int8Array#constructor + local.tee $0 i32.store + local.get $0 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Int8Array#__set + local.get $0 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Int8Array#__set + local.get $0 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Int8Array#__set + local.get $0 + i32.const 3 + i32.const 4 + call $~lib/typedarray/Int8Array#__set + local.get $0 + i32.const 4 + i32.const 5 + call $~lib/typedarray/Int8Array#__set global.get $~lib/memory/__stack_pointer + i32.const 7424 + i32.store offset=12 + local.get $0 + i32.load offset=4 local.get $0 + i32.load offset=8 + call $~lib/util/string/joinIntegerArray + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 i32.store offset=4 - i32.const -1 - local.set $3 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.0 - local.get $2 - local.get $0 - i32.load offset=8 - i32.const 2 - i32.shr_u - local.tee $4 - i32.ge_s - i32.const 1 - local.get $4 - select - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.0 - local.get $2 + global.get $~lib/memory/__stack_pointer + i32.const 7456 + i32.store offset=8 + local.get $1 + i32.const 7456 + call $~lib/string/String.__eq + i32.eqz + if i32.const 0 - i32.lt_s - if - local.get $2 - local.get $4 - i32.add - local.tee $2 - i32.const 0 - local.get $2 - i32.const 0 - i32.gt_s - select - local.set $2 - end - 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 $0 - local.get $2 - local.tee $3 - i32.const 2 - i32.shl - i32.add - i32.load - i32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.0 - local.get $3 - i32.const 1 - i32.add - local.set $2 - br $while-continue|0 - end - end - i32.const -1 - local.set $3 + i32.const 1568 + i32.const 652 + 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 $3 - ) - (func $~lib/typedarray/Int32Array#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.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 global.get $~lib/memory/__stack_pointer - local.get $0 + i32.const 7424 i32.store + local.get $0 + i32.load offset=4 + local.get $0 + i32.load offset=8 + call $~lib/util/string/joinIntegerArray + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 - i32.const -1 - local.set $3 - block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.0 - local.get $0 - i32.load offset=8 - i32.const 2 - i32.shr_u - local.tee $4 - i32.eqz - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.0 - local.get $2 - local.get $4 - i32.add - local.get $4 - i32.const 1 - i32.sub - local.get $2 - local.get $2 - local.get $4 - i32.ge_s - select - local.get $2 + global.get $~lib/memory/__stack_pointer + i32.const 7456 + i32.store offset=8 + local.get $0 + i32.const 7456 + call $~lib/string/String.__eq + i32.eqz + if i32.const 0 - i32.lt_s - select - local.set $2 - 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 $1 - local.get $0 - local.get $2 - local.tee $3 - i32.const 2 - i32.shl - i32.add - i32.load - i32.eq - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.0 - local.get $3 - i32.const 1 - i32.sub - local.set $2 - br $while-continue|0 - end - end - i32.const -1 - local.set $3 + i32.const 1568 + i32.const 653 + i32.const 5 + call $~lib/builtins/abort + unreachable end global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - local.get $3 ) - (func $~lib/typedarray/Int32Array#lastIndexOf@varargs (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) + (func $~lib/typedarray/Uint8Array#toString (param $0 i32) (result i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -25025,40 +22570,24 @@ 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 - i32.const 2 - i32.shr_u - local.set $2 - end + global.get $~lib/memory/__stack_pointer + i32.const 7424 + i32.store local.get $0 - local.get $1 - local.get $2 - call $~lib/typedarray/Int32Array#lastIndexOf + i32.load offset=4 + local.get $0 + i32.load offset=8 + call $~lib/util/string/joinIntegerArray global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer ) - (func $std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Int32Array,i32> + (func $std/typedarray/testArrayJoinAndToString<~lib/typedarray/Uint8Array,u8> (local $0 i32) (local $1 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 @@ -25069,524 +22598,908 @@ i64.const 0 i64.store offset=8 global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - i32.const 7024 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 7024 - i32.store offset=4 - i32.const 7036 - i32.load + i32.const 5 + call $~lib/typedarray/Uint8Array#constructor local.tee $0 - local.set $2 - global.get $~lib/memory/__stack_pointer + i32.store local.get $0 - call $~lib/typedarray/Int32Array#constructor - local.tee $0 - i32.store offset=8 - loop $for-loop|0 - local.get $1 - local.get $2 - i32.lt_s - if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 7024 - i32.store offset=12 - local.get $0 - local.get $1 - i32.const 7024 - local.get $1 - call $~lib/array/Array#__get - call $~lib/typedarray/Int32Array#__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 0 + i32.const 1 + call $~lib/typedarray/Uint8Array#__set local.get $0 - i32.store offset=4 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Uint8Array#__set local.get $0 - i32.const 0 - i32.const 0 - call $~lib/typedarray/Int32Array#indexOf - if - i32.const 0 - i32.const 1568 - i32.const 580 - i32.const 3 - call $~lib/builtins/abort - unreachable - end + i32.const 2 + i32.const 3 + call $~lib/typedarray/Uint8Array#__set + local.get $0 + i32.const 3 + i32.const 4 + call $~lib/typedarray/Uint8Array#__set + local.get $0 + i32.const 4 + i32.const 5 + call $~lib/typedarray/Uint8Array#__set global.get $~lib/memory/__stack_pointer + i32.const 7424 + i32.store offset=12 local.get $0 - i32.store offset=4 + i32.load offset=4 local.get $0 - i32.const 11 - i32.const 0 - call $~lib/typedarray/Int32Array#indexOf - i32.const -1 - i32.ne + i32.load offset=8 + call $~lib/util/string/joinIntegerArray + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 7456 + i32.store offset=8 + local.get $1 + i32.const 7456 + call $~lib/string/String.__eq + i32.eqz if i32.const 0 i32.const 1568 - i32.const 581 - i32.const 3 + i32.const 652 + i32.const 5 call $~lib/builtins/abort unreachable end + 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 7456 + i32.store offset=8 local.get $0 - i32.const -1 - i32.const 0 - call $~lib/typedarray/Int32Array#indexOf - i32.const -1 - i32.ne + i32.const 7456 + call $~lib/string/String.__eq + i32.eqz if i32.const 0 i32.const 1568 - i32.const 582 - i32.const 3 + i32.const 653 + i32.const 5 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $std/typedarray/testArrayJoinAndToString<~lib/typedarray/Uint8ClampedArray,u8> + (local $0 i32) + (local $1 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 + global.get $~lib/memory/__stack_pointer + i32.const 5 + call $~lib/typedarray/Uint8ClampedArray#constructor + local.tee $0 + i32.store local.get $0 - i32.store offset=4 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Uint8ClampedArray#__set + local.get $0 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Uint8ClampedArray#__set local.get $0 + i32.const 2 i32.const 3 - i32.const 0 - call $~lib/typedarray/Int32Array#indexOf + call $~lib/typedarray/Uint8ClampedArray#__set + local.get $0 i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 583 - i32.const 3 - call $~lib/builtins/abort - unreachable - end + i32.const 4 + call $~lib/typedarray/Uint8ClampedArray#__set + local.get $0 + i32.const 4 + i32.const 5 + call $~lib/typedarray/Uint8ClampedArray#__set global.get $~lib/memory/__stack_pointer + i32.const 7424 + i32.store offset=12 local.get $0 - i32.store offset=4 + i32.load offset=4 local.get $0 - i32.const 3 - i32.const 2 - call $~lib/typedarray/Int32Array#indexOf - i32.const 3 - i32.ne + i32.load offset=8 + call $~lib/util/string/joinIntegerArray + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 7456 + i32.store offset=8 + local.get $1 + i32.const 7456 + call $~lib/string/String.__eq + i32.eqz if i32.const 0 i32.const 1568 - i32.const 584 - i32.const 3 + i32.const 652 + i32.const 5 call $~lib/builtins/abort unreachable end + 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 7456 + i32.store offset=8 local.get $0 - i32.const 3 - i32.const 3 - call $~lib/typedarray/Int32Array#indexOf - i32.const 3 - i32.ne + i32.const 7456 + call $~lib/string/String.__eq + i32.eqz if i32.const 0 i32.const 1568 - i32.const 585 - i32.const 3 + i32.const 653 + i32.const 5 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $std/typedarray/testArrayJoinAndToString<~lib/typedarray/Int16Array,i16> + (local $0 i32) + (local $1 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 + global.get $~lib/memory/__stack_pointer + i32.const 5 + call $~lib/typedarray/Int16Array#constructor + local.tee $0 + i32.store local.get $0 - i32.store offset=4 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Int16Array#__set + local.get $0 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Int16Array#__set + local.get $0 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Int16Array#__set local.get $0 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 586 - i32.const 3 - call $~lib/builtins/abort - unreachable - end + call $~lib/typedarray/Int16Array#__set + local.get $0 + i32.const 4 + i32.const 5 + call $~lib/typedarray/Int16Array#__set global.get $~lib/memory/__stack_pointer + i32.const 7424 + i32.store offset=12 local.get $0 + call $~lib/typedarray/Int16Array#join + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 i32.store offset=4 - local.get $0 - i32.const 1 - i32.const 10 - call $~lib/typedarray/Int32Array#indexOf - i32.const -1 - i32.ne + global.get $~lib/memory/__stack_pointer + i32.const 7456 + i32.store offset=8 + local.get $1 + i32.const 7456 + call $~lib/string/String.__eq + i32.eqz if i32.const 0 i32.const 1568 - i32.const 587 - i32.const 3 + i32.const 652 + i32.const 5 call $~lib/builtins/abort unreachable end 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 + i32.const 7424 + i32.store + local.get $0 + call $~lib/typedarray/Int16Array#join + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 7456 + i32.store offset=8 local.get $0 - i32.const 1 - i32.const -100 - call $~lib/typedarray/Int32Array#indexOf - i32.const 1 - i32.ne + i32.const 7456 + call $~lib/string/String.__eq + i32.eqz if i32.const 0 i32.const 1568 - i32.const 588 - i32.const 3 + i32.const 653 + i32.const 5 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $std/typedarray/testArrayJoinAndToString<~lib/typedarray/Uint16Array,u16> + (local $0 i32) + (local $1 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 + global.get $~lib/memory/__stack_pointer + i32.const 5 + call $~lib/typedarray/Uint16Array#constructor + local.tee $0 + i32.store local.get $0 - i32.store offset=4 + i32.const 0 i32.const 1 - global.set $~argumentsLength + call $~lib/typedarray/Uint16Array#__set local.get $0 - i32.const 0 - call $~lib/typedarray/Int32Array#lastIndexOf@varargs - if - i32.const 0 - i32.const 1568 - i32.const 590 - i32.const 3 - call $~lib/builtins/abort - unreachable - end + i32.const 1 + i32.const 2 + call $~lib/typedarray/Uint16Array#__set + local.get $0 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Uint16Array#__set + local.get $0 + i32.const 3 + i32.const 4 + call $~lib/typedarray/Uint16Array#__set + local.get $0 + i32.const 4 + i32.const 5 + call $~lib/typedarray/Uint16Array#__set global.get $~lib/memory/__stack_pointer + i32.const 7424 + i32.store offset=12 local.get $0 + call $~lib/typedarray/Uint16Array#join + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 i32.store offset=4 - i32.const 1 - global.set $~argumentsLength - local.get $0 - i32.const 11 - call $~lib/typedarray/Int32Array#lastIndexOf@varargs - i32.const -1 - i32.ne + global.get $~lib/memory/__stack_pointer + i32.const 7456 + i32.store offset=8 + local.get $1 + i32.const 7456 + call $~lib/string/String.__eq + i32.eqz if i32.const 0 i32.const 1568 - i32.const 591 - i32.const 3 + i32.const 652 + i32.const 5 call $~lib/builtins/abort unreachable end 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 + i32.const 7424 + i32.store + local.get $0 + call $~lib/typedarray/Uint16Array#join + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 - i32.const 1 - global.set $~argumentsLength + global.get $~lib/memory/__stack_pointer + i32.const 7456 + i32.store offset=8 local.get $0 - i32.const -1 - call $~lib/typedarray/Int32Array#lastIndexOf@varargs - i32.const -1 - i32.ne + i32.const 7456 + call $~lib/string/String.__eq + i32.eqz if i32.const 0 i32.const 1568 - i32.const 592 - i32.const 3 + i32.const 653 + i32.const 5 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $std/typedarray/testArrayJoinAndToString<~lib/typedarray/Int32Array,i32> + (local $0 i32) + (local $1 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 + global.get $~lib/memory/__stack_pointer + i32.const 5 + call $~lib/typedarray/Int32Array#constructor + local.tee $0 + i32.store local.get $0 - i32.store offset=4 + i32.const 0 i32.const 1 - global.set $~argumentsLength + call $~lib/typedarray/Int32Array#__set + local.get $0 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Int32Array#__set local.get $0 + i32.const 2 i32.const 3 - call $~lib/typedarray/Int32Array#lastIndexOf@varargs + call $~lib/typedarray/Int32Array#__set + local.get $0 i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 593 - i32.const 3 - call $~lib/builtins/abort - unreachable - end + i32.const 4 + call $~lib/typedarray/Int32Array#__set + local.get $0 + i32.const 4 + i32.const 5 + call $~lib/typedarray/Int32Array#__set global.get $~lib/memory/__stack_pointer + i32.const 7424 + i32.store offset=12 local.get $0 + call $~lib/typedarray/Int32Array#join + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 i32.store offset=4 - local.get $0 - i32.const 3 - i32.const 4 - call $~lib/typedarray/Int32Array#lastIndexOf - i32.const 3 - i32.ne + global.get $~lib/memory/__stack_pointer + i32.const 7456 + i32.store offset=8 + local.get $1 + i32.const 7456 + call $~lib/string/String.__eq + i32.eqz if i32.const 0 i32.const 1568 - i32.const 594 - i32.const 3 + i32.const 652 + i32.const 5 call $~lib/builtins/abort unreachable end 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 + i32.const 7424 + i32.store + local.get $0 + call $~lib/typedarray/Int32Array#join + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 7456 + i32.store offset=8 local.get $0 - i32.const 3 - i32.const 3 - call $~lib/typedarray/Int32Array#lastIndexOf - i32.const 3 - i32.ne + i32.const 7456 + call $~lib/string/String.__eq + i32.eqz if i32.const 0 i32.const 1568 - i32.const 595 - i32.const 3 + i32.const 653 + 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 - i32.const 2 - call $~lib/typedarray/Int32Array#lastIndexOf - i32.const -1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 596 - i32.const 3 - call $~lib/builtins/abort - unreachable - end + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $std/typedarray/testArrayJoinAndToString<~lib/typedarray/Uint32Array,u32> + (local $0 i32) + (local $1 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 + global.get $~lib/memory/__stack_pointer + i32.const 5 + call $~lib/typedarray/Uint32Array#constructor + local.tee $0 + i32.store local.get $0 - i32.store offset=4 - local.get $0 + i32.const 0 i32.const 1 - i32.const 100 - call $~lib/typedarray/Int32Array#lastIndexOf + call $~lib/typedarray/Uint32Array#__set + local.get $0 i32.const 1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 597 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer + i32.const 2 + call $~lib/typedarray/Uint32Array#__set local.get $0 - i32.store offset=4 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Uint32Array#__set local.get $0 - 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 598 - i32.const 3 - call $~lib/builtins/abort - unreachable - end + i32.const 3 + i32.const 4 + call $~lib/typedarray/Uint32Array#__set + local.get $0 + i32.const 4 + i32.const 5 + call $~lib/typedarray/Uint32Array#__set global.get $~lib/memory/__stack_pointer + i32.const 7424 + i32.store offset=12 local.get $0 + call $~lib/typedarray/Uint32Array#join + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 i32.store offset=4 - local.get $0 - i32.const 1 - i32.const -11 - call $~lib/typedarray/Int32Array#lastIndexOf - i32.const -1 - i32.ne + global.get $~lib/memory/__stack_pointer + i32.const 7456 + i32.store offset=8 + local.get $1 + i32.const 7456 + call $~lib/string/String.__eq + i32.eqz if i32.const 0 i32.const 1568 - i32.const 599 - i32.const 3 + i32.const 652 + i32.const 5 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 + 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 + i32.const 7424 + i32.store local.get $0 + call $~lib/typedarray/Uint32Array#join + local.set $0 + global.get $~lib/memory/__stack_pointer i32.const 4 - i32.const 9 - call $~lib/typedarray/Int32Array#subarray - local.tee $0 - i32.store offset=16 + 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 7456 + i32.store offset=8 local.get $0 - i32.const 3 - i32.const 0 - call $~lib/typedarray/Int32Array#indexOf - i32.const -1 - i32.ne + i32.const 7456 + call $~lib/string/String.__eq + i32.eqz if i32.const 0 i32.const 1568 - i32.const 603 - i32.const 3 + i32.const 653 + i32.const 5 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $std/typedarray/testArrayJoinAndToString<~lib/typedarray/Int64Array,i64> + (local $0 i32) + (local $1 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 + global.get $~lib/memory/__stack_pointer + i32.const 5 + call $~lib/typedarray/Int64Array#constructor + local.tee $0 + i32.store local.get $0 - i32.store offset=4 + i32.const 0 + i64.const 1 + call $~lib/typedarray/Int64Array#__set + local.get $0 + i32.const 1 + i64.const 2 + call $~lib/typedarray/Int64Array#__set + local.get $0 + i32.const 2 + i64.const 3 + call $~lib/typedarray/Int64Array#__set + local.get $0 + i32.const 3 + i64.const 4 + call $~lib/typedarray/Int64Array#__set local.get $0 i32.const 4 - i32.const 0 - call $~lib/typedarray/Int32Array#indexOf - if - i32.const 0 - i32.const 1568 - i32.const 604 - i32.const 3 - call $~lib/builtins/abort - unreachable - end + i64.const 5 + call $~lib/typedarray/Int64Array#__set global.get $~lib/memory/__stack_pointer + i32.const 7424 + i32.store offset=12 local.get $0 + call $~lib/typedarray/Int64Array#join + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 i32.store offset=4 - local.get $0 - i32.const 5 - i32.const 0 - call $~lib/typedarray/Int32Array#indexOf - i32.const 1 - i32.ne + global.get $~lib/memory/__stack_pointer + i32.const 7456 + i32.store offset=8 + local.get $1 + i32.const 7456 + call $~lib/string/String.__eq + i32.eqz if i32.const 0 i32.const 1568 - i32.const 605 - i32.const 3 + i32.const 652 + i32.const 5 call $~lib/builtins/abort unreachable end 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 + i32.const 7424 + i32.store + local.get $0 + call $~lib/typedarray/Int64Array#join + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 7456 + i32.store offset=8 local.get $0 - i32.const 9 - i32.const 0 - call $~lib/typedarray/Int32Array#indexOf - i32.const -1 - i32.ne + i32.const 7456 + call $~lib/string/String.__eq + i32.eqz if i32.const 0 i32.const 1568 - i32.const 606 - i32.const 3 + i32.const 653 + i32.const 5 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $std/typedarray/testArrayJoinAndToString<~lib/typedarray/Uint64Array,u64> + (local $0 i32) + (local $1 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 + global.get $~lib/memory/__stack_pointer + i32.const 5 + call $~lib/typedarray/Uint64Array#constructor + local.tee $0 + i32.store 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 + i64.const 1 + call $~lib/typedarray/Uint64Array#__set + local.get $0 + i32.const 1 + i64.const 2 + call $~lib/typedarray/Uint64Array#__set + local.get $0 + i32.const 2 + i64.const 3 + call $~lib/typedarray/Uint64Array#__set + local.get $0 + i32.const 3 + i64.const 4 + call $~lib/typedarray/Uint64Array#__set + local.get $0 + i32.const 4 + i64.const 5 + call $~lib/typedarray/Uint64Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 7424 + i32.store offset=12 + 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 7456 + i32.store offset=8 + local.get $1 + i32.const 7456 + call $~lib/string/String.__eq + i32.eqz if i32.const 0 i32.const 1568 - i32.const 607 - i32.const 3 + i32.const 652 + i32.const 5 call $~lib/builtins/abort unreachable end 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 + i32.const 7424 + i32.store + local.get $0 + call $~lib/typedarray/Uint64Array#join + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 7456 + i32.store offset=8 local.get $0 - i32.const 11 - i32.const 0 - call $~lib/typedarray/Int32Array#indexOf - i32.const -1 - i32.ne + i32.const 7456 + call $~lib/string/String.__eq + i32.eqz if i32.const 0 i32.const 1568 - i32.const 608 - i32.const 3 + i32.const 653 + i32.const 5 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $std/typedarray/testArrayJoinAndToString<~lib/typedarray/Float32Array,f32> + (local $0 i32) + (local $1 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 + global.get $~lib/memory/__stack_pointer + i32.const 5 + call $~lib/typedarray/Float32Array#constructor + local.tee $0 + i32.store local.get $0 - i32.store offset=4 + i32.const 0 + f32.const 1 + call $~lib/typedarray/Float32Array#__set local.get $0 - i32.const 5 - i32.const 1 - call $~lib/typedarray/Int32Array#indexOf i32.const 1 - i32.ne + f32.const 2 + call $~lib/typedarray/Float32Array#__set + local.get $0 + i32.const 2 + f32.const 3 + call $~lib/typedarray/Float32Array#__set + local.get $0 + i32.const 3 + f32.const 4 + call $~lib/typedarray/Float32Array#__set + local.get $0 + i32.const 4 + f32.const 5 + call $~lib/typedarray/Float32Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 7424 + i32.store offset=12 + 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 8640 + i32.store offset=8 + local.get $1 + i32.const 8640 + call $~lib/string/String.__eq + i32.eqz if i32.const 0 i32.const 1568 - i32.const 609 - i32.const 3 + i32.const 649 + i32.const 5 call $~lib/builtins/abort unreachable end 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 + i32.const 7424 + i32.store + local.get $0 + call $~lib/typedarray/Float32Array#join + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 8640 + i32.store offset=8 local.get $0 - i32.const 5 - i32.const 2 - call $~lib/typedarray/Int32Array#indexOf - i32.const -1 - i32.ne + i32.const 8640 + call $~lib/string/String.__eq + i32.eqz if i32.const 0 i32.const 1568 - i32.const 610 - i32.const 3 + i32.const 650 + i32.const 5 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 20 + i32.const 16 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) - (local $4 i32) + (func $std/typedarray/testArrayJoinAndToString<~lib/typedarray/Float64Array,f64> + (local $0 i32) + (local $1 i32) global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check @@ -25594,79 +23507,107 @@ 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 5 + call $~lib/typedarray/Float64Array#constructor + local.tee $0 i32.store + local.get $0 + i32.const 0 + f64.const 1 + call $~lib/typedarray/Float64Array#__set + local.get $0 + i32.const 1 + f64.const 2 + call $~lib/typedarray/Float64Array#__set + local.get $0 + i32.const 2 + f64.const 3 + call $~lib/typedarray/Float64Array#__set + local.get $0 + i32.const 3 + f64.const 4 + call $~lib/typedarray/Float64Array#__set + local.get $0 + i32.const 4 + f64.const 5 + call $~lib/typedarray/Float64Array#__set global.get $~lib/memory/__stack_pointer + i32.const 7424 + i32.store offset=12 local.get $0 + call $~lib/typedarray/Float64Array#join + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 i32.store offset=4 - i32.const -1 - local.set $3 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.0 - local.get $2 - local.get $0 - i32.load offset=8 - i32.const 2 - i32.shr_u - local.tee $4 - i32.ge_s - i32.const 1 - local.get $4 - select - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.0 - local.get $2 + global.get $~lib/memory/__stack_pointer + i32.const 8640 + i32.store offset=8 + local.get $1 + i32.const 8640 + call $~lib/string/String.__eq + i32.eqz + if i32.const 0 - i32.lt_s - if - local.get $2 - local.get $4 - i32.add - local.tee $2 - i32.const 0 - local.get $2 - i32.const 0 - i32.gt_s - select - local.set $2 - end - 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 $0 - local.get $2 - local.tee $3 - i32.const 2 - i32.shl - i32.add - i32.load - i32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.0 - local.get $3 - i32.const 1 - i32.add - local.set $2 - br $while-continue|0 - end - end - i32.const -1 - local.set $3 + i32.const 1568 + i32.const 649 + i32.const 5 + call $~lib/builtins/abort + unreachable end 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 + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 7424 + i32.store + local.get $0 + call $~lib/typedarray/Float64Array#join + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 8640 + i32.store offset=8 + local.get $0 + i32.const 8640 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 650 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - local.get $3 ) - (func $~lib/typedarray/Uint32Array#lastIndexOf (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArrayWrap<~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 8 + i32.const 20 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check @@ -25674,73 +23615,69 @@ 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 0 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + i32.const 8768 i32.store global.get $~lib/memory/__stack_pointer - local.get $0 + i32.const 8780 + i32.load + local.tee $3 + call $~lib/typedarray/Int8Array#constructor + local.tee $1 i32.store offset=4 - i32.const -1 - local.set $3 - block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.0 + loop $for-loop|0 local.get $0 - i32.load offset=8 - i32.const 2 - i32.shr_u - local.tee $4 - i32.eqz - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.0 - local.get $2 - local.get $4 - i32.add - local.get $4 - i32.const 1 - i32.sub - local.get $2 - local.get $2 - local.get $4 - i32.ge_s - select - local.get $2 - i32.const 0 + local.get $3 i32.lt_s - select - local.set $2 - 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 $1 - local.get $0 - local.get $2 - local.tee $3 - i32.const 2 - i32.shl - i32.add - i32.load - i32.eq - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.0 - local.get $3 - i32.const 1 - i32.sub - local.set $2 - br $while-continue|0 - end + if + local.get $1 + local.get $0 + i32.const 8768 + local.get $0 + call $~lib/array/Array#__get + i32.const 24 + i32.shl + i32.const 24 + i32.shr_s + call $~lib/typedarray/Int8Array#__set + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|0 end - i32.const -1 - local.set $3 end global.get $~lib/memory/__stack_pointer - i32.const 8 + local.get $1 + i32.load + local.tee $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + local.get $1 + i32.load offset=4 + local.get $1 + i32.load + i32.sub + local.get $1 + i32.load offset=8 + local.get $1 + i32.load offset=4 + local.get $1 + i32.load + i32.sub i32.add - global.set $~lib/memory/__stack_pointer - local.get $3 - ) - (func $~lib/typedarray/Uint32Array#lastIndexOf@varargs (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) + call $~lib/arraybuffer/ArrayBuffer#slice + local.tee $0 + i32.store offset=12 + i32.const 1 + global.set $~argumentsLength + global.get $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -25749,38 +23686,74 @@ 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 - i32.const 2 - i32.shr_u - local.set $2 - end local.get $0 - local.get $1 + i32.const 20 + i32.sub + i32.load offset=16 + local.set $5 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 3 + call $~lib/rt/itcms/__new + local.tee $2 + i32.store local.get $2 - call $~lib/typedarray/Uint32Array#lastIndexOf + local.get $0 + i32.store + local.get $2 + local.get $0 + call $~lib/rt/itcms/__link + local.get $2 + local.get $5 + i32.store offset=8 + local.get $2 + local.get $0 + 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=16 + i32.const 0 + local.set $0 + loop $for-loop|1 + local.get $0 + local.get $3 + i32.lt_s + if + local.get $1 + local.get $0 + call $~lib/typedarray/Int8Array#__get + local.get $2 + local.get $0 + call $~lib/typedarray/Int8Array#__get + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 707 + 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 + i32.const 20 + i32.add + global.set $~lib/memory/__stack_pointer ) - (func $std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Uint32Array,u32> + (func $std/typedarray/testArrayWrap<~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 @@ -25796,520 +23769,579 @@ i32.const 0 i32.store offset=16 global.get $~lib/memory/__stack_pointer - i32.const 7024 + i32.const 8768 i32.store global.get $~lib/memory/__stack_pointer - i32.const 7024 - i32.store offset=4 - i32.const 7036 + i32.const 8780 i32.load - local.tee $0 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $0 - call $~lib/typedarray/Uint32Array#constructor - local.tee $0 - i32.store offset=8 + local.tee $2 + call $~lib/typedarray/Uint8Array#constructor + local.tee $1 + i32.store offset=4 loop $for-loop|0 - local.get $1 + local.get $0 local.get $2 i32.lt_s if - global.get $~lib/memory/__stack_pointer + local.get $1 local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 7024 - i32.store offset=12 + i32.const 8768 local.get $0 - local.get $1 - i32.const 7024 - local.get $1 call $~lib/array/Array#__get - call $~lib/typedarray/Uint32Array#__set - local.get $1 + i32.const 255 + i32.and + call $~lib/typedarray/Uint8Array#__set + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|0 end end global.get $~lib/memory/__stack_pointer + local.get $1 + i32.load + local.tee $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=4 + local.get $1 + i32.load offset=4 + local.get $1 + i32.load + i32.sub + local.get $1 + i32.load offset=8 + local.get $1 + i32.load offset=4 + local.get $1 + i32.load + i32.sub + i32.add + call $~lib/arraybuffer/ArrayBuffer#slice + local.tee $0 + i32.store offset=12 + i32.const 1 + global.set $~argumentsLength + global.get $~lib/memory/__stack_pointer local.get $0 i32.const 0 + call $~lib/typedarray/Uint8Array.wrap@varargs + local.tee $3 + i32.store offset=16 i32.const 0 - call $~lib/typedarray/Uint32Array#indexOf - if - i32.const 0 - i32.const 1568 - i32.const 580 - i32.const 3 - call $~lib/builtins/abort - unreachable + local.set $0 + loop $for-loop|1 + local.get $0 + local.get $2 + i32.lt_s + if + local.get $1 + local.get $0 + call $~lib/typedarray/Uint8Array#__get + local.get $3 + local.get $0 + call $~lib/typedarray/Uint8Array#__get + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 707 + 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 - 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 581 - i32.const 3 - call $~lib/builtins/abort - unreachable - end + i32.const 20 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $std/typedarray/testArrayWrap<~lib/typedarray/Uint8ClampedArray,u8> + (local $0 i32) + (local $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 offset=4 - local.get $0 - 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 582 - i32.const 3 - call $~lib/builtins/abort - unreachable - end + 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 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 3 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 583 - i32.const 3 - call $~lib/builtins/abort - unreachable - end + 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 2 - call $~lib/typedarray/Uint32Array#indexOf - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 584 - i32.const 3 - call $~lib/builtins/abort - unreachable - end + i32.const 8768 + i32.store global.get $~lib/memory/__stack_pointer - local.get $0 + i32.const 8780 + i32.load + local.tee $3 + call $~lib/typedarray/Uint8ClampedArray#constructor + local.tee $1 i32.store offset=4 - local.get $0 - 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 585 - i32.const 3 - call $~lib/builtins/abort - unreachable + loop $for-loop|0 + local.get $0 + local.get $3 + i32.lt_s + if + local.get $1 + local.get $0 + i32.const 8768 + 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 global.get $~lib/memory/__stack_pointer + local.get $1 + i32.load + local.tee $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=4 - local.get $0 - 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 586 - i32.const 3 - call $~lib/builtins/abort - unreachable - end + local.get $1 + i32.load offset=4 + local.get $1 + i32.load + i32.sub + local.get $1 + i32.load offset=8 + local.get $1 + i32.load offset=4 + local.get $1 + i32.load + i32.sub + i32.add + call $~lib/arraybuffer/ArrayBuffer#slice + local.tee $0 + i32.store offset=12 + i32.const 1 + global.set $~argumentsLength global.get $~lib/memory/__stack_pointer + 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 $0 - i32.store offset=4 - local.get $0 - 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 587 - i32.const 3 - call $~lib/builtins/abort - unreachable - end + i32.const 20 + i32.sub + i32.load offset=16 + local.set $5 global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 5 + call $~lib/rt/itcms/__new + local.tee $2 + i32.store + local.get $2 local.get $0 - i32.store offset=4 + i32.store + local.get $2 local.get $0 - 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 588 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer + call $~lib/rt/itcms/__link + local.get $2 + local.get $5 + i32.store offset=8 + local.get $2 local.get $0 i32.store offset=4 - i32.const 1 - global.set $~argumentsLength - local.get $0 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=16 i32.const 0 - call $~lib/typedarray/Uint32Array#lastIndexOf@varargs - if - i32.const 0 - i32.const 1568 - i32.const 590 - i32.const 3 - call $~lib/builtins/abort - unreachable + local.set $0 + loop $for-loop|1 + local.get $0 + local.get $3 + i32.lt_s + if + local.get $1 + local.get $0 + call $~lib/typedarray/Uint8ClampedArray#__get + local.get $2 + local.get $0 + call $~lib/typedarray/Uint8ClampedArray#__get + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 707 + 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 + i32.const 20 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $std/typedarray/testArrayWrap<~lib/typedarray/Int16Array,i16> + (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 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 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + i32.const 8768 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 8780 + i32.load + local.tee $3 + call $~lib/typedarray/Int16Array#constructor + local.tee $1 i32.store offset=4 - i32.const 1 - global.set $~argumentsLength - local.get $0 - i32.const 11 - call $~lib/typedarray/Uint32Array#lastIndexOf@varargs - i32.const -1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 591 - i32.const 3 - call $~lib/builtins/abort - unreachable + loop $for-loop|0 + local.get $0 + local.get $3 + i32.lt_s + if + local.get $1 + local.get $0 + i32.const 8768 + local.get $0 + call $~lib/array/Array#__get + i32.const 16 + i32.shl + i32.const 16 + i32.shr_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 $1 + i32.load + local.tee $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=4 + local.get $1 + i32.load offset=4 + local.get $1 + i32.load + i32.sub + local.get $1 + i32.load offset=8 + local.get $1 + i32.load offset=4 + local.get $1 + i32.load + i32.sub + i32.add + call $~lib/arraybuffer/ArrayBuffer#slice + local.tee $0 + i32.store offset=12 i32.const 1 global.set $~argumentsLength - local.get $0 - i32.const -1 - call $~lib/typedarray/Uint32Array#lastIndexOf@varargs - i32.const -1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 592 - i32.const 3 - call $~lib/builtins/abort - unreachable - end global.get $~lib/memory/__stack_pointer + 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 $0 - i32.store offset=4 + i32.const 20 + i32.sub + i32.load offset=16 + local.tee $2 + local.set $5 + local.get $2 i32.const 1 - global.set $~argumentsLength - local.get $0 - i32.const 3 - call $~lib/typedarray/Uint32Array#lastIndexOf@varargs - i32.const 3 - i32.ne + i32.and if - i32.const 0 - i32.const 1568 - i32.const 593 - i32.const 3 + i32.const 1056 + i32.const 1632 + i32.const 1831 + i32.const 9 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 6 + call $~lib/rt/itcms/__new + local.tee $2 + i32.store + local.get $2 local.get $0 - i32.store offset=4 + i32.store + local.get $2 local.get $0 - 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 594 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer + call $~lib/rt/itcms/__link + local.get $2 + local.get $5 + i32.store offset=8 + local.get $2 local.get $0 i32.store offset=4 - local.get $0 - 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 595 - i32.const 3 - call $~lib/builtins/abort - unreachable + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=16 + i32.const 0 + local.set $0 + loop $for-loop|1 + local.get $0 + local.get $3 + i32.lt_s + if + local.get $1 + local.get $0 + call $~lib/typedarray/Int16Array#__get + local.get $2 + local.get $0 + call $~lib/typedarray/Int16Array#__get + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 707 + 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 + i32.const 20 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $std/typedarray/testArrayWrap<~lib/typedarray/Uint16Array,u16> + (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 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 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + i32.const 8768 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 8780 + i32.load + local.tee $3 + call $~lib/typedarray/Uint16Array#constructor + local.tee $1 i32.store offset=4 - local.get $0 - 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 596 - i32.const 3 - call $~lib/builtins/abort - unreachable + loop $for-loop|0 + local.get $0 + local.get $3 + i32.lt_s + if + local.get $1 + local.get $0 + i32.const 8768 + local.get $0 + call $~lib/array/Array#__get + i32.const 65535 + i32.and + call $~lib/typedarray/Uint16Array#__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 $1 + i32.load + local.tee $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=4 - local.get $0 - i32.const 1 - i32.const 100 - call $~lib/typedarray/Uint32Array#lastIndexOf + local.get $1 + i32.load offset=4 + local.get $1 + i32.load + i32.sub + local.get $1 + i32.load offset=8 + local.get $1 + i32.load offset=4 + local.get $1 + i32.load + i32.sub + i32.add + call $~lib/arraybuffer/ArrayBuffer#slice + local.tee $0 + i32.store offset=12 i32.const 1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 597 - i32.const 3 - call $~lib/builtins/abort - unreachable - end + global.set $~argumentsLength global.get $~lib/memory/__stack_pointer + 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 $0 - i32.store offset=4 - local.get $0 - i32.const 1 - i32.const -10 - call $~lib/typedarray/Uint32Array#lastIndexOf + i32.const 20 + i32.sub + i32.load offset=16 + local.tee $2 + local.set $5 + local.get $2 i32.const 1 - i32.ne + i32.and if - i32.const 0 - i32.const 1568 - i32.const 598 - i32.const 3 + i32.const 1056 + i32.const 1632 + i32.const 1831 + i32.const 9 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 7 + call $~lib/rt/itcms/__new + local.tee $2 + i32.store + local.get $2 local.get $0 - i32.store offset=4 + i32.store + local.get $2 local.get $0 - 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 599 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer + call $~lib/rt/itcms/__link + local.get $2 + local.get $5 + i32.store offset=8 + local.get $2 local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $0 - i32.const 9 - call $~lib/typedarray/Uint32Array#subarray - local.tee $0 + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 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 603 - 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 604 - 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 605 - 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 606 - 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 607 - 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 608 - 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 609 - 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 610 - i32.const 3 - call $~lib/builtins/abort - unreachable + local.set $0 + loop $for-loop|1 + local.get $0 + local.get $3 + i32.lt_s + if + local.get $1 + local.get $0 + call $~lib/typedarray/Uint16Array#__get + local.get $2 + local.get $0 + call $~lib/typedarray/Uint16Array#__get + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 707 + 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 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) + (func $std/typedarray/testArrayWrap<~lib/typedarray/Int32Array,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.const 20 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check @@ -26317,193 +24349,155 @@ 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 0 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + i32.const 8768 i32.store global.get $~lib/memory/__stack_pointer - local.get $0 + i32.const 8780 + i32.load + local.tee $3 + call $~lib/typedarray/Int32Array#constructor + local.tee $1 i32.store offset=4 - i32.const -1 - local.set $3 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.0 - local.get $2 + loop $for-loop|0 local.get $0 - i32.load offset=8 - i32.const 3 - i32.shr_u - local.tee $4 - i32.ge_s - i32.const 1 - local.get $4 - select - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.0 - local.get $2 - i32.const 0 + local.get $3 i32.lt_s if - local.get $2 - local.get $4 + local.get $1 + local.get $0 + i32.const 8768 + local.get $0 + call $~lib/array/Array#__get + call $~lib/typedarray/Int32Array#__set + local.get $0 + i32.const 1 i32.add - local.tee $2 - i32.const 0 - local.get $2 - i32.const 0 - i32.gt_s - select - local.set $2 - end - 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 $0 - local.get $2 - local.tee $3 - i32.const 3 - i32.shl - i32.add - i64.load - i64.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.0 - local.get $3 - i32.const 1 - i32.add - local.set $2 - br $while-continue|0 - end + local.set $0 + br $for-loop|0 end - i32.const -1 - local.set $3 end global.get $~lib/memory/__stack_pointer - i32.const 8 + local.get $1 + i32.load + local.tee $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + local.get $1 + i32.load offset=4 + local.get $1 + i32.load + i32.sub + local.get $1 + i32.load offset=8 + local.get $1 + i32.load offset=4 + local.get $1 + i32.load + i32.sub i32.add - global.set $~lib/memory/__stack_pointer - local.get $3 - ) - (func $~lib/typedarray/Int64Array#lastIndexOf (param $0 i32) (param $1 i64) (param $2 i32) (result i32) - (local $3 i32) - (local $4 i32) + call $~lib/arraybuffer/ArrayBuffer#slice + local.tee $0 + i32.store offset=12 + i32.const 1 + global.set $~argumentsLength global.get $~lib/memory/__stack_pointer - i32.const 8 + 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 - 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 - i32.const -1 - local.set $3 - block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.0 - local.get $0 - i32.load offset=8 - i32.const 3 - i32.shr_u - local.tee $4 - i32.eqz - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.0 - local.get $2 - local.get $4 - i32.add - local.get $4 - i32.const 1 - i32.sub - local.get $2 - local.get $2 - local.get $4 - i32.ge_s - select - local.get $2 - i32.const 0 - i32.lt_s - select - local.set $2 - 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 $1 - local.get $0 - local.get $2 - local.tee $3 - i32.const 3 - i32.shl - i32.add - i64.load - i64.eq - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.0 - local.get $3 - i32.const 1 - i32.sub - local.set $2 - br $while-continue|0 - end - end - i32.const -1 - local.set $3 + i32.const 20 + i32.sub + i32.load offset=16 + local.tee $2 + local.set $5 + local.get $2 + i32.const 3 + i32.and + if + i32.const 1056 + i32.const 1632 + i32.const 1831 + i32.const 9 + call $~lib/builtins/abort + unreachable end global.get $~lib/memory/__stack_pointer + i32.const 12 i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $3 - ) - (func $~lib/typedarray/Int64Array#lastIndexOf@varargs (param $0 i32) (param $1 i64) (result i32) - (local $2 i32) + call $~lib/rt/itcms/__new + local.tee $2 + i32.store + local.get $2 + local.get $0 + i32.store + local.get $2 + local.get $0 + call $~lib/rt/itcms/__link + local.get $2 + local.get $5 + i32.store offset=8 + local.get $2 + local.get $0 + i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 4 - i32.sub + i32.add global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=16 i32.const 0 - i32.store - block $1of1 - block $0of1 - block $outOfRange - global.get $~argumentsLength - i32.const 1 - i32.sub - br_table $0of1 $1of1 $outOfRange + local.set $0 + loop $for-loop|1 + local.get $0 + local.get $3 + i32.lt_s + if + local.get $1 + local.get $0 + call $~lib/typedarray/Int32Array#__get + local.get $2 + local.get $0 + call $~lib/typedarray/Int32Array#__get + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 707 + i32.const 5 + call $~lib/builtins/abort + unreachable end - unreachable + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|1 end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=8 - i32.const 3 - i32.shr_u - local.set $2 end - local.get $0 - local.get $1 - local.get $2 - call $~lib/typedarray/Int64Array#lastIndexOf global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 20 i32.add global.set $~lib/memory/__stack_pointer ) - (func $std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Int64Array,i64> + (func $std/typedarray/testArrayWrap<~lib/typedarray/Uint32Array,u32> (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 20 i32.sub @@ -26519,521 +24513,469 @@ i32.const 0 i32.store offset=16 global.get $~lib/memory/__stack_pointer - i32.const 7024 + i32.const 8768 i32.store global.get $~lib/memory/__stack_pointer - i32.const 7024 - i32.store offset=4 - i32.const 7036 + i32.const 8780 i32.load - local.tee $0 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $0 - call $~lib/typedarray/Int64Array#constructor - local.tee $0 - i32.store offset=8 + local.tee $3 + call $~lib/typedarray/Uint32Array#constructor + local.tee $1 + i32.store offset=4 loop $for-loop|0 - local.get $1 - local.get $2 + local.get $0 + local.get $3 i32.lt_s if - global.get $~lib/memory/__stack_pointer + local.get $1 local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 7024 - i32.store offset=12 + i32.const 8768 local.get $0 - local.get $1 - i32.const 7024 - local.get $1 call $~lib/array/Array#__get - i64.extend_i32_s - call $~lib/typedarray/Int64Array#__set - local.get $1 + call $~lib/typedarray/Uint32Array#__set + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|0 end end global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i64.const 0 - i32.const 0 - call $~lib/typedarray/Int64Array#indexOf - if - i32.const 0 - i32.const 1568 - i32.const 580 - i32.const 3 - call $~lib/builtins/abort - unreachable - end + local.get $1 + i32.load + local.tee $0 + i32.store offset=8 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=4 - local.get $0 - i64.const 11 + local.get $1 + i32.load offset=4 + local.get $1 + i32.load + i32.sub + local.get $1 + i32.load offset=8 + local.get $1 + i32.load offset=4 + local.get $1 + i32.load + i32.sub + i32.add + call $~lib/arraybuffer/ArrayBuffer#slice + local.tee $0 + i32.store offset=12 + i32.const 1 + global.set $~argumentsLength + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer i32.const 0 - call $~lib/typedarray/Int64Array#indexOf - i32.const -1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 581 - 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 -1 - i32.const 0 - call $~lib/typedarray/Int64Array#indexOf - i32.const -1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 582 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 + i32.store local.get $0 - i64.const 3 - i32.const 0 - call $~lib/typedarray/Int64Array#indexOf + i32.const 20 + i32.sub + i32.load offset=16 + local.tee $2 + local.set $5 + local.get $2 i32.const 3 - i32.ne + i32.and if - i32.const 0 - i32.const 1568 - i32.const 583 - i32.const 3 + i32.const 1056 + i32.const 1632 + i32.const 1831 + i32.const 9 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 9 + call $~lib/rt/itcms/__new + local.tee $2 + i32.store + local.get $2 local.get $0 - i32.store offset=4 + i32.store + local.get $2 local.get $0 - 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 584 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer + call $~lib/rt/itcms/__link + local.get $2 + local.get $5 + i32.store offset=8 + local.get $2 local.get $0 i32.store offset=4 - local.get $0 - 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 585 - 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 3 i32.const 4 - call $~lib/typedarray/Int64Array#indexOf - i32.const -1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 586 - i32.const 3 - call $~lib/builtins/abort - unreachable + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=16 + i32.const 0 + local.set $0 + loop $for-loop|1 + local.get $0 + local.get $3 + i32.lt_s + if + local.get $1 + local.get $0 + call $~lib/typedarray/Uint32Array#__get + local.get $2 + local.get $0 + call $~lib/typedarray/Uint32Array#__get + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 707 + 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 - i32.store offset=4 - local.get $0 - 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 587 - i32.const 3 - call $~lib/builtins/abort - unreachable - end + i32.const 20 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $std/typedarray/testArrayWrap<~lib/typedarray/Int64Array,i64> + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) global.get $~lib/memory/__stack_pointer - local.get $0 + 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 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + i32.const 8768 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 8780 + i32.load + local.tee $3 + call $~lib/typedarray/Int64Array#constructor + local.tee $1 i32.store offset=4 - local.get $0 - 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 588 - i32.const 3 - call $~lib/builtins/abort - unreachable + loop $for-loop|0 + local.get $0 + local.get $3 + i32.lt_s + if + local.get $1 + local.get $0 + i32.const 8768 + 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 $1 + i32.load + local.tee $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=4 + local.get $1 + i32.load offset=4 + local.get $1 + i32.load + i32.sub + local.get $1 + i32.load offset=8 + local.get $1 + i32.load offset=4 + local.get $1 + i32.load + i32.sub + i32.add + call $~lib/arraybuffer/ArrayBuffer#slice + local.tee $0 + i32.store offset=12 i32.const 1 global.set $~argumentsLength + global.get $~lib/memory/__stack_pointer + 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 $0 - i64.const 0 - call $~lib/typedarray/Int64Array#lastIndexOf@varargs + i32.const 20 + i32.sub + i32.load offset=16 + local.tee $2 + local.set $5 + local.get $2 + i32.const 7 + i32.and if - i32.const 0 - i32.const 1568 - i32.const 590 - i32.const 3 + i32.const 1056 + i32.const 1632 + i32.const 1831 + i32.const 9 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 10 + call $~lib/rt/itcms/__new + local.tee $2 + i32.store + local.get $2 local.get $0 - i32.store offset=4 - i32.const 1 - global.set $~argumentsLength + i32.store + local.get $2 local.get $0 - i64.const 11 - call $~lib/typedarray/Int64Array#lastIndexOf@varargs - i32.const -1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 591 - i32.const 3 - call $~lib/builtins/abort - unreachable + call $~lib/rt/itcms/__link + local.get $2 + local.get $5 + i32.store offset=8 + local.get $2 + local.get $0 + 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=16 + i32.const 0 + local.set $0 + loop $for-loop|1 + local.get $0 + local.get $3 + i32.lt_s + if + local.get $1 + local.get $0 + call $~lib/typedarray/Int64Array#__get + local.get $2 + local.get $0 + call $~lib/typedarray/Int64Array#__get + i64.ne + if + i32.const 0 + i32.const 1568 + i32.const 707 + 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 + i32.const 20 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $std/typedarray/testArrayWrap<~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 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 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + i32.const 8768 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 8780 + i32.load + local.tee $3 + call $~lib/typedarray/Uint64Array#constructor + local.tee $1 i32.store offset=4 - i32.const 1 - global.set $~argumentsLength - local.get $0 - i64.const -1 - call $~lib/typedarray/Int64Array#lastIndexOf@varargs - i32.const -1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 592 - i32.const 3 - call $~lib/builtins/abort - unreachable + loop $for-loop|0 + local.get $0 + local.get $3 + i32.lt_s + if + local.get $1 + local.get $0 + i32.const 8768 + 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 $1 + i32.load + local.tee $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=4 + local.get $1 + i32.load offset=4 + local.get $1 + i32.load + i32.sub + local.get $1 + i32.load offset=8 + local.get $1 + i32.load offset=4 + local.get $1 + i32.load + i32.sub + i32.add + call $~lib/arraybuffer/ArrayBuffer#slice + local.tee $0 + i32.store offset=12 i32.const 1 global.set $~argumentsLength - local.get $0 - i64.const 3 - call $~lib/typedarray/Int64Array#lastIndexOf@varargs - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 593 - 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 3 + global.get $~lib/memory/__stack_pointer i32.const 4 - call $~lib/typedarray/Int64Array#lastIndexOf - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 594 - i32.const 3 - call $~lib/builtins/abort - unreachable - end + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store local.get $0 - i32.store offset=4 - local.get $0 - i64.const 3 - i32.const 3 - call $~lib/typedarray/Int64Array#lastIndexOf - i32.const 3 - i32.ne + i32.const 20 + i32.sub + i32.load offset=16 + local.tee $2 + local.set $5 + local.get $2 + i32.const 7 + i32.and if - i32.const 0 - i32.const 1568 - i32.const 595 - i32.const 3 + i32.const 1056 + i32.const 1632 + i32.const 1831 + i32.const 9 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 11 + call $~lib/rt/itcms/__new + local.tee $2 + i32.store + local.get $2 local.get $0 - i32.store offset=4 + i32.store + local.get $2 local.get $0 - 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 596 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer + call $~lib/rt/itcms/__link + local.get $2 + local.get $5 + i32.store offset=8 + local.get $2 local.get $0 i32.store offset=4 - local.get $0 - 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 597 - 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 1 - i32.const -10 - call $~lib/typedarray/Int64Array#lastIndexOf - i32.const 1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 598 - 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 1 - i32.const -11 - call $~lib/typedarray/Int64Array#lastIndexOf - i32.const -1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 599 - 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.const 9 - call $~lib/typedarray/Int64Array#subarray - local.tee $0 + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 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 603 - 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 604 - 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 605 - 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 606 - 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 607 - 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 608 - 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 609 - 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 610 - i32.const 3 - call $~lib/builtins/abort - unreachable + local.set $0 + loop $for-loop|1 + local.get $0 + local.get $3 + i32.lt_s + if + local.get $1 + local.get $0 + call $~lib/typedarray/Uint64Array#__get + local.get $2 + local.get $0 + call $~lib/typedarray/Uint64Array#__get + i64.ne + if + i32.const 0 + i32.const 1568 + i32.const 707 + 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 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) + (func $std/typedarray/testArrayWrap<~lib/typedarray/Float32Array,f32> + (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.const 20 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check @@ -27041,193 +24983,156 @@ 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 0 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + i32.const 8768 i32.store global.get $~lib/memory/__stack_pointer - local.get $0 + i32.const 8780 + i32.load + local.tee $3 + call $~lib/typedarray/Float32Array#constructor + local.tee $1 i32.store offset=4 - i32.const -1 - local.set $3 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.0 - local.get $2 + loop $for-loop|0 local.get $0 - i32.load offset=8 - i32.const 3 - i32.shr_u - local.tee $4 - i32.ge_s - i32.const 1 - local.get $4 - select - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.0 - local.get $2 - i32.const 0 + local.get $3 i32.lt_s if - local.get $2 - local.get $4 + local.get $1 + local.get $0 + i32.const 8768 + 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.tee $2 - i32.const 0 - local.get $2 - i32.const 0 - i32.gt_s - select - local.set $2 - end - 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 $0 - local.get $2 - local.tee $3 - i32.const 3 - i32.shl - i32.add - i64.load - i64.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.0 - local.get $3 - i32.const 1 - i32.add - local.set $2 - br $while-continue|0 - end + local.set $0 + br $for-loop|0 end - i32.const -1 - local.set $3 end global.get $~lib/memory/__stack_pointer - i32.const 8 + local.get $1 + i32.load + local.tee $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + local.get $1 + i32.load offset=4 + local.get $1 + i32.load + i32.sub + local.get $1 + i32.load offset=8 + local.get $1 + i32.load offset=4 + local.get $1 + i32.load + i32.sub i32.add - global.set $~lib/memory/__stack_pointer - local.get $3 - ) - (func $~lib/typedarray/Uint64Array#lastIndexOf (param $0 i32) (param $1 i64) (param $2 i32) (result i32) - (local $3 i32) - (local $4 i32) + call $~lib/arraybuffer/ArrayBuffer#slice + local.tee $0 + i32.store offset=12 + i32.const 1 + global.set $~argumentsLength global.get $~lib/memory/__stack_pointer - i32.const 8 + 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 - i64.const 0 - i64.store + i32.const 0 + i32.store + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 + local.tee $2 + local.set $5 + local.get $2 + i32.const 3 + i32.and + if + i32.const 1056 + i32.const 1632 + i32.const 1831 + i32.const 9 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 12 + call $~lib/rt/itcms/__new + local.tee $2 + i32.store + local.get $2 local.get $0 i32.store - global.get $~lib/memory/__stack_pointer + local.get $2 + local.get $0 + call $~lib/rt/itcms/__link + local.get $2 + local.get $5 + i32.store offset=8 + local.get $2 local.get $0 i32.store offset=4 - i32.const -1 - local.set $3 - block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.0 - local.get $0 - i32.load offset=8 - i32.const 3 - i32.shr_u - local.tee $4 - i32.eqz - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.0 - local.get $2 - local.get $4 - i32.add - local.get $4 - i32.const 1 - i32.sub - local.get $2 - local.get $2 - local.get $4 - i32.ge_s - select - local.get $2 - i32.const 0 - i32.lt_s - select - local.set $2 - 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 $1 - local.get $0 - local.get $2 - local.tee $3 - i32.const 3 - i32.shl - i32.add - i64.load - i64.eq - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.0 - local.get $3 - i32.const 1 - i32.sub - local.set $2 - br $while-continue|0 - end - end - i32.const -1 - local.set $3 - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $3 - ) - (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 + i32.add global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=16 i32.const 0 - i32.store - block $1of1 - block $0of1 - block $outOfRange - global.get $~argumentsLength - i32.const 1 - i32.sub - br_table $0of1 $1of1 $outOfRange + local.set $0 + loop $for-loop|1 + local.get $0 + local.get $3 + i32.lt_s + if + local.get $1 + local.get $0 + call $~lib/typedarray/Float32Array#__get + local.get $2 + local.get $0 + call $~lib/typedarray/Float32Array#__get + f32.ne + if + i32.const 0 + i32.const 1568 + i32.const 707 + i32.const 5 + call $~lib/builtins/abort + unreachable end - unreachable + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|1 end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=8 - i32.const 3 - i32.shr_u - local.set $2 end - local.get $0 - local.get $1 - local.get $2 - call $~lib/typedarray/Uint64Array#lastIndexOf global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 20 i32.add global.set $~lib/memory/__stack_pointer ) - (func $std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Uint64Array,u64> + (func $std/typedarray/testArrayWrap<~lib/typedarray/Float64Array,f64> (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 20 i32.sub @@ -27243,715 +25148,980 @@ i32.const 0 i32.store offset=16 global.get $~lib/memory/__stack_pointer - i32.const 7024 + i32.const 8768 i32.store global.get $~lib/memory/__stack_pointer - i32.const 7024 - i32.store offset=4 - i32.const 7036 + i32.const 8780 i32.load - local.tee $0 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $0 - call $~lib/typedarray/Uint64Array#constructor - local.tee $0 - i32.store offset=8 + local.tee $3 + call $~lib/typedarray/Float64Array#constructor + local.tee $1 + i32.store offset=4 loop $for-loop|0 - local.get $1 - local.get $2 + local.get $0 + local.get $3 i32.lt_s if - global.get $~lib/memory/__stack_pointer + local.get $1 local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 7024 - i32.store offset=12 + i32.const 8768 local.get $0 - local.get $1 - i32.const 7024 - local.get $1 call $~lib/array/Array#__get - i64.extend_i32_s - call $~lib/typedarray/Uint64Array#__set - local.get $1 + f64.convert_i32_s + call $~lib/typedarray/Float64Array#__set + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|0 end end global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i64.const 0 - i32.const 0 - call $~lib/typedarray/Uint64Array#indexOf - if - i32.const 0 - i32.const 1568 - i32.const 580 - i32.const 3 - call $~lib/builtins/abort - unreachable - end + local.get $1 + i32.load + local.tee $0 + i32.store offset=8 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=4 - local.get $0 - i64.const 11 + local.get $1 + i32.load offset=4 + local.get $1 + i32.load + i32.sub + local.get $1 + i32.load offset=8 + local.get $1 + i32.load offset=4 + local.get $1 + i32.load + i32.sub + i32.add + call $~lib/arraybuffer/ArrayBuffer#slice + local.tee $0 + i32.store offset=12 + i32.const 1 + global.set $~argumentsLength + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer i32.const 0 - call $~lib/typedarray/Uint64Array#indexOf - i32.const -1 - i32.ne + i32.store + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 + local.tee $2 + local.set $5 + local.get $2 + i32.const 7 + i32.and if - i32.const 0 - i32.const 1568 - i32.const 581 - i32.const 3 + i32.const 1056 + i32.const 1632 + i32.const 1831 + i32.const 9 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 13 + call $~lib/rt/itcms/__new + local.tee $2 + i32.store + local.get $2 local.get $0 - i32.store offset=4 + i32.store + local.get $2 local.get $0 - 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 582 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer + call $~lib/rt/itcms/__link + local.get $2 + local.get $5 + i32.store offset=8 + local.get $2 local.get $0 i32.store offset=4 - local.get $0 - i64.const 3 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=16 i32.const 0 - call $~lib/typedarray/Uint64Array#indexOf - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 583 - i32.const 3 - call $~lib/builtins/abort - unreachable + local.set $0 + loop $for-loop|1 + local.get $0 + local.get $3 + i32.lt_s + if + local.get $1 + local.get $0 + call $~lib/typedarray/Float64Array#__get + local.get $2 + local.get $0 + call $~lib/typedarray/Float64Array#__get + f64.ne + if + i32.const 0 + i32.const 1568 + i32.const 707 + 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 - i32.store offset=4 - local.get $0 - 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 584 - i32.const 3 - call $~lib/builtins/abort - unreachable - end + i32.const 20 + 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 + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store local.get $0 - i32.store offset=4 - local.get $0 - i64.const 3 - i32.const 3 - call $~lib/typedarray/Uint64Array#indexOf - i32.const 3 + i32.load offset=8 + local.tee $3 + local.get $1 + i32.load offset=12 i32.ne if i32.const 0 i32.const 1568 - i32.const 585 + i32.const 735 i32.const 3 call $~lib/builtins/abort unreachable end + loop $for-loop|0 + local.get $2 + local.get $3 + i32.lt_s + if + local.get $2 + local.get $0 + i32.load offset=4 + i32.add + i32.load8_s + local.tee $4 + local.get $2 + local.get $1 + i32.load offset=4 + i32.add + i32.load8_s + local.tee $5 + i32.ne + if + global.get $~lib/memory/__stack_pointer + i32.const 9184 + i32.store + i32.const 9184 + 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 741 + 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 - local.get $0 - i32.store offset=4 - local.get $0 - 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 586 - i32.const 3 - call $~lib/builtins/abort - unreachable - end + 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 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 f32) + (local $8 f64) + (local $9 i32) global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - 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 587 - i32.const 3 - call $~lib/builtins/abort - unreachable - end + i32.const 20 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - 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 588 - i32.const 3 - call $~lib/builtins/abort - unreachable - end + i64.const 0 + i64.store global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - i32.const 1 - global.set $~argumentsLength - local.get $0 i64.const 0 - call $~lib/typedarray/Uint64Array#lastIndexOf@varargs - if - i32.const 0 - i32.const 1568 - i32.const 590 - i32.const 3 - call $~lib/builtins/abort - unreachable - end + i64.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - i32.const 1 - global.set $~argumentsLength - local.get $0 - i64.const 11 - call $~lib/typedarray/Uint64Array#lastIndexOf@varargs - i32.const -1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 591 - i32.const 3 - call $~lib/builtins/abort - unreachable - end + i32.const 0 + i32.store offset=16 global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 + i32.const 3 + call $~lib/typedarray/Int64Array#constructor + local.tee $3 + i32.store + local.get $3 + i32.const 0 + i64.const 7 + call $~lib/typedarray/Int64Array#__set + local.get $3 i32.const 1 - global.set $~argumentsLength - local.get $0 - i64.const -1 - call $~lib/typedarray/Uint64Array#lastIndexOf@varargs - i32.const -1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 592 - i32.const 3 - call $~lib/builtins/abort - unreachable - end + i64.const 8 + call $~lib/typedarray/Int64Array#__set + local.get $3 + i32.const 2 + i64.const 9 + call $~lib/typedarray/Int64Array#__set global.get $~lib/memory/__stack_pointer - local.get $0 + i32.const 4 + call $~lib/typedarray/Uint8Array#constructor + local.tee $2 i32.store offset=4 + local.get $2 + i32.const 0 + i32.const 100 + call $~lib/typedarray/Uint8Array#__set + local.get $2 i32.const 1 - global.set $~argumentsLength - local.get $0 - i64.const 3 - call $~lib/typedarray/Uint64Array#lastIndexOf@varargs + i32.const 101 + call $~lib/typedarray/Uint8Array#__set + local.get $2 + i32.const 2 + i32.const 102 + call $~lib/typedarray/Uint8Array#__set + local.get $2 i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 593 - i32.const 3 - call $~lib/builtins/abort - unreachable - end + i32.const 103 + call $~lib/typedarray/Uint8Array#__set global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - 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 594 - i32.const 3 - call $~lib/builtins/abort - unreachable - end + call $~lib/typedarray/Int16Array#constructor + local.tee $4 + i32.store offset=8 + local.get $4 + i32.const 0 + i32.const 1000 + call $~lib/typedarray/Int16Array#__set + local.get $4 + i32.const 1 + i32.const 1001 + call $~lib/typedarray/Int16Array#__set + local.get $4 + i32.const 2 + i32.const 1002 + call $~lib/typedarray/Int16Array#__set global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - 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 595 - i32.const 3 - call $~lib/builtins/abort - unreachable - end + i32.const 10 + call $~lib/typedarray/Int8Array#constructor + local.tee $1 + i32.store offset=12 global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - 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 596 - i32.const 3 - call $~lib/builtins/abort - unreachable - end + i32.const 8848 + i32.store offset=16 + local.get $1 + call $~lib/typedarray/Int8Array#set<~lib/array/Array> + i32.const 10 + i32.const 0 + i32.const 15 + i32.const 9152 + call $~lib/rt/__newArray + local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=4 + i32.store offset=16 + local.get $1 local.get $0 - 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 597 - i32.const 3 - call $~lib/builtins/abort - unreachable - end + call $std/typedarray/valuesEqual<~lib/typedarray/Int8Array> global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - 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 598 - 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 1 - i32.const -11 - call $~lib/typedarray/Uint64Array#lastIndexOf - i32.const -1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 599 - 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.const 9 - call $~lib/typedarray/Uint64Array#subarray - local.tee $0 + i32.const 8928 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 603 - 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 604 - 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 605 - 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 606 - 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 607 + local.set $0 + block $folding-inner0 + local.get $1 + i32.load offset=8 + i32.const 8940 + i32.load 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 608 + i32.add + i32.lt_s + br_if $folding-inner0 + local.get $1 + i32.load offset=4 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.add + local.set $5 + i32.const 8932 + i32.load + local.set $6 + i32.const 8940 + i32.load + local.set $9 + loop $for-loop|0 + local.get $0 + local.get $9 + i32.lt_s + if + local.get $0 + local.get $5 + i32.add + local.get $6 + local.get $0 + i32.const 2 + i32.shl + i32.add + f32.load + local.tee $7 + local.get $7 + f32.sub + f32.const 0 + f32.eq + if (result i32) + local.get $7 + i32.trunc_f32_s + else + i32.const 0 + end + i32.store8 + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|0 + end + end + i32.const 10 i32.const 0 - i32.const 1568 - i32.const 609 - 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 15 + i32.const 9232 + call $~lib/rt/__newArray + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=16 + local.get $1 + local.get $0 + call $std/typedarray/valuesEqual<~lib/typedarray/Int8Array> + local.get $1 + local.get $3 + call $~lib/typedarray/Int8Array#set<~lib/typedarray/Int64Array> + i32.const 10 i32.const 0 - i32.const 1568 - i32.const 610 - 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) - (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 - 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.set $3 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.0 - local.get $2 + i32.const 15 + i32.const 9264 + call $~lib/rt/__newArray + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=16 + local.get $1 local.get $0 + call $std/typedarray/valuesEqual<~lib/typedarray/Int8Array> + global.get $~lib/memory/__stack_pointer + i32.const 9024 + i32.store offset=16 + i32.const 0 + local.set $0 + local.get $1 i32.load offset=8 + i32.const 9036 + i32.load i32.const 2 - i32.shr_u - local.tee $4 - i32.ge_s - i32.const 1 - local.get $4 - select - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.0 - local.get $2 - i32.const 0 + i32.add i32.lt_s - if - local.get $2 - local.get $4 - i32.add - local.tee $2 - i32.const 0 - local.get $2 - i32.const 0 - i32.gt_s - select - local.set $2 - end - local.get $0 + br_if $folding-inner0 + local.get $1 i32.load offset=4 - local.set $0 - loop $while-continue|0 - local.get $2 - local.get $4 + i32.const 2 + i32.add + local.set $3 + i32.const 9028 + i32.load + local.set $5 + i32.const 9036 + i32.load + local.set $6 + loop $for-loop|00 + local.get $0 + local.get $6 i32.lt_s if - local.get $1 local.get $0 - local.get $2 - local.tee $3 - i32.const 2 + local.get $3 + i32.add + local.get $5 + local.get $0 + i32.const 3 i32.shl i32.add - f32.load - f32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.0 - local.get $3 + f64.load + local.tee $8 + local.get $8 + f64.sub + f64.const 0 + f64.eq + if (result i32) + local.get $8 + i32.trunc_f64_s + else + i32.const 0 + end + i32.store8 + local.get $0 i32.const 1 i32.add - local.set $2 - br $while-continue|0 + local.set $0 + br $for-loop|00 end end - i32.const -1 - local.set $3 + i32.const 10 + i32.const 0 + i32.const 15 + i32.const 9296 + call $~lib/rt/__newArray + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=16 + local.get $1 + local.get $0 + call $std/typedarray/valuesEqual<~lib/typedarray/Int8Array> + local.get $1 + local.get $2 + call $~lib/typedarray/Int8Array#set<~lib/typedarray/Uint8Array> + local.get $1 + local.get $4 + call $~lib/typedarray/Int8Array#set<~lib/typedarray/Int16Array> + global.get $~lib/memory/__stack_pointer + i32.const 9104 + i32.store offset=16 + local.get $1 + call $~lib/typedarray/Int8Array#set<~lib/array/Array> + i32.const 10 + i32.const 0 + i32.const 15 + i32.const 9328 + call $~lib/rt/__newArray + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=16 + local.get $1 + local.get $2 + call $std/typedarray/valuesEqual<~lib/typedarray/Int8Array> + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.add + global.set $~lib/memory/__stack_pointer + return end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $3 + i32.const 1360 + i32.const 1632 + i32.const 1865 + i32.const 47 + call $~lib/builtins/abort + unreachable ) - (func $~lib/typedarray/Float32Array#lastIndexOf (param $0 i32) (param $1 f32) (param $2 i32) (result 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) 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 - 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 - i32.const -1 - local.set $3 - block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.0 - local.get $0 - i32.load offset=8 - i32.const 2 - i32.shr_u - local.tee $4 - i32.eqz - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.0 - local.get $2 - local.get $4 - i32.add - local.get $4 - i32.const 1 - i32.sub - local.get $2 + i32.load offset=8 + local.tee $4 + local.get $1 + i32.load offset=12 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 735 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + loop $for-loop|0 local.get $2 local.get $4 - i32.ge_s - select - local.get $2 - i32.const 0 i32.lt_s - select - local.set $2 - local.get $0 - i32.load offset=4 - local.set $0 - loop $while-continue|0 + if local.get $2 - i32.const 0 - i32.ge_s + local.get $1 + i32.load offset=4 + i32.add + i32.load8_u + local.tee $3 + local.set $5 + local.get $3 + local.get $2 + local.get $0 + i32.load offset=4 + i32.add + i32.load8_u + local.tee $3 + i32.ne if - local.get $1 - local.get $0 + global.get $~lib/memory/__stack_pointer + i32.const 9392 + i32.store + i32.const 9392 + i32.const 3 local.get $2 - local.tee $3 - i32.const 2 - i32.shl - i32.add - f32.load - f32.eq - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.0 + f64.convert_i32_s local.get $3 - i32.const 1 - i32.sub - local.set $2 - br $while-continue|0 + 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 741 + 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 - i32.const -1 - local.set $3 end 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/typedarray/Float32Array#lastIndexOf@varargs (param $0 i32) (param $1 f32) (result i32) + (func $std/typedarray/testTypedArraySet<~lib/typedarray/Uint8Array> + (local $0 i32) + (local $1 i32) (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 f32) + (local $8 f64) + (local $9 i32) global.get $~lib/memory/__stack_pointer - i32.const 4 + 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 + global.get $~lib/memory/__stack_pointer i32.const 0 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Int64Array#constructor + local.tee $3 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 $3 + i32.const 0 + i64.const 7 + call $~lib/typedarray/Int64Array#__set + local.get $3 + i32.const 1 + i64.const 8 + call $~lib/typedarray/Int64Array#__set + local.get $3 + 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=4 + local.get $2 + i32.const 0 + i32.const 100 + call $~lib/typedarray/Uint8Array#__set + local.get $2 + i32.const 1 + i32.const 101 + call $~lib/typedarray/Uint8Array#__set + local.get $2 + i32.const 2 + i32.const 102 + call $~lib/typedarray/Uint8Array#__set + 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 $4 + i32.store offset=8 + local.get $4 + i32.const 0 + i32.const 1000 + call $~lib/typedarray/Int16Array#__set + local.get $4 + i32.const 1 + i32.const 1001 + call $~lib/typedarray/Int16Array#__set + 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/Uint8Array#constructor + local.tee $1 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 8848 + i32.store offset=16 + local.get $1 + call $~lib/typedarray/Int8Array#set<~lib/array/Array> + i32.const 10 + i32.const 0 + i32.const 63 + i32.const 9360 + call $~lib/rt/__newArray + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=16 + local.get $1 + local.get $0 + call $std/typedarray/valuesEqual<~lib/typedarray/Uint8Array> + global.get $~lib/memory/__stack_pointer + i32.const 8928 + i32.store offset=16 + i32.const 0 + local.set $0 + block $folding-inner0 + local.get $1 + i32.load offset=8 + i32.const 8940 + i32.load + i32.const 3 + i32.add + i32.lt_s + br_if $folding-inner0 + local.get $1 + i32.load offset=4 + i32.const 3 + i32.add + local.set $5 + i32.const 8932 + i32.load + local.set $6 + i32.const 8940 + i32.load + local.set $9 + loop $for-loop|0 + local.get $0 + local.get $9 + i32.lt_s + if + local.get $0 + local.get $5 + i32.add + local.get $6 + local.get $0 + i32.const 2 + i32.shl + i32.add + f32.load + local.tee $7 + local.get $7 + f32.sub + f32.const 0 + f32.eq + if (result i32) + local.get $7 + i32.trunc_f32_u + else + i32.const 0 + end + i32.store8 + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|0 + end + end + i32.const 10 + i32.const 0 + i32.const 63 + i32.const 9440 + call $~lib/rt/__newArray + local.set $0 + global.get $~lib/memory/__stack_pointer local.get $0 - i32.store + i32.store offset=16 + local.get $1 + local.get $0 + call $std/typedarray/valuesEqual<~lib/typedarray/Uint8Array> + local.get $1 + local.get $3 + call $~lib/typedarray/Int8Array#set<~lib/typedarray/Int64Array> + i32.const 10 + i32.const 0 + i32.const 63 + i32.const 9472 + call $~lib/rt/__newArray + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=16 + local.get $1 local.get $0 + call $std/typedarray/valuesEqual<~lib/typedarray/Uint8Array> + global.get $~lib/memory/__stack_pointer + i32.const 9024 + i32.store offset=16 + i32.const 0 + local.set $0 + local.get $1 i32.load offset=8 + i32.const 9036 + i32.load i32.const 2 - i32.shr_u + i32.add + i32.lt_s + br_if $folding-inner0 + local.get $1 + i32.load offset=4 + i32.const 2 + i32.add + local.set $3 + i32.const 9028 + i32.load + local.set $5 + i32.const 9036 + i32.load + local.set $6 + loop $for-loop|00 + local.get $0 + local.get $6 + i32.lt_s + if + local.get $0 + local.get $3 + i32.add + local.get $5 + local.get $0 + i32.const 3 + i32.shl + i32.add + f64.load + local.tee $8 + local.get $8 + f64.sub + f64.const 0 + f64.eq + if (result i32) + local.get $8 + i32.trunc_f64_u + else + i32.const 0 + end + i32.store8 + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|00 + end + end + i32.const 10 + i32.const 0 + i32.const 63 + i32.const 9504 + call $~lib/rt/__newArray + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=16 + local.get $1 + local.get $0 + call $std/typedarray/valuesEqual<~lib/typedarray/Uint8Array> + local.get $1 + local.get $2 + call $~lib/typedarray/Int8Array#set<~lib/typedarray/Uint8Array> + local.get $1 + local.get $4 + call $~lib/typedarray/Int8Array#set<~lib/typedarray/Int16Array> + global.get $~lib/memory/__stack_pointer + i32.const 9104 + i32.store offset=16 + local.get $1 + call $~lib/typedarray/Int8Array#set<~lib/array/Array> + i32.const 10 + i32.const 0 + i32.const 63 + i32.const 9536 + call $~lib/rt/__newArray local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=16 + local.get $1 + local.get $2 + call $std/typedarray/valuesEqual<~lib/typedarray/Uint8Array> + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.add + global.set $~lib/memory/__stack_pointer + return end + i32.const 1360 + i32.const 1632 + i32.const 1865 + i32.const 47 + call $~lib/builtins/abort + unreachable + ) + (func $std/typedarray/valuesEqual<~lib/typedarray/Uint8ClampedArray> (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 + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store local.get $0 + i32.load offset=8 + local.tee $4 local.get $1 - local.get $2 - call $~lib/typedarray/Float32Array#lastIndexOf + i32.load offset=12 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 735 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + loop $for-loop|0 + local.get $2 + local.get $4 + i32.lt_s + if + local.get $2 + local.get $1 + i32.load offset=4 + i32.add + i32.load8_u + local.tee $3 + local.set $5 + local.get $3 + local.get $2 + local.get $0 + i32.load offset=4 + i32.add + i32.load8_u + local.tee $3 + i32.ne + if + global.get $~lib/memory/__stack_pointer + i32.const 9600 + i32.store + i32.const 9600 + i32.const 3 + local.get $2 + f64.convert_i32_s + local.get $3 + 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 741 + 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/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Float32Array,f32> + (func $std/typedarray/testTypedArraySet<~lib/typedarray/Uint8ClampedArray> (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) + (local $10 f64) global.get $~lib/memory/__stack_pointer i32.const 20 i32.sub @@ -27967,601 +26137,859 @@ i32.const 0 i32.store offset=16 global.get $~lib/memory/__stack_pointer - i32.const 7024 + i32.const 3 + call $~lib/typedarray/Int64Array#constructor + local.tee $3 i32.store + local.get $3 + i32.const 0 + i64.const 7 + call $~lib/typedarray/Int64Array#__set + local.get $3 + i32.const 1 + i64.const 8 + call $~lib/typedarray/Int64Array#__set + local.get $3 + i32.const 2 + i64.const 9 + call $~lib/typedarray/Int64Array#__set global.get $~lib/memory/__stack_pointer - i32.const 7024 + i32.const 4 + call $~lib/typedarray/Uint8Array#constructor + local.tee $2 i32.store offset=4 - i32.const 7036 - i32.load - local.tee $0 - local.set $2 + local.get $2 + i32.const 0 + i32.const 100 + call $~lib/typedarray/Uint8Array#__set + local.get $2 + i32.const 1 + i32.const 101 + call $~lib/typedarray/Uint8Array#__set + local.get $2 + i32.const 2 + i32.const 102 + call $~lib/typedarray/Uint8Array#__set + local.get $2 + i32.const 3 + i32.const 103 + call $~lib/typedarray/Uint8Array#__set global.get $~lib/memory/__stack_pointer - local.get $0 - call $~lib/typedarray/Float32Array#constructor - local.tee $0 + i32.const 3 + call $~lib/typedarray/Int16Array#constructor + local.tee $4 i32.store offset=8 - loop $for-loop|0 + local.get $4 + i32.const 0 + i32.const 1000 + call $~lib/typedarray/Int16Array#__set + local.get $4 + i32.const 1 + i32.const 1001 + call $~lib/typedarray/Int16Array#__set + 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/Uint8ClampedArray#constructor + local.tee $1 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 8848 + i32.store offset=16 + block $folding-inner0 + i32.const 8860 + i32.load local.get $1 - local.get $2 - i32.lt_s - if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 7024 - i32.store offset=12 + i32.load offset=8 + i32.gt_s + br_if $folding-inner0 + local.get $1 + i32.load offset=4 + local.set $6 + i32.const 8852 + i32.load + local.set $7 + i32.const 8860 + i32.load + local.set $8 + loop $for-loop|0 local.get $0 - local.get $1 - i32.const 7024 - local.get $1 - call $~lib/array/Array#__get - f32.convert_i32_s - call $~lib/typedarray/Float32Array#__set - local.get $1 - i32.const 1 - i32.add - local.set $1 - br $for-loop|0 + local.get $8 + i32.lt_s + if + local.get $0 + local.get $6 + i32.add + local.get $7 + local.get $0 + i32.const 2 + i32.shl + i32.add + i32.load + local.tee $5 + i32.const 31 + i32.shr_s + i32.const -1 + i32.xor + local.get $5 + i32.const 255 + local.get $5 + i32.sub + i32.const 31 + i32.shr_s + i32.or + i32.and + i32.store8 + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|0 + end end - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - f32.const 0 - i32.const 0 - call $~lib/typedarray/Float32Array#indexOf - if - i32.const 0 - i32.const 1568 - i32.const 580 - 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 10 i32.const 0 - i32.const 1568 - i32.const 581 - 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 -1 - i32.const 0 - call $~lib/typedarray/Float32Array#indexOf - i32.const -1 - i32.ne - if + i32.const 63 + i32.const 9568 + call $~lib/rt/__newArray + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=16 + local.get $1 + local.get $0 + call $std/typedarray/valuesEqual<~lib/typedarray/Uint8ClampedArray> + global.get $~lib/memory/__stack_pointer + i32.const 8928 + i32.store offset=16 i32.const 0 - i32.const 1568 - i32.const 582 + local.set $0 + local.get $1 + i32.load offset=8 + i32.const 8940 + i32.load 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 3 - i32.const 0 - call $~lib/typedarray/Float32Array#indexOf - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 583 + i32.add + i32.lt_s + br_if $folding-inner0 + local.get $1 + i32.load offset=4 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 3 - i32.const 2 - call $~lib/typedarray/Float32Array#indexOf - i32.const 3 - i32.ne - if + i32.add + local.set $6 + i32.const 8932 + i32.load + local.set $7 + i32.const 8940 + i32.load + local.set $8 + loop $for-loop|00 + local.get $0 + local.get $8 + i32.lt_s + if + local.get $0 + local.get $6 + i32.add + local.get $7 + local.get $0 + i32.const 2 + i32.shl + i32.add + f32.load + local.tee $9 + local.get $9 + f32.sub + f32.const 0 + f32.eq + if (result i32) + f32.const 0 + f32.const 255 + local.get $9 + f32.min + f32.max + i32.trunc_f32_u + else + i32.const 0 + end + i32.store8 + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|00 + end + end + i32.const 10 i32.const 0 - i32.const 1568 - i32.const 584 - 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 3 - i32.const 3 - call $~lib/typedarray/Float32Array#indexOf - i32.const 3 - i32.ne - if + i32.const 63 + i32.const 9664 + call $~lib/rt/__newArray + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=16 + local.get $1 + local.get $0 + call $std/typedarray/valuesEqual<~lib/typedarray/Uint8ClampedArray> + local.get $1 + local.get $3 + i32.const 6 + call $~lib/typedarray/Uint8ClampedArray#set<~lib/typedarray/Int64Array> + i32.const 10 i32.const 0 - i32.const 1568 - i32.const 585 - 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 3 - i32.const 4 - call $~lib/typedarray/Float32Array#indexOf - i32.const -1 - i32.ne - if + i32.const 63 + i32.const 9696 + call $~lib/rt/__newArray + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=16 + local.get $1 + local.get $0 + call $std/typedarray/valuesEqual<~lib/typedarray/Uint8ClampedArray> + global.get $~lib/memory/__stack_pointer + i32.const 9024 + i32.store offset=16 i32.const 0 - i32.const 1568 - i32.const 586 - 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 1 - i32.const 10 - call $~lib/typedarray/Float32Array#indexOf - i32.const -1 - i32.ne - if + local.set $0 + local.get $1 + i32.load offset=8 + i32.const 9036 + i32.load + i32.const 2 + i32.add + i32.lt_s + br_if $folding-inner0 + local.get $1 + i32.load offset=4 + i32.const 2 + i32.add + local.set $5 + i32.const 9028 + i32.load + local.set $6 + i32.const 9036 + i32.load + local.set $7 + loop $for-loop|01 + local.get $0 + local.get $7 + i32.lt_s + if + local.get $0 + local.get $5 + i32.add + local.get $6 + local.get $0 + i32.const 3 + i32.shl + i32.add + f64.load + local.tee $10 + local.get $10 + f64.sub + f64.const 0 + f64.eq + if (result i32) + f64.const 0 + f64.const 255 + local.get $10 + f64.min + f64.max + i32.trunc_f64_u + else + i32.const 0 + end + i32.store8 + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|01 + end + end + i32.const 10 i32.const 0 - i32.const 1568 - i32.const 587 - 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 1 - i32.const -100 - call $~lib/typedarray/Float32Array#indexOf - i32.const 1 - i32.ne - if + i32.const 63 + i32.const 9728 + call $~lib/rt/__newArray + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=16 + local.get $1 + local.get $0 + call $std/typedarray/valuesEqual<~lib/typedarray/Uint8ClampedArray> + local.get $2 + i32.load offset=8 + local.get $1 + i32.load offset=8 + i32.gt_s + br_if $folding-inner0 + local.get $1 + i32.load offset=4 + local.get $2 + i32.load offset=4 + local.get $2 + i32.load offset=8 + call $~lib/memory/memory.copy + local.get $1 + local.get $4 + i32.const 4 + call $~lib/typedarray/Uint8ClampedArray#set<~lib/typedarray/Int16Array> + global.get $~lib/memory/__stack_pointer + i32.const 9104 + i32.store offset=16 i32.const 0 - i32.const 1568 - i32.const 588 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - i32.const 1 - global.set $~argumentsLength - local.get $0 - f32.const 0 - call $~lib/typedarray/Float32Array#lastIndexOf@varargs - if + local.set $2 + local.get $1 + i32.load offset=8 + i32.const 9116 + i32.load + i32.const 7 + i32.add + i32.lt_s + br_if $folding-inner0 + local.get $1 + i32.load offset=4 + i32.const 7 + i32.add + local.set $3 + i32.const 9108 + i32.load + local.set $4 + i32.const 9116 + i32.load + local.set $5 + loop $for-loop|02 + local.get $2 + local.get $5 + i32.lt_s + if + local.get $2 + local.get $3 + i32.add + local.get $2 + local.get $4 + i32.add + i32.load8_s + local.tee $0 + i32.const 31 + i32.shr_s + i32.const -1 + i32.xor + local.get $0 + i32.const 255 + local.get $0 + i32.sub + i32.const 31 + i32.shr_s + i32.or + i32.and + i32.store8 + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|02 + end + end + i32.const 10 i32.const 0 - i32.const 1568 - i32.const 590 - i32.const 3 - call $~lib/builtins/abort - unreachable + i32.const 63 + i32.const 9760 + call $~lib/rt/__newArray + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=16 + local.get $1 + local.get $2 + call $std/typedarray/valuesEqual<~lib/typedarray/Uint8ClampedArray> + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.add + global.set $~lib/memory/__stack_pointer + return end + i32.const 1360 + i32.const 1632 + i32.const 1865 + i32.const 47 + call $~lib/builtins/abort + unreachable + ) + (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) global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - i32.const 1 - global.set $~argumentsLength - local.get $0 - f32.const 11 - call $~lib/typedarray/Float32Array#lastIndexOf@varargs - i32.const -1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 591 - i32.const 3 - call $~lib/builtins/abort - unreachable - end + 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 $0 - i32.store offset=4 + i32.load offset=8 i32.const 1 - global.set $~argumentsLength - local.get $0 - f32.const -1 - call $~lib/typedarray/Float32Array#lastIndexOf@varargs - i32.const -1 + i32.shr_u + local.tee $3 + local.get $1 + i32.load offset=12 i32.ne if i32.const 0 i32.const 1568 - i32.const 592 + i32.const 735 i32.const 3 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - i32.const 1 - global.set $~argumentsLength - local.get $0 - f32.const 3 - call $~lib/typedarray/Float32Array#lastIndexOf@varargs - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 593 - i32.const 3 - call $~lib/builtins/abort - unreachable + loop $for-loop|0 + local.get $2 + local.get $3 + i32.lt_s + if + local.get $0 + local.get $2 + call $~lib/typedarray/Int16Array#__uget + local.tee $4 + local.get $1 + local.get $2 + call $~lib/typedarray/Int16Array#__uget + local.tee $5 + i32.ne + if + global.get $~lib/memory/__stack_pointer + i32.const 9840 + i32.store + i32.const 9840 + 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 741 + 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 - local.get $0 - i32.store offset=4 - local.get $0 - 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 594 - i32.const 3 - call $~lib/builtins/abort - unreachable - end + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $std/typedarray/testTypedArraySet<~lib/typedarray/Int16Array> + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 f32) + (local $8 f64) + (local $9 i32) global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - 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 595 - i32.const 3 - call $~lib/builtins/abort - unreachable - end + i32.const 20 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - f32.const 3 + 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 0 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Int64Array#constructor + local.tee $3 + i32.store + local.get $3 + i32.const 0 + i64.const 7 + call $~lib/typedarray/Int64Array#__set + local.get $3 + i32.const 1 + i64.const 8 + call $~lib/typedarray/Int64Array#__set + local.get $3 i32.const 2 - call $~lib/typedarray/Float32Array#lastIndexOf - i32.const -1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 596 - i32.const 3 - call $~lib/builtins/abort - unreachable - end + i64.const 9 + call $~lib/typedarray/Int64Array#__set global.get $~lib/memory/__stack_pointer - local.get $0 + i32.const 4 + call $~lib/typedarray/Uint8Array#constructor + local.tee $2 i32.store offset=4 - local.get $0 - f32.const 1 + local.get $2 + i32.const 0 i32.const 100 - call $~lib/typedarray/Float32Array#lastIndexOf - i32.const 1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 597 - 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 1 - i32.const -10 - call $~lib/typedarray/Float32Array#lastIndexOf + call $~lib/typedarray/Uint8Array#__set + local.get $2 i32.const 1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 598 - i32.const 3 - call $~lib/builtins/abort - unreachable - end + i32.const 101 + call $~lib/typedarray/Uint8Array#__set + local.get $2 + i32.const 2 + i32.const 102 + call $~lib/typedarray/Uint8Array#__set + local.get $2 + i32.const 3 + i32.const 103 + call $~lib/typedarray/Uint8Array#__set global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - 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 599 - i32.const 3 - call $~lib/builtins/abort - unreachable - end + i32.const 3 + call $~lib/typedarray/Int16Array#constructor + local.tee $4 + i32.store offset=8 + local.get $4 + i32.const 0 + i32.const 1000 + call $~lib/typedarray/Int16Array#__set + local.get $4 + i32.const 1 + i32.const 1001 + call $~lib/typedarray/Int16Array#__set + local.get $4 + i32.const 2 + i32.const 1002 + call $~lib/typedarray/Int16Array#__set global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 + i32.const 10 + call $~lib/typedarray/Int16Array#constructor + local.tee $1 + i32.store offset=12 global.get $~lib/memory/__stack_pointer - local.get $0 - i32.const 9 - call $~lib/typedarray/Float32Array#subarray - local.tee $0 + i32.const 8848 i32.store offset=16 + local.get $1 + call $~lib/typedarray/Int16Array#set<~lib/array/Array> + i32.const 10 + i32.const 1 + i32.const 64 + i32.const 9792 + call $~lib/rt/__newArray + local.set $0 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 603 - 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=16 + local.get $1 local.get $0 - f32.const 4 - i32.const 0 - call $~lib/typedarray/Float32Array#indexOf - if - i32.const 0 - i32.const 1568 - i32.const 604 - i32.const 3 - call $~lib/builtins/abort - unreachable - end + call $std/typedarray/valuesEqual<~lib/typedarray/Int16Array> global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - f32.const 5 + i32.const 8928 + i32.store offset=16 i32.const 0 - call $~lib/typedarray/Float32Array#indexOf - i32.const 1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 605 + local.set $0 + block $folding-inner0 + i32.const 8940 + i32.load 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.add + local.get $1 + i32.load offset=8 + i32.const 1 + i32.shr_u + i32.gt_s + br_if $folding-inner0 + local.get $1 + i32.load offset=4 + i32.const 6 + i32.add + local.set $5 + i32.const 8932 + i32.load + local.set $6 + i32.const 8940 + i32.load + local.set $9 + loop $for-loop|0 + local.get $0 + local.get $9 + i32.lt_s + if + local.get $5 + local.get $0 + i32.const 1 + i32.shl + i32.add + local.get $6 + local.get $0 + i32.const 2 + i32.shl + i32.add + f32.load + local.tee $7 + local.get $7 + f32.sub + f32.const 0 + f32.eq + if (result i32) + local.get $7 + i32.trunc_f32_s + else + i32.const 0 + end + i32.store16 + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|0 + end + end + i32.const 10 + i32.const 1 + i32.const 64 + i32.const 9888 + call $~lib/rt/__newArray + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=16 + local.get $1 + local.get $0 + call $std/typedarray/valuesEqual<~lib/typedarray/Int16Array> + local.get $1 + local.get $3 + call $~lib/typedarray/Int16Array#set<~lib/typedarray/Int64Array> + i32.const 10 + i32.const 1 + i32.const 64 + i32.const 9936 + call $~lib/rt/__newArray + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=16 + local.get $1 + local.get $0 + call $std/typedarray/valuesEqual<~lib/typedarray/Int16Array> + global.get $~lib/memory/__stack_pointer + i32.const 9024 + i32.store offset=16 i32.const 0 - i32.const 1568 - i32.const 606 - i32.const 3 - call $~lib/builtins/abort - unreachable + local.set $0 + i32.const 9036 + i32.load + i32.const 2 + i32.add + local.get $1 + i32.load offset=8 + i32.const 1 + i32.shr_u + i32.gt_s + br_if $folding-inner0 + local.get $1 + i32.load offset=4 + i32.const 4 + i32.add + local.set $3 + i32.const 9028 + i32.load + local.set $5 + i32.const 9036 + i32.load + local.set $6 + loop $for-loop|00 + local.get $0 + local.get $6 + i32.lt_s + if + local.get $3 + local.get $0 + i32.const 1 + i32.shl + i32.add + local.get $5 + local.get $0 + i32.const 3 + i32.shl + i32.add + f64.load + local.tee $8 + local.get $8 + f64.sub + f64.const 0 + f64.eq + if (result i32) + local.get $8 + i32.trunc_f64_s + else + i32.const 0 + end + i32.store16 + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|00 + end + end + i32.const 10 + i32.const 1 + i32.const 64 + i32.const 9984 + call $~lib/rt/__newArray + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=16 + local.get $1 + local.get $0 + call $std/typedarray/valuesEqual<~lib/typedarray/Int16Array> + local.get $1 + local.get $2 + call $~lib/typedarray/Int16Array#set<~lib/typedarray/Uint8Array> + local.get $1 + local.get $4 + call $~lib/typedarray/Int16Array#set<~lib/typedarray/Int16Array> + global.get $~lib/memory/__stack_pointer + i32.const 9104 + i32.store offset=16 + local.get $1 + call $~lib/typedarray/Int16Array#set<~lib/array/Array> + i32.const 10 + i32.const 1 + i32.const 64 + i32.const 10032 + call $~lib/rt/__newArray + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=16 + local.get $1 + local.get $2 + call $std/typedarray/valuesEqual<~lib/typedarray/Int16Array> + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.add + global.set $~lib/memory/__stack_pointer + return end + i32.const 1360 + i32.const 1632 + i32.const 1865 + i32.const 47 + call $~lib/builtins/abort + unreachable + ) + (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 - 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 607 - i32.const 3 - call $~lib/builtins/abort - unreachable - end + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check 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 608 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 + i32.store local.get $0 - f32.const 5 - i32.const 1 - call $~lib/typedarray/Float32Array#indexOf + i32.load offset=8 i32.const 1 + i32.shr_u + local.tee $3 + local.get $1 + i32.load offset=12 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 $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 610 + i32.const 735 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) - (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 - 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.set $3 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.0 - local.get $2 - local.get $0 - i32.load offset=8 - i32.const 3 - i32.shr_u - local.tee $4 - i32.ge_s - i32.const 1 - local.get $4 - select - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.0 + loop $for-loop|0 local.get $2 - i32.const 0 + local.get $3 i32.lt_s if + local.get $0 local.get $2 - local.get $4 - i32.add - local.tee $2 - i32.const 0 - local.get $2 - i32.const 0 - i32.gt_s - select - local.set $2 - end - local.get $0 - i32.load offset=4 - local.set $0 - loop $while-continue|0 + call $~lib/typedarray/Uint16Array#__uget + local.tee $4 + local.get $1 local.get $2 - local.get $4 - i32.lt_s + call $~lib/typedarray/Uint16Array#__uget + local.tee $5 + i32.ne if - local.get $1 - local.get $0 - local.get $2 - local.tee $3 + global.get $~lib/memory/__stack_pointer + i32.const 10128 + i32.store + i32.const 10128 i32.const 3 - i32.shl - i32.add - f64.load - f64.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.0 - local.get $3 - i32.const 1 - i32.add - local.set $2 - br $while-continue|0 + 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 741 + 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 - i32.const -1 - local.set $3 end 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/typedarray/Float64Array#lastIndexOf (param $0 i32) (param $1 f64) (param $2 i32) (result i32) + (func $std/typedarray/testTypedArraySet<~lib/typedarray/Uint16Array> + (local $0 i32) + (local $1 i32) + (local $2 i32) (local $3 i32) (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 f32) + (local $8 f64) + (local $9 i32) global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 20 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check @@ -28569,73 +26997,291 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store + i64.const 0 + i64.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $0 + i32.const 0 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Int64Array#constructor + local.tee $3 + i32.store + local.get $3 + i32.const 0 + i64.const 7 + call $~lib/typedarray/Int64Array#__set + local.get $3 + i32.const 1 + i64.const 8 + call $~lib/typedarray/Int64Array#__set + local.get $3 + 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=4 - i32.const -1 - local.set $3 - block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.0 - local.get $0 - i32.load offset=8 + local.get $2 + i32.const 0 + i32.const 100 + call $~lib/typedarray/Uint8Array#__set + local.get $2 + i32.const 1 + i32.const 101 + call $~lib/typedarray/Uint8Array#__set + local.get $2 + i32.const 2 + i32.const 102 + call $~lib/typedarray/Uint8Array#__set + 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 $4 + i32.store offset=8 + local.get $4 + i32.const 0 + i32.const 1000 + call $~lib/typedarray/Int16Array#__set + local.get $4 + i32.const 1 + i32.const 1001 + call $~lib/typedarray/Int16Array#__set + 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/Uint16Array#constructor + local.tee $1 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 8848 + i32.store offset=16 + local.get $1 + call $~lib/typedarray/Int16Array#set<~lib/array/Array> + i32.const 10 + i32.const 1 + i32.const 65 + i32.const 10080 + call $~lib/rt/__newArray + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=16 + local.get $1 + local.get $0 + call $std/typedarray/valuesEqual<~lib/typedarray/Uint16Array> + global.get $~lib/memory/__stack_pointer + i32.const 8928 + i32.store offset=16 + i32.const 0 + local.set $0 + block $folding-inner0 + i32.const 8940 + i32.load i32.const 3 + i32.add + local.get $1 + i32.load offset=8 + i32.const 1 i32.shr_u - local.tee $4 - i32.eqz - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.0 - local.get $2 - local.get $4 + i32.gt_s + br_if $folding-inner0 + local.get $1 + i32.load offset=4 + i32.const 6 i32.add - local.get $4 + local.set $5 + i32.const 8932 + i32.load + local.set $6 + i32.const 8940 + i32.load + local.set $9 + loop $for-loop|0 + local.get $0 + local.get $9 + i32.lt_s + if + local.get $5 + local.get $0 + i32.const 1 + i32.shl + i32.add + local.get $6 + local.get $0 + i32.const 2 + i32.shl + i32.add + f32.load + local.tee $7 + local.get $7 + f32.sub + f32.const 0 + f32.eq + if (result i32) + local.get $7 + i32.trunc_f32_u + else + i32.const 0 + end + i32.store16 + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|0 + end + end + i32.const 10 i32.const 1 - i32.sub - local.get $2 - local.get $2 - local.get $4 - i32.ge_s - select - local.get $2 - i32.const 0 - i32.lt_s - select - local.set $2 + i32.const 65 + i32.const 10176 + call $~lib/rt/__newArray + local.set $0 + global.get $~lib/memory/__stack_pointer local.get $0 - i32.load offset=4 + i32.store offset=16 + local.get $1 + local.get $0 + call $std/typedarray/valuesEqual<~lib/typedarray/Uint16Array> + local.get $1 + local.get $3 + call $~lib/typedarray/Int16Array#set<~lib/typedarray/Int64Array> + i32.const 10 + i32.const 1 + i32.const 65 + i32.const 10224 + call $~lib/rt/__newArray local.set $0 - loop $while-continue|0 - local.get $2 - i32.const 0 - i32.ge_s + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=16 + local.get $1 + local.get $0 + call $std/typedarray/valuesEqual<~lib/typedarray/Uint16Array> + global.get $~lib/memory/__stack_pointer + i32.const 9024 + i32.store offset=16 + i32.const 0 + local.set $0 + i32.const 9036 + i32.load + i32.const 2 + i32.add + local.get $1 + i32.load offset=8 + i32.const 1 + i32.shr_u + i32.gt_s + br_if $folding-inner0 + local.get $1 + i32.load offset=4 + i32.const 4 + i32.add + local.set $3 + i32.const 9028 + i32.load + local.set $5 + i32.const 9036 + i32.load + local.set $6 + loop $for-loop|00 + local.get $0 + local.get $6 + i32.lt_s if - local.get $1 + local.get $3 + local.get $0 + i32.const 1 + i32.shl + i32.add + local.get $5 local.get $0 - local.get $2 - local.tee $3 i32.const 3 i32.shl i32.add f64.load + local.tee $8 + local.get $8 + f64.sub + f64.const 0 f64.eq - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.0 - local.get $3 + if (result i32) + local.get $8 + i32.trunc_f64_u + else + i32.const 0 + end + i32.store16 + local.get $0 i32.const 1 - i32.sub - local.set $2 - br $while-continue|0 + i32.add + local.set $0 + br $for-loop|00 end end - i32.const -1 - local.set $3 + i32.const 10 + i32.const 1 + i32.const 65 + i32.const 10272 + call $~lib/rt/__newArray + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=16 + local.get $1 + local.get $0 + call $std/typedarray/valuesEqual<~lib/typedarray/Uint16Array> + local.get $1 + local.get $2 + call $~lib/typedarray/Int16Array#set<~lib/typedarray/Uint8Array> + local.get $1 + local.get $4 + call $~lib/typedarray/Int16Array#set<~lib/typedarray/Int16Array> + global.get $~lib/memory/__stack_pointer + i32.const 9104 + i32.store offset=16 + local.get $1 + call $~lib/typedarray/Int16Array#set<~lib/array/Array> + i32.const 10 + i32.const 1 + i32.const 65 + i32.const 10320 + call $~lib/rt/__newArray + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=16 + local.get $1 + local.get $2 + call $std/typedarray/valuesEqual<~lib/typedarray/Uint16Array> + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.add + global.set $~lib/memory/__stack_pointer + return end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $3 + i32.const 1360 + i32.const 1632 + i32.const 1865 + i32.const 47 + call $~lib/builtins/abort + unreachable ) - (func $~lib/typedarray/Float64Array#lastIndexOf@varargs (param $0 i32) (param $1 f64) (result i32) + (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 @@ -28644,38 +27290,82 @@ 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 + local.get $0 + i32.load offset=8 + i32.const 2 + i32.shr_u + local.tee $3 + local.get $1 + i32.load offset=12 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 735 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + loop $for-loop|0 + local.get $2 + local.get $3 + i32.lt_s + if + local.get $0 + local.get $2 + call $~lib/typedarray/Int32Array#__uget + local.tee $4 + local.get $1 + local.get $2 + call $~lib/typedarray/Int32Array#__uget + local.tee $5 + i32.ne + if + global.get $~lib/memory/__stack_pointer + i32.const 10432 + i32.store + i32.const 10432 + 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 741 + 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 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=8 - i32.const 3 - i32.shr_u - local.set $2 end - 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 ) - (func $std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Float64Array,f64> + (func $std/typedarray/testTypedArraySet<~lib/typedarray/Int32Array> (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 f64) + (local $10 i32) global.get $~lib/memory/__stack_pointer i32.const 20 i32.sub @@ -28691,523 +27381,746 @@ i32.const 0 i32.store offset=16 global.get $~lib/memory/__stack_pointer - i32.const 7024 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 7024 - i32.store offset=4 - i32.const 7036 - i32.load - local.tee $0 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $0 - call $~lib/typedarray/Float64Array#constructor + i32.const 3 + call $~lib/typedarray/Int64Array#constructor local.tee $0 - i32.store offset=8 - loop $for-loop|0 - local.get $1 - local.get $2 - i32.lt_s - if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 7024 - i32.store offset=12 - local.get $0 - local.get $1 - i32.const 7024 - local.get $1 - call $~lib/array/Array#__get - f64.convert_i32_s - call $~lib/typedarray/Float64Array#__set - 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 - f64.const 0 - i32.const 0 - call $~lib/typedarray/Float64Array#indexOf - if - i32.const 0 - i32.const 1568 - i32.const 580 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 + i32.store 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 581 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer + i64.const 7 + call $~lib/typedarray/Int64Array#__set local.get $0 - i32.store offset=4 + i32.const 1 + i64.const 8 + call $~lib/typedarray/Int64Array#__set local.get $0 - 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 582 - i32.const 3 - call $~lib/builtins/abort - unreachable - end + i32.const 2 + i64.const 9 + call $~lib/typedarray/Int64Array#__set global.get $~lib/memory/__stack_pointer - local.get $0 + i32.const 4 + call $~lib/typedarray/Uint8Array#constructor + local.tee $3 i32.store offset=4 - local.get $0 - f64.const 3 + local.get $3 i32.const 0 - call $~lib/typedarray/Float64Array#indexOf - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 583 - 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 3 + i32.const 100 + call $~lib/typedarray/Uint8Array#__set + local.get $3 + i32.const 1 + i32.const 101 + call $~lib/typedarray/Uint8Array#__set + local.get $3 i32.const 2 - call $~lib/typedarray/Float64Array#indexOf + i32.const 102 + call $~lib/typedarray/Uint8Array#__set + local.get $3 i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 584 - i32.const 3 - call $~lib/builtins/abort - unreachable - end + i32.const 103 + call $~lib/typedarray/Uint8Array#__set global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - 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 585 - i32.const 3 - call $~lib/builtins/abort - unreachable - end + call $~lib/typedarray/Int16Array#constructor + local.tee $4 + i32.store offset=8 + local.get $4 + i32.const 0 + i32.const 1000 + call $~lib/typedarray/Int16Array#__set + local.get $4 + i32.const 1 + i32.const 1001 + call $~lib/typedarray/Int16Array#__set + local.get $4 + i32.const 2 + i32.const 1002 + call $~lib/typedarray/Int16Array#__set global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - 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 586 - i32.const 3 - call $~lib/builtins/abort - unreachable - end + i32.const 10 + call $~lib/typedarray/Int32Array#constructor + local.tee $1 + i32.store offset=12 global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - f64.const 1 + i32.const 8848 + i32.store offset=16 + local.get $1 + call $~lib/typedarray/Int32Array#set<~lib/array/Array> i32.const 10 - call $~lib/typedarray/Float64Array#indexOf - i32.const -1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 587 - i32.const 3 - call $~lib/builtins/abort - unreachable - end + i32.const 2 + i32.const 16 + i32.const 10368 + call $~lib/rt/__newArray + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - 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 588 - i32.const 3 - call $~lib/builtins/abort - unreachable - end + local.get $2 + i32.store offset=16 + local.get $1 + local.get $2 + call $std/typedarray/valuesEqual<~lib/typedarray/Int32Array> global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - i32.const 1 - global.set $~argumentsLength - local.get $0 - f64.const 0 - call $~lib/typedarray/Float64Array#lastIndexOf@varargs - if - i32.const 0 - i32.const 1568 - i32.const 590 + i32.const 8928 + i32.store offset=16 + i32.const 0 + local.set $2 + block $folding-inner0 + i32.const 8940 + i32.load i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - i32.const 1 - global.set $~argumentsLength - local.get $0 - f64.const 11 - call $~lib/typedarray/Float64Array#lastIndexOf@varargs - i32.const -1 - i32.ne - if + i32.add + local.get $1 + i32.load offset=8 + i32.const 2 + i32.shr_u + i32.gt_s + br_if $folding-inner0 + local.get $1 + i32.load offset=4 + i32.const 12 + i32.add + local.set $5 + i32.const 8932 + i32.load + local.set $6 + i32.const 8940 + i32.load + local.set $10 + loop $for-loop|0 + local.get $2 + local.get $10 + i32.lt_s + if + local.get $5 + local.get $2 + i32.const 2 + i32.shl + local.tee $7 + i32.add + local.get $6 + local.get $7 + i32.add + f32.load + local.tee $8 + local.get $8 + f32.sub + f32.const 0 + f32.eq + if (result i32) + local.get $8 + i32.trunc_f32_s + else + i32.const 0 + end + i32.store + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|0 + end + end + i32.const 10 + i32.const 2 + i32.const 16 + i32.const 10480 + call $~lib/rt/__newArray + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=16 + local.get $1 + local.get $2 + call $std/typedarray/valuesEqual<~lib/typedarray/Int32Array> + local.get $1 + local.get $0 + call $~lib/typedarray/Int32Array#set<~lib/typedarray/Int64Array> + i32.const 10 + i32.const 2 + i32.const 16 + i32.const 10544 + call $~lib/rt/__newArray + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=16 + local.get $1 + local.get $0 + call $std/typedarray/valuesEqual<~lib/typedarray/Int32Array> + global.get $~lib/memory/__stack_pointer + i32.const 9024 + i32.store offset=16 i32.const 0 - i32.const 1568 - i32.const 591 - i32.const 3 - call $~lib/builtins/abort - unreachable + local.set $0 + i32.const 9036 + i32.load + i32.const 2 + i32.add + local.get $1 + i32.load offset=8 + i32.const 2 + i32.shr_u + i32.gt_s + br_if $folding-inner0 + local.get $1 + i32.load offset=4 + i32.const 8 + i32.add + local.set $7 + i32.const 9028 + i32.load + local.set $5 + i32.const 9036 + i32.load + local.set $6 + loop $for-loop|00 + local.get $0 + local.get $6 + i32.lt_s + if + local.get $7 + local.get $0 + i32.const 2 + i32.shl + i32.add + local.get $5 + local.get $0 + i32.const 3 + i32.shl + i32.add + f64.load + local.tee $9 + local.get $9 + f64.sub + f64.const 0 + f64.eq + if (result i32) + local.get $9 + i32.trunc_f64_s + else + i32.const 0 + end + i32.store + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|00 + end + end + i32.const 10 + i32.const 2 + i32.const 16 + i32.const 10608 + call $~lib/rt/__newArray + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=16 + local.get $1 + local.get $0 + call $std/typedarray/valuesEqual<~lib/typedarray/Int32Array> + local.get $1 + local.get $3 + call $~lib/typedarray/Int32Array#set<~lib/typedarray/Uint8Array> + local.get $1 + local.get $4 + call $~lib/typedarray/Int32Array#set<~lib/typedarray/Int16Array> + global.get $~lib/memory/__stack_pointer + i32.const 9104 + i32.store offset=16 + local.get $1 + call $~lib/typedarray/Int32Array#set<~lib/array/Array> + i32.const 10 + i32.const 2 + i32.const 16 + i32.const 10672 + call $~lib/rt/__newArray + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=16 + local.get $1 + local.get $3 + call $std/typedarray/valuesEqual<~lib/typedarray/Int32Array> + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.add + global.set $~lib/memory/__stack_pointer + return end + i32.const 1360 + i32.const 1632 + i32.const 1865 + i32.const 47 + call $~lib/builtins/abort + unreachable + ) + (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 - local.get $0 - i32.store offset=4 - i32.const 1 - global.set $~argumentsLength - local.get $0 - f64.const -1 - call $~lib/typedarray/Float64Array#lastIndexOf@varargs - i32.const -1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 592 - i32.const 3 - call $~lib/builtins/abort - unreachable - end + 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 $0 - i32.store offset=4 - i32.const 1 - global.set $~argumentsLength - local.get $0 - f64.const 3 - call $~lib/typedarray/Float64Array#lastIndexOf@varargs - i32.const 3 + i32.load offset=8 + i32.const 2 + i32.shr_u + local.tee $3 + local.get $1 + i32.load offset=12 i32.ne if i32.const 0 i32.const 1568 - i32.const 593 + i32.const 735 i32.const 3 call $~lib/builtins/abort unreachable end + loop $for-loop|0 + local.get $2 + local.get $3 + i32.lt_s + if + local.get $0 + local.get $2 + call $~lib/typedarray/Uint32Array#__uget + local.tee $4 + local.get $1 + local.get $2 + call $~lib/typedarray/Uint32Array#__uget + local.tee $5 + i32.ne + if + global.get $~lib/memory/__stack_pointer + i32.const 10800 + i32.store + i32.const 10800 + 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 741 + 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 - local.get $0 - i32.store offset=4 - local.get $0 - 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 594 - i32.const 3 - call $~lib/builtins/abort - unreachable - end + 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 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 f32) + (local $9 f64) + (local $10 i32) global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - 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 595 - i32.const 3 - call $~lib/builtins/abort - unreachable - end + 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 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Int64Array#constructor + local.tee $0 + i32.store local.get $0 - i32.store offset=4 + i32.const 0 + i64.const 7 + call $~lib/typedarray/Int64Array#__set + local.get $0 + i32.const 1 + i64.const 8 + call $~lib/typedarray/Int64Array#__set local.get $0 - 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 596 - i32.const 3 - call $~lib/builtins/abort - unreachable - end + i64.const 9 + call $~lib/typedarray/Int64Array#__set global.get $~lib/memory/__stack_pointer - local.get $0 + i32.const 4 + call $~lib/typedarray/Uint8Array#constructor + local.tee $3 i32.store offset=4 - local.get $0 - f64.const 1 + local.get $3 + i32.const 0 i32.const 100 - call $~lib/typedarray/Float64Array#lastIndexOf + call $~lib/typedarray/Uint8Array#__set + local.get $3 i32.const 1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 597 - i32.const 3 - call $~lib/builtins/abort - unreachable - end + i32.const 101 + call $~lib/typedarray/Uint8Array#__set + local.get $3 + i32.const 2 + i32.const 102 + call $~lib/typedarray/Uint8Array#__set + local.get $3 + i32.const 3 + i32.const 103 + call $~lib/typedarray/Uint8Array#__set global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - f64.const 1 - i32.const -10 - call $~lib/typedarray/Float64Array#lastIndexOf + i32.const 3 + call $~lib/typedarray/Int16Array#constructor + local.tee $4 + i32.store offset=8 + local.get $4 + i32.const 0 + i32.const 1000 + call $~lib/typedarray/Int16Array#__set + local.get $4 i32.const 1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 598 - 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 1 - i32.const -11 - call $~lib/typedarray/Float64Array#lastIndexOf - i32.const -1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 599 - i32.const 3 - call $~lib/builtins/abort - unreachable - end + i32.const 1001 + call $~lib/typedarray/Int16Array#__set + local.get $4 + i32.const 2 + i32.const 1002 + call $~lib/typedarray/Int16Array#__set global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 + i32.const 10 + call $~lib/typedarray/Uint32Array#constructor + local.tee $1 + i32.store offset=12 global.get $~lib/memory/__stack_pointer - local.get $0 - i32.const 4 - i32.const 9 - call $~lib/typedarray/Float64Array#subarray - local.tee $0 + i32.const 8848 i32.store offset=16 + local.get $1 + call $~lib/typedarray/Int32Array#set<~lib/array/Array> + i32.const 10 + i32.const 2 + i32.const 66 + i32.const 10736 + call $~lib/rt/__newArray + local.set $2 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 603 - 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 604 - i32.const 3 - call $~lib/builtins/abort - unreachable - end + local.get $2 + i32.store offset=16 + local.get $1 + local.get $2 + call $std/typedarray/valuesEqual<~lib/typedarray/Uint32Array> global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - f64.const 5 + i32.const 8928 + i32.store offset=16 i32.const 0 - call $~lib/typedarray/Float64Array#indexOf - i32.const 1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 605 + local.set $2 + block $folding-inner0 + i32.const 8940 + i32.load 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.add + local.get $1 + i32.load offset=8 + i32.const 2 + i32.shr_u + i32.gt_s + br_if $folding-inner0 + local.get $1 + i32.load offset=4 + i32.const 12 + i32.add + local.set $5 + i32.const 8932 + i32.load + local.set $6 + i32.const 8940 + i32.load + local.set $10 + loop $for-loop|0 + local.get $2 + local.get $10 + i32.lt_s + if + local.get $5 + local.get $2 + i32.const 2 + i32.shl + local.tee $7 + i32.add + local.get $6 + local.get $7 + i32.add + f32.load + local.tee $8 + local.get $8 + f32.sub + f32.const 0 + f32.eq + if (result i32) + local.get $8 + i32.trunc_f32_u + else + i32.const 0 + end + i32.store + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|0 + end + end + i32.const 10 + i32.const 2 + i32.const 66 + i32.const 10848 + call $~lib/rt/__newArray + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=16 + local.get $1 + local.get $2 + call $std/typedarray/valuesEqual<~lib/typedarray/Uint32Array> + local.get $1 + local.get $0 + call $~lib/typedarray/Int32Array#set<~lib/typedarray/Int64Array> + i32.const 10 + i32.const 2 + i32.const 66 + i32.const 10912 + call $~lib/rt/__newArray + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=16 + local.get $1 + local.get $0 + call $std/typedarray/valuesEqual<~lib/typedarray/Uint32Array> + global.get $~lib/memory/__stack_pointer + i32.const 9024 + i32.store offset=16 i32.const 0 - i32.const 1568 - i32.const 606 - i32.const 3 - call $~lib/builtins/abort - unreachable + local.set $0 + i32.const 9036 + i32.load + i32.const 2 + i32.add + local.get $1 + i32.load offset=8 + i32.const 2 + i32.shr_u + i32.gt_s + br_if $folding-inner0 + local.get $1 + i32.load offset=4 + i32.const 8 + i32.add + local.set $7 + i32.const 9028 + i32.load + local.set $5 + i32.const 9036 + i32.load + local.set $6 + loop $for-loop|00 + local.get $0 + local.get $6 + i32.lt_s + if + local.get $7 + local.get $0 + i32.const 2 + i32.shl + i32.add + local.get $5 + local.get $0 + i32.const 3 + i32.shl + i32.add + f64.load + local.tee $9 + local.get $9 + f64.sub + f64.const 0 + f64.eq + if (result i32) + local.get $9 + i32.trunc_f64_u + else + i32.const 0 + end + i32.store + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|00 + end + end + i32.const 10 + i32.const 2 + i32.const 66 + i32.const 10976 + call $~lib/rt/__newArray + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=16 + local.get $1 + local.get $0 + call $std/typedarray/valuesEqual<~lib/typedarray/Uint32Array> + local.get $1 + local.get $3 + call $~lib/typedarray/Int32Array#set<~lib/typedarray/Uint8Array> + local.get $1 + local.get $4 + call $~lib/typedarray/Int32Array#set<~lib/typedarray/Int16Array> + global.get $~lib/memory/__stack_pointer + i32.const 9104 + i32.store offset=16 + local.get $1 + call $~lib/typedarray/Int32Array#set<~lib/array/Array> + i32.const 10 + i32.const 2 + i32.const 66 + i32.const 11040 + call $~lib/rt/__newArray + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=16 + local.get $1 + local.get $3 + call $std/typedarray/valuesEqual<~lib/typedarray/Uint32Array> + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.add + global.set $~lib/memory/__stack_pointer + return end + i32.const 1360 + i32.const 1632 + i32.const 1865 + i32.const 47 + 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 - 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 607 - i32.const 3 - call $~lib/builtins/abort - unreachable - end + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check 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 608 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 + i32.store local.get $0 - f64.const 5 - i32.const 1 - call $~lib/typedarray/Float64Array#indexOf - i32.const 1 + i32.load offset=8 + i32.const 3 + i32.shr_u + local.tee $3 + local.get $1 + i32.load offset=12 i32.ne if i32.const 0 i32.const 1568 - i32.const 609 + i32.const 735 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 610 - i32.const 3 - call $~lib/builtins/abort - unreachable + loop $for-loop|0 + local.get $2 + local.get $3 + i32.lt_s + if + local.get $0 + local.get $2 + call $~lib/typedarray/Int64Array#__uget + local.tee $4 + local.get $1 + local.get $2 + call $~lib/typedarray/Int64Array#__uget + local.tee $5 + i64.ne + if + global.get $~lib/memory/__stack_pointer + i32.const 11216 + i32.store + i32.const 11216 + 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 741 + 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 20 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/string/String#substring (param $0 i32) (param $1 i32) (result i32) + (func $std/typedarray/testTypedArraySet<~lib/typedarray/Int64Array> + (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 f64) global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 20 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check @@ -29215,410 +28128,373 @@ 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 0 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Int64Array#constructor + local.tee $3 i32.store + local.get $3 i32.const 0 - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 + i64.const 7 + call $~lib/typedarray/Int64Array#__set + local.get $3 i32.const 1 - i32.shr_u + i64.const 8 + call $~lib/typedarray/Int64Array#__set + local.get $3 + 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=4 local.get $2 i32.const 0 - i32.gt_s - select - local.tee $3 - local.get $1 - i32.const 0 - local.get $1 - i32.const 0 - i32.gt_s - select - local.tee $1 - local.get $2 - local.get $1 + i32.const 100 + call $~lib/typedarray/Uint8Array#__set local.get $2 - i32.lt_s - select - local.tee $1 - local.get $1 - local.get $3 - i32.lt_s - select i32.const 1 - i32.shl + i32.const 101 + call $~lib/typedarray/Uint8Array#__set + local.get $2 + i32.const 2 + i32.const 102 + call $~lib/typedarray/Uint8Array#__set + 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 $4 - local.get $3 - local.get $1 - local.get $1 - local.get $3 - i32.gt_s - select - i32.const 1 - i32.shl - local.tee $1 - 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 7072 - return - end + i32.store offset=8 + local.get $4 i32.const 0 + i32.const 1000 + call $~lib/typedarray/Int16Array#__set local.get $4 - local.get $2 i32.const 1 - i32.shl - i32.eq - local.get $1 - select - if - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - return - end + i32.const 1001 + call $~lib/typedarray/Int16Array#__set + local.get $4 + i32.const 2 + i32.const 1002 + call $~lib/typedarray/Int16Array#__set global.get $~lib/memory/__stack_pointer - local.get $3 - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $2 - i32.store offset=4 - local.get $2 - local.get $0 - local.get $1 - i32.add - local.get $3 - call $~lib/memory/memory.copy - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $2 - ) - (func $~lib/util/string/joinIntegerArray (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 10 + call $~lib/typedarray/Int64Array#constructor + local.tee $1 + i32.store offset=12 global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check + i32.const 8848 + i32.store offset=16 + local.get $1 + call $~lib/typedarray/Int64Array#set<~lib/array/Array> + i32.const 10 + i32.const 3 + i32.const 67 + i32.const 11104 + call $~lib/rt/__newArray + local.set $0 global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store + local.get $0 + i32.store offset=16 local.get $1 - i32.const 1 - i32.sub - local.tee $3 + local.get $0 + call $std/typedarray/valuesEqual<~lib/typedarray/Int64Array> + global.get $~lib/memory/__stack_pointer + i32.const 8928 + i32.store offset=16 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 7072 - return - end + local.set $0 block $folding-inner0 - local.get $3 - i32.eqz - if - local.get $0 - i32.load8_s - call $~lib/util/number/itoa32 - local.set $0 - br $folding-inner0 - end - global.get $~lib/memory/__stack_pointer - i32.const 7424 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.const 7420 + i32.const 8940 i32.load - i32.const 1 - i32.shr_u - local.tee $4 - i32.const 11 + i32.const 3 i32.add - i32.mul - i32.const 11 + local.get $1 + i32.load offset=8 + i32.const 3 + i32.shr_u + i32.gt_s + br_if $folding-inner0 + local.get $1 + i32.load offset=4 + i32.const 24 i32.add - local.tee $6 - i32.const 1 - i32.shl - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $1 - i32.store offset=4 + local.set $5 + i32.const 8932 + i32.load + local.set $6 + i32.const 8940 + i32.load + local.set $7 loop $for-loop|0 - local.get $3 - local.get $5 - i32.gt_s + local.get $0 + local.get $7 + i32.lt_s if - local.get $1 - local.get $2 - i32.const 1 + local.get $5 + local.get $0 + i32.const 3 i32.shl i32.add + local.get $6 local.get $0 - local.get $5 - i32.add - i32.load8_s - call $~lib/util/number/itoa_buffered - local.get $2 + i32.const 2 + i32.shl i32.add - local.set $2 - local.get $4 - if - local.get $1 - local.get $2 - i32.const 1 - i32.shl - i32.add - i32.const 7424 - local.get $4 - i32.const 1 - i32.shl - call $~lib/memory/memory.copy - local.get $2 - local.get $4 - i32.add - local.set $2 + f32.load + local.tee $8 + local.get $8 + f32.sub + f32.const 0 + f32.eq + if (result i64) + local.get $8 + i64.trunc_f32_s + else + i64.const 0 end - local.get $5 + i64.store + local.get $0 i32.const 1 i32.add - local.set $5 + local.set $0 br $for-loop|0 end end - local.get $6 + i32.const 10 + i32.const 3 + i32.const 67 + i32.const 11264 + call $~lib/rt/__newArray + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=16 local.get $1 - local.get $2 - i32.const 1 - i32.shl - i32.add local.get $0 + call $std/typedarray/valuesEqual<~lib/typedarray/Int64Array> + local.get $1 local.get $3 + call $~lib/typedarray/Int64Array#set<~lib/typedarray/Int64Array> + i32.const 10 + i32.const 3 + i32.const 67 + i32.const 11376 + call $~lib/rt/__newArray + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=16 + local.get $1 + local.get $0 + call $std/typedarray/valuesEqual<~lib/typedarray/Int64Array> + global.get $~lib/memory/__stack_pointer + i32.const 9024 + i32.store offset=16 + i32.const 0 + local.set $0 + i32.const 9036 + i32.load + i32.const 2 i32.add - i32.load8_s - call $~lib/util/number/itoa_buffered - local.get $2 - i32.add - local.tee $0 + local.get $1 + i32.load offset=8 + i32.const 3 + i32.shr_u i32.gt_s - if - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $1 + br_if $folding-inner0 + local.get $1 + i32.load offset=4 + i32.const 16 + i32.add + local.set $3 + i32.const 9028 + i32.load + local.set $5 + i32.const 9036 + i32.load + local.set $6 + loop $for-loop|00 local.get $0 - call $~lib/string/String#substring - local.set $0 - br $folding-inner0 + local.get $6 + i32.lt_s + if + local.get $3 + local.get $0 + i32.const 3 + i32.shl + local.tee $7 + i32.add + local.get $5 + local.get $7 + i32.add + f64.load + local.tee $9 + local.get $9 + f64.sub + f64.const 0 + f64.eq + if (result i64) + local.get $9 + i64.trunc_f64_s + else + i64.const 0 + end + i64.store + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|00 + end end + i32.const 10 + i32.const 3 + i32.const 67 + i32.const 11488 + call $~lib/rt/__newArray + local.set $0 global.get $~lib/memory/__stack_pointer - i32.const 8 + local.get $0 + i32.store offset=16 + local.get $1 + local.get $0 + call $std/typedarray/valuesEqual<~lib/typedarray/Int64Array> + local.get $1 + local.get $2 + call $~lib/typedarray/Int64Array#set<~lib/typedarray/Uint8Array> + local.get $1 + local.get $4 + call $~lib/typedarray/Int64Array#set<~lib/typedarray/Int16Array> + global.get $~lib/memory/__stack_pointer + i32.const 9104 + i32.store offset=16 + local.get $1 + call $~lib/typedarray/Int64Array#set<~lib/array/Array> + i32.const 10 + i32.const 3 + i32.const 67 + i32.const 11600 + call $~lib/rt/__newArray + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=16 + local.get $1 + local.get $2 + call $std/typedarray/valuesEqual<~lib/typedarray/Int64Array> + global.get $~lib/memory/__stack_pointer + i32.const 20 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 return end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - ) - (func $~lib/typedarray/Int8Array#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 - call $~stack_check - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - 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=8 - global.get $~lib/memory/__stack_pointer - i32.const 7424 - i32.store - call $~lib/util/string/joinIntegerArray - 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 1865 + i32.const 47 + call $~lib/builtins/abort + unreachable ) - (func $~lib/string/String.__eq (param $0 i32) (param $1 i32) (result i32) + (func $std/typedarray/valuesEqual<~lib/typedarray/Uint64Array> (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) - (local $4 i32) + (local $4 i64) + (local $5 i64) 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 $0 + i32.load offset=8 + i32.const 3 + i32.shr_u + local.tee $3 local.get $1 - i32.eq + i32.load offset=12 + 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 1568 + i32.const 735 + i32.const 3 + call $~lib/builtins/abort + unreachable end - block $folding-inner0 - local.get $1 - i32.eqz - i32.const 1 - local.get $0 - select - 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 + loop $for-loop|0 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 (result i32) + local.get $3 + i32.lt_s + if local.get $0 - local.tee $3 - i32.const 7 - i32.and + local.get $2 + call $~lib/typedarray/Uint64Array#__uget + local.tee $4 local.get $1 - i32.const 7 - i32.and - i32.or - i32.eqz - i32.const 0 local.get $2 - i32.const 4 - i32.ge_u - select + call $~lib/typedarray/Uint64Array#__uget + local.tee $5 + i64.ne if - loop $do-continue|0 - local.get $3 - i64.load - local.get $1 - i64.load - i64.eq - if - local.get $3 - i32.const 8 - i32.add - local.set $3 - 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-continue|0 - end - end - end - loop $while-continue|1 + global.get $~lib/memory/__stack_pointer + i32.const 11824 + i32.store + i32.const 11824 + i32.const 3 local.get $2 - local.tee $0 - i32.const 1 - i32.sub - local.set $2 - local.get $0 - if - local.get $3 - i32.load16_u - local.tee $4 - local.get $1 - i32.load16_u - local.tee $0 - i32.ne - if - local.get $4 - local.get $0 - i32.sub - br $__inlined_func$~lib/util/string/compareImpl - end - local.get $3 - i32.const 2 - i32.add - local.set $3 - local.get $1 - i32.const 2 - i32.add - local.set $1 - br $while-continue|1 - end + 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 741 + i32.const 7 + call $~lib/builtins/abort + unreachable end - i32.const 0 + 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 - 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 ) - (func $std/typedarray/testArrayJoinAndToString<~lib/typedarray/Int8Array,i8> + (func $std/typedarray/testTypedArraySet<~lib/typedarray/Uint64Array> (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 f64) global.get $~lib/memory/__stack_pointer i32.const 20 i32.sub @@ -29634,311 +28510,366 @@ i32.const 0 i32.store offset=16 global.get $~lib/memory/__stack_pointer - i32.const 5 - call $~lib/typedarray/Int8Array#constructor - local.tee $0 + i32.const 3 + call $~lib/typedarray/Int64Array#constructor + local.tee $3 i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - local.tee $1 - i32.store offset=4 - local.get $1 + local.get $3 i32.const 0 + i64.const 7 + call $~lib/typedarray/Int64Array#__set + local.get $3 i32.const 1 - call $~lib/typedarray/Int8Array#__set + i64.const 8 + call $~lib/typedarray/Int64Array#__set + local.get $3 + i32.const 2 + i64.const 9 + call $~lib/typedarray/Int64Array#__set global.get $~lib/memory/__stack_pointer - local.get $1 + i32.const 4 + call $~lib/typedarray/Uint8Array#constructor + local.tee $2 i32.store offset=4 - local.get $1 + local.get $2 + i32.const 0 + i32.const 100 + call $~lib/typedarray/Uint8Array#__set + local.get $2 i32.const 1 + i32.const 101 + call $~lib/typedarray/Uint8Array#__set + local.get $2 i32.const 2 - call $~lib/typedarray/Int8Array#__set + i32.const 102 + call $~lib/typedarray/Uint8Array#__set + local.get $2 + i32.const 3 + i32.const 103 + call $~lib/typedarray/Uint8Array#__set global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 2 - i32.const 3 - call $~lib/typedarray/Int8Array#__set - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 i32.const 3 - i32.const 4 - call $~lib/typedarray/Int8Array#__set - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 4 - i32.const 5 - call $~lib/typedarray/Int8Array#__set + call $~lib/typedarray/Int16Array#constructor + local.tee $4 + i32.store offset=8 + local.get $4 + i32.const 0 + i32.const 1000 + call $~lib/typedarray/Int16Array#__set + local.get $4 + i32.const 1 + i32.const 1001 + call $~lib/typedarray/Int16Array#__set + local.get $4 + i32.const 2 + i32.const 1002 + call $~lib/typedarray/Int16Array#__set global.get $~lib/memory/__stack_pointer - local.get $1 + i32.const 10 + call $~lib/typedarray/Uint64Array#constructor + local.tee $1 i32.store offset=12 global.get $~lib/memory/__stack_pointer - i32.const 7424 + i32.const 8848 i32.store offset=16 local.get $1 - call $~lib/typedarray/Int8Array#join + call $~lib/typedarray/Int64Array#set<~lib/array/Array> + i32.const 10 + i32.const 3 + i32.const 68 + i32.const 11712 + call $~lib/rt/__newArray local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 7456 - i32.store offset=8 - local.get $0 - i32.const 7456 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 652 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=12 - 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 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 7424 - 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.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 - i32.const 7456 - i32.store offset=8 + i32.store offset=16 local.get $1 - i32.const 7456 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 653 - i32.const 5 - 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/util/string/joinIntegerArray (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 - call $~stack_check + local.get $0 + call $std/typedarray/valuesEqual<~lib/typedarray/Uint64Array> global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - local.get $1 - i32.const 1 - i32.sub - local.tee $3 + i32.const 8928 + i32.store offset=16 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 7072 - return - end + local.set $0 block $folding-inner0 - local.get $3 - i32.eqz - if - local.get $0 - i32.load8_u - call $~lib/util/number/utoa32 - local.set $0 - br $folding-inner0 - end - global.get $~lib/memory/__stack_pointer - i32.const 7424 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.const 7420 + i32.const 8940 i32.load - i32.const 1 - i32.shr_u - local.tee $4 - i32.const 10 + i32.const 3 i32.add - i32.mul - i32.const 10 + local.get $1 + i32.load offset=8 + i32.const 3 + i32.shr_u + i32.gt_s + br_if $folding-inner0 + local.get $1 + i32.load offset=4 + i32.const 24 i32.add - local.tee $6 - i32.const 1 - i32.shl - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $1 - i32.store offset=4 + local.set $5 + i32.const 8932 + i32.load + local.set $6 + i32.const 8940 + i32.load + local.set $7 loop $for-loop|0 - local.get $3 - local.get $5 - i32.gt_s + local.get $0 + local.get $7 + i32.lt_s if - local.get $1 - local.get $2 - i32.const 1 + local.get $5 + local.get $0 + i32.const 3 i32.shl i32.add + local.get $6 local.get $0 - local.get $5 - i32.add - i32.load8_u - call $~lib/util/number/itoa_buffered - local.get $2 + i32.const 2 + i32.shl i32.add - local.set $2 - local.get $4 - if - local.get $1 - local.get $2 - i32.const 1 - i32.shl - i32.add - i32.const 7424 - local.get $4 - i32.const 1 - i32.shl - call $~lib/memory/memory.copy - local.get $2 - local.get $4 - i32.add - local.set $2 + f32.load + local.tee $8 + local.get $8 + f32.sub + f32.const 0 + f32.eq + if (result i64) + local.get $8 + i64.trunc_f32_u + else + i64.const 0 end - local.get $5 + i64.store + local.get $0 i32.const 1 i32.add - local.set $5 + local.set $0 br $for-loop|0 end end - local.get $6 + i32.const 10 + i32.const 3 + i32.const 68 + i32.const 11872 + call $~lib/rt/__newArray + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=16 local.get $1 - local.get $2 - i32.const 1 - i32.shl - i32.add local.get $0 + call $std/typedarray/valuesEqual<~lib/typedarray/Uint64Array> + local.get $1 local.get $3 + call $~lib/typedarray/Int64Array#set<~lib/typedarray/Int64Array> + i32.const 10 + i32.const 3 + i32.const 68 + i32.const 11984 + call $~lib/rt/__newArray + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=16 + local.get $1 + local.get $0 + call $std/typedarray/valuesEqual<~lib/typedarray/Uint64Array> + global.get $~lib/memory/__stack_pointer + i32.const 9024 + i32.store offset=16 + i32.const 0 + local.set $0 + i32.const 9036 + i32.load + i32.const 2 i32.add - i32.load8_u - call $~lib/util/number/itoa_buffered - local.get $2 - i32.add - local.tee $0 + local.get $1 + i32.load offset=8 + i32.const 3 + i32.shr_u i32.gt_s - if - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $1 + br_if $folding-inner0 + local.get $1 + i32.load offset=4 + i32.const 16 + i32.add + local.set $3 + i32.const 9028 + i32.load + local.set $5 + i32.const 9036 + i32.load + local.set $6 + loop $for-loop|00 local.get $0 - call $~lib/string/String#substring - local.set $0 - br $folding-inner0 + local.get $6 + i32.lt_s + if + local.get $3 + local.get $0 + i32.const 3 + i32.shl + local.tee $7 + i32.add + local.get $5 + local.get $7 + i32.add + f64.load + local.tee $9 + local.get $9 + f64.sub + f64.const 0 + f64.eq + if (result i64) + local.get $9 + i64.trunc_f64_u + else + i64.const 0 + end + i64.store + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|00 + end end + i32.const 10 + i32.const 3 + i32.const 68 + i32.const 12096 + call $~lib/rt/__newArray + local.set $0 global.get $~lib/memory/__stack_pointer - i32.const 8 + local.get $0 + i32.store offset=16 + local.get $1 + local.get $0 + call $std/typedarray/valuesEqual<~lib/typedarray/Uint64Array> + local.get $1 + local.get $2 + call $~lib/typedarray/Int64Array#set<~lib/typedarray/Uint8Array> + local.get $1 + local.get $4 + call $~lib/typedarray/Int64Array#set<~lib/typedarray/Int16Array> + global.get $~lib/memory/__stack_pointer + i32.const 9104 + i32.store offset=16 + local.get $1 + call $~lib/typedarray/Int64Array#set<~lib/array/Array> + i32.const 10 + i32.const 3 + i32.const 68 + i32.const 12208 + call $~lib/rt/__newArray + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=16 + local.get $1 + local.get $2 + call $std/typedarray/valuesEqual<~lib/typedarray/Uint64Array> + global.get $~lib/memory/__stack_pointer + i32.const 20 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 return end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - ) - (func $~lib/typedarray/Uint8Array#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 - call $~stack_check - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - 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=8 - global.get $~lib/memory/__stack_pointer - i32.const 7424 - i32.store - call $~lib/util/string/joinIntegerArray - 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 1865 + i32.const 47 + call $~lib/builtins/abort + unreachable ) - (func $~lib/typedarray/Uint8Array#toString (param $0 i32) (result i32) + (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 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 - global.get $~lib/memory/__stack_pointer - local.get $0 + i32.const 0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 7424 - i32.store offset=4 local.get $0 - call $~lib/typedarray/Uint8Array#join + i32.load offset=8 + i32.const 2 + i32.shr_u + local.tee $3 + local.get $1 + i32.load offset=12 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 735 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + loop $for-loop|0 + local.get $2 + local.get $3 + i32.lt_s + if + local.get $0 + local.get $2 + call $~lib/typedarray/Float32Array#__uget + local.tee $4 + local.get $1 + local.get $2 + call $~lib/typedarray/Float32Array#__uget + local.tee $5 + f32.ne + if + global.get $~lib/memory/__stack_pointer + i32.const 12384 + i32.store + i32.const 12384 + 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 741 + 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 8 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer ) - (func $std/typedarray/testArrayJoinAndToString<~lib/typedarray/Uint8Array,u8> + (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.sub @@ -29954,105 +28885,472 @@ i32.const 0 i32.store offset=16 global.get $~lib/memory/__stack_pointer - i32.const 5 - call $~lib/typedarray/Uint8Array#constructor - local.tee $0 + i32.const 3 + call $~lib/typedarray/Int64Array#constructor + local.tee $2 i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - local.tee $1 - i32.store offset=4 - local.get $1 + local.get $2 i32.const 0 + i64.const 7 + call $~lib/typedarray/Int64Array#__set + local.get $2 i32.const 1 - call $~lib/typedarray/Uint8Array#__set + i64.const 8 + call $~lib/typedarray/Int64Array#__set + local.get $2 + i32.const 2 + i64.const 9 + call $~lib/typedarray/Int64Array#__set global.get $~lib/memory/__stack_pointer - local.get $1 + i32.const 4 + call $~lib/typedarray/Uint8Array#constructor + local.tee $0 i32.store offset=4 - local.get $1 + local.get $0 + i32.const 0 + i32.const 100 + call $~lib/typedarray/Uint8Array#__set + local.get $0 i32.const 1 - i32.const 2 + i32.const 101 call $~lib/typedarray/Uint8Array#__set - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 + local.get $0 i32.const 2 + i32.const 102 + call $~lib/typedarray/Uint8Array#__set + local.get $0 i32.const 3 + i32.const 103 call $~lib/typedarray/Uint8Array#__set global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 i32.const 3 - i32.const 4 - call $~lib/typedarray/Uint8Array#__set - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 4 - i32.const 5 - call $~lib/typedarray/Uint8Array#__set + call $~lib/typedarray/Int16Array#constructor + local.tee $4 + i32.store offset=8 + local.get $4 + i32.const 0 + i32.const 1000 + call $~lib/typedarray/Int16Array#__set + local.get $4 + i32.const 1 + i32.const 1001 + call $~lib/typedarray/Int16Array#__set + local.get $4 + i32.const 2 + i32.const 1002 + call $~lib/typedarray/Int16Array#__set global.get $~lib/memory/__stack_pointer - local.get $1 + i32.const 10 + call $~lib/typedarray/Float32Array#constructor + local.tee $3 i32.store offset=12 global.get $~lib/memory/__stack_pointer - i32.const 7424 + i32.const 8848 i32.store offset=16 - local.get $1 - call $~lib/typedarray/Uint8Array#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 7456 - i32.store offset=8 - local.get $0 - i32.const 7456 - call $~lib/string/String.__eq - i32.eqz - if + block $folding-inner0 + i32.const 8860 + i32.load + local.get $3 + i32.load offset=8 + i32.const 2 + i32.shr_u + i32.gt_s + br_if $folding-inner0 + local.get $3 + i32.load offset=4 + local.set $5 + i32.const 8852 + i32.load + local.set $6 + i32.const 8860 + i32.load + local.set $7 + loop $for-loop|0 + local.get $1 + local.get $7 + i32.lt_s + if + local.get $5 + local.get $1 + i32.const 2 + i32.shl + local.tee $8 + i32.add + local.get $6 + 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 + i32.const 10 + i32.const 2 + i32.const 61 + i32.const 12320 + call $~lib/rt/__newArray + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=16 + local.get $3 + local.get $1 + call $std/typedarray/valuesEqual<~lib/typedarray/Float32Array> + global.get $~lib/memory/__stack_pointer + i32.const 8928 + i32.store offset=16 + i32.const 8940 + i32.load + i32.const 3 + i32.add + local.get $3 + i32.load offset=8 + i32.const 2 + i32.shr_u + i32.gt_s + br_if $folding-inner0 + local.get $3 + i32.load offset=4 + i32.const 12 + i32.add + i32.const 8932 + i32.load + i32.const 8936 + i32.load + call $~lib/memory/memory.copy + i32.const 10 + i32.const 2 + i32.const 61 + i32.const 12432 + call $~lib/rt/__newArray + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=16 + local.get $3 + local.get $1 + call $std/typedarray/valuesEqual<~lib/typedarray/Float32Array> i32.const 0 - i32.const 1568 - i32.const 652 - i32.const 5 - call $~lib/builtins/abort - unreachable + local.set $1 + local.get $2 + i32.load offset=8 + i32.const 3 + i32.shr_u + i32.const 6 + i32.add + local.get $3 + i32.load offset=8 + i32.const 2 + i32.shr_u + i32.gt_s + br_if $folding-inner0 + local.get $3 + i32.load offset=4 + i32.const 24 + i32.add + local.set $5 + local.get $2 + i32.load offset=4 + local.set $6 + local.get $2 + i32.load offset=8 + i32.const 3 + i32.shr_u + local.set $2 + loop $for-loop|00 + local.get $1 + local.get $2 + 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 + i32.const 10 + i32.const 2 + i32.const 61 + i32.const 12496 + call $~lib/rt/__newArray + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=16 + local.get $3 + local.get $2 + call $std/typedarray/valuesEqual<~lib/typedarray/Float32Array> + i32.const 0 + local.set $2 + local.get $0 + i32.load offset=8 + local.get $3 + i32.load offset=8 + i32.const 2 + i32.shr_u + i32.gt_s + br_if $folding-inner0 + local.get $3 + i32.load offset=4 + local.set $1 + local.get $0 + i32.load offset=4 + local.set $5 + local.get $0 + i32.load offset=8 + local.set $0 + loop $for-loop|01 + local.get $0 + local.get $2 + i32.gt_s + if + local.get $1 + local.get $2 + i32.const 2 + i32.shl + i32.add + local.get $2 + local.get $5 + i32.add + i32.load8_u + f32.convert_i32_u + f32.store + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|01 + end + end + i32.const 0 + local.set $0 + local.get $4 + i32.load offset=8 + i32.const 1 + i32.shr_u + i32.const 4 + i32.add + local.get $3 + i32.load offset=8 + i32.const 2 + i32.shr_u + i32.gt_s + br_if $folding-inner0 + local.get $3 + i32.load offset=4 + i32.const 16 + i32.add + local.set $2 + local.get $4 + i32.load offset=4 + local.set $1 + local.get $4 + i32.load offset=8 + i32.const 1 + i32.shr_u + local.set $4 + loop $for-loop|02 + local.get $0 + local.get $4 + i32.lt_s + if + local.get $2 + 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 + f32.convert_i32_s + f32.store + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|02 + end + end + global.get $~lib/memory/__stack_pointer + i32.const 9104 + i32.store offset=16 + i32.const 0 + local.set $0 + i32.const 9116 + i32.load + i32.const 7 + i32.add + local.get $3 + i32.load offset=8 + i32.const 2 + i32.shr_u + i32.gt_s + br_if $folding-inner0 + local.get $3 + i32.load offset=4 + i32.const 28 + i32.add + local.set $2 + i32.const 9108 + i32.load + local.set $4 + i32.const 9116 + i32.load + local.set $1 + loop $for-loop|03 + 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 $4 + i32.add + i32.load8_s + f32.convert_i32_s + f32.store + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|03 + end + end + i32.const 10 + i32.const 2 + i32.const 61 + i32.const 12560 + call $~lib/rt/__newArray + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=16 + local.get $3 + local.get $0 + call $std/typedarray/valuesEqual<~lib/typedarray/Float32Array> + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.add + global.set $~lib/memory/__stack_pointer + return end + i32.const 1360 + i32.const 1632 + i32.const 1865 + i32.const 47 + call $~lib/builtins/abort + unreachable + ) + (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 - local.get $1 - i32.store offset=12 - local.get $1 - call $~lib/typedarray/Uint8Array#toString - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check global.get $~lib/memory/__stack_pointer - i32.const 7456 - i32.store offset=8 + i32.const 0 + i32.store + local.get $0 + i32.load offset=8 + i32.const 3 + i32.shr_u + local.tee $3 local.get $1 - i32.const 7456 - call $~lib/string/String.__eq - i32.eqz + i32.load offset=12 + i32.ne if i32.const 0 i32.const 1568 - i32.const 653 - i32.const 5 + i32.const 735 + i32.const 3 call $~lib/builtins/abort unreachable end + loop $for-loop|0 + local.get $2 + local.get $3 + i32.lt_s + if + local.get $0 + local.get $2 + call $~lib/typedarray/Float64Array#__uget + local.tee $4 + local.get $1 + local.get $2 + call $~lib/typedarray/Float64Array#__uget + local.tee $5 + f64.ne + if + global.get $~lib/memory/__stack_pointer + i32.const 12736 + i32.store + i32.const 12736 + 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 741 + 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 20 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer ) - (func $std/typedarray/testArrayJoinAndToString<~lib/typedarray/Uint8ClampedArray,u8> + (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 20 i32.sub @@ -30068,279 +29366,433 @@ i32.const 0 i32.store offset=16 global.get $~lib/memory/__stack_pointer - i32.const 5 - call $~lib/typedarray/Uint8ClampedArray#constructor - local.tee $0 + i32.const 3 + call $~lib/typedarray/Int64Array#constructor + local.tee $2 i32.store + local.get $2 + i32.const 0 + i64.const 7 + call $~lib/typedarray/Int64Array#__set + local.get $2 + i32.const 1 + i64.const 8 + call $~lib/typedarray/Int64Array#__set + local.get $2 + i32.const 2 + i64.const 9 + call $~lib/typedarray/Int64Array#__set global.get $~lib/memory/__stack_pointer - local.get $0 + i32.const 4 + call $~lib/typedarray/Uint8Array#constructor local.tee $1 i32.store offset=4 local.get $1 i32.const 0 - i32.const 1 - call $~lib/typedarray/Uint8ClampedArray#__set - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 + i32.const 100 + call $~lib/typedarray/Uint8Array#__set 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 + i32.const 101 + call $~lib/typedarray/Uint8Array#__set local.get $1 i32.const 2 - i32.const 3 - call $~lib/typedarray/Uint8ClampedArray#__set - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 + i32.const 102 + call $~lib/typedarray/Uint8Array#__set local.get $1 i32.const 3 - i32.const 4 - call $~lib/typedarray/Uint8ClampedArray#__set - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 4 - i32.const 5 - call $~lib/typedarray/Uint8ClampedArray#__set - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 7424 - i32.store offset=16 - local.get $1 - call $~lib/typedarray/Uint8Array#join - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 + i32.const 103 + call $~lib/typedarray/Uint8Array#__set global.get $~lib/memory/__stack_pointer - i32.const 7456 + i32.const 3 + call $~lib/typedarray/Int16Array#constructor + local.tee $4 i32.store offset=8 - local.get $0 - i32.const 7456 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 652 - i32.const 5 - call $~lib/builtins/abort - unreachable - end + local.get $4 + i32.const 0 + i32.const 1000 + call $~lib/typedarray/Int16Array#__set + local.get $4 + i32.const 1 + i32.const 1001 + call $~lib/typedarray/Int16Array#__set + local.get $4 + i32.const 2 + i32.const 1002 + call $~lib/typedarray/Int16Array#__set global.get $~lib/memory/__stack_pointer - local.get $1 + i32.const 10 + call $~lib/typedarray/Float64Array#constructor + local.tee $3 i32.store offset=12 - local.get $1 - call $~lib/typedarray/Uint8Array#toString - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 7456 - i32.store offset=8 - local.get $1 - i32.const 7456 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 653 - i32.const 5 - 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/util/string/joinIntegerArray (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 - call $~stack_check global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - local.get $1 - i32.const 1 - i32.sub - local.tee $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 7072 - return - end + i32.const 8848 + i32.store offset=16 block $folding-inner0 + i32.const 8860 + i32.load local.get $3 - i32.eqz - if + i32.load offset=8 + i32.const 3 + i32.shr_u + i32.gt_s + br_if $folding-inner0 + local.get $3 + i32.load offset=4 + local.set $5 + i32.const 8852 + i32.load + local.set $6 + i32.const 8860 + i32.load + local.set $7 + loop $for-loop|0 local.get $0 - i32.load16_s - call $~lib/util/number/itoa32 - local.set $0 - br $folding-inner0 + local.get $7 + i32.lt_s + if + local.get $5 + local.get $0 + i32.const 3 + i32.shl + i32.add + local.get $6 + local.get $0 + i32.const 2 + i32.shl + i32.add + i32.load + f64.convert_i32_s + f64.store + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|0 + end end + i32.const 10 + i32.const 3 + i32.const 62 + i32.const 12624 + call $~lib/rt/__newArray + local.set $0 global.get $~lib/memory/__stack_pointer - i32.const 7424 - i32.store + local.get $0 + i32.store offset=16 + local.get $3 + local.get $0 + call $std/typedarray/valuesEqual<~lib/typedarray/Float64Array> global.get $~lib/memory/__stack_pointer + i32.const 8928 + i32.store offset=16 + i32.const 0 + local.set $0 + i32.const 8940 + i32.load + i32.const 3 + i32.add local.get $3 - i32.const 7420 + i32.load offset=8 + i32.const 3 + i32.shr_u + i32.gt_s + br_if $folding-inner0 + local.get $3 + i32.load offset=4 + i32.const 24 + i32.add + local.set $5 + i32.const 8932 i32.load - i32.const 1 + local.set $6 + i32.const 8940 + i32.load + local.set $7 + loop $for-loop|00 + local.get $0 + local.get $7 + i32.lt_s + if + local.get $5 + local.get $0 + i32.const 3 + i32.shl + i32.add + local.get $6 + local.get $0 + i32.const 2 + i32.shl + i32.add + f32.load + f64.promote_f32 + f64.store + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|00 + end + end + i32.const 10 + i32.const 3 + i32.const 62 + i32.const 12784 + call $~lib/rt/__newArray + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=16 + local.get $3 + local.get $0 + call $std/typedarray/valuesEqual<~lib/typedarray/Float64Array> + i32.const 0 + local.set $0 + local.get $2 + i32.load offset=8 + i32.const 3 i32.shr_u - local.tee $4 - i32.const 11 + i32.const 6 i32.add - i32.mul - i32.const 11 + local.get $3 + i32.load offset=8 + i32.const 3 + i32.shr_u + i32.gt_s + br_if $folding-inner0 + local.get $3 + i32.load offset=4 + i32.const 48 i32.add - local.tee $6 - i32.const 1 - i32.shl - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $1 - i32.store offset=4 - loop $for-loop|0 - local.get $3 - local.get $5 - i32.gt_s + local.set $5 + local.get $2 + i32.load offset=4 + local.set $6 + local.get $2 + i32.load offset=8 + i32.const 3 + i32.shr_u + local.set $2 + loop $for-loop|01 + local.get $0 + local.get $2 + i32.lt_s if - local.get $1 - local.get $2 - i32.const 1 + local.get $5 + local.get $0 + i32.const 3 i32.shl + local.tee $7 + i32.add + local.get $6 + local.get $7 i32.add + i64.load + f64.convert_i64_s + f64.store local.get $0 - local.get $5 i32.const 1 - i32.shl i32.add - i32.load16_s - call $~lib/util/number/itoa_buffered + local.set $0 + br $for-loop|01 + end + end + i32.const 10 + i32.const 3 + i32.const 62 + i32.const 12896 + call $~lib/rt/__newArray + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=16 + local.get $3 + local.get $2 + call $std/typedarray/valuesEqual<~lib/typedarray/Float64Array> + i32.const 0 + local.set $2 + local.get $1 + i32.load offset=8 + local.get $3 + i32.load offset=8 + i32.const 3 + i32.shr_u + i32.gt_s + br_if $folding-inner0 + local.get $3 + i32.load offset=4 + local.set $0 + local.get $1 + i32.load offset=4 + local.set $5 + local.get $1 + i32.load offset=8 + local.set $1 + loop $for-loop|02 + local.get $1 + local.get $2 + i32.gt_s + if + local.get $0 local.get $2 + i32.const 3 + i32.shl i32.add - local.set $2 - local.get $4 - if - local.get $1 - local.get $2 - i32.const 1 - i32.shl - i32.add - i32.const 7424 - local.get $4 - i32.const 1 - i32.shl - call $~lib/memory/memory.copy - local.get $2 - local.get $4 - i32.add - local.set $2 - end + local.get $2 local.get $5 + i32.add + i32.load8_u + f64.convert_i32_u + f64.store + local.get $2 i32.const 1 i32.add - local.set $5 - br $for-loop|0 + local.set $2 + br $for-loop|02 end end - local.get $6 - local.get $1 - local.get $2 + i32.const 0 + local.set $1 + local.get $4 + i32.load offset=8 i32.const 1 - i32.shl + i32.shr_u + i32.const 4 i32.add - local.get $0 local.get $3 - i32.const 1 - i32.shl + i32.load offset=8 + i32.const 3 + i32.shr_u + i32.gt_s + br_if $folding-inner0 + local.get $3 + i32.load offset=4 + i32.const 32 i32.add - i32.load16_s - call $~lib/util/number/itoa_buffered - local.get $2 + local.set $2 + local.get $4 + i32.load offset=4 + local.set $0 + local.get $4 + i32.load offset=8 + i32.const 1 + i32.shr_u + local.set $4 + loop $for-loop|03 + local.get $1 + local.get $4 + i32.lt_s + if + local.get $2 + local.get $1 + i32.const 3 + i32.shl + i32.add + local.get $0 + 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 9104 + i32.store offset=16 + i32.const 0 + local.set $1 + i32.const 9116 + i32.load + i32.const 7 i32.add - local.tee $0 + local.get $3 + i32.load offset=8 + i32.const 3 + i32.shr_u i32.gt_s - if - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $1 + br_if $folding-inner0 + local.get $3 + i32.load offset=4 + i32.const 56 + i32.add + local.set $2 + i32.const 9108 + i32.load + local.set $4 + i32.const 9116 + i32.load + local.set $0 + loop $for-loop|04 local.get $0 - call $~lib/string/String#substring - local.set $0 - br $folding-inner0 + local.get $1 + i32.gt_s + if + local.get $2 + 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 + i32.const 10 + i32.const 3 + i32.const 62 + i32.const 13008 + call $~lib/rt/__newArray + local.set $1 global.get $~lib/memory/__stack_pointer - i32.const 8 + local.get $1 + i32.store offset=16 + local.get $3 + local.get $1 + call $std/typedarray/valuesEqual<~lib/typedarray/Float64Array> + global.get $~lib/memory/__stack_pointer + i32.const 20 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 return end - 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) - 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 $0 - i32.load offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.load offset=8 - i32.const 1 - i32.shr_u - global.get $~lib/memory/__stack_pointer - i32.const 7424 - i32.store - call $~lib/util/string/joinIntegerArray - 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 1865 + i32.const 47 + call $~lib/builtins/abort + unreachable ) - (func $std/typedarray/testArrayJoinAndToString<~lib/typedarray/Int16Array,i16> + (func $start:std/typedarray (local $0 i32) (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i64) + (local $7 f32) + (local $8 f64) + (local $9 i64) + (local $10 f32) + (local $11 f64) + (local $12 i32) global.get $~lib/memory/__stack_pointer - i32.const 20 + i32.const 32 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check @@ -30351,1971 +29803,1835 @@ i64.const 0 i64.store offset=8 global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=16 + i64.const 0 + i64.store offset=16 global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=24 + i32.const 1280 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/pinSpace + i32.const 1312 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/toSpace + i32.const 1456 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/fromSpace + i32.const 0 + call $std/typedarray/testInstantiate i32.const 5 - call $~lib/typedarray/Int16Array#constructor - local.tee $0 - i32.store + call $std/typedarray/testInstantiate global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Int32Array#constructor + local.tee $0 + i32.store local.get $0 - local.tee $1 - i32.store offset=4 - local.get $1 i32.const 0 i32.const 1 - call $~lib/typedarray/Int16Array#__set - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 + call $~lib/typedarray/Int32Array#__set + local.get $0 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 + call $~lib/typedarray/Int32Array#__set + local.get $0 i32.const 2 i32.const 3 - call $~lib/typedarray/Int16Array#__set - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 + call $~lib/typedarray/Int32Array#__set + local.get $0 + i32.load offset=8 + i32.const 2 + i32.shr_u i32.const 3 - i32.const 4 - call $~lib/typedarray/Int16Array#__set - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 4 - i32.const 5 - call $~lib/typedarray/Int16Array#__set - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 7424 - i32.store offset=16 - local.get $1 - call $~lib/typedarray/Int16Array#join - local.set $0 - global.get $~lib/memory/__stack_pointer + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 95 + i32.const 3 + call $~lib/builtins/abort + unreachable + end local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 7456 - i32.store offset=8 + i32.load offset=4 local.get $0 - i32.const 7456 - call $~lib/string/String.__eq - i32.eqz + i32.load + i32.sub if i32.const 0 i32.const 1568 - i32.const 652 - i32.const 5 + i32.const 96 + i32.const 3 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=12 - 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 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 7424 - 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.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 - i32.const 7456 - i32.store offset=8 - local.get $1 - i32.const 7456 - call $~lib/string/String.__eq - i32.eqz + local.get $0 + i32.load offset=8 + i32.const 12 + i32.ne if i32.const 0 i32.const 1568 - i32.const 653 - i32.const 5 + i32.const 97 + 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/util/string/joinIntegerArray (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 - call $~stack_check - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - local.get $1 - i32.const 1 - i32.sub - local.tee $3 + local.get $0 i32.const 0 - i32.lt_s + call $~lib/typedarray/Int32Array#__get + i32.const 1 + i32.ne if - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 7072 - return - end - block $folding-inner0 - local.get $3 - i32.eqz - if - local.get $0 - i32.load16_u - call $~lib/util/number/utoa32 - local.set $0 - br $folding-inner0 - end - global.get $~lib/memory/__stack_pointer - i32.const 7424 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.const 7420 - i32.load - i32.const 1 - i32.shr_u - local.tee $4 - i32.const 10 - i32.add - i32.mul - i32.const 10 - i32.add - local.tee $6 - i32.const 1 - i32.shl - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $1 - i32.store offset=4 - loop $for-loop|0 - local.get $3 - local.get $5 - i32.gt_s - if - local.get $1 - local.get $2 - i32.const 1 - i32.shl - i32.add - local.get $0 - local.get $5 - i32.const 1 - i32.shl - i32.add - i32.load16_u - call $~lib/util/number/itoa_buffered - local.get $2 - i32.add - local.set $2 - local.get $4 - if - local.get $1 - local.get $2 - i32.const 1 - i32.shl - i32.add - i32.const 7424 - local.get $4 - i32.const 1 - i32.shl - call $~lib/memory/memory.copy - local.get $2 - local.get $4 - i32.add - local.set $2 - end - local.get $5 - i32.const 1 - i32.add - local.set $5 - br $for-loop|0 - end - end - local.get $6 - local.get $1 - local.get $2 - i32.const 1 - i32.shl - i32.add - local.get $0 - local.get $3 - i32.const 1 - i32.shl - i32.add - i32.load16_u - 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 $1 - i32.store - local.get $1 - local.get $0 - 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 - local.get $1 - return + i32.const 0 + i32.const 1568 + i32.const 98 + 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/typedarray/Uint16Array#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 - call $~stack_check - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store + i32.const 1 + call $~lib/typedarray/Int32Array#__get + i32.const 2 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 99 + i32.const 3 + call $~lib/builtins/abort + unreachable + end local.get $0 - i32.load offset=4 + i32.const 2 + call $~lib/typedarray/Int32Array#__get + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 100 + i32.const 3 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=4 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Int32Array#subarray + local.tee $0 + 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 7424 - 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 $std/typedarray/testArrayJoinAndToString<~lib/typedarray/Uint16Array,u16> - (local $0 i32) - (local $1 i32) - global.get $~lib/memory/__stack_pointer - i32.const 20 + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 103 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=4 + local.get $0 + i32.load 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 - global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 104 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=8 + i32.const 4 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 105 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 i32.const 0 - i32.store offset=16 + call $~lib/typedarray/Int32Array#__get + i32.const 2 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 106 + i32.const 3 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer - i32.const 5 - call $~lib/typedarray/Uint16Array#constructor + i32.const 8 + call $~lib/typedarray/Float64Array#constructor local.tee $0 i32.store - global.get $~lib/memory/__stack_pointer local.get $0 - local.tee $1 - i32.store offset=4 - local.get $1 i32.const 0 + f64.const 1 + call $~lib/typedarray/Float64Array#__set + local.get $0 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 + f64.const 2 + call $~lib/typedarray/Float64Array#__set + local.get $0 i32.const 2 + f64.const 7 + call $~lib/typedarray/Float64Array#__set + local.get $0 i32.const 3 - call $~lib/typedarray/Uint16Array#__set - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 3 - i32.const 4 - call $~lib/typedarray/Uint16Array#__set - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 + f64.const 6 + call $~lib/typedarray/Float64Array#__set + local.get $0 i32.const 4 + f64.const 5 + call $~lib/typedarray/Float64Array#__set + local.get $0 i32.const 5 - call $~lib/typedarray/Uint16Array#__set - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 7424 - i32.store offset=16 - local.get $1 - call $~lib/typedarray/Uint16Array#join - local.set $0 - global.get $~lib/memory/__stack_pointer + f64.const 4 + call $~lib/typedarray/Float64Array#__set local.get $0 - i32.store offset=4 + i32.const 6 + f64.const 3 + call $~lib/typedarray/Float64Array#__set + local.get $0 + i32.const 7 + f64.const 8 + call $~lib/typedarray/Float64Array#__set global.get $~lib/memory/__stack_pointer - i32.const 7456 - i32.store offset=8 local.get $0 - i32.const 7456 - call $~lib/string/String.__eq - i32.eqz + i32.const 2 + i32.const 6 + call $~lib/typedarray/Float64Array#subarray + local.tee $0 + i32.store + local.get $0 + i32.load offset=8 + i32.const 3 + i32.shr_u + i32.const 4 + i32.ne if i32.const 0 i32.const 1568 - i32.const 652 - i32.const 5 + i32.const 122 + i32.const 3 call $~lib/builtins/abort unreachable end + local.get $0 + i32.load offset=4 + local.get $0 + i32.load + i32.sub + i32.const 16 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 123 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=8 + i32.const 32 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 124 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + global.set $~argumentsLength global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=12 - 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 - global.get $~lib/memory/__stack_pointer - local.get $1 + i32.const 0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 7424 - i32.store offset=4 + 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 + local.get $0 local.get $1 - call $~lib/typedarray/Uint16Array#join - local.set $1 + call $~lib/typedarray/Float64Array#sort 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 $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 7456 - i32.store offset=8 - local.get $1 - i32.const 7456 - call $~lib/string/String.__eq + local.get $0 + i32.const 0 + call $~lib/typedarray/Float64Array#__get + f64.const 4 + f64.eq + if (result i32) + local.get $0 + i32.const 1 + call $~lib/typedarray/Float64Array#__get + f64.const 5 + f64.eq + else + i32.const 0 + end + if (result i32) + local.get $0 + i32.const 2 + call $~lib/typedarray/Float64Array#__get + f64.const 6 + f64.eq + else + i32.const 0 + end + if (result i32) + local.get $0 + i32.const 3 + call $~lib/typedarray/Float64Array#__get + f64.const 7 + f64.eq + else + i32.const 0 + end i32.eqz if i32.const 0 i32.const 1568 - i32.const 653 - i32.const 5 + i32.const 126 + 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/util/string/joinIntegerArray (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 - call $~stack_check - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - local.get $1 + i32.const 3 + call $~lib/typedarray/Uint8ClampedArray#constructor + local.tee $0 + i32.store + local.get $0 + i32.const 0 + i32.const -32 + call $~lib/typedarray/Uint8ClampedArray#__set + local.get $0 i32.const 1 - i32.sub - local.tee $3 + i32.const 2 + call $~lib/typedarray/Uint8ClampedArray#__set + local.get $0 + i32.const 2 + i32.const 256 + call $~lib/typedarray/Uint8ClampedArray#__set + local.get $0 i32.const 0 - i32.lt_s + call $~lib/typedarray/Uint8ClampedArray#__get if - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 7072 - return - end - block $folding-inner0 - local.get $3 - i32.eqz - if - local.get $0 - i32.load - call $~lib/util/number/itoa32 - local.set $0 - br $folding-inner0 - end - global.get $~lib/memory/__stack_pointer - i32.const 7424 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.const 7420 - i32.load - i32.const 1 - i32.shr_u - local.tee $4 - i32.const 11 - i32.add - i32.mul - i32.const 11 - i32.add - local.tee $6 - i32.const 1 - i32.shl - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $1 - i32.store offset=4 - loop $for-loop|0 - local.get $3 - local.get $5 - i32.gt_s - if - local.get $1 - local.get $2 - i32.const 1 - i32.shl - i32.add - local.get $0 - local.get $5 - 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 $4 - if - local.get $1 - local.get $2 - i32.const 1 - i32.shl - i32.add - i32.const 7424 - local.get $4 - i32.const 1 - i32.shl - call $~lib/memory/memory.copy - local.get $2 - local.get $4 - i32.add - local.set $2 - end - local.get $5 - i32.const 1 - i32.add - local.set $5 - br $for-loop|0 - end - end - local.get $6 - local.get $1 - local.get $2 - i32.const 1 - i32.shl - i32.add - local.get $0 - local.get $3 - 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 $1 - i32.store - local.get $1 - local.get $0 - 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 - local.get $1 - return + i32.const 0 + i32.const 1568 + i32.const 135 + 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/typedarray/Int32Array#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 - call $~stack_check - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - local.get $0 - i32.load offset=4 - global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=4 + i32.const 1 + call $~lib/typedarray/Uint8ClampedArray#__get + i32.const 2 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 136 + i32.const 3 + call $~lib/builtins/abort + unreachable + end local.get $0 - i32.load offset=8 i32.const 2 - i32.shr_u - global.get $~lib/memory/__stack_pointer - i32.const 7424 - 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 $std/typedarray/testArrayJoinAndToString<~lib/typedarray/Int32Array,i32> - (local $0 i32) - (local $1 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 - 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 0 - i32.store offset=16 + call $~lib/typedarray/Uint8ClampedArray#__get + i32.const 255 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 137 + i32.const 3 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer i32.const 5 - call $~lib/typedarray/Int32Array#constructor + call $~lib/typedarray/Int8Array#constructor local.tee $0 i32.store - global.get $~lib/memory/__stack_pointer local.get $0 - local.tee $1 - i32.store offset=4 - local.get $1 i32.const 0 i32.const 1 - call $~lib/typedarray/Int32Array#__set - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 + call $~lib/typedarray/Int8Array#__set + local.get $0 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 + call $~lib/typedarray/Int8Array#__set + local.get $0 i32.const 2 i32.const 3 - call $~lib/typedarray/Int32Array#__set - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 + call $~lib/typedarray/Int8Array#__set + local.get $0 i32.const 3 i32.const 4 - call $~lib/typedarray/Int32Array#__set + call $~lib/typedarray/Int8Array#__set + local.get $0 + i32.const 4 + i32.const 5 + call $~lib/typedarray/Int8Array#__set + local.get $0 + i32.const 1 + i32.const 1 + i32.const 3 + call $~lib/typedarray/Int8Array#fill + i32.const 5 + i32.const 0 + i32.const 15 + i32.const 1728 + call $~lib/rt/__newArray + local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 + local.get $0 local.get $1 - i32.const 4 + call $std/typedarray/isInt8ArrayEqual + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 149 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 0 + i32.const 0 + i32.const 2147483647 + call $~lib/typedarray/Int8Array#fill i32.const 5 - call $~lib/typedarray/Int32Array#__set - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=12 + i32.const 0 + i32.const 15 + i32.const 1808 + call $~lib/rt/__newArray + local.set $1 global.get $~lib/memory/__stack_pointer - i32.const 7424 - i32.store offset=16 local.get $1 - call $~lib/typedarray/Int32Array#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 7456 - i32.store offset=8 local.get $0 - i32.const 7456 - call $~lib/string/String.__eq + local.get $1 + call $std/typedarray/isInt8ArrayEqual i32.eqz if i32.const 0 i32.const 1568 - i32.const 652 - i32.const 5 + i32.const 152 + i32.const 3 call $~lib/builtins/abort unreachable end + local.get $0 + i32.const 1 + i32.const 0 + i32.const -3 + call $~lib/typedarray/Int8Array#fill + i32.const 5 + i32.const 0 + i32.const 15 + i32.const 1840 + call $~lib/rt/__newArray + local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=12 - 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 - global.get $~lib/memory/__stack_pointer + i32.store offset=4 + local.get $0 local.get $1 - i32.store + call $std/typedarray/isInt8ArrayEqual + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 155 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 2 + i32.const -2 + i32.const 2147483647 + call $~lib/typedarray/Int8Array#fill + i32.const 5 + i32.const 0 + i32.const 15 + i32.const 1872 + call $~lib/rt/__newArray + local.set $1 global.get $~lib/memory/__stack_pointer - i32.const 7424 + local.get $1 i32.store offset=4 + local.get $0 local.get $1 - call $~lib/typedarray/Int32Array#join + call $std/typedarray/isInt8ArrayEqual + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 158 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 0 + i32.const 1 + i32.const 0 + call $~lib/typedarray/Int8Array#fill + i32.const 5 + i32.const 0 + i32.const 15 + i32.const 1904 + call $~lib/rt/__newArray local.set $1 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 i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 7456 - i32.store offset=8 + local.get $0 local.get $1 - i32.const 7456 - call $~lib/string/String.__eq + call $std/typedarray/isInt8ArrayEqual i32.eqz if i32.const 0 i32.const 1568 - i32.const 653 - i32.const 5 + i32.const 161 + 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/util/string/joinIntegerArray (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 - call $~stack_check - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - local.get $1 + local.get $0 i32.const 1 - i32.sub - local.tee $3 + i32.const 4 + call $~lib/typedarray/Int8Array#subarray + local.tee $1 + i32.store offset=8 + local.get $1 i32.const 0 - i32.lt_s + i32.const 0 + i32.const 2147483647 + call $~lib/typedarray/Int8Array#fill + local.get $1 + i32.load offset=8 + i32.const 3 + i32.ne if - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 7072 - return - end - block $folding-inner0 - local.get $3 - i32.eqz - if - local.get $0 - i32.load - call $~lib/util/number/utoa32 - local.set $0 - br $folding-inner0 - end - global.get $~lib/memory/__stack_pointer - i32.const 7424 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.const 7420 - i32.load - i32.const 1 - i32.shr_u - local.tee $4 - i32.const 10 - i32.add - i32.mul - i32.const 10 - i32.add - local.tee $6 - i32.const 1 - i32.shl - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $1 - i32.store offset=4 - loop $for-loop|0 - local.get $3 - local.get $5 - i32.gt_s - if - local.get $1 - local.get $2 - i32.const 1 - i32.shl - i32.add - local.get $0 - local.get $5 - 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 $4 - if - local.get $1 - local.get $2 - i32.const 1 - i32.shl - i32.add - i32.const 7424 - local.get $4 - i32.const 1 - i32.shl - call $~lib/memory/memory.copy - local.get $2 - local.get $4 - i32.add - local.set $2 - end - local.get $5 - i32.const 1 - i32.add - local.set $5 - br $for-loop|0 - end - end - local.get $6 - local.get $1 - local.get $2 - i32.const 1 - i32.shl - i32.add - local.get $0 - local.get $3 - 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 $1 - i32.store - local.get $1 - local.get $0 - 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 - local.get $1 - return + i32.const 0 + i32.const 1568 + i32.const 165 + 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/typedarray/Uint32Array#join (param $0 i32) (result i32) - (local $1 i32) - global.get $~lib/memory/__stack_pointer - i32.const 8 + local.get $1 + i32.load offset=4 + local.get $1 + i32.load i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 166 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.load offset=8 + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 167 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 3 + i32.const 0 + i32.const 15 + i32.const 1936 + call $~lib/rt/__newArray + local.set $2 global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - local.get $0 - i32.load offset=4 + local.get $2 + i32.store offset=4 + local.get $1 + local.get $2 + call $std/typedarray/isInt8ArrayEqual + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 168 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 5 + i32.const 0 + i32.const 15 + i32.const 1968 + call $~lib/rt/__newArray + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=4 local.get $0 - i32.load offset=8 - i32.const 2 - i32.shr_u - global.get $~lib/memory/__stack_pointer - i32.const 7424 - 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 $std/typedarray/testArrayJoinAndToString<~lib/typedarray/Uint32Array,u32> - (local $0 i32) - (local $1 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 - 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 0 - i32.store offset=16 + local.get $1 + call $std/typedarray/isInt8ArrayEqual + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 169 + i32.const 3 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer i32.const 5 - call $~lib/typedarray/Uint32Array#constructor + call $~lib/typedarray/Int32Array#constructor local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer + i32.store offset=8 local.get $0 - local.tee $1 - i32.store offset=4 - local.get $1 i32.const 0 i32.const 1 - call $~lib/typedarray/Uint32Array#__set + call $~lib/typedarray/Int32Array#__set + local.get $0 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Int32Array#__set + local.get $0 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Int32Array#__set + local.get $0 + i32.const 3 + i32.const 4 + call $~lib/typedarray/Int32Array#__set + local.get $0 + i32.const 4 + i32.const 5 + call $~lib/typedarray/Int32Array#__set + local.get $0 + i32.const 1 + i32.const 1 + i32.const 3 + call $~lib/typedarray/Int32Array#fill + i32.const 5 + i32.const 2 + i32.const 16 + i32.const 2000 + call $~lib/rt/__newArray + local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 + local.get $0 local.get $1 - i32.const 1 + call $std/typedarray/isInt32ArrayEqual + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 181 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 0 + i32.const 0 + i32.const 2147483647 + call $~lib/typedarray/Int32Array#fill + i32.const 5 i32.const 2 - call $~lib/typedarray/Uint32Array#__set + i32.const 16 + i32.const 2048 + call $~lib/rt/__newArray + local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 + local.get $0 local.get $1 + call $std/typedarray/isInt32ArrayEqual + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 184 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 1 + i32.const 0 + i32.const -3 + call $~lib/typedarray/Int32Array#fill + i32.const 5 i32.const 2 - i32.const 3 - call $~lib/typedarray/Uint32Array#__set + i32.const 16 + i32.const 2096 + call $~lib/rt/__newArray + local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 + local.get $0 local.get $1 - i32.const 3 - i32.const 4 - call $~lib/typedarray/Uint32Array#__set + call $std/typedarray/isInt32ArrayEqual + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 187 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 2 + i32.const -2 + i32.const 2147483647 + call $~lib/typedarray/Int32Array#fill + i32.const 5 + i32.const 2 + i32.const 16 + i32.const 2144 + call $~lib/rt/__newArray + local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 + local.get $0 local.get $1 - i32.const 4 + call $std/typedarray/isInt32ArrayEqual + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 190 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 0 + i32.const 1 + i32.const 0 + call $~lib/typedarray/Int32Array#fill i32.const 5 - call $~lib/typedarray/Uint32Array#__set - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=12 + i32.const 2 + i32.const 16 + i32.const 2192 + call $~lib/rt/__newArray + local.set $1 global.get $~lib/memory/__stack_pointer - i32.const 7424 - i32.store offset=16 local.get $1 - call $~lib/typedarray/Uint32Array#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 7456 - i32.store offset=8 local.get $0 - i32.const 7456 - call $~lib/string/String.__eq + local.get $1 + call $std/typedarray/isInt32ArrayEqual i32.eqz if i32.const 0 i32.const 1568 - i32.const 652 - i32.const 5 + i32.const 193 + i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 + i32.const 1 + i32.const 4 + call $~lib/typedarray/Int32Array#subarray + local.tee $1 i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 8 + local.get $1 + i32.const 0 + i32.const 0 + i32.const 2147483647 + call $~lib/typedarray/Int32Array#fill + local.get $1 + i32.load offset=8 + i32.const 2 + i32.shr_u + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 197 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.load offset=4 + local.get $1 + i32.load 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 4 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 198 + i32.const 3 + call $~lib/builtins/abort + unreachable + end local.get $1 - i32.store + i32.load offset=8 + i32.const 12 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 199 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 3 + i32.const 2 + i32.const 16 + i32.const 2240 + call $~lib/rt/__newArray + local.set $2 global.get $~lib/memory/__stack_pointer - i32.const 7424 + local.get $2 i32.store offset=4 local.get $1 - call $~lib/typedarray/Uint32Array#join + local.get $2 + call $std/typedarray/isInt32ArrayEqual + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 200 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 5 + i32.const 2 + i32.const 16 + i32.const 2272 + call $~lib/rt/__newArray local.set $1 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 i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 7456 - i32.store offset=8 + local.get $0 local.get $1 - i32.const 7456 - call $~lib/string/String.__eq + call $std/typedarray/isInt32ArrayEqual i32.eqz if i32.const 0 i32.const 1568 - i32.const 653 - i32.const 5 + i32.const 201 + 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/util/string/joinIntegerArray (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 - call $~stack_check - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - local.get $1 - i32.const 1 - i32.sub - local.tee $3 + i32.const 6 + call $~lib/typedarray/Int8Array#constructor + local.tee $0 + i32.store offset=12 + local.get $0 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 7072 - return - end - block $folding-inner0 - local.get $3 - i32.eqz - if - local.get $0 - i64.load - i32.wrap_i64 - i64.extend_i32_s - call $~lib/util/number/itoa64 - local.set $0 - br $folding-inner0 - end - global.get $~lib/memory/__stack_pointer - i32.const 7424 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.const 7420 - i32.load - i32.const 1 - i32.shr_u - local.tee $4 - i32.const 21 - i32.add - i32.mul - i32.const 21 - i32.add - local.tee $6 - i32.const 1 - i32.shl - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $1 - i32.store offset=4 - loop $for-loop|0 - local.get $3 - local.get $5 - i32.gt_s - if - local.get $1 - local.get $2 - i32.const 1 - i32.shl - i32.add - local.get $0 - local.get $5 - 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 $4 - if - local.get $1 - local.get $2 - i32.const 1 - i32.shl - i32.add - i32.const 7424 - local.get $4 - i32.const 1 - i32.shl - call $~lib/memory/memory.copy - local.get $2 - local.get $4 - i32.add - local.set $2 - end - local.get $5 - i32.const 1 - i32.add - local.set $5 - br $for-loop|0 - end - end - local.get $6 - local.get $1 - local.get $2 - i32.const 1 - i32.shl - i32.add - local.get $0 - local.get $3 + i32.const 1 + call $~lib/typedarray/Int8Array#__set + local.get $0 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Int8Array#__set + local.get $0 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Int8Array#__set + local.get $0 + i32.const 3 + i32.const 4 + call $~lib/typedarray/Int8Array#__set + local.get $0 + i32.const 4 + i32.const 5 + call $~lib/typedarray/Int8Array#__set + local.get $0 + i32.const 5 + i32.const 6 + call $~lib/typedarray/Int8Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.const 1 + i32.const 6 + call $~lib/typedarray/Int8Array#subarray + local.tee $0 + i32.store offset=8 + local.get $0 + i32.const 0 + call $~lib/typedarray/Int8Array#__get + i32.const 2 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 222 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 $1 - i32.store - local.get $1 - local.get $0 - 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 - local.get $1 - return + 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/Int64Array#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 - call $~stack_check - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store + i32.load offset=8 + i32.const 5 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 223 + i32.const 3 + call $~lib/builtins/abort + unreachable + end local.get $0 i32.load offset=4 - global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=4 + i32.load + i32.sub + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 224 + i32.const 3 + call $~lib/builtins/abort + unreachable + end local.get $0 i32.load offset=8 - i32.const 3 - i32.shr_u + i32.const 5 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 225 + i32.const 3 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer - i32.const 7424 + local.get $0 + i32.const 1 + i32.const 5 + call $~lib/typedarray/Int8Array#subarray + local.tee $0 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 $std/typedarray/testArrayJoinAndToString<~lib/typedarray/Int64Array,i64> - (local $0 i32) - (local $1 i32) - global.get $~lib/memory/__stack_pointer - i32.const 20 + 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 228 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=8 + i32.const 4 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 229 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=4 + local.get $0 + i32.load 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 2 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 230 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=8 + i32.const 4 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 231 + i32.const 3 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer - i32.const 0 + local.get $0 + i32.const 1 + i32.const 4 + call $~lib/typedarray/Int8Array#subarray + local.tee $0 i32.store offset=16 + local.get $0 + i32.const 0 + call $~lib/typedarray/Int8Array#__get + i32.const 4 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 234 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=8 + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 235 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=4 + local.get $0 + i32.load + i32.sub + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 236 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=8 + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 237 + i32.const 3 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer i32.const 5 - call $~lib/typedarray/Int64Array#constructor - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 + call $~lib/typedarray/Int32Array#constructor local.tee $1 - i32.store offset=4 + i32.store offset=16 local.get $1 i32.const 0 - 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 + call $~lib/typedarray/Int32Array#__set local.get $1 + i32.const 1 i32.const 2 - i64.const 3 - call $~lib/typedarray/Int64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 + call $~lib/typedarray/Int32Array#__set local.get $1 + i32.const 2 i32.const 3 - i64.const 4 - call $~lib/typedarray/Int64Array#__set - global.get $~lib/memory/__stack_pointer + call $~lib/typedarray/Int32Array#__set local.get $1 - i32.store offset=4 + i32.const 3 + i32.const 4 + call $~lib/typedarray/Int32Array#__set local.get $1 i32.const 4 - i64.const 5 - call $~lib/typedarray/Int64Array#__set + i32.const 5 + call $~lib/typedarray/Int32Array#__set global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=12 + i32.const 0 + i32.const 2147483647 + call $~lib/typedarray/Int32Array#slice + local.tee $0 + i32.store + local.get $1 + i32.const 0 + i32.const 3 + i32.const 2147483647 + call $~lib/typedarray/Int32Array#copyWithin + local.set $1 global.get $~lib/memory/__stack_pointer - i32.const 7424 - i32.store offset=16 local.get $1 - call $~lib/typedarray/Int64Array#join - local.set $0 + i32.store offset=20 + i32.const 5 + i32.const 2 + i32.const 16 + i32.const 2320 + call $~lib/rt/__newArray + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $2 i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 7456 - i32.store offset=8 - local.get $0 - i32.const 7456 - call $~lib/string/String.__eq + local.get $1 + local.get $2 + call $std/typedarray/isInt32ArrayEqual i32.eqz if i32.const 0 i32.const 1568 - i32.const 652 - i32.const 5 + i32.const 248 + i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer + local.get $0 + i32.const 0 + i32.const 2147483647 + call $~lib/typedarray/Int32Array#slice + local.tee $1 + i32.store offset=16 local.get $1 - i32.store offset=12 - 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 1 + i32.const 3 + i32.const 2147483647 + call $~lib/typedarray/Int32Array#copyWithin + local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store + i32.store offset=20 + i32.const 5 + i32.const 2 + i32.const 16 + i32.const 2368 + call $~lib/rt/__newArray + local.set $2 global.get $~lib/memory/__stack_pointer - i32.const 7424 + local.get $2 i32.store offset=4 local.get $1 - call $~lib/typedarray/Int64Array#join - local.set $1 + local.get $2 + call $std/typedarray/isInt32ArrayEqual + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 250 + 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 + i32.const 0 + i32.const 2147483647 + call $~lib/typedarray/Int32Array#slice + local.tee $1 + i32.store offset=16 + local.get $1 + i32.const 1 + i32.const 2 + i32.const 2147483647 + call $~lib/typedarray/Int32Array#copyWithin + local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=4 + i32.store offset=20 + i32.const 5 + i32.const 2 + i32.const 16 + i32.const 2416 + call $~lib/rt/__newArray + local.set $2 global.get $~lib/memory/__stack_pointer - i32.const 7456 - i32.store offset=8 + local.get $2 + i32.store offset=4 local.get $1 - i32.const 7456 - call $~lib/string/String.__eq + local.get $2 + call $std/typedarray/isInt32ArrayEqual i32.eqz if i32.const 0 i32.const 1568 - i32.const 653 - i32.const 5 + i32.const 252 + 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/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 - call $~stack_check - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - local.get $1 - i32.const 1 - i32.sub - local.tee $4 + local.get $0 i32.const 0 - i32.lt_s + i32.const 2147483647 + call $~lib/typedarray/Int32Array#slice + local.tee $1 + i32.store offset=16 + local.get $1 + i32.const 2 + i32.const 2 + i32.const 2147483647 + call $~lib/typedarray/Int32Array#copyWithin + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=20 + i32.const 5 + i32.const 2 + i32.const 16 + i32.const 2464 + call $~lib/rt/__newArray + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $1 + local.get $2 + call $std/typedarray/isInt32ArrayEqual + i32.eqz if - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 7072 - return - end - block $folding-inner0 - local.get $4 - 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 - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - block $__inlined_func$~lib/util/number/utoa64 - 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 7296 - local.set $0 - br $__inlined_func$~lib/util/number/utoa64 - end - local.get $3 - i64.const 4294967295 - i64.le_u - if - local.get $3 - i32.wrap_i64 - local.tee $2 - call $~lib/util/number/decimalCount32 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.const 1 - i32.shl - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - local.get $0 - local.get $2 - local.get $1 - call $~lib/util/number/utoa_dec_simple - else - local.get $3 - call $~lib/util/number/decimalCount64High - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.const 1 - i32.shl - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - local.get $0 - local.get $3 - local.get $1 - call $~lib/util/number/utoa_dec_simple - end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - end - br $folding-inner0 - end - global.get $~lib/memory/__stack_pointer - i32.const 7424 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.const 7420 - i32.load - i32.const 1 - i32.shr_u - local.tee $5 - i32.const 20 - i32.add - i32.mul - i32.const 20 - i32.add - local.tee $7 - i32.const 1 - i32.shl - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $1 - i32.store offset=4 - loop $for-loop|0 - local.get $4 - local.get $6 - i32.gt_s - if - local.get $1 - local.get $2 - i32.const 1 - i32.shl - i32.add - local.get $0 - local.get $6 - 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 $5 - if - local.get $1 - local.get $2 - i32.const 1 - i32.shl - i32.add - i32.const 7424 - local.get $5 - i32.const 1 - i32.shl - call $~lib/memory/memory.copy - local.get $2 - local.get $5 - i32.add - local.set $2 - end - local.get $6 - i32.const 1 - i32.add - local.set $6 - br $for-loop|0 - end - end - local.get $7 - local.get $1 - local.get $2 - i32.const 1 - i32.shl - i32.add - local.get $0 - local.get $4 + i32.const 0 + i32.const 1568 + i32.const 254 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 $1 - i32.store - local.get $1 - local.get $0 - 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 - local.get $1 - return + 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/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 - call $~stack_check - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - 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=8 + i32.const 0 + i32.const 2147483647 + call $~lib/typedarray/Int32Array#slice + local.tee $1 + i32.store offset=16 + local.get $1 + i32.const 0 i32.const 3 - i32.shr_u - global.get $~lib/memory/__stack_pointer - i32.const 7424 - 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 $std/typedarray/testArrayJoinAndToString<~lib/typedarray/Uint64Array,u64> - (local $0 i32) - (local $1 i32) - global.get $~lib/memory/__stack_pointer - i32.const 20 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check + i32.const 4 + call $~lib/typedarray/Int32Array#copyWithin + local.set $1 global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store + local.get $1 + i32.store offset=20 + i32.const 5 + i32.const 2 + i32.const 16 + i32.const 2512 + call $~lib/rt/__newArray + local.set $2 global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=8 + local.get $2 + i32.store offset=4 + local.get $1 + local.get $2 + call $std/typedarray/isInt32ArrayEqual + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 256 + i32.const 3 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer + local.get $0 i32.const 0 + i32.const 2147483647 + call $~lib/typedarray/Int32Array#slice + local.tee $1 i32.store offset=16 + local.get $1 + i32.const 1 + i32.const 3 + i32.const 4 + call $~lib/typedarray/Int32Array#copyWithin + local.set $1 global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=20 i32.const 5 - call $~lib/typedarray/Uint64Array#constructor - local.tee $0 - i32.store + i32.const 2 + i32.const 16 + i32.const 2560 + call $~lib/rt/__newArray + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $0 - local.tee $1 + local.get $2 i32.store offset=4 local.get $1 - i32.const 0 - i64.const 1 - call $~lib/typedarray/Uint64Array#__set + local.get $2 + call $std/typedarray/isInt32ArrayEqual + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 258 + 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 + i32.const 0 + i32.const 2147483647 + call $~lib/typedarray/Int32Array#slice + local.tee $1 + i32.store offset=16 local.get $1 i32.const 1 - i64.const 2 - call $~lib/typedarray/Uint64Array#__set + i32.const 2 + i32.const 4 + call $~lib/typedarray/Int32Array#copyWithin + local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=4 - local.get $1 + i32.store offset=20 + i32.const 5 i32.const 2 - i64.const 3 - call $~lib/typedarray/Uint64Array#__set + i32.const 16 + i32.const 2608 + call $~lib/rt/__newArray + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=4 local.get $1 - i32.const 3 - i64.const 4 - call $~lib/typedarray/Uint64Array#__set + local.get $2 + call $std/typedarray/isInt32ArrayEqual + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 260 + i32.const 3 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer + local.get $0 + i32.const 0 + i32.const 2147483647 + call $~lib/typedarray/Int32Array#slice + local.tee $1 + i32.store offset=16 local.get $1 - i32.store offset=4 + i32.const 0 + i32.const -2 + i32.const 2147483647 + call $~lib/typedarray/Int32Array#copyWithin + local.set $1 + global.get $~lib/memory/__stack_pointer local.get $1 - i32.const 4 - i64.const 5 - call $~lib/typedarray/Uint64Array#__set + i32.store offset=20 + i32.const 5 + i32.const 2 + i32.const 16 + i32.const 2656 + call $~lib/rt/__newArray + local.set $2 global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 local.get $1 - i32.store offset=12 + local.get $2 + call $std/typedarray/isInt32ArrayEqual + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 262 + i32.const 3 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer - i32.const 7424 + local.get $0 + i32.const 0 + i32.const 2147483647 + call $~lib/typedarray/Int32Array#slice + local.tee $1 i32.store offset=16 local.get $1 - call $~lib/typedarray/Uint64Array#join - local.set $0 + i32.const 0 + i32.const -2 + i32.const -1 + call $~lib/typedarray/Int32Array#copyWithin + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 + local.get $1 + i32.store offset=20 + i32.const 5 + i32.const 2 + i32.const 16 + i32.const 2704 + call $~lib/rt/__newArray + local.set $2 global.get $~lib/memory/__stack_pointer - i32.const 7456 - i32.store offset=8 - local.get $0 - i32.const 7456 - call $~lib/string/String.__eq + local.get $2 + i32.store offset=4 + local.get $1 + local.get $2 + call $std/typedarray/isInt32ArrayEqual i32.eqz if i32.const 0 i32.const 1568 - i32.const 652 - i32.const 5 + i32.const 264 + i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer + local.get $0 + i32.const 0 + i32.const 2147483647 + call $~lib/typedarray/Int32Array#slice + local.tee $1 + i32.store offset=16 local.get $1 - i32.store offset=12 - 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 -4 + i32.const -3 + i32.const -2 + call $~lib/typedarray/Int32Array#copyWithin + local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store + i32.store offset=20 + i32.const 5 + i32.const 2 + i32.const 16 + i32.const 2752 + call $~lib/rt/__newArray + local.set $2 global.get $~lib/memory/__stack_pointer - i32.const 7424 + local.get $2 i32.store offset=4 local.get $1 - call $~lib/typedarray/Uint64Array#join - local.set $1 + local.get $2 + call $std/typedarray/isInt32ArrayEqual + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 266 + 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 + i32.const 0 + i32.const 2147483647 + call $~lib/typedarray/Int32Array#slice + local.tee $1 + i32.store offset=16 + local.get $1 + i32.const -4 + i32.const -3 + i32.const -1 + call $~lib/typedarray/Int32Array#copyWithin + local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=4 + i32.store offset=20 + i32.const 5 + i32.const 2 + i32.const 16 + i32.const 2800 + call $~lib/rt/__newArray + local.set $2 global.get $~lib/memory/__stack_pointer - i32.const 7456 - i32.store offset=8 + local.get $2 + i32.store offset=4 local.get $1 - i32.const 7456 - call $~lib/string/String.__eq + local.get $2 + call $std/typedarray/isInt32ArrayEqual i32.eqz if i32.const 0 i32.const 1568 - i32.const 653 - i32.const 5 + i32.const 268 + 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/util/string/joinFloatArray (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 0 + i32.const 2147483647 + call $~lib/typedarray/Int32Array#slice + local.tee $0 + i32.store offset=16 + local.get $0 + i32.const -4 + i32.const -3 + i32.const 2147483647 + call $~lib/typedarray/Int32Array#copyWithin + local.set $0 global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check + local.get $0 + i32.store offset=20 + i32.const 5 + i32.const 2 + i32.const 16 + i32.const 2848 + call $~lib/rt/__newArray + local.set $1 global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store local.get $1 - i32.const 1 - i32.sub - local.tee $3 - i32.const 0 - i32.lt_s + i32.store offset=4 + local.get $0 + local.get $1 + call $std/typedarray/isInt32ArrayEqual + i32.eqz if - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 7072 - return - end - block $folding-inner0 - local.get $3 - i32.eqz - if - local.get $0 - f32.load - f64.promote_f32 - call $~lib/util/number/dtoa - local.set $0 - br $folding-inner0 - end - global.get $~lib/memory/__stack_pointer - i32.const 7424 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.const 7420 - i32.load - i32.const 1 - i32.shr_u - local.tee $4 - i32.const 28 - i32.add - i32.mul - i32.const 28 - i32.add - local.tee $6 - i32.const 1 - i32.shl - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $1 - i32.store offset=4 - loop $for-loop|0 - local.get $3 - local.get $5 - i32.gt_s - if - local.get $1 - local.get $2 - i32.const 1 - i32.shl - i32.add - local.get $0 - local.get $5 - i32.const 2 - i32.shl - i32.add - f32.load - f64.promote_f32 - call $~lib/util/number/dtoa_buffered - local.get $2 - i32.add - local.set $2 - local.get $4 - if - local.get $1 - local.get $2 - i32.const 1 - i32.shl - i32.add - i32.const 7424 - local.get $4 - i32.const 1 - i32.shl - call $~lib/memory/memory.copy - local.get $2 - local.get $4 - i32.add - local.set $2 - end - local.get $5 - i32.const 1 - i32.add - local.set $5 - br $for-loop|0 - end - end - local.get $6 - local.get $1 - local.get $2 - i32.const 1 - i32.shl - i32.add - local.get $0 - local.get $3 - i32.const 2 - i32.shl - i32.add - f32.load - f64.promote_f32 - 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 $1 - i32.store - local.get $1 - local.get $0 - 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 - local.get $1 - return + i32.const 0 + i32.const 1568 + i32.const 270 + 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 5 + call $~lib/typedarray/Int32Array#constructor + local.tee $0 + i32.store 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 - call $~stack_check - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store + i32.const 0 + i32.const 1 + call $~lib/typedarray/Int32Array#__set local.get $0 - i32.load offset=4 - global.get $~lib/memory/__stack_pointer + i32.const 1 + i32.const 2 + call $~lib/typedarray/Int32Array#__set local.get $0 - i32.store offset=4 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Int32Array#__set + local.get $0 + i32.const 3 + i32.const 4 + call $~lib/typedarray/Int32Array#__set + local.get $0 + i32.const 4 + i32.const 5 + call $~lib/typedarray/Int32Array#__set + global.get $~lib/memory/__stack_pointer local.get $0 + i32.const 1 + i32.const 4 + call $~lib/typedarray/Int32Array#subarray + local.tee $2 + i32.store offset=16 + local.get $2 i32.load offset=8 i32.const 2 i32.shr_u - global.get $~lib/memory/__stack_pointer - i32.const 7424 - 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 $std/typedarray/testArrayJoinAndToString<~lib/typedarray/Float32Array,f32> - (local $0 i32) - (local $1 i32) - global.get $~lib/memory/__stack_pointer - i32.const 20 + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 282 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.load offset=4 + local.get $2 + i32.load 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 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - i32.const 5 - call $~lib/typedarray/Float32Array#constructor - local.tee $0 - i32.store + i32.const 4 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 283 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.load offset=8 + i32.const 12 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 284 + i32.const 3 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer local.get $0 + i32.const 1 + i32.const 3 + call $~lib/typedarray/Int32Array#slice local.tee $1 - i32.store offset=4 + i32.store offset=8 local.get $1 i32.const 0 - f32.const 1 - call $~lib/typedarray/Float32Array#__set - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 + call $~lib/typedarray/Int32Array#__get + i32.const 2 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 287 + i32.const 3 + call $~lib/builtins/abort + unreachable + end 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 + call $~lib/typedarray/Int32Array#__get + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 288 + i32.const 3 + call $~lib/builtins/abort + unreachable + end local.get $1 + i32.load offset=8 i32.const 2 - f32.const 3 - call $~lib/typedarray/Float32Array#__set - global.get $~lib/memory/__stack_pointer + i32.shr_u + i32.const 2 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 289 + i32.const 3 + call $~lib/builtins/abort + unreachable + end local.get $1 - i32.store offset=4 + i32.load offset=4 local.get $1 - i32.const 3 - f32.const 4 - call $~lib/typedarray/Float32Array#__set + i32.load + i32.sub + if + i32.const 0 + i32.const 1568 + i32.const 290 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.load offset=8 + i32.const 8 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 291 + i32.const 3 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer + local.get $2 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Int32Array#slice + local.tee $1 + i32.store offset=12 local.get $1 - i32.store offset=4 + i32.const 0 + call $~lib/typedarray/Int32Array#__get + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 294 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.load offset=8 + i32.const 2 + i32.shr_u + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 295 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.load offset=4 + local.get $1 + i32.load + i32.sub + if + i32.const 0 + i32.const 1568 + i32.const 296 + i32.const 3 + call $~lib/builtins/abort + unreachable + end local.get $1 + i32.load offset=8 i32.const 4 - f32.const 5 - call $~lib/typedarray/Float32Array#__set + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 297 + i32.const 3 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer + local.get $0 + i32.const 0 + i32.const 2147483647 + call $~lib/typedarray/Int32Array#slice + local.tee $1 + i32.store offset=24 + local.get $0 local.get $1 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 7424 - i32.store offset=16 + i32.eq + if + i32.const 0 + i32.const 1568 + i32.const 300 + i32.const 3 + call $~lib/builtins/abort + unreachable + end local.get $1 - call $~lib/typedarray/Float32Array#join - local.set $0 - global.get $~lib/memory/__stack_pointer + i32.load offset=8 + i32.const 2 + i32.shr_u local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 8640 - i32.store offset=8 + i32.load offset=8 + i32.const 2 + i32.shr_u + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 301 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.load offset=4 + local.get $1 + i32.load + i32.sub local.get $0 - i32.const 8640 - call $~lib/string/String.__eq - i32.eqz + i32.load offset=4 + local.get $0 + i32.load + i32.sub + i32.ne if i32.const 0 i32.const 1568 - i32.const 649 - i32.const 5 + i32.const 302 + i32.const 3 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=12 + i32.load offset=8 + local.get $0 + i32.load offset=8 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 303 + i32.const 3 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -32325,47 +31641,4418 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - local.get $1 + i32.const 3 + call $~lib/typedarray/Int8Array#constructor + local.tee $0 i32.store + local.get $0 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Int8Array#__set + local.get $0 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Int8Array#__set + local.get $0 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Int8Array#__set global.get $~lib/memory/__stack_pointer - i32.const 7424 + i32.const 2896 i32.store offset=4 - local.get $1 - call $~lib/typedarray/Float32Array#join + i32.const 0 local.set $1 - 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 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 8640 - i32.store offset=8 - local.get $1 - i32.const 8640 - call $~lib/string/String.__eq - i32.eqz - if + i32.const 0 + local.set $2 + local.get $0 + i32.load offset=4 + local.set $3 + local.get $0 + i32.load offset=8 + local.set $4 + loop $for-loop|0 + local.get $1 + local.get $4 + i32.lt_s + if + local.get $1 + local.get $3 + i32.add + i32.load8_s + local.set $5 + i32.const 4 + global.set $~argumentsLength + local.get $2 + local.get $5 + local.get $1 + local.get $0 + i32.const 2896 + i32.load + call_indirect (type $i32_i32_i32_i32_=>_i32) + local.set $2 + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|0 + end + end + block $folding-inner12 + block $folding-inner11 + block $folding-inner10 + block $folding-inner9 + block $folding-inner8 + block $folding-inner7 + block $folding-inner6 + block $folding-inner5 + block $folding-inner4 + block $folding-inner3 + block $folding-inner2 + block $folding-inner1 + block $folding-inner0 + local.get $2 + i32.const 255 + i32.and + i32.const 6 + i32.ne + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Uint8Array#constructor + local.tee $0 + i32.store + local.get $0 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Uint8Array#__set + local.get $0 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Uint8Array#__set + local.get $0 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Uint8Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 2928 + i32.store offset=4 + local.get $0 + i32.const 2928 + call $~lib/typedarray/Uint8Array#reduce + i32.const 255 + i32.and + i32.const 6 + i32.ne + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Uint8ClampedArray#constructor + local.tee $0 + i32.store + local.get $0 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Uint8ClampedArray#__set + local.get $0 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Uint8ClampedArray#__set + local.get $0 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Uint8ClampedArray#__set + global.get $~lib/memory/__stack_pointer + i32.const 2960 + i32.store offset=4 + local.get $0 + i32.const 2960 + call $~lib/typedarray/Uint8Array#reduce + i32.const 255 + i32.and + i32.const 6 + i32.ne + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Int16Array#constructor + local.tee $0 + i32.store + local.get $0 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Int16Array#__set + local.get $0 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Int16Array#__set + local.get $0 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Int16Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 2992 + i32.store offset=4 + i32.const 0 + local.set $1 + i32.const 0 + local.set $2 + local.get $0 + i32.load offset=4 + local.set $3 + local.get $0 + i32.load offset=8 + i32.const 1 + i32.shr_u + local.set $4 + loop $for-loop|00 + local.get $1 + local.get $4 + i32.lt_s + if + local.get $3 + local.get $1 + i32.const 1 + i32.shl + i32.add + i32.load16_s + local.set $5 + i32.const 4 + global.set $~argumentsLength + local.get $2 + local.get $5 + local.get $1 + local.get $0 + i32.const 2992 + i32.load + call_indirect (type $i32_i32_i32_i32_=>_i32) + local.set $2 + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|00 + end + end + local.get $2 + i32.const 65535 + i32.and + i32.const 6 + i32.ne + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Uint16Array#constructor + local.tee $0 + i32.store + local.get $0 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Uint16Array#__set + local.get $0 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Uint16Array#__set + local.get $0 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Uint16Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 3024 + i32.store offset=4 + i32.const 0 + local.set $1 + i32.const 0 + local.set $2 + local.get $0 + i32.load offset=4 + local.set $3 + local.get $0 + i32.load offset=8 + i32.const 1 + i32.shr_u + local.set $4 + loop $for-loop|01 + local.get $1 + local.get $4 + i32.lt_s + if + local.get $3 + local.get $1 + i32.const 1 + i32.shl + i32.add + i32.load16_u + local.set $5 + i32.const 4 + global.set $~argumentsLength + local.get $2 + local.get $5 + local.get $1 + local.get $0 + i32.const 3024 + i32.load + call_indirect (type $i32_i32_i32_i32_=>_i32) + local.set $2 + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|01 + end + end + local.get $2 + i32.const 65535 + i32.and + i32.const 6 + i32.ne + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Int32Array#constructor + local.tee $0 + i32.store + local.get $0 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Int32Array#__set + local.get $0 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Int32Array#__set + local.get $0 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Int32Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 3056 + i32.store offset=4 + i32.const 0 + local.set $1 + i32.const 0 + local.set $2 + local.get $0 + i32.load offset=4 + local.set $3 + local.get $0 + i32.load offset=8 + i32.const 2 + i32.shr_u + local.set $4 + loop $for-loop|02 + local.get $1 + local.get $4 + i32.lt_s + if + local.get $3 + local.get $1 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $5 + i32.const 4 + global.set $~argumentsLength + local.get $2 + local.get $5 + local.get $1 + local.get $0 + i32.const 3056 + i32.load + call_indirect (type $i32_i32_i32_i32_=>_i32) + local.set $2 + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|02 + end + end + local.get $2 + i32.const 6 + i32.ne + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Uint32Array#constructor + local.tee $0 + i32.store + local.get $0 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Uint32Array#__set + local.get $0 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Uint32Array#__set + local.get $0 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Uint32Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 3088 + i32.store offset=4 + i32.const 0 + local.set $1 + i32.const 0 + local.set $2 + local.get $0 + i32.load offset=4 + local.set $3 + local.get $0 + i32.load offset=8 + i32.const 2 + i32.shr_u + local.set $4 + loop $for-loop|03 + local.get $1 + local.get $4 + i32.lt_s + if + local.get $3 + local.get $1 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $5 + i32.const 4 + global.set $~argumentsLength + local.get $2 + local.get $5 + local.get $1 + local.get $0 + i32.const 3088 + i32.load + call_indirect (type $i32_i32_i32_i32_=>_i32) + local.set $2 + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|03 + end + end + local.get $2 + i32.const 6 + i32.ne + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Int64Array#constructor + local.tee $0 + i32.store + local.get $0 + i32.const 0 + i64.const 1 + call $~lib/typedarray/Int64Array#__set + local.get $0 + i32.const 1 + i64.const 2 + call $~lib/typedarray/Int64Array#__set + local.get $0 + i32.const 2 + i64.const 3 + call $~lib/typedarray/Int64Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 3120 + i32.store offset=4 + i32.const 0 + local.set $1 + local.get $0 + i32.load offset=4 + local.set $2 + local.get $0 + i32.load offset=8 + i32.const 3 + i32.shr_u + local.set $3 + loop $for-loop|04 + local.get $1 + local.get $3 + i32.lt_s + if + local.get $2 + local.get $1 + i32.const 3 + i32.shl + i32.add + i64.load + local.set $9 + i32.const 4 + global.set $~argumentsLength + local.get $6 + local.get $9 + local.get $1 + local.get $0 + i32.const 3120 + i32.load + call_indirect (type $i64_i64_i32_i32_=>_i64) + local.set $6 + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|04 + end + end + local.get $6 + i64.const 6 + i64.ne + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Uint64Array#constructor + local.tee $0 + i32.store + local.get $0 + i32.const 0 + i64.const 1 + call $~lib/typedarray/Uint64Array#__set + local.get $0 + i32.const 1 + i64.const 2 + call $~lib/typedarray/Uint64Array#__set + local.get $0 + i32.const 2 + i64.const 3 + call $~lib/typedarray/Uint64Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 3152 + i32.store offset=4 + i32.const 0 + local.set $1 + i64.const 0 + local.set $6 + local.get $0 + i32.load offset=4 + local.set $2 + local.get $0 + i32.load offset=8 + i32.const 3 + i32.shr_u + local.set $3 + loop $for-loop|05 + local.get $1 + local.get $3 + i32.lt_s + if + local.get $2 + local.get $1 + i32.const 3 + i32.shl + i32.add + i64.load + local.set $9 + i32.const 4 + global.set $~argumentsLength + local.get $6 + local.get $9 + local.get $1 + local.get $0 + i32.const 3152 + i32.load + call_indirect (type $i64_i64_i32_i32_=>_i64) + local.set $6 + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|05 + end + end + local.get $6 + i64.const 6 + i64.ne + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Float32Array#constructor + local.tee $0 + i32.store + local.get $0 + i32.const 0 + f32.const 1 + call $~lib/typedarray/Float32Array#__set + local.get $0 + i32.const 1 + f32.const 2 + call $~lib/typedarray/Float32Array#__set + local.get $0 + i32.const 2 + f32.const 3 + call $~lib/typedarray/Float32Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 3184 + i32.store offset=4 + i32.const 0 + local.set $1 + local.get $0 + i32.load offset=4 + local.set $2 + local.get $0 + i32.load offset=8 + i32.const 2 + i32.shr_u + local.set $3 + loop $for-loop|06 + local.get $1 + local.get $3 + i32.lt_s + if + local.get $2 + local.get $1 + i32.const 2 + i32.shl + i32.add + f32.load + local.set $10 + i32.const 4 + global.set $~argumentsLength + local.get $7 + local.get $10 + local.get $1 + local.get $0 + i32.const 3184 + i32.load + call_indirect (type $f32_f32_i32_i32_=>_f32) + local.set $7 + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|06 + end + end + local.get $7 + f32.const 6 + f32.ne + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Float64Array#constructor + local.tee $0 + i32.store + local.get $0 + i32.const 0 + f64.const 1 + call $~lib/typedarray/Float64Array#__set + local.get $0 + i32.const 1 + f64.const 2 + call $~lib/typedarray/Float64Array#__set + local.get $0 + i32.const 2 + f64.const 3 + call $~lib/typedarray/Float64Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 3216 + i32.store offset=4 + i32.const 0 + local.set $1 + local.get $0 + i32.load offset=4 + local.set $2 + local.get $0 + i32.load offset=8 + i32.const 3 + i32.shr_u + local.set $3 + loop $for-loop|07 + local.get $1 + local.get $3 + i32.lt_s + if + local.get $2 + local.get $1 + i32.const 3 + i32.shl + i32.add + f64.load + local.set $11 + i32.const 4 + global.set $~argumentsLength + local.get $8 + local.get $11 + local.get $1 + local.get $0 + i32.const 3216 + i32.load + call_indirect (type $f64_f64_i32_i32_=>_f64) + local.set $8 + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|07 + end + end + local.get $8 + f64.const 6 + f64.ne + br_if $folding-inner0 + 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.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 + i32.const 3 + call $~lib/typedarray/Int8Array#constructor + local.tee $0 + i32.store + local.get $0 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Int8Array#__set + local.get $0 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Int8Array#__set + local.get $0 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Int8Array#__set + local.get $0 + i32.const 0 + call $~lib/typedarray/Int8Array#at + i32.const 1 + i32.ne + br_if $folding-inner1 + local.get $0 + i32.const -1 + call $~lib/typedarray/Int8Array#at + i32.const 3 + i32.ne + br_if $folding-inner2 + local.get $0 + i32.const -3 + call $~lib/typedarray/Int8Array#at + i32.const 1 + i32.ne + br_if $folding-inner3 + 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 + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Uint8Array#constructor + local.tee $0 + i32.store + local.get $0 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Uint8Array#__set + local.get $0 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Uint8Array#__set + local.get $0 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Uint8Array#__set + local.get $0 + i32.const 0 + call $~lib/typedarray/Uint8Array#at + i32.const 1 + i32.ne + br_if $folding-inner1 + local.get $0 + i32.const -1 + call $~lib/typedarray/Uint8Array#at + i32.const 3 + i32.ne + br_if $folding-inner2 + local.get $0 + i32.const -3 + call $~lib/typedarray/Uint8Array#at + i32.const 1 + i32.ne + br_if $folding-inner3 + 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 + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Uint8ClampedArray#constructor + local.tee $0 + i32.store + local.get $0 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Uint8ClampedArray#__set + local.get $0 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Uint8ClampedArray#__set + local.get $0 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Uint8ClampedArray#__set + local.get $0 + i32.const 0 + call $~lib/typedarray/Uint8ClampedArray#at + i32.const 1 + i32.ne + br_if $folding-inner1 + local.get $0 + i32.const -1 + call $~lib/typedarray/Uint8ClampedArray#at + i32.const 3 + i32.ne + br_if $folding-inner2 + local.get $0 + i32.const -3 + call $~lib/typedarray/Uint8ClampedArray#at + i32.const 1 + i32.ne + br_if $folding-inner3 + 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 + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Int16Array#constructor + local.tee $0 + i32.store + local.get $0 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Int16Array#__set + local.get $0 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Int16Array#__set + local.get $0 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Int16Array#__set + local.get $0 + i32.const 0 + call $~lib/typedarray/Int16Array#at + i32.const 1 + i32.ne + br_if $folding-inner1 + local.get $0 + i32.const -1 + call $~lib/typedarray/Int16Array#at + i32.const 3 + i32.ne + br_if $folding-inner2 + local.get $0 + i32.const -3 + call $~lib/typedarray/Int16Array#at + i32.const 1 + i32.ne + br_if $folding-inner3 + 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 + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Uint16Array#constructor + local.tee $0 + i32.store + local.get $0 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Uint16Array#__set + local.get $0 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Uint16Array#__set + local.get $0 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Uint16Array#__set + local.get $0 + i32.const 0 + call $~lib/typedarray/Uint16Array#at + i32.const 1 + i32.ne + br_if $folding-inner1 + local.get $0 + i32.const -1 + call $~lib/typedarray/Uint16Array#at + i32.const 3 + i32.ne + br_if $folding-inner2 + local.get $0 + i32.const -3 + call $~lib/typedarray/Uint16Array#at + i32.const 1 + i32.ne + br_if $folding-inner3 + 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 + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Int32Array#constructor + local.tee $0 + i32.store + local.get $0 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Int32Array#__set + local.get $0 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Int32Array#__set + local.get $0 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Int32Array#__set + local.get $0 + i32.const 0 + call $~lib/typedarray/Int32Array#at + i32.const 1 + i32.ne + br_if $folding-inner1 + local.get $0 + i32.const -1 + call $~lib/typedarray/Int32Array#at + i32.const 3 + i32.ne + br_if $folding-inner2 + local.get $0 + i32.const -3 + call $~lib/typedarray/Int32Array#at + i32.const 1 + i32.ne + br_if $folding-inner3 + 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 + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Uint32Array#constructor + local.tee $0 + i32.store + local.get $0 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Uint32Array#__set + local.get $0 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Uint32Array#__set + local.get $0 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Uint32Array#__set + local.get $0 + i32.const 0 + call $~lib/typedarray/Uint32Array#at + i32.const 1 + i32.ne + br_if $folding-inner1 + local.get $0 + i32.const -1 + call $~lib/typedarray/Uint32Array#at + i32.const 3 + i32.ne + br_if $folding-inner2 + local.get $0 + i32.const -3 + call $~lib/typedarray/Uint32Array#at + i32.const 1 + i32.ne + br_if $folding-inner3 + 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 + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Int64Array#constructor + local.tee $0 + i32.store + local.get $0 + i32.const 0 + i64.const 1 + call $~lib/typedarray/Int64Array#__set + local.get $0 + i32.const 1 + i64.const 2 + call $~lib/typedarray/Int64Array#__set + local.get $0 + i32.const 2 + i64.const 3 + call $~lib/typedarray/Int64Array#__set + local.get $0 + i32.const 0 + call $~lib/typedarray/Int64Array#at + i64.const 1 + i64.ne + br_if $folding-inner1 + local.get $0 + i32.const -1 + call $~lib/typedarray/Int64Array#at + i64.const 3 + i64.ne + br_if $folding-inner2 + local.get $0 + i32.const -3 + call $~lib/typedarray/Int64Array#at + i64.const 1 + i64.ne + br_if $folding-inner3 + 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 + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Uint64Array#constructor + local.tee $0 + i32.store + local.get $0 + i32.const 0 + i64.const 1 + call $~lib/typedarray/Uint64Array#__set + local.get $0 + i32.const 1 + i64.const 2 + call $~lib/typedarray/Uint64Array#__set + local.get $0 + i32.const 2 + i64.const 3 + call $~lib/typedarray/Uint64Array#__set + local.get $0 + i32.const 0 + call $~lib/typedarray/Uint64Array#at + i64.const 1 + i64.ne + br_if $folding-inner1 + local.get $0 + i32.const -1 + call $~lib/typedarray/Uint64Array#at + i64.const 3 + i64.ne + br_if $folding-inner2 + local.get $0 + i32.const -3 + call $~lib/typedarray/Uint64Array#at + i64.const 1 + i64.ne + br_if $folding-inner3 + 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 + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Float32Array#constructor + local.tee $0 + i32.store + local.get $0 + i32.const 0 + f32.const 1 + call $~lib/typedarray/Float32Array#__set + local.get $0 + i32.const 1 + f32.const 2 + call $~lib/typedarray/Float32Array#__set + local.get $0 + i32.const 2 + f32.const 3 + call $~lib/typedarray/Float32Array#__set + local.get $0 + i32.const 0 + call $~lib/typedarray/Float32Array#at + f32.const 1 + f32.ne + br_if $folding-inner1 + local.get $0 + i32.const -1 + call $~lib/typedarray/Float32Array#at + f32.const 3 + f32.ne + br_if $folding-inner2 + local.get $0 + i32.const -3 + call $~lib/typedarray/Float32Array#at + f32.const 1 + f32.ne + br_if $folding-inner3 + 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 + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Float64Array#constructor + local.tee $0 + i32.store + local.get $0 + i32.const 0 + f64.const 1 + call $~lib/typedarray/Float64Array#__set + local.get $0 + i32.const 1 + f64.const 2 + call $~lib/typedarray/Float64Array#__set + local.get $0 + i32.const 2 + f64.const 3 + call $~lib/typedarray/Float64Array#__set + local.get $0 + i32.const 0 + call $~lib/typedarray/Float64Array#at + f64.const 1 + f64.ne + br_if $folding-inner1 + local.get $0 + i32.const -1 + call $~lib/typedarray/Float64Array#at + f64.const 3 + f64.ne + br_if $folding-inner2 + local.get $0 + i32.const -3 + call $~lib/typedarray/Float64Array#at + f64.const 1 + f64.ne + br_if $folding-inner3 + 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 + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Int8Array#constructor + local.tee $0 + i32.store + local.get $0 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Int8Array#__set + local.get $0 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Int8Array#__set + local.get $0 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Int8Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 3248 + i32.store offset=4 + i32.const 0 + local.set $2 + local.get $0 + i32.load offset=4 + local.set $3 + local.get $0 + i32.load offset=8 + i32.const 1 + i32.sub + local.set $1 + loop $for-loop|08 + local.get $1 + i32.const 0 + i32.ge_s + if + local.get $1 + local.get $3 + i32.add + i32.load8_s + local.set $4 + i32.const 4 + global.set $~argumentsLength + local.get $2 + local.get $4 + local.get $1 + local.get $0 + i32.const 3248 + i32.load + call_indirect (type $i32_i32_i32_i32_=>_i32) + local.set $2 + local.get $1 + i32.const 1 + i32.sub + local.set $1 + br $for-loop|08 + end + end + local.get $2 + i32.const 255 + i32.and + i32.const 6 + i32.ne + br_if $folding-inner4 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Uint8Array#constructor + local.tee $0 + i32.store + local.get $0 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Uint8Array#__set + local.get $0 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Uint8Array#__set + local.get $0 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Uint8Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 3280 + i32.store offset=4 + local.get $0 + i32.const 3280 + call $~lib/typedarray/Uint8Array#reduceRight + i32.const 255 + i32.and + i32.const 6 + i32.ne + br_if $folding-inner4 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Uint8ClampedArray#constructor + local.tee $0 + i32.store + local.get $0 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Uint8ClampedArray#__set + local.get $0 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Uint8ClampedArray#__set + local.get $0 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Uint8ClampedArray#__set + global.get $~lib/memory/__stack_pointer + i32.const 3312 + i32.store offset=4 + local.get $0 + i32.const 3312 + call $~lib/typedarray/Uint8Array#reduceRight + i32.const 255 + i32.and + i32.const 6 + i32.ne + br_if $folding-inner4 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Int16Array#constructor + local.tee $0 + i32.store + local.get $0 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Int16Array#__set + local.get $0 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Int16Array#__set + local.get $0 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Int16Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 3344 + i32.store offset=4 + i32.const 0 + local.set $2 + local.get $0 + i32.load offset=4 + local.set $3 + local.get $0 + i32.load offset=8 + i32.const 1 + i32.shr_u + i32.const 1 + i32.sub + local.set $1 + loop $for-loop|09 + local.get $1 + i32.const 0 + i32.ge_s + if + local.get $3 + local.get $1 + i32.const 1 + i32.shl + i32.add + i32.load16_s + local.set $4 + i32.const 4 + global.set $~argumentsLength + local.get $2 + local.get $4 + local.get $1 + local.get $0 + i32.const 3344 + i32.load + call_indirect (type $i32_i32_i32_i32_=>_i32) + local.set $2 + local.get $1 + i32.const 1 + i32.sub + local.set $1 + br $for-loop|09 + end + end + local.get $2 + i32.const 65535 + i32.and + i32.const 6 + i32.ne + br_if $folding-inner4 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Uint16Array#constructor + local.tee $0 + i32.store + local.get $0 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Uint16Array#__set + local.get $0 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Uint16Array#__set + local.get $0 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Uint16Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 3376 + i32.store offset=4 + i32.const 0 + local.set $2 + local.get $0 + i32.load offset=4 + local.set $3 + local.get $0 + i32.load offset=8 + i32.const 1 + i32.shr_u + i32.const 1 + i32.sub + local.set $1 + loop $for-loop|010 + local.get $1 + i32.const 0 + i32.ge_s + if + local.get $3 + local.get $1 + i32.const 1 + i32.shl + i32.add + i32.load16_u + local.set $4 + i32.const 4 + global.set $~argumentsLength + local.get $2 + local.get $4 + local.get $1 + local.get $0 + i32.const 3376 + i32.load + call_indirect (type $i32_i32_i32_i32_=>_i32) + local.set $2 + local.get $1 + i32.const 1 + i32.sub + local.set $1 + br $for-loop|010 + end + end + local.get $2 + i32.const 65535 + i32.and + i32.const 6 + i32.ne + br_if $folding-inner4 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Int32Array#constructor + local.tee $0 + i32.store + local.get $0 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Int32Array#__set + local.get $0 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Int32Array#__set + local.get $0 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Int32Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 3408 + i32.store offset=4 + i32.const 0 + local.set $2 + local.get $0 + i32.load offset=4 + local.set $3 + local.get $0 + i32.load offset=8 + i32.const 2 + i32.shr_u + i32.const 1 + i32.sub + local.set $1 + loop $for-loop|011 + local.get $1 + i32.const 0 + i32.ge_s + if + local.get $3 + local.get $1 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $4 + i32.const 4 + global.set $~argumentsLength + local.get $2 + local.get $4 + local.get $1 + local.get $0 + i32.const 3408 + i32.load + call_indirect (type $i32_i32_i32_i32_=>_i32) + local.set $2 + local.get $1 + i32.const 1 + i32.sub + local.set $1 + br $for-loop|011 + end + end + local.get $2 + i32.const 6 + i32.ne + br_if $folding-inner4 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Uint32Array#constructor + local.tee $0 + i32.store + local.get $0 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Uint32Array#__set + local.get $0 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Uint32Array#__set + local.get $0 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Uint32Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 3440 + i32.store offset=4 + i32.const 0 + local.set $2 + local.get $0 + i32.load offset=4 + local.set $3 + local.get $0 + i32.load offset=8 + i32.const 2 + i32.shr_u + i32.const 1 + i32.sub + local.set $1 + loop $for-loop|012 + local.get $1 + i32.const 0 + i32.ge_s + if + local.get $3 + local.get $1 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $4 + i32.const 4 + global.set $~argumentsLength + local.get $2 + local.get $4 + local.get $1 + local.get $0 + i32.const 3440 + i32.load + call_indirect (type $i32_i32_i32_i32_=>_i32) + local.set $2 + local.get $1 + i32.const 1 + i32.sub + local.set $1 + br $for-loop|012 + end + end + local.get $2 + i32.const 6 + i32.ne + br_if $folding-inner4 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Int64Array#constructor + local.tee $0 + i32.store + local.get $0 + i32.const 0 + i64.const 1 + call $~lib/typedarray/Int64Array#__set + local.get $0 + i32.const 1 + i64.const 2 + call $~lib/typedarray/Int64Array#__set + local.get $0 + i32.const 2 + i64.const 3 + call $~lib/typedarray/Int64Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 3472 + i32.store offset=4 + i64.const 0 + local.set $6 + local.get $0 + i32.load offset=4 + local.set $2 + local.get $0 + i32.load offset=8 + i32.const 3 + i32.shr_u + i32.const 1 + i32.sub + local.set $1 + loop $for-loop|013 + local.get $1 + i32.const 0 + i32.ge_s + if + local.get $2 + local.get $1 + i32.const 3 + i32.shl + i32.add + i64.load + local.set $9 + i32.const 4 + global.set $~argumentsLength + local.get $6 + local.get $9 + local.get $1 + local.get $0 + i32.const 3472 + i32.load + call_indirect (type $i64_i64_i32_i32_=>_i64) + local.set $6 + local.get $1 + i32.const 1 + i32.sub + local.set $1 + br $for-loop|013 + end + end + local.get $6 + i64.const 6 + i64.ne + br_if $folding-inner4 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Uint64Array#constructor + local.tee $0 + i32.store + local.get $0 + i32.const 0 + i64.const 1 + call $~lib/typedarray/Uint64Array#__set + local.get $0 + i32.const 1 + i64.const 2 + call $~lib/typedarray/Uint64Array#__set + local.get $0 + i32.const 2 + i64.const 3 + call $~lib/typedarray/Uint64Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 3504 + i32.store offset=4 + i64.const 0 + local.set $6 + local.get $0 + i32.load offset=4 + local.set $2 + local.get $0 + i32.load offset=8 + i32.const 3 + i32.shr_u + i32.const 1 + i32.sub + local.set $1 + loop $for-loop|014 + local.get $1 + i32.const 0 + i32.ge_s + if + local.get $2 + local.get $1 + i32.const 3 + i32.shl + i32.add + i64.load + local.set $9 + i32.const 4 + global.set $~argumentsLength + local.get $6 + local.get $9 + local.get $1 + local.get $0 + i32.const 3504 + i32.load + call_indirect (type $i64_i64_i32_i32_=>_i64) + local.set $6 + local.get $1 + i32.const 1 + i32.sub + local.set $1 + br $for-loop|014 + end + end + local.get $6 + i64.const 6 + i64.ne + br_if $folding-inner4 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Float32Array#constructor + local.tee $0 + i32.store + local.get $0 + i32.const 0 + f32.const 1 + call $~lib/typedarray/Float32Array#__set + local.get $0 + i32.const 1 + f32.const 2 + call $~lib/typedarray/Float32Array#__set + local.get $0 + i32.const 2 + f32.const 3 + call $~lib/typedarray/Float32Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 3536 + i32.store offset=4 + f32.const 0 + local.set $7 + local.get $0 + i32.load offset=4 + local.set $2 + local.get $0 + i32.load offset=8 + i32.const 2 + i32.shr_u + i32.const 1 + i32.sub + local.set $1 + loop $for-loop|015 + local.get $1 + i32.const 0 + i32.ge_s + if + local.get $2 + local.get $1 + i32.const 2 + i32.shl + i32.add + f32.load + local.set $10 + i32.const 4 + global.set $~argumentsLength + local.get $7 + local.get $10 + local.get $1 + local.get $0 + i32.const 3536 + i32.load + call_indirect (type $f32_f32_i32_i32_=>_f32) + local.set $7 + local.get $1 + i32.const 1 + i32.sub + local.set $1 + br $for-loop|015 + end + end + local.get $7 + f32.const 6 + f32.ne + br_if $folding-inner4 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Float64Array#constructor + local.tee $0 + i32.store + local.get $0 + i32.const 0 + f64.const 1 + call $~lib/typedarray/Float64Array#__set + local.get $0 + i32.const 1 + f64.const 2 + call $~lib/typedarray/Float64Array#__set + local.get $0 + i32.const 2 + f64.const 3 + call $~lib/typedarray/Float64Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 3568 + i32.store offset=4 + f64.const 0 + local.set $8 + local.get $0 + i32.load offset=4 + local.set $2 + local.get $0 + i32.load offset=8 + i32.const 3 + i32.shr_u + i32.const 1 + i32.sub + local.set $1 + loop $for-loop|016 + local.get $1 + i32.const 0 + i32.ge_s + if + local.get $2 + local.get $1 + i32.const 3 + i32.shl + i32.add + f64.load + local.set $11 + i32.const 4 + global.set $~argumentsLength + local.get $8 + local.get $11 + local.get $1 + local.get $0 + i32.const 3568 + i32.load + call_indirect (type $f64_f64_i32_i32_=>_f64) + local.set $8 + local.get $1 + i32.const 1 + i32.sub + local.set $1 + br $for-loop|016 + end + end + local.get $8 + f64.const 6 + f64.ne + br_if $folding-inner4 + global.get $~lib/memory/__stack_pointer + i32.const 8 + 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> + 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 + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Int8Array#constructor + local.tee $0 + i32.store + local.get $0 + i32.const 0 + i32.const 2 + call $~lib/typedarray/Int8Array#__set + local.get $0 + i32.const 1 + i32.const 4 + call $~lib/typedarray/Int8Array#__set + local.get $0 + i32.const 2 + i32.const 6 + call $~lib/typedarray/Int8Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 4304 + i32.store offset=4 + local.get $0 + i32.const 4304 + call $~lib/typedarray/Int8Array#some + i32.eqz + br_if $folding-inner5 + global.get $~lib/memory/__stack_pointer + i32.const 4336 + i32.store offset=4 + local.get $0 + i32.const 4336 + call $~lib/typedarray/Int8Array#some + br_if $folding-inner6 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Uint8Array#constructor + local.tee $0 + i32.store + local.get $0 + i32.const 0 + i32.const 2 + call $~lib/typedarray/Uint8Array#__set + local.get $0 + i32.const 1 + i32.const 4 + call $~lib/typedarray/Uint8Array#__set + local.get $0 + i32.const 2 + i32.const 6 + call $~lib/typedarray/Uint8Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 4368 + i32.store offset=4 + local.get $0 + i32.const 4368 + call $~lib/typedarray/Uint8Array#some + i32.eqz + br_if $folding-inner5 + global.get $~lib/memory/__stack_pointer + i32.const 4400 + i32.store offset=4 + local.get $0 + i32.const 4400 + call $~lib/typedarray/Uint8Array#some + br_if $folding-inner6 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Uint8ClampedArray#constructor + local.tee $0 + i32.store + local.get $0 + i32.const 0 + i32.const 2 + call $~lib/typedarray/Uint8ClampedArray#__set + local.get $0 + i32.const 1 + i32.const 4 + call $~lib/typedarray/Uint8ClampedArray#__set + local.get $0 + i32.const 2 + i32.const 6 + call $~lib/typedarray/Uint8ClampedArray#__set + global.get $~lib/memory/__stack_pointer + i32.const 4432 + i32.store offset=4 + local.get $0 + i32.const 4432 + call $~lib/typedarray/Uint8Array#some + i32.eqz + br_if $folding-inner5 + global.get $~lib/memory/__stack_pointer + i32.const 4464 + i32.store offset=4 + local.get $0 + i32.const 4464 + call $~lib/typedarray/Uint8Array#some + br_if $folding-inner6 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Int16Array#constructor + local.tee $0 + i32.store + local.get $0 + i32.const 0 + i32.const 2 + call $~lib/typedarray/Int16Array#__set + local.get $0 + i32.const 1 + i32.const 4 + call $~lib/typedarray/Int16Array#__set + local.get $0 + i32.const 2 + i32.const 6 + call $~lib/typedarray/Int16Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 4496 + i32.store offset=4 + local.get $0 + i32.const 4496 + call $~lib/typedarray/Int16Array#some + i32.eqz + br_if $folding-inner5 + global.get $~lib/memory/__stack_pointer + i32.const 4528 + i32.store offset=4 + local.get $0 + i32.const 4528 + call $~lib/typedarray/Int16Array#some + br_if $folding-inner6 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Uint16Array#constructor + local.tee $0 + i32.store + local.get $0 + i32.const 0 + i32.const 2 + call $~lib/typedarray/Uint16Array#__set + local.get $0 + i32.const 1 + i32.const 4 + call $~lib/typedarray/Uint16Array#__set + local.get $0 + i32.const 2 + i32.const 6 + call $~lib/typedarray/Uint16Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 4560 + i32.store offset=4 + local.get $0 + i32.const 4560 + call $~lib/typedarray/Uint16Array#some + i32.eqz + br_if $folding-inner5 + global.get $~lib/memory/__stack_pointer + i32.const 4592 + i32.store offset=4 + local.get $0 + i32.const 4592 + call $~lib/typedarray/Uint16Array#some + br_if $folding-inner6 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Int32Array#constructor + local.tee $0 + i32.store + local.get $0 + i32.const 0 + i32.const 2 + call $~lib/typedarray/Int32Array#__set + local.get $0 + i32.const 1 + i32.const 4 + call $~lib/typedarray/Int32Array#__set + local.get $0 + i32.const 2 + i32.const 6 + call $~lib/typedarray/Int32Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 4624 + i32.store offset=4 + local.get $0 + i32.const 4624 + call $~lib/typedarray/Int32Array#some + i32.eqz + br_if $folding-inner5 + global.get $~lib/memory/__stack_pointer + i32.const 4656 + i32.store offset=4 + local.get $0 + i32.const 4656 + call $~lib/typedarray/Int32Array#some + br_if $folding-inner6 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Uint32Array#constructor + local.tee $0 + i32.store + local.get $0 + i32.const 0 + i32.const 2 + call $~lib/typedarray/Uint32Array#__set + local.get $0 + i32.const 1 + i32.const 4 + call $~lib/typedarray/Uint32Array#__set + local.get $0 + i32.const 2 + i32.const 6 + call $~lib/typedarray/Uint32Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 4688 + i32.store offset=4 + local.get $0 + i32.const 4688 + call $~lib/typedarray/Uint32Array#some + i32.eqz + br_if $folding-inner5 + global.get $~lib/memory/__stack_pointer + i32.const 4720 + i32.store offset=4 + local.get $0 + i32.const 4720 + call $~lib/typedarray/Uint32Array#some + br_if $folding-inner6 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Int64Array#constructor + local.tee $0 + i32.store + local.get $0 + i32.const 0 + i64.const 2 + call $~lib/typedarray/Int64Array#__set + local.get $0 + i32.const 1 + i64.const 4 + call $~lib/typedarray/Int64Array#__set + local.get $0 + i32.const 2 + i64.const 6 + call $~lib/typedarray/Int64Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 4752 + i32.store offset=4 + local.get $0 + i32.const 4752 + call $~lib/typedarray/Int64Array#some + i32.eqz + br_if $folding-inner5 + global.get $~lib/memory/__stack_pointer + i32.const 4784 + i32.store offset=4 + local.get $0 + i32.const 4784 + call $~lib/typedarray/Int64Array#some + br_if $folding-inner6 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Uint64Array#constructor + local.tee $0 + i32.store + local.get $0 + i32.const 0 + i64.const 2 + call $~lib/typedarray/Uint64Array#__set + local.get $0 + i32.const 1 + i64.const 4 + call $~lib/typedarray/Uint64Array#__set + local.get $0 + i32.const 2 + i64.const 6 + call $~lib/typedarray/Uint64Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 4816 + i32.store offset=4 + local.get $0 + i32.const 4816 + call $~lib/typedarray/Uint64Array#some + i32.eqz + br_if $folding-inner5 + global.get $~lib/memory/__stack_pointer + i32.const 4848 + i32.store offset=4 + local.get $0 + i32.const 4848 + call $~lib/typedarray/Uint64Array#some + br_if $folding-inner6 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Float32Array#constructor + local.tee $0 + i32.store + local.get $0 + i32.const 0 + f32.const 2 + call $~lib/typedarray/Float32Array#__set + local.get $0 + i32.const 1 + f32.const 4 + call $~lib/typedarray/Float32Array#__set + local.get $0 + i32.const 2 + f32.const 6 + call $~lib/typedarray/Float32Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 4880 + i32.store offset=4 + local.get $0 + i32.const 4880 + call $~lib/typedarray/Float32Array#some + i32.eqz + br_if $folding-inner5 + global.get $~lib/memory/__stack_pointer + i32.const 4912 + i32.store offset=4 + local.get $0 + i32.const 4912 + call $~lib/typedarray/Float32Array#some + br_if $folding-inner6 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Float64Array#constructor + local.tee $0 + i32.store + local.get $0 + i32.const 0 + f64.const 2 + call $~lib/typedarray/Float64Array#__set + local.get $0 + i32.const 1 + f64.const 4 + call $~lib/typedarray/Float64Array#__set + local.get $0 + i32.const 2 + f64.const 6 + call $~lib/typedarray/Float64Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 4944 + i32.store offset=4 + local.get $0 + i32.const 4944 + call $~lib/typedarray/Float64Array#some + i32.eqz + br_if $folding-inner5 + global.get $~lib/memory/__stack_pointer + i32.const 4976 + i32.store offset=4 + local.get $0 + i32.const 4976 + call $~lib/typedarray/Float64Array#some + br_if $folding-inner6 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Int8Array#constructor + local.tee $0 + i32.store + local.get $0 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Int8Array#__set + local.get $0 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Int8Array#__set + local.get $0 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Int8Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 5008 + i32.store offset=4 + local.get $0 + i32.const 5008 + call $~lib/typedarray/Int8Array#findIndex + i32.const 1 + i32.ne + br_if $folding-inner7 + global.get $~lib/memory/__stack_pointer + i32.const 5040 + i32.store offset=4 + local.get $0 + i32.const 5040 + call $~lib/typedarray/Int8Array#findIndex + i32.const -1 + i32.ne + br_if $folding-inner8 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Uint8Array#constructor + local.tee $0 + i32.store + local.get $0 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Uint8Array#__set + local.get $0 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Uint8Array#__set + local.get $0 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Uint8Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 5072 + i32.store offset=4 + local.get $0 + i32.const 5072 + call $~lib/typedarray/Uint8Array#findIndex + i32.const 1 + i32.ne + br_if $folding-inner7 + global.get $~lib/memory/__stack_pointer + i32.const 5104 + i32.store offset=4 + local.get $0 + i32.const 5104 + call $~lib/typedarray/Uint8Array#findIndex + i32.const -1 + i32.ne + br_if $folding-inner8 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Uint8ClampedArray#constructor + local.tee $0 + i32.store + local.get $0 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Uint8ClampedArray#__set + local.get $0 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Uint8ClampedArray#__set + local.get $0 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Uint8ClampedArray#__set + global.get $~lib/memory/__stack_pointer + i32.const 5136 + i32.store offset=4 + local.get $0 + i32.const 5136 + call $~lib/typedarray/Uint8Array#findIndex + i32.const 1 + i32.ne + br_if $folding-inner7 + global.get $~lib/memory/__stack_pointer + i32.const 5168 + i32.store offset=4 + local.get $0 + i32.const 5168 + call $~lib/typedarray/Uint8Array#findIndex + i32.const -1 + i32.ne + br_if $folding-inner8 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Int16Array#constructor + local.tee $0 + i32.store + local.get $0 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Int16Array#__set + local.get $0 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Int16Array#__set + local.get $0 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Int16Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 5200 + i32.store offset=4 + local.get $0 + i32.const 5200 + call $~lib/typedarray/Int16Array#findIndex + i32.const 1 + i32.ne + br_if $folding-inner7 + global.get $~lib/memory/__stack_pointer + i32.const 5232 + i32.store offset=4 + local.get $0 + i32.const 5232 + call $~lib/typedarray/Int16Array#findIndex + i32.const -1 + i32.ne + br_if $folding-inner8 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Uint16Array#constructor + local.tee $0 + i32.store + local.get $0 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Uint16Array#__set + local.get $0 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Uint16Array#__set + local.get $0 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Uint16Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 5264 + i32.store offset=4 + local.get $0 + i32.const 5264 + call $~lib/typedarray/Uint16Array#findIndex + i32.const 1 + i32.ne + br_if $folding-inner7 + global.get $~lib/memory/__stack_pointer + i32.const 5296 + i32.store offset=4 + local.get $0 + i32.const 5296 + call $~lib/typedarray/Uint16Array#findIndex + i32.const -1 + i32.ne + br_if $folding-inner8 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Int32Array#constructor + local.tee $0 + i32.store + local.get $0 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Int32Array#__set + local.get $0 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Int32Array#__set + local.get $0 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Int32Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 5328 + i32.store offset=4 + local.get $0 + i32.const 5328 + call $~lib/typedarray/Int32Array#findIndex + i32.const 1 + i32.ne + br_if $folding-inner7 + global.get $~lib/memory/__stack_pointer + i32.const 5360 + i32.store offset=4 + local.get $0 + i32.const 5360 + call $~lib/typedarray/Int32Array#findIndex + i32.const -1 + i32.ne + br_if $folding-inner8 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Uint32Array#constructor + local.tee $0 + i32.store + local.get $0 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Uint32Array#__set + local.get $0 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Uint32Array#__set + local.get $0 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Uint32Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 5392 + i32.store offset=4 + local.get $0 + i32.const 5392 + call $~lib/typedarray/Uint32Array#findIndex + i32.const 1 + i32.ne + br_if $folding-inner7 + global.get $~lib/memory/__stack_pointer + i32.const 5424 + i32.store offset=4 + local.get $0 + i32.const 5424 + call $~lib/typedarray/Uint32Array#findIndex + i32.const -1 + i32.ne + br_if $folding-inner8 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Int64Array#constructor + local.tee $0 + i32.store + local.get $0 + i32.const 0 + i64.const 1 + call $~lib/typedarray/Int64Array#__set + local.get $0 + i32.const 1 + i64.const 2 + call $~lib/typedarray/Int64Array#__set + local.get $0 + i32.const 2 + i64.const 3 + call $~lib/typedarray/Int64Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 5456 + i32.store offset=4 + local.get $0 + i32.const 5456 + call $~lib/typedarray/Int64Array#findIndex + i32.const 1 + i32.ne + br_if $folding-inner7 + global.get $~lib/memory/__stack_pointer + i32.const 5488 + i32.store offset=4 + local.get $0 + i32.const 5488 + call $~lib/typedarray/Int64Array#findIndex + i32.const -1 + i32.ne + br_if $folding-inner8 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Uint64Array#constructor + local.tee $0 + i32.store + local.get $0 + i32.const 0 + i64.const 1 + call $~lib/typedarray/Uint64Array#__set + local.get $0 + i32.const 1 + i64.const 2 + call $~lib/typedarray/Uint64Array#__set + local.get $0 + i32.const 2 + i64.const 3 + call $~lib/typedarray/Uint64Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 5520 + i32.store offset=4 + local.get $0 + i32.const 5520 + call $~lib/typedarray/Uint64Array#findIndex + i32.const 1 + i32.ne + br_if $folding-inner7 + global.get $~lib/memory/__stack_pointer + i32.const 5552 + i32.store offset=4 + local.get $0 + i32.const 5552 + call $~lib/typedarray/Uint64Array#findIndex + i32.const -1 + i32.ne + br_if $folding-inner8 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Float32Array#constructor + local.tee $0 + i32.store + local.get $0 + i32.const 0 + f32.const 1 + call $~lib/typedarray/Float32Array#__set + local.get $0 + i32.const 1 + f32.const 2 + call $~lib/typedarray/Float32Array#__set + local.get $0 + i32.const 2 + f32.const 3 + call $~lib/typedarray/Float32Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 5584 + i32.store offset=4 + local.get $0 + i32.const 5584 + call $~lib/typedarray/Float32Array#findIndex + i32.const 1 + i32.ne + br_if $folding-inner7 + global.get $~lib/memory/__stack_pointer + i32.const 5616 + i32.store offset=4 + local.get $0 + i32.const 5616 + call $~lib/typedarray/Float32Array#findIndex + i32.const -1 + i32.ne + br_if $folding-inner8 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Float64Array#constructor + local.tee $0 + i32.store + local.get $0 + i32.const 0 + f64.const 1 + call $~lib/typedarray/Float64Array#__set + local.get $0 + i32.const 1 + f64.const 2 + call $~lib/typedarray/Float64Array#__set + local.get $0 + i32.const 2 + f64.const 3 + call $~lib/typedarray/Float64Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 5648 + i32.store offset=4 + local.get $0 + i32.const 5648 + call $~lib/typedarray/Float64Array#findIndex + i32.const 1 + i32.ne + br_if $folding-inner7 + global.get $~lib/memory/__stack_pointer + i32.const 5680 + i32.store offset=4 + local.get $0 + i32.const 5680 + call $~lib/typedarray/Float64Array#findIndex + i32.const -1 + i32.ne + br_if $folding-inner8 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Int8Array#constructor + local.tee $0 + i32.store + local.get $0 + i32.const 0 + i32.const 2 + call $~lib/typedarray/Int8Array#__set + local.get $0 + i32.const 1 + i32.const 4 + call $~lib/typedarray/Int8Array#__set + local.get $0 + i32.const 2 + i32.const 6 + call $~lib/typedarray/Int8Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 5712 + i32.store offset=4 + local.get $0 + i32.const 5712 + call $~lib/typedarray/Int8Array#every + i32.eqz + br_if $folding-inner9 + global.get $~lib/memory/__stack_pointer + i32.const 5744 + i32.store offset=4 + local.get $0 + i32.const 5744 + call $~lib/typedarray/Int8Array#every + br_if $folding-inner10 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Uint8Array#constructor + local.tee $0 + i32.store + local.get $0 + i32.const 0 + i32.const 2 + call $~lib/typedarray/Uint8Array#__set + local.get $0 + i32.const 1 + i32.const 4 + call $~lib/typedarray/Uint8Array#__set + local.get $0 + i32.const 2 + i32.const 6 + call $~lib/typedarray/Uint8Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 5776 + i32.store offset=4 + local.get $0 + i32.const 5776 + call $~lib/typedarray/Uint8Array#every + i32.eqz + br_if $folding-inner9 + global.get $~lib/memory/__stack_pointer + i32.const 5808 + i32.store offset=4 + local.get $0 + i32.const 5808 + call $~lib/typedarray/Uint8Array#every + br_if $folding-inner10 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Uint8ClampedArray#constructor + local.tee $0 + i32.store + local.get $0 + i32.const 0 + i32.const 2 + call $~lib/typedarray/Uint8ClampedArray#__set + local.get $0 + i32.const 1 + i32.const 4 + call $~lib/typedarray/Uint8ClampedArray#__set + local.get $0 + i32.const 2 + i32.const 6 + call $~lib/typedarray/Uint8ClampedArray#__set + global.get $~lib/memory/__stack_pointer + i32.const 5840 + i32.store offset=4 + local.get $0 + i32.const 5840 + call $~lib/typedarray/Uint8Array#every + i32.eqz + br_if $folding-inner9 + global.get $~lib/memory/__stack_pointer + i32.const 5872 + i32.store offset=4 + local.get $0 + i32.const 5872 + call $~lib/typedarray/Uint8Array#every + br_if $folding-inner10 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Int16Array#constructor + local.tee $0 + i32.store + local.get $0 + i32.const 0 + i32.const 2 + call $~lib/typedarray/Int16Array#__set + local.get $0 + i32.const 1 + i32.const 4 + call $~lib/typedarray/Int16Array#__set + local.get $0 + i32.const 2 + i32.const 6 + call $~lib/typedarray/Int16Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 5904 + i32.store offset=4 + local.get $0 + i32.const 5904 + call $~lib/typedarray/Int16Array#every + i32.eqz + br_if $folding-inner9 + global.get $~lib/memory/__stack_pointer + i32.const 5936 + i32.store offset=4 + local.get $0 + i32.const 5936 + call $~lib/typedarray/Int16Array#every + br_if $folding-inner10 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Uint16Array#constructor + local.tee $0 + i32.store + local.get $0 + i32.const 0 + i32.const 2 + call $~lib/typedarray/Uint16Array#__set + local.get $0 + i32.const 1 + i32.const 4 + call $~lib/typedarray/Uint16Array#__set + local.get $0 + i32.const 2 + i32.const 6 + call $~lib/typedarray/Uint16Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 5968 + i32.store offset=4 + local.get $0 + i32.const 5968 + call $~lib/typedarray/Uint16Array#every + i32.eqz + br_if $folding-inner9 + global.get $~lib/memory/__stack_pointer + i32.const 6000 + i32.store offset=4 + local.get $0 + i32.const 6000 + call $~lib/typedarray/Uint16Array#every + br_if $folding-inner10 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Int32Array#constructor + local.tee $0 + i32.store + local.get $0 + i32.const 0 + i32.const 2 + call $~lib/typedarray/Int32Array#__set + local.get $0 + i32.const 1 + i32.const 4 + call $~lib/typedarray/Int32Array#__set + local.get $0 + i32.const 2 + i32.const 6 + call $~lib/typedarray/Int32Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 6032 + i32.store offset=4 + local.get $0 + i32.const 6032 + call $~lib/typedarray/Int32Array#every + i32.eqz + br_if $folding-inner9 + global.get $~lib/memory/__stack_pointer + i32.const 6064 + i32.store offset=4 + local.get $0 + i32.const 6064 + call $~lib/typedarray/Int32Array#every + br_if $folding-inner10 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Uint32Array#constructor + local.tee $0 + i32.store + local.get $0 + i32.const 0 + i32.const 2 + call $~lib/typedarray/Uint32Array#__set + local.get $0 + i32.const 1 + i32.const 4 + call $~lib/typedarray/Uint32Array#__set + local.get $0 + i32.const 2 + i32.const 6 + call $~lib/typedarray/Uint32Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 6096 + i32.store offset=4 + local.get $0 + i32.const 6096 + call $~lib/typedarray/Uint32Array#every + i32.eqz + br_if $folding-inner9 + global.get $~lib/memory/__stack_pointer + i32.const 6128 + i32.store offset=4 + local.get $0 + i32.const 6128 + call $~lib/typedarray/Uint32Array#every + br_if $folding-inner10 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Int64Array#constructor + local.tee $0 + i32.store + local.get $0 + i32.const 0 + i64.const 2 + call $~lib/typedarray/Int64Array#__set + local.get $0 + i32.const 1 + i64.const 4 + call $~lib/typedarray/Int64Array#__set + local.get $0 + i32.const 2 + i64.const 6 + call $~lib/typedarray/Int64Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 6160 + i32.store offset=4 + local.get $0 + i32.const 6160 + call $~lib/typedarray/Int64Array#every + i32.eqz + br_if $folding-inner9 + global.get $~lib/memory/__stack_pointer + i32.const 6192 + i32.store offset=4 + local.get $0 + i32.const 6192 + call $~lib/typedarray/Int64Array#every + br_if $folding-inner10 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Uint64Array#constructor + local.tee $0 + i32.store + local.get $0 + i32.const 0 + i64.const 2 + call $~lib/typedarray/Uint64Array#__set + local.get $0 + i32.const 1 + i64.const 4 + call $~lib/typedarray/Uint64Array#__set + local.get $0 + i32.const 2 + i64.const 6 + call $~lib/typedarray/Uint64Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 6224 + i32.store offset=4 + local.get $0 + i32.const 6224 + call $~lib/typedarray/Uint64Array#every + i32.eqz + br_if $folding-inner9 + global.get $~lib/memory/__stack_pointer + i32.const 6256 + i32.store offset=4 + local.get $0 + i32.const 6256 + call $~lib/typedarray/Uint64Array#every + br_if $folding-inner10 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Float32Array#constructor + local.tee $0 + i32.store + local.get $0 + i32.const 0 + f32.const 2 + call $~lib/typedarray/Float32Array#__set + local.get $0 + i32.const 1 + f32.const 4 + call $~lib/typedarray/Float32Array#__set + local.get $0 + i32.const 2 + f32.const 6 + call $~lib/typedarray/Float32Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 6288 + i32.store offset=4 + local.get $0 + i32.const 6288 + call $~lib/typedarray/Float32Array#every + i32.eqz + br_if $folding-inner9 + global.get $~lib/memory/__stack_pointer + i32.const 6320 + i32.store offset=4 + local.get $0 + i32.const 6320 + call $~lib/typedarray/Float32Array#every + br_if $folding-inner10 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Float64Array#constructor + local.tee $0 + i32.store + local.get $0 + i32.const 0 + f64.const 2 + call $~lib/typedarray/Float64Array#__set + local.get $0 + i32.const 1 + f64.const 4 + call $~lib/typedarray/Float64Array#__set + local.get $0 + i32.const 2 + f64.const 6 + call $~lib/typedarray/Float64Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 6352 + i32.store offset=4 + local.get $0 + i32.const 6352 + call $~lib/typedarray/Float64Array#every + i32.eqz + br_if $folding-inner9 + global.get $~lib/memory/__stack_pointer + i32.const 6384 + i32.store offset=4 + local.get $0 + i32.const 6384 + call $~lib/typedarray/Float64Array#every + br_if $folding-inner10 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + call $std/typedarray/testArrayForEach<~lib/typedarray/Int8Array,i8> + 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 + i32.const 0 + global.set $std/typedarray/forEachCallCount + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Uint8Array#constructor + local.tee $0 + i32.store + local.get $0 + global.set $std/typedarray/forEachSelf + global.get $~lib/memory/__stack_pointer + i32.const 6448 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.const 6448 + i32.const 0 + call $~lib/array/Array#__get + i32.const 255 + i32.and + call $~lib/typedarray/Uint8Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 6448 + i32.store offset=4 + local.get $0 + i32.const 1 + i32.const 6448 + i32.const 1 + call $~lib/array/Array#__get + i32.const 255 + i32.and + call $~lib/typedarray/Uint8Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 6448 + i32.store offset=4 + local.get $0 + i32.const 2 + i32.const 6448 + i32.const 2 + call $~lib/array/Array#__get + i32.const 255 + i32.and + call $~lib/typedarray/Uint8Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 6528 + i32.store offset=8 + local.get $0 + i32.const 6528 + call $~lib/typedarray/Uint8Array#forEach + global.get $std/typedarray/forEachCallCount + i32.const 3 + i32.ne + br_if $folding-inner11 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + 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 + global.set $std/typedarray/forEachCallCount + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Uint8ClampedArray#constructor + local.tee $0 + i32.store + local.get $0 + global.set $std/typedarray/forEachSelf + global.get $~lib/memory/__stack_pointer + i32.const 6448 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.const 6448 + i32.const 0 + call $~lib/array/Array#__get + i32.const 255 + i32.and + call $~lib/typedarray/Uint8ClampedArray#__set + global.get $~lib/memory/__stack_pointer + i32.const 6448 + i32.store offset=4 + local.get $0 + i32.const 1 + i32.const 6448 + i32.const 1 + call $~lib/array/Array#__get + i32.const 255 + i32.and + call $~lib/typedarray/Uint8ClampedArray#__set + global.get $~lib/memory/__stack_pointer + i32.const 6448 + i32.store offset=4 + local.get $0 + i32.const 2 + i32.const 6448 + i32.const 2 + call $~lib/array/Array#__get + i32.const 255 + i32.and + call $~lib/typedarray/Uint8ClampedArray#__set + global.get $~lib/memory/__stack_pointer + i32.const 6560 + i32.store offset=8 + local.get $0 + i32.const 6560 + call $~lib/typedarray/Uint8Array#forEach + global.get $std/typedarray/forEachCallCount + i32.const 3 + i32.ne + br_if $folding-inner11 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + 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 1 + call $~lib/typedarray/Float64Array#constructor + local.tee $0 + i32.store offset=12 + local.get $0 + i32.const 0 + f64.const nan:0x8000000000000 + call $~lib/typedarray/Float64Array#__set + local.get $0 + f64.const nan:0x8000000000000 + 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 + i32.const 0 + local.set $1 + block $~lib/typedarray/INCLUDES<~lib/typedarray/Float64Array,f64>|inlined.0 (result i32) + i32.const 0 + local.get $0 + i32.load offset=8 + i32.const 3 + i32.shr_u + local.tee $3 + i32.eqz + i32.const 1 + local.get $3 + select + br_if $~lib/typedarray/INCLUDES<~lib/typedarray/Float64Array,f64>|inlined.0 + drop + local.get $0 + i32.load offset=4 + local.set $0 + loop $while-continue|0 + local.get $1 + local.get $3 + i32.lt_s + if + i32.const 1 + i32.const 1 + local.get $0 + local.get $1 + i32.const 3 + i32.shl + i32.add + f64.load + local.tee $8 + local.get $8 + f64.ne + local.get $8 + f64.const nan:0x8000000000000 + f64.eq + select + br_if $~lib/typedarray/INCLUDES<~lib/typedarray/Float64Array,f64>|inlined.0 + drop + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $while-continue|0 + end + end + i32.const 0 + end + i32.eqz + 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 + i32.const 1 + call $~lib/typedarray/Float32Array#constructor + local.tee $0 + i32.store offset=24 + local.get $0 + i32.const 0 + f32.const nan:0x400000 + call $~lib/typedarray/Float32Array#__set + local.get $0 + f32.const nan:0x400000 + i32.const 0 + call $~lib/typedarray/Float32Array#indexOf + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 636 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $1 + block $~lib/typedarray/INCLUDES<~lib/typedarray/Float32Array,f32>|inlined.0 (result i32) + i32.const 0 + local.get $0 + i32.load offset=8 + i32.const 2 + i32.shr_u + local.tee $3 + i32.eqz + i32.const 1 + local.get $3 + select + br_if $~lib/typedarray/INCLUDES<~lib/typedarray/Float32Array,f32>|inlined.0 + drop + local.get $0 + i32.load offset=4 + local.set $0 + loop $while-continue|017 + local.get $1 + local.get $3 + i32.lt_s + if + i32.const 1 + i32.const 1 + local.get $0 + local.get $1 + i32.const 2 + i32.shl + i32.add + f32.load + local.tee $7 + local.get $7 + f32.ne + local.get $7 + f32.const nan:0x400000 + f32.eq + select + br_if $~lib/typedarray/INCLUDES<~lib/typedarray/Float32Array,f32>|inlined.0 + drop + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $while-continue|017 + end + end + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 637 + i32.const 3 + 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> + global.get $~lib/memory/__stack_pointer + i32.const 0 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $0 + i32.store offset=12 + i32.const 2 + global.set $~argumentsLength + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.const 0 + call $~lib/typedarray/Uint8Array.wrap@varargs + local.tee $0 + i32.store offset=24 + local.get $0 + i32.load offset=8 + if + i32.const 0 + i32.const 1568 + i32.const 714 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 2 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $0 + i32.store offset=12 + i32.const 2 + global.set $~argumentsLength + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.const 2 + call $~lib/typedarray/Uint8Array.wrap@varargs + local.tee $0 + i32.store offset=24 + local.get $0 + i32.load offset=8 + if + i32.const 0 + i32.const 1568 + i32.const 718 + i32.const 3 + 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/testTypedArraySet<~lib/typedarray/Int8Array> + call $std/typedarray/testTypedArraySet<~lib/typedarray/Uint8Array> + call $std/typedarray/testTypedArraySet<~lib/typedarray/Uint8ClampedArray> + call $std/typedarray/testTypedArraySet<~lib/typedarray/Int16Array> + call $std/typedarray/testTypedArraySet<~lib/typedarray/Uint16Array> + call $std/typedarray/testTypedArraySet<~lib/typedarray/Int32Array> + call $std/typedarray/testTypedArraySet<~lib/typedarray/Uint32Array> + call $std/typedarray/testTypedArraySet<~lib/typedarray/Int64Array> + call $std/typedarray/testTypedArraySet<~lib/typedarray/Uint64Array> + call $std/typedarray/testTypedArraySet<~lib/typedarray/Float32Array> + call $std/typedarray/testTypedArraySet<~lib/typedarray/Float64Array> + global.get $~lib/memory/__stack_pointer + i32.const 10 + call $~lib/typedarray/Uint8ClampedArray#constructor + local.tee $0 + i32.store offset=24 + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Float32Array#constructor + local.tee $1 + i32.store offset=12 + local.get $1 + i32.const 0 + f32.const 400 + call $~lib/typedarray/Float32Array#__set + local.get $1 + i32.const 1 + f32.const nan:0x400000 + call $~lib/typedarray/Float32Array#__set + local.get $1 + i32.const 2 + f32.const inf + call $~lib/typedarray/Float32Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 4 + call $~lib/typedarray/Int64Array#constructor + local.tee $3 + i32.store offset=8 + local.get $3 + i32.const 0 + i64.const -10 + call $~lib/typedarray/Int64Array#__set + local.get $3 + i32.const 1 + i64.const 100 + call $~lib/typedarray/Int64Array#__set + local.get $3 + i32.const 2 + i64.const 10 + call $~lib/typedarray/Int64Array#__set + local.get $3 + i32.const 3 + i64.const 300 + call $~lib/typedarray/Int64Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 2 + call $~lib/typedarray/Int32Array#constructor + local.tee $2 + i32.store offset=16 + local.get $2 + i32.const 0 + i32.const 300 + call $~lib/typedarray/Int32Array#__set + local.get $2 + i32.const 1 + i32.const -1 + call $~lib/typedarray/Int32Array#__set + i32.const 0 + local.set $4 + local.get $0 + i32.load offset=8 + local.get $1 + i32.load offset=8 + i32.const 2 + i32.shr_u + i32.const 1 + i32.add + i32.lt_s + br_if $folding-inner12 + local.get $0 + i32.load offset=4 + i32.const 1 + i32.add + local.set $5 + local.get $1 + i32.load offset=4 + local.set $12 + local.get $1 + i32.load offset=8 + i32.const 2 + i32.shr_u + local.set $1 + loop $for-loop|018 + local.get $1 + local.get $4 + i32.gt_s + if + local.get $4 + local.get $5 + i32.add + local.get $12 + local.get $4 + i32.const 2 + i32.shl + i32.add + f32.load + local.tee $7 + local.get $7 + f32.sub + f32.const 0 + f32.eq + if (result i32) + f32.const 0 + f32.const 255 + local.get $7 + f32.min + f32.max + i32.trunc_f32_u + else + i32.const 0 + end + i32.store8 + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $for-loop|018 + end + end + local.get $0 + local.get $3 + i32.const 4 + call $~lib/typedarray/Uint8ClampedArray#set<~lib/typedarray/Int64Array> + i32.const 0 + local.set $1 + local.get $0 + i32.load offset=8 + local.get $2 + i32.load offset=8 + i32.const 2 + i32.shr_u + i32.const 8 + i32.add + i32.lt_s + br_if $folding-inner12 + local.get $0 + i32.load offset=4 + i32.const 8 + i32.add + local.set $3 + local.get $2 + i32.load offset=4 + local.set $4 + local.get $2 + i32.load offset=8 + i32.const 2 + i32.shr_u + local.set $5 + loop $for-loop|019 + local.get $1 + local.get $5 + i32.lt_s + if + local.get $1 + local.get $3 + i32.add + local.get $4 + local.get $1 + i32.const 2 + i32.shl + i32.add + i32.load + local.tee $2 + i32.const 31 + i32.shr_s + i32.const -1 + i32.xor + local.get $2 + i32.const 255 + local.get $2 + i32.sub + i32.const 31 + i32.shr_s + i32.or + i32.and + i32.store8 + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|019 + end + end + i32.const 10 + i32.const 0 + i32.const 63 + i32.const 13120 + call $~lib/rt/__newArray + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $0 + local.get $1 + call $std/typedarray/valuesEqual<~lib/typedarray/Uint8ClampedArray> + global.get $~lib/memory/__stack_pointer + i32.const 4 + call $~lib/typedarray/Uint32Array#constructor + local.tee $1 + i32.store offset=28 + local.get $1 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Uint32Array#__set + local.get $1 + i32.const 1 + i32.const 300 + call $~lib/typedarray/Uint32Array#__set + local.get $1 + i32.const 2 + i32.const 100 + call $~lib/typedarray/Uint32Array#__set + local.get $1 + 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 + local.get $2 + i32.const 0 + i32.const -10 + call $~lib/typedarray/Int16Array#__set + local.get $2 + i32.const 1 + i32.const 100 + call $~lib/typedarray/Int16Array#__set + local.get $2 + i32.const 2 + i32.const 10 + call $~lib/typedarray/Int16Array#__set + local.get $2 + i32.const 3 + i32.const 300 + call $~lib/typedarray/Int16Array#__set + i32.const 0 + local.set $3 + local.get $0 + i32.load offset=8 + local.get $1 + i32.load offset=8 + i32.const 2 + i32.shr_u + i32.lt_s + br_if $folding-inner12 + local.get $0 + i32.load offset=4 + local.set $4 + local.get $1 + i32.load offset=4 + local.set $5 + local.get $1 + i32.load offset=8 + i32.const 2 + i32.shr_u + local.set $1 + loop $for-loop|020 + local.get $1 + local.get $3 + i32.gt_s + if + local.get $3 + local.get $4 + i32.add + i32.const 255 + local.get $5 + local.get $3 + i32.const 2 + i32.shl + i32.add + i32.load + local.tee $12 + local.get $12 + i32.const 255 + i32.gt_u + select + i32.store8 + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $for-loop|020 + end + end + local.get $0 + local.get $2 + i32.const 5 + call $~lib/typedarray/Uint8ClampedArray#set<~lib/typedarray/Int16Array> + i32.const 10 + i32.const 0 + i32.const 63 + i32.const 13152 + call $~lib/rt/__newArray + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $0 + local.get $1 + call $std/typedarray/valuesEqual<~lib/typedarray/Uint8ClampedArray> + i32.const 30108 + global.set $~lib/memory/__stack_pointer + global.get $~lib/rt/itcms/state + i32.const 0 + i32.gt_s + if + loop $while-continue|021 + global.get $~lib/rt/itcms/state + if + call $~lib/rt/itcms/step + drop + br $while-continue|021 + 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 32 + i32.add + global.set $~lib/memory/__stack_pointer + return + end + i32.const 0 + i32.const 1568 + i32.const 323 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + i32.const 1568 + i32.const 344 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + i32.const 1568 + i32.const 345 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + i32.const 1568 + i32.const 346 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + i32.const 1568 + i32.const 367 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + i32.const 1568 + i32.const 438 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + i32.const 1568 + i32.const 440 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + i32.const 1568 + i32.const 461 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + i32.const 1568 + i32.const 463 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + i32.const 1568 + i32.const 484 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + i32.const 1568 + i32.const 486 + i32.const 3 + call $~lib/builtins/abort + unreachable + end i32.const 0 i32.const 1568 - i32.const 650 - i32.const 5 + i32.const 518 + 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 1360 + i32.const 1632 + i32.const 1865 + i32.const 47 + call $~lib/builtins/abort + unreachable ) - (func $~lib/util/string/joinFloatArray (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) + (func $~lib/arraybuffer/ArrayBufferView#constructor (param $0 i32) (param $1 i32) (param $2 i32) (result i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -32374,2653 +36061,2587 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - local.get $1 - i32.const 1 - i32.sub - local.tee $3 - i32.const 0 - i32.lt_s + local.get $0 + i32.eqz if global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 7072 - return - end - block $folding-inner0 - local.get $3 - i32.eqz - if - local.get $0 - f64.load - call $~lib/util/number/dtoa - local.set $0 - br $folding-inner0 - end - global.get $~lib/memory/__stack_pointer - i32.const 7424 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.const 7420 - i32.load - i32.const 1 - i32.shr_u - local.tee $4 - i32.const 28 - i32.add - i32.mul - i32.const 28 - i32.add - local.tee $6 - i32.const 1 - i32.shl - i32.const 1 + i32.const 12 + i32.const 2 call $~lib/rt/itcms/__new - local.tee $1 - i32.store offset=4 - loop $for-loop|0 - local.get $3 - local.get $5 - i32.gt_s - if - local.get $1 - local.get $2 - i32.const 1 - i32.shl - i32.add - local.get $0 - local.get $5 - 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 $4 - if - local.get $1 - local.get $2 - i32.const 1 - i32.shl - i32.add - i32.const 7424 - local.get $4 - i32.const 1 - i32.shl - call $~lib/memory/memory.copy - local.get $2 - local.get $4 - i32.add - local.set $2 - end - local.get $5 - i32.const 1 - i32.add - local.set $5 - br $for-loop|0 - end - end - local.get $6 - local.get $1 - local.get $2 - i32.const 1 - i32.shl - i32.add - local.get $0 - local.get $3 - 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 $1 - i32.store - local.get $1 - local.get $0 - 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 - local.get $1 - return + i32.store + end + local.get $0 + i32.const 0 + call $~lib/arraybuffer/ArrayBufferView#set:buffer + local.get $0 + i32.const 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 18 + 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 $2 + i32.const 0 + call $~lib/rt/itcms/__new + local.tee $1 + i32.store offset=4 + local.get $1 + i32.const 0 + local.get $2 + call $~lib/memory/memory.fill + local.get $0 + local.get $1 + call $~lib/arraybuffer/ArrayBufferView#set:buffer + local.get $0 + local.get $1 + i32.store offset=4 + local.get $0 + local.get $2 + i32.store offset=8 + 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/Int8Array#constructor (param $0 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 $0 - i32.load offset=4 + i32.const 0 + i32.store global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.load offset=8 + i32.const 12 i32.const 3 - i32.shr_u + call $~lib/rt/itcms/__new + local.tee $1 + i32.store global.get $~lib/memory/__stack_pointer - i32.const 7424 + local.get $1 + local.get $0 + i32.const 0 + call $~lib/arraybuffer/ArrayBufferView#constructor + local.tee $0 i32.store - call $~lib/util/string/joinFloatArray global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer + local.get $0 ) - (func $std/typedarray/testArrayJoinAndToString<~lib/typedarray/Float64Array,f64> - (local $0 i32) + (func $~lib/typedarray/Uint8Array#constructor (param $0 i32) (result i32) (local $1 i32) global.get $~lib/memory/__stack_pointer - i32.const 20 + i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=8 - global.get $~lib/memory/__stack_pointer i32.const 0 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - i32.const 5 - call $~lib/typedarray/Float64Array#constructor - local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - local.get $0 + i32.const 12 + i32.const 4 + call $~lib/rt/itcms/__new local.tee $1 - i32.store offset=4 - local.get $1 - i32.const 0 - f64.const 1 - call $~lib/typedarray/Float64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 1 - f64.const 2 - call $~lib/typedarray/Float64Array#__set + i32.store global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=4 - local.get $1 - i32.const 2 - f64.const 3 - call $~lib/typedarray/Float64Array#__set + local.get $0 + i32.const 0 + call $~lib/arraybuffer/ArrayBufferView#constructor + local.tee $0 + i32.store global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 3 - f64.const 4 - call $~lib/typedarray/Float64Array#__set + i32.const 4 + 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 - local.get $1 - i32.store offset=4 - local.get $1 i32.const 4 - f64.const 5 - call $~lib/typedarray/Float64Array#__set + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=12 + i32.const 0 + i32.store global.get $~lib/memory/__stack_pointer - i32.const 7424 - i32.store offset=16 - local.get $1 - call $~lib/typedarray/Float64Array#join - local.set $0 + 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 local.get $0 - i32.store offset=4 + i32.const 0 + call $~lib/arraybuffer/ArrayBufferView#constructor + local.tee $0 + i32.store global.get $~lib/memory/__stack_pointer - i32.const 8640 - i32.store offset=8 + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer local.get $0 - i32.const 8640 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 649 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=12 + ) + (func $~lib/typedarray/Int16Array#constructor (param $0 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 global.get $~lib/memory/__stack_pointer - local.get $1 + i32.const 12 + i32.const 6 + call $~lib/rt/itcms/__new + local.tee $1 i32.store global.get $~lib/memory/__stack_pointer - i32.const 7424 - i32.store offset=4 local.get $1 - call $~lib/typedarray/Float64Array#join - local.set $1 - global.get $~lib/memory/__stack_pointer - i32.const 8 + local.get $0 + i32.const 1 + call $~lib/arraybuffer/ArrayBufferView#constructor + 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/typedarray/Uint16Array#constructor (param $0 i32) (result i32) + (local $1 i32) global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 + 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 + i32.const 12 + i32.const 7 + call $~lib/rt/itcms/__new + local.tee $1 + i32.store global.get $~lib/memory/__stack_pointer - i32.const 8640 - i32.store offset=8 local.get $1 - i32.const 8640 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 650 - i32.const 5 - call $~lib/builtins/abort - unreachable - end + local.get $0 + i32.const 1 + call $~lib/arraybuffer/ArrayBufferView#constructor + local.tee $0 + i32.store global.get $~lib/memory/__stack_pointer - i32.const 20 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer + local.get $0 ) - (func $~lib/typedarray/Uint8Array.wrap (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (local $3 i32) + (func $~lib/typedarray/Int32Array#constructor (param $0 i32) (result i32) + (local $1 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 + 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 local.get $0 - local.tee $3 + i32.const 2 + call $~lib/arraybuffer/ArrayBufferView#constructor + local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - i32.const 20 + 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) + global.get $~lib/memory/__stack_pointer + i32.const 4 i32.sub - i32.load offset=16 - local.tee $0 - local.get $1 - i32.lt_u - if - i32.const 1360 - i32.const 1632 - i32.const 1826 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $2 + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer i32.const 0 - i32.lt_s - if - local.get $2 - i32.const -1 - i32.eq - if (result i32) - local.get $0 - local.get $1 - i32.sub - else - i32.const 1056 - i32.const 1632 - i32.const 1835 - i32.const 7 - call $~lib/builtins/abort - unreachable - end - local.set $0 - else - local.get $0 - local.get $2 - local.tee $0 - local.get $1 - i32.add - i32.lt_s - if - i32.const 1056 - i32.const 1632 - i32.const 1840 - i32.const 7 - call $~lib/builtins/abort - unreachable - end - end + i32.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 + 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 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + ) + (func $~lib/typedarray/Int64Array#constructor (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 + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 10 call $~lib/rt/itcms/__new - local.tee $2 - i32.store offset=8 - local.get $2 - local.get $3 + local.tee $1 i32.store - local.get $2 - local.get $3 - call $~lib/rt/itcms/__link - local.get $2 + global.get $~lib/memory/__stack_pointer + local.get $1 local.get $0 - i32.store offset=8 - local.get $2 + i32.const 3 + call $~lib/arraybuffer/ArrayBufferView#constructor + 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/typedarray/Uint64Array#constructor (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 + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.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 - local.get $3 + local.get $0 + i32.const 3 + call $~lib/arraybuffer/ArrayBufferView#constructor + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 4 i32.add - i32.store offset=4 + 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 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 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 + local.get $0 + i32.const 2 + call $~lib/arraybuffer/ArrayBufferView#constructor + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 + local.get $0 ) - (func $~lib/arraybuffer/ArrayBuffer#slice (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (local $3 i32) + (func $~lib/typedarray/Float64Array#constructor (param $0 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 + 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 local.get $0 + i32.const 3 + call $~lib/arraybuffer/ArrayBufferView#constructor + 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.const 20 + ) + (func $~lib/typedarray/Int32Array#subarray (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 - i32.load offset=16 - local.set $3 + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + local.tee $3 + i32.load offset=8 + i32.const 2 + i32.shr_u + local.set $4 local.get $1 i32.const 0 i32.lt_s if (result i32) local.get $1 - local.get $3 + local.get $4 i32.add - local.tee $1 + local.tee $0 i32.const 0 - local.get $1 + local.get $0 i32.const 0 i32.gt_s select else local.get $1 - local.get $3 + local.get $4 local.get $1 - local.get $3 + local.get $4 i32.lt_s select end - local.set $1 - global.get $~lib/memory/__stack_pointer + local.set $0 local.get $2 i32.const 0 i32.lt_s if (result i32) local.get $2 - local.get $3 + local.get $4 i32.add - local.tee $2 + local.tee $1 i32.const 0 - local.get $2 + local.get $1 i32.const 0 i32.gt_s select else local.get $2 - local.get $3 + local.get $4 local.get $2 - local.get $3 + local.get $4 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 $3 - i32.const 0 + 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 $1 + i32.store + local.get $1 + local.get $3 + i32.load + local.tee $4 + i32.store + local.get $1 + local.get $4 + call $~lib/rt/itcms/__link + local.get $1 + local.get $3 + i32.load offset=4 + local.get $0 + i32.const 2 + i32.shl + i32.add i32.store offset=4 + local.get $1 local.get $2 local.get $0 - local.get $1 - i32.add - local.get $3 - call $~lib/memory/memory.copy + local.get $0 + local.get $2 + 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 8 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 + local.get $1 ) - (func $std/typedarray/testArrayWrap<~lib/typedarray/Int8Array,i8> - (local $0 i32) - (local $1 i32) - (local $2 i32) + (func $~lib/typedarray/Float64Array#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 24 + i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=8 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=16 - global.get $~lib/memory/__stack_pointer - i32.const 8768 + i32.const 0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 8768 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 8780 - i32.load - local.tee $4 - call $~lib/typedarray/Int8Array#constructor - local.tee $1 - i32.store offset=8 - loop $for-loop|0 + local.get $0 + local.tee $3 + i32.load offset=8 + i32.const 3 + i32.shr_u + local.set $4 + local.get $1 + i32.const 0 + i32.lt_s + if (result i32) + local.get $1 + local.get $4 + i32.add + local.tee $0 + i32.const 0 local.get $0 + i32.const 0 + i32.gt_s + select + else + local.get $1 + local.get $4 + local.get $1 local.get $4 i32.lt_s - if - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 8768 - i32.store offset=12 - local.get $1 - local.get $0 - i32.const 8768 - local.get $0 - call $~lib/array/Array#__get - i32.const 24 - i32.shl - i32.const 24 - i32.shr_s - call $~lib/typedarray/Int8Array#__set - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|0 - end + select + end + local.set $0 + local.get $2 + i32.const 0 + i32.lt_s + if (result i32) + local.get $2 + local.get $4 + i32.add + local.tee $1 + i32.const 0 + local.get $1 + 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.set $2 global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 13 + call $~lib/rt/itcms/__new + local.tee $1 + i32.store local.get $1 + local.get $3 i32.load - local.tee $2 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer + local.tee $4 + i32.store local.get $1 - i32.store offset=12 + local.get $4 + call $~lib/rt/itcms/__link local.get $1 + local.get $3 i32.load offset=4 + local.get $0 + i32.const 3 + i32.shl + i32.add + i32.store offset=4 local.get $1 - i32.load + local.get $2 + local.get $0 + local.get $0 + local.get $2 + i32.lt_s + select + local.get $0 i32.sub - local.set $0 + i32.const 3 + i32.shl + i32.store offset=8 global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer local.get $1 - i32.store offset=12 + ) + (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 - local.get $2 - local.get $0 - local.get $1 - i32.load offset=8 - local.get $1 - i32.load offset=4 - local.get $1 - i32.load + i32.const 4 i32.sub - i32.add - call $~lib/arraybuffer/ArrayBuffer#slice - local.tee $0 - i32.store offset=16 + 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 local.get $0 + local.get $1 + i32.shl + local.tee $4 + local.set $5 + local.get $4 + i32.const 0 + call $~lib/rt/itcms/__new + local.set $1 + local.get $3 + if + local.get $1 + local.get $3 + local.get $5 + call $~lib/memory/memory.copy + end + local.get $1 + local.tee $3 + i32.store + i32.const 16 + local.get $2 + 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 - i32.const 1 - global.set $~argumentsLength + 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/typedarray/Int8Array#subarray (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.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 - 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.set $5 + local.tee $3 + i32.load offset=8 + local.set $4 + local.get $1 + i32.const 0 + i32.lt_s + if (result i32) + local.get $1 + local.get $4 + i32.add + local.tee $0 + i32.const 0 + local.get $0 + 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.set $0 + local.get $2 + i32.const 0 + i32.lt_s + if (result i32) + local.get $2 + local.get $4 + i32.add + local.tee $1 + i32.const 0 + local.get $1 + 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.set $2 global.get $~lib/memory/__stack_pointer i32.const 12 i32.const 3 call $~lib/rt/itcms/__new - local.tee $2 - i32.store offset=8 - local.get $2 - local.get $0 + local.tee $1 i32.store - local.get $2 - local.get $0 + local.get $1 + local.get $3 + i32.load + local.tee $4 + i32.store + local.get $1 + local.get $4 call $~lib/rt/itcms/__link + local.get $1 + local.get $0 + local.get $3 + i32.load offset=4 + i32.add + i32.store offset=4 + local.get $1 local.get $2 - local.get $5 - i32.store offset=8 + local.get $0 + local.get $0 local.get $2 + i32.lt_s + select local.get $0 - i32.store offset=4 + i32.sub + i32.store offset=8 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $~lib/typedarray/Int32Array#slice (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 + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.load offset=8 + i32.const 2 + 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 + global.get $~lib/memory/__stack_pointer local.get $2 - i32.store offset=20 i32.const 0 - local.set $0 - loop $for-loop|1 - local.get $0 - local.get $4 + 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 - if - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $~lib/typedarray/Int8Array#__get - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - local.get $0 - call $~lib/typedarray/Int8Array#__get - local.get $3 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 707 - 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 + 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 + call $~lib/typedarray/Int32Array#constructor + local.tee $3 + i32.store + local.get $3 + i32.load 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 + call $~lib/memory/memory.copy global.get $~lib/memory/__stack_pointer - i32.const 24 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer + local.get $3 ) - (func $std/typedarray/testArrayWrap<~lib/typedarray/Uint8Array,u8> - (local $0 i32) + (func $~lib/typedarray/Int8Array#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) global.get $~lib/memory/__stack_pointer - i32.const 24 + 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 $0 + i32.load offset=8 + local.set $4 global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=8 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=16 - global.get $~lib/memory/__stack_pointer - i32.const 8768 + i32.const 12 + i32.const 3 + call $~lib/rt/itcms/__new + local.tee $2 i32.store global.get $~lib/memory/__stack_pointer - i32.const 8768 + local.get $4 + i32.const 0 + call $~lib/rt/itcms/__new + local.tee $5 i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 8780 - i32.load - local.tee $3 - call $~lib/typedarray/Uint8Array#constructor - local.tee $1 - i32.store offset=8 + local.get $0 + i32.load offset=4 + local.set $7 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 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 8768 - i32.store offset=12 - local.get $1 - local.get $0 - i32.const 8768 - local.get $0 - call $~lib/array/Array#__get - i32.const 255 - i32.and - call $~lib/typedarray/Uint8Array#__set + local.get $3 + local.get $7 + i32.add + i32.load8_s + local.set $6 + i32.const 3 + global.set $~argumentsLength + local.get $6 + local.get $3 local.get $0 + i32.const 3952 + i32.load + call_indirect (type $i32_i32_i32_=>_i32) + if + local.get $1 + local.get $5 + i32.add + local.get $6 + i32.store8 + local.get $1 + i32.const 1 + 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 end - global.get $~lib/memory/__stack_pointer + local.get $2 + local.get $5 local.get $1 - i32.load + call $~lib/rt/itcms/__renew local.tee $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=12 - local.get $1 - i32.load offset=4 - local.get $1 - i32.load - i32.sub - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer + i32.store + local.get $2 local.get $0 + call $~lib/rt/itcms/__link local.get $2 local.get $1 - i32.load offset=8 - local.get $1 - i32.load offset=4 - local.get $1 - i32.load - i32.sub - i32.add - call $~lib/arraybuffer/ArrayBuffer#slice - local.tee $0 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer + i32.store offset=8 + local.get $2 local.get $0 i32.store offset=4 - i32.const 1 - global.set $~argumentsLength global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + ) + (func $~lib/typedarray/Uint8Array#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) + 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 $0 - i32.const 0 - call $~lib/typedarray/Uint8Array.wrap@varargs + i32.load offset=8 + local.set $4 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 4 + call $~lib/rt/itcms/__new local.tee $2 - i32.store offset=20 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $4 i32.const 0 - local.set $0 - loop $for-loop|1 - local.get $0 + call $~lib/rt/itcms/__new + local.tee $5 + i32.store offset=4 + local.get $0 + i32.load offset=4 + local.set $7 + loop $for-loop|0 local.get $3 + local.get $4 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/typedarray/Uint8Array#__get - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 + local.get $3 + local.get $7 + i32.add + i32.load8_u + local.set $6 + i32.const 3 + global.set $~argumentsLength + local.get $6 + local.get $3 local.get $0 - call $~lib/typedarray/Uint8Array#__get - local.get $4 - i32.ne + i32.const 3984 + i32.load + call_indirect (type $i32_i32_i32_=>_i32) if - i32.const 0 - i32.const 1568 - i32.const 707 - i32.const 5 - call $~lib/builtins/abort - unreachable + local.get $1 + local.get $5 + i32.add + local.get $6 + i32.store8 + local.get $1 + i32.const 1 + i32.add + local.set $1 end - local.get $0 + local.get $3 i32.const 1 i32.add - local.set $0 - br $for-loop|1 + local.set $3 + br $for-loop|0 end end + local.get $2 + local.get $5 + local.get $1 + call $~lib/rt/itcms/__renew + local.tee $0 + i32.store + local.get $2 + local.get $0 + call $~lib/rt/itcms/__link + local.get $2 + local.get $1 + i32.store offset=8 + local.get $2 + local.get $0 + i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 24 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer + local.get $2 ) - (func $std/typedarray/testArrayWrap<~lib/typedarray/Uint8ClampedArray,u8> - (local $0 i32) + (func $~lib/typedarray/Uint8ClampedArray#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) global.get $~lib/memory/__stack_pointer - i32.const 24 + 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 $0 + i32.load offset=8 + local.set $4 global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=8 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=16 - global.get $~lib/memory/__stack_pointer - i32.const 8768 + i32.const 12 + i32.const 5 + call $~lib/rt/itcms/__new + local.tee $2 i32.store global.get $~lib/memory/__stack_pointer - i32.const 8768 + local.get $4 + i32.const 0 + call $~lib/rt/itcms/__new + local.tee $5 i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 8780 - i32.load - local.tee $4 - call $~lib/typedarray/Uint8ClampedArray#constructor - local.tee $1 - i32.store offset=8 + local.get $0 + i32.load offset=4 + local.set $7 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 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 8768 - i32.store offset=12 - local.get $1 - local.get $0 - i32.const 8768 - local.get $0 - call $~lib/array/Array#__get - i32.const 255 - i32.and - call $~lib/typedarray/Uint8ClampedArray#__set + local.get $3 + local.get $7 + i32.add + i32.load8_u + local.set $6 + i32.const 3 + global.set $~argumentsLength + local.get $6 + local.get $3 local.get $0 + i32.const 4016 + i32.load + call_indirect (type $i32_i32_i32_=>_i32) + if + local.get $1 + local.get $5 + i32.add + local.get $6 + i32.store8 + local.get $1 + i32.const 1 + 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 end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.load - local.tee $2 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=12 - local.get $1 - i32.load offset=4 - local.get $1 - i32.load - i32.sub - local.set $0 - global.get $~lib/memory/__stack_pointer + local.get $2 + local.get $5 local.get $1 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer + call $~lib/rt/itcms/__renew + local.tee $0 + i32.store local.get $2 local.get $0 + call $~lib/rt/itcms/__link + local.get $2 local.get $1 - i32.load offset=8 - local.get $1 - i32.load offset=4 - local.get $1 - i32.load - i32.sub - i32.add - call $~lib/arraybuffer/ArrayBuffer#slice - local.tee $0 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer + i32.store offset=8 + local.get $2 local.get $0 i32.store offset=4 - i32.const 1 - global.set $~argumentsLength global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + ) + (func $~lib/typedarray/Int16Array#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) 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 - 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.set $5 + i32.load offset=8 + i32.const 1 + i32.shr_u + local.set $3 global.get $~lib/memory/__stack_pointer i32.const 12 - i32.const 5 + i32.const 6 call $~lib/rt/itcms/__new local.tee $2 - i32.store offset=8 - local.get $2 - local.get $0 i32.store - local.get $2 - local.get $0 - call $~lib/rt/itcms/__link - local.get $2 - local.get $5 - i32.store offset=8 - local.get $2 - local.get $0 - i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=20 + local.get $3 + i32.const 1 + i32.shl i32.const 0 - local.set $0 - loop $for-loop|1 - local.get $0 + call $~lib/rt/itcms/__new + local.tee $5 + i32.store offset=4 + local.get $0 + i32.load offset=4 + local.set $7 + loop $for-loop|0 + local.get $3 local.get $4 - i32.lt_s + i32.gt_s if - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $~lib/typedarray/Uint8ClampedArray#__get - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 + local.get $7 + local.get $4 + i32.const 1 + i32.shl + i32.add + i32.load16_s + local.set $6 + i32.const 3 + global.set $~argumentsLength + local.get $6 + local.get $4 local.get $0 - call $~lib/typedarray/Uint8ClampedArray#__get - local.get $3 - i32.ne + i32.const 4048 + i32.load + call_indirect (type $i32_i32_i32_=>_i32) if - i32.const 0 - i32.const 1568 - i32.const 707 - i32.const 5 - call $~lib/builtins/abort - unreachable + local.get $5 + local.get $1 + i32.const 1 + i32.shl + i32.add + local.get $6 + i32.store16 + local.get $1 + i32.const 1 + i32.add + local.set $1 end - local.get $0 + local.get $4 i32.const 1 i32.add - local.set $0 - br $for-loop|1 + local.set $4 + br $for-loop|0 end end + local.get $2 + local.get $5 + local.get $1 + i32.const 1 + i32.shl + local.tee $3 + call $~lib/rt/itcms/__renew + local.tee $0 + i32.store + local.get $2 + local.get $0 + call $~lib/rt/itcms/__link + local.get $2 + local.get $3 + i32.store offset=8 + local.get $2 + local.get $0 + i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 24 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer + local.get $2 ) - (func $std/typedarray/testArrayWrap<~lib/typedarray/Int16Array,i16> - (local $0 i32) + (func $~lib/typedarray/Uint16Array#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) global.get $~lib/memory/__stack_pointer - i32.const 24 + 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 $0 + i32.load offset=8 + i32.const 1 + i32.shr_u + local.set $3 global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=8 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=16 - global.get $~lib/memory/__stack_pointer - i32.const 8768 + i32.const 12 + i32.const 7 + call $~lib/rt/itcms/__new + local.tee $2 i32.store global.get $~lib/memory/__stack_pointer - i32.const 8768 + local.get $3 + i32.const 1 + i32.shl + i32.const 0 + call $~lib/rt/itcms/__new + local.tee $5 i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 8780 - i32.load - local.tee $4 - call $~lib/typedarray/Int16Array#constructor - local.tee $1 - i32.store offset=8 + local.get $0 + i32.load offset=4 + local.set $7 loop $for-loop|0 - local.get $0 + local.get $3 local.get $4 - i32.lt_s + i32.gt_s if - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 8768 - i32.store offset=12 - local.get $1 - local.get $0 - i32.const 8768 - local.get $0 - call $~lib/array/Array#__get - i32.const 16 + local.get $7 + local.get $4 + i32.const 1 i32.shl - i32.const 16 - i32.shr_s - call $~lib/typedarray/Int16Array#__set + i32.add + i32.load16_u + local.set $6 + i32.const 3 + global.set $~argumentsLength + local.get $6 + local.get $4 local.get $0 + i32.const 4080 + i32.load + call_indirect (type $i32_i32_i32_=>_i32) + if + local.get $5 + local.get $1 + i32.const 1 + i32.shl + i32.add + local.get $6 + i32.store16 + local.get $1 + i32.const 1 + i32.add + local.set $1 + end + local.get $4 i32.const 1 i32.add - local.set $0 + local.set $4 br $for-loop|0 end end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.load - local.tee $2 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=12 - local.get $1 - i32.load offset=4 - local.get $1 - i32.load - i32.sub - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer local.get $2 - local.get $0 - local.get $1 - i32.load offset=8 - local.get $1 - i32.load offset=4 + local.get $5 local.get $1 - i32.load - i32.sub - i32.add - call $~lib/arraybuffer/ArrayBuffer#slice + i32.const 1 + i32.shl + local.tee $3 + call $~lib/rt/itcms/__renew local.tee $0 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer + i32.store + local.get $2 + local.get $0 + call $~lib/rt/itcms/__link + local.get $2 + local.get $3 + i32.store offset=8 + local.get $2 local.get $0 i32.store offset=4 - i32.const 1 - global.set $~argumentsLength global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + ) + (func $~lib/typedarray/Int32Array#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) 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 - 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 $2 - local.set $5 - local.get $2 - i32.const 1 - i32.and - if - i32.const 1056 - i32.const 1632 - i32.const 1831 - i32.const 9 - call $~lib/builtins/abort - unreachable - end + i32.load offset=8 + i32.const 2 + i32.shr_u + local.set $3 global.get $~lib/memory/__stack_pointer i32.const 12 - i32.const 6 + i32.const 8 call $~lib/rt/itcms/__new local.tee $2 - i32.store offset=8 - local.get $2 - local.get $0 i32.store - local.get $2 - local.get $0 - call $~lib/rt/itcms/__link - local.get $2 - local.get $5 - i32.store offset=8 - local.get $2 - local.get $0 - i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=20 + local.get $3 + i32.const 2 + i32.shl i32.const 0 - local.set $0 - loop $for-loop|1 - local.get $0 + call $~lib/rt/itcms/__new + local.tee $5 + i32.store offset=4 + local.get $0 + i32.load offset=4 + local.set $7 + loop $for-loop|0 + local.get $3 local.get $4 - i32.lt_s + i32.gt_s if - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $~lib/typedarray/Int16Array#__get - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 + local.get $7 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $6 + i32.const 3 + global.set $~argumentsLength + local.get $6 + local.get $4 local.get $0 - call $~lib/typedarray/Int16Array#__get - local.get $3 - i32.ne + i32.const 4112 + i32.load + call_indirect (type $i32_i32_i32_=>_i32) if - i32.const 0 - i32.const 1568 - i32.const 707 - i32.const 5 - call $~lib/builtins/abort - unreachable + local.get $5 + local.get $1 + i32.const 2 + i32.shl + i32.add + local.get $6 + i32.store + local.get $1 + i32.const 1 + i32.add + local.set $1 end - local.get $0 + local.get $4 i32.const 1 i32.add - local.set $0 - br $for-loop|1 + local.set $4 + br $for-loop|0 end end + local.get $2 + local.get $5 + local.get $1 + i32.const 2 + i32.shl + local.tee $3 + call $~lib/rt/itcms/__renew + local.tee $0 + i32.store + local.get $2 + local.get $0 + call $~lib/rt/itcms/__link + local.get $2 + local.get $3 + i32.store offset=8 + local.get $2 + local.get $0 + i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 24 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer + local.get $2 ) - (func $std/typedarray/testArrayWrap<~lib/typedarray/Uint16Array,u16> - (local $0 i32) + (func $~lib/typedarray/Uint32Array#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) global.get $~lib/memory/__stack_pointer - i32.const 24 + 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 $0 + i32.load offset=8 + i32.const 2 + i32.shr_u + local.set $3 global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=8 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=16 - global.get $~lib/memory/__stack_pointer - i32.const 8768 + i32.const 12 + i32.const 9 + call $~lib/rt/itcms/__new + local.tee $2 i32.store global.get $~lib/memory/__stack_pointer - i32.const 8768 + local.get $3 + i32.const 2 + i32.shl + i32.const 0 + call $~lib/rt/itcms/__new + local.tee $5 i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 8780 - i32.load - local.tee $4 - call $~lib/typedarray/Uint16Array#constructor - local.tee $1 - i32.store offset=8 + local.get $0 + i32.load offset=4 + local.set $7 loop $for-loop|0 - local.get $0 + local.get $3 local.get $4 - i32.lt_s + i32.gt_s if - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 8768 - i32.store offset=12 - local.get $1 - local.get $0 - i32.const 8768 - local.get $0 - call $~lib/array/Array#__get - i32.const 65535 - i32.and - call $~lib/typedarray/Uint16Array#__set + local.get $7 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $6 + i32.const 3 + global.set $~argumentsLength + local.get $6 + local.get $4 local.get $0 + i32.const 4144 + i32.load + call_indirect (type $i32_i32_i32_=>_i32) + if + local.get $5 + local.get $1 + i32.const 2 + i32.shl + i32.add + local.get $6 + i32.store + local.get $1 + i32.const 1 + i32.add + local.set $1 + end + local.get $4 i32.const 1 i32.add - local.set $0 + local.set $4 br $for-loop|0 end end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.load - local.tee $2 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=12 - local.get $1 - i32.load offset=4 - local.get $1 - i32.load - i32.sub - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer local.get $2 - local.get $0 - local.get $1 - i32.load offset=8 - local.get $1 - i32.load offset=4 + local.get $5 local.get $1 - i32.load - i32.sub - i32.add - call $~lib/arraybuffer/ArrayBuffer#slice + i32.const 2 + i32.shl + local.tee $3 + call $~lib/rt/itcms/__renew local.tee $0 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - i32.const 1 - global.set $~argumentsLength - global.get $~lib/memory/__stack_pointer - 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 - 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 $2 - local.set $5 - local.get $2 - i32.const 1 - i32.and - if - i32.const 1056 - i32.const 1632 - i32.const 1831 - i32.const 9 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.const 7 - call $~lib/rt/itcms/__new - local.tee $2 - i32.store offset=8 - local.get $2 - local.get $0 i32.store local.get $2 local.get $0 call $~lib/rt/itcms/__link local.get $2 - local.get $5 + local.get $3 i32.store offset=8 local.get $2 local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer local.get $2 - i32.store offset=20 - 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 $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $~lib/typedarray/Uint16Array#__get - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - local.get $0 - call $~lib/typedarray/Uint16Array#__get - local.get $3 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 707 - 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 - i32.const 24 - i32.add - global.set $~lib/memory/__stack_pointer ) - (func $std/typedarray/testArrayWrap<~lib/typedarray/Int32Array,i32> - (local $0 i32) + (func $~lib/typedarray/Int64Array#filter (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) + (local $6 i64) + (local $7 i32) global.get $~lib/memory/__stack_pointer - i32.const 24 + 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 $0 + i32.load offset=8 + i32.const 3 + i32.shr_u + local.set $3 global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=8 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=16 - global.get $~lib/memory/__stack_pointer - i32.const 8768 + i32.const 12 + i32.const 10 + call $~lib/rt/itcms/__new + local.tee $2 i32.store global.get $~lib/memory/__stack_pointer - i32.const 8768 + local.get $3 + i32.const 3 + i32.shl + i32.const 0 + call $~lib/rt/itcms/__new + local.tee $5 i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 8780 - i32.load - local.tee $4 - call $~lib/typedarray/Int32Array#constructor - local.tee $1 - i32.store offset=8 + local.get $0 + i32.load offset=4 + local.set $7 loop $for-loop|0 - local.get $0 + local.get $3 local.get $4 - i32.lt_s + i32.gt_s if - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 8768 - i32.store offset=12 - local.get $1 - local.get $0 - i32.const 8768 - local.get $0 - call $~lib/array/Array#__get - call $~lib/typedarray/Int32Array#__set + local.get $7 + local.get $4 + i32.const 3 + i32.shl + i32.add + i64.load + local.set $6 + i32.const 3 + global.set $~argumentsLength + local.get $6 + local.get $4 local.get $0 + i32.const 4176 + i32.load + call_indirect (type $i64_i32_i32_=>_i32) + if + local.get $5 + local.get $1 + i32.const 3 + i32.shl + i32.add + local.get $6 + i64.store + local.get $1 + i32.const 1 + i32.add + local.set $1 + end + local.get $4 i32.const 1 i32.add - local.set $0 + local.set $4 br $for-loop|0 end end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.load - local.tee $2 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=12 - local.get $1 - i32.load offset=4 - local.get $1 - i32.load - i32.sub - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer local.get $2 - local.get $0 - local.get $1 - i32.load offset=8 - local.get $1 - i32.load offset=4 + local.get $5 local.get $1 - i32.load - i32.sub - i32.add - call $~lib/arraybuffer/ArrayBuffer#slice + i32.const 3 + i32.shl + local.tee $3 + call $~lib/rt/itcms/__renew local.tee $0 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer + i32.store + local.get $2 + local.get $0 + call $~lib/rt/itcms/__link + local.get $2 + local.get $3 + i32.store offset=8 + local.get $2 local.get $0 i32.store offset=4 - i32.const 1 - global.set $~argumentsLength global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + ) + (func $~lib/typedarray/Uint64Array#filter (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i64) + (local $7 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 - 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 $2 - local.set $5 - local.get $2 + i32.load offset=8 i32.const 3 - i32.and - if - i32.const 1056 - i32.const 1632 - i32.const 1831 - i32.const 9 - call $~lib/builtins/abort - unreachable - end + i32.shr_u + local.set $3 global.get $~lib/memory/__stack_pointer i32.const 12 - i32.const 8 + i32.const 11 call $~lib/rt/itcms/__new local.tee $2 - i32.store offset=8 - local.get $2 - local.get $0 i32.store - local.get $2 - local.get $0 - call $~lib/rt/itcms/__link - local.get $2 - local.get $5 - i32.store offset=8 - local.get $2 - local.get $0 - i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=20 + local.get $3 + i32.const 3 + i32.shl i32.const 0 - local.set $0 - loop $for-loop|1 - local.get $0 + call $~lib/rt/itcms/__new + local.tee $5 + i32.store offset=4 + local.get $0 + i32.load offset=4 + local.set $7 + loop $for-loop|0 + local.get $3 local.get $4 - i32.lt_s + i32.gt_s if - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $~lib/typedarray/Int32Array#__get - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 + local.get $7 + local.get $4 + i32.const 3 + i32.shl + i32.add + i64.load + local.set $6 + i32.const 3 + global.set $~argumentsLength + local.get $6 + local.get $4 local.get $0 - call $~lib/typedarray/Int32Array#__get - local.get $3 - i32.ne + i32.const 4208 + i32.load + call_indirect (type $i64_i32_i32_=>_i32) if - i32.const 0 - i32.const 1568 - i32.const 707 - i32.const 5 - call $~lib/builtins/abort - unreachable + local.get $5 + local.get $1 + i32.const 3 + i32.shl + i32.add + local.get $6 + i64.store + local.get $1 + i32.const 1 + i32.add + local.set $1 end - local.get $0 + local.get $4 i32.const 1 i32.add - local.set $0 - br $for-loop|1 + local.set $4 + br $for-loop|0 end end + local.get $2 + local.get $5 + local.get $1 + i32.const 3 + i32.shl + local.tee $3 + call $~lib/rt/itcms/__renew + local.tee $0 + i32.store + local.get $2 + local.get $0 + call $~lib/rt/itcms/__link + local.get $2 + local.get $3 + i32.store offset=8 + local.get $2 + local.get $0 + i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 24 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer + local.get $2 ) - (func $std/typedarray/testArrayWrap<~lib/typedarray/Uint32Array,u32> - (local $0 i32) + (func $~lib/typedarray/Float32Array#filter (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) + (local $6 f32) + (local $7 i32) global.get $~lib/memory/__stack_pointer - i32.const 24 + 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 $0 + i32.load offset=8 + i32.const 2 + i32.shr_u + local.set $3 global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=8 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=16 - global.get $~lib/memory/__stack_pointer - i32.const 8768 + i32.const 12 + i32.const 12 + call $~lib/rt/itcms/__new + local.tee $2 i32.store global.get $~lib/memory/__stack_pointer - i32.const 8768 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 8780 - i32.load - local.tee $4 - call $~lib/typedarray/Uint32Array#constructor - local.tee $1 - i32.store offset=8 + local.get $3 + i32.const 2 + i32.shl + i32.const 0 + call $~lib/rt/itcms/__new + local.tee $5 + i32.store offset=4 + local.get $0 + i32.load offset=4 + local.set $7 loop $for-loop|0 - local.get $0 + local.get $3 local.get $4 - i32.lt_s + i32.gt_s if - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 8768 - i32.store offset=12 - local.get $1 - local.get $0 - i32.const 8768 - local.get $0 - call $~lib/array/Array#__get - call $~lib/typedarray/Uint32Array#__set + local.get $7 + local.get $4 + i32.const 2 + i32.shl + i32.add + f32.load + local.set $6 + i32.const 3 + global.set $~argumentsLength + local.get $6 + local.get $4 local.get $0 + i32.const 4240 + i32.load + call_indirect (type $f32_i32_i32_=>_i32) + if + local.get $5 + local.get $1 + i32.const 2 + i32.shl + i32.add + local.get $6 + f32.store + local.get $1 + i32.const 1 + i32.add + local.set $1 + end + local.get $4 i32.const 1 i32.add - local.set $0 + local.set $4 br $for-loop|0 end end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.load - local.tee $2 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=12 - local.get $1 - i32.load offset=4 - local.get $1 - i32.load - i32.sub - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer local.get $2 - local.get $0 - local.get $1 - i32.load offset=8 - local.get $1 - i32.load offset=4 + local.get $5 local.get $1 - i32.load - i32.sub - i32.add - call $~lib/arraybuffer/ArrayBuffer#slice + i32.const 2 + i32.shl + local.tee $3 + call $~lib/rt/itcms/__renew local.tee $0 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - i32.const 1 - global.set $~argumentsLength - global.get $~lib/memory/__stack_pointer - 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 - 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 $2 - local.set $5 - local.get $2 - i32.const 3 - i32.and - if - i32.const 1056 - i32.const 1632 - i32.const 1831 - i32.const 9 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.const 9 - call $~lib/rt/itcms/__new - local.tee $2 - i32.store offset=8 - local.get $2 - local.get $0 i32.store local.get $2 local.get $0 call $~lib/rt/itcms/__link local.get $2 - local.get $5 + local.get $3 i32.store offset=8 local.get $2 local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer local.get $2 - i32.store offset=20 - 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 $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $~lib/typedarray/Uint32Array#__get - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - local.get $0 - call $~lib/typedarray/Uint32Array#__get - local.get $3 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 707 - 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 - i32.const 24 - i32.add - global.set $~lib/memory/__stack_pointer ) - (func $std/typedarray/testArrayWrap<~lib/typedarray/Int64Array,i64> - (local $0 i32) + (func $~lib/typedarray/Float64Array#filter (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) - (local $6 i64) + (local $6 f64) + (local $7 i32) global.get $~lib/memory/__stack_pointer - i32.const 24 + 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 $0 + i32.load offset=8 + i32.const 3 + i32.shr_u + local.set $3 global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=8 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=16 - global.get $~lib/memory/__stack_pointer - i32.const 8768 + i32.const 12 + i32.const 13 + call $~lib/rt/itcms/__new + local.tee $2 i32.store global.get $~lib/memory/__stack_pointer - i32.const 8768 + local.get $3 + i32.const 3 + i32.shl + i32.const 0 + call $~lib/rt/itcms/__new + local.tee $5 i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 8780 - i32.load - local.tee $3 - call $~lib/typedarray/Int64Array#constructor - local.tee $1 - i32.store offset=8 + local.get $0 + i32.load offset=4 + local.set $7 loop $for-loop|0 - local.get $0 local.get $3 - i32.lt_s + local.get $4 + i32.gt_s if - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 8768 - i32.store offset=12 - local.get $1 - local.get $0 - i32.const 8768 - local.get $0 - call $~lib/array/Array#__get - i64.extend_i32_s - call $~lib/typedarray/Int64Array#__set + local.get $7 + local.get $4 + i32.const 3 + i32.shl + i32.add + f64.load + local.set $6 + i32.const 3 + global.set $~argumentsLength + local.get $6 + local.get $4 local.get $0 + i32.const 4272 + i32.load + call_indirect (type $f64_i32_i32_=>_i32) + if + local.get $5 + local.get $1 + i32.const 3 + i32.shl + i32.add + local.get $6 + f64.store + local.get $1 + i32.const 1 + i32.add + local.set $1 + end + local.get $4 i32.const 1 i32.add - local.set $0 + local.set $4 br $for-loop|0 end end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.load - local.tee $2 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=12 - local.get $1 - i32.load offset=4 - local.get $1 - i32.load - i32.sub - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer local.get $2 - local.get $0 - local.get $1 - i32.load offset=8 - local.get $1 - i32.load offset=4 + local.get $5 local.get $1 - i32.load - i32.sub - i32.add - call $~lib/arraybuffer/ArrayBuffer#slice + i32.const 3 + i32.shl + local.tee $3 + call $~lib/rt/itcms/__renew local.tee $0 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer + i32.store + local.get $2 + local.get $0 + call $~lib/rt/itcms/__link + local.get $2 + local.get $3 + i32.store offset=8 + local.get $2 local.get $0 i32.store offset=4 - i32.const 1 - global.set $~argumentsLength global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + ) + (func $~lib/typedarray/Uint8Array#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.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 - 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 4 local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 + i32.load offset=8 local.tee $2 - local.set $5 local.get $2 - i32.const 7 - i32.and - if - i32.const 1056 - i32.const 1632 - i32.const 1831 - i32.const 9 - call $~lib/builtins/abort - unreachable + i32.const 4 + i32.gt_s + select + local.set $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.set $2 global.get $~lib/memory/__stack_pointer i32.const 12 - i32.const 10 + i32.const 4 call $~lib/rt/itcms/__new - local.tee $2 - i32.store offset=8 - local.get $2 - local.get $0 + local.tee $1 i32.store - local.get $2 + local.get $1 local.get $0 + i32.load + local.tee $4 + i32.store + local.get $1 + local.get $4 call $~lib/rt/itcms/__link - local.get $2 - local.get $5 - i32.store offset=8 - local.get $2 + local.get $1 + local.get $3 local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.load offset=4 i32.add - global.set $~lib/memory/__stack_pointer + i32.store offset=4 + local.get $1 local.get $2 - i32.store offset=20 - i32.const 0 - local.set $0 - loop $for-loop|1 - local.get $0 - local.get $3 - 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/typedarray/Int64Array#__get - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - local.get $0 - call $~lib/typedarray/Int64Array#__get - local.get $6 - i64.ne - if - i32.const 0 - i32.const 1568 - i32.const 707 - 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 $3 + local.get $2 + local.get $3 + i32.gt_s + select + local.get $3 + i32.sub + i32.store offset=8 global.get $~lib/memory/__stack_pointer - i32.const 24 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer + local.get $1 ) - (func $std/typedarray/testArrayWrap<~lib/typedarray/Uint64Array,u64> - (local $0 i32) - (local $1 i32) + (func $~lib/typedarray/Uint8ClampedArray#subarray (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) - (local $5 i32) - (local $6 i64) global.get $~lib/memory/__stack_pointer - i32.const 24 + i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=8 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=16 - global.get $~lib/memory/__stack_pointer - i32.const 8768 + i32.const 0 i32.store + i32.const 4 + local.get $0 + i32.load offset=8 + local.tee $2 + local.get $2 + i32.const 4 + i32.gt_s + select + local.set $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.set $2 global.get $~lib/memory/__stack_pointer - i32.const 8768 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 8780 - i32.load - local.tee $3 - call $~lib/typedarray/Uint64Array#constructor + i32.const 12 + i32.const 5 + call $~lib/rt/itcms/__new local.tee $1 - i32.store offset=8 - 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 - i32.const 8768 - i32.store offset=12 - local.get $1 - local.get $0 - i32.const 8768 - 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 + i32.store local.get $1 + local.get $0 i32.load - local.tee $2 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=12 - local.get $1 - i32.load offset=4 + local.tee $4 + i32.store local.get $1 - i32.load - i32.sub - local.set $0 - global.get $~lib/memory/__stack_pointer + local.get $4 + call $~lib/rt/itcms/__link local.get $1 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $3 local.get $0 - local.get $1 - i32.load offset=8 - local.get $1 i32.load offset=4 - local.get $1 - i32.load - i32.sub i32.add - call $~lib/arraybuffer/ArrayBuffer#slice - local.tee $0 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - local.get $0 i32.store offset=4 - i32.const 1 - global.set $~argumentsLength + local.get $1 + local.get $2 + local.get $3 + local.get $2 + local.get $3 + i32.gt_s + select + local.get $3 + i32.sub + i32.store offset=8 global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $~lib/typedarray/Int16Array#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.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 - 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 4 local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 + i32.load offset=8 + i32.const 1 + i32.shr_u local.tee $2 - local.set $5 local.get $2 - i32.const 7 - i32.and - if - i32.const 1056 - i32.const 1632 - i32.const 1831 - i32.const 9 - call $~lib/builtins/abort - unreachable + i32.const 4 + i32.gt_s + select + local.set $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.set $2 global.get $~lib/memory/__stack_pointer i32.const 12 - i32.const 11 + i32.const 6 call $~lib/rt/itcms/__new - local.tee $2 - i32.store offset=8 - local.get $2 - local.get $0 + local.tee $1 i32.store - local.get $2 + local.get $1 local.get $0 + i32.load + local.tee $4 + i32.store + local.get $1 + local.get $4 call $~lib/rt/itcms/__link - local.get $2 - local.get $5 - i32.store offset=8 - local.get $2 + local.get $1 local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.load offset=4 + local.get $3 + i32.const 1 + i32.shl i32.add - global.set $~lib/memory/__stack_pointer + i32.store offset=4 + local.get $1 local.get $2 - i32.store offset=20 - i32.const 0 - local.set $0 - loop $for-loop|1 - local.get $0 - local.get $3 - 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/typedarray/Uint64Array#__get - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - local.get $0 - call $~lib/typedarray/Uint64Array#__get - local.get $6 - i64.ne - if - i32.const 0 - i32.const 1568 - i32.const 707 - 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 $3 + local.get $2 + local.get $3 + i32.gt_s + select + local.get $3 + i32.sub + i32.const 1 + i32.shl + i32.store offset=8 global.get $~lib/memory/__stack_pointer - i32.const 24 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer + local.get $1 ) - (func $std/typedarray/testArrayWrap<~lib/typedarray/Float32Array,f32> - (local $0 i32) - (local $1 i32) + (func $~lib/typedarray/Uint16Array#subarray (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) - (local $5 i32) - (local $6 f32) global.get $~lib/memory/__stack_pointer - i32.const 24 + i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=8 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=16 - global.get $~lib/memory/__stack_pointer - i32.const 8768 + i32.const 0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 8768 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 8780 - i32.load - local.tee $3 - call $~lib/typedarray/Float32Array#constructor - local.tee $1 - i32.store offset=8 - loop $for-loop|0 - local.get $0 - local.get $3 + i32.const 4 + local.get $0 + i32.load offset=8 + i32.const 1 + i32.shr_u + local.tee $2 + local.get $2 + i32.const 4 + i32.gt_s + select + local.set $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 - if - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 8768 - i32.store offset=12 - local.get $1 - local.get $0 - i32.const 8768 - 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 + select end + local.set $2 global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 7 + call $~lib/rt/itcms/__new + local.tee $1 + i32.store local.get $1 + local.get $0 i32.load - local.tee $2 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=12 - local.get $1 - i32.load offset=4 + local.tee $4 + i32.store local.get $1 - i32.load - i32.sub - local.set $0 - global.get $~lib/memory/__stack_pointer + local.get $4 + call $~lib/rt/itcms/__link local.get $1 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $2 local.get $0 - local.get $1 - i32.load offset=8 - local.get $1 i32.load offset=4 - local.get $1 - i32.load - i32.sub + local.get $3 + i32.const 1 + i32.shl i32.add - call $~lib/arraybuffer/ArrayBuffer#slice - local.tee $0 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - local.get $0 i32.store offset=4 + local.get $1 + local.get $2 + local.get $3 + local.get $2 + local.get $3 + i32.gt_s + select + local.get $3 + i32.sub i32.const 1 - global.set $~argumentsLength + i32.shl + i32.store offset=8 global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (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.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 - 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 4 local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 + i32.load offset=8 + i32.const 2 + i32.shr_u local.tee $2 - local.set $5 local.get $2 - i32.const 3 - i32.and - if - i32.const 1056 - i32.const 1632 - i32.const 1831 - i32.const 9 - call $~lib/builtins/abort - unreachable + i32.const 4 + i32.gt_s + select + local.set $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.set $2 global.get $~lib/memory/__stack_pointer i32.const 12 - i32.const 12 + i32.const 9 call $~lib/rt/itcms/__new - local.tee $2 - i32.store offset=8 - local.get $2 - local.get $0 + local.tee $1 i32.store - local.get $2 + local.get $1 local.get $0 + i32.load + local.tee $4 + i32.store + local.get $1 + local.get $4 call $~lib/rt/itcms/__link - local.get $2 - local.get $5 - i32.store offset=8 - local.get $2 + local.get $1 local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.load offset=4 + local.get $3 + i32.const 2 + i32.shl i32.add - global.set $~lib/memory/__stack_pointer + i32.store offset=4 + local.get $1 local.get $2 - i32.store offset=20 - i32.const 0 - local.set $0 - loop $for-loop|1 - local.get $0 - local.get $3 - 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/typedarray/Float32Array#__get - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - local.get $0 - call $~lib/typedarray/Float32Array#__get - local.get $6 - f32.ne - if - i32.const 0 - i32.const 1568 - i32.const 707 - 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 $3 + local.get $2 + local.get $3 + i32.gt_s + select + local.get $3 + i32.sub + i32.const 2 + i32.shl + i32.store offset=8 global.get $~lib/memory/__stack_pointer - i32.const 24 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer + local.get $1 ) - (func $std/typedarray/testArrayWrap<~lib/typedarray/Float64Array,f64> - (local $0 i32) - (local $1 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) - (local $6 f64) global.get $~lib/memory/__stack_pointer - i32.const 24 + i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=8 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=16 - global.get $~lib/memory/__stack_pointer - i32.const 8768 + i32.const 0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 8768 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 8780 - i32.load - local.tee $3 - call $~lib/typedarray/Float64Array#constructor - local.tee $1 - i32.store offset=8 - loop $for-loop|0 - local.get $0 - local.get $3 + i32.const 4 + local.get $0 + i32.load offset=8 + i32.const 3 + i32.shr_u + local.tee $2 + local.get $2 + i32.const 4 + i32.gt_s + select + local.set $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 - if - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 8768 - i32.store offset=12 - local.get $1 - local.get $0 - i32.const 8768 - 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 + select end + local.set $2 global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 10 + call $~lib/rt/itcms/__new + local.tee $1 + i32.store local.get $1 + local.get $0 i32.load - local.tee $2 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=12 - local.get $1 - i32.load offset=4 + local.tee $4 + i32.store local.get $1 - i32.load - i32.sub - local.set $0 - global.get $~lib/memory/__stack_pointer + local.get $4 + call $~lib/rt/itcms/__link local.get $1 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $2 local.get $0 - local.get $1 - i32.load offset=8 - local.get $1 i32.load offset=4 - local.get $1 - i32.load - i32.sub + local.get $3 + i32.const 3 + i32.shl i32.add - call $~lib/arraybuffer/ArrayBuffer#slice - local.tee $0 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - local.get $0 i32.store offset=4 - i32.const 1 - global.set $~argumentsLength + local.get $1 + local.get $2 + local.get $3 + local.get $2 + local.get $3 + i32.gt_s + select + local.get $3 + i32.sub + i32.const 3 + i32.shl + i32.store offset=8 global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (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.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 - 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 4 local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 + i32.load offset=8 + i32.const 3 + i32.shr_u local.tee $2 - local.set $5 local.get $2 - i32.const 7 - i32.and - if - i32.const 1056 - i32.const 1632 - i32.const 1831 - i32.const 9 - call $~lib/builtins/abort - unreachable + i32.const 4 + i32.gt_s + select + local.set $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.set $2 global.get $~lib/memory/__stack_pointer i32.const 12 - i32.const 13 + i32.const 11 call $~lib/rt/itcms/__new - local.tee $2 - i32.store offset=8 - local.get $2 - local.get $0 + local.tee $1 i32.store - local.get $2 + local.get $1 local.get $0 + i32.load + local.tee $4 + i32.store + local.get $1 + local.get $4 call $~lib/rt/itcms/__link - local.get $2 - local.get $5 - i32.store offset=8 - local.get $2 + local.get $1 local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.load offset=4 + local.get $3 + i32.const 3 + i32.shl i32.add - global.set $~lib/memory/__stack_pointer + i32.store offset=4 + local.get $1 local.get $2 - i32.store offset=20 - i32.const 0 - local.set $0 - loop $for-loop|1 - local.get $0 - local.get $3 - 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/typedarray/Float64Array#__get - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - local.get $0 - call $~lib/typedarray/Float64Array#__get - local.get $6 - f64.ne - if - i32.const 0 - i32.const 1568 - i32.const 707 - 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 $3 + local.get $2 + local.get $3 + i32.gt_s + select + local.get $3 + i32.sub + i32.const 3 + i32.shl + i32.store offset=8 global.get $~lib/memory/__stack_pointer - i32.const 24 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer + local.get $1 ) - (func $~lib/typedarray/Int8Array#set<~lib/array/Array> (param $0 i32) - (local $1 i32) + (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.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 - global.get $~lib/memory/__stack_pointer - local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 8848 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 8848 - i32.store offset=8 - i32.const 8860 - i32.load - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 + i32.const 4 local.get $0 i32.load offset=8 + i32.const 2 + i32.shr_u + local.tee $2 + local.get $2 + i32.const 4 i32.gt_s - if - i32.const 1360 - i32.const 1632 - i32.const 1865 - i32.const 47 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load offset=4 - local.set $0 - i32.const 8852 - i32.load - local.set $2 - global.get $~lib/memory/__stack_pointer - i32.const 8848 - i32.store offset=8 - i32.const 8860 - i32.load + select local.set $3 - loop $for-loop|0 + local.get $1 + i32.const 0 + i32.lt_s + if (result i32) local.get $1 - local.get $3 + 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 - if - local.get $0 - local.get $1 - i32.add - local.get $2 - local.get $1 - i32.const 2 - i32.shl - i32.add - i32.load - i32.store8 - local.get $1 - i32.const 1 - i32.add - local.set $1 - br $for-loop|0 - end + select end + local.set $2 global.get $~lib/memory/__stack_pointer i32.const 12 + i32.const 12 + call $~lib/rt/itcms/__new + local.tee $1 + i32.store + local.get $1 + local.get $0 + i32.load + local.tee $4 + i32.store + local.get $1 + local.get $4 + call $~lib/rt/itcms/__link + local.get $1 + local.get $0 + i32.load offset=4 + local.get $3 + i32.const 2 + i32.shl + i32.add + i32.store offset=4 + local.get $1 + local.get $2 + local.get $3 + local.get $2 + local.get $3 + i32.gt_s + select + local.get $3 + i32.sub + i32.const 2 + i32.shl + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer + local.get $1 ) - (func $std/typedarray/valuesEqual<~lib/typedarray/Int8Array> (param $0 i32) (param $1 i32) + (func $~lib/util/number/itoa32 (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 @@ -35029,16601 +38650,1108 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - global.get $~lib/memory/__stack_pointer local.get $0 - i32.store + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 7296 + return + end + i32.const 0 local.get $0 - i32.load offset=8 + i32.sub + local.get $0 + local.get $0 + i32.const 31 + i32.shr_u + local.tee $1 + select + local.tee $2 + call $~lib/util/number/decimalCount32 + local.get $1 + i32.add local.set $3 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $3 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $0 i32.store + local.get $0 + local.get $2 local.get $3 + call $~lib/util/number/utoa_dec_simple local.get $1 - i32.load offset=12 - i32.ne if - i32.const 0 - i32.const 1568 - i32.const 735 - 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 $2 - local.get $0 - i32.load offset=4 - i32.add - i32.load8_s - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $4 - local.get $2 - local.get $1 - i32.load offset=4 - i32.add - i32.load8_s - local.tee $5 - i32.ne - if - global.get $~lib/memory/__stack_pointer - i32.const 9184 - i32.store - i32.const 9184 - 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 741 - i32.const 7 - call $~lib/builtins/abort - unreachable - end - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $for-loop|0 - end + local.get $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/typedarray/Int8Array#set<~lib/array/Array> (param $0 i32) - (local $1 i32) + (func $~lib/string/String#substring (param $0 i32) (param $1 i32) (result i32) (local $2 i32) - (local $3 f32) + (local $3 i32) (local $4 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 - global.get $~lib/memory/__stack_pointer - local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 8928 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 8928 - i32.store offset=8 - i32.const 8940 - i32.load - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 + i32.const 0 local.get $0 - i32.load offset=8 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u + local.tee $2 local.get $2 - i32.const 3 - i32.add - i32.lt_s - if - i32.const 1360 - i32.const 1632 - i32.const 1865 - i32.const 47 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load offset=4 - i32.const 3 - i32.add - local.set $2 - i32.const 8932 - i32.load - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 8928 - i32.store offset=8 - i32.const 8940 - i32.load - local.set $4 - loop $for-loop|0 - local.get $1 - local.get $4 - i32.lt_s - if - local.get $1 - local.get $2 - i32.add - local.get $0 - local.get $1 - i32.const 2 - i32.shl - i32.add - f32.load - local.tee $3 - local.get $3 - f32.sub - f32.const 0 - f32.eq - if (result i32) - local.get $3 - i32.trunc_f32_s - else - i32.const 0 - end - 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 - ) - (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 - 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 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer + i32.gt_s + select + local.tee $3 local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer + i32.const 0 local.get $1 - i32.store offset=8 + i32.const 0 + i32.gt_s + select + local.tee $1 + local.get $2 + local.get $1 + local.get $2 + i32.lt_s + select + local.tee $1 local.get $1 - i32.load offset=8 - i32.const 3 - i32.shr_u - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - i32.load offset=8 local.get $3 - i32.const 6 - i32.add i32.lt_s + select + i32.const 1 + i32.shl + local.tee $4 + local.get $3 + local.get $1 + local.get $1 + local.get $3 + i32.gt_s + select + i32.const 1 + i32.shl + local.tee $1 + i32.sub + local.tee $3 + i32.eqz if - i32.const 1360 - i32.const 1632 - i32.const 1865 - i32.const 47 - call $~lib/builtins/abort - unreachable + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 7072 + return end - local.get $0 - i32.load offset=4 - i32.const 6 - i32.add - local.set $0 + i32.const 0 + local.get $4 + local.get $2 + i32.const 1 + i32.shl + i32.eq local.get $1 - i32.load offset=4 - local.set $3 + select + if + 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 $3 + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $2 + i32.store + local.get $2 + local.get $0 local.get $1 - i32.store offset=8 - local.get $1 - i32.load offset=8 - i32.const 3 - i32.shr_u - local.set $1 - loop $for-loop|0 - local.get $1 - local.get $2 - i32.gt_s - if - local.get $0 - local.get $2 - i32.add - local.get $3 - local.get $2 - i32.const 3 - i32.shl - i32.add - i64.load - i64.store8 - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $for-loop|0 - end - end + i32.add + local.get $3 + call $~lib/memory/memory.copy 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/Int8Array#set<~lib/array/Array> (param $0 i32) - (local $1 i32) + (func $~lib/util/string/joinIntegerArray (param $0 i32) (param $1 i32) (result i32) (local $2 i32) - (local $3 f64) + (local $3 i32) (local $4 i32) + (local $5 i32) + (local $6 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 - global.get $~lib/memory/__stack_pointer - local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 9024 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 9024 - i32.store offset=8 - i32.const 9036 - i32.load - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - i32.load offset=8 - local.get $2 - i32.const 2 - i32.add + local.get $1 + i32.const 1 + i32.sub + local.tee $3 + i32.const 0 i32.lt_s if - i32.const 1360 - i32.const 1632 - i32.const 1865 - i32.const 47 - call $~lib/builtins/abort - unreachable + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 7072 + return end - local.get $0 - i32.load offset=4 - i32.const 2 - i32.add - local.set $2 - i32.const 9028 - i32.load - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 9024 - i32.store offset=8 - i32.const 9036 - i32.load - local.set $4 - loop $for-loop|0 - local.get $1 - local.get $4 - i32.lt_s + block $folding-inner0 + local.get $3 + i32.eqz if - local.get $1 - local.get $2 - i32.add local.get $0 - local.get $1 - i32.const 3 - i32.shl - i32.add - f64.load - local.tee $3 + i32.load8_s + call $~lib/util/number/itoa32 + local.set $0 + br $folding-inner0 + end + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.const 7420 + i32.load + i32.const 1 + i32.shr_u + local.tee $4 + i32.const 11 + i32.add + i32.mul + i32.const 11 + i32.add + local.tee $6 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $1 + i32.store + loop $for-loop|0 local.get $3 - f64.sub - f64.const 0 - f64.eq - if (result i32) - local.get $3 - i32.trunc_f64_s - else - i32.const 0 + local.get $5 + i32.gt_s + if + local.get $1 + local.get $2 + i32.const 1 + i32.shl + i32.add + local.get $0 + local.get $5 + i32.add + i32.load8_s + call $~lib/util/number/itoa_buffered + local.get $2 + i32.add + local.set $2 + local.get $4 + if + local.get $1 + local.get $2 + i32.const 1 + i32.shl + i32.add + i32.const 7424 + local.get $4 + i32.const 1 + i32.shl + call $~lib/memory/memory.copy + local.get $2 + local.get $4 + i32.add + local.set $2 + end + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|0 end - i32.store8 + end + local.get $6 + local.get $1 + local.get $2 + i32.const 1 + i32.shl + i32.add + local.get $0 + local.get $3 + i32.add + i32.load8_s + call $~lib/util/number/itoa_buffered + local.get $2 + i32.add + local.tee $0 + i32.gt_s + if local.get $1 - i32.const 1 - i32.add - local.set $1 - br $for-loop|0 + local.get $0 + call $~lib/string/String#substring + local.set $0 + br $folding-inner0 end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + return end 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/typedarray/Int8Array#set<~lib/typedarray/Uint8Array> (param $0 i32) (param $1 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 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 - 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 - i32.load offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 local.get $0 - i32.load offset=8 - i32.gt_s + i32.eqz if - i32.const 1360 - i32.const 1632 - i32.const 1865 - i32.const 47 - call $~lib/builtins/abort - unreachable + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 7296 + return end local.get $0 - i32.load offset=4 + call $~lib/util/number/decimalCount32 + local.set $1 + global.get $~lib/memory/__stack_pointer local.get $1 - i32.load offset=4 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $2 + i32.store + local.get $2 + local.get $0 local.get $1 - i32.load offset=8 - call $~lib/memory/memory.copy + call $~lib/util/number/utoa_dec_simple 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/Int8Array#set<~lib/typedarray/Int16Array> (param $0 i32) (param $1 i32) + (func $~lib/util/string/joinIntegerArray (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 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 - 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 - i32.load offset=8 i32.const 1 - i32.shr_u - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - i32.load offset=8 - local.get $3 - i32.const 4 - i32.add + i32.sub + local.tee $3 + i32.const 0 i32.lt_s if - i32.const 1360 - i32.const 1632 - i32.const 1865 - i32.const 47 - call $~lib/builtins/abort - unreachable + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 7072 + return end - local.get $0 - i32.load offset=4 - i32.const 4 - i32.add - local.set $0 - local.get $1 - 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=8 - i32.const 1 - i32.shr_u - local.set $1 - loop $for-loop|0 - local.get $1 - local.get $2 - i32.gt_s + block $folding-inner0 + local.get $3 + i32.eqz if local.get $0 - local.get $2 - i32.add - local.get $3 - local.get $2 - i32.const 1 - i32.shl - i32.add - i32.load16_s - i32.store8 - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $for-loop|0 + i32.load8_u + call $~lib/util/number/utoa32 + local.set $0 + br $folding-inner0 end - end + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.const 7420 + i32.load + i32.const 1 + i32.shr_u + local.tee $4 + i32.const 10 + i32.add + i32.mul + i32.const 10 + i32.add + local.tee $6 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $1 + i32.store + loop $for-loop|0 + local.get $3 + local.get $5 + i32.gt_s + if + local.get $1 + local.get $2 + i32.const 1 + i32.shl + i32.add + local.get $0 + local.get $5 + i32.add + i32.load8_u + call $~lib/util/number/itoa_buffered + local.get $2 + i32.add + local.set $2 + local.get $4 + if + local.get $1 + local.get $2 + i32.const 1 + i32.shl + i32.add + i32.const 7424 + local.get $4 + i32.const 1 + i32.shl + call $~lib/memory/memory.copy + local.get $2 + local.get $4 + i32.add + local.set $2 + end + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|0 + end + end + local.get $6 + local.get $1 + local.get $2 + i32.const 1 + i32.shl + i32.add + local.get $0 + local.get $3 + i32.add + i32.load8_u + call $~lib/util/number/itoa_buffered + local.get $2 + i32.add + local.tee $0 + i32.gt_s + if + local.get $1 + local.get $0 + call $~lib/string/String#substring + local.set $0 + br $folding-inner0 + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + return + end 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/typedarray/Int8Array#set<~lib/array/Array> (param $0 i32) - (local $1 i32) + (func $~lib/util/string/joinIntegerArray (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 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 - global.get $~lib/memory/__stack_pointer - local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 9104 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 9104 - i32.store offset=8 - i32.const 9116 - i32.load - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - i32.load offset=8 local.get $1 - i32.const 7 - i32.add + i32.const 1 + i32.sub + local.tee $3 + i32.const 0 i32.lt_s if - i32.const 1360 - i32.const 1632 - i32.const 1865 - i32.const 47 - call $~lib/builtins/abort - unreachable + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 7072 + return + end + block $folding-inner0 + local.get $3 + i32.eqz + if + local.get $0 + i32.load16_s + call $~lib/util/number/itoa32 + local.set $0 + br $folding-inner0 + end + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.const 7420 + i32.load + i32.const 1 + i32.shr_u + local.tee $4 + i32.const 11 + i32.add + i32.mul + i32.const 11 + i32.add + local.tee $6 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $1 + i32.store + loop $for-loop|0 + local.get $3 + local.get $5 + i32.gt_s + if + local.get $1 + local.get $2 + i32.const 1 + i32.shl + i32.add + local.get $0 + local.get $5 + i32.const 1 + i32.shl + i32.add + i32.load16_s + call $~lib/util/number/itoa_buffered + local.get $2 + i32.add + local.set $2 + local.get $4 + if + local.get $1 + local.get $2 + i32.const 1 + i32.shl + i32.add + i32.const 7424 + local.get $4 + i32.const 1 + i32.shl + call $~lib/memory/memory.copy + local.get $2 + local.get $4 + i32.add + local.set $2 + end + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|0 + end + end + local.get $6 + local.get $1 + local.get $2 + i32.const 1 + i32.shl + i32.add + local.get $0 + local.get $3 + i32.const 1 + i32.shl + i32.add + i32.load16_s + call $~lib/util/number/itoa_buffered + local.get $2 + i32.add + local.tee $0 + i32.gt_s + if + local.get $1 + local.get $0 + call $~lib/string/String#substring + local.set $0 + br $folding-inner0 + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + return end - local.get $0 - i32.load offset=4 - i32.const 7 - i32.add - i32.const 9108 - i32.load - i32.const 9112 - i32.load - call $~lib/memory/memory.copy global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer + local.get $0 ) - (func $std/typedarray/testTypedArraySet<~lib/typedarray/Int8Array> - (local $0 i32) - (local $1 i32) + (func $~lib/util/string/joinIntegerArray (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 24 + i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=8 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=16 - 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 0 - i64.const 7 - call $~lib/typedarray/Int64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 + i32.store local.get $1 i32.const 1 - i64.const 8 - call $~lib/typedarray/Int64Array#__set + i32.sub + local.tee $3 + i32.const 0 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 7072 + return + end + block $folding-inner0 + local.get $3 + i32.eqz + if + local.get $0 + i32.load16_u + call $~lib/util/number/utoa32 + local.set $0 + br $folding-inner0 + end + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.const 7420 + i32.load + i32.const 1 + i32.shr_u + local.tee $4 + i32.const 10 + i32.add + i32.mul + i32.const 10 + i32.add + local.tee $6 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $1 + i32.store + loop $for-loop|0 + local.get $3 + local.get $5 + i32.gt_s + if + local.get $1 + local.get $2 + i32.const 1 + i32.shl + i32.add + local.get $0 + local.get $5 + i32.const 1 + i32.shl + i32.add + i32.load16_u + call $~lib/util/number/itoa_buffered + local.get $2 + i32.add + local.set $2 + local.get $4 + if + local.get $1 + local.get $2 + i32.const 1 + i32.shl + i32.add + i32.const 7424 + local.get $4 + i32.const 1 + i32.shl + call $~lib/memory/memory.copy + local.get $2 + local.get $4 + i32.add + local.set $2 + end + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|0 + end + end + local.get $6 + local.get $1 + local.get $2 + i32.const 1 + i32.shl + i32.add + local.get $0 + local.get $3 + i32.const 1 + i32.shl + i32.add + i32.load16_u + call $~lib/util/number/itoa_buffered + local.get $2 + i32.add + local.tee $0 + i32.gt_s + if + local.get $1 + local.get $0 + call $~lib/string/String#substring + local.set $0 + br $folding-inner0 + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + return + end global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 2 - i64.const 9 - call $~lib/typedarray/Int64Array#__set + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + ) + (func $~lib/util/string/joinIntegerArray (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 - call $~lib/typedarray/Uint8Array#constructor - local.tee $2 - i32.store offset=8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check 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.store + local.get $1 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 + i32.sub 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/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 8848 - 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 15 - i32.const 9152 - call $~lib/rt/__newArray - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=20 - local.get $0 - local.get $4 - 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 8928 - 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 15 - i32.const 9232 - call $~lib/rt/__newArray - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=20 - local.get $0 - local.get $4 - 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 $1 - i32.store offset=20 - local.get $0 - local.get $1 - 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 15 - i32.const 9264 - 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 9024 - 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 15 - i32.const 9296 - 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 $2 - i32.store offset=20 - local.get $0 - local.get $2 - 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 $3 - i32.store offset=20 - local.get $0 - local.get $3 - 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 9104 - 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 15 - i32.const 9328 - call $~lib/rt/__newArray - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=20 - local.get $0 - local.get $2 - call $std/typedarray/valuesEqual<~lib/typedarray/Int8Array> - global.get $~lib/memory/__stack_pointer - 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) - (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 - call $~stack_check - global.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 $3 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $3 - local.get $1 - i32.load offset=12 - i32.ne + i32.lt_s if - i32.const 0 - i32.const 1568 - i32.const 735 - i32.const 3 - call $~lib/builtins/abort - unreachable + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 7072 + return end - loop $for-loop|0 - local.get $2 + block $folding-inner0 local.get $3 - i32.lt_s + i32.eqz if - 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_u - local.set $4 - 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_u - local.tee $5 - local.set $6 - local.get $4 + i32.load + call $~lib/util/number/itoa32 + local.set $0 + br $folding-inner0 + end + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.const 7420 + i32.load + i32.const 1 + i32.shr_u + local.tee $4 + i32.const 11 + i32.add + i32.mul + i32.const 11 + i32.add + local.tee $6 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $1 + i32.store + loop $for-loop|0 + local.get $3 local.get $5 - i32.ne + i32.gt_s if - global.get $~lib/memory/__stack_pointer - i32.const 9392 - i32.store - i32.const 9392 - i32.const 3 + local.get $1 local.get $2 - f64.convert_i32_s + i32.const 1 + i32.shl + i32.add + local.get $0 + local.get $5 + 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 $4 - f64.convert_i32_u - local.get $6 - f64.convert_i32_u - f64.const 0 - f64.const 0 - call $~lib/builtins/trace - i32.const 0 - i32.const 1568 - i32.const 741 - i32.const 7 - call $~lib/builtins/abort - unreachable + if + local.get $1 + local.get $2 + i32.const 1 + i32.shl + i32.add + i32.const 7424 + local.get $4 + i32.const 1 + i32.shl + call $~lib/memory/memory.copy + local.get $2 + local.get $4 + i32.add + local.set $2 + end + local.get $5 + i32.const 1 + i32.add + local.set $5 + 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/Uint8Array#set<~lib/array/Array> (param $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 f32) - (local $4 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 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 8928 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 8928 - i32.store offset=8 - i32.const 8940 - i32.load - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - i32.load offset=8 - local.get $2 - i32.const 3 - i32.add - i32.lt_s - if - i32.const 1360 - i32.const 1632 - i32.const 1865 - i32.const 47 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load offset=4 - i32.const 3 - i32.add - local.set $2 - i32.const 8932 - i32.load - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 8928 - i32.store offset=8 - i32.const 8940 - i32.load - local.set $4 - loop $for-loop|0 + local.get $6 local.get $1 - local.get $4 - i32.lt_s + local.get $2 + i32.const 1 + i32.shl + i32.add + local.get $0 + local.get $3 + 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 local.get $1 - local.get $2 - i32.add local.get $0 - local.get $1 - i32.const 2 - i32.shl - i32.add - f32.load - local.tee $3 - local.get $3 - f32.sub - f32.const 0 - f32.eq - if (result i32) - local.get $3 - i32.trunc_f32_u - else - i32.const 0 - end - i32.store8 - local.get $1 - i32.const 1 - i32.add - local.set $1 - br $for-loop|0 + call $~lib/string/String#substring + local.set $0 + br $folding-inner0 end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + return end 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/typedarray/Uint8Array#set<~lib/array/Array> (param $0 i32) - (local $1 i32) + (func $~lib/util/string/joinIntegerArray (param $0 i32) (param $1 i32) (result i32) (local $2 i32) - (local $3 f64) + (local $3 i32) (local $4 i32) + (local $5 i32) + (local $6 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 - global.get $~lib/memory/__stack_pointer - local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 9024 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 9024 - i32.store offset=8 - i32.const 9036 - i32.load - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - i32.load offset=8 - local.get $2 - i32.const 2 - i32.add + local.get $1 + i32.const 1 + i32.sub + local.tee $3 + i32.const 0 i32.lt_s if - i32.const 1360 - i32.const 1632 - i32.const 1865 - i32.const 47 - call $~lib/builtins/abort - unreachable + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 7072 + return end - local.get $0 - i32.load offset=4 - i32.const 2 - i32.add - local.set $2 - i32.const 9028 - i32.load - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 9024 - i32.store offset=8 - i32.const 9036 - i32.load - local.set $4 - loop $for-loop|0 - local.get $1 - local.get $4 - i32.lt_s + block $folding-inner0 + local.get $3 + i32.eqz if - local.get $1 - local.get $2 - i32.add local.get $0 - local.get $1 - i32.const 3 - i32.shl - i32.add - f64.load - local.tee $3 + i32.load + call $~lib/util/number/utoa32 + local.set $0 + br $folding-inner0 + end + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.const 7420 + i32.load + i32.const 1 + i32.shr_u + local.tee $4 + i32.const 10 + i32.add + i32.mul + i32.const 10 + i32.add + local.tee $6 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $1 + i32.store + loop $for-loop|0 local.get $3 - f64.sub - f64.const 0 - f64.eq - if (result i32) - local.get $3 - i32.trunc_f64_u - else - i32.const 0 + local.get $5 + i32.gt_s + if + local.get $1 + local.get $2 + i32.const 1 + i32.shl + i32.add + local.get $0 + local.get $5 + 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 $4 + if + local.get $1 + local.get $2 + i32.const 1 + i32.shl + i32.add + i32.const 7424 + local.get $4 + i32.const 1 + i32.shl + call $~lib/memory/memory.copy + local.get $2 + local.get $4 + i32.add + local.set $2 + end + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|0 end - 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 - ) - (func $std/typedarray/testTypedArraySet<~lib/typedarray/Uint8Array> - (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 - 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 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=16 - 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 0 - i64.const 7 - 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 8 - call $~lib/typedarray/Int64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - 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/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 8848 - 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 63 - i32.const 9360 - call $~lib/rt/__newArray - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=20 - local.get $0 - local.get $4 - 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 8928 - i32.store offset=20 - local.get $0 - call $~lib/typedarray/Uint8Array#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 63 - i32.const 9440 - call $~lib/rt/__newArray - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=20 - local.get $0 - local.get $4 - 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 $1 - i32.store offset=20 - local.get $0 - local.get $1 - 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 63 - i32.const 9472 - 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 9024 - i32.store offset=20 - local.get $0 - call $~lib/typedarray/Uint8Array#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 63 - i32.const 9504 - 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 $2 - i32.store offset=20 - local.get $0 - local.get $2 - 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 $3 - i32.store offset=20 - local.get $0 - local.get $3 - 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 9104 - 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 63 - i32.const 9536 - call $~lib/rt/__newArray - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=20 - local.get $0 - local.get $2 - call $std/typedarray/valuesEqual<~lib/typedarray/Uint8Array> - global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/typedarray/Uint8ClampedArray#set<~lib/array/Array> (param $0 i32) - (local $1 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 - 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 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 8848 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 8848 - i32.store offset=8 - i32.const 8860 - i32.load - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - i32.load offset=8 - i32.gt_s - if - i32.const 1360 - i32.const 1632 - i32.const 1865 - i32.const 47 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load offset=4 - local.set $2 - i32.const 8852 - i32.load - local.set $3 - global.get $~lib/memory/__stack_pointer - i32.const 8848 - i32.store offset=8 - i32.const 8860 - i32.load - local.set $4 - loop $for-loop|0 + local.get $6 local.get $1 - local.get $4 - i32.lt_s - if - local.get $1 - local.get $2 - i32.add - local.get $3 - local.get $1 - i32.const 2 - i32.shl - i32.add - i32.load - local.tee $0 - i32.const 31 - i32.shr_s - i32.const -1 - i32.xor - local.get $0 - i32.const 255 - local.get $0 - i32.sub - i32.const 31 - i32.shr_s - i32.or - 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 - global.set $~lib/memory/__stack_pointer - ) - (func $std/typedarray/valuesEqual<~lib/typedarray/Uint8ClampedArray> (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 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 - local.get $0 - i32.store - local.get $0 - i32.load offset=8 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $3 - local.get $1 - i32.load offset=12 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 735 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - loop $for-loop|0 local.get $2 + i32.const 1 + i32.shl + i32.add + local.get $0 local.get $3 - i32.lt_s - if - 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_u - local.set $4 - 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_u - local.tee $5 - local.set $6 - local.get $4 - local.get $5 - i32.ne - if - global.get $~lib/memory/__stack_pointer - i32.const 9600 - i32.store - i32.const 9600 - i32.const 3 - local.get $2 - f64.convert_i32_s - local.get $4 - f64.convert_i32_u - local.get $6 - f64.convert_i32_u - f64.const 0 - f64.const 0 - call $~lib/builtins/trace - i32.const 0 - i32.const 1568 - i32.const 741 - 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 $~lib/typedarray/Uint8ClampedArray#set<~lib/array/Array> (param $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 f32) - (local $4 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 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 8928 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 8928 - i32.store offset=8 - i32.const 8940 - i32.load - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - i32.load offset=8 - local.get $2 - i32.const 3 - i32.add - i32.lt_s - if - i32.const 1360 - i32.const 1632 - i32.const 1865 - i32.const 47 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load offset=4 - i32.const 3 - i32.add - local.set $2 - i32.const 8932 - i32.load - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 8928 - i32.store offset=8 - i32.const 8940 - i32.load - local.set $4 - loop $for-loop|0 - local.get $1 - local.get $4 - i32.lt_s + 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 local.get $1 - local.get $2 - i32.add local.get $0 - local.get $1 - i32.const 2 - i32.shl - i32.add - f32.load - local.tee $3 - local.get $3 - f32.sub - f32.const 0 - f32.eq - if (result i32) - f32.const 0 - f32.const 255 - local.get $3 - f32.min - f32.max - i32.trunc_f32_u - else - i32.const 0 - end - 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 - ) - (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) - 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 - 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 $2 - i32.const 0 - i32.lt_s - if - i32.const 1360 - i32.const 1632 - i32.const 1864 - i32.const 19 - 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=8 - i32.const 3 - i32.shr_u - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - i32.load offset=8 - local.get $2 - local.get $5 - i32.add - i32.lt_s - if - i32.const 1360 - i32.const 1632 - i32.const 1865 - i32.const 47 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.get $0 - i32.load offset=4 - i32.add - local.set $0 - local.get $1 - i32.load offset=4 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $1 - i32.load offset=8 - i32.const 3 - i32.shr_u - local.set $1 - loop $for-loop|0 - local.get $1 - local.get $3 - i32.gt_s - if - local.get $0 - local.get $3 - i32.add - local.get $2 - local.get $3 - i32.const 3 - i32.shl - i32.add - i64.load - local.tee $4 - i32.wrap_i64 - i32.const 31 - i32.shr_s - i32.const -1 - i32.xor - i64.extend_i32_s - local.get $4 - i32.const 255 - local.get $4 - i32.wrap_i64 - i32.sub - i32.const 31 - i32.shr_s - i64.extend_i32_s - i64.or - i64.and - i64.store8 - local.get $3 - i32.const 1 - i32.add - local.set $3 - 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/Uint8ClampedArray#set<~lib/array/Array> (param $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 f64) - (local $4 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 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 9024 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 9024 - i32.store offset=8 - i32.const 9036 - i32.load - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - i32.load offset=8 - local.get $2 - i32.const 2 - i32.add - i32.lt_s - if - i32.const 1360 - i32.const 1632 - i32.const 1865 - i32.const 47 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load offset=4 - i32.const 2 - i32.add - local.set $2 - i32.const 9028 - i32.load - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 9024 - i32.store offset=8 - i32.const 9036 - i32.load - local.set $4 - loop $for-loop|0 - local.get $1 - local.get $4 - i32.lt_s - if - local.get $1 - local.get $2 - i32.add - local.get $0 - 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) - f64.const 0 - f64.const 255 - local.get $3 - f64.min - f64.max - i32.trunc_f64_u - else - i32.const 0 - end - 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 - ) - (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 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 - 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 $2 - i32.const 0 - i32.lt_s - if - i32.const 1360 - i32.const 1632 - i32.const 1864 - i32.const 19 - 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=8 - i32.const 1 - i32.shr_u - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - i32.load offset=8 - local.get $2 - local.get $4 - i32.add - i32.lt_s - if - i32.const 1360 - i32.const 1632 - i32.const 1865 - i32.const 47 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.get $0 - i32.load offset=4 - i32.add - local.set $2 - local.get $1 - i32.load offset=4 - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $1 - i32.load offset=8 - i32.const 1 - i32.shr_u - local.set $1 - loop $for-loop|0 - local.get $1 - local.get $3 - i32.gt_s - if - local.get $2 - local.get $3 - i32.add - local.get $4 - local.get $3 - i32.const 1 - i32.shl - i32.add - i32.load16_s - local.tee $0 - i32.const 31 - i32.shr_s - i32.const -1 - i32.xor - local.get $0 - i32.const 255 - local.get $0 - i32.sub - i32.const 31 - i32.shr_s - i32.or - i32.and - i32.store8 - local.get $3 - i32.const 1 - i32.add - local.set $3 - 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/Uint8ClampedArray#set<~lib/array/Array> (param $0 i32) - (local $1 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 - 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 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 9104 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 9104 - i32.store offset=8 - i32.const 9116 - i32.load - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - i32.load offset=8 - local.get $2 - i32.const 7 - i32.add - i32.lt_s - if - i32.const 1360 - i32.const 1632 - i32.const 1865 - i32.const 47 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load offset=4 - i32.const 7 - i32.add - local.set $2 - i32.const 9108 - i32.load - local.set $3 - global.get $~lib/memory/__stack_pointer - i32.const 9104 - i32.store offset=8 - i32.const 9116 - i32.load - local.set $4 - loop $for-loop|0 - local.get $1 - local.get $4 - i32.lt_s - if - local.get $1 - local.get $2 - i32.add - local.get $1 - local.get $3 - i32.add - i32.load8_s - local.tee $0 - i32.const 31 - i32.shr_s - i32.const -1 - i32.xor - local.get $0 - i32.const 255 - local.get $0 - i32.sub - i32.const 31 - i32.shr_s - i32.or - 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 - global.set $~lib/memory/__stack_pointer - ) - (func $std/typedarray/testTypedArraySet<~lib/typedarray/Uint8ClampedArray> - (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 - 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 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=16 - global.get $~lib/memory/__stack_pointer - i32.const 3 - call $~lib/typedarray/Int64Array#constructor - local.tee $3 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - i32.const 0 - i64.const 7 - call $~lib/typedarray/Int64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - i32.const 1 - i64.const 8 - call $~lib/typedarray/Int64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - 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 $1 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 0 - i32.const 100 - 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 101 - call $~lib/typedarray/Uint8Array#__set - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 2 - i32.const 102 - call $~lib/typedarray/Uint8Array#__set - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - 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/Uint8ClampedArray#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 8848 - i32.store offset=20 - local.get $0 - call $~lib/typedarray/Uint8ClampedArray#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 63 - i32.const 9568 - call $~lib/rt/__newArray - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=20 - local.get $0 - local.get $2 - 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 8928 - i32.store offset=20 - local.get $0 - call $~lib/typedarray/Uint8ClampedArray#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 63 - i32.const 9664 - call $~lib/rt/__newArray - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=20 - local.get $0 - local.get $2 - 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 $3 - i32.store offset=20 - local.get $0 - local.get $3 - 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 63 - i32.const 9696 - call $~lib/rt/__newArray - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=20 - local.get $0 - local.get $2 - 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 9024 - i32.store offset=20 - local.get $0 - call $~lib/typedarray/Uint8ClampedArray#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 63 - i32.const 9728 - call $~lib/rt/__newArray - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=20 - local.get $0 - local.get $2 - 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 $1 - i32.store offset=20 - 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 - 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 - i32.load offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - i32.load offset=8 - i32.gt_s - if - i32.const 1360 - i32.const 1632 - i32.const 1865 - i32.const 47 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load offset=4 - local.get $1 - i32.load offset=4 - local.get $1 - i32.load offset=8 - call $~lib/memory/memory.copy - 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 - local.get $0 - local.get $4 - 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 9104 - i32.store offset=20 - local.get $0 - call $~lib/typedarray/Uint8ClampedArray#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 63 - i32.const 9760 - 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 - ) - (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 - 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 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 8848 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 8848 - i32.store offset=8 - i32.const 8860 - i32.load - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - i32.load offset=8 - i32.const 1 - i32.shr_u - i32.gt_s - if - i32.const 1360 - i32.const 1632 - i32.const 1865 - i32.const 47 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load offset=4 - local.set $0 - i32.const 8852 - i32.load - local.set $2 - global.get $~lib/memory/__stack_pointer - i32.const 8848 - i32.store offset=8 - i32.const 8860 - i32.load - local.set $3 - 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 - local.get $2 - local.get $1 - i32.const 2 - i32.shl - i32.add - i32.load - 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 - ) - (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) - 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 - local.get $0 - i32.store - local.get $0 - i32.load offset=8 - 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.load offset=12 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 735 - 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 $4 - local.get $1 - local.get $2 - call $~lib/typedarray/Int16Array#__uget - local.tee $5 - i32.ne - if - global.get $~lib/memory/__stack_pointer - i32.const 9840 - i32.store - i32.const 9840 - 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 741 - 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 $~lib/typedarray/Int16Array#set<~lib/array/Array> (param $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 f32) - (local $4 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 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 8928 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 8928 - i32.store offset=8 - i32.const 8940 - i32.load - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - i32.const 3 - i32.add - local.get $0 - i32.load offset=8 - i32.const 1 - i32.shr_u - i32.gt_s - if - i32.const 1360 - i32.const 1632 - i32.const 1865 - i32.const 47 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load offset=4 - i32.const 6 - i32.add - local.set $2 - i32.const 8932 - i32.load - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 8928 - i32.store offset=8 - i32.const 8940 - i32.load - local.set $4 - loop $for-loop|0 - local.get $1 - local.get $4 - i32.lt_s - if - local.get $2 - local.get $1 - i32.const 1 - i32.shl - i32.add - local.get $0 - local.get $1 - i32.const 2 - i32.shl - i32.add - f32.load - local.tee $3 - local.get $3 - f32.sub - f32.const 0 - f32.eq - if (result i32) - local.get $3 - i32.trunc_f32_s - else - i32.const 0 - end - 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 - ) - (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 - 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 - 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 - i32.load offset=8 - i32.const 3 - i32.shr_u - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - i32.const 6 - i32.add - local.get $0 - i32.load offset=8 - i32.const 1 - i32.shr_u - i32.gt_s - if - i32.const 1360 - i32.const 1632 - i32.const 1865 - i32.const 47 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load offset=4 - i32.const 12 - i32.add - local.set $0 - local.get $1 - 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=8 - i32.const 3 - i32.shr_u - local.set $1 - loop $for-loop|0 - local.get $1 - local.get $2 - i32.gt_s - if - local.get $0 - local.get $2 - i32.const 1 - i32.shl - i32.add - local.get $3 - local.get $2 - i32.const 3 - i32.shl - i32.add - i64.load - i64.store16 - 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/Int16Array#set<~lib/array/Array> (param $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 f64) - (local $4 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 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 9024 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 9024 - i32.store offset=8 - i32.const 9036 - i32.load - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - i32.const 2 - i32.add - local.get $0 - i32.load offset=8 - i32.const 1 - i32.shr_u - i32.gt_s - if - i32.const 1360 - i32.const 1632 - i32.const 1865 - i32.const 47 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load offset=4 - i32.const 4 - i32.add - local.set $2 - i32.const 9028 - i32.load - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 9024 - i32.store offset=8 - i32.const 9036 - i32.load - local.set $4 - loop $for-loop|0 - local.get $1 - local.get $4 - i32.lt_s - if - local.get $2 - local.get $1 - i32.const 1 - i32.shl - i32.add - local.get $0 - 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 - i32.trunc_f64_s - else - i32.const 0 - end - 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 - ) - (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 - 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 - 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 - i32.load offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - i32.load offset=8 - i32.const 1 - i32.shr_u - i32.gt_s - if - i32.const 1360 - i32.const 1632 - i32.const 1865 - i32.const 47 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load offset=4 - local.set $0 - local.get $1 - 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=8 - local.set $1 - loop $for-loop|0 - local.get $1 - local.get $2 - i32.gt_s - if - local.get $0 - local.get $2 - i32.const 1 - i32.shl - i32.add - local.get $2 - local.get $3 - i32.add - i32.load8_u - i32.store16 - 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/Int16Array#set<~lib/typedarray/Int16Array> (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 - 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 - 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 - i32.load offset=8 - i32.const 1 - i32.shr_u - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - i32.const 4 - i32.add - local.get $0 - i32.load offset=8 - i32.const 1 - i32.shr_u - i32.gt_s - if - i32.const 1360 - i32.const 1632 - i32.const 1865 - i32.const 47 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load offset=4 - i32.const 8 - i32.add - local.get $1 - i32.load offset=4 - local.get $1 - i32.load offset=8 - call $~lib/memory/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) - 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 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 9104 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 9104 - i32.store offset=8 - i32.const 9116 - i32.load - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - i32.const 7 - i32.add - local.get $0 - i32.load offset=8 - i32.const 1 - i32.shr_u - i32.gt_s - if - i32.const 1360 - i32.const 1632 - i32.const 1865 - i32.const 47 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load offset=4 - i32.const 14 - i32.add - local.set $0 - i32.const 9108 - i32.load - local.set $2 - global.get $~lib/memory/__stack_pointer - i32.const 9104 - i32.store offset=8 - i32.const 9116 - i32.load - local.set $3 - 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 - local.get $1 - local.get $2 - i32.add - i32.load8_s - 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 - ) - (func $std/typedarray/testTypedArraySet<~lib/typedarray/Int16Array> - (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 - 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 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=16 - 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 0 - i64.const 7 - 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 8 - call $~lib/typedarray/Int64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - 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/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 8848 - 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 64 - i32.const 9792 - call $~lib/rt/__newArray - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=20 - local.get $0 - local.get $4 - 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 8928 - 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 64 - i32.const 9888 - call $~lib/rt/__newArray - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=20 - local.get $0 - local.get $4 - 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 $1 - i32.store offset=20 - local.get $0 - local.get $1 - 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 64 - i32.const 9936 - 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 9024 - 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 64 - i32.const 9984 - 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 $2 - i32.store offset=20 - local.get $0 - local.get $2 - 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 $3 - i32.store offset=20 - local.get $0 - local.get $3 - 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 9104 - 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 64 - i32.const 10032 - call $~lib/rt/__newArray - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=20 - local.get $0 - local.get $2 - call $std/typedarray/valuesEqual<~lib/typedarray/Int16Array> - global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (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 - call $~stack_check - global.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 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $3 - local.get $1 - i32.load offset=12 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 735 - 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 $4 - local.get $1 - local.get $2 - call $~lib/typedarray/Uint16Array#__uget - local.tee $5 - i32.ne - if - global.get $~lib/memory/__stack_pointer - i32.const 10128 - i32.store - i32.const 10128 - 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 741 - 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 $~lib/typedarray/Uint16Array#set<~lib/array/Array> (param $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 f32) - (local $4 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 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 8928 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 8928 - i32.store offset=8 - i32.const 8940 - i32.load - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - i32.const 3 - i32.add - local.get $0 - i32.load offset=8 - i32.const 1 - i32.shr_u - i32.gt_s - if - i32.const 1360 - i32.const 1632 - i32.const 1865 - i32.const 47 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load offset=4 - i32.const 6 - i32.add - local.set $2 - i32.const 8932 - i32.load - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 8928 - i32.store offset=8 - i32.const 8940 - i32.load - local.set $4 - loop $for-loop|0 - local.get $1 - local.get $4 - i32.lt_s - if - local.get $2 - local.get $1 - i32.const 1 - i32.shl - i32.add - local.get $0 - local.get $1 - i32.const 2 - i32.shl - i32.add - f32.load - local.tee $3 - local.get $3 - f32.sub - f32.const 0 - f32.eq - if (result i32) - local.get $3 - i32.trunc_f32_u - else - i32.const 0 - end - 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 - ) - (func $~lib/typedarray/Uint16Array#set<~lib/array/Array> (param $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 f64) - (local $4 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 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 9024 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 9024 - i32.store offset=8 - i32.const 9036 - i32.load - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - i32.const 2 - i32.add - local.get $0 - i32.load offset=8 - i32.const 1 - i32.shr_u - i32.gt_s - if - i32.const 1360 - i32.const 1632 - i32.const 1865 - i32.const 47 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load offset=4 - i32.const 4 - i32.add - local.set $2 - i32.const 9028 - i32.load - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 9024 - i32.store offset=8 - i32.const 9036 - i32.load - local.set $4 - loop $for-loop|0 - local.get $1 - local.get $4 - i32.lt_s - if - local.get $2 - local.get $1 - i32.const 1 - i32.shl - i32.add - local.get $0 - 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 - i32.trunc_f64_u - else - i32.const 0 - end - 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 - ) - (func $std/typedarray/testTypedArraySet<~lib/typedarray/Uint16Array> - (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 - 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 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=16 - 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 0 - i64.const 7 - 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 8 - call $~lib/typedarray/Int64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - 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/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 8848 - 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 10080 - call $~lib/rt/__newArray - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=20 - local.get $0 - local.get $4 - 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 8928 - i32.store offset=20 - local.get $0 - call $~lib/typedarray/Uint16Array#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 10176 - call $~lib/rt/__newArray - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=20 - local.get $0 - local.get $4 - 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 $1 - i32.store offset=20 - local.get $0 - local.get $1 - 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 10224 - 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 9024 - i32.store offset=20 - local.get $0 - call $~lib/typedarray/Uint16Array#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 10272 - 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 $2 - i32.store offset=20 - local.get $0 - local.get $2 - 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 $3 - i32.store offset=20 - local.get $0 - local.get $3 - 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 9104 - 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 10320 - call $~lib/rt/__newArray - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=20 - local.get $0 - local.get $2 - call $std/typedarray/valuesEqual<~lib/typedarray/Uint16Array> - global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/typedarray/Int32Array#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 - 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 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 8848 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 8848 - i32.store offset=8 - i32.const 8860 - i32.load - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - i32.load offset=8 - i32.const 2 - i32.shr_u - i32.gt_s - if - i32.const 1360 - i32.const 1632 - i32.const 1865 - i32.const 47 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load offset=4 - i32.const 8852 - i32.load - i32.const 8856 - i32.load - call $~lib/memory/memory.copy - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (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 - 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 - local.get $0 - i32.store - local.get $0 - i32.load offset=8 - i32.const 2 - i32.shr_u - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $3 - local.get $1 - i32.load offset=12 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 735 - 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/Int32Array#__uget - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $4 - local.get $1 - local.get $2 - call $~lib/typedarray/Int32Array#__uget - local.tee $5 - i32.ne - if - global.get $~lib/memory/__stack_pointer - i32.const 10432 - i32.store - i32.const 10432 - 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 741 - 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 $~lib/typedarray/Int32Array#set<~lib/array/Array> (param $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 f32) - (local $4 i32) - (local $5 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 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 8928 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 8928 - i32.store offset=8 - i32.const 8940 - i32.load - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - i32.const 3 - i32.add - local.get $0 - i32.load offset=8 - i32.const 2 - i32.shr_u - i32.gt_s - if - i32.const 1360 - i32.const 1632 - i32.const 1865 - i32.const 47 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load offset=4 - i32.const 12 - i32.add - local.set $1 - i32.const 8932 - i32.load - local.set $4 - global.get $~lib/memory/__stack_pointer - i32.const 8928 - i32.store offset=8 - i32.const 8940 - i32.load - local.set $5 - loop $for-loop|0 - local.get $2 - local.get $5 - i32.lt_s - if - local.get $1 - local.get $2 - i32.const 2 - i32.shl - local.tee $0 - i32.add - local.get $0 - local.get $4 - i32.add - f32.load - local.tee $3 - local.get $3 - f32.sub - f32.const 0 - f32.eq - if (result i32) - local.get $3 - i32.trunc_f32_s - else - i32.const 0 - end - i32.store - 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/Int32Array#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 - 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 - 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 - i32.load offset=8 - i32.const 3 - i32.shr_u - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - i32.const 6 - i32.add - local.get $0 - i32.load offset=8 - i32.const 2 - i32.shr_u - i32.gt_s - if - i32.const 1360 - i32.const 1632 - i32.const 1865 - i32.const 47 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load offset=4 - i32.const 24 - i32.add - local.set $0 - local.get $1 - 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=8 - i32.const 3 - i32.shr_u - local.set $1 - loop $for-loop|0 - local.get $1 - local.get $2 - i32.gt_s - if - local.get $0 - local.get $2 - i32.const 2 - i32.shl - i32.add - local.get $3 - local.get $2 - i32.const 3 - i32.shl - i32.add - i64.load - i64.store32 - 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/Int32Array#set<~lib/array/Array> (param $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 f64) - (local $4 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 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 9024 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 9024 - i32.store offset=8 - i32.const 9036 - i32.load - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - i32.const 2 - i32.add - local.get $0 - i32.load offset=8 - i32.const 2 - i32.shr_u - i32.gt_s - if - i32.const 1360 - i32.const 1632 - i32.const 1865 - i32.const 47 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load offset=4 - i32.const 8 - i32.add - local.set $2 - i32.const 9028 - i32.load - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 9024 - i32.store offset=8 - i32.const 9036 - i32.load - local.set $4 - loop $for-loop|0 - local.get $1 - local.get $4 - i32.lt_s - if - local.get $2 - local.get $1 - i32.const 2 - i32.shl - i32.add - local.get $0 - local.get $1 - i32.const 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 - i32.trunc_f64_s - else - i32.const 0 - end - 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 - ) - (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 - 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 - 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 - i32.load offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - i32.load offset=8 - i32.const 2 - i32.shr_u - i32.gt_s - if - i32.const 1360 - i32.const 1632 - i32.const 1865 - i32.const 47 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load offset=4 - local.set $0 - local.get $1 - 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=8 - local.set $1 - loop $for-loop|0 - local.get $1 - local.get $2 - i32.gt_s - if - local.get $0 - local.get $2 - i32.const 2 - i32.shl - i32.add - local.get $2 - local.get $3 - i32.add - i32.load8_u - i32.store - 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/Int32Array#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 - 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 - 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 - i32.load offset=8 - i32.const 1 - i32.shr_u - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - i32.const 4 - i32.add - local.get $0 - i32.load offset=8 - i32.const 2 - i32.shr_u - i32.gt_s - if - i32.const 1360 - i32.const 1632 - i32.const 1865 - i32.const 47 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load offset=4 - i32.const 16 - i32.add - local.set $0 - local.get $1 - 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=8 - i32.const 1 - i32.shr_u - local.set $1 - loop $for-loop|0 - local.get $1 - local.get $2 - i32.gt_s - if - local.get $0 - local.get $2 - i32.const 2 - i32.shl - i32.add - local.get $3 - local.get $2 - i32.const 1 - i32.shl - i32.add - i32.load16_s - i32.store - 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/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 - 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 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 9104 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 9104 - i32.store offset=8 - i32.const 9116 - i32.load - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - i32.const 7 - i32.add - local.get $0 - i32.load offset=8 - i32.const 2 - i32.shr_u - i32.gt_s - if - i32.const 1360 - i32.const 1632 - i32.const 1865 - i32.const 47 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load offset=4 - i32.const 28 - i32.add - local.set $0 - i32.const 9108 - i32.load - local.set $2 - global.get $~lib/memory/__stack_pointer - i32.const 9104 - i32.store offset=8 - i32.const 9116 - i32.load - local.set $3 - loop $for-loop|0 - local.get $1 - local.get $3 - i32.lt_s - if - local.get $0 - local.get $1 - i32.const 2 - i32.shl - i32.add - local.get $1 - local.get $2 - i32.add - i32.load8_s - 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 - ) - (func $std/typedarray/testTypedArraySet<~lib/typedarray/Int32Array> - (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 - 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 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=16 - 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 0 - i64.const 7 - 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 8 - call $~lib/typedarray/Int64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - 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/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 8848 - 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 16 - i32.const 10368 - call $~lib/rt/__newArray - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=20 - local.get $0 - local.get $4 - 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 8928 - 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 16 - i32.const 10480 - call $~lib/rt/__newArray - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=20 - local.get $0 - local.get $4 - 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 $1 - i32.store offset=20 - local.get $0 - local.get $1 - 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 16 - i32.const 10544 - 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 9024 - 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 16 - i32.const 10608 - 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 $2 - i32.store offset=20 - local.get $0 - local.get $2 - 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 $3 - i32.store offset=20 - local.get $0 - local.get $3 - 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 9104 - 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 16 - i32.const 10672 - call $~lib/rt/__newArray - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=20 - local.get $0 - local.get $2 - call $std/typedarray/valuesEqual<~lib/typedarray/Int32Array> - global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (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 - 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 - local.get $0 - i32.store - local.get $0 - i32.load offset=8 - i32.const 2 - i32.shr_u - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $3 - local.get $1 - i32.load offset=12 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 735 - 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 $4 - local.get $1 - local.get $2 - call $~lib/typedarray/Uint32Array#__uget - local.tee $5 - i32.ne - if - global.get $~lib/memory/__stack_pointer - i32.const 10800 - i32.store - i32.const 10800 - 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 741 - 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 $~lib/typedarray/Uint32Array#set<~lib/array/Array> (param $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 f32) - (local $4 i32) - (local $5 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 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 8928 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 8928 - i32.store offset=8 - i32.const 8940 - i32.load - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - i32.const 3 - i32.add - local.get $0 - i32.load offset=8 - i32.const 2 - i32.shr_u - i32.gt_s - if - i32.const 1360 - i32.const 1632 - i32.const 1865 - i32.const 47 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load offset=4 - i32.const 12 - i32.add - local.set $1 - i32.const 8932 - i32.load - local.set $4 - global.get $~lib/memory/__stack_pointer - i32.const 8928 - i32.store offset=8 - i32.const 8940 - i32.load - local.set $5 - loop $for-loop|0 - local.get $2 - local.get $5 - i32.lt_s - if - local.get $1 - local.get $2 - i32.const 2 - i32.shl - local.tee $0 - i32.add - local.get $0 - local.get $4 - i32.add - f32.load - local.tee $3 - local.get $3 - f32.sub - f32.const 0 - f32.eq - if (result i32) - local.get $3 - i32.trunc_f32_u - else - i32.const 0 - end - i32.store - 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/Uint32Array#set<~lib/array/Array> (param $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 f64) - (local $4 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 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 9024 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 9024 - i32.store offset=8 - i32.const 9036 - i32.load - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - i32.const 2 - i32.add - local.get $0 - i32.load offset=8 - i32.const 2 - i32.shr_u - i32.gt_s - if - i32.const 1360 - i32.const 1632 - i32.const 1865 - i32.const 47 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load offset=4 - i32.const 8 - i32.add - local.set $2 - i32.const 9028 - i32.load - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 9024 - i32.store offset=8 - i32.const 9036 - i32.load - local.set $4 - loop $for-loop|0 - local.get $1 - local.get $4 - i32.lt_s - if - local.get $2 - local.get $1 - i32.const 2 - i32.shl - i32.add - local.get $0 - local.get $1 - i32.const 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 - i32.trunc_f64_u - else - i32.const 0 - end - 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 - ) - (func $std/typedarray/testTypedArraySet<~lib/typedarray/Uint32Array> - (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 - 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 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=16 - 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 0 - i64.const 7 - 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 8 - call $~lib/typedarray/Int64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - 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/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 8848 - 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 66 - i32.const 10736 - call $~lib/rt/__newArray - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=20 - local.get $0 - local.get $4 - 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 8928 - i32.store offset=20 - local.get $0 - call $~lib/typedarray/Uint32Array#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 66 - i32.const 10848 - call $~lib/rt/__newArray - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=20 - local.get $0 - local.get $4 - 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 $1 - i32.store offset=20 - local.get $0 - local.get $1 - 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 66 - i32.const 10912 - 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 9024 - i32.store offset=20 - local.get $0 - call $~lib/typedarray/Uint32Array#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 66 - i32.const 10976 - 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 $2 - i32.store offset=20 - local.get $0 - local.get $2 - 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 $3 - i32.store offset=20 - local.get $0 - local.get $3 - 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 9104 - 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 66 - i32.const 11040 - call $~lib/rt/__newArray - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=20 - local.get $0 - local.get $2 - call $std/typedarray/valuesEqual<~lib/typedarray/Uint32Array> - global.get $~lib/memory/__stack_pointer - i32.const 24 - 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 - 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 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 8848 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 8848 - i32.store offset=8 - i32.const 8860 - i32.load - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - i32.load offset=8 - i32.const 3 - i32.shr_u - i32.gt_s - if - i32.const 1360 - i32.const 1632 - i32.const 1865 - i32.const 47 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load offset=4 - local.set $0 - i32.const 8852 - i32.load - local.set $2 - global.get $~lib/memory/__stack_pointer - i32.const 8848 - i32.store offset=8 - i32.const 8860 - i32.load - local.set $3 - loop $for-loop|0 - local.get $1 - local.get $3 - i32.lt_s - if - local.get $0 - local.get $1 - i32.const 3 - i32.shl - i32.add - local.get $2 - local.get $1 - i32.const 2 - i32.shl - i32.add - i64.load32_s - 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 - ) - (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 - call $~stack_check - global.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 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $3 - local.get $1 - i32.load offset=12 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 735 - 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 $4 - local.get $1 - local.get $2 - call $~lib/typedarray/Int64Array#__uget - local.tee $5 - i64.ne - if - global.get $~lib/memory/__stack_pointer - i32.const 11216 - i32.store - i32.const 11216 - 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 741 - 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 $~lib/typedarray/Int64Array#set<~lib/array/Array> (param $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 f32) - (local $4 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 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 8928 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 8928 - i32.store offset=8 - i32.const 8940 - i32.load - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - i32.const 3 - i32.add - local.get $0 - i32.load offset=8 - i32.const 3 - i32.shr_u - i32.gt_s - if - i32.const 1360 - i32.const 1632 - i32.const 1865 - i32.const 47 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load offset=4 - i32.const 24 - i32.add - local.set $0 - i32.const 8932 - i32.load - local.set $2 - global.get $~lib/memory/__stack_pointer - i32.const 8928 - i32.store offset=8 - i32.const 8940 - i32.load - local.set $4 - loop $for-loop|0 - local.get $1 - local.get $4 - i32.lt_s - if - local.get $0 - local.get $1 - i32.const 3 - i32.shl - i32.add - local.get $2 - local.get $1 - i32.const 2 - i32.shl - i32.add - f32.load - local.tee $3 - local.get $3 - f32.sub - f32.const 0 - f32.eq - if (result i64) - local.get $3 - i64.trunc_f32_s - else - i64.const 0 - end - 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 - ) - (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 - 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 - 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 - i32.load offset=8 - i32.const 3 - i32.shr_u - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - i32.const 6 - i32.add - local.get $0 - i32.load offset=8 - i32.const 3 - i32.shr_u - i32.gt_s - if - i32.const 1360 - i32.const 1632 - i32.const 1865 - i32.const 47 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load offset=4 - i32.const 48 - i32.add - local.get $1 - i32.load offset=4 - local.get $1 - i32.load offset=8 - call $~lib/memory/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/array/Array> (param $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 f64) - (local $4 i32) - (local $5 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 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 9024 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 9024 - i32.store offset=8 - i32.const 9036 - i32.load - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - i32.const 2 - i32.add - local.get $0 - i32.load offset=8 - i32.const 3 - i32.shr_u - i32.gt_s - if - i32.const 1360 - i32.const 1632 - i32.const 1865 - i32.const 47 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load offset=4 - i32.const 16 - i32.add - local.set $0 - i32.const 9028 - i32.load - local.set $1 - global.get $~lib/memory/__stack_pointer - i32.const 9024 - i32.store offset=8 - i32.const 9036 - i32.load - local.set $4 - loop $for-loop|0 - local.get $2 - local.get $4 - i32.lt_s - if - local.get $2 - i32.const 3 - i32.shl - local.tee $5 - local.get $0 - i32.add - local.get $1 - local.get $5 - i32.add - f64.load - local.tee $3 - local.get $3 - f64.sub - f64.const 0 - f64.eq - if (result i64) - local.get $3 - i64.trunc_f64_s - else - i64.const 0 - end - i64.store - 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/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 - 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 - 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 - i32.load offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - i32.load offset=8 - i32.const 3 - i32.shr_u - i32.gt_s - if - i32.const 1360 - i32.const 1632 - i32.const 1865 - i32.const 47 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load offset=4 - local.set $0 - local.get $1 - 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=8 - local.set $1 - loop $for-loop|0 - local.get $1 - local.get $2 - i32.gt_s - if - local.get $0 - local.get $2 - i32.const 3 - i32.shl - i32.add - local.get $2 - local.get $3 - i32.add - i64.load8_u - i64.store - 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/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 - 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 - 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 - i32.load offset=8 - i32.const 1 - i32.shr_u - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - i32.const 4 - i32.add - local.get $0 - i32.load offset=8 - i32.const 3 - i32.shr_u - i32.gt_s - if - i32.const 1360 - i32.const 1632 - i32.const 1865 - i32.const 47 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load offset=4 - i32.const 32 - i32.add - local.set $0 - local.get $1 - 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=8 - i32.const 1 - i32.shr_u - local.set $1 - loop $for-loop|0 - local.get $1 - local.get $2 - i32.gt_s - if - local.get $0 - local.get $2 - i32.const 3 - i32.shl - i32.add - local.get $3 - local.get $2 - i32.const 1 - i32.shl - i32.add - i64.load16_s - i64.store - 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/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 - 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 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 9104 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 9104 - i32.store offset=8 - i32.const 9116 - i32.load - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - i32.const 7 - i32.add - local.get $0 - i32.load offset=8 - i32.const 3 - i32.shr_u - i32.gt_s - if - i32.const 1360 - i32.const 1632 - i32.const 1865 - i32.const 47 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load offset=4 - i32.const 56 - i32.add - local.set $0 - i32.const 9108 - i32.load - local.set $2 - global.get $~lib/memory/__stack_pointer - i32.const 9104 - i32.store offset=8 - i32.const 9116 - i32.load - local.set $3 - loop $for-loop|0 - local.get $1 - local.get $3 - i32.lt_s - if - local.get $0 - local.get $1 - i32.const 3 - i32.shl - i32.add - local.get $1 - local.get $2 - i32.add - i64.load8_s - 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 - ) - (func $std/typedarray/testTypedArraySet<~lib/typedarray/Int64Array> - (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 - 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 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=16 - 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 0 - i64.const 7 - 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 8 - call $~lib/typedarray/Int64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - 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/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 8848 - 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 67 - i32.const 11104 - call $~lib/rt/__newArray - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=20 - local.get $0 - local.get $4 - 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 8928 - 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 67 - i32.const 11264 - call $~lib/rt/__newArray - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=20 - local.get $0 - local.get $4 - 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 $1 - i32.store offset=20 - local.get $0 - local.get $1 - 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 67 - i32.const 11376 - 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 9024 - 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 67 - 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/Int64Array> - 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/Uint8Array> - 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 - local.get $0 - local.get $3 - 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 9104 - 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 67 - i32.const 11600 - call $~lib/rt/__newArray - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=20 - local.get $0 - local.get $2 - call $std/typedarray/valuesEqual<~lib/typedarray/Int64Array> - global.get $~lib/memory/__stack_pointer - i32.const 24 - 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) - 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 - local.get $0 - i32.store - local.get $0 - i32.load offset=8 - i32.const 3 - i32.shr_u - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $3 - local.get $1 - i32.load offset=12 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 735 - 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 $4 - local.get $1 - local.get $2 - call $~lib/typedarray/Uint64Array#__uget - local.tee $5 - i64.ne - if - global.get $~lib/memory/__stack_pointer - i32.const 11824 - i32.store - i32.const 11824 - 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 741 - 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 $~lib/typedarray/Uint64Array#set<~lib/array/Array> (param $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 f32) - (local $4 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 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 8928 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 8928 - i32.store offset=8 - i32.const 8940 - i32.load - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - i32.const 3 - i32.add - local.get $0 - i32.load offset=8 - i32.const 3 - i32.shr_u - i32.gt_s - if - i32.const 1360 - i32.const 1632 - i32.const 1865 - i32.const 47 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load offset=4 - i32.const 24 - i32.add - local.set $0 - i32.const 8932 - i32.load - local.set $2 - global.get $~lib/memory/__stack_pointer - i32.const 8928 - i32.store offset=8 - i32.const 8940 - i32.load - local.set $4 - loop $for-loop|0 - local.get $1 - local.get $4 - i32.lt_s - if - local.get $0 - local.get $1 - i32.const 3 - i32.shl - i32.add - local.get $2 - local.get $1 - i32.const 2 - i32.shl - i32.add - f32.load - local.tee $3 - local.get $3 - f32.sub - f32.const 0 - f32.eq - if (result i64) - local.get $3 - i64.trunc_f32_u - else - i64.const 0 - end - 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 - ) - (func $~lib/typedarray/Uint64Array#set<~lib/array/Array> (param $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 f64) - (local $4 i32) - (local $5 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 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 9024 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 9024 - i32.store offset=8 - i32.const 9036 - i32.load - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - i32.const 2 - i32.add - local.get $0 - i32.load offset=8 - i32.const 3 - i32.shr_u - i32.gt_s - if - i32.const 1360 - i32.const 1632 - i32.const 1865 - i32.const 47 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load offset=4 - i32.const 16 - i32.add - local.set $0 - i32.const 9028 - i32.load - local.set $1 - global.get $~lib/memory/__stack_pointer - i32.const 9024 - i32.store offset=8 - i32.const 9036 - i32.load - local.set $4 - loop $for-loop|0 - local.get $2 - local.get $4 - i32.lt_s - if - local.get $2 - i32.const 3 - i32.shl - local.tee $5 - local.get $0 - i32.add - local.get $1 - local.get $5 - i32.add - f64.load - local.tee $3 - local.get $3 - f64.sub - f64.const 0 - f64.eq - if (result i64) - local.get $3 - i64.trunc_f64_u - else - i64.const 0 - end - i64.store - 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 $std/typedarray/testTypedArraySet<~lib/typedarray/Uint64Array> - (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 - 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 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=16 - 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 0 - i64.const 7 - 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 8 - call $~lib/typedarray/Int64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - 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/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 8848 - 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 11712 - call $~lib/rt/__newArray - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=20 - local.get $0 - local.get $4 - 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 8928 - i32.store offset=20 - local.get $0 - call $~lib/typedarray/Uint64Array#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 11872 - call $~lib/rt/__newArray - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=20 - local.get $0 - local.get $4 - 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 $1 - i32.store offset=20 - local.get $0 - local.get $1 - 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 11984 - 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 9024 - i32.store offset=20 - local.get $0 - call $~lib/typedarray/Uint64Array#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 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/Uint64Array> - 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/Uint8Array> - 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 - local.get $0 - local.get $3 - 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 9104 - 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 12208 - call $~lib/rt/__newArray - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=20 - local.get $0 - local.get $2 - call $std/typedarray/valuesEqual<~lib/typedarray/Uint64Array> - global.get $~lib/memory/__stack_pointer - i32.const 24 - 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 - call $~stack_check - global.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 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $3 - local.get $1 - i32.load offset=12 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 735 - 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 $4 - local.get $1 - local.get $2 - call $~lib/typedarray/Float32Array#__uget - local.tee $5 - f32.ne - if - global.get $~lib/memory/__stack_pointer - i32.const 12384 - i32.store - i32.const 12384 - 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 741 - 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 $~lib/typedarray/Float32Array#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 - 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 - 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 - i32.load offset=8 - i32.const 3 - i32.shr_u - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - i32.const 6 - i32.add - local.get $0 - i32.load offset=8 - i32.const 2 - i32.shr_u - i32.gt_s - if - i32.const 1360 - i32.const 1632 - i32.const 1865 - i32.const 47 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load offset=4 - i32.const 24 - i32.add - local.set $0 - local.get $1 - 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=8 - i32.const 3 - i32.shr_u - local.set $1 - loop $for-loop|0 - local.get $1 - local.get $2 - i32.gt_s - if - local.get $0 - local.get $2 - i32.const 2 - i32.shl - i32.add - local.get $3 - local.get $2 - i32.const 3 - i32.shl - i32.add - i64.load - f32.convert_i64_s - f32.store - 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/Float32Array#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 - 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 - 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 - i32.load offset=8 - i32.const 1 - i32.shr_u - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - i32.const 4 - i32.add - local.get $0 - i32.load offset=8 - i32.const 2 - i32.shr_u - i32.gt_s - if - i32.const 1360 - i32.const 1632 - i32.const 1865 - i32.const 47 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load offset=4 - i32.const 16 - i32.add - local.set $0 - local.get $1 - 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=8 - i32.const 1 - i32.shr_u - local.set $1 - loop $for-loop|0 - local.get $1 - local.get $2 - i32.gt_s - if - local.get $0 - local.get $2 - i32.const 2 - i32.shl - i32.add - local.get $3 - local.get $2 - i32.const 1 - i32.shl - i32.add - i32.load16_s - f32.convert_i32_s - f32.store - 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/Float32Array#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 - 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 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 9104 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 9104 - i32.store offset=8 - i32.const 9116 - i32.load - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - i32.const 7 - i32.add - local.get $0 - i32.load offset=8 - i32.const 2 - i32.shr_u - i32.gt_s - if - i32.const 1360 - i32.const 1632 - i32.const 1865 - i32.const 47 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load offset=4 - i32.const 28 - i32.add - local.set $0 - i32.const 9108 - i32.load - local.set $2 - global.get $~lib/memory/__stack_pointer - i32.const 9104 - i32.store offset=8 - i32.const 9116 - i32.load - local.set $3 - loop $for-loop|0 - local.get $1 - local.get $3 - i32.lt_s - if - local.get $0 - local.get $1 - i32.const 2 - i32.shl - i32.add - local.get $1 - local.get $2 - 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|0 - end - end - global.get $~lib/memory/__stack_pointer - i32.const 12 - 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 - 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 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=16 - 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 $1 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 0 - i32.const 100 - 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 101 - call $~lib/typedarray/Uint8Array#__set - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 2 - i32.const 102 - call $~lib/typedarray/Uint8Array#__set - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - 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/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 8848 - i32.store offset=20 - 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 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 8848 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 8848 - i32.store offset=8 - i32.const 8860 - i32.load - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - block $folding-inner0 - local.get $5 - local.get $0 - i32.load offset=8 - i32.const 2 - i32.shr_u - i32.gt_s - br_if $folding-inner0 - local.get $0 - i32.load offset=4 - local.set $5 - i32.const 8852 - i32.load - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 8848 - i32.store offset=8 - i32.const 8860 - i32.load - local.set $7 - loop $for-loop|0 - local.get $3 - local.get $7 - i32.lt_s - if - local.get $5 - local.get $3 - i32.const 2 - i32.shl - local.tee $8 - i32.add - local.get $6 - local.get $8 - i32.add - i32.load - f32.convert_i32_s - f32.store - local.get $3 - i32.const 1 - i32.add - local.set $3 - 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 61 - i32.const 12320 - call $~lib/rt/__newArray - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=20 - local.get $0 - local.get $3 - 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 8928 - i32.store offset=20 - 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 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 8928 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 8928 - i32.store offset=8 - i32.const 8940 - i32.load - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - i32.const 3 - i32.add - local.get $0 - i32.load offset=8 - i32.const 2 - i32.shr_u - i32.gt_s - br_if $folding-inner0 - local.get $0 - i32.load offset=4 - i32.const 12 - i32.add - i32.const 8932 - i32.load - i32.const 8936 - i32.load - call $~lib/memory/memory.copy - 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 61 - i32.const 12432 - call $~lib/rt/__newArray - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=20 - local.get $0 - local.get $3 - 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 - local.get $0 - local.get $2 - call $~lib/typedarray/Float32Array#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 61 - i32.const 12496 - call $~lib/rt/__newArray - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=20 - local.get $0 - local.get $2 - 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 $1 - i32.store offset=20 - i32.const 0 - local.set $2 - 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 - 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 - i32.load offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - i32.load offset=8 - i32.const 2 - i32.shr_u - i32.gt_s - br_if $folding-inner0 - local.get $0 - i32.load offset=4 - local.set $3 - local.get $1 - i32.load offset=4 - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $1 - i32.load offset=8 - local.set $1 - loop $for-loop|00 - local.get $1 - local.get $2 - i32.gt_s - if - local.get $3 - local.get $2 - i32.const 2 - i32.shl - i32.add - local.get $2 - local.get $5 - i32.add - i32.load8_u - f32.convert_i32_u - f32.store - 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 $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=20 - local.get $0 - local.get $4 - call $~lib/typedarray/Float32Array#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 9104 - i32.store offset=20 - local.get $0 - call $~lib/typedarray/Float32Array#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 61 - i32.const 12560 - 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 - i32.const 24 - i32.add - global.set $~lib/memory/__stack_pointer - return - end - i32.const 1360 - i32.const 1632 - i32.const 1865 - i32.const 47 - call $~lib/builtins/abort - unreachable - ) - (func $~lib/typedarray/Float64Array#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 - 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 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 8848 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 8848 - i32.store offset=8 - i32.const 8860 - i32.load - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - i32.load offset=8 - i32.const 3 - i32.shr_u - i32.gt_s - if - i32.const 1360 - i32.const 1632 - i32.const 1865 - i32.const 47 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load offset=4 - local.set $0 - i32.const 8852 - i32.load - local.set $2 - global.get $~lib/memory/__stack_pointer - i32.const 8848 - i32.store offset=8 - i32.const 8860 - i32.load - local.set $3 - loop $for-loop|0 - local.get $1 - local.get $3 - i32.lt_s - if - local.get $0 - local.get $1 - i32.const 3 - i32.shl - i32.add - local.get $2 - 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 - ) - (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 - call $~stack_check - global.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 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $3 - local.get $1 - i32.load offset=12 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 735 - 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 $4 - local.get $1 - local.get $2 - call $~lib/typedarray/Float64Array#__uget - local.tee $5 - f64.ne - if - global.get $~lib/memory/__stack_pointer - i32.const 12736 - i32.store - i32.const 12736 - 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 741 - 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 $~lib/typedarray/Float64Array#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 - 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 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 8928 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 8928 - i32.store offset=8 - i32.const 8940 - i32.load - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - i32.const 3 - i32.add - local.get $0 - i32.load offset=8 - i32.const 3 - i32.shr_u - i32.gt_s - if - i32.const 1360 - i32.const 1632 - i32.const 1865 - i32.const 47 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load offset=4 - i32.const 24 - i32.add - local.set $0 - i32.const 8932 - i32.load - local.set $2 - global.get $~lib/memory/__stack_pointer - i32.const 8928 - i32.store offset=8 - i32.const 8940 - i32.load - local.set $3 - loop $for-loop|0 - local.get $1 - local.get $3 - i32.lt_s - if - local.get $0 - local.get $1 - i32.const 3 - i32.shl - i32.add - local.get $2 - 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|0 - end - end - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/typedarray/Float64Array#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 - 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 - 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 - i32.load offset=8 - i32.const 3 - i32.shr_u - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - i32.const 6 - i32.add - local.get $0 - i32.load offset=8 - i32.const 3 - i32.shr_u - i32.gt_s - if - i32.const 1360 - i32.const 1632 - i32.const 1865 - i32.const 47 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load offset=4 - i32.const 48 - i32.add - local.set $0 - local.get $1 - i32.load offset=4 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $1 - i32.load offset=8 - i32.const 3 - i32.shr_u - local.set $1 - loop $for-loop|0 - local.get $1 - local.get $3 - i32.gt_s - if - local.get $3 - i32.const 3 - i32.shl - local.tee $4 - local.get $0 - i32.add - local.get $2 - local.get $4 - i32.add - i64.load - f64.convert_i64_s - f64.store - local.get $3 - i32.const 1 - i32.add - local.set $3 - 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/Float64Array#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 - 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 - 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 - i32.load offset=8 - i32.const 1 - i32.shr_u - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - i32.const 4 - i32.add - local.get $0 - i32.load offset=8 - i32.const 3 - i32.shr_u - i32.gt_s - if - i32.const 1360 - i32.const 1632 - i32.const 1865 - i32.const 47 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load offset=4 - i32.const 32 - i32.add - local.set $0 - local.get $1 - 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=8 - i32.const 1 - i32.shr_u - local.set $1 - loop $for-loop|0 - local.get $1 - local.get $2 - i32.gt_s - if - local.get $0 - local.get $2 - i32.const 3 - i32.shl - i32.add - local.get $3 - local.get $2 - i32.const 1 - i32.shl - i32.add - i32.load16_s - f64.convert_i32_s - f64.store - 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/Float64Array#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 - 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 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 9104 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 9104 - i32.store offset=8 - i32.const 9116 - i32.load - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - i32.const 7 - i32.add - local.get $0 - i32.load offset=8 - i32.const 3 - i32.shr_u - i32.gt_s - if - i32.const 1360 - i32.const 1632 - i32.const 1865 - i32.const 47 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load offset=4 - i32.const 56 - i32.add - local.set $0 - i32.const 9108 - i32.load - local.set $2 - global.get $~lib/memory/__stack_pointer - i32.const 9104 - i32.store offset=8 - i32.const 9116 - i32.load - local.set $3 - loop $for-loop|0 - local.get $1 - local.get $3 - i32.lt_s - if - local.get $0 - local.get $1 - i32.const 3 - i32.shl - i32.add - local.get $1 - local.get $2 - 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|0 - end - end - global.get $~lib/memory/__stack_pointer - i32.const 12 - 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) - global.get $~lib/memory/__stack_pointer - 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 - i64.const 0 - i64.store offset=8 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=16 - global.get $~lib/memory/__stack_pointer - i32.const 3 - call $~lib/typedarray/Int64Array#constructor - local.tee $3 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - i32.const 0 - i64.const 7 - call $~lib/typedarray/Int64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - i32.const 1 - i64.const 8 - call $~lib/typedarray/Int64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - 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 $1 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 0 - i32.const 100 - 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 101 - call $~lib/typedarray/Uint8Array#__set - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 2 - i32.const 102 - call $~lib/typedarray/Uint8Array#__set - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - 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 8848 - i32.store offset=20 - local.get $0 - call $~lib/typedarray/Float64Array#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 62 - i32.const 12624 - call $~lib/rt/__newArray - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=20 - local.get $0 - local.get $2 - 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 8928 - i32.store offset=20 - local.get $0 - call $~lib/typedarray/Float64Array#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 62 - i32.const 12784 - call $~lib/rt/__newArray - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=20 - local.get $0 - local.get $2 - 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 - local.get $0 - local.get $3 - call $~lib/typedarray/Float64Array#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 62 - i32.const 12896 - call $~lib/rt/__newArray - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=20 - local.get $0 - local.get $2 - 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 $1 - i32.store offset=20 - 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 - 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 - i32.load offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - i32.load offset=8 - i32.const 3 - i32.shr_u - i32.gt_s - if - i32.const 1360 - i32.const 1632 - i32.const 1865 - i32.const 47 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load offset=4 - local.set $3 - local.get $1 - i32.load offset=4 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $1 - i32.load offset=8 - local.set $1 - loop $for-loop|0 - local.get $1 - local.get $5 - i32.gt_s - if - local.get $3 - local.get $5 - i32.const 3 - i32.shl - i32.add - local.get $2 - local.get $5 - i32.add - i32.load8_u - f64.convert_i32_u - f64.store - local.get $5 - i32.const 1 - i32.add - local.set $5 - 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 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=20 - local.get $0 - local.get $4 - call $~lib/typedarray/Float64Array#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 9104 - i32.store offset=20 - local.get $0 - call $~lib/typedarray/Float64Array#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 62 - 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/Float64Array> - global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/typedarray/Uint8ClampedArray#set<~lib/typedarray/Float32Array> (param $0 i32) (param $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 f32) - 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 - 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 - i32.load offset=8 - i32.const 2 - i32.shr_u - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - i32.load offset=8 - local.get $3 - i32.const 1 - i32.add - i32.lt_s - if - i32.const 1360 - i32.const 1632 - i32.const 1865 - i32.const 47 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load offset=4 - i32.const 1 - i32.add - local.set $3 - local.get $1 - i32.load offset=4 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $1 - i32.load offset=8 - i32.const 2 - i32.shr_u - local.set $1 - loop $for-loop|0 - local.get $1 - local.get $2 - i32.gt_s - if - local.get $2 - local.get $3 - i32.add - local.get $0 - local.get $2 - i32.const 2 - i32.shl - i32.add - f32.load - local.tee $4 - local.get $4 - f32.sub - f32.const 0 - f32.eq - if (result i32) - f32.const 0 - f32.const 255 - local.get $4 - f32.min - f32.max - i32.trunc_f32_u - else - i32.const 0 - end - i32.store8 - 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/Uint8ClampedArray#set<~lib/typedarray/Int32Array> (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 - 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 - 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 - i32.load offset=8 - i32.const 2 - i32.shr_u - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - i32.load offset=8 - local.get $3 - i32.const 8 - i32.add - i32.lt_s - if - i32.const 1360 - i32.const 1632 - i32.const 1865 - i32.const 47 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load offset=4 - i32.const 8 - i32.add - local.set $3 - local.get $1 - i32.load offset=4 - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $1 - i32.load offset=8 - i32.const 2 - i32.shr_u - local.set $1 - loop $for-loop|0 - local.get $1 - local.get $2 - i32.gt_s - if - local.get $2 - local.get $3 - i32.add - local.get $4 - local.get $2 - i32.const 2 - i32.shl - i32.add - i32.load - local.tee $0 - i32.const 31 - i32.shr_s - i32.const -1 - i32.xor - local.get $0 - i32.const 255 - local.get $0 - i32.sub - i32.const 31 - i32.shr_s - i32.or - i32.and - i32.store8 - 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/Uint8ClampedArray#set<~lib/typedarray/Uint32Array> (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 - 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 - 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 - i32.load offset=8 - i32.const 2 - i32.shr_u - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - i32.load offset=8 - i32.gt_s - if - i32.const 1360 - i32.const 1632 - i32.const 1865 - i32.const 47 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load offset=4 - local.set $0 - local.get $1 - 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=8 - i32.const 2 - i32.shr_u - local.set $1 - loop $for-loop|0 - local.get $1 - local.get $2 - i32.gt_s - if - local.get $0 - local.get $2 - i32.add - i32.const 255 - local.get $3 - local.get $2 - i32.const 2 - i32.shl - i32.add - i32.load - local.tee $4 - local.get $4 - i32.const 255 - i32.gt_u - select - i32.store8 - 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 $start:std/typedarray - (local $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i64) - (local $6 f32) - (local $7 f64) - (local $8 i32) - (local $9 i64) - (local $10 f32) - (local $11 f64) - 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 - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=8 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=16 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=24 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=32 - i32.const 1280 - call $~lib/rt/itcms/initLazy - global.set $~lib/rt/itcms/pinSpace - i32.const 1312 - call $~lib/rt/itcms/initLazy - global.set $~lib/rt/itcms/toSpace - i32.const 1456 - call $~lib/rt/itcms/initLazy - global.set $~lib/rt/itcms/fromSpace - i32.const 0 - call $std/typedarray/testInstantiate - i32.const 5 - call $std/typedarray/testInstantiate - global.get $~lib/memory/__stack_pointer - i32.const 3 - call $~lib/typedarray/Int32Array#constructor - local.tee $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 - local.get $0 - i32.store offset=4 - local.get $0 - i32.load offset=8 - i32.const 2 - i32.shr_u - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 95 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.load offset=4 - local.get $0 - i32.load - i32.sub - if - i32.const 0 - i32.const 1568 - i32.const 96 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load offset=8 - i32.const 12 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 97 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - 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 98 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 1 - call $~lib/typedarray/Int32Array#__get - i32.const 2 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 99 - 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 100 - 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.const 1 - i32.const 2 - call $~lib/typedarray/Int32Array#subarray - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.load offset=8 - i32.const 2 - i32.shr_u - i32.const 1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 103 - 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 - local.get $0 - i32.load - i32.sub - i32.const 4 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 104 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load offset=8 - i32.const 4 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 105 - 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 0 - call $~lib/typedarray/Int32Array#__get - i32.const 2 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 106 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - 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 7 - call $~lib/typedarray/Float64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 3 - f64.const 6 - call $~lib/typedarray/Float64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 4 - f64.const 5 - call $~lib/typedarray/Float64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 5 - f64.const 4 - call $~lib/typedarray/Float64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 6 - f64.const 3 - call $~lib/typedarray/Float64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 7 - f64.const 8 - call $~lib/typedarray/Float64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.const 2 - i32.const 6 - call $~lib/typedarray/Float64Array#subarray - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.load offset=8 - i32.const 3 - i32.shr_u - i32.const 4 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 122 - 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 - local.get $0 - i32.load - i32.sub - i32.const 16 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 123 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load offset=8 - i32.const 32 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 124 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - 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 4 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - 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 - local.get $0 - local.get $1 - call $~lib/typedarray/Float64Array#sort - 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 - i32.const 0 - call $~lib/typedarray/Float64Array#__get - f64.const 4 - f64.eq - if (result i32) - 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 5 - f64.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/typedarray/Float64Array#__get - f64.const 6 - f64.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/typedarray/Float64Array#__get - f64.const 7 - f64.eq - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 126 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - 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 -32 - 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 256 - call $~lib/typedarray/Uint8ClampedArray#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - call $~lib/typedarray/Uint8ClampedArray#__get - if - i32.const 0 - i32.const 1568 - i32.const 135 - 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 136 - 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 255 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 137 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 5 - 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 - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 3 - i32.const 4 - call $~lib/typedarray/Int8Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 4 - i32.const 5 - 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 1 - i32.const 3 - call $~lib/typedarray/Int8Array#fill - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - i32.const 5 - i32.const 0 - i32.const 15 - i32.const 1728 - call $~lib/rt/__newArray - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $0 - local.get $1 - call $std/typedarray/isInt8ArrayEqual - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 149 - 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 0 - i32.const 0 - i32.const 2147483647 - call $~lib/typedarray/Int8Array#fill - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - i32.const 5 - i32.const 0 - i32.const 15 - i32.const 1808 - call $~lib/rt/__newArray - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $0 - local.get $1 - call $std/typedarray/isInt8ArrayEqual - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 152 - 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 - i32.const 0 - i32.const -3 - call $~lib/typedarray/Int8Array#fill - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - i32.const 5 - i32.const 0 - i32.const 15 - i32.const 1840 - call $~lib/rt/__newArray - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $0 - local.get $1 - call $std/typedarray/isInt8ArrayEqual - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 155 - 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.const -2 - i32.const 2147483647 - call $~lib/typedarray/Int8Array#fill - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - i32.const 5 - i32.const 0 - i32.const 15 - i32.const 1872 - call $~lib/rt/__newArray - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $0 - local.get $1 - call $std/typedarray/isInt8ArrayEqual - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 158 - 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 0 - i32.const 1 - i32.const 0 - call $~lib/typedarray/Int8Array#fill - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - i32.const 5 - i32.const 0 - i32.const 15 - i32.const 1904 - call $~lib/rt/__newArray - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $0 - local.get $1 - call $std/typedarray/isInt8ArrayEqual - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 161 - 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.const 1 - i32.const 4 - call $~lib/typedarray/Int8Array#subarray - local.tee $1 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 0 - i32.const 0 - i32.const 2147483647 - call $~lib/typedarray/Int8Array#fill - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.load offset=8 - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 165 - 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=4 - local.get $1 - i32.load - i32.sub - i32.const 1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 166 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i32.load offset=8 - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 167 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - i32.const 3 - i32.const 0 - i32.const 15 - i32.const 1936 - call $~lib/rt/__newArray - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=8 - local.get $1 - local.get $2 - call $std/typedarray/isInt8ArrayEqual - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 168 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - i32.const 5 - i32.const 0 - i32.const 15 - i32.const 1968 - call $~lib/rt/__newArray - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $0 - local.get $1 - call $std/typedarray/isInt8ArrayEqual - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 169 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 5 - call $~lib/typedarray/Int32Array#constructor - local.tee $0 - i32.store offset=12 - 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 - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 3 - i32.const 4 - call $~lib/typedarray/Int32Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 4 - i32.const 5 - 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 1 - i32.const 3 - call $~lib/typedarray/Int32Array#fill - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - i32.const 5 - i32.const 2 - i32.const 16 - i32.const 2000 - call $~lib/rt/__newArray - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $0 - local.get $1 - call $std/typedarray/isInt32ArrayEqual - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 181 - 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 0 - i32.const 0 - i32.const 2147483647 - call $~lib/typedarray/Int32Array#fill - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - i32.const 5 - i32.const 2 - i32.const 16 - i32.const 2048 - call $~lib/rt/__newArray - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $0 - local.get $1 - call $std/typedarray/isInt32ArrayEqual - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 184 - 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 - i32.const 0 - i32.const -3 - call $~lib/typedarray/Int32Array#fill - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - i32.const 5 - i32.const 2 - i32.const 16 - i32.const 2096 - call $~lib/rt/__newArray - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $0 - local.get $1 - call $std/typedarray/isInt32ArrayEqual - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 187 - 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.const -2 - i32.const 2147483647 - call $~lib/typedarray/Int32Array#fill - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - i32.const 5 - i32.const 2 - i32.const 16 - i32.const 2144 - call $~lib/rt/__newArray - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $0 - local.get $1 - call $std/typedarray/isInt32ArrayEqual - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 190 - 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 0 - i32.const 1 - i32.const 0 - call $~lib/typedarray/Int32Array#fill - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - i32.const 5 - i32.const 2 - i32.const 16 - i32.const 2192 - call $~lib/rt/__newArray - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $0 - local.get $1 - call $std/typedarray/isInt32ArrayEqual - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 193 - 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.const 1 - i32.const 4 - call $~lib/typedarray/Int32Array#subarray - local.tee $1 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 0 - i32.const 0 - i32.const 2147483647 - call $~lib/typedarray/Int32Array#fill - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.load offset=8 - i32.const 2 - i32.shr_u - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 197 - 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=4 - local.get $1 - i32.load - i32.sub - i32.const 4 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 198 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i32.load offset=8 - i32.const 12 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 199 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - i32.const 3 - i32.const 2 - i32.const 16 - i32.const 2240 - call $~lib/rt/__newArray - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=8 - local.get $1 - local.get $2 - call $std/typedarray/isInt32ArrayEqual - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 200 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - i32.const 5 - i32.const 2 - i32.const 16 - i32.const 2272 - call $~lib/rt/__newArray - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $0 - local.get $1 - call $std/typedarray/isInt32ArrayEqual - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 201 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 6 - 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 - 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 - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 3 - i32.const 4 - call $~lib/typedarray/Int8Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 4 - i32.const 5 - call $~lib/typedarray/Int8Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 5 - i32.const 6 - call $~lib/typedarray/Int8Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.const 1 - i32.const 6 - call $~lib/typedarray/Int8Array#subarray - local.tee $0 - i32.store offset=12 - 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 2 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 222 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.load offset=8 - i32.const 5 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 223 - 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 - local.get $0 - i32.load - i32.sub - i32.const 1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 224 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load offset=8 - i32.const 5 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 225 - 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.const 1 - i32.const 5 - call $~lib/typedarray/Int8Array#subarray - local.tee $0 - i32.store - 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 228 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.load offset=8 - i32.const 4 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 229 - 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 - local.get $0 - i32.load - i32.sub - i32.const 2 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 230 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load offset=8 - i32.const 4 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 231 - 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.const 1 - i32.const 4 - call $~lib/typedarray/Int8Array#subarray - 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/Int8Array#__get - i32.const 4 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 234 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.load offset=8 - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 235 - 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 - local.get $0 - i32.load - i32.sub - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 236 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load offset=8 - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 237 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 5 - call $~lib/typedarray/Int32Array#constructor - local.tee $1 - i32.store offset=20 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 0 - 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 2 - i32.const 3 - call $~lib/typedarray/Int32Array#__set - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 3 - i32.const 4 - call $~lib/typedarray/Int32Array#__set - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 4 - i32.const 5 - call $~lib/typedarray/Int32Array#__set - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.const 0 - i32.const 2147483647 - call $~lib/typedarray/Int32Array#slice - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=24 - local.get $1 - i32.const 0 - i32.const 3 - i32.const 2147483647 - call $~lib/typedarray/Int32Array#copyWithin - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - i32.const 5 - i32.const 2 - i32.const 16 - i32.const 2320 - call $~lib/rt/__newArray - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=8 - local.get $1 - local.get $2 - call $std/typedarray/isInt32ArrayEqual - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 248 - 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.const 0 - i32.const 2147483647 - call $~lib/typedarray/Int32Array#slice - local.tee $1 - i32.store offset=20 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=24 - local.get $1 - i32.const 1 - i32.const 3 - i32.const 2147483647 - call $~lib/typedarray/Int32Array#copyWithin - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - i32.const 5 - i32.const 2 - i32.const 16 - i32.const 2368 - call $~lib/rt/__newArray - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=8 - local.get $1 - local.get $2 - call $std/typedarray/isInt32ArrayEqual - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 250 - 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.const 0 - i32.const 2147483647 - call $~lib/typedarray/Int32Array#slice - local.tee $1 - i32.store offset=20 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=24 - local.get $1 - i32.const 1 - i32.const 2 - i32.const 2147483647 - call $~lib/typedarray/Int32Array#copyWithin - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - i32.const 5 - i32.const 2 - i32.const 16 - i32.const 2416 - call $~lib/rt/__newArray - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=8 - local.get $1 - local.get $2 - call $std/typedarray/isInt32ArrayEqual - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 252 - 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.const 0 - i32.const 2147483647 - call $~lib/typedarray/Int32Array#slice - local.tee $1 - i32.store offset=20 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=24 - local.get $1 - i32.const 2 - i32.const 2 - i32.const 2147483647 - call $~lib/typedarray/Int32Array#copyWithin - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - i32.const 5 - i32.const 2 - i32.const 16 - i32.const 2464 - call $~lib/rt/__newArray - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=8 - local.get $1 - local.get $2 - call $std/typedarray/isInt32ArrayEqual - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 254 - 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.const 0 - i32.const 2147483647 - call $~lib/typedarray/Int32Array#slice - local.tee $1 - i32.store offset=20 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=24 - local.get $1 - i32.const 0 - i32.const 3 - i32.const 4 - call $~lib/typedarray/Int32Array#copyWithin - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - i32.const 5 - i32.const 2 - i32.const 16 - i32.const 2512 - call $~lib/rt/__newArray - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=8 - local.get $1 - local.get $2 - call $std/typedarray/isInt32ArrayEqual - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 256 - 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.const 0 - i32.const 2147483647 - call $~lib/typedarray/Int32Array#slice - local.tee $1 - i32.store offset=20 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=24 - local.get $1 - i32.const 1 - i32.const 3 - i32.const 4 - call $~lib/typedarray/Int32Array#copyWithin - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - i32.const 5 - i32.const 2 - i32.const 16 - i32.const 2560 - call $~lib/rt/__newArray - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=8 - local.get $1 - local.get $2 - call $std/typedarray/isInt32ArrayEqual - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 258 - 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.const 0 - i32.const 2147483647 - call $~lib/typedarray/Int32Array#slice - local.tee $1 - i32.store offset=20 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=24 - local.get $1 - i32.const 1 - i32.const 2 - i32.const 4 - call $~lib/typedarray/Int32Array#copyWithin - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - i32.const 5 - i32.const 2 - i32.const 16 - i32.const 2608 - call $~lib/rt/__newArray - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=8 - local.get $1 - local.get $2 - call $std/typedarray/isInt32ArrayEqual - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 260 - 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.const 0 - i32.const 2147483647 - call $~lib/typedarray/Int32Array#slice - local.tee $1 - i32.store offset=20 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=24 - local.get $1 - i32.const 0 - i32.const -2 - i32.const 2147483647 - call $~lib/typedarray/Int32Array#copyWithin - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - i32.const 5 - i32.const 2 - i32.const 16 - i32.const 2656 - call $~lib/rt/__newArray - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=8 - local.get $1 - local.get $2 - call $std/typedarray/isInt32ArrayEqual - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 262 - 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.const 0 - i32.const 2147483647 - call $~lib/typedarray/Int32Array#slice - local.tee $1 - i32.store offset=20 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=24 - local.get $1 - i32.const 0 - i32.const -2 - i32.const -1 - call $~lib/typedarray/Int32Array#copyWithin - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - i32.const 5 - i32.const 2 - i32.const 16 - i32.const 2704 - call $~lib/rt/__newArray - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=8 - local.get $1 - local.get $2 - call $std/typedarray/isInt32ArrayEqual - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 264 - 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.const 0 - i32.const 2147483647 - call $~lib/typedarray/Int32Array#slice - local.tee $1 - i32.store offset=20 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=24 - local.get $1 - i32.const -4 - i32.const -3 - i32.const -2 - call $~lib/typedarray/Int32Array#copyWithin - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - i32.const 5 - i32.const 2 - i32.const 16 - i32.const 2752 - call $~lib/rt/__newArray - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=8 - local.get $1 - local.get $2 - call $std/typedarray/isInt32ArrayEqual - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 266 - 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.const 0 - i32.const 2147483647 - call $~lib/typedarray/Int32Array#slice - local.tee $1 - i32.store offset=20 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=24 - local.get $1 - i32.const -4 - i32.const -3 - i32.const -1 - call $~lib/typedarray/Int32Array#copyWithin - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - i32.const 5 - i32.const 2 - i32.const 16 - i32.const 2800 - call $~lib/rt/__newArray - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=8 - local.get $1 - local.get $2 - call $std/typedarray/isInt32ArrayEqual - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 268 - 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.const 0 - i32.const 2147483647 - call $~lib/typedarray/Int32Array#slice - local.tee $0 - i32.store offset=20 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=24 - local.get $0 - i32.const -4 - i32.const -3 - i32.const 2147483647 - call $~lib/typedarray/Int32Array#copyWithin - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - i32.const 5 - i32.const 2 - i32.const 16 - i32.const 2848 - call $~lib/rt/__newArray - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $0 - local.get $1 - call $std/typedarray/isInt32ArrayEqual - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 270 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 5 - 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 - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 3 - i32.const 4 - call $~lib/typedarray/Int32Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 4 - i32.const 5 - call $~lib/typedarray/Int32Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.const 1 - i32.const 4 - call $~lib/typedarray/Int32Array#subarray - local.tee $2 - i32.store offset=20 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.load offset=8 - i32.const 2 - i32.shr_u - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 282 - 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.load offset=4 - local.get $2 - i32.load - i32.sub - i32.const 4 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 283 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - i32.load offset=8 - i32.const 12 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 284 - 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.const 1 - i32.const 3 - call $~lib/typedarray/Int32Array#slice - local.tee $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 2 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 287 - 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 3 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 288 - 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 - i32.const 2 - i32.shr_u - i32.const 2 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 289 - 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=4 - local.get $1 - i32.load - i32.sub - if - i32.const 0 - i32.const 1568 - i32.const 290 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i32.load offset=8 - i32.const 8 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 291 - 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 1 - i32.const 2 - call $~lib/typedarray/Int32Array#slice - local.tee $1 - i32.store offset=16 - 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 294 - 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 - i32.const 2 - i32.shr_u - i32.const 1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 295 - 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=4 - local.get $1 - i32.load - i32.sub - if - i32.const 0 - i32.const 1568 - i32.const 296 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i32.load offset=8 - i32.const 4 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 297 - 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.const 0 - i32.const 2147483647 - call $~lib/typedarray/Int32Array#slice - local.tee $1 - i32.store offset=28 - local.get $0 - local.get $1 - i32.eq - if - i32.const 0 - i32.const 1568 - i32.const 300 - 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 - i32.const 2 - i32.shr_u - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.load offset=8 - i32.const 2 - i32.shr_u - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 301 - 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=4 - local.get $1 - i32.load - i32.sub - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.load offset=4 - local.get $0 - i32.load - i32.sub - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 302 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i32.load offset=8 - local.get $0 - i32.load offset=8 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 303 - 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 - 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 - 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 - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 2896 - i32.store offset=8 - i32.const 0 - local.set $1 - i32.const 0 - local.set $2 - 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 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 2896 - 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=8 - local.get $0 - i32.load offset=8 - local.set $4 - loop $for-loop|0 - local.get $1 - local.get $4 - i32.lt_s - if - local.get $1 - local.get $3 - i32.add - i32.load8_s - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=12 - i32.const 4 - global.set $~argumentsLength - local.get $2 - local.get $8 - local.get $1 - local.get $0 - i32.const 2896 - i32.load - call_indirect (type $i32_i32_i32_i32_=>_i32) - 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 16 - i32.add - global.set $~lib/memory/__stack_pointer - block $folding-inner6 - block $folding-inner5 - block $folding-inner4 - block $folding-inner3 - block $folding-inner2 - block $folding-inner1 - block $folding-inner0 - local.get $2 - i32.const 255 - i32.and - i32.const 6 - i32.ne - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - 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 - 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 - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 2928 - i32.store offset=8 - local.get $0 - i32.const 2928 - call $~lib/typedarray/Uint8Array#reduce - i32.const 255 - i32.and - i32.const 6 - i32.ne - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - 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 - 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 - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 2960 - i32.store offset=8 - local.get $0 - i32.const 2960 - call $~lib/typedarray/Uint8Array#reduce - i32.const 255 - i32.and - i32.const 6 - i32.ne - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - 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 - 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 - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 2992 - i32.store offset=8 - i32.const 0 - local.set $1 - i32.const 0 - local.set $2 - 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 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 2992 - 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=8 - local.get $0 - i32.load offset=8 - i32.const 1 - i32.shr_u - local.set $4 - loop $for-loop|00 - local.get $1 - local.get $4 - i32.lt_s - if - local.get $3 - local.get $1 - i32.const 1 - i32.shl - i32.add - i32.load16_s - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=12 - i32.const 4 - global.set $~argumentsLength - local.get $2 - local.get $8 - local.get $1 - local.get $0 - i32.const 2992 - i32.load - call_indirect (type $i32_i32_i32_i32_=>_i32) - local.set $2 - 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 16 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $2 - i32.const 65535 - i32.and - i32.const 6 - i32.ne - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - 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 - 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 - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 3024 - i32.store offset=8 - i32.const 0 - local.set $1 - i32.const 0 - local.set $2 - 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 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 3024 - 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=8 - local.get $0 - i32.load offset=8 - i32.const 1 - i32.shr_u - local.set $4 - loop $for-loop|01 - local.get $1 - local.get $4 - i32.lt_s - if - local.get $3 - local.get $1 - i32.const 1 - i32.shl - i32.add - i32.load16_u - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=12 - i32.const 4 - global.set $~argumentsLength - local.get $2 - local.get $8 - local.get $1 - local.get $0 - i32.const 3024 - i32.load - call_indirect (type $i32_i32_i32_i32_=>_i32) - local.set $2 - 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 16 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $2 - i32.const 65535 - i32.and - i32.const 6 - i32.ne - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - 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 - 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 - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 3056 - i32.store offset=8 - i32.const 0 - local.set $1 - i32.const 0 - local.set $2 - 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 - 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.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 - i32.const 2 - i32.shr_u - local.set $4 - loop $for-loop|02 - local.get $1 - local.get $4 - i32.lt_s - if - local.get $3 - local.get $1 - i32.const 2 - i32.shl - i32.add - i32.load - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=12 - i32.const 4 - global.set $~argumentsLength - local.get $2 - local.get $8 - local.get $1 - local.get $0 - i32.const 3056 - i32.load - call_indirect (type $i32_i32_i32_i32_=>_i32) - local.set $2 - 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 16 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $2 - i32.const 6 - i32.ne - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - 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 - 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 - 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 - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 3088 - i32.store offset=8 - i32.const 0 - local.set $1 - i32.const 0 - local.set $2 - 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 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 3088 - 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=8 - local.get $0 - i32.load offset=8 - i32.const 2 - i32.shr_u - local.set $4 - loop $for-loop|03 - local.get $1 - local.get $4 - i32.lt_s - if - local.get $3 - local.get $1 - i32.const 2 - i32.shl - i32.add - i32.load - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=12 - i32.const 4 - global.set $~argumentsLength - local.get $2 - local.get $8 - local.get $1 - local.get $0 - i32.const 3088 - i32.load - call_indirect (type $i32_i32_i32_i32_=>_i32) - local.set $2 - 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 16 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $2 - i32.const 6 - i32.ne - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - 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 - 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 - 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 - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 3120 - i32.store offset=8 - i32.const 0 - local.set $1 - 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 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 3120 - 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=8 - local.get $0 - i32.load offset=8 - i32.const 3 - i32.shr_u - local.set $3 - loop $for-loop|04 - local.get $1 - local.get $3 - i32.lt_s - if - local.get $2 - local.get $1 - i32.const 3 - i32.shl - i32.add - i64.load - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=12 - i32.const 4 - global.set $~argumentsLength - local.get $5 - local.get $9 - local.get $1 - local.get $0 - i32.const 3120 - i32.load - call_indirect (type $i64_i64_i32_i32_=>_i64) - local.set $5 - 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 16 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $5 - i64.const 6 - i64.ne - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - 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 - 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 - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 3152 - i32.store offset=8 - i32.const 0 - local.set $1 - i64.const 0 - local.set $5 - 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 - 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.load offset=4 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - i32.load offset=8 - i32.const 3 - i32.shr_u - local.set $3 - loop $for-loop|05 - local.get $1 - local.get $3 - i32.lt_s - if - local.get $2 - local.get $1 - i32.const 3 - i32.shl - i32.add - i64.load - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=12 - i32.const 4 - global.set $~argumentsLength - local.get $5 - local.get $9 - local.get $1 - local.get $0 - i32.const 3152 - i32.load - call_indirect (type $i64_i64_i32_i32_=>_i64) - local.set $5 - local.get $1 - i32.const 1 - i32.add - local.set $1 - br $for-loop|05 - end - end - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $5 - i64.const 6 - i64.ne - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - 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 - 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 - 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 - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 3184 - i32.store offset=8 - i32.const 0 - local.set $1 - 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 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 3184 - 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=8 - local.get $0 - i32.load offset=8 - i32.const 2 - i32.shr_u - local.set $3 - loop $for-loop|06 - local.get $1 - local.get $3 - i32.lt_s - if - local.get $2 - local.get $1 - i32.const 2 - i32.shl - i32.add - f32.load - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=12 - i32.const 4 - global.set $~argumentsLength - local.get $6 - local.get $10 - local.get $1 - local.get $0 - i32.const 3184 - i32.load - call_indirect (type $f32_f32_i32_i32_=>_f32) - local.set $6 - local.get $1 - i32.const 1 - i32.add - local.set $1 - br $for-loop|06 - end - end - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - f32.const 6 - f32.ne - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - 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 - 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 - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 3216 - i32.store offset=8 - i32.const 0 - local.set $1 - 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 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 3216 - 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=8 - local.get $0 - i32.load offset=8 - i32.const 3 - i32.shr_u - local.set $3 - loop $for-loop|07 - local.get $1 - local.get $3 - i32.lt_s - if - local.get $2 - local.get $1 - i32.const 3 - i32.shl - i32.add - f64.load - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=12 - i32.const 4 - global.set $~argumentsLength - local.get $7 - local.get $11 - local.get $1 - local.get $0 - i32.const 3216 - i32.load - call_indirect (type $f64_f64_i32_i32_=>_f64) - local.set $7 - local.get $1 - i32.const 1 - i32.add - local.set $1 - br $for-loop|07 - end - end - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $7 - f64.const 6 - f64.ne - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - 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> - 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 - 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 - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 3248 - i32.store offset=8 - i32.const 0 - local.set $2 - 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 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 3248 - 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=8 - local.get $0 - i32.load offset=8 - i32.const 1 - i32.sub - local.set $1 - loop $for-loop|08 - local.get $1 - i32.const 0 - i32.ge_s - if - local.get $1 - local.get $3 - i32.add - i32.load8_s - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=12 - i32.const 4 - global.set $~argumentsLength - local.get $2 - local.get $4 - local.get $1 - local.get $0 - i32.const 3248 - i32.load - call_indirect (type $i32_i32_i32_i32_=>_i32) - local.set $2 - local.get $1 - i32.const 1 - i32.sub - local.set $1 - br $for-loop|08 - end - end - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $2 - i32.const 255 - i32.and - i32.const 6 - i32.ne - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - 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 - 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 - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 3280 - i32.store offset=8 - local.get $0 - i32.const 3280 - call $~lib/typedarray/Uint8Array#reduceRight - i32.const 255 - i32.and - i32.const 6 - i32.ne - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - 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 - 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 - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 3312 - i32.store offset=8 - local.get $0 - i32.const 3312 - call $~lib/typedarray/Uint8Array#reduceRight - i32.const 255 - i32.and - i32.const 6 - i32.ne - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - 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 - 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 - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 3344 - i32.store offset=8 - i32.const 0 - local.set $2 - 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 - 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.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 - i32.const 1 - i32.shr_u - i32.const 1 - i32.sub - local.set $1 - loop $for-loop|09 - local.get $1 - i32.const 0 - i32.ge_s - if - local.get $3 - local.get $1 - i32.const 1 - i32.shl - i32.add - i32.load16_s - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=12 - i32.const 4 - global.set $~argumentsLength - local.get $2 - local.get $4 - local.get $1 - local.get $0 - i32.const 3344 - i32.load - call_indirect (type $i32_i32_i32_i32_=>_i32) - local.set $2 - local.get $1 - i32.const 1 - i32.sub - local.set $1 - br $for-loop|09 - end - end - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $2 - i32.const 65535 - i32.and - i32.const 6 - i32.ne - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - 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 - 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 - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 3376 - i32.store offset=8 - i32.const 0 - local.set $2 - 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 - 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.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 - i32.const 1 - i32.shr_u - i32.const 1 - i32.sub - local.set $1 - loop $for-loop|010 - local.get $1 - i32.const 0 - i32.ge_s - if - local.get $3 - local.get $1 - i32.const 1 - i32.shl - i32.add - i32.load16_u - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=12 - i32.const 4 - global.set $~argumentsLength - local.get $2 - local.get $4 - local.get $1 - local.get $0 - i32.const 3376 - i32.load - call_indirect (type $i32_i32_i32_i32_=>_i32) - local.set $2 - local.get $1 - i32.const 1 - i32.sub - local.set $1 - br $for-loop|010 - end - end - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $2 - i32.const 65535 - i32.and - i32.const 6 - i32.ne - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - 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 - 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 - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 3408 - i32.store offset=8 - i32.const 0 - local.set $2 - 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 - 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.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 - i32.const 2 - i32.shr_u - i32.const 1 - i32.sub - local.set $1 - loop $for-loop|011 - local.get $1 - i32.const 0 - i32.ge_s - if - local.get $3 - local.get $1 - i32.const 2 - i32.shl - i32.add - i32.load - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=12 - i32.const 4 - global.set $~argumentsLength - local.get $2 - local.get $4 - local.get $1 - local.get $0 - i32.const 3408 - i32.load - call_indirect (type $i32_i32_i32_i32_=>_i32) - local.set $2 - local.get $1 - i32.const 1 - i32.sub - local.set $1 - br $for-loop|011 - end - end - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $2 - i32.const 6 - i32.ne - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - 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 - 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 - 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 - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 3440 - i32.store offset=8 - i32.const 0 - local.set $2 - 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 - 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.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 - i32.const 2 - i32.shr_u - i32.const 1 - i32.sub - local.set $1 - loop $for-loop|012 - local.get $1 - i32.const 0 - i32.ge_s - if - local.get $3 - local.get $1 - i32.const 2 - i32.shl - i32.add - i32.load - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=12 - i32.const 4 - global.set $~argumentsLength - local.get $2 - local.get $4 - local.get $1 - local.get $0 - i32.const 3440 - i32.load - call_indirect (type $i32_i32_i32_i32_=>_i32) - local.set $2 - local.get $1 - i32.const 1 - i32.sub - local.set $1 - 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 $2 - i32.const 6 - i32.ne - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - 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 - 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 - 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 - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 3472 - i32.store offset=8 - i64.const 0 - local.set $5 - 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 - 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.load offset=4 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - i32.load offset=8 - i32.const 3 - i32.shr_u - i32.const 1 - i32.sub - local.set $1 - loop $for-loop|013 - local.get $1 - i32.const 0 - i32.ge_s - if - local.get $2 - local.get $1 - i32.const 3 - i32.shl - i32.add - i64.load - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=12 - i32.const 4 - global.set $~argumentsLength - local.get $5 - local.get $9 - local.get $1 - local.get $0 - i32.const 3472 - i32.load - call_indirect (type $i64_i64_i32_i32_=>_i64) - local.set $5 - local.get $1 - i32.const 1 - i32.sub - local.set $1 - br $for-loop|013 - end - end - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $5 - i64.const 6 - i64.ne - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - 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 - 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 - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 3504 - i32.store offset=8 - i64.const 0 - local.set $5 - 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 - 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.load offset=4 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - i32.load offset=8 - i32.const 3 - i32.shr_u - i32.const 1 - i32.sub - local.set $1 - loop $for-loop|014 - local.get $1 - i32.const 0 - i32.ge_s - if - local.get $2 - local.get $1 - i32.const 3 - i32.shl - i32.add - i64.load - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=12 - i32.const 4 - global.set $~argumentsLength - local.get $5 - local.get $9 - local.get $1 - local.get $0 - i32.const 3504 - i32.load - call_indirect (type $i64_i64_i32_i32_=>_i64) - local.set $5 - local.get $1 - i32.const 1 - i32.sub - local.set $1 - br $for-loop|014 - end - end - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $5 - i64.const 6 - i64.ne - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - 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 - 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 - 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 - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 3536 - i32.store offset=8 - f32.const 0 - local.set $6 - 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 - 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.load offset=4 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - i32.load offset=8 - i32.const 2 - i32.shr_u - i32.const 1 - i32.sub - local.set $1 - loop $for-loop|015 - local.get $1 - i32.const 0 - i32.ge_s - if - local.get $2 - local.get $1 - i32.const 2 - i32.shl - i32.add - f32.load - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=12 - i32.const 4 - global.set $~argumentsLength - local.get $6 - local.get $10 - local.get $1 - local.get $0 - i32.const 3536 - i32.load - call_indirect (type $f32_f32_i32_i32_=>_f32) - local.set $6 - local.get $1 - i32.const 1 - i32.sub - local.set $1 - 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 $6 - f32.const 6 - f32.ne - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - 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 - 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 - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 3568 - i32.store offset=8 - f64.const 0 - local.set $7 - 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 - 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.load offset=4 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - i32.load offset=8 - i32.const 3 - i32.shr_u - i32.const 1 - i32.sub - local.set $1 - loop $for-loop|016 - local.get $1 - i32.const 0 - i32.ge_s - if - local.get $2 - local.get $1 - i32.const 3 - i32.shl - i32.add - f64.load - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=12 - i32.const 4 - global.set $~argumentsLength - local.get $7 - local.get $11 - local.get $1 - local.get $0 - i32.const 3568 - i32.load - call_indirect (type $f64_f64_i32_i32_=>_f64) - local.set $7 - local.get $1 - i32.const 1 - i32.sub - local.set $1 - br $for-loop|016 - end - end - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $7 - f64.const 6 - f64.ne - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - 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> - 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 - 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 2 - 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 4 - 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 6 - call $~lib/typedarray/Int8Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 4304 - i32.store offset=8 - local.get $0 - i32.const 4304 - call $~lib/typedarray/Int8Array#some - i32.eqz - br_if $folding-inner2 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 4336 - i32.store offset=8 - local.get $0 - i32.const 4336 - call $~lib/typedarray/Int8Array#some - br_if $folding-inner3 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - 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 - 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 2 - 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 4 - 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 6 - call $~lib/typedarray/Uint8Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 4368 - i32.store offset=8 - local.get $0 - i32.const 4368 - call $~lib/typedarray/Uint8Array#some - i32.eqz - br_if $folding-inner2 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 4400 - i32.store offset=8 - local.get $0 - i32.const 4400 - call $~lib/typedarray/Uint8Array#some - br_if $folding-inner3 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - 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 - 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 2 - 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 4 - 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 6 - call $~lib/typedarray/Uint8ClampedArray#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 4432 - i32.store offset=8 - local.get $0 - i32.const 4432 - call $~lib/typedarray/Uint8Array#some - i32.eqz - br_if $folding-inner2 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 4464 - i32.store offset=8 - local.get $0 - i32.const 4464 - call $~lib/typedarray/Uint8Array#some - br_if $folding-inner3 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - 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 - 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 2 - 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 4 - 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 6 - call $~lib/typedarray/Int16Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 4496 - i32.store offset=8 - local.get $0 - i32.const 4496 - call $~lib/typedarray/Int16Array#some - i32.eqz - br_if $folding-inner2 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 4528 - i32.store offset=8 - local.get $0 - i32.const 4528 - call $~lib/typedarray/Int16Array#some - br_if $folding-inner3 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - 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 - 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 2 - 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 4 - 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 6 - call $~lib/typedarray/Uint16Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 4560 - i32.store offset=8 - local.get $0 - i32.const 4560 - call $~lib/typedarray/Uint16Array#some - i32.eqz - br_if $folding-inner2 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 4592 - i32.store offset=8 - local.get $0 - i32.const 4592 - call $~lib/typedarray/Uint16Array#some - br_if $folding-inner3 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - 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 - 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 2 - 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 4 - 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 6 - call $~lib/typedarray/Int32Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 4624 - i32.store offset=8 - local.get $0 - i32.const 4624 - call $~lib/typedarray/Int32Array#some - i32.eqz - br_if $folding-inner2 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 4656 - i32.store offset=8 - local.get $0 - i32.const 4656 - call $~lib/typedarray/Int32Array#some - br_if $folding-inner3 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - 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 - 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 2 - 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 4 - 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 6 - call $~lib/typedarray/Uint32Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 4688 - i32.store offset=8 - local.get $0 - i32.const 4688 - call $~lib/typedarray/Uint32Array#some - i32.eqz - br_if $folding-inner2 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 4720 - i32.store offset=8 - local.get $0 - i32.const 4720 - call $~lib/typedarray/Uint32Array#some - br_if $folding-inner3 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - 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 - 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 2 - 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 4 - 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 6 - call $~lib/typedarray/Int64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 4752 - i32.store offset=8 - local.get $0 - i32.const 4752 - call $~lib/typedarray/Int64Array#some - i32.eqz - br_if $folding-inner2 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 4784 - i32.store offset=8 - local.get $0 - i32.const 4784 - call $~lib/typedarray/Int64Array#some - br_if $folding-inner3 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - 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 - 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 2 - 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 4 - 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 6 - call $~lib/typedarray/Uint64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 4816 - i32.store offset=8 - local.get $0 - i32.const 4816 - call $~lib/typedarray/Uint64Array#some - i32.eqz - br_if $folding-inner2 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 4848 - i32.store offset=8 - local.get $0 - i32.const 4848 - call $~lib/typedarray/Uint64Array#some - br_if $folding-inner3 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - 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 - 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 2 - 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 4 - 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 6 - call $~lib/typedarray/Float32Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 4880 - i32.store offset=8 - local.get $0 - i32.const 4880 - call $~lib/typedarray/Float32Array#some - i32.eqz - br_if $folding-inner2 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 4912 - i32.store offset=8 - local.get $0 - i32.const 4912 - call $~lib/typedarray/Float32Array#some - br_if $folding-inner3 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - 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 - 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 2 - 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 4 - 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 6 - call $~lib/typedarray/Float64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 4944 - i32.store offset=8 - local.get $0 - i32.const 4944 - call $~lib/typedarray/Float64Array#some - i32.eqz - br_if $folding-inner2 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 4976 - i32.store offset=8 - local.get $0 - i32.const 4976 - call $~lib/typedarray/Float64Array#some - br_if $folding-inner3 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - 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 - 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 - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 5008 - i32.store offset=8 - local.get $0 - i32.const 5008 - call $~lib/typedarray/Int8Array#findIndex - i32.const 1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 461 - 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 - i32.const 5040 - i32.store offset=8 - local.get $0 - i32.const 5040 - call $~lib/typedarray/Int8Array#findIndex - i32.const -1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 463 - 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 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 - 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 - 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/typedarray/Uint8Array#findIndex - i32.const 1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 461 - 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 - i32.const 5104 - i32.store offset=8 - local.get $0 - i32.const 5104 - call $~lib/typedarray/Uint8Array#findIndex - i32.const -1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 463 - 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 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 - 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 - 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/typedarray/Uint8Array#findIndex - i32.const 1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 461 - 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 - i32.const 5168 - i32.store offset=8 - local.get $0 - i32.const 5168 - call $~lib/typedarray/Uint8Array#findIndex - i32.const -1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 463 - 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 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 - 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 - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 5200 - i32.store offset=8 - local.get $0 - i32.const 5200 - call $~lib/typedarray/Int16Array#findIndex - i32.const 1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 461 - 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 - i32.const 5232 - i32.store offset=8 - local.get $0 - i32.const 5232 - call $~lib/typedarray/Int16Array#findIndex - i32.const -1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 463 - 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 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 - 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 - 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/typedarray/Uint16Array#findIndex - i32.const 1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 461 - 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 - i32.const 5296 - i32.store offset=8 - local.get $0 - i32.const 5296 - call $~lib/typedarray/Uint16Array#findIndex - i32.const -1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 463 - 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 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 - 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 - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 5328 - i32.store offset=8 - local.get $0 - i32.const 5328 - call $~lib/typedarray/Int32Array#findIndex - i32.const 1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 461 - 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 - i32.const 5360 - i32.store offset=8 - local.get $0 - i32.const 5360 - call $~lib/typedarray/Int32Array#findIndex - i32.const -1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 463 - 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 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 - 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 - 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 - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 5392 - i32.store offset=8 - local.get $0 - i32.const 5392 - call $~lib/typedarray/Uint32Array#findIndex - i32.const 1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 461 - 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 - i32.const 5424 - i32.store offset=8 - local.get $0 - i32.const 5424 - call $~lib/typedarray/Uint32Array#findIndex - i32.const -1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 463 - 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 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 - 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 - 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 - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 5456 - i32.store offset=8 - local.get $0 - i32.const 5456 - call $~lib/typedarray/Int64Array#findIndex - i32.const 1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 461 - 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 - i32.const 5488 - i32.store offset=8 - local.get $0 - i32.const 5488 - call $~lib/typedarray/Int64Array#findIndex - i32.const -1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 463 - 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 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 - 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 - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 5520 - i32.store offset=8 - local.get $0 - i32.const 5520 - call $~lib/typedarray/Uint64Array#findIndex - i32.const 1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 461 - 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 - i32.const 5552 - i32.store offset=8 - local.get $0 - i32.const 5552 - call $~lib/typedarray/Uint64Array#findIndex - i32.const -1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 463 - 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 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 - 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 - 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 - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 5584 - i32.store offset=8 - local.get $0 - i32.const 5584 - call $~lib/typedarray/Float32Array#findIndex - i32.const 1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 461 - 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 - i32.const 5616 - i32.store offset=8 - local.get $0 - i32.const 5616 - call $~lib/typedarray/Float32Array#findIndex - i32.const -1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 463 - 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 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 - 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 - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 5648 - i32.store offset=8 - local.get $0 - i32.const 5648 - call $~lib/typedarray/Float64Array#findIndex - i32.const 1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 461 - 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 - i32.const 5680 - i32.store offset=8 - local.get $0 - i32.const 5680 - call $~lib/typedarray/Float64Array#findIndex - i32.const -1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 463 - 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 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 - 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 2 - 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 4 - 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 6 - call $~lib/typedarray/Int8Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 5712 - i32.store offset=8 - local.get $0 - i32.const 5712 - call $~lib/typedarray/Int8Array#every - i32.eqz - br_if $folding-inner4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 5744 - i32.store offset=8 - local.get $0 - i32.const 5744 - call $~lib/typedarray/Int8Array#every - br_if $folding-inner5 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - 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 - 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 2 - 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 4 - 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 6 - call $~lib/typedarray/Uint8Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 5776 - i32.store offset=8 - local.get $0 - i32.const 5776 - call $~lib/typedarray/Uint8Array#every - i32.eqz - br_if $folding-inner4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 5808 - i32.store offset=8 - local.get $0 - i32.const 5808 - call $~lib/typedarray/Uint8Array#every - br_if $folding-inner5 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - 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 - 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 2 - 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 4 - 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 6 - call $~lib/typedarray/Uint8ClampedArray#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 5840 - i32.store offset=8 - local.get $0 - i32.const 5840 - call $~lib/typedarray/Uint8Array#every - i32.eqz - br_if $folding-inner4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 5872 - i32.store offset=8 - local.get $0 - i32.const 5872 - call $~lib/typedarray/Uint8Array#every - br_if $folding-inner5 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - 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 - 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 2 - 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 4 - 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 6 - call $~lib/typedarray/Int16Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 5904 - i32.store offset=8 - local.get $0 - i32.const 5904 - call $~lib/typedarray/Int16Array#every - i32.eqz - br_if $folding-inner4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 5936 - i32.store offset=8 - local.get $0 - i32.const 5936 - call $~lib/typedarray/Int16Array#every - br_if $folding-inner5 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - 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 - 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 2 - 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 4 - 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 6 - call $~lib/typedarray/Uint16Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 5968 - i32.store offset=8 - local.get $0 - i32.const 5968 - call $~lib/typedarray/Uint16Array#every - i32.eqz - br_if $folding-inner4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 6000 - i32.store offset=8 - local.get $0 - i32.const 6000 - call $~lib/typedarray/Uint16Array#every - br_if $folding-inner5 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - 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 - 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 2 - 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 4 - 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 6 - call $~lib/typedarray/Int32Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 6032 - i32.store offset=8 - local.get $0 - i32.const 6032 - call $~lib/typedarray/Int32Array#every - i32.eqz - br_if $folding-inner4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 6064 - i32.store offset=8 - local.get $0 - i32.const 6064 - call $~lib/typedarray/Int32Array#every - br_if $folding-inner5 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - 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 - 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 2 - 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 4 - 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 6 - call $~lib/typedarray/Uint32Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 6096 - i32.store offset=8 - local.get $0 - i32.const 6096 - call $~lib/typedarray/Uint32Array#every - i32.eqz - br_if $folding-inner4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 6128 - i32.store offset=8 - local.get $0 - i32.const 6128 - call $~lib/typedarray/Uint32Array#every - br_if $folding-inner5 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - 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 - 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 2 - 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 4 - 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 6 - call $~lib/typedarray/Int64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 6160 - i32.store offset=8 - local.get $0 - i32.const 6160 - call $~lib/typedarray/Int64Array#every - i32.eqz - br_if $folding-inner4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 6192 - i32.store offset=8 - local.get $0 - i32.const 6192 - call $~lib/typedarray/Int64Array#every - br_if $folding-inner5 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - 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 - 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 2 - 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 4 - 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 6 - call $~lib/typedarray/Uint64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 6224 - i32.store offset=8 - local.get $0 - i32.const 6224 - call $~lib/typedarray/Uint64Array#every - i32.eqz - br_if $folding-inner4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 6256 - i32.store offset=8 - local.get $0 - i32.const 6256 - call $~lib/typedarray/Uint64Array#every - br_if $folding-inner5 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - 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 - 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 2 - 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 4 - 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 6 - call $~lib/typedarray/Float32Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 6288 - i32.store offset=8 - local.get $0 - i32.const 6288 - call $~lib/typedarray/Float32Array#every - i32.eqz - br_if $folding-inner4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 6320 - i32.store offset=8 - local.get $0 - i32.const 6320 - call $~lib/typedarray/Float32Array#every - br_if $folding-inner5 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - 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 - 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 2 - 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 4 - 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 6 - call $~lib/typedarray/Float64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 6352 - i32.store offset=8 - local.get $0 - i32.const 6352 - call $~lib/typedarray/Float64Array#every - i32.eqz - br_if $folding-inner4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 6384 - i32.store offset=8 - local.get $0 - i32.const 6384 - call $~lib/typedarray/Float64Array#every - br_if $folding-inner5 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - 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> - 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 - i32.const 0 - global.set $std/typedarray/forEachCallCount - global.get $~lib/memory/__stack_pointer - i32.const 3 - call $~lib/typedarray/Int32Array#constructor - local.tee $0 - i32.store - local.get $0 - global.set $std/typedarray/forEachSelf - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 6448 - i32.store offset=8 - local.get $0 - i32.const 0 - i32.const 6448 - i32.const 0 - call $~lib/array/Array#__get - call $~lib/typedarray/Int32Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 6448 - i32.store offset=8 - local.get $0 - i32.const 1 - i32.const 6448 - i32.const 1 - call $~lib/array/Array#__get - call $~lib/typedarray/Int32Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 6448 - i32.store offset=8 - local.get $0 - i32.const 2 - i32.const 6448 - i32.const 2 - call $~lib/array/Array#__get - call $~lib/typedarray/Int32Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 6656 - i32.store offset=8 - i32.const 0 - local.set $1 - 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 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 6656 - 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=8 - local.get $0 - i32.load offset=8 - i32.const 2 - i32.shr_u - local.set $3 - loop $for-loop|017 - local.get $1 - local.get $3 - i32.lt_s - if - local.get $2 - local.get $1 - i32.const 2 - i32.shl - i32.add - i32.load - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=12 - i32.const 3 - global.set $~argumentsLength - local.get $1 - local.get $0 - i32.const 6656 - i32.load - call_indirect (type $i32_i32_i32_=>_none) - local.get $1 - i32.const 1 - i32.add - local.set $1 - br $for-loop|017 - end - end - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $std/typedarray/forEachCallCount - i32.const 3 - i32.ne - br_if $folding-inner6 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - 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 - global.set $std/typedarray/forEachCallCount - global.get $~lib/memory/__stack_pointer - i32.const 3 - call $~lib/typedarray/Uint32Array#constructor - local.tee $0 - i32.store - local.get $0 - global.set $std/typedarray/forEachSelf - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 6448 - i32.store offset=8 - local.get $0 - i32.const 0 - i32.const 6448 - i32.const 0 - call $~lib/array/Array#__get - call $~lib/typedarray/Uint32Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 6448 - i32.store offset=8 - local.get $0 - i32.const 1 - i32.const 6448 - i32.const 1 - call $~lib/array/Array#__get - call $~lib/typedarray/Uint32Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 6448 - i32.store offset=8 - local.get $0 - i32.const 2 - i32.const 6448 - i32.const 2 - call $~lib/array/Array#__get - call $~lib/typedarray/Uint32Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 6688 - i32.store offset=8 - i32.const 0 - local.set $1 - 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 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 6688 - 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=8 - local.get $0 - i32.load offset=8 - i32.const 2 - i32.shr_u - local.set $3 - loop $for-loop|018 - local.get $1 - local.get $3 - i32.lt_s - if - local.get $2 - local.get $1 - i32.const 2 - i32.shl - i32.add - i32.load - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=12 - i32.const 3 - global.set $~argumentsLength - local.get $1 - local.get $0 - i32.const 6688 - i32.load - call_indirect (type $i32_i32_i32_=>_none) - local.get $1 - i32.const 1 - i32.add - local.set $1 - br $for-loop|018 - end - end - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $std/typedarray/forEachCallCount - i32.const 3 - i32.ne - br_if $folding-inner6 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - 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 1 - 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 - local.get $0 - i32.const 0 - f64.const nan:0x8000000000000 - call $~lib/typedarray/Float64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - f64.const nan:0x8000000000000 - 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 - i32.const 0 - local.set $1 - 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 $~lib/typedarray/INCLUDES<~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 0 - local.get $0 - i32.load offset=8 - i32.const 3 - i32.shr_u - local.tee $3 - i32.eqz - i32.const 1 - local.get $3 - select - br_if $~lib/typedarray/INCLUDES<~lib/typedarray/Float64Array,f64>|inlined.0 - drop - local.get $0 - i32.load offset=4 - local.set $0 - loop $while-continue|0 - local.get $1 - local.get $3 - i32.lt_s - if - i32.const 1 - i32.const 1 - local.get $0 - local.get $1 - i32.const 3 - i32.shl - i32.add - f64.load - local.tee $7 - local.get $7 - f64.ne - local.get $7 - f64.const nan:0x8000000000000 - f64.eq - select - br_if $~lib/typedarray/INCLUDES<~lib/typedarray/Float64Array,f64>|inlined.0 - drop - local.get $1 - i32.const 1 - i32.add - local.set $1 - br $while-continue|0 - end - end - i32.const 0 - end - 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 1568 - i32.const 631 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 1 - call $~lib/typedarray/Float32Array#constructor - local.tee $0 - i32.store offset=28 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - f32.const nan:0x400000 - call $~lib/typedarray/Float32Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - f32.const nan:0x400000 - i32.const 0 - call $~lib/typedarray/Float32Array#indexOf - i32.const -1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 636 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - 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 - 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 $~lib/typedarray/INCLUDES<~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 0 - local.get $0 - i32.load offset=8 - i32.const 2 - i32.shr_u - local.tee $3 - i32.eqz - i32.const 1 - local.get $3 - select - br_if $~lib/typedarray/INCLUDES<~lib/typedarray/Float32Array,f32>|inlined.0 - drop - local.get $0 - i32.load offset=4 - local.set $0 - loop $while-continue|019 - local.get $1 - local.get $3 - i32.lt_s - if - i32.const 1 - i32.const 1 - local.get $0 - local.get $1 - i32.const 2 - i32.shl - i32.add - f32.load - local.tee $6 - local.get $6 - f32.ne - local.get $6 - f32.const nan:0x400000 - f32.eq - select - br_if $~lib/typedarray/INCLUDES<~lib/typedarray/Float32Array,f32>|inlined.0 - drop - local.get $1 - i32.const 1 - i32.add - local.set $1 - br $while-continue|019 - end - end - i32.const 0 - end - 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 1568 - i32.const 637 - i32.const 3 - 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> - global.get $~lib/memory/__stack_pointer - i32.const 0 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $0 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - i32.const 2 - global.set $~argumentsLength - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.const 0 - call $~lib/typedarray/Uint8Array.wrap@varargs - local.tee $0 - i32.store offset=28 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.load offset=8 - if - i32.const 0 - i32.const 1568 - i32.const 714 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 2 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $0 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - i32.const 2 - global.set $~argumentsLength - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.const 2 - call $~lib/typedarray/Uint8Array.wrap@varargs - local.tee $0 - i32.store offset=28 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.load offset=8 - if - i32.const 0 - i32.const 1568 - i32.const 718 - i32.const 3 - 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/testTypedArraySet<~lib/typedarray/Int8Array> - call $std/typedarray/testTypedArraySet<~lib/typedarray/Uint8Array> - call $std/typedarray/testTypedArraySet<~lib/typedarray/Uint8ClampedArray> - call $std/typedarray/testTypedArraySet<~lib/typedarray/Int16Array> - call $std/typedarray/testTypedArraySet<~lib/typedarray/Uint16Array> - call $std/typedarray/testTypedArraySet<~lib/typedarray/Int32Array> - call $std/typedarray/testTypedArraySet<~lib/typedarray/Uint32Array> - call $std/typedarray/testTypedArraySet<~lib/typedarray/Int64Array> - call $std/typedarray/testTypedArraySet<~lib/typedarray/Uint64Array> - call $std/typedarray/testTypedArraySet<~lib/typedarray/Float32Array> - call $std/typedarray/testTypedArraySet<~lib/typedarray/Float64Array> - global.get $~lib/memory/__stack_pointer - i32.const 10 - call $~lib/typedarray/Uint8ClampedArray#constructor - local.tee $0 - i32.store offset=28 - global.get $~lib/memory/__stack_pointer - i32.const 3 - call $~lib/typedarray/Float32Array#constructor - local.tee $2 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 0 - f32.const 400 - call $~lib/typedarray/Float32Array#__set - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 1 - f32.const nan:0x400000 - call $~lib/typedarray/Float32Array#__set - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 2 - f32.const inf - call $~lib/typedarray/Float32Array#__set - global.get $~lib/memory/__stack_pointer - i32.const 4 - call $~lib/typedarray/Int64Array#constructor - local.tee $1 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 0 - i64.const -10 - 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 100 - call $~lib/typedarray/Int64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 2 - i64.const 10 - call $~lib/typedarray/Int64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 3 - i64.const 300 - call $~lib/typedarray/Int64Array#__set - global.get $~lib/memory/__stack_pointer - i32.const 2 - call $~lib/typedarray/Int32Array#constructor - local.tee $3 - i32.store offset=20 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - i32.const 0 - i32.const 300 - call $~lib/typedarray/Int32Array#__set - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - i32.const 1 - i32.const -1 - call $~lib/typedarray/Int32Array#__set - 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 - local.get $2 - call $~lib/typedarray/Uint8ClampedArray#set<~lib/typedarray/Float32Array> - 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 - i32.const 4 - call $~lib/typedarray/Uint8ClampedArray#set<~lib/typedarray/Int64Array> - 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=8 - local.get $0 - local.get $3 - call $~lib/typedarray/Uint8ClampedArray#set<~lib/typedarray/Int32Array> - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - i32.const 10 - i32.const 0 - i32.const 63 - i32.const 13120 - call $~lib/rt/__newArray - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $0 - local.get $1 - call $std/typedarray/valuesEqual<~lib/typedarray/Uint8ClampedArray> - global.get $~lib/memory/__stack_pointer - i32.const 4 - call $~lib/typedarray/Uint32Array#constructor - local.tee $1 - i32.store offset=32 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 0 - 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 300 - call $~lib/typedarray/Uint32Array#__set - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 2 - i32.const 100 - call $~lib/typedarray/Uint32Array#__set - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - 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 - 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 $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/Uint8ClampedArray#set<~lib/typedarray/Uint32Array> - 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 - local.get $2 - i32.const 5 - call $~lib/typedarray/Uint8ClampedArray#set<~lib/typedarray/Int16Array> - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - i32.const 10 - i32.const 0 - i32.const 63 - i32.const 13152 - call $~lib/rt/__newArray - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $0 - local.get $1 - call $std/typedarray/valuesEqual<~lib/typedarray/Uint8ClampedArray> - i32.const 30108 - global.set $~lib/memory/__stack_pointer - global.get $~lib/rt/itcms/state - i32.const 0 - i32.gt_s - if - loop $while-continue|020 - global.get $~lib/rt/itcms/state - if - call $~lib/rt/itcms/step - drop - br $while-continue|020 - 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 36 - i32.add - global.set $~lib/memory/__stack_pointer - return - end - i32.const 0 - i32.const 1568 - i32.const 323 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 0 - i32.const 1568 - i32.const 367 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 0 - i32.const 1568 - i32.const 438 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 0 - i32.const 1568 - i32.const 440 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 0 - i32.const 1568 - i32.const 484 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 0 - i32.const 1568 - i32.const 486 - i32.const 3 - call $~lib/builtins/abort - unreachable + call $~lib/string/String#substring + local.set $0 + br $folding-inner0 + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + return end - i32.const 0 - i32.const 1568 - i32.const 518 - i32.const 3 - 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 ) - (func $~lib/arraybuffer/ArrayBufferView#constructor (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/util/number/itoa64 (param $0 i64) (result i32) + (local $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 call $~stack_check global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store + i32.const 0 + i32.store local.get $0 - i32.eqz + i64.eqz if global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 7296 + return end + i64.const 0 local.get $0 - i32.const 0 - call $~lib/arraybuffer/ArrayBufferView#set:buffer + i64.sub local.get $0 - i32.const 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 + i64.const 63 + i64.shr_u + i32.wrap_i64 + local.tee $3 + select + local.tee $0 + i64.const 4294967295 + i64.le_u if - i32.const 1056 - i32.const 1104 - i32.const 18 - i32.const 57 - call $~lib/builtins/abort - unreachable + local.get $0 + i32.wrap_i64 + local.tee $4 + call $~lib/util/number/decimalCount32 + local.get $3 + i32.add + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $2 + i32.store + local.get $2 + local.get $4 + local.get $1 + call $~lib/util/number/utoa_dec_simple + else + local.get $0 + call $~lib/util/number/decimalCount64High + local.get $3 + i32.add + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $2 + i32.store + local.get $2 + local.get $0 + local.get $1 + call $~lib/util/number/utoa_dec_simple + end + local.get $3 + if + local.get $2 + i32.const 45 + i32.store16 end global.get $~lib/memory/__stack_pointer - local.get $1 - local.get $2 - i32.shl - local.tee $2 - i32.const 0 - call $~lib/rt/itcms/__new - local.tee $1 - i32.store offset=4 - local.get $1 - i32.const 0 - local.get $2 - call $~lib/memory/memory.fill - local.get $0 - local.get $1 - call $~lib/arraybuffer/ArrayBufferView#set:buffer - local.get $0 - local.get $1 - i32.store offset=4 - local.get $0 - local.get $2 - i32.store offset=8 - 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 $2 ) - (func $~lib/rt/__newArray (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (func $~lib/util/string/joinIntegerArray (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.sub @@ -51632,54 +39760,139 @@ 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 $4 - local.set $5 - local.get $4 + i32.const 1 + i32.sub + local.tee $3 i32.const 0 - call $~lib/rt/itcms/__new - local.set $1 - local.get $3 + i32.lt_s if + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 7072 + return + end + block $folding-inner0 + local.get $3 + i32.eqz + if + local.get $0 + i64.load + i32.wrap_i64 + i64.extend_i32_s + call $~lib/util/number/itoa64 + local.set $0 + br $folding-inner0 + end + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.const 7420 + i32.load + i32.const 1 + i32.shr_u + local.tee $4 + i32.const 21 + i32.add + i32.mul + i32.const 21 + i32.add + local.tee $6 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $1 + i32.store + loop $for-loop|0 + local.get $3 + local.get $5 + i32.gt_s + if + local.get $1 + local.get $2 + i32.const 1 + i32.shl + i32.add + local.get $0 + local.get $5 + 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 $4 + if + local.get $1 + local.get $2 + i32.const 1 + i32.shl + i32.add + i32.const 7424 + local.get $4 + i32.const 1 + i32.shl + call $~lib/memory/memory.copy + local.get $2 + local.get $4 + i32.add + local.set $2 + end + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|0 + end + end + local.get $6 local.get $1 + local.get $2 + i32.const 1 + i32.shl + i32.add + local.get $0 local.get $3 - local.get $5 - call $~lib/memory/memory.copy + 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 + local.get $1 + local.get $0 + call $~lib/string/String#substring + local.set $0 + br $folding-inner0 + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + return end - local.get $1 - local.tee $3 - i32.store - i32.const 16 - local.get $2 - 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 + local.get $0 ) - (func $~lib/util/number/itoa32 (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 4 i32.sub @@ -51688,47 +39901,185 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - local.get $0 - i32.eqz + 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 4 i32.add global.set $~lib/memory/__stack_pointer - i32.const 7296 + i32.const 7072 return end - i32.const 0 - local.get $0 - i32.sub - local.get $0 - local.get $0 - i32.const 31 - i32.shr_u - local.tee $1 - select - local.tee $2 - call $~lib/util/number/decimalCount32 - local.get $1 - i32.add - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.const 1 - i32.shl - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - local.get $0 - local.get $2 - local.get $3 - call $~lib/util/number/utoa_dec_simple - local.get $1 - if + block $folding-inner0 + local.get $4 + 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 + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + block $__inlined_func$~lib/util/number/utoa64 + 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 7296 + local.set $0 + br $__inlined_func$~lib/util/number/utoa64 + end + local.get $3 + i64.const 4294967295 + i64.le_u + if + local.get $3 + i32.wrap_i64 + local.tee $2 + call $~lib/util/number/decimalCount32 + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + local.get $0 + local.get $2 + local.get $1 + call $~lib/util/number/utoa_dec_simple + else + local.get $3 + call $~lib/util/number/decimalCount64High + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + local.get $0 + local.get $3 + local.get $1 + call $~lib/util/number/utoa_dec_simple + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + end + br $folding-inner0 + end + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.const 7420 + i32.load + i32.const 1 + i32.shr_u + local.tee $5 + i32.const 20 + i32.add + i32.mul + i32.const 20 + i32.add + local.tee $7 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $1 + i32.store + loop $for-loop|0 + local.get $4 + local.get $6 + i32.gt_s + if + local.get $1 + local.get $2 + i32.const 1 + i32.shl + i32.add + local.get $0 + local.get $6 + 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 $5 + if + local.get $1 + local.get $2 + i32.const 1 + i32.shl + i32.add + i32.const 7424 + local.get $5 + i32.const 1 + i32.shl + call $~lib/memory/memory.copy + local.get $2 + local.get $5 + i32.add + local.set $2 + end + local.get $6 + i32.const 1 + i32.add + local.set $6 + br $for-loop|0 + end + end + local.get $7 + local.get $1 + local.get $2 + i32.const 1 + i32.shl + i32.add local.get $0 - i32.const 45 - i32.store16 + local.get $4 + 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 + local.get $1 + local.get $0 + call $~lib/string/String#substring + local.set $0 + br $folding-inner0 + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + return end global.get $~lib/memory/__stack_pointer i32.const 4 @@ -51736,7 +40087,7 @@ global.set $~lib/memory/__stack_pointer local.get $0 ) - (func $~lib/util/number/utoa32 (param $0 i32) (result i32) + (func $~lib/util/number/dtoa (param $0 f64) (result i32) (local $1 i32) (local $2 i32) global.get $~lib/memory/__stack_pointer @@ -51748,41 +40099,73 @@ i32.const 0 i32.store local.get $0 - i32.eqz + 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 7504 + 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 7536 + return + end global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - i32.const 7296 + i32.const 7568 + i32.const 7616 + local.get $0 + f64.const 0 + f64.lt + select return end + i32.const 7648 local.get $0 - call $~lib/util/number/decimalCount32 + 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 - i32.shl - i32.const 1 call $~lib/rt/itcms/__new local.tee $2 i32.store local.get $2 - local.get $0 + i32.const 7648 local.get $1 - call $~lib/util/number/utoa_dec_simple + call $~lib/memory/memory.copy global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer local.get $2 ) - (func $~lib/util/number/itoa64 (param $0 i64) (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 $4 i32) + (local $5 i32) + (local $6 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -51791,83 +40174,139 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - local.get $0 - i64.eqz + local.get $1 + i32.const 1 + i32.sub + local.tee $3 + i32.const 0 + i32.lt_s if global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - i32.const 7296 + i32.const 7072 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 $3 - select - local.tee $0 - i64.const 4294967295 - i64.le_u - if - local.get $0 - i32.wrap_i64 - local.tee $4 - call $~lib/util/number/decimalCount32 + block $folding-inner0 local.get $3 - i32.add - local.set $1 + i32.eqz + if + local.get $0 + f32.load + f64.promote_f32 + call $~lib/util/number/dtoa + local.set $0 + br $folding-inner0 + end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $3 + i32.const 7420 + i32.load + i32.const 1 + i32.shr_u + local.tee $4 + i32.const 28 + i32.add + i32.mul + i32.const 28 + i32.add + local.tee $6 i32.const 1 i32.shl i32.const 1 call $~lib/rt/itcms/__new - local.tee $2 + local.tee $1 i32.store - local.get $2 - local.get $4 + loop $for-loop|0 + local.get $3 + local.get $5 + i32.gt_s + if + local.get $1 + local.get $2 + i32.const 1 + i32.shl + i32.add + local.get $0 + local.get $5 + i32.const 2 + i32.shl + i32.add + f32.load + f64.promote_f32 + call $~lib/util/number/dtoa_buffered + local.get $2 + i32.add + local.set $2 + local.get $4 + if + local.get $1 + local.get $2 + i32.const 1 + i32.shl + i32.add + i32.const 7424 + local.get $4 + i32.const 1 + i32.shl + call $~lib/memory/memory.copy + local.get $2 + local.get $4 + i32.add + local.set $2 + end + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|0 + end + end + local.get $6 local.get $1 - call $~lib/util/number/utoa_dec_simple - else + local.get $2 + i32.const 1 + i32.shl + i32.add local.get $0 - call $~lib/util/number/decimalCount64High local.get $3 - i32.add - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.const 1 + i32.const 2 i32.shl - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $2 - i32.store + i32.add + f32.load + f64.promote_f32 + call $~lib/util/number/dtoa_buffered local.get $2 - local.get $0 + i32.add + local.tee $0 + i32.gt_s + if + local.get $1 + local.get $0 + call $~lib/string/String#substring + local.set $0 + br $folding-inner0 + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer local.get $1 - call $~lib/util/number/utoa_dec_simple - end - local.get $3 - if - local.get $2 - i32.const 45 - i32.store16 + return end global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 + local.get $0 ) - (func $~lib/util/number/dtoa (param $0 f64) (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 $4 i32) + (local $5 i32) + (local $6 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -51876,67 +40315,129 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - local.get $0 - f64.const 0 - f64.eq + local.get $1 + i32.const 1 + i32.sub + local.tee $3 + i32.const 0 + i32.lt_s if global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - i32.const 7504 + i32.const 7072 return end - local.get $0 - local.get $0 - f64.sub - f64.const 0 - f64.ne - if - local.get $0 + block $folding-inner0 + local.get $3 + i32.eqz + if + local.get $0 + f64.load + call $~lib/util/number/dtoa + local.set $0 + br $folding-inner0 + end + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.const 7420 + i32.load + i32.const 1 + i32.shr_u + local.tee $4 + i32.const 28 + i32.add + i32.mul + i32.const 28 + i32.add + local.tee $6 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $1 + i32.store + loop $for-loop|0 + local.get $3 + local.get $5 + i32.gt_s + if + local.get $1 + local.get $2 + i32.const 1 + i32.shl + i32.add + local.get $0 + local.get $5 + 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 $4 + if + local.get $1 + local.get $2 + i32.const 1 + i32.shl + i32.add + i32.const 7424 + local.get $4 + i32.const 1 + i32.shl + call $~lib/memory/memory.copy + local.get $2 + local.get $4 + i32.add + local.set $2 + end + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|0 + end + end + local.get $6 + local.get $1 + local.get $2 + i32.const 1 + i32.shl + i32.add local.get $0 - f64.ne + local.get $3 + 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 - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 7536 - return + local.get $1 + local.get $0 + call $~lib/string/String#substring + local.set $0 + br $folding-inner0 end global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - i32.const 7568 - i32.const 7616 - local.get $0 - f64.const 0 - f64.lt - select + local.get $1 return end - i32.const 7648 - 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 - local.get $2 - i32.const 7648 - local.get $1 - call $~lib/memory/memory.copy global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 + local.get $0 ) (func $~lib/arraybuffer/ArrayBuffer#constructor (param $0 i32) (result i32) (local $1 i32) @@ -51975,4 +40476,174 @@ global.set $~lib/memory/__stack_pointer local.get $1 ) + (func $~lib/typedarray/Uint8Array.wrap (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 + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + 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 1826 + 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 1835 + i32.const 7 + call $~lib/builtins/abort + unreachable + end + local.set $2 + else + local.get $3 + local.get $1 + local.get $2 + i32.add + i32.lt_s + if + i32.const 1056 + i32.const 1632 + i32.const 1840 + i32.const 7 + call $~lib/builtins/abort + unreachable + end + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 4 + call $~lib/rt/itcms/__new + local.tee $3 + i32.store + 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 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 + ) + (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 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 $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 $3 + i32.const 0 + call $~lib/rt/itcms/__new + local.tee $2 + i32.store + local.get $2 + local.get $0 + local.get $1 + i32.add + local.get $3 + call $~lib/memory/memory.copy + 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/std/typedarray.untouched.wat b/tests/compiler/std/typedarray.untouched.wat index 5aa6311073..ccfab5f05a 100644 --- a/tests/compiler/std/typedarray.untouched.wat +++ b/tests/compiler/std/typedarray.untouched.wat @@ -2828,2173 +2828,3061 @@ i32.const 3 i32.shr_u ) - (func $~lib/typedarray/Int32Array#__set (param $0 i32) (param $1 i32) (param $2 i32) - local.get $1 + (func $std/typedarray/testInstantiate (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 44 + 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 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=16 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=24 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=32 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=40 + global.get $~lib/memory/__stack_pointer + i32.const 0 local.get $0 - i32.load offset=8 - i32.const 2 - i32.shr_u - i32.ge_u + call $~lib/typedarray/Int8Array#constructor + local.tee $1 + i32.store + local.get $1 + call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + i32.const 0 + i32.eq + i32.eqz if - i32.const 336 - i32.const 608 - i32.const 710 - i32.const 64 + i32.const 0 + i32.const 544 + i32.const 32 + i32.const 3 call $~lib/builtins/abort unreachable end - local.get $0 - i32.load offset=4 local.get $1 - i32.const 2 - i32.shl - i32.add - local.get $2 - i32.store - ) - (func $~lib/typedarray/Int32Array#__get (param $0 i32) (param $1 i32) (result i32) + i32.load offset=8 + local.get $0 + global.get $~lib/typedarray/Int8Array.BYTES_PER_ELEMENT + i32.mul + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 33 + i32.const 3 + call $~lib/builtins/abort + unreachable + end local.get $1 + call $~lib/typedarray/Int8Array#get:length + local.get $0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 34 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 local.get $0 + call $~lib/typedarray/Uint8Array#constructor + local.tee $2 + i32.store offset=4 + local.get $2 + call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 37 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 i32.load offset=8 - i32.const 2 - i32.shr_u - i32.ge_u + local.get $0 + global.get $~lib/typedarray/Uint8Array.BYTES_PER_ELEMENT + i32.mul + i32.eq + i32.eqz if - i32.const 336 - i32.const 608 - i32.const 699 - i32.const 64 + i32.const 0 + i32.const 544 + i32.const 38 + i32.const 3 call $~lib/builtins/abort unreachable end + local.get $2 + call $~lib/typedarray/Uint8Array#get:length local.get $0 - i32.load offset=4 - local.get $1 - i32.const 2 - i32.shl - i32.add - i32.load - ) - (func $~lib/typedarray/Float64Array#__set (param $0 i32) (param $1 i32) (param $2 f64) - local.get $1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 39 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 local.get $0 + call $~lib/typedarray/Uint8ClampedArray#constructor + local.tee $3 + i32.store offset=8 + local.get $3 + call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 42 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $3 i32.load offset=8 - i32.const 3 - i32.shr_u - i32.ge_u + local.get $0 + global.get $~lib/typedarray/Uint8Array.BYTES_PER_ELEMENT + i32.mul + i32.eq + i32.eqz if - i32.const 336 - i32.const 608 - i32.const 1385 - i32.const 64 + i32.const 0 + i32.const 544 + i32.const 43 + i32.const 3 call $~lib/builtins/abort unreachable end + local.get $3 + call $~lib/typedarray/Uint8ClampedArray#get:length local.get $0 - i32.load offset=4 - local.get $1 - i32.const 3 - i32.shl - i32.add - local.get $2 - f64.store - ) - (func $~lib/util/sort/insertionSort (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 f64) - (local $6 i32) - (local $7 i32) - (local $8 f64) - (local $9 i32) + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 44 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer i32.const 0 - local.set $3 - loop $for-loop|0 - local.get $3 - local.get $1 - i32.lt_s - local.set $4 - local.get $4 - if - local.get $0 - local.get $3 - i32.const 3 - i32.shl - i32.add - f64.load - local.set $5 - local.get $3 - i32.const 1 - i32.sub - local.set $6 - block $while-break|1 - loop $while-continue|1 - local.get $6 - i32.const 0 - i32.ge_s - local.set $7 - local.get $7 - if - local.get $0 - local.get $6 - i32.const 3 - i32.shl - i32.add - f64.load - local.set $8 - local.get $5 - local.get $8 - i32.const 2 - global.set $~argumentsLength - local.get $2 - i32.load - call_indirect (type $f64_f64_=>_i32) - i32.const 0 - i32.lt_s - if - local.get $0 - local.get $6 - local.tee $9 - i32.const 1 - i32.sub - local.set $6 - local.get $9 - i32.const 1 - i32.add - i32.const 3 - i32.shl - i32.add - local.get $8 - f64.store - else - br $while-break|1 - end - br $while-continue|1 - end - end - end - local.get $0 - local.get $6 - i32.const 1 - i32.add - i32.const 3 - i32.shl - i32.add - local.get $5 - f64.store - local.get $3 - i32.const 1 - i32.add - local.set $3 - br $for-loop|0 - end + local.get $0 + call $~lib/typedarray/Int16Array#constructor + local.tee $4 + i32.store offset=12 + local.get $4 + call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 47 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $4 + i32.load offset=8 + local.get $0 + global.get $~lib/typedarray/Int16Array.BYTES_PER_ELEMENT + i32.mul + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 48 + i32.const 3 + call $~lib/builtins/abort + unreachable end - ) - (func $~lib/util/sort/weakHeapSort (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 f64) - (local $11 i32) - (local $12 f64) - local.get $1 - i32.const 31 - i32.add - i32.const 5 - i32.shr_u - i32.const 2 - i32.shl - local.set $3 - local.get $3 - call $~lib/rt/tlsf/__alloc - local.set $4 local.get $4 + call $~lib/typedarray/Int16Array#get:length + local.get $0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 49 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer i32.const 0 - local.get $3 - call $~lib/memory/memory.fill - local.get $1 - i32.const 1 - i32.sub - local.set $5 - loop $for-loop|0 - local.get $5 + local.get $0 + call $~lib/typedarray/Uint16Array#constructor + local.tee $5 + i32.store offset=16 + local.get $5 + call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + i32.const 0 + i32.eq + i32.eqz + if i32.const 0 - i32.gt_s - local.set $6 - local.get $6 - if - local.get $5 - local.set $7 - loop $while-continue|1 - local.get $7 - i32.const 1 - i32.and - local.get $4 - local.get $7 - i32.const 6 - i32.shr_u - i32.const 2 - i32.shl - i32.add - i32.load - local.get $7 - i32.const 1 - i32.shr_s - i32.const 31 - i32.and - i32.shr_u - i32.const 1 - i32.and - i32.eq - local.set $8 - local.get $8 - if - local.get $7 - i32.const 1 - i32.shr_s - local.set $7 - br $while-continue|1 - end - end - local.get $7 - i32.const 1 - i32.shr_s - local.set $8 - local.get $0 - local.get $8 - i32.const 3 - i32.shl - i32.add - f64.load - local.set $9 - local.get $0 - local.get $5 - i32.const 3 - i32.shl - i32.add - f64.load - local.set $10 - local.get $9 - local.get $10 - i32.const 2 - global.set $~argumentsLength - local.get $2 - i32.load - call_indirect (type $f64_f64_=>_i32) - i32.const 0 - i32.lt_s - if - local.get $4 - local.get $5 - i32.const 5 - i32.shr_u - i32.const 2 - i32.shl - i32.add - local.get $4 - local.get $5 - i32.const 5 - i32.shr_u - i32.const 2 - i32.shl - i32.add - i32.load - i32.const 1 - local.get $5 - i32.const 31 - i32.and - i32.shl - i32.xor - i32.store - local.get $0 - local.get $5 - i32.const 3 - i32.shl - i32.add - local.get $9 - f64.store - local.get $0 - local.get $8 - i32.const 3 - i32.shl - i32.add - local.get $10 - f64.store - end - local.get $5 - i32.const 1 - i32.sub - local.set $5 - br $for-loop|0 - end + i32.const 544 + i32.const 52 + i32.const 3 + call $~lib/builtins/abort + unreachable end - local.get $1 - i32.const 1 - i32.sub - local.set $5 - loop $for-loop|2 - local.get $5 - i32.const 2 - i32.ge_s - local.set $6 - local.get $6 - if - local.get $0 - f64.load - local.set $10 - local.get $0 - local.get $0 - local.get $5 - i32.const 3 - i32.shl - i32.add - f64.load - f64.store - local.get $0 - local.get $5 - i32.const 3 - i32.shl - i32.add - local.get $10 - f64.store - i32.const 1 - local.set $8 - loop $while-continue|3 - local.get $8 - i32.const 1 - i32.shl - local.get $4 - local.get $8 - i32.const 5 - i32.shr_u - i32.const 2 - i32.shl - i32.add - i32.load - local.get $8 - i32.const 31 - i32.and - i32.shr_u - i32.const 1 - i32.and - i32.add - local.tee $7 - local.get $5 - i32.lt_s - local.set $11 - local.get $11 - if - local.get $7 - local.set $8 - br $while-continue|3 - end - end - loop $while-continue|4 - local.get $8 - i32.const 0 - i32.gt_s - local.set $11 - local.get $11 - if - local.get $0 - f64.load - local.set $10 - local.get $0 - local.get $8 - i32.const 3 - i32.shl - i32.add - f64.load - local.set $9 - local.get $10 - local.get $9 - i32.const 2 - global.set $~argumentsLength - local.get $2 - i32.load - call_indirect (type $f64_f64_=>_i32) - i32.const 0 - i32.lt_s - if - local.get $4 - local.get $8 - i32.const 5 - i32.shr_u - i32.const 2 - i32.shl - i32.add - local.get $4 - local.get $8 - i32.const 5 - i32.shr_u - i32.const 2 - i32.shl - i32.add - i32.load - i32.const 1 - local.get $8 - i32.const 31 - i32.and - i32.shl - i32.xor - i32.store - local.get $0 - local.get $8 - i32.const 3 - i32.shl - i32.add - local.get $10 - f64.store - local.get $0 - local.get $9 - f64.store - end - local.get $8 - i32.const 1 - i32.shr_s - local.set $8 - br $while-continue|4 - end - end - local.get $5 - i32.const 1 - i32.sub - local.set $5 - br $for-loop|2 - end - end - local.get $4 - call $~lib/rt/tlsf/__free + local.get $5 + i32.load offset=8 local.get $0 - f64.load offset=8 - local.set $12 + global.get $~lib/typedarray/Uint16Array.BYTES_PER_ELEMENT + i32.mul + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 53 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $5 + call $~lib/typedarray/Uint16Array#get:length local.get $0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 54 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 local.get $0 - f64.load - f64.store offset=8 + call $~lib/typedarray/Int32Array#constructor + local.tee $6 + i32.store offset=20 + local.get $6 + call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 57 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $6 + i32.load offset=8 local.get $0 - local.get $12 - f64.store - ) - (func $~lib/util/sort/COMPARATOR~anonymous|0 (param $0 f64) (param $1 f64) (result i32) - (local $2 i64) - (local $3 i64) + global.get $~lib/typedarray/Int32Array.BYTES_PER_ELEMENT + i32.mul + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 58 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $6 + call $~lib/typedarray/Int32Array#get:length local.get $0 - i64.reinterpret_f64 - local.set $2 - local.get $1 - i64.reinterpret_f64 - local.set $3 - local.get $2 - local.get $2 - i64.const 63 - i64.shr_s - i64.const 1 - i64.shr_u - i64.xor - local.set $2 - local.get $3 - local.get $3 - i64.const 63 - i64.shr_s - i64.const 1 - i64.shr_u - i64.xor - local.set $3 - local.get $2 - local.get $3 - i64.gt_s - local.get $2 - local.get $3 - i64.lt_s - i32.sub - ) - (func $~lib/typedarray/Float64Array#__get (param $0 i32) (param $1 i32) (result f64) - local.get $1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 59 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 local.get $0 + call $~lib/typedarray/Uint32Array#constructor + local.tee $7 + i32.store offset=24 + local.get $7 + call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 62 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $7 i32.load offset=8 - i32.const 3 - i32.shr_u - i32.ge_u + local.get $0 + global.get $~lib/typedarray/Uint32Array.BYTES_PER_ELEMENT + i32.mul + i32.eq + i32.eqz if - i32.const 336 - i32.const 608 - i32.const 1374 + i32.const 0 + i32.const 544 + i32.const 63 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $7 + call $~lib/typedarray/Uint32Array#get:length + local.get $0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 i32.const 64 + i32.const 3 call $~lib/builtins/abort unreachable end + global.get $~lib/memory/__stack_pointer + i32.const 0 local.get $0 - i32.load offset=4 - local.get $1 - i32.const 3 - i32.shl + call $~lib/typedarray/Int64Array#constructor + local.tee $8 + i32.store offset=28 + local.get $8 + call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 67 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $8 + i32.load offset=8 + local.get $0 + global.get $~lib/typedarray/Int64Array.BYTES_PER_ELEMENT + i32.mul + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 68 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $8 + call $~lib/typedarray/Int64Array#get:length + local.get $0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 69 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + local.get $0 + call $~lib/typedarray/Uint64Array#constructor + local.tee $9 + i32.store offset=32 + local.get $9 + call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 72 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $9 + i32.load offset=8 + local.get $0 + global.get $~lib/typedarray/Uint64Array.BYTES_PER_ELEMENT + i32.mul + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 73 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $9 + call $~lib/typedarray/Uint64Array#get:length + local.get $0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 74 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + local.get $0 + call $~lib/typedarray/Float32Array#constructor + local.tee $10 + i32.store offset=36 + local.get $10 + call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 77 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $10 + i32.load offset=8 + local.get $0 + global.get $~lib/typedarray/Float32Array.BYTES_PER_ELEMENT + i32.mul + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 78 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $10 + call $~lib/typedarray/Float32Array#get:length + local.get $0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 79 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + local.get $0 + call $~lib/typedarray/Float64Array#constructor + local.tee $11 + i32.store offset=40 + local.get $11 + call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 82 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $11 + i32.load offset=8 + local.get $0 + global.get $~lib/typedarray/Float64Array.BYTES_PER_ELEMENT + i32.mul + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 83 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $11 + call $~lib/typedarray/Float64Array#get:length + local.get $0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 84 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 44 i32.add - f64.load + global.set $~lib/memory/__stack_pointer ) - (func $~lib/typedarray/Uint8ClampedArray#__set (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/typedarray/Int32Array#__set (param $0 i32) (param $1 i32) (param $2 i32) local.get $1 local.get $0 i32.load offset=8 + i32.const 2 + i32.shr_u i32.ge_u if i32.const 336 i32.const 608 - i32.const 305 - i32.const 45 + i32.const 710 + i32.const 64 call $~lib/builtins/abort unreachable end local.get $0 i32.load offset=4 local.get $1 + i32.const 2 + i32.shl i32.add local.get $2 - i32.const 31 - i32.shr_s - i32.const -1 - i32.xor - i32.const 255 - local.get $2 - i32.sub - i32.const 31 - i32.shr_s - local.get $2 - i32.or - i32.and - i32.store8 + i32.store ) - (func $~lib/typedarray/Uint8ClampedArray#__get (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Int32Array#__get (param $0 i32) (param $1 i32) (result i32) local.get $1 local.get $0 i32.load offset=8 + i32.const 2 + i32.shr_u i32.ge_u if i32.const 336 i32.const 608 - i32.const 294 - i32.const 45 + i32.const 699 + i32.const 64 call $~lib/builtins/abort unreachable end local.get $0 i32.load offset=4 local.get $1 + i32.const 2 + i32.shl i32.add - i32.load8_u + i32.load ) - (func $~lib/typedarray/Int8Array#__set (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/typedarray/Float64Array#__set (param $0 i32) (param $1 i32) (param $2 f64) local.get $1 local.get $0 i32.load offset=8 + i32.const 3 + i32.shr_u i32.ge_u if i32.const 336 i32.const 608 - i32.const 35 - i32.const 45 + i32.const 1385 + i32.const 64 call $~lib/builtins/abort unreachable end local.get $0 i32.load offset=4 local.get $1 - i32.add + i32.const 3 + i32.shl + i32.add local.get $2 - i32.store8 + f64.store ) - (func $~lib/util/memory/memcpy (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/util/sort/insertionSort (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) - (local $5 i32) + (local $5 f64) (local $6 i32) - loop $while-continue|0 - local.get $2 - if (result i32) - local.get $1 - i32.const 3 - i32.and - else - i32.const 0 - end - local.set $5 - local.get $5 + (local $7 i32) + (local $8 f64) + (local $9 i32) + i32.const 0 + local.set $3 + loop $for-loop|0 + local.get $3 + local.get $1 + i32.lt_s + local.set $4 + local.get $4 if local.get $0 - local.tee $6 - i32.const 1 + local.get $3 + i32.const 3 + i32.shl i32.add - local.set $0 + f64.load + local.set $5 + local.get $3 + i32.const 1 + i32.sub + local.set $6 + block $while-break|1 + loop $while-continue|1 + local.get $6 + i32.const 0 + i32.ge_s + local.set $7 + local.get $7 + if + local.get $0 + local.get $6 + i32.const 3 + i32.shl + i32.add + f64.load + local.set $8 + local.get $5 + local.get $8 + i32.const 2 + global.set $~argumentsLength + local.get $2 + i32.load + call_indirect (type $f64_f64_=>_i32) + i32.const 0 + i32.lt_s + if + local.get $0 + local.get $6 + local.tee $9 + i32.const 1 + i32.sub + local.set $6 + local.get $9 + i32.const 1 + i32.add + i32.const 3 + i32.shl + i32.add + local.get $8 + f64.store + else + br $while-break|1 + end + br $while-continue|1 + end + end + end + local.get $0 local.get $6 - local.get $1 - local.tee $6 i32.const 1 i32.add - local.set $1 - local.get $6 - i32.load8_u - i32.store8 - local.get $2 + i32.const 3 + i32.shl + i32.add + local.get $5 + f64.store + local.get $3 i32.const 1 - i32.sub - local.set $2 - br $while-continue|0 + i32.add + local.set $3 + br $for-loop|0 end end - local.get $0 - i32.const 3 - i32.and + ) + (func $~lib/util/sort/weakHeapSort (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 f64) + (local $11 i32) + (local $12 f64) + local.get $1 + i32.const 31 + i32.add + i32.const 5 + i32.shr_u + i32.const 2 + i32.shl + local.set $3 + local.get $3 + call $~lib/rt/tlsf/__alloc + local.set $4 + local.get $4 i32.const 0 - i32.eq - if - loop $while-continue|1 - local.get $2 - i32.const 16 - i32.ge_u - local.set $5 + local.get $3 + call $~lib/memory/memory.fill + local.get $1 + i32.const 1 + i32.sub + local.set $5 + loop $for-loop|0 + local.get $5 + i32.const 0 + i32.gt_s + local.set $6 + local.get $6 + if local.get $5 - if - local.get $0 - local.get $1 - i32.load - i32.store - local.get $0 - i32.const 4 - i32.add - local.get $1 - i32.const 4 + local.set $7 + loop $while-continue|1 + local.get $7 + i32.const 1 + i32.and + local.get $4 + local.get $7 + i32.const 6 + i32.shr_u + i32.const 2 + i32.shl i32.add i32.load - i32.store - local.get $0 - i32.const 8 + local.get $7 + i32.const 1 + i32.shr_s + i32.const 31 + i32.and + i32.shr_u + i32.const 1 + i32.and + i32.eq + local.set $8 + local.get $8 + if + local.get $7 + i32.const 1 + i32.shr_s + local.set $7 + br $while-continue|1 + end + end + local.get $7 + i32.const 1 + i32.shr_s + local.set $8 + local.get $0 + local.get $8 + i32.const 3 + i32.shl + i32.add + f64.load + local.set $9 + local.get $0 + local.get $5 + i32.const 3 + i32.shl + i32.add + f64.load + local.set $10 + local.get $9 + local.get $10 + i32.const 2 + global.set $~argumentsLength + local.get $2 + i32.load + call_indirect (type $f64_f64_=>_i32) + i32.const 0 + i32.lt_s + if + local.get $4 + local.get $5 + i32.const 5 + i32.shr_u + i32.const 2 + i32.shl i32.add - local.get $1 - i32.const 8 + local.get $4 + local.get $5 + i32.const 5 + i32.shr_u + i32.const 2 + i32.shl i32.add i32.load + i32.const 1 + local.get $5 + i32.const 31 + i32.and + i32.shl + i32.xor i32.store local.get $0 - i32.const 12 - i32.add - local.get $1 - i32.const 12 - i32.add - i32.load - i32.store - local.get $1 - i32.const 16 + local.get $5 + i32.const 3 + i32.shl i32.add - local.set $1 + local.get $9 + f64.store local.get $0 - i32.const 16 + local.get $8 + i32.const 3 + i32.shl i32.add - local.set $0 - local.get $2 - i32.const 16 - i32.sub - local.set $2 - br $while-continue|1 + local.get $10 + f64.store end + local.get $5 + i32.const 1 + i32.sub + local.set $5 + br $for-loop|0 end - local.get $2 - i32.const 8 - i32.and - if - local.get $0 - local.get $1 - i32.load - i32.store - local.get $0 - i32.const 4 - i32.add - local.get $1 - i32.const 4 - i32.add - i32.load - i32.store - local.get $0 - i32.const 8 - i32.add - local.set $0 - local.get $1 - i32.const 8 - i32.add - local.set $1 - end - local.get $2 - i32.const 4 - i32.and - if - local.get $0 - local.get $1 - i32.load - i32.store - local.get $0 - i32.const 4 - i32.add - local.set $0 - local.get $1 - i32.const 4 - i32.add - local.set $1 - end - local.get $2 + end + local.get $1 + i32.const 1 + i32.sub + local.set $5 + loop $for-loop|2 + local.get $5 i32.const 2 - i32.and + i32.ge_s + local.set $6 + local.get $6 if local.get $0 - local.get $1 - i32.load16_u - i32.store16 + f64.load + local.set $10 local.get $0 - i32.const 2 - i32.add - local.set $0 - local.get $1 - i32.const 2 - i32.add - local.set $1 - end - local.get $2 - i32.const 1 - i32.and - if local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 local.get $5 - local.get $1 - local.tee $5 - i32.const 1 + i32.const 3 + i32.shl i32.add - local.set $1 + f64.load + f64.store + local.get $0 local.get $5 - i32.load8_u - i32.store8 - end - return - end - local.get $2 - i32.const 32 - i32.ge_u - if - block $break|2 - block $case2|2 - block $case1|2 - block $case0|2 - local.get $0 - i32.const 3 - i32.and - local.set $5 - local.get $5 - i32.const 1 - i32.eq - br_if $case0|2 - local.get $5 - i32.const 2 - i32.eq - br_if $case1|2 - local.get $5 - i32.const 3 - i32.eq - br_if $case2|2 - br $break|2 - end - local.get $1 - i32.load - local.set $3 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 + i32.const 3 + i32.shl + i32.add + local.get $10 + f64.store + i32.const 1 + local.set $8 + loop $while-continue|3 + local.get $8 + i32.const 1 + i32.shl + local.get $4 + local.get $8 + i32.const 5 + i32.shr_u + i32.const 2 + i32.shl + i32.add + i32.load + local.get $8 + i32.const 31 + i32.and + i32.shr_u + i32.const 1 + i32.and + i32.add + local.tee $7 + local.get $5 + i32.lt_s + local.set $11 + local.get $11 + if + local.get $7 + local.set $8 + br $while-continue|3 + end + end + loop $while-continue|4 + local.get $8 + i32.const 0 + i32.gt_s + local.set $11 + local.get $11 + if local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 + f64.load + local.set $10 local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 + local.get $8 + i32.const 3 + i32.shl i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 + f64.load + local.set $9 + local.get $10 + local.get $9 + i32.const 2 + global.set $~argumentsLength local.get $2 - i32.const 3 - i32.sub - local.set $2 - loop $while-continue|3 - local.get $2 - i32.const 17 - i32.ge_u - local.set $5 - local.get $5 - if - local.get $1 - i32.const 1 - i32.add - i32.load - local.set $4 - local.get $0 - local.get $3 - i32.const 24 - i32.shr_u - local.get $4 - i32.const 8 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 5 - i32.add - i32.load - local.set $3 - local.get $0 - i32.const 4 - i32.add - local.get $4 - i32.const 24 - i32.shr_u - local.get $3 - i32.const 8 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 9 - i32.add - i32.load - local.set $4 - local.get $0 - i32.const 8 - i32.add - local.get $3 - i32.const 24 - i32.shr_u - local.get $4 - i32.const 8 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 13 - i32.add - i32.load - local.set $3 - local.get $0 - i32.const 12 - i32.add - local.get $4 - i32.const 24 - i32.shr_u - local.get $3 - i32.const 8 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 16 - i32.add - local.set $1 - local.get $0 - i32.const 16 - i32.add - local.set $0 - local.get $2 - i32.const 16 - i32.sub - local.set $2 - br $while-continue|3 - end - end - br $break|2 - end - local.get $1 - i32.load - local.set $3 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $2 - i32.const 2 - i32.sub - local.set $2 - loop $while-continue|4 - local.get $2 - i32.const 18 - i32.ge_u - local.set $5 - local.get $5 + i32.load + call_indirect (type $f64_f64_=>_i32) + i32.const 0 + i32.lt_s if - local.get $1 - i32.const 2 - i32.add - i32.load - local.set $4 - local.get $0 - local.get $3 - i32.const 16 - i32.shr_u local.get $4 - i32.const 16 + local.get $8 + i32.const 5 + i32.shr_u + i32.const 2 i32.shl - i32.or - i32.store - local.get $1 - i32.const 6 - i32.add - i32.load - local.set $3 - local.get $0 - i32.const 4 i32.add local.get $4 - i32.const 16 + local.get $8 + i32.const 5 i32.shr_u - local.get $3 - i32.const 16 + i32.const 2 i32.shl - i32.or - i32.store - local.get $1 - i32.const 10 i32.add i32.load - local.set $4 - local.get $0 - i32.const 8 - i32.add - local.get $3 - i32.const 16 - i32.shr_u - local.get $4 - i32.const 16 + i32.const 1 + local.get $8 + i32.const 31 + i32.and i32.shl - i32.or + i32.xor i32.store - local.get $1 - i32.const 14 - i32.add - i32.load - local.set $3 local.get $0 - i32.const 12 - i32.add - local.get $4 - i32.const 16 - i32.shr_u - local.get $3 - i32.const 16 + local.get $8 + i32.const 3 i32.shl - i32.or - i32.store - local.get $1 - i32.const 16 i32.add - local.set $1 + local.get $10 + f64.store local.get $0 - i32.const 16 - i32.add - local.set $0 - local.get $2 - i32.const 16 - i32.sub - local.set $2 - br $while-continue|4 + local.get $9 + f64.store end + local.get $8 + i32.const 1 + i32.shr_s + local.set $8 + br $while-continue|4 end - br $break|2 end - local.get $1 - i32.load - local.set $3 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 local.get $5 - local.get $1 - local.tee $5 i32.const 1 - i32.add - local.set $1 + i32.sub + local.set $5 + br $for-loop|2 + end + end + local.get $4 + call $~lib/rt/tlsf/__free + local.get $0 + f64.load offset=8 + local.set $12 + local.get $0 + local.get $0 + f64.load + f64.store offset=8 + local.get $0 + local.get $12 + f64.store + ) + (func $~lib/typedarray/Float64Array#sort (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 f64) + (local $7 f64) + (local $8 i32) + (local $9 i32) + (local $10 i32) + block $~lib/typedarray/SORT<~lib/typedarray/Float64Array,f64>|inlined.0 (result i32) + local.get $0 + local.set $3 + local.get $1 + local.set $2 + local.get $3 + call $~lib/typedarray/Float64Array#get:length + local.set $4 + local.get $4 + i32.const 1 + i32.le_s + if + local.get $3 + br $~lib/typedarray/SORT<~lib/typedarray/Float64Array,f64>|inlined.0 + end + local.get $3 + i32.load offset=4 + local.set $5 + local.get $4 + i32.const 2 + i32.eq + if local.get $5 - i32.load8_u - i32.store8 + f64.load offset=8 + local.set $6 + local.get $5 + f64.load + local.set $7 + local.get $6 + local.get $7 + i32.const 2 + global.set $~argumentsLength local.get $2 - i32.const 1 - i32.sub - local.set $2 - loop $while-continue|5 - local.get $2 - i32.const 19 - i32.ge_u - local.set $5 + i32.load + call_indirect (type $f64_f64_=>_i32) + i32.const 0 + i32.lt_s + if local.get $5 - if - local.get $1 - i32.const 3 - i32.add - i32.load - local.set $4 - local.get $0 - local.get $3 - i32.const 8 - i32.shr_u - local.get $4 - i32.const 24 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 7 - i32.add - i32.load - local.set $3 - local.get $0 - i32.const 4 - i32.add - local.get $4 - i32.const 8 - i32.shr_u - local.get $3 - i32.const 24 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 11 - i32.add - i32.load - local.set $4 - local.get $0 - i32.const 8 - i32.add - local.get $3 - i32.const 8 - i32.shr_u - local.get $4 - i32.const 24 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 15 - i32.add - i32.load - local.set $3 - local.get $0 - i32.const 12 - i32.add - local.get $4 - i32.const 8 - i32.shr_u - local.get $3 - i32.const 24 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 16 - i32.add - local.set $1 - local.get $0 - i32.const 16 - i32.add - local.set $0 - local.get $2 - i32.const 16 - i32.sub - local.set $2 - br $while-continue|5 - end + local.get $7 + f64.store offset=8 + local.get $5 + local.get $6 + f64.store end - br $break|2 + local.get $3 + br $~lib/typedarray/SORT<~lib/typedarray/Float64Array,f64>|inlined.0 + end + local.get $5 + local.set $10 + local.get $4 + local.set $9 + local.get $2 + local.set $8 + i32.const 0 + drop + local.get $9 + i32.const 256 + i32.lt_s + if + local.get $10 + local.get $9 + local.get $8 + call $~lib/util/sort/insertionSort + else + local.get $10 + local.get $9 + local.get $8 + call $~lib/util/sort/weakHeapSort end + local.get $3 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.set $2 + local.get $1 + i64.reinterpret_f64 + local.set $3 local.get $2 - i32.const 16 + local.get $2 + i64.const 63 + i64.shr_s + i64.const 1 + i64.shr_u + i64.xor + local.set $2 + local.get $3 + local.get $3 + i64.const 63 + i64.shr_s + i64.const 1 + i64.shr_u + i64.xor + local.set $3 + local.get $2 + local.get $3 + i64.gt_s + local.get $2 + local.get $3 + i64.lt_s + i32.sub + ) + (func $~lib/typedarray/Float64Array#__get (param $0 i32) (param $1 i32) (result f64) + local.get $1 + local.get $0 + i32.load offset=8 + i32.const 3 + i32.shr_u + i32.ge_u + if + i32.const 336 + i32.const 608 + i32.const 1374 + i32.const 64 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 3 + i32.shl + i32.add + f64.load + ) + (func $~lib/typedarray/Uint8ClampedArray#__set (param $0 i32) (param $1 i32) (param $2 i32) + local.get $1 + local.get $0 + i32.load offset=8 + i32.ge_u + if + i32.const 336 + i32.const 608 + i32.const 305 + i32.const 45 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=4 + local.get $1 + i32.add + local.get $2 + i32.const 31 + i32.shr_s + i32.const -1 + i32.xor + i32.const 255 + local.get $2 + i32.sub + i32.const 31 + i32.shr_s + local.get $2 + i32.or i32.and + i32.store8 + ) + (func $~lib/typedarray/Uint8ClampedArray#__get (param $0 i32) (param $1 i32) (result i32) + local.get $1 + local.get $0 + i32.load offset=8 + i32.ge_u if - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 + i32.const 336 + i32.const 608 + i32.const 294 + i32.const 45 + call $~lib/builtins/abort + unreachable end - local.get $2 - i32.const 8 - i32.and + local.get $0 + i32.load offset=4 + local.get $1 + i32.add + i32.load8_u + ) + (func $~lib/typedarray/Int8Array#__set (param $0 i32) (param $1 i32) (param $2 i32) + local.get $1 + local.get $0 + i32.load offset=8 + i32.ge_u if - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 + i32.const 336 + i32.const 608 + i32.const 35 + i32.const 45 + call $~lib/builtins/abort + unreachable end + local.get $0 + i32.load offset=4 + local.get $1 + i32.add local.get $2 - i32.const 4 - i32.and - if - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - end + i32.store8 + ) + (func $~lib/typedarray/Int8Array#fill (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result 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.get $0 + local.set $7 + local.get $1 + local.set $6 local.get $2 - i32.const 2 - i32.and - if - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 + local.set $5 + local.get $3 + local.set $4 + local.get $7 + i32.load offset=4 + local.set $8 + local.get $7 + call $~lib/typedarray/Int8Array#get:length + local.set $9 + local.get $5 + i32.const 0 + i32.lt_s + if (result i32) + local.get $9 local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 i32.add - local.set $0 + local.tee $10 + i32.const 0 + local.tee $11 + local.get $10 + local.get $11 + i32.gt_s + select + else local.get $5 - local.get $1 - local.tee $5 - i32.const 1 + local.tee $11 + local.get $9 + local.tee $10 + local.get $11 + local.get $10 + i32.lt_s + select + end + local.set $5 + local.get $4 + i32.const 0 + i32.lt_s + if (result i32) + local.get $9 + local.get $4 i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 + local.tee $10 + i32.const 0 + local.tee $11 + local.get $10 + local.get $11 + i32.gt_s + select + else + local.get $4 + local.tee $11 + local.get $9 + local.tee $10 + local.get $11 + local.get $10 + i32.lt_s + select end - local.get $2 + local.set $4 i32.const 1 - i32.and + i32.const 1 + i32.eq + drop + local.get $5 + local.get $4 + i32.lt_s if - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 + local.get $8 local.get $5 - local.get $1 - local.tee $5 - i32.const 1 i32.add - local.set $1 + local.get $6 + local.get $4 local.get $5 - i32.load8_u - i32.store8 + i32.sub + call $~lib/memory/memory.fill end + local.get $7 ) - (func $~lib/memory/memory.copy (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/util/memory/memcpy (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) (local $6 i32) - (local $7 i32) - block $~lib/util/memory/memmove|inlined.0 - local.get $0 - local.set $5 - local.get $1 - local.set $4 + loop $while-continue|0 local.get $2 - local.set $3 - local.get $5 - local.get $4 - i32.eq - if - br $~lib/util/memory/memmove|inlined.0 + if (result i32) + local.get $1 + i32.const 3 + i32.and + else + i32.const 0 end - i32.const 0 - i32.const 1 - i32.lt_s - drop - local.get $4 + local.set $5 local.get $5 - i32.sub - local.get $3 - i32.sub - i32.const 0 - local.get $3 - i32.const 1 - i32.shl - i32.sub - i32.le_u if + local.get $0 + local.tee $6 + i32.const 1 + i32.add + local.set $0 + local.get $6 + local.get $1 + local.tee $6 + i32.const 1 + i32.add + local.set $1 + local.get $6 + i32.load8_u + i32.store8 + local.get $2 + i32.const 1 + i32.sub + local.set $2 + br $while-continue|0 + end + end + local.get $0 + i32.const 3 + i32.and + i32.const 0 + i32.eq + if + loop $while-continue|1 + local.get $2 + i32.const 16 + i32.ge_u + local.set $5 local.get $5 - local.get $4 - local.get $3 - call $~lib/util/memory/memcpy - br $~lib/util/memory/memmove|inlined.0 + if + local.get $0 + local.get $1 + i32.load + i32.store + local.get $0 + i32.const 4 + i32.add + local.get $1 + i32.const 4 + i32.add + i32.load + i32.store + local.get $0 + i32.const 8 + i32.add + local.get $1 + i32.const 8 + i32.add + i32.load + i32.store + local.get $0 + i32.const 12 + i32.add + local.get $1 + i32.const 12 + i32.add + i32.load + i32.store + local.get $1 + i32.const 16 + i32.add + local.set $1 + local.get $0 + i32.const 16 + i32.add + local.set $0 + local.get $2 + i32.const 16 + i32.sub + local.set $2 + br $while-continue|1 + end end - local.get $5 - local.get $4 - i32.lt_u + local.get $2 + i32.const 8 + i32.and if - i32.const 0 + local.get $0 + local.get $1 + i32.load + i32.store + local.get $0 + i32.const 4 + i32.add + local.get $1 + i32.const 4 + i32.add + i32.load + i32.store + local.get $0 + i32.const 8 + i32.add + local.set $0 + local.get $1 + i32.const 8 + i32.add + local.set $1 + end + local.get $2 + i32.const 4 + i32.and + if + local.get $0 + local.get $1 + i32.load + i32.store + local.get $0 + i32.const 4 + i32.add + local.set $0 + local.get $1 + i32.const 4 + i32.add + local.set $1 + end + local.get $2 + i32.const 2 + i32.and + if + local.get $0 + local.get $1 + i32.load16_u + i32.store16 + local.get $0 i32.const 2 - i32.lt_s - drop - local.get $4 - i32.const 7 - i32.and + i32.add + local.set $0 + local.get $1 + i32.const 2 + i32.add + local.set $1 + end + local.get $2 + i32.const 1 + i32.and + if + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 local.get $5 - i32.const 7 - i32.and - i32.eq - if - loop $while-continue|0 - local.get $5 - i32.const 7 - i32.and - local.set $6 - local.get $6 - if - local.get $3 - i32.eqz - if - br $~lib/util/memory/memmove|inlined.0 - end - local.get $3 - i32.const 1 - i32.sub - local.set $3 - local.get $5 - local.tee $7 - i32.const 1 - i32.add + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + end + return + end + local.get $2 + i32.const 32 + i32.ge_u + if + block $break|2 + block $case2|2 + block $case1|2 + block $case0|2 + local.get $0 + i32.const 3 + i32.and local.set $5 - local.get $7 - local.get $4 - local.tee $7 + local.get $5 i32.const 1 - i32.add - local.set $4 - local.get $7 - i32.load8_u - i32.store8 - br $while-continue|0 - end - end - loop $while-continue|1 - local.get $3 - i32.const 8 - i32.ge_u - local.set $6 - local.get $6 - if + i32.eq + br_if $case0|2 local.get $5 - local.get $4 - i64.load - i64.store - local.get $3 - i32.const 8 - i32.sub - local.set $3 + i32.const 2 + i32.eq + br_if $case1|2 local.get $5 - i32.const 8 - i32.add - local.set $5 - local.get $4 - i32.const 8 - i32.add - local.set $4 - br $while-continue|1 + i32.const 3 + i32.eq + br_if $case2|2 + br $break|2 end - end - end - loop $while-continue|2 - local.get $3 - local.set $6 - local.get $6 - if + local.get $1 + i32.load + local.set $3 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 local.get $5 - local.tee $7 + local.get $1 + local.tee $5 i32.const 1 i32.add - local.set $5 - local.get $7 - local.get $4 - local.tee $7 + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 i32.const 1 i32.add - local.set $4 - local.get $7 + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - local.get $3 + local.get $0 + local.tee $5 i32.const 1 - i32.sub - local.set $3 - br $while-continue|2 - end - end - else - i32.const 0 - i32.const 2 - i32.lt_s - drop - local.get $4 - i32.const 7 - i32.and - local.get $5 - i32.const 7 - i32.and - i32.eq - if - loop $while-continue|3 + i32.add + local.set $0 local.get $5 - local.get $3 + local.get $1 + local.tee $5 + i32.const 1 i32.add - i32.const 7 - i32.and - local.set $6 - local.get $6 - if - local.get $3 - i32.eqz + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $2 + i32.const 3 + i32.sub + local.set $2 + loop $while-continue|3 + local.get $2 + i32.const 17 + i32.ge_u + local.set $5 + local.get $5 if - br $~lib/util/memory/memmove|inlined.0 + local.get $1 + i32.const 1 + i32.add + i32.load + local.set $4 + local.get $0 + local.get $3 + i32.const 24 + i32.shr_u + local.get $4 + i32.const 8 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 5 + i32.add + i32.load + local.set $3 + local.get $0 + i32.const 4 + i32.add + local.get $4 + i32.const 24 + i32.shr_u + local.get $3 + i32.const 8 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 9 + i32.add + i32.load + local.set $4 + local.get $0 + i32.const 8 + i32.add + local.get $3 + i32.const 24 + i32.shr_u + local.get $4 + i32.const 8 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 13 + i32.add + i32.load + local.set $3 + local.get $0 + i32.const 12 + i32.add + local.get $4 + i32.const 24 + i32.shr_u + local.get $3 + i32.const 8 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 16 + i32.add + local.set $1 + local.get $0 + i32.const 16 + i32.add + local.set $0 + local.get $2 + i32.const 16 + i32.sub + local.set $2 + br $while-continue|3 end - local.get $5 - local.get $3 - i32.const 1 - i32.sub - local.tee $3 - i32.add - local.get $4 - local.get $3 - i32.add - i32.load8_u - i32.store8 - br $while-continue|3 end + br $break|2 end + local.get $1 + i32.load + local.set $3 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $2 + i32.const 2 + i32.sub + local.set $2 loop $while-continue|4 - local.get $3 - i32.const 8 + local.get $2 + i32.const 18 i32.ge_u - local.set $6 - local.get $6 + local.set $5 + local.get $5 if + local.get $1 + i32.const 2 + i32.add + i32.load + local.set $4 + local.get $0 local.get $3 - i32.const 8 - i32.sub + i32.const 16 + i32.shr_u + local.get $4 + i32.const 16 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 6 + i32.add + i32.load local.set $3 - local.get $5 + local.get $0 + i32.const 4 + i32.add + local.get $4 + i32.const 16 + i32.shr_u + local.get $3 + i32.const 16 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 10 + i32.add + i32.load + local.set $4 + local.get $0 + i32.const 8 + i32.add local.get $3 + i32.const 16 + i32.shr_u + local.get $4 + i32.const 16 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 14 + i32.add + i32.load + local.set $3 + local.get $0 + i32.const 12 i32.add local.get $4 + i32.const 16 + i32.shr_u local.get $3 + i32.const 16 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 16 i32.add - i64.load - i64.store + local.set $1 + local.get $0 + i32.const 16 + i32.add + local.set $0 + local.get $2 + i32.const 16 + i32.sub + local.set $2 br $while-continue|4 end end + br $break|2 end + local.get $1 + i32.load + local.set $3 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $2 + i32.const 1 + i32.sub + local.set $2 loop $while-continue|5 - local.get $3 - local.set $6 - local.get $6 + local.get $2 + i32.const 19 + i32.ge_u + local.set $5 + local.get $5 if - local.get $5 + local.get $1 + i32.const 3 + i32.add + i32.load + local.set $4 + local.get $0 local.get $3 - i32.const 1 - i32.sub - local.tee $3 + i32.const 8 + i32.shr_u + local.get $4 + i32.const 24 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 7 + i32.add + i32.load + local.set $3 + local.get $0 + i32.const 4 + i32.add + local.get $4 + i32.const 8 + i32.shr_u + local.get $3 + i32.const 24 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 11 + i32.add + i32.load + local.set $4 + local.get $0 + i32.const 8 + i32.add + local.get $3 + i32.const 8 + i32.shr_u + local.get $4 + i32.const 24 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 15 + i32.add + i32.load + local.set $3 + local.get $0 + i32.const 12 i32.add local.get $4 + i32.const 8 + i32.shr_u local.get $3 + i32.const 24 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 16 i32.add - i32.load8_u - i32.store8 + local.set $1 + local.get $0 + i32.const 16 + i32.add + local.set $0 + local.get $2 + i32.const 16 + i32.sub + local.set $2 br $while-continue|5 end end + br $break|2 end end - ) - (func $~lib/rt/__newBuffer (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (local $3 i32) - local.get $0 - local.get $1 - call $~lib/rt/itcms/__new - local.set $3 local.get $2 + i32.const 16 + i32.and if - local.get $3 - local.get $2 local.get $0 - call $~lib/memory/memory.copy - end - local.get $3 - ) - (func $~lib/array/Array#get:length (param $0 i32) (result i32) - local.get $0 - i32.load offset=12 - ) - (func $~lib/typedarray/Int8Array#__get (param $0 i32) (param $1 i32) (result i32) - local.get $1 - local.get $0 - i32.load offset=8 - i32.ge_u - if - i32.const 336 - i32.const 608 - i32.const 24 - i32.const 45 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load offset=4 - local.get $1 - i32.add - i32.load8_s - ) - (func $~lib/array/Array#__get (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - local.get $1 - local.get $0 - i32.load offset=12 - i32.ge_u - if - i32.const 336 - i32.const 736 - i32.const 92 - i32.const 42 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load offset=4 - local.get $1 - i32.const 0 - i32.shl - i32.add - i32.load8_s - local.set $2 - i32.const 0 - drop - local.get $2 - ) - (func $~lib/array/Array#get:length (param $0 i32) (result i32) - local.get $0 - i32.load offset=12 - ) - (func $~lib/array/Array#__get (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - local.get $1 - local.get $0 - i32.load offset=12 - i32.ge_u - if - i32.const 336 - i32.const 736 - i32.const 92 - i32.const 42 - call $~lib/builtins/abort - unreachable + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 end - local.get $0 - i32.load offset=4 - local.get $1 - i32.const 2 - i32.shl - i32.add - i32.load - local.set $2 - i32.const 0 - drop local.get $2 - ) - (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 $~lib/typedarray/Uint8Array#__set (param $0 i32) (param $1 i32) (param $2 i32) - local.get $1 - local.get $0 - i32.load offset=8 - i32.ge_u + i32.const 8 + i32.and if - i32.const 336 - i32.const 608 - i32.const 170 - i32.const 45 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load offset=4 - local.get $1 - i32.add - local.get $2 - i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + end + local.get $2 + i32.const 4 + i32.and + if + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + end + local.get $2 + i32.const 2 + i32.and + if + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + end + local.get $2 + i32.const 1 + i32.and + if + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + end ) - (func $std/typedarray/testReduce<~lib/typedarray/Uint8Array,u8>~anonymous|0 (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (func $~lib/memory/memory.copy (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + block $~lib/util/memory/memmove|inlined.0 + local.get $0 + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + local.get $5 + local.get $4 + i32.eq + if + br $~lib/util/memory/memmove|inlined.0 + end + i32.const 0 + i32.const 1 + i32.lt_s + drop + local.get $4 + local.get $5 + i32.sub + local.get $3 + i32.sub + i32.const 0 + local.get $3 + i32.const 1 + i32.shl + i32.sub + i32.le_u + if + local.get $5 + local.get $4 + local.get $3 + call $~lib/util/memory/memcpy + br $~lib/util/memory/memmove|inlined.0 + end + local.get $5 + local.get $4 + i32.lt_u + if + i32.const 0 + i32.const 2 + i32.lt_s + drop + local.get $4 + i32.const 7 + i32.and + local.get $5 + i32.const 7 + i32.and + i32.eq + if + loop $while-continue|0 + local.get $5 + i32.const 7 + i32.and + local.set $6 + local.get $6 + if + local.get $3 + i32.eqz + if + br $~lib/util/memory/memmove|inlined.0 + end + local.get $3 + i32.const 1 + i32.sub + local.set $3 + local.get $5 + local.tee $7 + i32.const 1 + i32.add + local.set $5 + local.get $7 + local.get $4 + local.tee $7 + i32.const 1 + i32.add + local.set $4 + local.get $7 + i32.load8_u + i32.store8 + br $while-continue|0 + end + end + loop $while-continue|1 + local.get $3 + i32.const 8 + i32.ge_u + local.set $6 + local.get $6 + if + local.get $5 + local.get $4 + i64.load + i64.store + local.get $3 + i32.const 8 + i32.sub + local.set $3 + local.get $5 + i32.const 8 + i32.add + local.set $5 + local.get $4 + i32.const 8 + i32.add + local.set $4 + br $while-continue|1 + end + end + end + loop $while-continue|2 + local.get $3 + local.set $6 + local.get $6 + if + local.get $5 + local.tee $7 + i32.const 1 + i32.add + local.set $5 + local.get $7 + local.get $4 + local.tee $7 + i32.const 1 + i32.add + local.set $4 + local.get $7 + i32.load8_u + i32.store8 + local.get $3 + i32.const 1 + i32.sub + local.set $3 + br $while-continue|2 + end + end + else + i32.const 0 + i32.const 2 + i32.lt_s + drop + local.get $4 + i32.const 7 + i32.and + local.get $5 + i32.const 7 + i32.and + i32.eq + if + loop $while-continue|3 + local.get $5 + local.get $3 + i32.add + i32.const 7 + i32.and + local.set $6 + local.get $6 + if + local.get $3 + i32.eqz + if + br $~lib/util/memory/memmove|inlined.0 + end + local.get $5 + local.get $3 + i32.const 1 + i32.sub + local.tee $3 + i32.add + local.get $4 + local.get $3 + i32.add + i32.load8_u + i32.store8 + br $while-continue|3 + end + end + loop $while-continue|4 + local.get $3 + i32.const 8 + i32.ge_u + local.set $6 + local.get $6 + if + local.get $3 + i32.const 8 + i32.sub + local.set $3 + local.get $5 + local.get $3 + i32.add + local.get $4 + local.get $3 + i32.add + i64.load + i64.store + br $while-continue|4 + end + end + end + loop $while-continue|5 + local.get $3 + local.set $6 + local.get $6 + if + local.get $5 + local.get $3 + i32.const 1 + i32.sub + local.tee $3 + i32.add + local.get $4 + local.get $3 + i32.add + i32.load8_u + i32.store8 + br $while-continue|5 + end + end + end + end + ) + (func $~lib/rt/__newBuffer (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) local.get $0 local.get $1 - i32.add + call $~lib/rt/itcms/__new + local.set $3 + local.get $2 + if + local.get $3 + local.get $2 + local.get $0 + call $~lib/memory/memory.copy + end + local.get $3 ) - (func $std/typedarray/testReduce<~lib/typedarray/Uint8ClampedArray,u8>~anonymous|0 (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (func $~lib/array/Array#get:length (param $0 i32) (result i32) local.get $0 - local.get $1 - i32.add + i32.load offset=12 ) - (func $~lib/typedarray/Int16Array#__set (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/typedarray/Int8Array#__get (param $0 i32) (param $1 i32) (result i32) local.get $1 local.get $0 i32.load offset=8 - i32.const 1 - i32.shr_u i32.ge_u if i32.const 336 i32.const 608 - i32.const 440 - i32.const 64 + i32.const 24 + i32.const 45 call $~lib/builtins/abort unreachable end local.get $0 i32.load offset=4 local.get $1 - i32.const 1 - i32.shl - i32.add - local.get $2 - i32.store16 - ) - (func $std/typedarray/testReduce<~lib/typedarray/Int16Array,i16>~anonymous|0 (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) - local.get $0 - local.get $1 i32.add + i32.load8_s ) - (func $~lib/typedarray/Uint16Array#__set (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/array/Array#__get (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) local.get $1 local.get $0 - i32.load offset=8 - i32.const 1 - i32.shr_u + i32.load offset=12 i32.ge_u if i32.const 336 - i32.const 608 - i32.const 575 - i32.const 64 + i32.const 736 + i32.const 92 + i32.const 42 call $~lib/builtins/abort unreachable end local.get $0 i32.load offset=4 local.get $1 - i32.const 1 + i32.const 0 i32.shl i32.add + i32.load8_s + local.set $2 + i32.const 0 + drop local.get $2 - i32.store16 ) - (func $std/typedarray/testReduce<~lib/typedarray/Uint16Array,u16>~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/Int32Array,i32>~anonymous|0 (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (func $std/typedarray/isInt8ArrayEqual (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) local.get $0 + call $~lib/typedarray/Int8Array#get:length local.get $1 - i32.add - ) - (func $~lib/typedarray/Uint32Array#__set (param $0 i32) (param $1 i32) (param $2 i32) - local.get $1 - local.get $0 - i32.load offset=8 - i32.const 2 - i32.shr_u - i32.ge_u + call $~lib/array/Array#get:length + i32.ne if - i32.const 336 - i32.const 608 - i32.const 845 - i32.const 64 - call $~lib/builtins/abort - unreachable + i32.const 0 + return end + i32.const 0 + local.set $2 local.get $0 - i32.load offset=4 + call $~lib/typedarray/Int8Array#get:length + local.set $3 + loop $for-loop|0 + local.get $2 + local.get $3 + i32.lt_s + local.set $4 + local.get $4 + if + local.get $0 + local.get $2 + call $~lib/typedarray/Int8Array#__get + local.get $1 + local.get $2 + call $~lib/array/Array#__get + i32.ne + if + i32.const 0 + return + end + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|0 + end + end + i32.const 1 + ) + (func $~lib/typedarray/Int32Array#fill (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result 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.get $0 + local.set $7 local.get $1 - i32.const 2 - i32.shl - i32.add + local.set $6 local.get $2 - i32.store + local.set $5 + local.get $3 + local.set $4 + local.get $7 + i32.load offset=4 + local.set $8 + local.get $7 + call $~lib/typedarray/Int32Array#get:length + local.set $9 + local.get $5 + i32.const 0 + i32.lt_s + if (result i32) + local.get $9 + local.get $5 + i32.add + local.tee $10 + i32.const 0 + local.tee $11 + local.get $10 + local.get $11 + i32.gt_s + select + else + local.get $5 + local.tee $11 + local.get $9 + local.tee $10 + local.get $11 + local.get $10 + i32.lt_s + select + end + local.set $5 + local.get $4 + i32.const 0 + i32.lt_s + if (result i32) + local.get $9 + local.get $4 + i32.add + local.tee $10 + i32.const 0 + local.tee $11 + local.get $10 + local.get $11 + i32.gt_s + select + else + local.get $4 + local.tee $11 + local.get $9 + local.tee $10 + local.get $11 + local.get $10 + i32.lt_s + select + end + local.set $4 + i32.const 4 + i32.const 1 + i32.eq + drop + loop $for-loop|0 + local.get $5 + local.get $4 + i32.lt_s + local.set $11 + local.get $11 + if + local.get $8 + local.get $5 + i32.const 2 + i32.shl + i32.add + local.get $6 + i32.store + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|0 + end + end + local.get $7 ) - (func $std/typedarray/testReduce<~lib/typedarray/Uint32Array,u32>~anonymous|0 (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (func $~lib/array/Array#get:length (param $0 i32) (result i32) local.get $0 - local.get $1 - i32.add + i32.load offset=12 ) - (func $~lib/typedarray/Int64Array#__set (param $0 i32) (param $1 i32) (param $2 i64) + (func $~lib/array/Array#__get (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) local.get $1 local.get $0 - i32.load offset=8 - i32.const 3 - i32.shr_u + i32.load offset=12 i32.ge_u if i32.const 336 - i32.const 608 - i32.const 980 - i32.const 64 + i32.const 736 + i32.const 92 + i32.const 42 call $~lib/builtins/abort unreachable end local.get $0 i32.load offset=4 local.get $1 - i32.const 3 + i32.const 2 i32.shl i32.add + i32.load + local.set $2 + i32.const 0 + drop local.get $2 - i64.store ) - (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/isInt32ArrayEqual (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) local.get $0 + call $~lib/typedarray/Int32Array#get:length local.get $1 - i64.add - ) - (func $~lib/typedarray/Uint64Array#__set (param $0 i32) (param $1 i32) (param $2 i64) - local.get $1 - local.get $0 - i32.load offset=8 - i32.const 3 - i32.shr_u - i32.ge_u + call $~lib/array/Array#get:length + i32.ne if - i32.const 336 - i32.const 608 - i32.const 1115 - i32.const 64 - call $~lib/builtins/abort - unreachable + i32.const 0 + return end + i32.const 0 + local.set $2 local.get $0 - i32.load offset=4 - local.get $1 - i32.const 3 - i32.shl - i32.add - local.get $2 - i64.store + call $~lib/typedarray/Int32Array#get:length + local.set $3 + loop $for-loop|0 + local.get $2 + local.get $3 + i32.lt_s + local.set $4 + local.get $4 + if + local.get $0 + local.get $2 + call $~lib/typedarray/Int32Array#__get + local.get $1 + local.get $2 + call $~lib/array/Array#__get + i32.ne + if + i32.const 0 + return + end + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|0 + end + end + i32.const 1 ) - (func $std/typedarray/testReduce<~lib/typedarray/Uint64Array,u64>~anonymous|0 (param $0 i64) (param $1 i64) (param $2 i32) (param $3 i32) (result i64) + (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) + (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.get $0 + local.set $7 local.get $1 - i64.add - ) - (func $~lib/typedarray/Float32Array#__set (param $0 i32) (param $1 i32) (param $2 f32) - local.get $1 - local.get $0 - i32.load offset=8 - i32.const 2 - i32.shr_u - i32.ge_u - if - i32.const 336 - i32.const 608 - i32.const 1250 - i32.const 64 - call $~lib/builtins/abort - unreachable - end - local.get $0 + local.set $6 + local.get $2 + local.set $5 + local.get $3 + local.set $4 + local.get $7 + call $~lib/typedarray/Int32Array#get:length + local.set $8 + local.get $7 i32.load offset=4 - local.get $1 + local.set $9 + local.get $4 + local.tee $10 + local.get $8 + local.tee $11 + local.get $10 + local.get $11 + i32.lt_s + select + local.set $4 + local.get $6 + i32.const 0 + i32.lt_s + if (result i32) + local.get $8 + local.get $6 + i32.add + local.tee $11 + i32.const 0 + local.tee $10 + local.get $11 + local.get $10 + i32.gt_s + select + else + local.get $6 + local.tee $10 + local.get $8 + local.tee $11 + local.get $10 + local.get $11 + i32.lt_s + select + end + local.set $10 + local.get $5 + i32.const 0 + i32.lt_s + if (result i32) + local.get $8 + local.get $5 + i32.add + local.tee $11 + i32.const 0 + local.tee $12 + local.get $11 + local.get $12 + i32.gt_s + select + else + local.get $5 + local.tee $12 + local.get $8 + local.tee $11 + local.get $12 + local.get $11 + i32.lt_s + select + end + local.set $12 + local.get $4 + i32.const 0 + i32.lt_s + if (result i32) + local.get $8 + local.get $4 + i32.add + local.tee $11 + i32.const 0 + local.tee $13 + local.get $11 + local.get $13 + i32.gt_s + select + else + local.get $4 + local.tee $13 + local.get $8 + local.tee $11 + local.get $13 + local.get $11 + i32.lt_s + select + end + local.set $13 + local.get $13 + local.get $12 + i32.sub + local.tee $11 + local.get $8 + local.get $10 + i32.sub + local.tee $14 + local.get $11 + local.get $14 + i32.lt_s + select + local.set $11 + local.get $9 + local.get $10 i32.const 2 i32.shl i32.add - local.get $2 - f32.store - ) - (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 + local.get $9 + local.get $12 + i32.const 2 + i32.shl + i32.add + local.get $11 + i32.const 2 + i32.shl + call $~lib/memory/memory.copy + local.get $7 ) - (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/Int8Array,i8>~anonymous|0 (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) local.get $0 local.get $1 - f64.add + i32.add ) - (func $~lib/typedarray/Int8Array#at (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) + (func $~lib/typedarray/Int8Array#reduce (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.get $0 - i32.load offset=8 - local.set $2 + local.set $5 local.get $1 - i32.const 0 + local.set $4 local.get $2 - local.get $1 + local.set $3 + local.get $5 + i32.load offset=4 + local.set $6 i32.const 0 - i32.ge_s - select - i32.add - local.set $1 + local.set $7 + local.get $5 + call $~lib/typedarray/Int8Array#get:length + local.set $8 + loop $for-loop|0 + local.get $7 + local.get $8 + i32.lt_s + local.set $9 + local.get $9 + if + local.get $3 + local.get $6 + local.get $7 + i32.const 0 + i32.shl + i32.add + i32.load8_s + local.get $7 + local.get $5 + i32.const 4 + global.set $~argumentsLength + local.get $4 + i32.load + call_indirect (type $i32_i32_i32_i32_=>_i32) + local.set $3 + local.get $7 + i32.const 1 + i32.add + local.set $7 + br $for-loop|0 + end + end + local.get $3 + ) + (func $~lib/typedarray/Uint8Array#__set (param $0 i32) (param $1 i32) (param $2 i32) local.get $1 - local.get $2 + local.get $0 + i32.load offset=8 i32.ge_u if i32.const 336 i32.const 608 - i32.const 47 - i32.const 33 + i32.const 170 + i32.const 45 call $~lib/builtins/abort unreachable end @@ -5002,94 +5890,219 @@ i32.load offset=4 local.get $1 i32.add - i32.load8_s + local.get $2 + i32.store8 ) - (func $~lib/typedarray/Uint8Array#at (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) + (func $std/typedarray/testReduce<~lib/typedarray/Uint8Array,u8>~anonymous|0 (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) local.get $0 - i32.load offset=8 - local.set $2 local.get $1 - i32.const 0 - local.get $2 - local.get $1 - i32.const 0 - i32.ge_s - select i32.add - local.set $1 + ) + (func $~lib/typedarray/Uint8Array#reduce (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.get $0 + local.set $5 local.get $1 + local.set $4 local.get $2 - i32.ge_u - if - i32.const 336 - i32.const 608 - i32.const 182 - i32.const 33 - call $~lib/builtins/abort - unreachable + local.set $3 + local.get $5 + i32.load offset=4 + local.set $6 + i32.const 0 + local.set $7 + local.get $5 + call $~lib/typedarray/Uint8Array#get:length + local.set $8 + loop $for-loop|0 + local.get $7 + local.get $8 + i32.lt_s + local.set $9 + local.get $9 + if + local.get $3 + local.get $6 + local.get $7 + i32.const 0 + i32.shl + i32.add + i32.load8_u + local.get $7 + local.get $5 + i32.const 4 + global.set $~argumentsLength + local.get $4 + i32.load + call_indirect (type $i32_i32_i32_i32_=>_i32) + local.set $3 + local.get $7 + i32.const 1 + i32.add + local.set $7 + br $for-loop|0 + end end + local.get $3 + ) + (func $std/typedarray/testReduce<~lib/typedarray/Uint8ClampedArray,u8>~anonymous|0 (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) local.get $0 - i32.load offset=4 local.get $1 i32.add - i32.load8_u ) - (func $~lib/typedarray/Uint8ClampedArray#at (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) + (func $~lib/typedarray/Uint8ClampedArray#reduce (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.get $0 - i32.load offset=8 - local.set $2 + local.set $5 local.get $1 - i32.const 0 + local.set $4 local.get $2 - local.get $1 + local.set $3 + local.get $5 + i32.load offset=4 + local.set $6 i32.const 0 - i32.ge_s - select - i32.add - local.set $1 + local.set $7 + local.get $5 + call $~lib/typedarray/Uint8ClampedArray#get:length + local.set $8 + loop $for-loop|0 + local.get $7 + local.get $8 + i32.lt_s + local.set $9 + local.get $9 + if + local.get $3 + local.get $6 + local.get $7 + i32.const 0 + i32.shl + i32.add + i32.load8_u + local.get $7 + local.get $5 + i32.const 4 + global.set $~argumentsLength + local.get $4 + i32.load + call_indirect (type $i32_i32_i32_i32_=>_i32) + local.set $3 + local.get $7 + i32.const 1 + i32.add + local.set $7 + br $for-loop|0 + end + end + local.get $3 + ) + (func $~lib/typedarray/Int16Array#__set (param $0 i32) (param $1 i32) (param $2 i32) local.get $1 - local.get $2 + local.get $0 + i32.load offset=8 + i32.const 1 + i32.shr_u i32.ge_u if i32.const 336 i32.const 608 - i32.const 317 - i32.const 33 + i32.const 440 + i32.const 64 call $~lib/builtins/abort unreachable end local.get $0 i32.load offset=4 local.get $1 + i32.const 1 + i32.shl i32.add - i32.load8_u + local.get $2 + i32.store16 ) - (func $~lib/typedarray/Int16Array#at (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) + (func $std/typedarray/testReduce<~lib/typedarray/Int16Array,i16>~anonymous|0 (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) local.get $0 - i32.load offset=8 - i32.const 1 - i32.shr_u - local.set $2 - local.get $1 - i32.const 0 - local.get $2 local.get $1 - i32.const 0 - i32.ge_s - select i32.add - local.set $1 + ) + (func $~lib/typedarray/Int16Array#reduce (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.get $0 + local.set $5 local.get $1 + local.set $4 local.get $2 + local.set $3 + local.get $5 + i32.load offset=4 + local.set $6 + i32.const 0 + local.set $7 + local.get $5 + call $~lib/typedarray/Int16Array#get:length + local.set $8 + loop $for-loop|0 + local.get $7 + local.get $8 + i32.lt_s + local.set $9 + local.get $9 + if + local.get $3 + local.get $6 + local.get $7 + i32.const 1 + i32.shl + i32.add + i32.load16_s + local.get $7 + local.get $5 + i32.const 4 + global.set $~argumentsLength + local.get $4 + i32.load + call_indirect (type $i32_i32_i32_i32_=>_i32) + local.set $3 + local.get $7 + i32.const 1 + i32.add + local.set $7 + br $for-loop|0 + end + end + local.get $3 + ) + (func $~lib/typedarray/Uint16Array#__set (param $0 i32) (param $1 i32) (param $2 i32) + local.get $1 + local.get $0 + i32.load offset=8 + i32.const 1 + i32.shr_u i32.ge_u if i32.const 336 i32.const 608 - i32.const 452 - i32.const 33 + i32.const 575 + i32.const 64 call $~lib/builtins/abort unreachable end @@ -5099,67 +6112,137 @@ i32.const 1 i32.shl i32.add - i32.load16_s + local.get $2 + i32.store16 ) - (func $~lib/typedarray/Uint16Array#at (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) + (func $std/typedarray/testReduce<~lib/typedarray/Uint16Array,u16>~anonymous|0 (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) local.get $0 - i32.load offset=8 - i32.const 1 - i32.shr_u - local.set $2 - local.get $1 - i32.const 0 - local.get $2 local.get $1 - i32.const 0 - i32.ge_s - select i32.add - local.set $1 + ) + (func $~lib/typedarray/Uint16Array#reduce (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.get $0 + local.set $5 local.get $1 + local.set $4 local.get $2 - i32.ge_u - if - i32.const 336 - i32.const 608 - i32.const 587 - i32.const 33 - call $~lib/builtins/abort - unreachable + local.set $3 + local.get $5 + i32.load offset=4 + local.set $6 + i32.const 0 + local.set $7 + local.get $5 + call $~lib/typedarray/Uint16Array#get:length + local.set $8 + loop $for-loop|0 + local.get $7 + local.get $8 + i32.lt_s + local.set $9 + local.get $9 + if + local.get $3 + local.get $6 + local.get $7 + i32.const 1 + i32.shl + i32.add + i32.load16_u + local.get $7 + local.get $5 + i32.const 4 + global.set $~argumentsLength + local.get $4 + i32.load + call_indirect (type $i32_i32_i32_i32_=>_i32) + local.set $3 + local.get $7 + i32.const 1 + i32.add + local.set $7 + br $for-loop|0 + end end + local.get $3 + ) + (func $std/typedarray/testReduce<~lib/typedarray/Int32Array,i32>~anonymous|0 (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) local.get $0 - i32.load offset=4 local.get $1 - i32.const 1 - i32.shl i32.add - i32.load16_u ) - (func $~lib/typedarray/Int32Array#at (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) + (func $~lib/typedarray/Int32Array#reduce (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.get $0 - i32.load offset=8 - i32.const 2 - i32.shr_u - local.set $2 + local.set $5 local.get $1 - i32.const 0 + local.set $4 local.get $2 - local.get $1 + local.set $3 + local.get $5 + i32.load offset=4 + local.set $6 i32.const 0 - i32.ge_s - select - i32.add - local.set $1 + local.set $7 + local.get $5 + call $~lib/typedarray/Int32Array#get:length + local.set $8 + loop $for-loop|0 + local.get $7 + local.get $8 + i32.lt_s + local.set $9 + local.get $9 + if + local.get $3 + local.get $6 + local.get $7 + i32.const 2 + i32.shl + i32.add + i32.load + local.get $7 + local.get $5 + i32.const 4 + global.set $~argumentsLength + local.get $4 + i32.load + call_indirect (type $i32_i32_i32_i32_=>_i32) + local.set $3 + local.get $7 + i32.const 1 + i32.add + local.set $7 + br $for-loop|0 + end + end + local.get $3 + ) + (func $~lib/typedarray/Uint32Array#__set (param $0 i32) (param $1 i32) (param $2 i32) local.get $1 - local.get $2 + local.get $0 + i32.load offset=8 + i32.const 2 + i32.shr_u i32.ge_u if i32.const 336 i32.const 608 - i32.const 722 - i32.const 33 + i32.const 845 + i32.const 64 call $~lib/builtins/abort unreachable end @@ -5169,67 +6252,161 @@ i32.const 2 i32.shl i32.add - i32.load + local.get $2 + i32.store ) - (func $~lib/typedarray/Uint32Array#at (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) + (func $std/typedarray/testReduce<~lib/typedarray/Uint32Array,u32>~anonymous|0 (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) local.get $0 - i32.load offset=8 - i32.const 2 - i32.shr_u - local.set $2 - local.get $1 - i32.const 0 - local.get $2 local.get $1 - i32.const 0 - i32.ge_s - select i32.add - local.set $1 + ) + (func $~lib/typedarray/Uint32Array#reduce (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.get $0 + local.set $5 local.get $1 + local.set $4 local.get $2 + local.set $3 + local.get $5 + i32.load offset=4 + local.set $6 + i32.const 0 + local.set $7 + local.get $5 + call $~lib/typedarray/Uint32Array#get:length + local.set $8 + loop $for-loop|0 + local.get $7 + local.get $8 + i32.lt_s + local.set $9 + local.get $9 + if + local.get $3 + local.get $6 + local.get $7 + i32.const 2 + i32.shl + i32.add + i32.load + local.get $7 + local.get $5 + i32.const 4 + global.set $~argumentsLength + local.get $4 + i32.load + call_indirect (type $i32_i32_i32_i32_=>_i32) + local.set $3 + local.get $7 + i32.const 1 + i32.add + local.set $7 + br $for-loop|0 + end + end + local.get $3 + ) + (func $~lib/typedarray/Int64Array#__set (param $0 i32) (param $1 i32) (param $2 i64) + local.get $1 + local.get $0 + i32.load offset=8 + i32.const 3 + i32.shr_u i32.ge_u if i32.const 336 i32.const 608 - i32.const 857 - i32.const 33 + i32.const 980 + i32.const 64 call $~lib/builtins/abort unreachable end local.get $0 i32.load offset=4 local.get $1 - i32.const 2 + i32.const 3 i32.shl i32.add - i32.load + local.get $2 + i64.store ) - (func $~lib/typedarray/Int64Array#at (param $0 i32) (param $1 i32) (result i64) - (local $2 i32) + (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 - i32.load offset=8 - i32.const 3 - i32.shr_u - local.set $2 local.get $1 - i32.const 0 - local.get $2 + i64.add + ) + (func $~lib/typedarray/Int64Array#reduce (param $0 i32) (param $1 i32) (param $2 i64) (result i64) + (local $3 i64) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + local.get $0 + local.set $5 local.get $1 + local.set $4 + local.get $2 + local.set $3 + local.get $5 + i32.load offset=4 + local.set $6 i32.const 0 - i32.ge_s - select - i32.add - local.set $1 + local.set $7 + local.get $5 + call $~lib/typedarray/Int64Array#get:length + local.set $8 + loop $for-loop|0 + local.get $7 + local.get $8 + i32.lt_s + local.set $9 + local.get $9 + if + local.get $3 + local.get $6 + local.get $7 + i32.const 3 + i32.shl + i32.add + i64.load + local.get $7 + local.get $5 + i32.const 4 + global.set $~argumentsLength + local.get $4 + i32.load + call_indirect (type $i64_i64_i32_i32_=>_i64) + local.set $3 + local.get $7 + i32.const 1 + i32.add + local.set $7 + br $for-loop|0 + end + end + local.get $3 + ) + (func $~lib/typedarray/Uint64Array#__set (param $0 i32) (param $1 i32) (param $2 i64) local.get $1 - local.get $2 + local.get $0 + i32.load offset=8 + i32.const 3 + i32.shr_u i32.ge_u if i32.const 336 i32.const 608 - i32.const 992 - i32.const 33 + i32.const 1115 + i32.const 64 call $~lib/builtins/abort unreachable end @@ -5239,49 +6416,211 @@ i32.const 3 i32.shl i32.add - i64.load + local.get $2 + i64.store ) - (func $~lib/typedarray/Uint64Array#at (param $0 i32) (param $1 i32) (result i64) - (local $2 i32) + (func $std/typedarray/testReduce<~lib/typedarray/Uint64Array,u64>~anonymous|0 (param $0 i64) (param $1 i64) (param $2 i32) (param $3 i32) (result i64) local.get $0 - i32.load offset=8 - i32.const 3 - i32.shr_u - local.set $2 local.get $1 - i32.const 0 - local.get $2 + i64.add + ) + (func $~lib/typedarray/Uint64Array#reduce (param $0 i32) (param $1 i32) (param $2 i64) (result i64) + (local $3 i64) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + local.get $0 + local.set $5 local.get $1 + local.set $4 + local.get $2 + local.set $3 + local.get $5 + i32.load offset=4 + local.set $6 i32.const 0 - i32.ge_s - select - i32.add - local.set $1 + local.set $7 + local.get $5 + call $~lib/typedarray/Uint64Array#get:length + local.set $8 + loop $for-loop|0 + local.get $7 + local.get $8 + i32.lt_s + local.set $9 + local.get $9 + if + local.get $3 + local.get $6 + local.get $7 + i32.const 3 + i32.shl + i32.add + i64.load + local.get $7 + local.get $5 + i32.const 4 + global.set $~argumentsLength + local.get $4 + i32.load + call_indirect (type $i64_i64_i32_i32_=>_i64) + local.set $3 + local.get $7 + i32.const 1 + i32.add + local.set $7 + br $for-loop|0 + end + end + local.get $3 + ) + (func $~lib/typedarray/Float32Array#__set (param $0 i32) (param $1 i32) (param $2 f32) local.get $1 - local.get $2 + local.get $0 + i32.load offset=8 + i32.const 2 + i32.shr_u i32.ge_u if i32.const 336 i32.const 608 - i32.const 1127 - i32.const 33 + i32.const 1250 + i32.const 64 call $~lib/builtins/abort unreachable end local.get $0 i32.load offset=4 local.get $1 - i32.const 3 + i32.const 2 i32.shl i32.add - i64.load + local.get $2 + f32.store ) - (func $~lib/typedarray/Float32Array#at (param $0 i32) (param $1 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 $~lib/typedarray/Float32Array#reduce (param $0 i32) (param $1 i32) (param $2 f32) (result f32) + (local $3 f32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + local.get $0 + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + local.get $5 + i32.load offset=4 + local.set $6 + i32.const 0 + local.set $7 + local.get $5 + call $~lib/typedarray/Float32Array#get:length + local.set $8 + loop $for-loop|0 + local.get $7 + local.get $8 + i32.lt_s + local.set $9 + local.get $9 + if + local.get $3 + local.get $6 + local.get $7 + i32.const 2 + i32.shl + i32.add + f32.load + local.get $7 + local.get $5 + i32.const 4 + global.set $~argumentsLength + local.get $4 + i32.load + call_indirect (type $f32_f32_i32_i32_=>_f32) + local.set $3 + local.get $7 + i32.const 1 + i32.add + local.set $7 + br $for-loop|0 + end + end + local.get $3 + ) + (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 $~lib/typedarray/Float64Array#reduce (param $0 i32) (param $1 i32) (param $2 f64) (result f64) + (local $3 f64) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + local.get $0 + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + local.get $5 + i32.load offset=4 + local.set $6 + i32.const 0 + local.set $7 + local.get $5 + call $~lib/typedarray/Float64Array#get:length + local.set $8 + loop $for-loop|0 + local.get $7 + local.get $8 + i32.lt_s + local.set $9 + local.get $9 + if + local.get $3 + local.get $6 + local.get $7 + i32.const 3 + i32.shl + i32.add + f64.load + local.get $7 + local.get $5 + i32.const 4 + global.set $~argumentsLength + local.get $4 + i32.load + call_indirect (type $f64_f64_i32_i32_=>_f64) + local.set $3 + local.get $7 + i32.const 1 + i32.add + local.set $7 + br $for-loop|0 + end + end + local.get $3 + ) + (func $~lib/typedarray/Int8Array#at (param $0 i32) (param $1 i32) (result i32) (local $2 i32) local.get $0 i32.load offset=8 - i32.const 2 - i32.shr_u local.set $2 local.get $1 i32.const 0 @@ -5298,7 +6637,7 @@ if i32.const 336 i32.const 608 - i32.const 1262 + i32.const 47 i32.const 33 call $~lib/builtins/abort unreachable @@ -5306,17 +6645,88 @@ local.get $0 i32.load offset=4 local.get $1 + i32.add + i32.load8_s + ) + (func $std/typedarray/testAt<~lib/typedarray/Int8Array,i8> + (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 + i32.const 0 + i32.const 3 + call $~lib/typedarray/Int8Array#constructor + local.tee $0 + i32.store + local.get $0 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Int8Array#__set + local.get $0 + i32.const 1 i32.const 2 - i32.shl + call $~lib/typedarray/Int8Array#__set + local.get $0 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Int8Array#__set + local.get $0 + i32.const 0 + call $~lib/typedarray/Int8Array#at + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 344 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const -1 + call $~lib/typedarray/Int8Array#at + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 345 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const -3 + call $~lib/typedarray/Int8Array#at + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 346 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 4 i32.add - f32.load + global.set $~lib/memory/__stack_pointer ) - (func $~lib/typedarray/Float64Array#at (param $0 i32) (param $1 i32) (result f64) + (func $~lib/typedarray/Uint8Array#at (param $0 i32) (param $1 i32) (result i32) (local $2 i32) local.get $0 i32.load offset=8 - i32.const 3 - i32.shr_u local.set $2 local.get $1 i32.const 0 @@ -5333,7 +6743,7 @@ if i32.const 336 i32.const 608 - i32.const 1397 + i32.const 182 i32.const 33 call $~lib/builtins/abort unreachable @@ -5341,86 +6751,106 @@ local.get $0 i32.load offset=4 local.get $1 - i32.const 3 - i32.shl - i32.add - f64.load - ) - (func $std/typedarray/testReduceRight<~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 + i32.load8_u ) - (func $std/typedarray/testReduceRight<~lib/typedarray/Uint8Array,u8>~anonymous|0 (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (func $std/typedarray/testAt<~lib/typedarray/Uint8Array,u8> + (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 + i32.const 0 + i32.const 3 + call $~lib/typedarray/Uint8Array#constructor + local.tee $0 + i32.store local.get $0 - local.get $1 - i32.add - ) - (func $std/typedarray/testReduceRight<~lib/typedarray/Uint8ClampedArray,u8>~anonymous|0 (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + i32.const 0 + i32.const 1 + call $~lib/typedarray/Uint8Array#__set local.get $0 - local.get $1 - i32.add - ) - (func $std/typedarray/testReduceRight<~lib/typedarray/Int16Array,i16>~anonymous|0 (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + i32.const 1 + i32.const 2 + call $~lib/typedarray/Uint8Array#__set local.get $0 - local.get $1 - i32.add - ) - (func $std/typedarray/testReduceRight<~lib/typedarray/Uint16Array,u16>~anonymous|0 (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + i32.const 2 + i32.const 3 + call $~lib/typedarray/Uint8Array#__set local.get $0 - local.get $1 - i32.add - ) - (func $std/typedarray/testReduceRight<~lib/typedarray/Int32Array,i32>~anonymous|0 (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + i32.const 0 + call $~lib/typedarray/Uint8Array#at + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 344 + i32.const 3 + call $~lib/builtins/abort + unreachable + end local.get $0 - local.get $1 - i32.add - ) - (func $std/typedarray/testReduceRight<~lib/typedarray/Uint32Array,u32>~anonymous|0 (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + i32.const -1 + call $~lib/typedarray/Uint8Array#at + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 345 + i32.const 3 + call $~lib/builtins/abort + unreachable + end local.get $0 - local.get $1 + i32.const -3 + call $~lib/typedarray/Uint8Array#at + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 346 + 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/testReduceRight<~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/testReduceRight<~lib/typedarray/Uint64Array,u64>~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/testReduceRight<~lib/typedarray/Float32Array,f32>~anonymous|0 (param $0 f32) (param $1 f32) (param $2 i32) (param $3 i32) (result f32) + (func $~lib/typedarray/Uint8ClampedArray#at (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) local.get $0 + i32.load offset=8 + local.set $2 local.get $1 - f32.add - ) - (func $std/typedarray/testReduceRight<~lib/typedarray/Float64Array,f64>~anonymous|0 (param $0 f64) (param $1 f64) (param $2 i32) (param $3 i32) (result f64) - local.get $0 + i32.const 0 + local.get $2 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/Uint8Array,u8>~anonymous|0 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - local.get $0 - local.get $0 - i32.mul - ) - (func $~lib/typedarray/Uint8Array#__get (param $0 i32) (param $1 i32) (result i32) + i32.const 0 + i32.ge_s + select + i32.add + local.set $1 local.get $1 - local.get $0 - i32.load offset=8 + local.get $2 i32.ge_u if i32.const 336 i32.const 608 - i32.const 159 - i32.const 45 + i32.const 317 + i32.const 33 call $~lib/builtins/abort unreachable end @@ -5430,173 +6860,325 @@ i32.add i32.load8_u ) - (func $std/typedarray/testArrayMap<~lib/typedarray/Uint8ClampedArray,u8>~anonymous|0 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - local.get $0 + (func $std/typedarray/testAt<~lib/typedarray/Uint8ClampedArray,u8> + (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 + i32.const 0 + i32.const 3 + call $~lib/typedarray/Uint8ClampedArray#constructor + local.tee $0 + i32.store local.get $0 - i32.mul - ) - (func $std/typedarray/testArrayMap<~lib/typedarray/Int16Array,i16>~anonymous|0 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + i32.const 0 + i32.const 1 + call $~lib/typedarray/Uint8ClampedArray#__set local.get $0 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Uint8ClampedArray#__set local.get $0 - i32.mul - ) - (func $~lib/typedarray/Int16Array#__get (param $0 i32) (param $1 i32) (result i32) - local.get $1 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Uint8ClampedArray#__set local.get $0 - i32.load offset=8 + i32.const 0 + call $~lib/typedarray/Uint8ClampedArray#at i32.const 1 - i32.shr_u - i32.ge_u + i32.eq + i32.eqz if - i32.const 336 - i32.const 608 - i32.const 429 - i32.const 64 + i32.const 0 + i32.const 544 + i32.const 344 + i32.const 3 call $~lib/builtins/abort unreachable end local.get $0 - i32.load offset=4 - local.get $1 - i32.const 1 - i32.shl - i32.add - i32.load16_s - ) - (func $std/typedarray/testArrayMap<~lib/typedarray/Uint16Array,u16>~anonymous|0 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - local.get $0 - local.get $0 - i32.mul - ) - (func $~lib/typedarray/Uint16Array#__get (param $0 i32) (param $1 i32) (result i32) - local.get $1 - local.get $0 - i32.load offset=8 - i32.const 1 - i32.shr_u - i32.ge_u + i32.const -1 + call $~lib/typedarray/Uint8ClampedArray#at + i32.const 3 + i32.eq + i32.eqz if - i32.const 336 - i32.const 608 - i32.const 564 - i32.const 64 + i32.const 0 + i32.const 544 + i32.const 345 + i32.const 3 call $~lib/builtins/abort unreachable end local.get $0 - i32.load offset=4 - local.get $1 - i32.const 1 - i32.shl + i32.const -3 + call $~lib/typedarray/Uint8ClampedArray#at + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 346 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 4 i32.add - i32.load16_u - ) - (func $std/typedarray/testArrayMap<~lib/typedarray/Int32Array,i32>~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/Uint32Array,u32>~anonymous|0 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - local.get $0 - local.get $0 - i32.mul + global.set $~lib/memory/__stack_pointer ) - (func $~lib/typedarray/Uint32Array#__get (param $0 i32) (param $1 i32) (result i32) - local.get $1 + (func $~lib/typedarray/Int16Array#at (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) local.get $0 i32.load offset=8 - i32.const 2 + i32.const 1 i32.shr_u + local.set $2 + local.get $1 + i32.const 0 + local.get $2 + local.get $1 + i32.const 0 + i32.ge_s + select + i32.add + local.set $1 + local.get $1 + local.get $2 i32.ge_u if i32.const 336 i32.const 608 - i32.const 834 - i32.const 64 + i32.const 452 + i32.const 33 call $~lib/builtins/abort unreachable end local.get $0 i32.load offset=4 local.get $1 - i32.const 2 + i32.const 1 i32.shl i32.add - i32.load + i32.load16_s ) - (func $std/typedarray/testArrayMap<~lib/typedarray/Int64Array,i64>~anonymous|0 (param $0 i64) (param $1 i32) (param $2 i32) (result i64) + (func $std/typedarray/testAt<~lib/typedarray/Int16Array,i16> + (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 + i32.const 0 + i32.const 3 + call $~lib/typedarray/Int16Array#constructor + local.tee $0 + i32.store local.get $0 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Int16Array#__set local.get $0 - i64.mul - ) - (func $~lib/typedarray/Int64Array#__get (param $0 i32) (param $1 i32) (result i64) - local.get $1 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Int16Array#__set local.get $0 - i32.load offset=8 + i32.const 2 i32.const 3 - i32.shr_u - i32.ge_u + call $~lib/typedarray/Int16Array#__set + local.get $0 + i32.const 0 + call $~lib/typedarray/Int16Array#at + i32.const 1 + i32.eq + i32.eqz if - i32.const 336 - i32.const 608 - i32.const 969 - i32.const 64 + i32.const 0 + i32.const 544 + i32.const 344 + i32.const 3 call $~lib/builtins/abort unreachable end local.get $0 - i32.load offset=4 - local.get $1 + i32.const -1 + call $~lib/typedarray/Int16Array#at i32.const 3 - i32.shl - i32.add - i64.load - ) - (func $std/typedarray/testArrayMap<~lib/typedarray/Uint64Array,u64>~anonymous|0 (param $0 i64) (param $1 i32) (param $2 i32) (result i64) - local.get $0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 345 + i32.const 3 + call $~lib/builtins/abort + unreachable + end local.get $0 - i64.mul + i32.const -3 + call $~lib/typedarray/Int16Array#at + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 346 + 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 $~lib/typedarray/Uint64Array#__get (param $0 i32) (param $1 i32) (result i64) - local.get $1 + (func $~lib/typedarray/Uint16Array#at (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) local.get $0 i32.load offset=8 - i32.const 3 + i32.const 1 i32.shr_u + local.set $2 + local.get $1 + i32.const 0 + local.get $2 + local.get $1 + i32.const 0 + i32.ge_s + select + i32.add + local.set $1 + local.get $1 + local.get $2 i32.ge_u if i32.const 336 i32.const 608 - i32.const 1104 - i32.const 64 + i32.const 587 + i32.const 33 call $~lib/builtins/abort unreachable end local.get $0 i32.load offset=4 local.get $1 - i32.const 3 + i32.const 1 i32.shl i32.add - i64.load + i32.load16_u ) - (func $std/typedarray/testArrayMap<~lib/typedarray/Float32Array,f32>~anonymous|0 (param $0 f32) (param $1 i32) (param $2 i32) (result f32) + (func $std/typedarray/testAt<~lib/typedarray/Uint16Array,u16> + (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 + i32.const 0 + i32.const 3 + call $~lib/typedarray/Uint16Array#constructor + local.tee $0 + i32.store + local.get $0 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Uint16Array#__set local.get $0 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Uint16Array#__set local.get $0 - f32.mul + i32.const 2 + i32.const 3 + call $~lib/typedarray/Uint16Array#__set + local.get $0 + i32.const 0 + call $~lib/typedarray/Uint16Array#at + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 344 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const -1 + call $~lib/typedarray/Uint16Array#at + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 345 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const -3 + call $~lib/typedarray/Uint16Array#at + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 346 + 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 $~lib/typedarray/Float32Array#__get (param $0 i32) (param $1 i32) (result f32) - local.get $1 + (func $~lib/typedarray/Int32Array#at (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) local.get $0 i32.load offset=8 i32.const 2 i32.shr_u + local.set $2 + local.get $1 + i32.const 0 + local.get $2 + local.get $1 + i32.const 0 + i32.ge_s + select + i32.add + local.set $1 + local.get $1 + local.get $2 i32.ge_u if i32.const 336 i32.const 608 - i32.const 1239 - i32.const 64 + i32.const 722 + i32.const 33 call $~lib/builtins/abort unreachable end @@ -5606,6599 +7188,6232 @@ i32.const 2 i32.shl i32.add - f32.load + i32.load ) - (func $std/typedarray/testArrayMap<~lib/typedarray/Float64Array,f64>~anonymous|0 (param $0 f64) (param $1 i32) (param $2 i32) (result f64) + (func $std/typedarray/testAt<~lib/typedarray/Int32Array,i32> + (local $0 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 3 + call $~lib/typedarray/Int32Array#constructor + local.tee $0 + i32.store local.get $0 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Int32Array#__set 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) + i32.const 1 + i32.const 2 + call $~lib/typedarray/Int32Array#__set local.get $0 - i32.const 24 - i32.shl - i32.const 24 - i32.shr_s i32.const 2 - i32.gt_s + i32.const 3 + call $~lib/typedarray/Int32Array#__set + local.get $0 + i32.const 0 + call $~lib/typedarray/Int32Array#at + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 344 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const -1 + call $~lib/typedarray/Int32Array#at + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 345 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const -3 + call $~lib/typedarray/Int32Array#at + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 346 + 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 $~lib/rt/itcms/__renew (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Uint32Array#at (param $0 i32) (param $1 i32) (result i32) (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) local.get $0 - i32.const 20 - i32.sub + i32.load offset=8 + i32.const 2 + i32.shr_u local.set $2 local.get $1 + i32.const 0 local.get $2 - i32.load - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.const 16 - i32.sub - i32.le_u - if - local.get $2 - local.get $1 - call $~lib/rt/itcms/Object#set:rtSize - local.get $0 - return - end local.get $1 - local.get $2 - i32.load offset=12 - call $~lib/rt/itcms/__new - local.set $3 - local.get $3 - local.get $0 + i32.const 0 + i32.ge_s + select + i32.add + local.set $1 local.get $1 - local.tee $4 local.get $2 - i32.load offset=16 - local.tee $5 - local.get $4 - local.get $5 - i32.lt_u - select - call $~lib/memory/memory.copy - local.get $3 - ) - (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/Uint8ClampedArray,u8>~anonymous|0 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + i32.ge_u + if + i32.const 336 + i32.const 608 + i32.const 857 + i32.const 33 + call $~lib/builtins/abort + unreachable + end local.get $0 - i32.const 255 - i32.and + i32.load offset=4 + local.get $1 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) - local.get $0 - i32.const 16 i32.shl - i32.const 16 - i32.shr_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) - local.get $0 - i32.const 65535 - i32.and - i32.const 2 - i32.gt_u + i32.add + i32.load ) - (func $std/typedarray/testArrayFilter<~lib/typedarray/Int32Array,i32>~anonymous|0 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testAt<~lib/typedarray/Uint32Array,u32> + (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 + i32.const 0 + i32.const 3 + call $~lib/typedarray/Uint32Array#constructor + local.tee $0 + i32.store 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) + i32.const 0 + i32.const 1 + call $~lib/typedarray/Uint32Array#__set local.get $0 + i32.const 1 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) - 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) - 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) - 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) - 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) + call $~lib/typedarray/Uint32Array#__set local.get $0 - i32.const 24 - i32.shl - i32.const 24 - i32.shr_s 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) + i32.const 3 + call $~lib/typedarray/Uint32Array#__set local.get $0 - i32.const 24 - i32.shl - i32.const 24 - i32.shr_s i32.const 0 + call $~lib/typedarray/Uint32Array#at + i32.const 1 i32.eq - ) - (func $std/typedarray/testArraySome<~lib/typedarray/Uint8Array,u8>~anonymous|0 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 344 + i32.const 3 + call $~lib/builtins/abort + unreachable + end local.get $0 - i32.const 255 - i32.and - i32.const 2 + i32.const -1 + call $~lib/typedarray/Uint32Array#at + i32.const 3 i32.eq - ) - (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.const 0 - i32.eq - ) - (func $std/typedarray/testArraySome<~lib/typedarray/Uint8ClampedArray,u8>~anonymous|0 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 345 + i32.const 3 + call $~lib/builtins/abort + unreachable + end local.get $0 - i32.const 255 - i32.and - i32.const 2 + i32.const -3 + call $~lib/typedarray/Uint32Array#at + i32.const 1 i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 346 + 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/testArraySome<~lib/typedarray/Uint8ClampedArray,u8>~anonymous|1 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/typedarray/Int64Array#at (param $0 i32) (param $1 i32) (result i64) + (local $2 i32) local.get $0 - i32.const 255 - i32.and + i32.load offset=8 + i32.const 3 + i32.shr_u + local.set $2 + local.get $1 i32.const 0 - i32.eq - ) - (func $std/typedarray/testArraySome<~lib/typedarray/Int16Array,i16>~anonymous|0 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + local.get $2 + local.get $1 + i32.const 0 + i32.ge_s + select + i32.add + local.set $1 + local.get $1 + local.get $2 + i32.ge_u + if + i32.const 336 + i32.const 608 + i32.const 992 + i32.const 33 + call $~lib/builtins/abort + unreachable + end local.get $0 - i32.const 16 + i32.load offset=4 + local.get $1 + i32.const 3 i32.shl - i32.const 16 - i32.shr_s - i32.const 2 - i32.eq + i32.add + i64.load ) - (func $std/typedarray/testArraySome<~lib/typedarray/Int16Array,i16>~anonymous|1 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testAt<~lib/typedarray/Int64Array,i64> + (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 + i32.const 0 + i32.const 3 + call $~lib/typedarray/Int64Array#constructor + local.tee $0 + i32.store local.get $0 - i32.const 16 - i32.shl - i32.const 16 - i32.shr_s i32.const 0 - i32.eq - ) - (func $std/typedarray/testArraySome<~lib/typedarray/Uint16Array,u16>~anonymous|0 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + i64.const 1 + call $~lib/typedarray/Int64Array#__set + local.get $0 + i32.const 1 + i64.const 2 + call $~lib/typedarray/Int64Array#__set local.get $0 - i32.const 65535 - i32.and i32.const 2 - i32.eq - ) - (func $std/typedarray/testArraySome<~lib/typedarray/Uint16Array,u16>~anonymous|1 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + i64.const 3 + call $~lib/typedarray/Int64Array#__set local.get $0 - i32.const 65535 - i32.and i32.const 0 - i32.eq - ) - (func $std/typedarray/testArraySome<~lib/typedarray/Int32Array,i32>~anonymous|0 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + call $~lib/typedarray/Int64Array#at + i64.const 1 + i64.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 344 + i32.const 3 + call $~lib/builtins/abort + unreachable + end local.get $0 - i32.const 2 - i32.eq + i32.const -1 + call $~lib/typedarray/Int64Array#at + i64.const 3 + i64.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 345 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const -3 + call $~lib/typedarray/Int64Array#at + i64.const 1 + i64.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 346 + 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/testArraySome<~lib/typedarray/Int32Array,i32>~anonymous|1 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/typedarray/Uint64Array#at (param $0 i32) (param $1 i32) (result i64) + (local $2 i32) local.get $0 + i32.load offset=8 + i32.const 3 + i32.shr_u + local.set $2 + local.get $1 i32.const 0 - i32.eq - ) - (func $std/typedarray/testArraySome<~lib/typedarray/Uint32Array,u32>~anonymous|0 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + local.get $2 + local.get $1 + i32.const 0 + i32.ge_s + select + i32.add + local.set $1 + local.get $1 + local.get $2 + i32.ge_u + if + i32.const 336 + i32.const 608 + i32.const 1127 + i32.const 33 + call $~lib/builtins/abort + unreachable + end local.get $0 - i32.const 2 - i32.eq + i32.load offset=4 + local.get $1 + i32.const 3 + i32.shl + i32.add + i64.load ) - (func $std/typedarray/testArraySome<~lib/typedarray/Uint32Array,u32>~anonymous|1 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testAt<~lib/typedarray/Uint64Array,u64> + (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 + i32.const 0 + i32.const 3 + call $~lib/typedarray/Uint64Array#constructor + local.tee $0 + i32.store local.get $0 i32.const 0 - i32.eq - ) - (func $std/typedarray/testArraySome<~lib/typedarray/Int64Array,i64>~anonymous|0 (param $0 i64) (param $1 i32) (param $2 i32) (result i32) + i64.const 1 + call $~lib/typedarray/Uint64Array#__set local.get $0 + i32.const 1 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) + call $~lib/typedarray/Uint64Array#__set local.get $0 - i64.const 0 + i32.const 2 + i64.const 3 + call $~lib/typedarray/Uint64Array#__set + local.get $0 + i32.const 0 + call $~lib/typedarray/Uint64Array#at + i64.const 1 i64.eq - ) - (func $std/typedarray/testArraySome<~lib/typedarray/Uint64Array,u64>~anonymous|0 (param $0 i64) (param $1 i32) (param $2 i32) (result i32) + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 344 + i32.const 3 + call $~lib/builtins/abort + unreachable + end local.get $0 - i64.const 2 + i32.const -1 + call $~lib/typedarray/Uint64Array#at + i64.const 3 i64.eq - ) - (func $std/typedarray/testArraySome<~lib/typedarray/Uint64Array,u64>~anonymous|1 (param $0 i64) (param $1 i32) (param $2 i32) (result i32) + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 345 + i32.const 3 + call $~lib/builtins/abort + unreachable + end local.get $0 - i64.const 0 + i32.const -3 + call $~lib/typedarray/Uint64Array#at + i64.const 1 i64.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 346 + 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/testArraySome<~lib/typedarray/Float32Array,f32>~anonymous|0 (param $0 f32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/typedarray/Float32Array#at (param $0 i32) (param $1 i32) (result f32) + (local $2 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) + i32.load offset=8 + i32.const 2 + i32.shr_u + local.set $2 + local.get $1 + i32.const 0 + local.get $2 + local.get $1 + i32.const 0 + i32.ge_s + select + i32.add + local.set $1 + local.get $1 + local.get $2 + i32.ge_u + if + i32.const 336 + i32.const 608 + i32.const 1262 + i32.const 33 + call $~lib/builtins/abort + unreachable + end local.get $0 - f32.const 0 - f32.eq + i32.load offset=4 + local.get $1 + i32.const 2 + i32.shl + i32.add + f32.load ) - (func $std/typedarray/testArraySome<~lib/typedarray/Float64Array,f64>~anonymous|0 (param $0 f64) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testAt<~lib/typedarray/Float32Array,f32> + (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 + i32.const 0 + i32.const 3 + call $~lib/typedarray/Float32Array#constructor + local.tee $0 + i32.store 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 0 + f32.const 1 + call $~lib/typedarray/Float32Array#__set local.get $0 - f64.const 0 - f64.eq - ) - (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Int8Array,i8>~anonymous|0 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + i32.const 1 + f32.const 2 + call $~lib/typedarray/Float32Array#__set local.get $0 - i32.const 24 - i32.shl - i32.const 24 - i32.shr_s i32.const 2 - i32.eq - ) - (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Int8Array,i8>~anonymous|1 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + f32.const 3 + call $~lib/typedarray/Float32Array#__set local.get $0 - i32.const 24 - i32.shl - i32.const 24 - i32.shr_s - i32.const 4 - i32.eq - ) - (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Uint8Array,u8>~anonymous|0 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + i32.const 0 + call $~lib/typedarray/Float32Array#at + f32.const 1 + f32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 344 + i32.const 3 + call $~lib/builtins/abort + unreachable + end local.get $0 - i32.const 255 - i32.and - i32.const 2 - i32.eq - ) - (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Uint8Array,u8>~anonymous|1 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + i32.const -1 + call $~lib/typedarray/Float32Array#at + f32.const 3 + f32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 345 + i32.const 3 + call $~lib/builtins/abort + unreachable + end local.get $0 - i32.const 255 - i32.and + i32.const -3 + call $~lib/typedarray/Float32Array#at + f32.const 1 + f32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 346 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer i32.const 4 - i32.eq - ) - (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Uint8ClampedArray,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 + i32.add + global.set $~lib/memory/__stack_pointer ) - (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Uint8ClampedArray,u8>~anonymous|1 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/typedarray/Float64Array#at (param $0 i32) (param $1 i32) (result f64) + (local $2 i32) local.get $0 - i32.const 255 - i32.and - i32.const 4 - i32.eq - ) - (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Int16Array,i16>~anonymous|0 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + i32.load offset=8 + i32.const 3 + i32.shr_u + local.set $2 + local.get $1 + i32.const 0 + local.get $2 + local.get $1 + i32.const 0 + i32.ge_s + select + i32.add + local.set $1 + local.get $1 + local.get $2 + i32.ge_u + if + i32.const 336 + i32.const 608 + i32.const 1397 + i32.const 33 + call $~lib/builtins/abort + unreachable + end local.get $0 - i32.const 16 + i32.load offset=4 + local.get $1 + i32.const 3 i32.shl - i32.const 16 - i32.shr_s - i32.const 2 - i32.eq + i32.add + f64.load ) - (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 16 - i32.shl - i32.const 16 - i32.shr_s + (func $std/typedarray/testAt<~lib/typedarray/Float64Array,f64> + (local $0 i32) + global.get $~lib/memory/__stack_pointer i32.const 4 - i32.eq - ) - (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Uint16Array,u16>~anonymous|0 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + 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 + i32.const 0 + i32.const 3 + call $~lib/typedarray/Float64Array#constructor + local.tee $0 + i32.store local.get $0 - i32.const 65535 - i32.and - i32.const 2 - i32.eq - ) - (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Uint16Array,u16>~anonymous|1 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + i32.const 0 + f64.const 1 + call $~lib/typedarray/Float64Array#__set local.get $0 - i32.const 65535 - i32.and - i32.const 4 - i32.eq - ) - (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Int32Array,i32>~anonymous|0 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + i32.const 1 + f64.const 2 + call $~lib/typedarray/Float64Array#__set local.get $0 i32.const 2 - i32.eq - ) - (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Int32Array,i32>~anonymous|1 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + f64.const 3 + call $~lib/typedarray/Float64Array#__set local.get $0 - i32.const 4 - i32.eq - ) - (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Uint32Array,u32>~anonymous|0 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - local.get $0 - i32.const 2 - i32.eq - ) - (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Uint32Array,u32>~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|0 (param $0 i64) (param $1 i32) (param $2 i32) (result i32) - local.get $0 - i64.const 2 - i64.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/Uint64Array,u64>~anonymous|0 (param $0 i64) (param $1 i32) (param $2 i32) (result i32) - local.get $0 - i64.const 2 - i64.eq - ) - (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Uint64Array,u64>~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|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/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|0 (param $0 f64) (param $1 i32) (param $2 i32) (result i32) - local.get $0 - f64.const 2 + i32.const 0 + call $~lib/typedarray/Float64Array#at + f64.const 1 f64.eq - ) - (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Float64Array,f64>~anonymous|1 (param $0 f64) (param $1 i32) (param $2 i32) (result i32) + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 344 + i32.const 3 + call $~lib/builtins/abort + unreachable + end local.get $0 - f64.const 4 + i32.const -1 + call $~lib/typedarray/Float64Array#at + f64.const 3 f64.eq - ) - (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.const 24 - i32.shl - i32.const 24 - i32.shr_s - i32.const 2 - i32.rem_s - i32.const 0 - i32.eq - ) - (func $std/typedarray/testArrayEvery<~lib/typedarray/Int8Array,i8>~anonymous|1 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - local.get $0 - i32.const 24 - i32.shl - i32.const 24 - i32.shr_s - i32.const 2 - i32.eq - ) - (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 255 - i32.and - i32.const 2 - i32.rem_u - i32.const 0 - i32.eq - ) - (func $std/typedarray/testArrayEvery<~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 2 - i32.eq - ) - (func $std/typedarray/testArrayEvery<~lib/typedarray/Uint8ClampedArray,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.rem_u - i32.const 0 - i32.eq - ) - (func $std/typedarray/testArrayEvery<~lib/typedarray/Uint8ClampedArray,u8>~anonymous|1 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - local.get $0 - i32.const 255 - i32.and - i32.const 2 - i32.eq - ) - (func $std/typedarray/testArrayEvery<~lib/typedarray/Int16Array,i16>~anonymous|0 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - local.get $0 - i32.const 16 - i32.shl - i32.const 16 - i32.shr_s - i32.const 2 - i32.rem_s - i32.const 0 - i32.eq - ) - (func $std/typedarray/testArrayEvery<~lib/typedarray/Int16Array,i16>~anonymous|1 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - local.get $0 - i32.const 16 - i32.shl - i32.const 16 - i32.shr_s - i32.const 2 - i32.eq - ) - (func $std/typedarray/testArrayEvery<~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.rem_u - i32.const 0 - i32.eq - ) - (func $std/typedarray/testArrayEvery<~lib/typedarray/Uint16Array,u16>~anonymous|1 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - local.get $0 - i32.const 65535 - i32.and - i32.const 2 - i32.eq - ) - (func $std/typedarray/testArrayEvery<~lib/typedarray/Int32Array,i32>~anonymous|0 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 345 + i32.const 3 + call $~lib/builtins/abort + unreachable + end local.get $0 - i32.const 2 - i32.rem_s - i32.const 0 - i32.eq + i32.const -3 + call $~lib/typedarray/Float64Array#at + f64.const 1 + f64.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 346 + 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/testArrayEvery<~lib/typedarray/Int32Array,i32>~anonymous|1 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testReduceRight<~lib/typedarray/Int8Array,i8>~anonymous|0 (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) local.get $0 - i32.const 2 - i32.eq + local.get $1 + i32.add ) - (func $std/typedarray/testArrayEvery<~lib/typedarray/Uint32Array,u32>~anonymous|0 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/typedarray/Int8Array#reduceRight (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.get $0 - i32.const 2 - i32.rem_u - i32.const 0 - i32.eq + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + local.get $5 + i32.load offset=4 + local.set $6 + local.get $5 + call $~lib/typedarray/Int8Array#get:length + i32.const 1 + i32.sub + local.set $7 + loop $for-loop|0 + local.get $7 + i32.const 0 + i32.ge_s + local.set $8 + local.get $8 + if + local.get $3 + local.get $6 + local.get $7 + i32.const 0 + i32.shl + i32.add + i32.load8_s + local.get $7 + local.get $5 + i32.const 4 + global.set $~argumentsLength + local.get $4 + i32.load + call_indirect (type $i32_i32_i32_i32_=>_i32) + local.set $3 + local.get $7 + i32.const 1 + i32.sub + local.set $7 + br $for-loop|0 + end + end + local.get $3 ) - (func $std/typedarray/testArrayEvery<~lib/typedarray/Uint32Array,u32>~anonymous|1 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testReduceRight<~lib/typedarray/Uint8Array,u8>~anonymous|0 (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) local.get $0 - i32.const 2 - i32.eq + local.get $1 + i32.add ) - (func $std/typedarray/testArrayEvery<~lib/typedarray/Int64Array,i64>~anonymous|0 (param $0 i64) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/typedarray/Uint8Array#reduceRight (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.get $0 - i64.const 2 - i64.rem_s - i64.const 0 - i64.eq + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + local.get $5 + i32.load offset=4 + local.set $6 + local.get $5 + call $~lib/typedarray/Uint8Array#get:length + i32.const 1 + i32.sub + local.set $7 + loop $for-loop|0 + local.get $7 + i32.const 0 + i32.ge_s + local.set $8 + local.get $8 + if + local.get $3 + local.get $6 + local.get $7 + i32.const 0 + i32.shl + i32.add + i32.load8_u + local.get $7 + local.get $5 + i32.const 4 + global.set $~argumentsLength + local.get $4 + i32.load + call_indirect (type $i32_i32_i32_i32_=>_i32) + local.set $3 + local.get $7 + i32.const 1 + i32.sub + local.set $7 + br $for-loop|0 + end + end + local.get $3 ) - (func $std/typedarray/testArrayEvery<~lib/typedarray/Int64Array,i64>~anonymous|1 (param $0 i64) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testReduceRight<~lib/typedarray/Uint8ClampedArray,u8>~anonymous|0 (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) local.get $0 - i64.const 2 - i64.eq + local.get $1 + i32.add ) - (func $std/typedarray/testArrayEvery<~lib/typedarray/Uint64Array,u64>~anonymous|0 (param $0 i64) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/typedarray/Uint8ClampedArray#reduceRight (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.get $0 - i64.const 2 - i64.rem_u - i64.const 0 - i64.eq + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + local.get $5 + i32.load offset=4 + local.set $6 + local.get $5 + call $~lib/typedarray/Uint8ClampedArray#get:length + i32.const 1 + i32.sub + local.set $7 + loop $for-loop|0 + local.get $7 + i32.const 0 + i32.ge_s + local.set $8 + local.get $8 + if + local.get $3 + local.get $6 + local.get $7 + i32.const 0 + i32.shl + i32.add + i32.load8_u + local.get $7 + local.get $5 + i32.const 4 + global.set $~argumentsLength + local.get $4 + i32.load + call_indirect (type $i32_i32_i32_i32_=>_i32) + local.set $3 + local.get $7 + i32.const 1 + i32.sub + local.set $7 + br $for-loop|0 + end + end + local.get $3 ) - (func $std/typedarray/testArrayEvery<~lib/typedarray/Uint64Array,u64>~anonymous|1 (param $0 i64) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testReduceRight<~lib/typedarray/Int16Array,i16>~anonymous|0 (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) local.get $0 - i64.const 2 - i64.eq + local.get $1 + i32.add ) - (func $~lib/math/NativeMathf.mod (param $0 f32) (param $1 f32) (result f32) - (local $2 i32) + (func $~lib/typedarray/Int16Array#reduceRight (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 f32) - (local $9 i32) - (local $10 i32) - (local $11 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 $8 i32) local.get $0 - i32.reinterpret_f32 - local.set $2 + local.set $5 local.get $1 - i32.reinterpret_f32 - local.set $3 - local.get $2 - i32.const 23 - i32.shr_u - i32.const 255 - i32.and local.set $4 - local.get $3 - i32.const 23 - i32.shr_u - i32.const 255 - i32.and - local.set $5 local.get $2 - i32.const -2147483648 - i32.and + local.set $3 + local.get $5 + i32.load offset=4 local.set $6 - local.get $3 + local.get $5 + call $~lib/typedarray/Int16Array#get:length i32.const 1 - i32.shl + i32.sub local.set $7 - local.get $7 - i32.const 0 - i32.eq - if (result i32) - i32.const 1 - else - local.get $4 - i32.const 255 - i32.eq - end - if (result i32) - i32.const 1 - else - local.get $1 - local.get $1 - f32.ne - end - if - local.get $0 - local.get $1 - f32.mul + loop $for-loop|0 + local.get $7 + i32.const 0 + i32.ge_s local.set $8 local.get $8 - local.get $8 - f32.div - return + if + local.get $3 + local.get $6 + local.get $7 + i32.const 1 + i32.shl + i32.add + i32.load16_s + local.get $7 + local.get $5 + i32.const 4 + global.set $~argumentsLength + local.get $4 + i32.load + call_indirect (type $i32_i32_i32_i32_=>_i32) + local.set $3 + local.get $7 + i32.const 1 + i32.sub + local.set $7 + br $for-loop|0 + end end + local.get $3 + ) + (func $std/typedarray/testReduceRight<~lib/typedarray/Uint16Array,u16>~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 $~lib/typedarray/Uint16Array#reduceRight (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.get $0 + local.set $5 + local.get $1 + local.set $4 local.get $2 + local.set $3 + local.get $5 + i32.load offset=4 + local.set $6 + local.get $5 + call $~lib/typedarray/Uint16Array#get:length i32.const 1 - i32.shl - local.set $9 - local.get $9 - local.get $7 - i32.le_u - if - local.get $0 - local.get $9 + i32.sub + local.set $7 + loop $for-loop|0 local.get $7 - i32.ne - f32.convert_i32_u - f32.mul - return - end - local.get $4 - i32.eqz - if - local.get $4 - local.get $2 - i32.const 9 - i32.shl - i32.clz - i32.sub - local.set $4 - local.get $2 - i32.const 1 - local.get $4 - i32.sub - i32.shl - local.set $2 - else - local.get $2 - i32.const -1 - i32.const 9 - i32.shr_u - i32.and - local.set $2 - local.get $2 - i32.const 1 - i32.const 23 - i32.shl - i32.or - local.set $2 - end - local.get $5 - i32.eqz - if - local.get $5 - local.get $3 - i32.const 9 - i32.shl - i32.clz - i32.sub - local.set $5 - local.get $3 - i32.const 1 - local.get $5 - i32.sub - i32.shl - local.set $3 - else - local.get $3 - i32.const -1 - i32.const 9 - i32.shr_u - i32.and - local.set $3 - local.get $3 - i32.const 1 - i32.const 23 - i32.shl - i32.or - local.set $3 - end - loop $while-continue|0 - local.get $4 - local.get $5 - i32.gt_s - local.set $10 - local.get $10 + i32.const 0 + i32.ge_s + local.set $8 + local.get $8 if - local.get $2 local.get $3 - i32.ge_u - if - local.get $2 - local.get $3 - i32.eq - if - f32.const 0 - local.get $0 - f32.mul - return - end - local.get $2 - local.get $3 - i32.sub - local.set $2 - end - local.get $2 + local.get $6 + local.get $7 i32.const 1 i32.shl - local.set $2 + i32.add + i32.load16_u + local.get $7 + local.get $5 + i32.const 4 + global.set $~argumentsLength local.get $4 + i32.load + call_indirect (type $i32_i32_i32_i32_=>_i32) + local.set $3 + local.get $7 i32.const 1 i32.sub - local.set $4 - br $while-continue|0 + local.set $7 + br $for-loop|0 end end - local.get $2 local.get $3 - i32.ge_u - if - local.get $2 - local.get $3 - i32.eq + ) + (func $std/typedarray/testReduceRight<~lib/typedarray/Int32Array,i32>~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 $~lib/typedarray/Int32Array#reduceRight (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.get $0 + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + local.get $5 + i32.load offset=4 + local.set $6 + local.get $5 + call $~lib/typedarray/Int32Array#get:length + i32.const 1 + i32.sub + local.set $7 + loop $for-loop|0 + local.get $7 + i32.const 0 + i32.ge_s + local.set $8 + local.get $8 if - f32.const 0 - local.get $0 - f32.mul - return + local.get $3 + local.get $6 + local.get $7 + i32.const 2 + i32.shl + i32.add + i32.load + local.get $7 + local.get $5 + i32.const 4 + global.set $~argumentsLength + local.get $4 + i32.load + call_indirect (type $i32_i32_i32_i32_=>_i32) + local.set $3 + local.get $7 + i32.const 1 + i32.sub + local.set $7 + br $for-loop|0 end - local.get $2 - local.get $3 - i32.sub - local.set $2 end - local.get $2 - i32.const 8 - i32.shl - i32.clz - local.set $11 - local.get $4 - local.get $11 - i32.sub + local.get $3 + ) + (func $std/typedarray/testReduceRight<~lib/typedarray/Uint32Array,u32>~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 $~lib/typedarray/Uint32Array#reduceRight (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.get $0 + local.set $5 + local.get $1 local.set $4 local.get $2 - local.get $11 - i32.shl - local.set $2 - local.get $4 - i32.const 0 - i32.gt_s - if - local.get $2 - i32.const 1 - i32.const 23 - i32.shl - i32.sub - local.set $2 - local.get $2 - local.get $4 - i32.const 23 - i32.shl - i32.or - local.set $2 - else - local.get $2 + local.set $3 + local.get $5 + i32.load offset=4 + local.set $6 + local.get $5 + call $~lib/typedarray/Uint32Array#get:length + i32.const 1 + i32.sub + local.set $7 + loop $for-loop|0 + local.get $7 i32.const 0 - local.get $4 - i32.sub - i32.const 1 - i32.add - i32.shr_u - local.set $2 + i32.ge_s + local.set $8 + local.get $8 + if + local.get $3 + local.get $6 + local.get $7 + i32.const 2 + i32.shl + i32.add + i32.load + local.get $7 + local.get $5 + i32.const 4 + global.set $~argumentsLength + local.get $4 + i32.load + call_indirect (type $i32_i32_i32_i32_=>_i32) + local.set $3 + local.get $7 + i32.const 1 + i32.sub + local.set $7 + br $for-loop|0 + end end - local.get $2 - local.get $6 - i32.or - f32.reinterpret_i32 - ) - (func $std/typedarray/testArrayEvery<~lib/typedarray/Float32Array,f32>~anonymous|0 (param $0 f32) (param $1 i32) (param $2 i32) (result i32) - local.get $0 - f32.const 2 - call $~lib/math/NativeMathf.mod - f32.const 0 - f32.eq + local.get $3 ) - (func $std/typedarray/testArrayEvery<~lib/typedarray/Float32Array,f32>~anonymous|1 (param $0 f32) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testReduceRight<~lib/typedarray/Int64Array,i64>~anonymous|0 (param $0 i64) (param $1 i64) (param $2 i32) (param $3 i32) (result i64) local.get $0 - f32.const 2 - f32.eq + local.get $1 + i64.add ) - (func $~lib/math/NativeMath.mod (param $0 f64) (param $1 f64) (result f64) - (local $2 i64) + (func $~lib/typedarray/Int64Array#reduceRight (param $0 i32) (param $1 i32) (param $2 i64) (result i64) (local $3 i64) - (local $4 i64) - (local $5 i64) - (local $6 i64) - (local $7 i64) - (local $8 f64) - (local $9 i64) - (local $10 i32) - (local $11 i64) - local.get $1 - f64.abs - f64.const 1 - f64.eq - if - local.get $0 - local.get $0 - f64.trunc - f64.sub - local.get $0 - f64.copysign - return - end + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) local.get $0 - i64.reinterpret_f64 - local.set $2 + local.set $5 local.get $1 - i64.reinterpret_f64 - local.set $3 - local.get $2 - i64.const 52 - i64.shr_u - i64.const 2047 - i64.and local.set $4 - local.get $3 - i64.const 52 - i64.shr_u - i64.const 2047 - i64.and - local.set $5 local.get $2 - i64.const 63 - i64.shr_u + local.set $3 + local.get $5 + i32.load offset=4 local.set $6 - local.get $3 - i64.const 1 - i64.shl + local.get $5 + call $~lib/typedarray/Int64Array#get:length + i32.const 1 + i32.sub local.set $7 - local.get $7 - i64.const 0 - i64.eq - if (result i32) - i32.const 1 - else - local.get $4 - i64.const 2047 - i64.eq - end - if (result i32) - i32.const 1 - else - local.get $1 - local.get $1 - f64.ne - end - if - local.get $0 - local.get $1 - f64.mul + loop $for-loop|0 + local.get $7 + i32.const 0 + i32.ge_s local.set $8 local.get $8 - local.get $8 - f64.div - return - end - local.get $2 - i64.const 1 - i64.shl - local.set $9 - local.get $9 - local.get $7 - i64.le_u - if - local.get $0 - local.get $9 - local.get $7 - i64.ne - f64.convert_i32_u - f64.mul - return - end - local.get $4 - i64.const 0 - i64.ne - i32.eqz - if - local.get $4 - local.get $2 - i64.const 12 - i64.shl - i64.clz - i64.sub - local.set $4 - local.get $2 - i64.const 1 - local.get $4 - i64.sub - i64.shl - local.set $2 - else - local.get $2 - i64.const -1 - i64.const 12 - i64.shr_u - i64.and - local.set $2 - local.get $2 - i64.const 1 - i64.const 52 - i64.shl - i64.or - local.set $2 - end - local.get $5 - i64.const 0 - i64.ne - i32.eqz - if - local.get $5 - local.get $3 - i64.const 12 - i64.shl - i64.clz - i64.sub - local.set $5 - local.get $3 - i64.const 1 - local.get $5 - i64.sub - i64.shl - local.set $3 - else - local.get $3 - i64.const -1 - i64.const 12 - i64.shr_u - i64.and - local.set $3 - local.get $3 - i64.const 1 - i64.const 52 - i64.shl - i64.or - local.set $3 - end - loop $while-continue|0 - local.get $4 - local.get $5 - i64.gt_s - local.set $10 - local.get $10 if - local.get $2 local.get $3 - i64.ge_u - if - local.get $2 - local.get $3 - i64.eq - if - f64.const 0 - local.get $0 - f64.mul - return - end - local.get $2 - local.get $3 - i64.sub - local.set $2 - end - local.get $2 - i64.const 1 - i64.shl - local.set $2 + local.get $6 + local.get $7 + i32.const 3 + i32.shl + i32.add + i64.load + local.get $7 + local.get $5 + i32.const 4 + global.set $~argumentsLength local.get $4 - i64.const 1 - i64.sub - local.set $4 - br $while-continue|0 + i32.load + call_indirect (type $i64_i64_i32_i32_=>_i64) + local.set $3 + local.get $7 + i32.const 1 + i32.sub + local.set $7 + br $for-loop|0 end end - local.get $2 local.get $3 - i64.ge_u - if - local.get $2 - local.get $3 - i64.eq - if - f64.const 0 - local.get $0 - f64.mul - return - end - local.get $2 - local.get $3 - i64.sub - local.set $2 - end - local.get $2 - i64.const 11 - i64.shl - i64.clz - local.set $11 - local.get $4 - local.get $11 - i64.sub - local.set $4 - local.get $2 - local.get $11 - i64.shl - local.set $2 - local.get $4 - i64.const 0 - i64.gt_s - if - local.get $2 - i64.const 1 - i64.const 52 - i64.shl - i64.sub - local.set $2 - local.get $2 - local.get $4 - i64.const 52 - i64.shl - i64.or - local.set $2 - else - local.get $2 - i64.const 0 - local.get $4 - i64.sub - i64.const 1 - i64.add - i64.shr_u - local.set $2 - end - local.get $2 - local.get $6 - i64.const 63 - i64.shl - i64.or - f64.reinterpret_i64 - ) - (func $std/typedarray/testArrayEvery<~lib/typedarray/Float64Array,f64>~anonymous|0 (param $0 f64) (param $1 i32) (param $2 i32) (result i32) - local.get $0 - f64.const 2 - call $~lib/math/NativeMath.mod - f64.const 0 - f64.eq ) - (func $std/typedarray/testArrayEvery<~lib/typedarray/Float64Array,f64>~anonymous|1 (param $0 f64) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testReduceRight<~lib/typedarray/Uint64Array,u64>~anonymous|0 (param $0 i64) (param $1 i64) (param $2 i32) (param $3 i32) (result i64) local.get $0 - f64.const 2 - f64.eq + local.get $1 + i64.add ) - (func $~lib/util/number/decimalCount32 (param $0 i32) (result i32) + (func $~lib/typedarray/Uint64Array#reduceRight (param $0 i32) (param $1 i32) (param $2 i64) (result i64) + (local $3 i64) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) local.get $0 - i32.const 100000 - i32.lt_u - if - local.get $0 - i32.const 100 - i32.lt_u + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + local.get $5 + i32.load offset=4 + local.set $6 + local.get $5 + call $~lib/typedarray/Uint64Array#get:length + i32.const 1 + i32.sub + local.set $7 + loop $for-loop|0 + local.get $7 + i32.const 0 + i32.ge_s + local.set $8 + local.get $8 if - i32.const 1 - local.get $0 - i32.const 10 - i32.ge_u - i32.add - return - else + local.get $3 + local.get $6 + local.get $7 i32.const 3 - local.get $0 - i32.const 10000 - i32.ge_u - i32.add - local.get $0 - i32.const 1000 - i32.ge_u - i32.add - return - end - unreachable - else - local.get $0 - i32.const 10000000 - i32.lt_u - if - i32.const 6 - local.get $0 - i32.const 1000000 - i32.ge_u - i32.add - return - else - i32.const 8 - local.get $0 - i32.const 1000000000 - i32.ge_u - i32.add - local.get $0 - i32.const 100000000 - i32.ge_u + i32.shl i32.add - return + i64.load + local.get $7 + local.get $5 + i32.const 4 + global.set $~argumentsLength + local.get $4 + i32.load + call_indirect (type $i64_i64_i32_i32_=>_i64) + local.set $3 + local.get $7 + i32.const 1 + i32.sub + local.set $7 + br $for-loop|0 end - unreachable end - unreachable + local.get $3 ) - (func $~lib/util/number/utoa32_dec_lut (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) + (func $std/typedarray/testReduceRight<~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 $~lib/typedarray/Float32Array#reduceRight (param $0 i32) (param $1 i32) (param $2 f32) (result f32) + (local $3 f32) (local $4 i32) (local $5 i32) (local $6 i32) (local $7 i32) - (local $8 i64) - (local $9 i64) - (local $10 i32) - (local $11 i32) - loop $while-continue|0 - local.get $1 - i32.const 10000 - i32.ge_u - local.set $3 - local.get $3 + (local $8 i32) + local.get $0 + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + local.get $5 + i32.load offset=4 + local.set $6 + local.get $5 + call $~lib/typedarray/Float32Array#get:length + i32.const 1 + i32.sub + local.set $7 + loop $for-loop|0 + local.get $7 + i32.const 0 + i32.ge_s + local.set $8 + local.get $8 if - local.get $1 - i32.const 10000 - i32.div_u - local.set $4 - local.get $1 - i32.const 10000 - i32.rem_u - local.set $5 - local.get $4 - local.set $1 - local.get $5 - i32.const 100 - i32.div_u - local.set $6 - local.get $5 - i32.const 100 - i32.rem_u - local.set $7 - i32.const 6284 + local.get $3 local.get $6 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $8 - i32.const 6284 local.get $7 i32.const 2 i32.shl i32.add - i64.load32_u - local.set $9 - local.get $2 + f32.load + local.get $7 + local.get $5 i32.const 4 - i32.sub - local.set $2 - local.get $0 - local.get $2 + global.set $~argumentsLength + local.get $4 + i32.load + call_indirect (type $f32_f32_i32_i32_=>_f32) + local.set $3 + local.get $7 i32.const 1 - i32.shl - i32.add - local.get $8 - local.get $9 - i64.const 32 - i64.shl - i64.or - i64.store - br $while-continue|0 + i32.sub + local.set $7 + br $for-loop|0 end end + local.get $3 + ) + (func $std/typedarray/testReduceRight<~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.const 100 - i32.ge_u - if - local.get $1 - i32.const 100 - i32.div_u - local.set $3 - local.get $1 - i32.const 100 - i32.rem_u - local.set $10 - local.get $3 - local.set $1 - local.get $2 - i32.const 2 - i32.sub - local.set $2 - i32.const 6284 - local.get $10 - i32.const 2 - i32.shl - i32.add - i32.load - local.set $11 - local.get $0 - local.get $2 - i32.const 1 - i32.shl - i32.add - local.get $11 - i32.store - end - local.get $1 - i32.const 10 - i32.ge_u - if - local.get $2 - i32.const 2 - i32.sub - local.set $2 - i32.const 6284 - local.get $1 - i32.const 2 - i32.shl - i32.add - i32.load - local.set $11 - local.get $0 - local.get $2 - i32.const 1 - i32.shl - i32.add - local.get $11 - i32.store - else - local.get $2 - i32.const 1 - i32.sub - local.set $2 - i32.const 48 - local.get $1 - i32.add - local.set $11 - local.get $0 - local.get $2 - i32.const 1 - i32.shl - i32.add - local.get $11 - i32.store16 - end + f64.add ) - (func $~lib/util/number/utoa_hex_lut (param $0 i32) (param $1 i64) (param $2 i32) - (local $3 i32) - loop $while-continue|0 - local.get $2 - i32.const 2 - i32.ge_u - local.set $3 - local.get $3 + (func $~lib/typedarray/Float64Array#reduceRight (param $0 i32) (param $1 i32) (param $2 f64) (result f64) + (local $3 f64) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + local.get $0 + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + local.get $5 + i32.load offset=4 + local.set $6 + local.get $5 + call $~lib/typedarray/Float64Array#get:length + i32.const 1 + i32.sub + local.set $7 + loop $for-loop|0 + local.get $7 + i32.const 0 + i32.ge_s + local.set $8 + local.get $8 if - local.get $2 - i32.const 2 - i32.sub - local.set $2 - local.get $0 - local.get $2 - i32.const 1 - i32.shl - i32.add - i32.const 6704 - local.get $1 - i32.wrap_i64 - i32.const 255 - i32.and - i32.const 2 + local.get $3 + local.get $6 + local.get $7 + i32.const 3 i32.shl i32.add + f64.load + local.get $7 + local.get $5 + i32.const 4 + global.set $~argumentsLength + local.get $4 i32.load - i32.store - local.get $1 - i64.const 8 - i64.shr_u - local.set $1 - br $while-continue|0 + call_indirect (type $f64_f64_i32_i32_=>_f64) + local.set $3 + local.get $7 + i32.const 1 + i32.sub + local.set $7 + br $for-loop|0 end end - local.get $2 + local.get $3 + ) + (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/Uint8Array,u8>~anonymous|0 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + local.get $0 + local.get $0 + i32.mul + ) + (func $~lib/typedarray/Uint8Array#__get (param $0 i32) (param $1 i32) (result i32) + local.get $1 + local.get $0 + i32.load offset=8 + i32.ge_u + if + i32.const 336 + i32.const 608 + i32.const 159 + i32.const 45 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=4 + local.get $1 + i32.add + i32.load8_u + ) + (func $std/typedarray/testArrayMap<~lib/typedarray/Uint8ClampedArray,u8>~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/Int16Array,i16>~anonymous|0 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + local.get $0 + local.get $0 + i32.mul + ) + (func $~lib/typedarray/Int16Array#__get (param $0 i32) (param $1 i32) (result i32) + local.get $1 + local.get $0 + i32.load offset=8 i32.const 1 - i32.and + i32.shr_u + i32.ge_u if - local.get $0 - i32.const 6704 - local.get $1 - i32.wrap_i64 - i32.const 6 - i32.shl - i32.add - i32.load16_u - i32.store16 + i32.const 336 + i32.const 608 + i32.const 429 + i32.const 64 + call $~lib/builtins/abort + unreachable end + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 1 + i32.shl + i32.add + i32.load16_s ) - (func $~lib/util/number/ulog_base (param $0 i64) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i64) - (local $4 i64) - (local $5 i32) + (func $std/typedarray/testArrayMap<~lib/typedarray/Uint16Array,u16>~anonymous|0 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + local.get $0 + local.get $0 + i32.mul + ) + (func $~lib/typedarray/Uint16Array#__get (param $0 i32) (param $1 i32) (result i32) local.get $1 - local.set $2 - local.get $2 - i32.popcnt + local.get $0 + i32.load offset=8 i32.const 1 - i32.eq + i32.shr_u + i32.ge_u 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 - return + i32.const 336 + i32.const 608 + i32.const 564 + i32.const 64 + call $~lib/builtins/abort + unreachable end + local.get $0 + i32.load offset=4 local.get $1 - i64.extend_i32_s - local.set $3 - local.get $3 - local.set $4 i32.const 1 - local.set $5 - loop $while-continue|0 - local.get $0 - local.get $4 - i64.ge_u - local.set $2 - local.get $2 - if - local.get $0 - local.get $4 - i64.div_u - local.set $0 - local.get $4 - local.get $4 - i64.mul - local.set $4 - local.get $5 - i32.const 1 - i32.shl - local.set $5 - br $while-continue|0 - end - end - loop $while-continue|1 - local.get $0 - i64.const 1 - i64.ge_u - local.set $2 - local.get $2 - if - local.get $0 - local.get $3 - i64.div_u - local.set $0 - local.get $5 - i32.const 1 - i32.add - local.set $5 - br $while-continue|1 - end - end - local.get $5 - i32.const 1 - i32.sub + i32.shl + i32.add + i32.load16_u ) - (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 i64) - (local $7 i32) - local.get $3 - i64.extend_i32_s - local.set $4 - local.get $3 - local.get $3 - i32.const 1 - i32.sub - i32.and - i32.const 0 - i32.eq - if - local.get $3 - i32.ctz - i32.const 7 - i32.and - i64.extend_i32_s - local.set $5 - local.get $4 - i64.const 1 - i64.sub - local.set $6 - loop $do-continue|0 - local.get $2 - i32.const 1 - i32.sub - local.set $2 - local.get $0 - local.get $2 - i32.const 1 - i32.shl - i32.add - i32.const 7760 - local.get $1 - local.get $6 - i64.and - i32.wrap_i64 - i32.const 1 - i32.shl - i32.add - i32.load16_u - i32.store16 - local.get $1 - local.get $5 - i64.shr_u - local.set $1 - local.get $1 - i64.const 0 - i64.ne - local.set $7 - local.get $7 - br_if $do-continue|0 - end - else - loop $do-continue|1 - local.get $2 - i32.const 1 - i32.sub - local.set $2 - local.get $1 - local.get $4 - i64.div_u - local.set $6 - local.get $0 - local.get $2 - i32.const 1 - i32.shl - i32.add - i32.const 7760 - local.get $1 - local.get $6 - local.get $4 - i64.mul - i64.sub - i32.wrap_i64 - i32.const 1 - i32.shl - i32.add - i32.load16_u - i32.store16 - local.get $6 - local.set $1 - local.get $1 - i64.const 0 - i64.ne - local.set $7 - local.get $7 - br_if $do-continue|1 - end - end + (func $std/typedarray/testArrayMap<~lib/typedarray/Int32Array,i32>~anonymous|0 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + local.get $0 + local.get $0 + i32.mul ) - (func $~lib/string/String#get:length (param $0 i32) (result i32) + (func $std/typedarray/testArrayMap<~lib/typedarray/Uint32Array,u32>~anonymous|0 (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 1 - i32.shr_u + local.get $0 + i32.mul ) - (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) - i32.const 0 - local.set $2 - i32.const 1 - drop + (func $~lib/typedarray/Uint32Array#__get (param $0 i32) (param $1 i32) (result i32) local.get $1 - i32.const 24 - i32.shl - i32.const 24 - i32.shr_s - i32.const 0 - i32.lt_s - local.set $2 - local.get $2 + local.get $0 + i32.load offset=8 + i32.const 2 + i32.shr_u + i32.ge_u if - i32.const 0 - local.get $1 - i32.sub - local.set $1 - local.get $0 - i32.const 45 - i32.store16 + i32.const 336 + i32.const 608 + i32.const 834 + i32.const 64 + call $~lib/builtins/abort + unreachable end - i32.const 0 - i32.const 1 - i32.le_s - drop - i32.const 1 - drop - i32.const 1 - i32.const 4 - i32.le_u - drop + local.get $0 + i32.load offset=4 local.get $1 - i32.const 24 + i32.const 2 i32.shl - i32.const 24 - i32.shr_s - i32.const 10 - i32.lt_u + i32.add + i32.load + ) + (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 $~lib/typedarray/Int64Array#__get (param $0 i32) (param $1 i32) (result i64) + local.get $1 + local.get $0 + i32.load offset=8 + i32.const 3 + i32.shr_u + i32.ge_u if - local.get $0 - local.get $2 - i32.const 1 - i32.shl - i32.add - local.get $1 - i32.const 24 - i32.shl - i32.const 24 - i32.shr_s - i32.const 48 - i32.or - i32.store16 - i32.const 1 - local.get $2 - i32.add - return + i32.const 336 + i32.const 608 + i32.const 969 + i32.const 64 + call $~lib/builtins/abort + unreachable end - local.get $2 - local.set $3 - i32.const 1 - i32.const 4 - i32.le_u - drop - local.get $3 + local.get $0 + i32.load offset=4 local.get $1 - i32.const 24 + i32.const 3 i32.shl - i32.const 24 - i32.shr_s - call $~lib/util/number/decimalCount32 i32.add - local.set $3 + i64.load + ) + (func $std/typedarray/testArrayMap<~lib/typedarray/Uint64Array,u64>~anonymous|0 (param $0 i64) (param $1 i32) (param $2 i32) (result i64) local.get $0 - local.set $6 - local.get $1 - i32.const 24 - i32.shl - i32.const 24 - i32.shr_s - local.set $5 - local.get $3 - local.set $4 - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $6 - local.get $5 - local.get $4 - call $~lib/util/number/utoa32_dec_lut - local.get $3 + local.get $0 + i64.mul ) - (func $~lib/util/string/compareImpl (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) (result i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) + (func $~lib/typedarray/Uint64Array#__get (param $0 i32) (param $1 i32) (result i64) + local.get $1 + local.get $0 + i32.load offset=8 + i32.const 3 + i32.shr_u + i32.ge_u + if + i32.const 336 + i32.const 608 + i32.const 1104 + i32.const 64 + call $~lib/builtins/abort + unreachable + end local.get $0 + i32.load offset=4 local.get $1 - i32.const 1 - i32.shl - i32.add - local.set $5 - local.get $2 - local.get $3 - i32.const 1 + i32.const 3 i32.shl i32.add - local.set $6 - i32.const 0 + i64.load + ) + (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 $~lib/typedarray/Float32Array#__get (param $0 i32) (param $1 i32) (result f32) + local.get $1 + local.get $0 + i32.load offset=8 i32.const 2 - i32.lt_s - drop - local.get $4 - i32.const 4 + i32.shr_u i32.ge_u - if (result i32) - local.get $5 - i32.const 7 - i32.and - local.get $6 - i32.const 7 - i32.and - i32.or - i32.eqz - else - i32.const 0 - end if - block $do-break|0 - loop $do-continue|0 - local.get $5 - i64.load - local.get $6 - i64.load - i64.ne - if - br $do-break|0 - end - local.get $5 - i32.const 8 - i32.add - local.set $5 - local.get $6 - i32.const 8 - i32.add - local.set $6 - local.get $4 - i32.const 4 - i32.sub - local.set $4 - local.get $4 - i32.const 4 - i32.ge_u - local.set $7 - local.get $7 - br_if $do-continue|0 - end - end - end - loop $while-continue|1 - local.get $4 - local.tee $7 - i32.const 1 - i32.sub - local.set $4 - local.get $7 - local.set $7 - local.get $7 - if - local.get $5 - i32.load16_u - local.set $8 - local.get $6 - i32.load16_u - local.set $9 - local.get $8 - local.get $9 - i32.ne - if - local.get $8 - local.get $9 - i32.sub - return - end - local.get $5 - i32.const 2 - i32.add - local.set $5 - local.get $6 - i32.const 2 - i32.add - local.set $6 - br $while-continue|1 - end + i32.const 336 + i32.const 608 + i32.const 1239 + i32.const 64 + call $~lib/builtins/abort + unreachable end - i32.const 0 + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 2 + i32.shl + i32.add + f32.load ) - (func $~lib/util/number/itoa_buffered (param $0 i32) (param $1 i32) (result i32) + (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.const 24 + i32.shl + i32.const 24 + i32.shr_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) (local $4 i32) (local $5 i32) - (local $6 i32) - i32.const 0 + local.get $0 + i32.const 20 + i32.sub local.set $2 - i32.const 0 - drop - i32.const 0 - i32.const 1 - i32.le_s - drop - i32.const 0 - drop local.get $1 - i32.const 255 + local.get $2 + i32.load + i32.const 3 + i32.const -1 + i32.xor i32.and - i32.const 10 - i32.lt_u + i32.const 16 + i32.sub + i32.le_u if - local.get $0 + local.get $2 local.get $1 - i32.const 255 - i32.and - i32.const 48 - i32.or - i32.store16 - i32.const 1 + call $~lib/rt/itcms/Object#set:rtSize + local.get $0 return end + local.get $1 local.get $2 + i32.load offset=12 + call $~lib/rt/itcms/__new local.set $3 - i32.const 1 - i32.const 4 - i32.le_u - drop local.get $3 + local.get $0 local.get $1 + local.tee $4 + local.get $2 + i32.load offset=16 + local.tee $5 + local.get $4 + local.get $5 + i32.lt_u + select + call $~lib/memory/memory.copy + local.get $3 + ) + (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 - call $~lib/util/number/decimalCount32 - i32.add - local.set $3 + i32.const 2 + i32.gt_u + ) + (func $std/typedarray/testArrayFilter<~lib/typedarray/Uint8ClampedArray,u8>~anonymous|0 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $0 - local.set $6 - local.get $1 i32.const 255 i32.and - local.set $5 - local.get $3 - local.set $4 - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $6 - local.get $5 - local.get $4 - call $~lib/util/number/utoa32_dec_lut - local.get $3 + i32.const 2 + i32.gt_u ) - (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) - i32.const 0 - local.set $2 - i32.const 1 - drop - local.get $1 + (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.const 16 i32.shl i32.const 16 i32.shr_s - i32.const 0 - i32.lt_s - local.set $2 - local.get $2 - if - i32.const 0 - local.get $1 - i32.sub - local.set $1 - local.get $0 - i32.const 45 - i32.store16 - end - i32.const 0 - i32.const 1 - i32.le_s - drop - i32.const 1 - drop i32.const 2 - i32.const 4 - i32.le_u - drop - local.get $1 - i32.const 16 + i32.gt_s + ) + (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) + 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) + 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) + 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) + 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) + 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) + 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) + local.get $0 + i32.const 24 i32.shl - i32.const 16 + i32.const 24 i32.shr_s - i32.const 10 - i32.lt_u - if + i32.const 2 + i32.eq + ) + (func $~lib/typedarray/Int8Array#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 $7 i32) + block $~lib/typedarray/SOME<~lib/typedarray/Int8Array,i8>|inlined.0 (result i32) local.get $0 - local.get $2 - i32.const 1 - i32.shl - i32.add + local.set $3 local.get $1 - i32.const 16 - i32.shl - i32.const 16 - i32.shr_s - i32.const 48 - i32.or - i32.store16 - i32.const 1 - local.get $2 - i32.add - return + local.set $2 + local.get $3 + i32.load offset=4 + local.set $4 + i32.const 0 + local.set $5 + local.get $3 + call $~lib/typedarray/Int8Array#get:length + local.set $6 + loop $for-loop|0 + local.get $5 + local.get $6 + i32.lt_s + local.set $7 + local.get $7 + if + local.get $4 + local.get $5 + i32.const 0 + i32.shl + i32.add + i32.load8_s + local.get $5 + local.get $3 + i32.const 3 + global.set $~argumentsLength + local.get $2 + i32.load + call_indirect (type $i32_i32_i32_=>_i32) + if + i32.const 1 + br $~lib/typedarray/SOME<~lib/typedarray/Int8Array,i8>|inlined.0 + end + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|0 + end + end + i32.const 0 end - local.get $2 - local.set $3 - i32.const 2 - i32.const 4 - i32.le_u - drop - local.get $3 - local.get $1 - i32.const 16 - i32.shl - i32.const 16 - i32.shr_s - call $~lib/util/number/decimalCount32 - i32.add - local.set $3 + ) + (func $std/typedarray/testArraySome<~lib/typedarray/Int8Array,i8>~anonymous|1 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $0 - local.set $6 - local.get $1 - i32.const 16 + i32.const 24 i32.shl - i32.const 16 + i32.const 24 i32.shr_s - local.set $5 - local.get $3 - local.set $4 i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $6 - local.get $5 - local.get $4 - call $~lib/util/number/utoa32_dec_lut - local.get $3 + i32.eq ) - (func $~lib/util/number/itoa_buffered (param $0 i32) (param $1 i32) (result i32) + (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 $~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) - i32.const 0 - local.set $2 - i32.const 0 - drop - i32.const 0 - i32.const 1 - i32.le_s - drop - i32.const 0 - drop - local.get $1 - i32.const 65535 - i32.and - i32.const 10 - i32.lt_u - if + (local $7 i32) + block $~lib/typedarray/SOME<~lib/typedarray/Uint8Array,u8>|inlined.0 (result i32) local.get $0 + local.set $3 local.get $1 - i32.const 65535 - i32.and - i32.const 48 - i32.or - i32.store16 - i32.const 1 - return + local.set $2 + local.get $3 + i32.load offset=4 + local.set $4 + i32.const 0 + local.set $5 + local.get $3 + call $~lib/typedarray/Uint8Array#get:length + local.set $6 + loop $for-loop|0 + local.get $5 + local.get $6 + i32.lt_s + local.set $7 + local.get $7 + if + local.get $4 + local.get $5 + i32.const 0 + i32.shl + i32.add + i32.load8_u + local.get $5 + local.get $3 + i32.const 3 + global.set $~argumentsLength + local.get $2 + i32.load + call_indirect (type $i32_i32_i32_=>_i32) + if + i32.const 1 + br $~lib/typedarray/SOME<~lib/typedarray/Uint8Array,u8>|inlined.0 + end + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|0 + end + end + i32.const 0 end - local.get $2 - local.set $3 - i32.const 2 - i32.const 4 - i32.le_u - drop - local.get $3 - local.get $1 - i32.const 65535 - i32.and - call $~lib/util/number/decimalCount32 - i32.add - local.set $3 + ) + (func $std/typedarray/testArraySome<~lib/typedarray/Uint8Array,u8>~anonymous|1 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $0 - local.set $6 - local.get $1 - i32.const 65535 + i32.const 255 i32.and - local.set $5 - local.get $3 - local.set $4 i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $6 - local.get $5 - local.get $4 - call $~lib/util/number/utoa32_dec_lut - local.get $3 + i32.eq ) - (func $~lib/util/number/itoa_buffered (param $0 i32) (param $1 i32) (result i32) + (func $std/typedarray/testArraySome<~lib/typedarray/Uint8ClampedArray,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 $~lib/typedarray/Uint8ClampedArray#some (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 0 - local.set $2 - i32.const 1 - drop - local.get $1 - i32.const 0 - i32.lt_s - local.set $2 - local.get $2 - if - i32.const 0 - local.get $1 - i32.sub - local.set $1 - local.get $0 - i32.const 45 - i32.store16 - end - i32.const 0 - i32.const 1 - i32.le_s - drop - i32.const 1 - drop - i32.const 4 - i32.const 4 - i32.le_u - drop - local.get $1 - i32.const 10 - i32.lt_u - if + (local $7 i32) + block $~lib/typedarray/SOME<~lib/typedarray/Uint8ClampedArray,u8>|inlined.0 (result i32) local.get $0 - local.get $2 - i32.const 1 - i32.shl - i32.add + local.set $3 local.get $1 - i32.const 48 - i32.or - i32.store16 - i32.const 1 - local.get $2 - i32.add - return + local.set $2 + local.get $3 + i32.load offset=4 + local.set $4 + i32.const 0 + local.set $5 + local.get $3 + call $~lib/typedarray/Uint8ClampedArray#get:length + local.set $6 + loop $for-loop|0 + local.get $5 + local.get $6 + i32.lt_s + local.set $7 + local.get $7 + if + local.get $4 + local.get $5 + i32.const 0 + i32.shl + i32.add + i32.load8_u + local.get $5 + local.get $3 + i32.const 3 + global.set $~argumentsLength + local.get $2 + i32.load + call_indirect (type $i32_i32_i32_=>_i32) + if + i32.const 1 + br $~lib/typedarray/SOME<~lib/typedarray/Uint8ClampedArray,u8>|inlined.0 + end + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|0 + end + end + i32.const 0 end - local.get $2 - local.set $3 - i32.const 4 - i32.const 4 - i32.le_u - drop - local.get $3 - local.get $1 - call $~lib/util/number/decimalCount32 - i32.add - local.set $3 + ) + (func $std/typedarray/testArraySome<~lib/typedarray/Uint8ClampedArray,u8>~anonymous|1 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $0 - local.set $6 - local.get $1 - local.set $5 - local.get $3 - local.set $4 + i32.const 255 + i32.and i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $6 - local.get $5 - local.get $4 - call $~lib/util/number/utoa32_dec_lut - local.get $3 + i32.eq ) - (func $~lib/util/number/itoa_buffered (param $0 i32) (param $1 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 16 + i32.shl + i32.const 16 + i32.shr_s + i32.const 2 + i32.eq + ) + (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) (local $6 i32) - i32.const 0 - local.set $2 - i32.const 0 - drop - i32.const 0 - i32.const 1 - i32.le_s - drop - i32.const 0 - drop - local.get $1 - i32.const 10 - i32.lt_u - if + (local $7 i32) + block $~lib/typedarray/SOME<~lib/typedarray/Int16Array,i16>|inlined.0 (result i32) local.get $0 + local.set $3 local.get $1 - i32.const 48 - i32.or - i32.store16 - i32.const 1 - return + local.set $2 + local.get $3 + i32.load offset=4 + local.set $4 + i32.const 0 + local.set $5 + local.get $3 + call $~lib/typedarray/Int16Array#get:length + local.set $6 + loop $for-loop|0 + local.get $5 + local.get $6 + i32.lt_s + local.set $7 + local.get $7 + if + local.get $4 + local.get $5 + i32.const 1 + i32.shl + i32.add + i32.load16_s + local.get $5 + local.get $3 + i32.const 3 + global.set $~argumentsLength + local.get $2 + i32.load + call_indirect (type $i32_i32_i32_=>_i32) + if + i32.const 1 + br $~lib/typedarray/SOME<~lib/typedarray/Int16Array,i16>|inlined.0 + end + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|0 + end + end + i32.const 0 end - local.get $2 - local.set $3 - i32.const 4 - i32.const 4 - i32.le_u - drop - local.get $3 - local.get $1 - call $~lib/util/number/decimalCount32 - i32.add - local.set $3 + ) + (func $std/typedarray/testArraySome<~lib/typedarray/Int16Array,i16>~anonymous|1 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $0 - local.set $6 - local.get $1 - local.set $5 - local.get $3 - local.set $4 + i32.const 16 + i32.shl + i32.const 16 + i32.shr_s i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $6 - local.get $5 - local.get $4 - call $~lib/util/number/utoa32_dec_lut - local.get $3 + i32.eq ) - (func $~lib/util/number/decimalCount64High (param $0 i64) (result i32) + (func $std/typedarray/testArraySome<~lib/typedarray/Uint16Array,u16>~anonymous|0 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $0 - i64.const 1000000000000000 - i64.lt_u - if - local.get $0 - i64.const 1000000000000 - i64.lt_u - if - i32.const 10 - local.get $0 - i64.const 100000000000 - i64.ge_u - i32.add - local.get $0 - i64.const 10000000000 - i64.ge_u - i32.add - return - else - i32.const 13 - local.get $0 - i64.const 100000000000000 - i64.ge_u - i32.add - local.get $0 - i64.const 10000000000000 - i64.ge_u - i32.add - return - end - unreachable - else - local.get $0 - i64.const 100000000000000000 - i64.lt_u - if - i32.const 16 - local.get $0 - i64.const 10000000000000000 - i64.ge_u - i32.add - return - else - i32.const 18 - local.get $0 - i64.const -8446744073709551616 - i64.ge_u - i32.add - local.get $0 - i64.const 1000000000000000000 - i64.ge_u - i32.add - return - end - unreachable - end - unreachable + i32.const 65535 + i32.and + i32.const 2 + i32.eq ) - (func $~lib/util/number/utoa64_dec_lut (param $0 i32) (param $1 i64) (param $2 i32) + (func $~lib/typedarray/Uint16Array#some (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 i32) (local $7 i32) - (local $8 i32) - (local $9 i32) - (local $10 i32) - (local $11 i32) - (local $12 i64) - (local $13 i64) - loop $while-continue|0 - local.get $1 - i64.const 100000000 - i64.ge_u + block $~lib/typedarray/SOME<~lib/typedarray/Uint16Array,u16>|inlined.0 (result i32) + local.get $0 local.set $3 + local.get $1 + local.set $2 local.get $3 - if - local.get $1 - i64.const 100000000 - i64.div_u - local.set $4 - local.get $1 - local.get $4 - i64.const 100000000 - i64.mul - i64.sub - i32.wrap_i64 - local.set $5 - local.get $4 - local.set $1 - local.get $5 - i32.const 10000 - i32.div_u - local.set $6 + i32.load offset=4 + local.set $4 + i32.const 0 + local.set $5 + local.get $3 + call $~lib/typedarray/Uint16Array#get:length + local.set $6 + loop $for-loop|0 local.get $5 - i32.const 10000 - i32.rem_u - local.set $7 - local.get $6 - i32.const 100 - i32.div_u - local.set $8 local.get $6 - i32.const 100 - i32.rem_u - local.set $9 - local.get $7 - i32.const 100 - i32.div_u - local.set $10 + i32.lt_s + local.set $7 local.get $7 - i32.const 100 - i32.rem_u - local.set $11 - i32.const 6284 - local.get $10 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $12 - i32.const 6284 - local.get $11 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $13 - local.get $2 - i32.const 4 - i32.sub - local.set $2 - local.get $0 - local.get $2 - i32.const 1 - i32.shl - i32.add - local.get $12 - local.get $13 - i64.const 32 - i64.shl - i64.or - i64.store - i32.const 6284 - local.get $8 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $12 - i32.const 6284 - local.get $9 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $13 - local.get $2 - i32.const 4 - i32.sub - local.set $2 - local.get $0 - local.get $2 - i32.const 1 - i32.shl - i32.add - local.get $12 - local.get $13 - i64.const 32 - i64.shl - i64.or - i64.store - br $while-continue|0 + if + local.get $4 + local.get $5 + i32.const 1 + i32.shl + i32.add + i32.load16_u + local.get $5 + local.get $3 + i32.const 3 + global.set $~argumentsLength + local.get $2 + i32.load + call_indirect (type $i32_i32_i32_=>_i32) + if + i32.const 1 + br $~lib/typedarray/SOME<~lib/typedarray/Uint16Array,u16>|inlined.0 + end + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|0 + end end + i32.const 0 end + ) + (func $std/typedarray/testArraySome<~lib/typedarray/Uint16Array,u16>~anonymous|1 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $0 - local.get $1 - i32.wrap_i64 - local.get $2 - call $~lib/util/number/utoa32_dec_lut + i32.const 65535 + i32.and + i32.const 0 + i32.eq ) - (func $~lib/util/number/itoa_buffered (param $0 i32) (param $1 i64) (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 $~lib/typedarray/Int32Array#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 $7 i32) - (local $8 i64) - i32.const 0 - local.set $2 - i32.const 1 - drop - local.get $1 - i64.const 0 - i64.lt_s - local.set $2 - local.get $2 - if - i64.const 0 - local.get $1 - i64.sub - local.set $1 - local.get $0 - i32.const 45 - i32.store16 - end - i32.const 0 - i32.const 1 - i32.le_s - drop - i32.const 1 - drop - i32.const 8 - i32.const 4 - i32.le_u - drop - local.get $1 - i64.const 10 - i64.lt_u - if + block $~lib/typedarray/SOME<~lib/typedarray/Int32Array,i32>|inlined.0 (result i32) local.get $0 - local.get $2 - i32.const 1 - i32.shl - i32.add - local.get $1 - i64.const 48 - i64.or - i64.store16 - i32.const 1 - local.get $2 - i32.add - return - end - local.get $2 - local.set $3 - i32.const 8 - i32.const 4 - i32.le_u - drop - local.get $1 - global.get $~lib/builtins/u32.MAX_VALUE - i64.extend_i32_u - i64.le_u - if - local.get $1 - i32.wrap_i64 - local.set $4 - local.get $3 - local.get $4 - call $~lib/util/number/decimalCount32 - i32.add local.set $3 - local.get $0 - local.set $7 - local.get $4 - local.set $6 + local.get $1 + local.set $2 local.get $3 - local.set $5 + i32.load offset=4 + local.set $4 i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $7 - local.get $6 - local.get $5 - call $~lib/util/number/utoa32_dec_lut - else + local.set $5 local.get $3 - local.get $1 - call $~lib/util/number/decimalCount64High - i32.add - local.set $3 - local.get $0 + call $~lib/typedarray/Int32Array#get:length local.set $6 - local.get $1 - local.set $8 - local.get $3 - local.set $5 + loop $for-loop|0 + local.get $5 + local.get $6 + i32.lt_s + local.set $7 + local.get $7 + if + local.get $4 + local.get $5 + i32.const 2 + i32.shl + i32.add + i32.load + local.get $5 + local.get $3 + i32.const 3 + global.set $~argumentsLength + local.get $2 + i32.load + call_indirect (type $i32_i32_i32_=>_i32) + if + i32.const 1 + br $~lib/typedarray/SOME<~lib/typedarray/Int32Array,i32>|inlined.0 + end + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|0 + end + end i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $6 - local.get $8 - local.get $5 - call $~lib/util/number/utoa64_dec_lut end - local.get $3 ) - (func $~lib/util/number/itoa_buffered (param $0 i32) (param $1 i64) (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.const 0 + i32.eq + ) + (func $std/typedarray/testArraySome<~lib/typedarray/Uint32Array,u32>~anonymous|0 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + local.get $0 + i32.const 2 + i32.eq + ) + (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) (local $6 i32) (local $7 i32) - (local $8 i64) - i32.const 0 - local.set $2 - i32.const 0 - drop - i32.const 0 - i32.const 1 - i32.le_s - drop - i32.const 0 - drop - local.get $1 - i64.const 10 - i64.lt_u - if + block $~lib/typedarray/SOME<~lib/typedarray/Uint32Array,u32>|inlined.0 (result i32) local.get $0 - local.get $1 - i64.const 48 - i64.or - i64.store16 - i32.const 1 - return - end - local.get $2 - local.set $3 - i32.const 8 - i32.const 4 - i32.le_u - drop - local.get $1 - global.get $~lib/builtins/u32.MAX_VALUE - i64.extend_i32_u - i64.le_u - if - local.get $1 - i32.wrap_i64 - local.set $4 - local.get $3 - local.get $4 - call $~lib/util/number/decimalCount32 - i32.add local.set $3 - local.get $0 - local.set $7 - local.get $4 - local.set $6 + local.get $1 + local.set $2 local.get $3 - local.set $5 + i32.load offset=4 + local.set $4 i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $7 - local.get $6 - local.get $5 - call $~lib/util/number/utoa32_dec_lut - else + local.set $5 local.get $3 - local.get $1 - call $~lib/util/number/decimalCount64High - i32.add - local.set $3 - local.get $0 + call $~lib/typedarray/Uint32Array#get:length local.set $6 - local.get $1 - local.set $8 - local.get $3 - local.set $5 + loop $for-loop|0 + local.get $5 + local.get $6 + i32.lt_s + local.set $7 + local.get $7 + if + local.get $4 + local.get $5 + i32.const 2 + i32.shl + i32.add + i32.load + local.get $5 + local.get $3 + i32.const 3 + global.set $~argumentsLength + local.get $2 + i32.load + call_indirect (type $i32_i32_i32_=>_i32) + if + i32.const 1 + br $~lib/typedarray/SOME<~lib/typedarray/Uint32Array,u32>|inlined.0 + end + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|0 + end + end i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $6 - local.get $8 - local.get $5 - call $~lib/util/number/utoa64_dec_lut end - local.get $3 ) - (func $~lib/util/number/genDigits (param $0 i32) (param $1 i64) (param $2 i32) (param $3 i64) (param $4 i32) (param $5 i64) (param $6 i32) (result i32) - (local $7 i32) - (local $8 i64) - (local $9 i64) - (local $10 i64) - (local $11 i32) - (local $12 i64) - (local $13 i32) - (local $14 i32) - (local $15 i32) - (local $16 i32) - (local $17 i32) - (local $18 i64) - (local $19 i64) - (local $20 i64) - (local $21 i64) - (local $22 i64) - (local $23 i32) - (local $24 i32) - (local $25 i32) - (local $26 i32) - (local $27 i64) + (func $std/typedarray/testArraySome<~lib/typedarray/Uint32Array,u32>~anonymous|1 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + local.get $0 i32.const 0 - local.get $4 - i32.sub - local.set $7 - i64.const 1 - local.get $7 - i64.extend_i32_s - i64.shl - local.set $8 - local.get $8 - i64.const 1 - i64.sub - local.set $9 - local.get $3 - local.get $1 - i64.sub - local.set $10 - local.get $3 - local.get $7 - i64.extend_i32_s - i64.shr_u - i32.wrap_i64 - local.set $11 - local.get $3 - local.get $9 - i64.and - local.set $12 - local.get $11 - call $~lib/util/number/decimalCount32 - local.set $13 - local.get $6 - local.set $14 - loop $while-continue|0 - local.get $13 + 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 $~lib/typedarray/Int64Array#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 $7 i32) + block $~lib/typedarray/SOME<~lib/typedarray/Int64Array,i64>|inlined.0 (result i32) + local.get $0 + local.set $3 + local.get $1 + local.set $2 + local.get $3 + i32.load offset=4 + local.set $4 i32.const 0 - i32.gt_s - local.set $15 - local.get $15 - 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 $13 - local.set $17 - local.get $17 - i32.const 10 - i32.eq - br_if $case0|1 - local.get $17 - i32.const 9 - i32.eq - br_if $case1|1 - local.get $17 - i32.const 8 - i32.eq - br_if $case2|1 - local.get $17 - i32.const 7 - i32.eq - br_if $case3|1 - local.get $17 - i32.const 6 - i32.eq - br_if $case4|1 - local.get $17 - i32.const 5 - i32.eq - br_if $case5|1 - local.get $17 - i32.const 4 - i32.eq - br_if $case6|1 - local.get $17 - i32.const 3 - i32.eq - br_if $case7|1 - local.get $17 - i32.const 2 - i32.eq - br_if $case8|1 - local.get $17 - i32.const 1 - i32.eq - br_if $case9|1 - br $case10|1 - end - local.get $11 - i32.const 1000000000 - i32.div_u - local.set $16 - local.get $11 - i32.const 1000000000 - i32.rem_u - local.set $11 - br $break|1 - end - local.get $11 - i32.const 100000000 - i32.div_u - local.set $16 - local.get $11 - i32.const 100000000 - i32.rem_u - local.set $11 - br $break|1 - end - local.get $11 - i32.const 10000000 - i32.div_u - local.set $16 - local.get $11 - i32.const 10000000 - i32.rem_u - local.set $11 - br $break|1 - end - local.get $11 - i32.const 1000000 - i32.div_u - local.set $16 - local.get $11 - i32.const 1000000 - i32.rem_u - local.set $11 - br $break|1 - end - local.get $11 - i32.const 100000 - i32.div_u - local.set $16 - local.get $11 - i32.const 100000 - i32.rem_u - local.set $11 - br $break|1 - end - local.get $11 - i32.const 10000 - i32.div_u - local.set $16 - local.get $11 - i32.const 10000 - i32.rem_u - local.set $11 - br $break|1 - end - local.get $11 - i32.const 1000 - i32.div_u - local.set $16 - local.get $11 - i32.const 1000 - i32.rem_u - local.set $11 - br $break|1 - end - local.get $11 - i32.const 100 - i32.div_u - local.set $16 - local.get $11 - i32.const 100 - i32.rem_u - local.set $11 - br $break|1 - end - local.get $11 - i32.const 10 - i32.div_u - local.set $16 - local.get $11 - i32.const 10 - i32.rem_u - local.set $11 - br $break|1 - end - local.get $11 - local.set $16 - i32.const 0 - local.set $11 - br $break|1 - end - i32.const 0 - local.set $16 - br $break|1 - end - local.get $16 - local.get $14 - i32.or - if - local.get $0 - local.get $14 - local.tee $17 - i32.const 1 - i32.add - local.set $14 - local.get $17 - i32.const 1 - i32.shl - i32.add - i32.const 48 - local.get $16 - i32.const 65535 - i32.and - i32.add - i32.store16 - end - local.get $13 - i32.const 1 - i32.sub - local.set $13 - local.get $11 - i64.extend_i32_u - local.get $7 - i64.extend_i32_s - i64.shl - local.get $12 - i64.add - local.set $18 - local.get $18 + local.set $5 + local.get $3 + call $~lib/typedarray/Int64Array#get:length + local.set $6 + loop $for-loop|0 local.get $5 - i64.le_u + local.get $6 + i32.lt_s + local.set $7 + local.get $7 if - global.get $~lib/util/number/_K - local.get $13 - i32.add - global.set $~lib/util/number/_K - local.get $0 - local.set $23 - local.get $14 - local.set $17 + local.get $4 local.get $5 - local.set $22 - local.get $18 - local.set $21 - i32.const 9008 - local.get $13 - i32.const 2 + i32.const 3 i32.shl i32.add - i64.load32_u - local.get $7 - i64.extend_i32_s - i64.shl - local.set $20 - local.get $10 - local.set $19 - local.get $23 - local.get $17 - i32.const 1 - i32.sub + i64.load + local.get $5 + local.get $3 + i32.const 3 + global.set $~argumentsLength + local.get $2 + i32.load + call_indirect (type $i64_i32_i32_=>_i32) + if + i32.const 1 + br $~lib/typedarray/SOME<~lib/typedarray/Int64Array,i64>|inlined.0 + end + local.get $5 i32.const 1 - i32.shl i32.add - local.set $24 - local.get $24 - i32.load16_u - local.set $25 - loop $while-continue|3 - local.get $21 - local.get $19 - i64.lt_u - if (result i32) - local.get $22 - local.get $21 - i64.sub - local.get $20 - i64.ge_u - else - i32.const 0 - end - if (result i32) - local.get $21 - local.get $20 - i64.add - local.get $19 - i64.lt_u - if (result i32) - i32.const 1 - else - local.get $19 - local.get $21 - i64.sub - local.get $21 - local.get $20 - i64.add - local.get $19 - i64.sub - i64.gt_u - end - else - i32.const 0 - end - local.set $26 - local.get $26 - if - local.get $25 - i32.const 1 - i32.sub - local.set $25 - local.get $21 - local.get $20 - i64.add - local.set $21 - br $while-continue|3 - end - end - local.get $24 - local.get $25 - i32.store16 - local.get $14 - return + local.set $5 + br $for-loop|0 end - br $while-continue|0 end + i32.const 0 end - loop $while-continue|4 - i32.const 1 - local.set $15 - local.get $15 - if - local.get $12 - i64.const 10 - i64.mul - local.set $12 + ) + (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.const 0 + i64.eq + ) + (func $std/typedarray/testArraySome<~lib/typedarray/Uint64Array,u64>~anonymous|0 (param $0 i64) (param $1 i32) (param $2 i32) (result i32) + local.get $0 + i64.const 2 + i64.eq + ) + (func $~lib/typedarray/Uint64Array#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 $7 i32) + block $~lib/typedarray/SOME<~lib/typedarray/Uint64Array,u64>|inlined.0 (result i32) + local.get $0 + local.set $3 + local.get $1 + local.set $2 + local.get $3 + i32.load offset=4 + local.set $4 + i32.const 0 + local.set $5 + local.get $3 + call $~lib/typedarray/Uint64Array#get:length + local.set $6 + loop $for-loop|0 local.get $5 - i64.const 10 - i64.mul - local.set $5 - local.get $12 + local.get $6 + i32.lt_s + local.set $7 local.get $7 - i64.extend_i32_s - i64.shr_u - local.set $22 - local.get $22 - local.get $14 - i64.extend_i32_s - i64.or - i64.const 0 - i64.ne if - local.get $0 - local.get $14 - local.tee $25 - i32.const 1 - i32.add - local.set $14 - local.get $25 - i32.const 1 + local.get $4 + local.get $5 + i32.const 3 i32.shl i32.add - i32.const 48 - local.get $22 - i32.wrap_i64 - i32.const 65535 - i32.and + i64.load + local.get $5 + local.get $3 + i32.const 3 + global.set $~argumentsLength + local.get $2 + i32.load + call_indirect (type $i64_i32_i32_=>_i32) + if + i32.const 1 + br $~lib/typedarray/SOME<~lib/typedarray/Uint64Array,u64>|inlined.0 + end + local.get $5 + i32.const 1 i32.add - i32.store16 + local.set $5 + br $for-loop|0 end - local.get $12 - local.get $9 - i64.and - local.set $12 - local.get $13 - i32.const 1 - i32.sub - local.set $13 - local.get $12 + end + i32.const 0 + end + ) + (func $std/typedarray/testArraySome<~lib/typedarray/Uint64Array,u64>~anonymous|1 (param $0 i64) (param $1 i32) (param $2 i32) (result i32) + local.get $0 + i64.const 0 + i64.eq + ) + (func $std/typedarray/testArraySome<~lib/typedarray/Float32Array,f32>~anonymous|0 (param $0 f32) (param $1 i32) (param $2 i32) (result i32) + local.get $0 + f32.const 2 + f32.eq + ) + (func $~lib/typedarray/Float32Array#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 $7 i32) + block $~lib/typedarray/SOME<~lib/typedarray/Float32Array,f32>|inlined.0 (result i32) + local.get $0 + local.set $3 + local.get $1 + local.set $2 + local.get $3 + i32.load offset=4 + local.set $4 + i32.const 0 + local.set $5 + local.get $3 + call $~lib/typedarray/Float32Array#get:length + local.set $6 + loop $for-loop|0 local.get $5 - i64.lt_u + local.get $6 + i32.lt_s + local.set $7 + local.get $7 if - global.get $~lib/util/number/_K - local.get $13 - i32.add - global.set $~lib/util/number/_K - local.get $10 - i32.const 9008 - i32.const 0 - local.get $13 - i32.sub + local.get $4 + local.get $5 i32.const 2 i32.shl i32.add - i64.load32_u - i64.mul - local.set $10 - local.get $0 - local.set $17 - local.get $14 - local.set $26 + f32.load + local.get $5 + local.get $3 + i32.const 3 + global.set $~argumentsLength + local.get $2 + i32.load + call_indirect (type $f32_i32_i32_=>_i32) + if + i32.const 1 + br $~lib/typedarray/SOME<~lib/typedarray/Float32Array,f32>|inlined.0 + end local.get $5 - local.set $27 - local.get $12 - local.set $21 - local.get $8 - local.set $20 - local.get $10 - local.set $19 - local.get $17 - local.get $26 - i32.const 1 - i32.sub i32.const 1 - i32.shl i32.add - local.set $25 - local.get $25 - i32.load16_u - local.set $24 - loop $while-continue|6 - local.get $21 - local.get $19 - i64.lt_u - if (result i32) - local.get $27 - local.get $21 - i64.sub - local.get $20 - i64.ge_u - else - i32.const 0 - end - if (result i32) - local.get $21 - local.get $20 - i64.add - local.get $19 - i64.lt_u - if (result i32) - i32.const 1 - else - local.get $19 - local.get $21 - i64.sub - local.get $21 - local.get $20 - i64.add - local.get $19 - i64.sub - i64.gt_u - end - else - i32.const 0 - end - local.set $23 - local.get $23 - if - local.get $24 - i32.const 1 - i32.sub - local.set $24 - local.get $21 - local.get $20 - i64.add - local.set $21 - br $while-continue|6 - end - end - local.get $25 - local.get $24 - i32.store16 - local.get $14 - return + local.set $5 + br $for-loop|0 end - br $while-continue|4 end + i32.const 0 end - unreachable ) - (func $~lib/util/number/prettify (param $0 i32) (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) + local.get $0 + f64.const 2 + f64.eq + ) + (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 $6 i32) (local $7 i32) - (local $8 i32) - (local $9 i32) - (local $10 i32) - (local $11 i32) - local.get $2 - i32.eqz - if + block $~lib/typedarray/SOME<~lib/typedarray/Float64Array,f64>|inlined.0 (result i32) local.get $0 + local.set $3 local.get $1 - i32.const 1 - i32.shl - i32.add - i32.const 46 - i32.const 48 - i32.const 16 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 2 - i32.add - return - end - local.get $1 - local.get $2 - i32.add - local.set $3 - local.get $1 - local.get $3 - i32.le_s - if (result i32) + local.set $2 local.get $3 - i32.const 21 - i32.le_s - else - i32.const 0 - end - if - local.get $1 + i32.load offset=4 local.set $4 + i32.const 0 + local.set $5 + local.get $3 + call $~lib/typedarray/Float64Array#get:length + local.set $6 loop $for-loop|0 - local.get $4 - local.get $3 - i32.lt_s - local.set $5 local.get $5 + local.get $6 + i32.lt_s + local.set $7 + local.get $7 if - local.get $0 local.get $4 - i32.const 1 + local.get $5 + i32.const 3 i32.shl i32.add - i32.const 48 - i32.store16 - local.get $4 + f64.load + local.get $5 + local.get $3 + i32.const 3 + global.set $~argumentsLength + local.get $2 + i32.load + call_indirect (type $f64_i32_i32_=>_i32) + if + i32.const 1 + br $~lib/typedarray/SOME<~lib/typedarray/Float64Array,f64>|inlined.0 + end + local.get $5 i32.const 1 i32.add - local.set $4 + local.set $5 br $for-loop|0 end end + i32.const 0 + end + ) + (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|0 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + local.get $0 + i32.const 24 + i32.shl + i32.const 24 + i32.shr_s + i32.const 2 + i32.eq + ) + (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 $6 i32) + (local $7 i32) + block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int8Array,i8>|inlined.0 (result i32) local.get $0 + local.set $3 + local.get $1 + local.set $2 local.get $3 - i32.const 1 - i32.shl - i32.add - i32.const 46 - i32.const 48 - i32.const 16 - i32.shl - i32.or - i32.store - local.get $3 - i32.const 2 - i32.add - return - else - local.get $3 + i32.load offset=4 + local.set $4 i32.const 0 - i32.gt_s - if (result i32) - local.get $3 - i32.const 21 - i32.le_s - else - i32.const 0 - end - if - local.get $0 - local.get $3 - i32.const 1 - i32.shl - i32.add - local.set $4 - local.get $4 - i32.const 2 - i32.add - local.get $4 - i32.const 0 - local.get $2 - i32.sub - i32.const 1 - i32.shl - call $~lib/memory/memory.copy - local.get $0 - local.get $3 - i32.const 1 - i32.shl - i32.add - i32.const 46 - i32.store16 - local.get $1 - i32.const 1 - i32.add - return - else - i32.const -6 - local.get $3 + local.set $5 + local.get $3 + call $~lib/typedarray/Int8Array#get:length + local.set $6 + loop $for-loop|0 + local.get $5 + local.get $6 i32.lt_s - if (result i32) - local.get $3 - i32.const 0 - i32.le_s - else - i32.const 0 - end + local.set $7 + local.get $7 if - i32.const 2 - local.get $3 - i32.sub - local.set $4 - local.get $0 local.get $4 - i32.const 1 - i32.shl - i32.add - local.get $0 - local.get $1 - i32.const 1 - i32.shl - call $~lib/memory/memory.copy - local.get $0 - i32.const 48 - i32.const 46 - i32.const 16 + local.get $5 + i32.const 0 i32.shl - i32.or - i32.store - i32.const 2 - local.set $5 - loop $for-loop|1 - local.get $5 - local.get $4 - i32.lt_s - local.set $6 - local.get $6 - if - local.get $0 - local.get $5 - i32.const 1 - i32.shl - i32.add - i32.const 48 - i32.store16 - local.get $5 - i32.const 1 - i32.add - local.set $5 - br $for-loop|1 - end - end - local.get $1 - local.get $4 i32.add - return - else - local.get $1 - i32.const 1 - i32.eq + i32.load8_s + local.get $5 + local.get $3 + i32.const 3 + global.set $~argumentsLength + local.get $2 + i32.load + call_indirect (type $i32_i32_i32_=>_i32) if - local.get $0 - i32.const 101 - i32.store16 offset=2 - local.get $0 - i32.const 4 - i32.add - local.set $5 - local.get $3 - i32.const 1 - i32.sub - local.set $6 - local.get $6 - i32.const 0 - i32.lt_s - local.set $4 - local.get $4 - if - i32.const 0 - local.get $6 - i32.sub - local.set $6 - end - local.get $6 - call $~lib/util/number/decimalCount32 - i32.const 1 - i32.add - local.set $7 - local.get $5 - local.set $10 - local.get $6 - local.set $9 - local.get $7 - local.set $8 - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $10 - local.get $9 - local.get $8 - call $~lib/util/number/utoa32_dec_lut - local.get $5 - i32.const 45 - i32.const 43 - local.get $4 - select - i32.store16 - local.get $7 - local.set $1 - local.get $1 - i32.const 2 - i32.add - return - else - local.get $1 - i32.const 1 - i32.shl - local.set $7 - local.get $0 - i32.const 4 - i32.add - local.get $0 - i32.const 2 - i32.add - local.get $7 - i32.const 2 - i32.sub - call $~lib/memory/memory.copy - local.get $0 - i32.const 46 - i32.store16 offset=2 - local.get $0 - local.get $7 - i32.add - i32.const 101 - i32.store16 offset=2 - local.get $1 - local.get $0 - local.get $7 - i32.add - i32.const 4 - i32.add - local.set $9 - local.get $3 - i32.const 1 - i32.sub - local.set $8 - local.get $8 - i32.const 0 - i32.lt_s - local.set $4 - local.get $4 - if - i32.const 0 - local.get $8 - i32.sub - local.set $8 - end - local.get $8 - call $~lib/util/number/decimalCount32 - i32.const 1 - i32.add - local.set $5 - local.get $9 - local.set $11 - local.get $8 - local.set $6 local.get $5 - local.set $10 - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $11 - local.get $6 - local.get $10 - call $~lib/util/number/utoa32_dec_lut - local.get $9 - i32.const 45 - i32.const 43 - local.get $4 - select - i32.store16 - local.get $5 - i32.add - local.set $1 - local.get $1 - i32.const 2 - i32.add - return + br $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int8Array,i8>|inlined.0 end - unreachable + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|0 end - unreachable end - unreachable + i32.const -1 end - unreachable ) - (func $~lib/util/number/dtoa_core (param $0 i32) (param $1 f64) (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 24 + i32.shl + i32.const 24 + i32.shr_s + i32.const 4 + i32.eq + ) + (func $std/typedarray/testArrayFindIndex<~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 $~lib/typedarray/Uint8Array#findIndex (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) - (local $5 f64) - (local $6 i64) + (local $5 i32) + (local $6 i32) (local $7 i32) - (local $8 i64) - (local $9 i64) - (local $10 i32) - (local $11 i64) - (local $12 i64) - (local $13 i32) - (local $14 i32) - (local $15 i32) - (local $16 f64) - (local $17 i64) - (local $18 i64) - (local $19 i64) - (local $20 i64) - (local $21 i64) - (local $22 i64) - (local $23 i64) - (local $24 i64) - (local $25 i64) - (local $26 i32) - (local $27 i64) - (local $28 i32) - local.get $1 - f64.const 0 - f64.lt - local.set $2 - local.get $2 - if - local.get $1 - f64.neg - local.set $1 - local.get $0 - i32.const 45 - i32.store16 - end - local.get $1 - local.set $5 - local.get $0 - local.set $4 - local.get $2 - local.set $3 - local.get $5 - i64.reinterpret_f64 - local.set $6 - local.get $6 - i64.const 9218868437227405312 - i64.and - i64.const 52 - i64.shr_u - i32.wrap_i64 - local.set $7 - local.get $6 - i64.const 4503599627370495 - i64.and - local.set $8 - local.get $7 - i32.const 0 - i32.ne - i64.extend_i32_u - i64.const 52 - i64.shl - local.get $8 - i64.add - local.set $9 - local.get $7 - i32.const 1 - local.get $7 - select - i32.const 1023 - i32.const 52 - i32.add - i32.sub - local.set $7 - local.get $9 - local.set $11 - local.get $7 - local.set $10 - local.get $11 - i64.const 1 - i64.shl - i64.const 1 - i64.add - local.set $12 - local.get $10 - i32.const 1 - i32.sub - local.set $13 - local.get $12 - i64.clz - i32.wrap_i64 - local.set $14 - local.get $12 - local.get $14 - i64.extend_i32_s - i64.shl - local.set $12 - local.get $13 - local.get $14 - i32.sub - local.set $13 - i32.const 1 - local.get $11 - i64.const 4503599627370496 - i64.eq - i32.add - local.set $15 - local.get $12 - global.set $~lib/util/number/_frc_plus - local.get $11 - local.get $15 - i64.extend_i32_s - i64.shl - i64.const 1 - i64.sub - local.get $10 - local.get $15 - i32.sub - local.get $13 - i32.sub - i64.extend_i32_s - i64.shl - global.set $~lib/util/number/_frc_minus - local.get $13 - global.set $~lib/util/number/_exp - global.get $~lib/util/number/_exp - local.set $10 - i32.const -61 - local.get $10 - i32.sub - f64.convert_i32_s - f64.const 0.30102999566398114 - f64.mul - f64.const 347 - f64.add - local.set $16 - local.get $16 - i32.trunc_f64_s - local.set $15 - local.get $15 - local.get $15 - f64.convert_i32_s - local.get $16 - f64.ne - i32.add - local.set $15 - local.get $15 - i32.const 3 - i32.shr_s - i32.const 1 - i32.add - local.set $14 - i32.const 348 - local.get $14 - i32.const 3 - i32.shl - i32.sub - global.set $~lib/util/number/_K - i32.const 8136 - local.get $14 - i32.const 3 - i32.shl - i32.add - i64.load - global.set $~lib/util/number/_frc_pow - i32.const 8832 - local.get $14 - i32.const 1 - i32.shl - i32.add - i32.load16_s - global.set $~lib/util/number/_exp_pow - local.get $9 - i64.clz - i32.wrap_i64 - local.set $14 - local.get $9 - local.get $14 - i64.extend_i32_s - i64.shl - local.set $9 - local.get $7 - local.get $14 - i32.sub - local.set $7 - global.get $~lib/util/number/_frc_pow - local.set $12 - global.get $~lib/util/number/_exp_pow - local.set $15 - local.get $9 - local.set $17 - local.get $12 - local.set $11 - local.get $17 - i64.const 4294967295 - i64.and - local.set $18 - local.get $11 - i64.const 4294967295 - i64.and - local.set $19 - local.get $17 - i64.const 32 - i64.shr_u - local.set $20 - local.get $11 - i64.const 32 - i64.shr_u - local.set $21 - local.get $18 - local.get $19 - i64.mul - local.set $22 - local.get $20 - local.get $19 - i64.mul - local.get $22 - i64.const 32 - i64.shr_u - i64.add - local.set $23 - local.get $18 - local.get $21 - i64.mul - local.get $23 - i64.const 4294967295 - i64.and - i64.add - local.set $24 - local.get $24 - i64.const 2147483647 - i64.add - local.set $24 - local.get $23 - i64.const 32 - i64.shr_u - local.set $23 - local.get $24 - i64.const 32 - i64.shr_u - local.set $24 - local.get $20 - local.get $21 - i64.mul - local.get $23 - i64.add - local.get $24 - i64.add - local.set $24 - local.get $7 - local.set $10 - local.get $15 - local.set $13 - local.get $10 - local.get $13 - i32.add - i32.const 64 - i32.add - local.set $10 - global.get $~lib/util/number/_frc_plus - local.set $17 - local.get $12 - local.set $11 - local.get $17 - i64.const 4294967295 - i64.and - local.set $23 - local.get $11 - i64.const 4294967295 - i64.and - local.set $22 - local.get $17 - i64.const 32 - i64.shr_u - local.set $21 - local.get $11 - i64.const 32 - i64.shr_u - local.set $20 - local.get $23 - local.get $22 - i64.mul - local.set $19 - local.get $21 - local.get $22 - i64.mul - local.get $19 - i64.const 32 - i64.shr_u - i64.add - local.set $18 - local.get $23 - local.get $20 - i64.mul - local.get $18 - i64.const 4294967295 - i64.and - i64.add - local.set $25 - local.get $25 - i64.const 2147483647 - i64.add - local.set $25 - local.get $18 - i64.const 32 - i64.shr_u - local.set $18 - local.get $25 - i64.const 32 - i64.shr_u - local.set $25 - local.get $21 - local.get $20 - i64.mul - local.get $18 - i64.add - local.get $25 - i64.add - i64.const 1 - i64.sub - local.set $25 - global.get $~lib/util/number/_exp - local.set $26 - local.get $15 - local.set $13 - local.get $26 - local.get $13 - i32.add - i32.const 64 - i32.add - local.set $26 - global.get $~lib/util/number/_frc_minus - local.set $17 - local.get $12 - local.set $11 - local.get $17 - i64.const 4294967295 - i64.and - local.set $18 - local.get $11 - i64.const 4294967295 - i64.and - local.set $19 - local.get $17 - i64.const 32 - i64.shr_u - local.set $20 - local.get $11 - i64.const 32 - i64.shr_u - local.set $21 - local.get $18 - local.get $19 - i64.mul - local.set $22 - local.get $20 - local.get $19 - i64.mul - local.get $22 - i64.const 32 - i64.shr_u - i64.add - local.set $23 - local.get $18 - local.get $21 - i64.mul - local.get $23 - i64.const 4294967295 - i64.and - i64.add - local.set $27 - local.get $27 - i64.const 2147483647 - i64.add - local.set $27 - local.get $23 - i64.const 32 - i64.shr_u - local.set $23 - local.get $27 - i64.const 32 - i64.shr_u - local.set $27 - local.get $20 - local.get $21 - i64.mul - local.get $23 - i64.add - local.get $27 - i64.add - i64.const 1 - i64.add - local.set $27 - local.get $25 - local.get $27 - i64.sub - local.set $23 - local.get $4 - local.get $24 - local.get $10 - local.get $25 - local.get $26 - local.get $23 - local.get $3 - call $~lib/util/number/genDigits - local.set $28 - local.get $0 - local.get $2 - i32.const 1 - i32.shl - i32.add - local.get $28 - local.get $2 - i32.sub - global.get $~lib/util/number/_K - call $~lib/util/number/prettify - local.set $28 - local.get $28 - local.get $2 - 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 + block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint8Array,u8>|inlined.0 (result i32) 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.eq - i32.eqz - if - local.get $1 + local.set $3 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 - return - else - local.get $1 - f64.const 0 - f64.lt - local.set $2 - local.get $2 + local.set $2 + local.get $3 + i32.load offset=4 + local.set $4 + i32.const 0 + local.set $5 + local.get $3 + call $~lib/typedarray/Uint8Array#get:length + local.set $6 + loop $for-loop|0 + local.get $5 + local.get $6 + i32.lt_s + local.set $7 + local.get $7 if - local.get $0 - i32.const 45 - i32.store16 - local.get $0 - i32.const 2 + local.get $4 + local.get $5 + i32.const 0 + i32.shl i32.add - local.set $0 + i32.load8_u + local.get $5 + local.get $3 + i32.const 3 + global.set $~argumentsLength + local.get $2 + i32.load + call_indirect (type $i32_i32_i32_=>_i32) + if + local.get $5 + br $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint8Array,u8>|inlined.0 + end + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|0 end - local.get $0 - i64.const 29555310648492105 - i64.store - local.get $0 - i64.const 34058970405077102 - i64.store offset=8 - i32.const 8 - local.get $2 - i32.add - return end - unreachable + i32.const -1 end + ) + (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Uint8Array,u8>~anonymous|1 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $0 - local.get $1 - call $~lib/util/number/dtoa_core + i32.const 255 + i32.and + i32.const 4 + i32.eq ) - (func $~lib/arraybuffer/ArrayBuffer#get:byteLength (param $0 i32) (result i32) + (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Uint8ClampedArray,u8>~anonymous|0 (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 255 + i32.and + i32.const 2 + i32.eq ) - (func $~lib/typedarray/Uint8Array.wrap@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 0 - local.set $1 - end - i32.const -1 + (func $~lib/typedarray/Uint8ClampedArray#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) + block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint8ClampedArray,u8>|inlined.0 (result i32) + local.get $0 + local.set $3 + local.get $1 local.set $2 - end - local.get $0 - local.get $1 - local.get $2 - call $~lib/typedarray/Uint8Array.wrap - ) - (func $~lib/typedarray/Int8Array.wrap@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 + local.get $3 + i32.load offset=4 + local.set $4 + i32.const 0 + local.set $5 + local.get $3 + call $~lib/typedarray/Uint8ClampedArray#get:length + local.set $6 + loop $for-loop|0 + local.get $5 + local.get $6 + i32.lt_s + local.set $7 + local.get $7 + if + local.get $4 + local.get $5 + i32.const 0 + i32.shl + i32.add + i32.load8_u + local.get $5 + local.get $3 + i32.const 3 + global.set $~argumentsLength + local.get $2 + i32.load + call_indirect (type $i32_i32_i32_=>_i32) + if + local.get $5 + br $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint8ClampedArray,u8>|inlined.0 end - unreachable + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|0 end - i32.const 0 - local.set $1 end i32.const -1 - local.set $2 end - local.get $0 - local.get $1 - local.get $2 - call $~lib/typedarray/Int8Array.wrap ) - (func $~lib/typedarray/Uint8ClampedArray.wrap@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 0 - local.set $1 - end - i32.const -1 - local.set $2 - end + (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Uint8ClampedArray,u8>~anonymous|1 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $0 - local.get $1 - local.get $2 - call $~lib/typedarray/Uint8ClampedArray.wrap + i32.const 255 + i32.and + i32.const 4 + i32.eq ) - (func $~lib/typedarray/Int16Array.wrap@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 0 - local.set $1 - end - i32.const -1 - local.set $2 - end + (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Int16Array,i16>~anonymous|0 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $0 - local.get $1 - local.get $2 - call $~lib/typedarray/Int16Array.wrap + i32.const 16 + i32.shl + i32.const 16 + i32.shr_s + i32.const 2 + i32.eq ) - (func $~lib/typedarray/Uint16Array.wrap@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 + (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) + (local $6 i32) + (local $7 i32) + block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int16Array,i16>|inlined.0 (result i32) + local.get $0 + local.set $3 + local.get $1 + local.set $2 + local.get $3 + i32.load offset=4 + local.set $4 + i32.const 0 + local.set $5 + local.get $3 + call $~lib/typedarray/Int16Array#get:length + local.set $6 + loop $for-loop|0 + local.get $5 + local.get $6 + i32.lt_s + local.set $7 + local.get $7 + if + local.get $4 + local.get $5 + i32.const 1 + i32.shl + i32.add + i32.load16_s + local.get $5 + local.get $3 + i32.const 3 + global.set $~argumentsLength + local.get $2 + i32.load + call_indirect (type $i32_i32_i32_=>_i32) + if + local.get $5 + br $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int16Array,i16>|inlined.0 end - unreachable + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|0 end - i32.const 0 - local.set $1 end i32.const -1 - local.set $2 end + ) + (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Int16Array,i16>~anonymous|1 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $0 - local.get $1 - local.get $2 - call $~lib/typedarray/Uint16Array.wrap + i32.const 16 + i32.shl + i32.const 16 + i32.shr_s + i32.const 4 + i32.eq ) - (func $~lib/typedarray/Int32Array.wrap@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 0 - local.set $1 - end - i32.const -1 - local.set $2 - end + (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Uint16Array,u16>~anonymous|0 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $0 - local.get $1 - local.get $2 - call $~lib/typedarray/Int32Array.wrap + i32.const 65535 + i32.and + i32.const 2 + i32.eq ) - (func $~lib/typedarray/Uint32Array.wrap@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 + (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) + (local $6 i32) + (local $7 i32) + block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint16Array,u16>|inlined.0 (result i32) + local.get $0 + local.set $3 + local.get $1 + local.set $2 + local.get $3 + i32.load offset=4 + local.set $4 + i32.const 0 + local.set $5 + local.get $3 + call $~lib/typedarray/Uint16Array#get:length + local.set $6 + loop $for-loop|0 + local.get $5 + local.get $6 + i32.lt_s + local.set $7 + local.get $7 + if + local.get $4 + local.get $5 + i32.const 1 + i32.shl + i32.add + i32.load16_u + local.get $5 + local.get $3 + i32.const 3 + global.set $~argumentsLength + local.get $2 + i32.load + call_indirect (type $i32_i32_i32_=>_i32) + if + local.get $5 + br $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint16Array,u16>|inlined.0 end - unreachable + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|0 end - i32.const 0 - local.set $1 end i32.const -1 - local.set $2 end + ) + (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Uint16Array,u16>~anonymous|1 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $0 - local.get $1 - local.get $2 - call $~lib/typedarray/Uint32Array.wrap + i32.const 65535 + i32.and + i32.const 4 + i32.eq ) - (func $~lib/typedarray/Int64Array.wrap@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 0 - local.set $1 - end - i32.const -1 - local.set $2 - end + (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Int32Array,i32>~anonymous|0 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $0 - local.get $1 - local.get $2 - call $~lib/typedarray/Int64Array.wrap + i32.const 2 + i32.eq ) - (func $~lib/typedarray/Uint64Array.wrap@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 + (func $~lib/typedarray/Int32Array#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) + block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int32Array,i32>|inlined.0 (result i32) + local.get $0 + local.set $3 + local.get $1 + local.set $2 + local.get $3 + i32.load offset=4 + local.set $4 + i32.const 0 + local.set $5 + local.get $3 + call $~lib/typedarray/Int32Array#get:length + local.set $6 + loop $for-loop|0 + local.get $5 + local.get $6 + i32.lt_s + local.set $7 + local.get $7 + if + local.get $4 + local.get $5 + i32.const 2 + i32.shl + i32.add + i32.load + local.get $5 + local.get $3 + i32.const 3 + global.set $~argumentsLength + local.get $2 + i32.load + call_indirect (type $i32_i32_i32_=>_i32) + if + local.get $5 + br $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int32Array,i32>|inlined.0 end - unreachable + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|0 end - i32.const 0 - local.set $1 end i32.const -1 - local.set $2 end + ) + (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Int32Array,i32>~anonymous|1 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $0 - local.get $1 - local.get $2 - call $~lib/typedarray/Uint64Array.wrap + i32.const 4 + i32.eq ) - (func $~lib/typedarray/Float32Array.wrap@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 0 - local.set $1 - end - i32.const -1 - local.set $2 - end + (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Uint32Array,u32>~anonymous|0 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $0 - local.get $1 - local.get $2 - call $~lib/typedarray/Float32Array.wrap + i32.const 2 + i32.eq ) - (func $~lib/typedarray/Float64Array.wrap@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 + (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) + (local $6 i32) + (local $7 i32) + block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint32Array,u32>|inlined.0 (result i32) + local.get $0 + local.set $3 + local.get $1 + local.set $2 + local.get $3 + i32.load offset=4 + local.set $4 + i32.const 0 + local.set $5 + local.get $3 + call $~lib/typedarray/Uint32Array#get:length + local.set $6 + loop $for-loop|0 + local.get $5 + local.get $6 + i32.lt_s + local.set $7 + local.get $7 + if + local.get $4 + local.get $5 + i32.const 2 + i32.shl + i32.add + i32.load + local.get $5 + local.get $3 + i32.const 3 + global.set $~argumentsLength + local.get $2 + i32.load + call_indirect (type $i32_i32_i32_=>_i32) + if + local.get $5 + br $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint32Array,u32>|inlined.0 end - unreachable + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|0 end - i32.const 0 - local.set $1 end i32.const -1 - local.set $2 end - local.get $0 - local.get $1 - local.get $2 - call $~lib/typedarray/Float64Array.wrap ) - (func $~lib/typedarray/Int8Array#__uget (param $0 i32) (param $1 i32) (result i32) + (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Uint32Array,u32>~anonymous|1 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $0 - i32.load offset=4 - local.get $1 - i32.add - i32.load8_s + i32.const 4 + i32.eq ) - (func $~lib/array/Array#__uget (param $0 i32) (param $1 i32) (result i32) - local.get $0 - i32.load offset=4 - local.get $1 - i32.const 0 - i32.shl - i32.add - i32.load8_s - ) - (func $~lib/array/Array#get:length (param $0 i32) (result i32) + (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Int64Array,i64>~anonymous|0 (param $0 i64) (param $1 i32) (param $2 i32) (result i32) local.get $0 - i32.load offset=12 + i64.const 2 + i64.eq ) - (func $~lib/array/Array#get:length (param $0 i32) (result i32) - local.get $0 - i32.load offset=12 + (func $~lib/typedarray/Int64Array#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) + block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int64Array,i64>|inlined.0 (result i32) + local.get $0 + local.set $3 + local.get $1 + local.set $2 + local.get $3 + i32.load offset=4 + local.set $4 + i32.const 0 + local.set $5 + local.get $3 + call $~lib/typedarray/Int64Array#get:length + local.set $6 + loop $for-loop|0 + local.get $5 + local.get $6 + i32.lt_s + local.set $7 + local.get $7 + if + local.get $4 + local.get $5 + i32.const 3 + i32.shl + i32.add + i64.load + local.get $5 + local.get $3 + i32.const 3 + global.set $~argumentsLength + local.get $2 + i32.load + call_indirect (type $i64_i32_i32_=>_i32) + if + local.get $5 + br $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int64Array,i64>|inlined.0 + end + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|0 + end + end + i32.const -1 + end ) - (func $~lib/array/Array#get:length (param $0 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 - i32.load offset=12 + i64.const 4 + i64.eq ) - (func $~lib/typedarray/Uint8Array#__uget (param $0 i32) (param $1 i32) (result i32) + (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Uint64Array,u64>~anonymous|0 (param $0 i64) (param $1 i32) (param $2 i32) (result i32) local.get $0 - i32.load offset=4 - local.get $1 - i32.add - i32.load8_u + i64.const 2 + i64.eq ) - (func $~lib/array/Array#__uget (param $0 i32) (param $1 i32) (result i32) - local.get $0 - i32.load offset=4 - local.get $1 - i32.const 0 - i32.shl - i32.add - i32.load8_u + (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) + block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint64Array,u64>|inlined.0 (result i32) + local.get $0 + local.set $3 + local.get $1 + local.set $2 + local.get $3 + i32.load offset=4 + local.set $4 + i32.const 0 + local.set $5 + local.get $3 + call $~lib/typedarray/Uint64Array#get:length + local.set $6 + loop $for-loop|0 + local.get $5 + local.get $6 + i32.lt_s + local.set $7 + local.get $7 + if + local.get $4 + local.get $5 + i32.const 3 + i32.shl + i32.add + i64.load + local.get $5 + local.get $3 + i32.const 3 + global.set $~argumentsLength + local.get $2 + i32.load + call_indirect (type $i64_i32_i32_=>_i32) + if + local.get $5 + br $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint64Array,u64>|inlined.0 + end + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|0 + end + end + i32.const -1 + end ) - (func $~lib/typedarray/Uint8ClampedArray#__uget (param $0 i32) (param $1 i32) (result i32) + (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Uint64Array,u64>~anonymous|1 (param $0 i64) (param $1 i32) (param $2 i32) (result i32) local.get $0 - i32.load offset=4 - local.get $1 - i32.add - i32.load8_u + i64.const 4 + i64.eq ) - (func $~lib/array/Array#get:length (param $0 i32) (result i32) + (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Float32Array,f32>~anonymous|0 (param $0 f32) (param $1 i32) (param $2 i32) (result i32) local.get $0 - i32.load offset=12 + f32.const 2 + f32.eq ) - (func $~lib/typedarray/Int16Array#__uget (param $0 i32) (param $1 i32) (result i32) - local.get $0 - i32.load offset=4 - local.get $1 - i32.const 1 - i32.shl - i32.add - i32.load16_s + (func $~lib/typedarray/Float32Array#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) + block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Float32Array,f32>|inlined.0 (result i32) + local.get $0 + local.set $3 + local.get $1 + local.set $2 + local.get $3 + i32.load offset=4 + local.set $4 + i32.const 0 + local.set $5 + local.get $3 + call $~lib/typedarray/Float32Array#get:length + local.set $6 + loop $for-loop|0 + local.get $5 + local.get $6 + i32.lt_s + local.set $7 + local.get $7 + if + local.get $4 + local.get $5 + i32.const 2 + i32.shl + i32.add + f32.load + local.get $5 + local.get $3 + i32.const 3 + global.set $~argumentsLength + local.get $2 + i32.load + call_indirect (type $f32_i32_i32_=>_i32) + if + local.get $5 + br $~lib/typedarray/FIND_INDEX<~lib/typedarray/Float32Array,f32>|inlined.0 + end + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|0 + end + end + i32.const -1 + end ) - (func $~lib/array/Array#__uget (param $0 i32) (param $1 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 - i32.load offset=4 - local.get $1 - i32.const 1 - i32.shl - i32.add - i32.load16_s + f32.const 4 + f32.eq ) - (func $~lib/array/Array#get:length (param $0 i32) (result i32) + (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Float64Array,f64>~anonymous|0 (param $0 f64) (param $1 i32) (param $2 i32) (result i32) local.get $0 - i32.load offset=12 + f64.const 2 + f64.eq ) - (func $~lib/typedarray/Uint16Array#__uget (param $0 i32) (param $1 i32) (result i32) - local.get $0 - i32.load offset=4 - local.get $1 - i32.const 1 - i32.shl - i32.add - i32.load16_u + (func $~lib/typedarray/Float64Array#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) + block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Float64Array,f64>|inlined.0 (result i32) + local.get $0 + local.set $3 + local.get $1 + local.set $2 + local.get $3 + i32.load offset=4 + local.set $4 + i32.const 0 + local.set $5 + local.get $3 + call $~lib/typedarray/Float64Array#get:length + local.set $6 + loop $for-loop|0 + local.get $5 + local.get $6 + i32.lt_s + local.set $7 + local.get $7 + if + local.get $4 + local.get $5 + i32.const 3 + i32.shl + i32.add + f64.load + local.get $5 + local.get $3 + i32.const 3 + global.set $~argumentsLength + local.get $2 + i32.load + call_indirect (type $f64_i32_i32_=>_i32) + if + local.get $5 + br $~lib/typedarray/FIND_INDEX<~lib/typedarray/Float64Array,f64>|inlined.0 + end + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|0 + end + end + i32.const -1 + end ) - (func $~lib/array/Array#__uget (param $0 i32) (param $1 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 - i32.load offset=4 - local.get $1 - i32.const 1 - i32.shl - i32.add - i32.load16_u + f64.const 4 + f64.eq ) - (func $~lib/typedarray/Int32Array#__uget (param $0 i32) (param $1 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.load offset=4 - local.get $1 - i32.const 2 + i32.const 24 i32.shl - i32.add - i32.load - ) - (func $~lib/array/Array#__uget (param $0 i32) (param $1 i32) (result i32) - local.get $0 - i32.load offset=4 - local.get $1 + i32.const 24 + i32.shr_s i32.const 2 - i32.shl - i32.add - i32.load + i32.rem_s + i32.const 0 + i32.eq ) - (func $~lib/array/Array#get:length (param $0 i32) (result i32) - local.get $0 - i32.load offset=12 + (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) + (local $6 i32) + (local $7 i32) + block $~lib/typedarray/EVERY<~lib/typedarray/Int8Array,i8>|inlined.0 (result i32) + local.get $0 + local.set $3 + local.get $1 + local.set $2 + local.get $3 + i32.load offset=4 + local.set $4 + i32.const 0 + local.set $5 + local.get $3 + call $~lib/typedarray/Int8Array#get:length + local.set $6 + loop $for-loop|0 + local.get $5 + local.get $6 + i32.lt_s + local.set $7 + local.get $7 + if + block $for-continue|0 + local.get $4 + local.get $5 + i32.const 0 + i32.shl + i32.add + i32.load8_s + local.get $5 + local.get $3 + i32.const 3 + global.set $~argumentsLength + local.get $2 + i32.load + call_indirect (type $i32_i32_i32_=>_i32) + if + br $for-continue|0 + end + i32.const 0 + br $~lib/typedarray/EVERY<~lib/typedarray/Int8Array,i8>|inlined.0 + end + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|0 + end + end + i32.const 1 + end ) - (func $~lib/typedarray/Uint32Array#__uget (param $0 i32) (param $1 i32) (result i32) + (func $std/typedarray/testArrayEvery<~lib/typedarray/Int8Array,i8>~anonymous|1 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $0 - i32.load offset=4 - local.get $1 - i32.const 2 + i32.const 24 i32.shl - i32.add - i32.load - ) - (func $~lib/array/Array#__uget (param $0 i32) (param $1 i32) (result i32) - local.get $0 - i32.load offset=4 - local.get $1 + i32.const 24 + i32.shr_s i32.const 2 - i32.shl - i32.add - i32.load - ) - (func $~lib/array/Array#get:length (param $0 i32) (result i32) - local.get $0 - i32.load offset=12 + i32.eq ) - (func $~lib/typedarray/Int64Array#__uget (param $0 i32) (param $1 i32) (result i64) + (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.load offset=4 - local.get $1 - i32.const 3 - i32.shl - i32.add - i64.load + i32.const 255 + i32.and + i32.const 2 + i32.rem_u + i32.const 0 + i32.eq ) - (func $~lib/array/Array#__uget (param $0 i32) (param $1 i32) (result i64) - local.get $0 - i32.load offset=4 - local.get $1 - i32.const 3 - i32.shl - i32.add - i64.load + (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 $7 i32) + block $~lib/typedarray/EVERY<~lib/typedarray/Uint8Array,u8>|inlined.0 (result i32) + local.get $0 + local.set $3 + local.get $1 + local.set $2 + local.get $3 + i32.load offset=4 + local.set $4 + i32.const 0 + local.set $5 + local.get $3 + call $~lib/typedarray/Uint8Array#get:length + local.set $6 + loop $for-loop|0 + local.get $5 + local.get $6 + i32.lt_s + local.set $7 + local.get $7 + if + block $for-continue|0 + local.get $4 + local.get $5 + i32.const 0 + i32.shl + i32.add + i32.load8_u + local.get $5 + local.get $3 + i32.const 3 + global.set $~argumentsLength + local.get $2 + i32.load + call_indirect (type $i32_i32_i32_=>_i32) + if + br $for-continue|0 + end + i32.const 0 + br $~lib/typedarray/EVERY<~lib/typedarray/Uint8Array,u8>|inlined.0 + end + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|0 + end + end + i32.const 1 + end ) - (func $~lib/array/Array#get:length (param $0 i32) (result i32) + (func $std/typedarray/testArrayEvery<~lib/typedarray/Uint8Array,u8>~anonymous|1 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $0 - i32.load offset=12 + i32.const 255 + i32.and + i32.const 2 + i32.eq ) - (func $~lib/typedarray/Uint64Array#__uget (param $0 i32) (param $1 i32) (result i64) + (func $std/typedarray/testArrayEvery<~lib/typedarray/Uint8ClampedArray,u8>~anonymous|0 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $0 - i32.load offset=4 - local.get $1 - i32.const 3 - i32.shl - i32.add - i64.load + i32.const 255 + i32.and + i32.const 2 + i32.rem_u + i32.const 0 + i32.eq ) - (func $~lib/array/Array#__uget (param $0 i32) (param $1 i32) (result i64) - local.get $0 - i32.load offset=4 - local.get $1 - i32.const 3 - i32.shl - i32.add - i64.load - ) - (func $~lib/typedarray/Float32Array#__uget (param $0 i32) (param $1 i32) (result f32) - local.get $0 - i32.load offset=4 - local.get $1 - i32.const 2 - i32.shl - i32.add - f32.load + (func $~lib/typedarray/Uint8ClampedArray#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) + block $~lib/typedarray/EVERY<~lib/typedarray/Uint8ClampedArray,u8>|inlined.0 (result i32) + local.get $0 + local.set $3 + local.get $1 + local.set $2 + local.get $3 + i32.load offset=4 + local.set $4 + i32.const 0 + local.set $5 + local.get $3 + call $~lib/typedarray/Uint8ClampedArray#get:length + local.set $6 + loop $for-loop|0 + local.get $5 + local.get $6 + i32.lt_s + local.set $7 + local.get $7 + if + block $for-continue|0 + local.get $4 + local.get $5 + i32.const 0 + i32.shl + i32.add + i32.load8_u + local.get $5 + local.get $3 + i32.const 3 + global.set $~argumentsLength + local.get $2 + i32.load + call_indirect (type $i32_i32_i32_=>_i32) + if + br $for-continue|0 + end + i32.const 0 + br $~lib/typedarray/EVERY<~lib/typedarray/Uint8ClampedArray,u8>|inlined.0 + end + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|0 + end + end + i32.const 1 + end ) - (func $~lib/array/Array#__uget (param $0 i32) (param $1 i32) (result f32) + (func $std/typedarray/testArrayEvery<~lib/typedarray/Uint8ClampedArray,u8>~anonymous|1 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $0 - i32.load offset=4 - local.get $1 + i32.const 255 + i32.and i32.const 2 - i32.shl - i32.add - f32.load - ) - (func $~lib/typedarray/Float64Array#__uget (param $0 i32) (param $1 i32) (result f64) - local.get $0 - i32.load offset=4 - local.get $1 - i32.const 3 - i32.shl - i32.add - f64.load + i32.eq ) - (func $~lib/array/Array#__uget (param $0 i32) (param $1 i32) (result f64) + (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.load offset=4 - local.get $1 - i32.const 3 + i32.const 16 i32.shl - i32.add - f64.load - ) - (func $~lib/rt/itcms/__collect - (local $0 i32) - i32.const 0 - drop - global.get $~lib/rt/itcms/state + i32.const 16 + i32.shr_s + i32.const 2 + i32.rem_s i32.const 0 - i32.gt_s - if - loop $while-continue|0 - global.get $~lib/rt/itcms/state - i32.const 0 - i32.ne - local.set $0 - local.get $0 + i32.eq + ) + (func $~lib/typedarray/Int16Array#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) + block $~lib/typedarray/EVERY<~lib/typedarray/Int16Array,i16>|inlined.0 (result i32) + local.get $0 + local.set $3 + local.get $1 + local.set $2 + local.get $3 + i32.load offset=4 + local.set $4 + i32.const 0 + local.set $5 + local.get $3 + call $~lib/typedarray/Int16Array#get:length + local.set $6 + loop $for-loop|0 + local.get $5 + local.get $6 + i32.lt_s + local.set $7 + local.get $7 if - call $~lib/rt/itcms/step - drop - br $while-continue|0 + block $for-continue|0 + local.get $4 + local.get $5 + i32.const 1 + i32.shl + i32.add + i32.load16_s + local.get $5 + local.get $3 + i32.const 3 + global.set $~argumentsLength + local.get $2 + i32.load + call_indirect (type $i32_i32_i32_=>_i32) + if + br $for-continue|0 + end + i32.const 0 + br $~lib/typedarray/EVERY<~lib/typedarray/Int16Array,i16>|inlined.0 + end + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|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 - local.set $0 - local.get $0 - 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.const 0 - drop - i32.const 0 - if (result i32) i32.const 1 - else - i32.const 0 end - drop ) - (func $~lib/rt/__visit_globals (param $0 i32) - (local $1 i32) - global.get $std/typedarray/forEachValues - local.tee $1 - if - local.get $1 - local.get $0 - call $~lib/rt/itcms/__visit - end - global.get $std/typedarray/testArrayReverseValues - local.tee $1 - if - local.get $1 - local.get $0 - call $~lib/rt/itcms/__visit - end - global.get $std/typedarray/testArrayIndexOfAndLastIndexOfValues - local.tee $1 - if - local.get $1 - local.get $0 - call $~lib/rt/itcms/__visit - end - global.get $std/typedarray/testArrayWrapValues - local.tee $1 - if - local.get $1 - local.get $0 - call $~lib/rt/itcms/__visit - end - global.get $std/typedarray/setSource1 - local.tee $1 - if - local.get $1 - local.get $0 - call $~lib/rt/itcms/__visit - end - global.get $std/typedarray/setSource2 - local.tee $1 - if - local.get $1 - local.get $0 - call $~lib/rt/itcms/__visit - end - global.get $std/typedarray/setSource3 - local.tee $1 - if - local.get $1 - local.get $0 - call $~lib/rt/itcms/__visit - end - global.get $std/typedarray/setSource7 - local.tee $1 - if - local.get $1 - local.get $0 - call $~lib/rt/itcms/__visit - end - i32.const 336 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 32 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 144 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 6704 + (func $std/typedarray/testArrayEvery<~lib/typedarray/Int16Array,i16>~anonymous|1 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $0 - call $~lib/rt/itcms/__visit - i32.const 7760 + i32.const 16 + i32.shl + i32.const 16 + i32.shr_s + i32.const 2 + i32.eq + ) + (func $std/typedarray/testArrayEvery<~lib/typedarray/Uint16Array,u16>~anonymous|0 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $0 - call $~lib/rt/itcms/__visit + i32.const 65535 + i32.and + i32.const 2 + i32.rem_u + i32.const 0 + i32.eq ) - (func $~lib/arraybuffer/ArrayBufferView~visit (param $0 i32) (param $1 i32) + (func $~lib/typedarray/Uint16Array#every (param $0 i32) (param $1 i32) (result i32) (local $2 i32) - local.get $0 - i32.load - local.tee $2 - if - local.get $2 + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + block $~lib/typedarray/EVERY<~lib/typedarray/Uint16Array,u16>|inlined.0 (result i32) + local.get $0 + local.set $3 local.get $1 - call $~lib/rt/itcms/__visit + local.set $2 + local.get $3 + i32.load offset=4 + local.set $4 + i32.const 0 + local.set $5 + local.get $3 + call $~lib/typedarray/Uint16Array#get:length + local.set $6 + loop $for-loop|0 + local.get $5 + local.get $6 + i32.lt_s + local.set $7 + local.get $7 + if + block $for-continue|0 + local.get $4 + local.get $5 + i32.const 1 + i32.shl + i32.add + i32.load16_u + local.get $5 + local.get $3 + i32.const 3 + global.set $~argumentsLength + local.get $2 + i32.load + call_indirect (type $i32_i32_i32_=>_i32) + if + br $for-continue|0 + end + i32.const 0 + br $~lib/typedarray/EVERY<~lib/typedarray/Uint16Array,u16>|inlined.0 + end + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|0 + end + end + i32.const 1 end ) - (func $~lib/typedarray/Int8Array~visit (param $0 i32) (param $1 i32) + (func $std/typedarray/testArrayEvery<~lib/typedarray/Uint16Array,u16>~anonymous|1 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $0 - local.get $1 - call $~lib/arraybuffer/ArrayBufferView~visit + i32.const 65535 + i32.and + i32.const 2 + i32.eq ) - (func $~lib/typedarray/Uint8Array~visit (param $0 i32) (param $1 i32) + (func $std/typedarray/testArrayEvery<~lib/typedarray/Int32Array,i32>~anonymous|0 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $0 - local.get $1 - call $~lib/arraybuffer/ArrayBufferView~visit + i32.const 2 + i32.rem_s + i32.const 0 + i32.eq ) - (func $~lib/typedarray/Uint8ClampedArray~visit (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - call $~lib/arraybuffer/ArrayBufferView~visit + (func $~lib/typedarray/Int32Array#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) + block $~lib/typedarray/EVERY<~lib/typedarray/Int32Array,i32>|inlined.0 (result i32) + local.get $0 + local.set $3 + local.get $1 + local.set $2 + local.get $3 + i32.load offset=4 + local.set $4 + i32.const 0 + local.set $5 + local.get $3 + call $~lib/typedarray/Int32Array#get:length + local.set $6 + loop $for-loop|0 + local.get $5 + local.get $6 + i32.lt_s + local.set $7 + local.get $7 + if + block $for-continue|0 + local.get $4 + local.get $5 + i32.const 2 + i32.shl + i32.add + i32.load + local.get $5 + local.get $3 + i32.const 3 + global.set $~argumentsLength + local.get $2 + i32.load + call_indirect (type $i32_i32_i32_=>_i32) + if + br $for-continue|0 + end + i32.const 0 + br $~lib/typedarray/EVERY<~lib/typedarray/Int32Array,i32>|inlined.0 + end + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|0 + end + end + i32.const 1 + end ) - (func $~lib/typedarray/Int16Array~visit (param $0 i32) (param $1 i32) + (func $std/typedarray/testArrayEvery<~lib/typedarray/Int32Array,i32>~anonymous|1 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $0 - local.get $1 - call $~lib/arraybuffer/ArrayBufferView~visit + i32.const 2 + i32.eq ) - (func $~lib/typedarray/Uint16Array~visit (param $0 i32) (param $1 i32) + (func $std/typedarray/testArrayEvery<~lib/typedarray/Uint32Array,u32>~anonymous|0 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $0 - local.get $1 - call $~lib/arraybuffer/ArrayBufferView~visit + i32.const 2 + i32.rem_u + i32.const 0 + i32.eq ) - (func $~lib/typedarray/Int32Array~visit (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - call $~lib/arraybuffer/ArrayBufferView~visit + (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) + (local $6 i32) + (local $7 i32) + block $~lib/typedarray/EVERY<~lib/typedarray/Uint32Array,u32>|inlined.0 (result i32) + local.get $0 + local.set $3 + local.get $1 + local.set $2 + local.get $3 + i32.load offset=4 + local.set $4 + i32.const 0 + local.set $5 + local.get $3 + call $~lib/typedarray/Uint32Array#get:length + local.set $6 + loop $for-loop|0 + local.get $5 + local.get $6 + i32.lt_s + local.set $7 + local.get $7 + if + block $for-continue|0 + local.get $4 + local.get $5 + i32.const 2 + i32.shl + i32.add + i32.load + local.get $5 + local.get $3 + i32.const 3 + global.set $~argumentsLength + local.get $2 + i32.load + call_indirect (type $i32_i32_i32_=>_i32) + if + br $for-continue|0 + end + i32.const 0 + br $~lib/typedarray/EVERY<~lib/typedarray/Uint32Array,u32>|inlined.0 + end + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|0 + end + end + i32.const 1 + end ) - (func $~lib/typedarray/Uint32Array~visit (param $0 i32) (param $1 i32) + (func $std/typedarray/testArrayEvery<~lib/typedarray/Uint32Array,u32>~anonymous|1 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $0 - local.get $1 - call $~lib/arraybuffer/ArrayBufferView~visit + i32.const 2 + i32.eq ) - (func $~lib/typedarray/Int64Array~visit (param $0 i32) (param $1 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 - local.get $1 - call $~lib/arraybuffer/ArrayBufferView~visit + i64.const 2 + i64.rem_s + i64.const 0 + i64.eq ) - (func $~lib/typedarray/Uint64Array~visit (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - call $~lib/arraybuffer/ArrayBufferView~visit + (func $~lib/typedarray/Int64Array#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) + block $~lib/typedarray/EVERY<~lib/typedarray/Int64Array,i64>|inlined.0 (result i32) + local.get $0 + local.set $3 + local.get $1 + local.set $2 + local.get $3 + i32.load offset=4 + local.set $4 + i32.const 0 + local.set $5 + local.get $3 + call $~lib/typedarray/Int64Array#get:length + local.set $6 + loop $for-loop|0 + local.get $5 + local.get $6 + i32.lt_s + local.set $7 + local.get $7 + if + block $for-continue|0 + local.get $4 + local.get $5 + i32.const 3 + i32.shl + i32.add + i64.load + local.get $5 + local.get $3 + i32.const 3 + global.set $~argumentsLength + local.get $2 + i32.load + call_indirect (type $i64_i32_i32_=>_i32) + if + br $for-continue|0 + end + i32.const 0 + br $~lib/typedarray/EVERY<~lib/typedarray/Int64Array,i64>|inlined.0 + end + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|0 + end + end + i32.const 1 + end ) - (func $~lib/typedarray/Float32Array~visit (param $0 i32) (param $1 i32) + (func $std/typedarray/testArrayEvery<~lib/typedarray/Int64Array,i64>~anonymous|1 (param $0 i64) (param $1 i32) (param $2 i32) (result i32) local.get $0 - local.get $1 - call $~lib/arraybuffer/ArrayBufferView~visit + i64.const 2 + i64.eq ) - (func $~lib/typedarray/Float64Array~visit (param $0 i32) (param $1 i32) + (func $std/typedarray/testArrayEvery<~lib/typedarray/Uint64Array,u64>~anonymous|0 (param $0 i64) (param $1 i32) (param $2 i32) (result i32) local.get $0 - local.get $1 - call $~lib/arraybuffer/ArrayBufferView~visit + i64.const 2 + i64.rem_u + i64.const 0 + i64.eq ) - (func $~lib/function/Function<%28f64%2Cf64%29=>i32>#__visit (param $0 i32) (param $1 i32) - local.get $0 - i32.load offset=4 - local.get $1 - call $~lib/rt/itcms/__visit + (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) + block $~lib/typedarray/EVERY<~lib/typedarray/Uint64Array,u64>|inlined.0 (result i32) + local.get $0 + local.set $3 + local.get $1 + local.set $2 + local.get $3 + i32.load offset=4 + local.set $4 + i32.const 0 + local.set $5 + local.get $3 + call $~lib/typedarray/Uint64Array#get:length + local.set $6 + loop $for-loop|0 + local.get $5 + local.get $6 + i32.lt_s + local.set $7 + local.get $7 + if + block $for-continue|0 + local.get $4 + local.get $5 + i32.const 3 + i32.shl + i32.add + i64.load + local.get $5 + local.get $3 + i32.const 3 + global.set $~argumentsLength + local.get $2 + i32.load + call_indirect (type $i64_i32_i32_=>_i32) + if + br $for-continue|0 + end + i32.const 0 + br $~lib/typedarray/EVERY<~lib/typedarray/Uint64Array,u64>|inlined.0 + end + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|0 + end + end + i32.const 1 + end ) - (func $~lib/function/Function<%28f64%2Cf64%29=>i32>~visit (param $0 i32) (param $1 i32) + (func $std/typedarray/testArrayEvery<~lib/typedarray/Uint64Array,u64>~anonymous|1 (param $0 i64) (param $1 i32) (param $2 i32) (result i32) local.get $0 - local.get $1 - call $~lib/function/Function<%28f64%2Cf64%29=>i32>#__visit + i64.const 2 + i64.eq ) - (func $~lib/array/Array#__visit (param $0 i32) (param $1 i32) - i32.const 0 - drop - local.get $0 - i32.load + (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 f32) + (local $9 i32) + (local $10 i32) + (local $11 i32) local.get $1 - call $~lib/rt/itcms/__visit - ) - (func $~lib/array/Array~visit (param $0 i32) (param $1 i32) + 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 $0 + i32.reinterpret_f32 + local.set $2 local.get $1 - call $~lib/array/Array#__visit - ) - (func $~lib/array/Array#__visit (param $0 i32) (param $1 i32) + i32.reinterpret_f32 + local.set $3 + local.get $2 + i32.const 23 + i32.shr_u + i32.const 255 + i32.and + local.set $4 + local.get $3 + i32.const 23 + i32.shr_u + i32.const 255 + i32.and + local.set $5 + local.get $2 + i32.const -2147483648 + i32.and + local.set $6 + local.get $3 + i32.const 1 + i32.shl + local.set $7 + local.get $7 i32.const 0 - drop - local.get $0 - i32.load - local.get $1 - call $~lib/rt/itcms/__visit + i32.eq + if (result i32) + i32.const 1 + else + local.get $4 + i32.const 255 + i32.eq + end + if (result i32) + i32.const 1 + else + local.get $1 + local.get $1 + f32.ne + end + if + local.get $0 + local.get $1 + f32.mul + local.set $8 + local.get $8 + local.get $8 + f32.div + return + end + local.get $2 + i32.const 1 + i32.shl + local.set $9 + local.get $9 + local.get $7 + i32.le_u + if + local.get $0 + local.get $9 + local.get $7 + i32.ne + f32.convert_i32_u + f32.mul + return + end + local.get $4 + i32.eqz + if + local.get $4 + local.get $2 + i32.const 9 + i32.shl + i32.clz + i32.sub + local.set $4 + local.get $2 + i32.const 1 + local.get $4 + i32.sub + i32.shl + local.set $2 + else + local.get $2 + i32.const -1 + i32.const 9 + i32.shr_u + i32.and + local.set $2 + local.get $2 + i32.const 1 + i32.const 23 + i32.shl + i32.or + local.set $2 + end + local.get $5 + i32.eqz + if + local.get $5 + local.get $3 + i32.const 9 + i32.shl + i32.clz + i32.sub + local.set $5 + local.get $3 + i32.const 1 + local.get $5 + i32.sub + i32.shl + local.set $3 + else + local.get $3 + i32.const -1 + i32.const 9 + i32.shr_u + i32.and + local.set $3 + local.get $3 + i32.const 1 + i32.const 23 + i32.shl + i32.or + local.set $3 + end + loop $while-continue|0 + local.get $4 + local.get $5 + i32.gt_s + local.set $10 + local.get $10 + if + local.get $2 + local.get $3 + i32.ge_u + if + local.get $2 + local.get $3 + i32.eq + if + f32.const 0 + local.get $0 + f32.mul + return + end + local.get $2 + local.get $3 + i32.sub + local.set $2 + end + local.get $2 + i32.const 1 + i32.shl + local.set $2 + local.get $4 + i32.const 1 + i32.sub + local.set $4 + 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 + f32.const 0 + local.get $0 + f32.mul + return + end + local.get $2 + local.get $3 + i32.sub + local.set $2 + end + local.get $2 + i32.const 8 + i32.shl + i32.clz + local.set $11 + local.get $4 + local.get $11 + i32.sub + local.set $4 + local.get $2 + local.get $11 + i32.shl + local.set $2 + local.get $4 + i32.const 0 + i32.gt_s + if + local.get $2 + i32.const 1 + i32.const 23 + i32.shl + i32.sub + local.set $2 + local.get $2 + local.get $4 + i32.const 23 + i32.shl + i32.or + local.set $2 + else + local.get $2 + i32.const 0 + local.get $4 + i32.sub + i32.const 1 + i32.add + i32.shr_u + local.set $2 + end + local.get $2 + local.get $6 + i32.or + f32.reinterpret_i32 ) - (func $~lib/array/Array~visit (param $0 i32) (param $1 i32) + (func $std/typedarray/testArrayEvery<~lib/typedarray/Float32Array,f32>~anonymous|0 (param $0 f32) (param $1 i32) (param $2 i32) (result i32) local.get $0 - local.get $1 - call $~lib/array/Array#__visit + f32.const 2 + call $~lib/math/NativeMathf.mod + f32.const 0 + f32.eq ) - (func $~lib/function/Function<%28i8%2Ci8%2Ci32%2C~lib/typedarray/Int8Array%29=>i8>#__visit (param $0 i32) (param $1 i32) - local.get $0 - i32.load offset=4 - local.get $1 - call $~lib/rt/itcms/__visit + (func $~lib/typedarray/Float32Array#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) + block $~lib/typedarray/EVERY<~lib/typedarray/Float32Array,f32>|inlined.0 (result i32) + local.get $0 + local.set $3 + local.get $1 + local.set $2 + local.get $3 + i32.load offset=4 + local.set $4 + i32.const 0 + local.set $5 + local.get $3 + call $~lib/typedarray/Float32Array#get:length + local.set $6 + loop $for-loop|0 + local.get $5 + local.get $6 + i32.lt_s + local.set $7 + local.get $7 + if + block $for-continue|0 + local.get $4 + local.get $5 + i32.const 2 + i32.shl + i32.add + f32.load + local.get $5 + local.get $3 + i32.const 3 + global.set $~argumentsLength + local.get $2 + i32.load + call_indirect (type $f32_i32_i32_=>_i32) + if + br $for-continue|0 + end + i32.const 0 + br $~lib/typedarray/EVERY<~lib/typedarray/Float32Array,f32>|inlined.0 + end + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|0 + end + end + i32.const 1 + end ) - (func $~lib/function/Function<%28i8%2Ci8%2Ci32%2C~lib/typedarray/Int8Array%29=>i8>~visit (param $0 i32) (param $1 i32) + (func $std/typedarray/testArrayEvery<~lib/typedarray/Float32Array,f32>~anonymous|1 (param $0 f32) (param $1 i32) (param $2 i32) (result i32) local.get $0 - local.get $1 - call $~lib/function/Function<%28i8%2Ci8%2Ci32%2C~lib/typedarray/Int8Array%29=>i8>#__visit + f32.const 2 + f32.eq ) - (func $~lib/function/Function<%28u8%2Cu8%2Ci32%2C~lib/typedarray/Uint8Array%29=>u8>#__visit (param $0 i32) (param $1 i32) - local.get $0 - i32.load offset=4 + (func $~lib/math/NativeMath.mod (param $0 f64) (param $1 f64) (result f64) + (local $2 i64) + (local $3 i64) + (local $4 i64) + (local $5 i64) + (local $6 i64) + (local $7 i64) + (local $8 f64) + (local $9 i64) + (local $10 i32) + (local $11 i64) local.get $1 - call $~lib/rt/itcms/__visit - ) - (func $~lib/function/Function<%28u8%2Cu8%2Ci32%2C~lib/typedarray/Uint8Array%29=>u8>~visit (param $0 i32) (param $1 i32) + f64.abs + f64.const 1 + f64.eq + if + local.get $0 + local.get $0 + f64.trunc + f64.sub + local.get $0 + f64.copysign + return + end local.get $0 + i64.reinterpret_f64 + local.set $2 local.get $1 - call $~lib/function/Function<%28u8%2Cu8%2Ci32%2C~lib/typedarray/Uint8Array%29=>u8>#__visit - ) - (func $~lib/function/Function<%28u8%2Cu8%2Ci32%2C~lib/typedarray/Uint8ClampedArray%29=>u8>#__visit (param $0 i32) (param $1 i32) - local.get $0 - i32.load offset=4 - local.get $1 - call $~lib/rt/itcms/__visit + i64.reinterpret_f64 + local.set $3 + local.get $2 + i64.const 52 + i64.shr_u + i64.const 2047 + i64.and + local.set $4 + local.get $3 + i64.const 52 + i64.shr_u + i64.const 2047 + i64.and + local.set $5 + local.get $2 + i64.const 63 + i64.shr_u + local.set $6 + local.get $3 + i64.const 1 + i64.shl + local.set $7 + local.get $7 + i64.const 0 + i64.eq + if (result i32) + i32.const 1 + else + local.get $4 + i64.const 2047 + i64.eq + end + if (result i32) + i32.const 1 + else + local.get $1 + local.get $1 + f64.ne + end + if + local.get $0 + local.get $1 + f64.mul + local.set $8 + local.get $8 + local.get $8 + f64.div + return + end + local.get $2 + i64.const 1 + i64.shl + local.set $9 + local.get $9 + local.get $7 + i64.le_u + if + local.get $0 + local.get $9 + local.get $7 + i64.ne + f64.convert_i32_u + f64.mul + return + end + local.get $4 + i64.const 0 + i64.ne + i32.eqz + if + local.get $4 + local.get $2 + i64.const 12 + i64.shl + i64.clz + i64.sub + local.set $4 + local.get $2 + i64.const 1 + local.get $4 + i64.sub + i64.shl + local.set $2 + else + local.get $2 + i64.const -1 + i64.const 12 + i64.shr_u + i64.and + local.set $2 + local.get $2 + i64.const 1 + i64.const 52 + i64.shl + i64.or + local.set $2 + end + local.get $5 + i64.const 0 + i64.ne + i32.eqz + if + local.get $5 + local.get $3 + i64.const 12 + i64.shl + i64.clz + i64.sub + local.set $5 + local.get $3 + i64.const 1 + local.get $5 + i64.sub + i64.shl + local.set $3 + else + local.get $3 + i64.const -1 + i64.const 12 + i64.shr_u + i64.and + local.set $3 + local.get $3 + i64.const 1 + i64.const 52 + i64.shl + i64.or + local.set $3 + end + loop $while-continue|0 + local.get $4 + local.get $5 + i64.gt_s + local.set $10 + local.get $10 + if + local.get $2 + local.get $3 + i64.ge_u + if + local.get $2 + local.get $3 + i64.eq + if + f64.const 0 + local.get $0 + f64.mul + return + end + local.get $2 + local.get $3 + i64.sub + local.set $2 + end + local.get $2 + i64.const 1 + i64.shl + local.set $2 + local.get $4 + i64.const 1 + i64.sub + local.set $4 + br $while-continue|0 + end + end + local.get $2 + local.get $3 + i64.ge_u + if + local.get $2 + local.get $3 + i64.eq + if + f64.const 0 + local.get $0 + f64.mul + return + end + local.get $2 + local.get $3 + i64.sub + local.set $2 + end + local.get $2 + i64.const 11 + i64.shl + i64.clz + local.set $11 + local.get $4 + local.get $11 + i64.sub + local.set $4 + local.get $2 + local.get $11 + i64.shl + local.set $2 + local.get $4 + i64.const 0 + i64.gt_s + if + local.get $2 + i64.const 1 + i64.const 52 + i64.shl + i64.sub + local.set $2 + local.get $2 + local.get $4 + i64.const 52 + i64.shl + i64.or + local.set $2 + else + local.get $2 + i64.const 0 + local.get $4 + i64.sub + i64.const 1 + i64.add + i64.shr_u + local.set $2 + end + local.get $2 + local.get $6 + i64.const 63 + i64.shl + i64.or + f64.reinterpret_i64 ) - (func $~lib/function/Function<%28u8%2Cu8%2Ci32%2C~lib/typedarray/Uint8ClampedArray%29=>u8>~visit (param $0 i32) (param $1 i32) + (func $std/typedarray/testArrayEvery<~lib/typedarray/Float64Array,f64>~anonymous|0 (param $0 f64) (param $1 i32) (param $2 i32) (result i32) local.get $0 - local.get $1 - call $~lib/function/Function<%28u8%2Cu8%2Ci32%2C~lib/typedarray/Uint8ClampedArray%29=>u8>#__visit + f64.const 2 + call $~lib/math/NativeMath.mod + f64.const 0 + f64.eq ) - (func $~lib/function/Function<%28i16%2Ci16%2Ci32%2C~lib/typedarray/Int16Array%29=>i16>#__visit (param $0 i32) (param $1 i32) - local.get $0 - i32.load offset=4 - local.get $1 - call $~lib/rt/itcms/__visit + (func $~lib/typedarray/Float64Array#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) + block $~lib/typedarray/EVERY<~lib/typedarray/Float64Array,f64>|inlined.0 (result i32) + local.get $0 + local.set $3 + local.get $1 + local.set $2 + local.get $3 + i32.load offset=4 + local.set $4 + i32.const 0 + local.set $5 + local.get $3 + call $~lib/typedarray/Float64Array#get:length + local.set $6 + loop $for-loop|0 + local.get $5 + local.get $6 + i32.lt_s + local.set $7 + local.get $7 + if + block $for-continue|0 + local.get $4 + local.get $5 + i32.const 3 + i32.shl + i32.add + f64.load + local.get $5 + local.get $3 + i32.const 3 + global.set $~argumentsLength + local.get $2 + i32.load + call_indirect (type $f64_i32_i32_=>_i32) + if + br $for-continue|0 + end + i32.const 0 + br $~lib/typedarray/EVERY<~lib/typedarray/Float64Array,f64>|inlined.0 + end + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|0 + end + end + i32.const 1 + end ) - (func $~lib/function/Function<%28i16%2Ci16%2Ci32%2C~lib/typedarray/Int16Array%29=>i16>~visit (param $0 i32) (param $1 i32) + (func $std/typedarray/testArrayEvery<~lib/typedarray/Float64Array,f64>~anonymous|1 (param $0 f64) (param $1 i32) (param $2 i32) (result i32) local.get $0 - local.get $1 - call $~lib/function/Function<%28i16%2Ci16%2Ci32%2C~lib/typedarray/Int16Array%29=>i16>#__visit + f64.const 2 + f64.eq ) - (func $~lib/function/Function<%28u16%2Cu16%2Ci32%2C~lib/typedarray/Uint16Array%29=>u16>#__visit (param $0 i32) (param $1 i32) + (func $~lib/typedarray/Int8Array#forEach (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.get $0 - i32.load offset=4 + local.set $3 local.get $1 - call $~lib/rt/itcms/__visit + local.set $2 + local.get $3 + i32.load offset=4 + local.set $4 + i32.const 0 + local.set $5 + local.get $3 + call $~lib/typedarray/Int8Array#get:length + local.set $6 + loop $for-loop|0 + local.get $5 + local.get $6 + i32.lt_s + local.set $7 + local.get $7 + if + local.get $4 + local.get $5 + i32.const 0 + i32.shl + i32.add + i32.load8_s + local.get $5 + local.get $3 + i32.const 3 + global.set $~argumentsLength + local.get $2 + i32.load + call_indirect (type $i32_i32_i32_=>_none) + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|0 + end + end ) - (func $~lib/function/Function<%28u16%2Cu16%2Ci32%2C~lib/typedarray/Uint16Array%29=>u16>~visit (param $0 i32) (param $1 i32) + (func $~lib/typedarray/Uint8Array#forEach (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.get $0 + local.set $3 local.get $1 - call $~lib/function/Function<%28u16%2Cu16%2Ci32%2C~lib/typedarray/Uint16Array%29=>u16>#__visit - ) - (func $~lib/function/Function<%28i32%2Ci32%2Ci32%2C~lib/typedarray/Int32Array%29=>i32>#__visit (param $0 i32) (param $1 i32) - local.get $0 + local.set $2 + local.get $3 i32.load offset=4 - local.get $1 - call $~lib/rt/itcms/__visit + local.set $4 + i32.const 0 + local.set $5 + local.get $3 + call $~lib/typedarray/Uint8Array#get:length + local.set $6 + loop $for-loop|0 + local.get $5 + local.get $6 + i32.lt_s + local.set $7 + local.get $7 + if + local.get $4 + local.get $5 + i32.const 0 + i32.shl + i32.add + i32.load8_u + local.get $5 + local.get $3 + i32.const 3 + global.set $~argumentsLength + local.get $2 + i32.load + call_indirect (type $i32_i32_i32_=>_none) + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|0 + end + end ) - (func $~lib/function/Function<%28i32%2Ci32%2Ci32%2C~lib/typedarray/Int32Array%29=>i32>~visit (param $0 i32) (param $1 i32) + (func $~lib/typedarray/Uint8ClampedArray#forEach (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.get $0 + local.set $3 local.get $1 - call $~lib/function/Function<%28i32%2Ci32%2Ci32%2C~lib/typedarray/Int32Array%29=>i32>#__visit - ) - (func $~lib/function/Function<%28u32%2Cu32%2Ci32%2C~lib/typedarray/Uint32Array%29=>u32>#__visit (param $0 i32) (param $1 i32) - local.get $0 + local.set $2 + local.get $3 i32.load offset=4 - local.get $1 - call $~lib/rt/itcms/__visit + local.set $4 + i32.const 0 + local.set $5 + local.get $3 + call $~lib/typedarray/Uint8ClampedArray#get:length + local.set $6 + loop $for-loop|0 + local.get $5 + local.get $6 + i32.lt_s + local.set $7 + local.get $7 + if + local.get $4 + local.get $5 + i32.const 0 + i32.shl + i32.add + i32.load8_u + local.get $5 + local.get $3 + i32.const 3 + global.set $~argumentsLength + local.get $2 + i32.load + call_indirect (type $i32_i32_i32_=>_none) + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|0 + end + end ) - (func $~lib/function/Function<%28u32%2Cu32%2Ci32%2C~lib/typedarray/Uint32Array%29=>u32>~visit (param $0 i32) (param $1 i32) + (func $~lib/typedarray/Int16Array#forEach (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.get $0 + local.set $3 local.get $1 - call $~lib/function/Function<%28u32%2Cu32%2Ci32%2C~lib/typedarray/Uint32Array%29=>u32>#__visit - ) - (func $~lib/function/Function<%28i64%2Ci64%2Ci32%2C~lib/typedarray/Int64Array%29=>i64>#__visit (param $0 i32) (param $1 i32) - local.get $0 + local.set $2 + local.get $3 i32.load offset=4 - local.get $1 - call $~lib/rt/itcms/__visit + local.set $4 + i32.const 0 + local.set $5 + local.get $3 + call $~lib/typedarray/Int16Array#get:length + local.set $6 + loop $for-loop|0 + local.get $5 + local.get $6 + i32.lt_s + local.set $7 + local.get $7 + if + local.get $4 + local.get $5 + i32.const 1 + i32.shl + i32.add + i32.load16_s + local.get $5 + local.get $3 + i32.const 3 + global.set $~argumentsLength + local.get $2 + i32.load + call_indirect (type $i32_i32_i32_=>_none) + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|0 + end + end ) - (func $~lib/function/Function<%28i64%2Ci64%2Ci32%2C~lib/typedarray/Int64Array%29=>i64>~visit (param $0 i32) (param $1 i32) + (func $~lib/typedarray/Uint16Array#forEach (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.get $0 + local.set $3 local.get $1 - call $~lib/function/Function<%28i64%2Ci64%2Ci32%2C~lib/typedarray/Int64Array%29=>i64>#__visit - ) - (func $~lib/function/Function<%28u64%2Cu64%2Ci32%2C~lib/typedarray/Uint64Array%29=>u64>#__visit (param $0 i32) (param $1 i32) - local.get $0 + local.set $2 + local.get $3 i32.load offset=4 - local.get $1 - call $~lib/rt/itcms/__visit + local.set $4 + i32.const 0 + local.set $5 + local.get $3 + call $~lib/typedarray/Uint16Array#get:length + local.set $6 + loop $for-loop|0 + local.get $5 + local.get $6 + i32.lt_s + local.set $7 + local.get $7 + if + local.get $4 + local.get $5 + i32.const 1 + i32.shl + i32.add + i32.load16_u + local.get $5 + local.get $3 + i32.const 3 + global.set $~argumentsLength + local.get $2 + i32.load + call_indirect (type $i32_i32_i32_=>_none) + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|0 + end + end ) - (func $~lib/function/Function<%28u64%2Cu64%2Ci32%2C~lib/typedarray/Uint64Array%29=>u64>~visit (param $0 i32) (param $1 i32) + (func $~lib/typedarray/Int32Array#forEach (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.get $0 + local.set $3 local.get $1 - call $~lib/function/Function<%28u64%2Cu64%2Ci32%2C~lib/typedarray/Uint64Array%29=>u64>#__visit - ) - (func $~lib/function/Function<%28f32%2Cf32%2Ci32%2C~lib/typedarray/Float32Array%29=>f32>#__visit (param $0 i32) (param $1 i32) - local.get $0 + local.set $2 + local.get $3 i32.load offset=4 - local.get $1 - call $~lib/rt/itcms/__visit + local.set $4 + i32.const 0 + local.set $5 + local.get $3 + call $~lib/typedarray/Int32Array#get:length + local.set $6 + loop $for-loop|0 + local.get $5 + local.get $6 + i32.lt_s + local.set $7 + local.get $7 + if + local.get $4 + local.get $5 + i32.const 2 + i32.shl + i32.add + i32.load + local.get $5 + local.get $3 + i32.const 3 + global.set $~argumentsLength + local.get $2 + i32.load + call_indirect (type $i32_i32_i32_=>_none) + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|0 + end + end ) - (func $~lib/function/Function<%28f32%2Cf32%2Ci32%2C~lib/typedarray/Float32Array%29=>f32>~visit (param $0 i32) (param $1 i32) + (func $~lib/typedarray/Uint32Array#forEach (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.get $0 + local.set $3 local.get $1 - call $~lib/function/Function<%28f32%2Cf32%2Ci32%2C~lib/typedarray/Float32Array%29=>f32>#__visit - ) - (func $~lib/function/Function<%28f64%2Cf64%2Ci32%2C~lib/typedarray/Float64Array%29=>f64>#__visit (param $0 i32) (param $1 i32) - local.get $0 + local.set $2 + local.get $3 i32.load offset=4 - local.get $1 - call $~lib/rt/itcms/__visit + local.set $4 + i32.const 0 + local.set $5 + local.get $3 + call $~lib/typedarray/Uint32Array#get:length + local.set $6 + loop $for-loop|0 + local.get $5 + local.get $6 + i32.lt_s + local.set $7 + local.get $7 + if + local.get $4 + local.get $5 + i32.const 2 + i32.shl + i32.add + i32.load + local.get $5 + local.get $3 + i32.const 3 + global.set $~argumentsLength + local.get $2 + i32.load + call_indirect (type $i32_i32_i32_=>_none) + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|0 + end + end ) - (func $~lib/function/Function<%28f64%2Cf64%2Ci32%2C~lib/typedarray/Float64Array%29=>f64>~visit (param $0 i32) (param $1 i32) + (func $~lib/typedarray/Int64Array#forEach (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.get $0 + local.set $3 local.get $1 - call $~lib/function/Function<%28f64%2Cf64%2Ci32%2C~lib/typedarray/Float64Array%29=>f64>#__visit - ) - (func $~lib/function/Function<%28i8%2Ci32%2C~lib/typedarray/Int8Array%29=>i8>#__visit (param $0 i32) (param $1 i32) - local.get $0 + local.set $2 + local.get $3 i32.load offset=4 - local.get $1 - call $~lib/rt/itcms/__visit + local.set $4 + i32.const 0 + local.set $5 + local.get $3 + call $~lib/typedarray/Int64Array#get:length + local.set $6 + loop $for-loop|0 + local.get $5 + local.get $6 + i32.lt_s + local.set $7 + local.get $7 + if + local.get $4 + local.get $5 + i32.const 3 + i32.shl + i32.add + i64.load + local.get $5 + local.get $3 + i32.const 3 + global.set $~argumentsLength + local.get $2 + i32.load + call_indirect (type $i64_i32_i32_=>_none) + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|0 + end + end ) - (func $~lib/function/Function<%28i8%2Ci32%2C~lib/typedarray/Int8Array%29=>i8>~visit (param $0 i32) (param $1 i32) + (func $~lib/typedarray/Uint64Array#forEach (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.get $0 + local.set $3 local.get $1 - call $~lib/function/Function<%28i8%2Ci32%2C~lib/typedarray/Int8Array%29=>i8>#__visit - ) - (func $~lib/function/Function<%28u8%2Ci32%2C~lib/typedarray/Uint8Array%29=>u8>#__visit (param $0 i32) (param $1 i32) - local.get $0 + local.set $2 + local.get $3 i32.load offset=4 - local.get $1 - call $~lib/rt/itcms/__visit + local.set $4 + i32.const 0 + local.set $5 + local.get $3 + call $~lib/typedarray/Uint64Array#get:length + local.set $6 + loop $for-loop|0 + local.get $5 + local.get $6 + i32.lt_s + local.set $7 + local.get $7 + if + local.get $4 + local.get $5 + i32.const 3 + i32.shl + i32.add + i64.load + local.get $5 + local.get $3 + i32.const 3 + global.set $~argumentsLength + local.get $2 + i32.load + call_indirect (type $i64_i32_i32_=>_none) + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|0 + end + end ) - (func $~lib/function/Function<%28u8%2Ci32%2C~lib/typedarray/Uint8Array%29=>u8>~visit (param $0 i32) (param $1 i32) + (func $~lib/typedarray/Float32Array#forEach (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.get $0 + local.set $3 local.get $1 - call $~lib/function/Function<%28u8%2Ci32%2C~lib/typedarray/Uint8Array%29=>u8>#__visit - ) - (func $~lib/function/Function<%28u8%2Ci32%2C~lib/typedarray/Uint8ClampedArray%29=>u8>#__visit (param $0 i32) (param $1 i32) - local.get $0 + local.set $2 + local.get $3 i32.load offset=4 - local.get $1 - call $~lib/rt/itcms/__visit + local.set $4 + i32.const 0 + local.set $5 + local.get $3 + call $~lib/typedarray/Float32Array#get:length + local.set $6 + loop $for-loop|0 + local.get $5 + local.get $6 + i32.lt_s + local.set $7 + local.get $7 + if + local.get $4 + local.get $5 + i32.const 2 + i32.shl + i32.add + f32.load + local.get $5 + local.get $3 + i32.const 3 + global.set $~argumentsLength + local.get $2 + i32.load + call_indirect (type $f32_i32_i32_=>_none) + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|0 + end + end ) - (func $~lib/function/Function<%28u8%2Ci32%2C~lib/typedarray/Uint8ClampedArray%29=>u8>~visit (param $0 i32) (param $1 i32) + (func $~lib/typedarray/Float64Array#forEach (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.get $0 + local.set $3 local.get $1 - call $~lib/function/Function<%28u8%2Ci32%2C~lib/typedarray/Uint8ClampedArray%29=>u8>#__visit - ) - (func $~lib/function/Function<%28i16%2Ci32%2C~lib/typedarray/Int16Array%29=>i16>#__visit (param $0 i32) (param $1 i32) - local.get $0 + local.set $2 + local.get $3 i32.load offset=4 - local.get $1 - call $~lib/rt/itcms/__visit + local.set $4 + i32.const 0 + local.set $5 + local.get $3 + call $~lib/typedarray/Float64Array#get:length + local.set $6 + loop $for-loop|0 + local.get $5 + local.get $6 + i32.lt_s + local.set $7 + local.get $7 + if + local.get $4 + local.get $5 + i32.const 3 + i32.shl + i32.add + f64.load + local.get $5 + local.get $3 + i32.const 3 + global.set $~argumentsLength + local.get $2 + i32.load + call_indirect (type $f64_i32_i32_=>_none) + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|0 + end + end ) - (func $~lib/function/Function<%28i16%2Ci32%2C~lib/typedarray/Int16Array%29=>i16>~visit (param $0 i32) (param $1 i32) + (func $~lib/typedarray/Int8Array#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) + (local $8 i32) local.get $0 + local.set $1 local.get $1 - call $~lib/function/Function<%28i16%2Ci32%2C~lib/typedarray/Int16Array%29=>i16>#__visit - ) - (func $~lib/function/Function<%28u16%2Ci32%2C~lib/typedarray/Uint16Array%29=>u16>#__visit (param $0 i32) (param $1 i32) - local.get $0 i32.load offset=4 + local.set $2 + i32.const 0 + local.set $3 local.get $1 - call $~lib/rt/itcms/__visit - ) - (func $~lib/function/Function<%28u16%2Ci32%2C~lib/typedarray/Uint16Array%29=>u16>~visit (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - call $~lib/function/Function<%28u16%2Ci32%2C~lib/typedarray/Uint16Array%29=>u16>#__visit - ) - (func $~lib/function/Function<%28i32%2Ci32%2C~lib/typedarray/Int32Array%29=>i32>#__visit (param $0 i32) (param $1 i32) - local.get $0 - i32.load offset=4 + call $~lib/typedarray/Int8Array#get:length + i32.const 1 + i32.sub + local.set $4 + loop $for-loop|0 + local.get $3 + local.get $4 + i32.lt_u + local.set $5 + local.get $5 + if + local.get $2 + local.get $3 + i32.const 0 + i32.shl + i32.add + local.set $6 + local.get $2 + local.get $4 + i32.const 0 + i32.shl + i32.add + local.set $7 + local.get $6 + i32.load8_s + local.set $8 + local.get $6 + local.get $7 + i32.load8_s + i32.store8 + local.get $7 + local.get $8 + i32.store8 + local.get $3 + i32.const 1 + i32.add + local.set $3 + local.get $4 + i32.const 1 + i32.sub + local.set $4 + br $for-loop|0 + end + end local.get $1 - call $~lib/rt/itcms/__visit ) - (func $~lib/function/Function<%28i32%2Ci32%2C~lib/typedarray/Int32Array%29=>i32>~visit (param $0 i32) (param $1 i32) + (func $~lib/typedarray/Uint8Array#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) + (local $8 i32) local.get $0 + local.set $1 local.get $1 - call $~lib/function/Function<%28i32%2Ci32%2C~lib/typedarray/Int32Array%29=>i32>#__visit - ) - (func $~lib/function/Function<%28u32%2Ci32%2C~lib/typedarray/Uint32Array%29=>u32>#__visit (param $0 i32) (param $1 i32) - local.get $0 i32.load offset=4 + local.set $2 + i32.const 0 + local.set $3 local.get $1 - call $~lib/rt/itcms/__visit - ) - (func $~lib/function/Function<%28u32%2Ci32%2C~lib/typedarray/Uint32Array%29=>u32>~visit (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - call $~lib/function/Function<%28u32%2Ci32%2C~lib/typedarray/Uint32Array%29=>u32>#__visit - ) - (func $~lib/function/Function<%28i64%2Ci32%2C~lib/typedarray/Int64Array%29=>i64>#__visit (param $0 i32) (param $1 i32) - local.get $0 - i32.load offset=4 + call $~lib/typedarray/Uint8Array#get:length + i32.const 1 + i32.sub + local.set $4 + loop $for-loop|0 + local.get $3 + local.get $4 + i32.lt_u + local.set $5 + local.get $5 + if + local.get $2 + local.get $3 + i32.const 0 + i32.shl + i32.add + local.set $6 + local.get $2 + local.get $4 + i32.const 0 + i32.shl + i32.add + local.set $7 + local.get $6 + i32.load8_u + local.set $8 + local.get $6 + local.get $7 + i32.load8_u + i32.store8 + local.get $7 + local.get $8 + i32.store8 + local.get $3 + i32.const 1 + i32.add + local.set $3 + local.get $4 + i32.const 1 + i32.sub + local.set $4 + br $for-loop|0 + end + end local.get $1 - call $~lib/rt/itcms/__visit ) - (func $~lib/function/Function<%28i64%2Ci32%2C~lib/typedarray/Int64Array%29=>i64>~visit (param $0 i32) (param $1 i32) + (func $~lib/typedarray/Uint8ClampedArray#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) + (local $8 i32) local.get $0 + local.set $1 local.get $1 - call $~lib/function/Function<%28i64%2Ci32%2C~lib/typedarray/Int64Array%29=>i64>#__visit - ) - (func $~lib/function/Function<%28u64%2Ci32%2C~lib/typedarray/Uint64Array%29=>u64>#__visit (param $0 i32) (param $1 i32) - local.get $0 i32.load offset=4 + local.set $2 + i32.const 0 + local.set $3 local.get $1 - call $~lib/rt/itcms/__visit - ) - (func $~lib/function/Function<%28u64%2Ci32%2C~lib/typedarray/Uint64Array%29=>u64>~visit (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - call $~lib/function/Function<%28u64%2Ci32%2C~lib/typedarray/Uint64Array%29=>u64>#__visit - ) - (func $~lib/function/Function<%28f32%2Ci32%2C~lib/typedarray/Float32Array%29=>f32>#__visit (param $0 i32) (param $1 i32) - local.get $0 - i32.load offset=4 + call $~lib/typedarray/Uint8ClampedArray#get:length + i32.const 1 + i32.sub + local.set $4 + loop $for-loop|0 + local.get $3 + local.get $4 + i32.lt_u + local.set $5 + local.get $5 + if + local.get $2 + local.get $3 + i32.const 0 + i32.shl + i32.add + local.set $6 + local.get $2 + local.get $4 + i32.const 0 + i32.shl + i32.add + local.set $7 + local.get $6 + i32.load8_u + local.set $8 + local.get $6 + local.get $7 + i32.load8_u + i32.store8 + local.get $7 + local.get $8 + i32.store8 + local.get $3 + i32.const 1 + i32.add + local.set $3 + local.get $4 + i32.const 1 + i32.sub + local.set $4 + br $for-loop|0 + end + end local.get $1 - call $~lib/rt/itcms/__visit ) - (func $~lib/function/Function<%28f32%2Ci32%2C~lib/typedarray/Float32Array%29=>f32>~visit (param $0 i32) (param $1 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) + (local $8 i32) local.get $0 + local.set $1 local.get $1 - call $~lib/function/Function<%28f32%2Ci32%2C~lib/typedarray/Float32Array%29=>f32>#__visit - ) - (func $~lib/function/Function<%28f64%2Ci32%2C~lib/typedarray/Float64Array%29=>f64>#__visit (param $0 i32) (param $1 i32) - local.get $0 i32.load offset=4 + local.set $2 + i32.const 0 + local.set $3 local.get $1 - call $~lib/rt/itcms/__visit - ) - (func $~lib/function/Function<%28f64%2Ci32%2C~lib/typedarray/Float64Array%29=>f64>~visit (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - call $~lib/function/Function<%28f64%2Ci32%2C~lib/typedarray/Float64Array%29=>f64>#__visit - ) - (func $~lib/function/Function<%28i8%2Ci32%2C~lib/typedarray/Int8Array%29=>bool>#__visit (param $0 i32) (param $1 i32) - local.get $0 - i32.load offset=4 + call $~lib/typedarray/Int16Array#get:length + i32.const 1 + i32.sub + local.set $4 + loop $for-loop|0 + local.get $3 + local.get $4 + i32.lt_u + local.set $5 + local.get $5 + if + local.get $2 + local.get $3 + i32.const 1 + i32.shl + i32.add + local.set $6 + local.get $2 + local.get $4 + i32.const 1 + i32.shl + i32.add + local.set $7 + local.get $6 + i32.load16_s + local.set $8 + local.get $6 + local.get $7 + i32.load16_s + i32.store16 + local.get $7 + local.get $8 + i32.store16 + local.get $3 + i32.const 1 + i32.add + local.set $3 + local.get $4 + i32.const 1 + i32.sub + local.set $4 + br $for-loop|0 + end + end local.get $1 - call $~lib/rt/itcms/__visit ) - (func $~lib/function/Function<%28i8%2Ci32%2C~lib/typedarray/Int8Array%29=>bool>~visit (param $0 i32) (param $1 i32) + (func $~lib/typedarray/Uint16Array#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) + (local $8 i32) local.get $0 + local.set $1 local.get $1 - call $~lib/function/Function<%28i8%2Ci32%2C~lib/typedarray/Int8Array%29=>bool>#__visit - ) - (func $~lib/function/Function<%28u8%2Ci32%2C~lib/typedarray/Uint8Array%29=>bool>#__visit (param $0 i32) (param $1 i32) - local.get $0 i32.load offset=4 + local.set $2 + i32.const 0 + local.set $3 local.get $1 - call $~lib/rt/itcms/__visit - ) - (func $~lib/function/Function<%28u8%2Ci32%2C~lib/typedarray/Uint8Array%29=>bool>~visit (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - call $~lib/function/Function<%28u8%2Ci32%2C~lib/typedarray/Uint8Array%29=>bool>#__visit - ) - (func $~lib/function/Function<%28u8%2Ci32%2C~lib/typedarray/Uint8ClampedArray%29=>bool>#__visit (param $0 i32) (param $1 i32) - local.get $0 - i32.load offset=4 + call $~lib/typedarray/Uint16Array#get:length + i32.const 1 + i32.sub + local.set $4 + loop $for-loop|0 + local.get $3 + local.get $4 + i32.lt_u + local.set $5 + local.get $5 + if + local.get $2 + local.get $3 + i32.const 1 + i32.shl + i32.add + local.set $6 + local.get $2 + local.get $4 + i32.const 1 + i32.shl + i32.add + local.set $7 + local.get $6 + i32.load16_u + local.set $8 + local.get $6 + local.get $7 + i32.load16_u + i32.store16 + local.get $7 + local.get $8 + i32.store16 + local.get $3 + i32.const 1 + i32.add + local.set $3 + local.get $4 + i32.const 1 + i32.sub + local.set $4 + br $for-loop|0 + end + end local.get $1 - call $~lib/rt/itcms/__visit ) - (func $~lib/function/Function<%28u8%2Ci32%2C~lib/typedarray/Uint8ClampedArray%29=>bool>~visit (param $0 i32) (param $1 i32) + (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) + (local $7 i32) + (local $8 i32) local.get $0 + local.set $1 local.get $1 - call $~lib/function/Function<%28u8%2Ci32%2C~lib/typedarray/Uint8ClampedArray%29=>bool>#__visit - ) - (func $~lib/function/Function<%28i16%2Ci32%2C~lib/typedarray/Int16Array%29=>bool>#__visit (param $0 i32) (param $1 i32) - local.get $0 i32.load offset=4 + local.set $2 + i32.const 0 + local.set $3 local.get $1 - call $~lib/rt/itcms/__visit - ) - (func $~lib/function/Function<%28i16%2Ci32%2C~lib/typedarray/Int16Array%29=>bool>~visit (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - call $~lib/function/Function<%28i16%2Ci32%2C~lib/typedarray/Int16Array%29=>bool>#__visit - ) - (func $~lib/function/Function<%28u16%2Ci32%2C~lib/typedarray/Uint16Array%29=>bool>#__visit (param $0 i32) (param $1 i32) - local.get $0 - i32.load offset=4 + call $~lib/typedarray/Int32Array#get:length + i32.const 1 + i32.sub + local.set $4 + loop $for-loop|0 + local.get $3 + local.get $4 + i32.lt_u + local.set $5 + local.get $5 + if + local.get $2 + local.get $3 + i32.const 2 + i32.shl + i32.add + local.set $6 + local.get $2 + local.get $4 + i32.const 2 + i32.shl + i32.add + local.set $7 + local.get $6 + i32.load + local.set $8 + local.get $6 + local.get $7 + i32.load + i32.store + local.get $7 + local.get $8 + i32.store + local.get $3 + i32.const 1 + i32.add + local.set $3 + local.get $4 + i32.const 1 + i32.sub + local.set $4 + br $for-loop|0 + end + end local.get $1 - call $~lib/rt/itcms/__visit ) - (func $~lib/function/Function<%28u16%2Ci32%2C~lib/typedarray/Uint16Array%29=>bool>~visit (param $0 i32) (param $1 i32) + (func $~lib/typedarray/Uint32Array#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) + (local $8 i32) local.get $0 + local.set $1 local.get $1 - call $~lib/function/Function<%28u16%2Ci32%2C~lib/typedarray/Uint16Array%29=>bool>#__visit - ) - (func $~lib/function/Function<%28i32%2Ci32%2C~lib/typedarray/Int32Array%29=>bool>#__visit (param $0 i32) (param $1 i32) - local.get $0 i32.load offset=4 + local.set $2 + i32.const 0 + local.set $3 local.get $1 - call $~lib/rt/itcms/__visit - ) - (func $~lib/function/Function<%28i32%2Ci32%2C~lib/typedarray/Int32Array%29=>bool>~visit (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - call $~lib/function/Function<%28i32%2Ci32%2C~lib/typedarray/Int32Array%29=>bool>#__visit - ) - (func $~lib/function/Function<%28u32%2Ci32%2C~lib/typedarray/Uint32Array%29=>bool>#__visit (param $0 i32) (param $1 i32) - local.get $0 - i32.load offset=4 + call $~lib/typedarray/Uint32Array#get:length + i32.const 1 + i32.sub + local.set $4 + loop $for-loop|0 + local.get $3 + local.get $4 + i32.lt_u + local.set $5 + local.get $5 + if + local.get $2 + local.get $3 + i32.const 2 + i32.shl + i32.add + local.set $6 + local.get $2 + local.get $4 + i32.const 2 + i32.shl + i32.add + local.set $7 + local.get $6 + i32.load + local.set $8 + local.get $6 + local.get $7 + i32.load + i32.store + local.get $7 + local.get $8 + i32.store + local.get $3 + i32.const 1 + i32.add + local.set $3 + local.get $4 + i32.const 1 + i32.sub + local.set $4 + br $for-loop|0 + end + end local.get $1 - call $~lib/rt/itcms/__visit ) - (func $~lib/function/Function<%28u32%2Ci32%2C~lib/typedarray/Uint32Array%29=>bool>~visit (param $0 i32) (param $1 i32) + (func $~lib/typedarray/Int64Array#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) + (local $8 i64) local.get $0 + local.set $1 local.get $1 - call $~lib/function/Function<%28u32%2Ci32%2C~lib/typedarray/Uint32Array%29=>bool>#__visit - ) - (func $~lib/function/Function<%28i64%2Ci32%2C~lib/typedarray/Int64Array%29=>bool>#__visit (param $0 i32) (param $1 i32) - local.get $0 i32.load offset=4 + local.set $2 + i32.const 0 + local.set $3 local.get $1 - call $~lib/rt/itcms/__visit - ) - (func $~lib/function/Function<%28i64%2Ci32%2C~lib/typedarray/Int64Array%29=>bool>~visit (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - call $~lib/function/Function<%28i64%2Ci32%2C~lib/typedarray/Int64Array%29=>bool>#__visit - ) - (func $~lib/function/Function<%28u64%2Ci32%2C~lib/typedarray/Uint64Array%29=>bool>#__visit (param $0 i32) (param $1 i32) - local.get $0 - i32.load offset=4 + call $~lib/typedarray/Int64Array#get:length + i32.const 1 + i32.sub + local.set $4 + loop $for-loop|0 + local.get $3 + local.get $4 + i32.lt_u + local.set $5 + local.get $5 + if + local.get $2 + local.get $3 + i32.const 3 + i32.shl + i32.add + local.set $6 + local.get $2 + local.get $4 + i32.const 3 + i32.shl + i32.add + local.set $7 + local.get $6 + i64.load + local.set $8 + local.get $6 + local.get $7 + i64.load + i64.store + local.get $7 + local.get $8 + i64.store + local.get $3 + i32.const 1 + i32.add + local.set $3 + local.get $4 + i32.const 1 + i32.sub + local.set $4 + br $for-loop|0 + end + end local.get $1 - call $~lib/rt/itcms/__visit ) - (func $~lib/function/Function<%28u64%2Ci32%2C~lib/typedarray/Uint64Array%29=>bool>~visit (param $0 i32) (param $1 i32) + (func $~lib/typedarray/Uint64Array#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) + (local $8 i64) local.get $0 + local.set $1 local.get $1 - call $~lib/function/Function<%28u64%2Ci32%2C~lib/typedarray/Uint64Array%29=>bool>#__visit - ) - (func $~lib/function/Function<%28f32%2Ci32%2C~lib/typedarray/Float32Array%29=>bool>#__visit (param $0 i32) (param $1 i32) - local.get $0 i32.load offset=4 + local.set $2 + i32.const 0 + local.set $3 local.get $1 - call $~lib/rt/itcms/__visit - ) - (func $~lib/function/Function<%28f32%2Ci32%2C~lib/typedarray/Float32Array%29=>bool>~visit (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - call $~lib/function/Function<%28f32%2Ci32%2C~lib/typedarray/Float32Array%29=>bool>#__visit - ) - (func $~lib/function/Function<%28f64%2Ci32%2C~lib/typedarray/Float64Array%29=>bool>#__visit (param $0 i32) (param $1 i32) - local.get $0 - i32.load offset=4 + call $~lib/typedarray/Uint64Array#get:length + i32.const 1 + i32.sub + local.set $4 + loop $for-loop|0 + local.get $3 + local.get $4 + i32.lt_u + local.set $5 + local.get $5 + if + local.get $2 + local.get $3 + i32.const 3 + i32.shl + i32.add + local.set $6 + local.get $2 + local.get $4 + i32.const 3 + i32.shl + i32.add + local.set $7 + local.get $6 + i64.load + local.set $8 + local.get $6 + local.get $7 + i64.load + i64.store + local.get $7 + local.get $8 + i64.store + local.get $3 + i32.const 1 + i32.add + local.set $3 + local.get $4 + i32.const 1 + i32.sub + local.set $4 + br $for-loop|0 + end + end local.get $1 - call $~lib/rt/itcms/__visit ) - (func $~lib/function/Function<%28f64%2Ci32%2C~lib/typedarray/Float64Array%29=>bool>~visit (param $0 i32) (param $1 i32) + (func $~lib/typedarray/Float32Array#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) + (local $8 f32) local.get $0 + local.set $1 local.get $1 - call $~lib/function/Function<%28f64%2Ci32%2C~lib/typedarray/Float64Array%29=>bool>#__visit - ) - (func $~lib/function/Function<%28i8%2Ci32%2C~lib/typedarray/Int8Array%29=>void>#__visit (param $0 i32) (param $1 i32) - local.get $0 i32.load offset=4 + local.set $2 + i32.const 0 + local.set $3 local.get $1 - call $~lib/rt/itcms/__visit - ) - (func $~lib/function/Function<%28i8%2Ci32%2C~lib/typedarray/Int8Array%29=>void>~visit (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - call $~lib/function/Function<%28i8%2Ci32%2C~lib/typedarray/Int8Array%29=>void>#__visit - ) - (func $~lib/function/Function<%28u8%2Ci32%2C~lib/typedarray/Uint8Array%29=>void>#__visit (param $0 i32) (param $1 i32) - local.get $0 - i32.load offset=4 - local.get $1 - call $~lib/rt/itcms/__visit - ) - (func $~lib/function/Function<%28u8%2Ci32%2C~lib/typedarray/Uint8Array%29=>void>~visit (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - call $~lib/function/Function<%28u8%2Ci32%2C~lib/typedarray/Uint8Array%29=>void>#__visit - ) - (func $~lib/function/Function<%28u8%2Ci32%2C~lib/typedarray/Uint8ClampedArray%29=>void>#__visit (param $0 i32) (param $1 i32) - local.get $0 - i32.load offset=4 - local.get $1 - call $~lib/rt/itcms/__visit - ) - (func $~lib/function/Function<%28u8%2Ci32%2C~lib/typedarray/Uint8ClampedArray%29=>void>~visit (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - call $~lib/function/Function<%28u8%2Ci32%2C~lib/typedarray/Uint8ClampedArray%29=>void>#__visit - ) - (func $~lib/function/Function<%28i16%2Ci32%2C~lib/typedarray/Int16Array%29=>void>#__visit (param $0 i32) (param $1 i32) - local.get $0 - i32.load offset=4 - local.get $1 - call $~lib/rt/itcms/__visit - ) - (func $~lib/function/Function<%28i16%2Ci32%2C~lib/typedarray/Int16Array%29=>void>~visit (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - call $~lib/function/Function<%28i16%2Ci32%2C~lib/typedarray/Int16Array%29=>void>#__visit - ) - (func $~lib/function/Function<%28u16%2Ci32%2C~lib/typedarray/Uint16Array%29=>void>#__visit (param $0 i32) (param $1 i32) - local.get $0 - i32.load offset=4 - local.get $1 - call $~lib/rt/itcms/__visit - ) - (func $~lib/function/Function<%28u16%2Ci32%2C~lib/typedarray/Uint16Array%29=>void>~visit (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - call $~lib/function/Function<%28u16%2Ci32%2C~lib/typedarray/Uint16Array%29=>void>#__visit - ) - (func $~lib/function/Function<%28i32%2Ci32%2C~lib/typedarray/Int32Array%29=>void>#__visit (param $0 i32) (param $1 i32) - local.get $0 - i32.load offset=4 - local.get $1 - call $~lib/rt/itcms/__visit - ) - (func $~lib/function/Function<%28i32%2Ci32%2C~lib/typedarray/Int32Array%29=>void>~visit (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - call $~lib/function/Function<%28i32%2Ci32%2C~lib/typedarray/Int32Array%29=>void>#__visit - ) - (func $~lib/function/Function<%28u32%2Ci32%2C~lib/typedarray/Uint32Array%29=>void>#__visit (param $0 i32) (param $1 i32) - local.get $0 - i32.load offset=4 - local.get $1 - call $~lib/rt/itcms/__visit - ) - (func $~lib/function/Function<%28u32%2Ci32%2C~lib/typedarray/Uint32Array%29=>void>~visit (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - call $~lib/function/Function<%28u32%2Ci32%2C~lib/typedarray/Uint32Array%29=>void>#__visit - ) - (func $~lib/function/Function<%28i64%2Ci32%2C~lib/typedarray/Int64Array%29=>void>#__visit (param $0 i32) (param $1 i32) - local.get $0 - i32.load offset=4 - local.get $1 - call $~lib/rt/itcms/__visit - ) - (func $~lib/function/Function<%28i64%2Ci32%2C~lib/typedarray/Int64Array%29=>void>~visit (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - call $~lib/function/Function<%28i64%2Ci32%2C~lib/typedarray/Int64Array%29=>void>#__visit - ) - (func $~lib/function/Function<%28u64%2Ci32%2C~lib/typedarray/Uint64Array%29=>void>#__visit (param $0 i32) (param $1 i32) - local.get $0 - i32.load offset=4 + call $~lib/typedarray/Float32Array#get:length + i32.const 1 + i32.sub + local.set $4 + loop $for-loop|0 + local.get $3 + local.get $4 + i32.lt_u + local.set $5 + local.get $5 + if + local.get $2 + local.get $3 + i32.const 2 + i32.shl + i32.add + local.set $6 + local.get $2 + local.get $4 + i32.const 2 + i32.shl + i32.add + local.set $7 + local.get $6 + f32.load + local.set $8 + local.get $6 + local.get $7 + f32.load + f32.store + local.get $7 + local.get $8 + f32.store + local.get $3 + i32.const 1 + i32.add + local.set $3 + local.get $4 + i32.const 1 + i32.sub + local.set $4 + br $for-loop|0 + end + end local.get $1 - call $~lib/rt/itcms/__visit ) - (func $~lib/function/Function<%28u64%2Ci32%2C~lib/typedarray/Uint64Array%29=>void>~visit (param $0 i32) (param $1 i32) + (func $~lib/typedarray/Float64Array#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) + (local $8 f64) local.get $0 + local.set $1 local.get $1 - call $~lib/function/Function<%28u64%2Ci32%2C~lib/typedarray/Uint64Array%29=>void>#__visit - ) - (func $~lib/function/Function<%28f32%2Ci32%2C~lib/typedarray/Float32Array%29=>void>#__visit (param $0 i32) (param $1 i32) - local.get $0 i32.load offset=4 + local.set $2 + i32.const 0 + local.set $3 local.get $1 - call $~lib/rt/itcms/__visit - ) - (func $~lib/function/Function<%28f32%2Ci32%2C~lib/typedarray/Float32Array%29=>void>~visit (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - call $~lib/function/Function<%28f32%2Ci32%2C~lib/typedarray/Float32Array%29=>void>#__visit - ) - (func $~lib/function/Function<%28f64%2Ci32%2C~lib/typedarray/Float64Array%29=>void>#__visit (param $0 i32) (param $1 i32) - local.get $0 - i32.load offset=4 + call $~lib/typedarray/Float64Array#get:length + i32.const 1 + i32.sub + local.set $4 + loop $for-loop|0 + local.get $3 + local.get $4 + i32.lt_u + local.set $5 + local.get $5 + if + local.get $2 + local.get $3 + i32.const 3 + i32.shl + i32.add + local.set $6 + local.get $2 + local.get $4 + i32.const 3 + i32.shl + i32.add + local.set $7 + local.get $6 + f64.load + local.set $8 + local.get $6 + local.get $7 + f64.load + f64.store + local.get $7 + local.get $8 + f64.store + local.get $3 + i32.const 1 + i32.add + local.set $3 + local.get $4 + i32.const 1 + i32.sub + local.set $4 + br $for-loop|0 + end + end local.get $1 - call $~lib/rt/itcms/__visit ) - (func $~lib/function/Function<%28f64%2Ci32%2C~lib/typedarray/Float64Array%29=>void>~visit (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - call $~lib/function/Function<%28f64%2Ci32%2C~lib/typedarray/Float64Array%29=>void>#__visit + (func $~lib/typedarray/Int8Array#indexOf (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) + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.0 (result i32) + local.get $0 + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + local.get $3 + local.set $6 + local.get $5 + call $~lib/typedarray/Int8Array#get:length + local.set $7 + local.get $7 + i32.const 0 + i32.eq + if (result i32) + i32.const 1 + else + local.get $6 + local.get $7 + i32.ge_s + end + if + i32.const -1 + br $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.0 + end + local.get $6 + i32.const 0 + i32.lt_s + if + local.get $7 + local.get $6 + i32.add + local.tee $8 + i32.const 0 + local.tee $9 + local.get $8 + local.get $9 + i32.gt_s + select + local.set $6 + end + local.get $5 + i32.load offset=4 + local.set $8 + loop $while-continue|0 + local.get $6 + local.get $7 + i32.lt_s + local.set $9 + local.get $9 + if + local.get $8 + local.get $6 + i32.const 0 + i32.shl + i32.add + i32.load8_s + local.get $4 + i32.const 24 + i32.shl + i32.const 24 + i32.shr_s + i32.eq + if + local.get $6 + br $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.0 + end + local.get $6 + i32.const 1 + i32.add + local.set $6 + br $while-continue|0 + end + end + i32.const -1 + end ) - (func $~lib/array/Array#__visit (param $0 i32) (param $1 i32) - i32.const 0 - drop - local.get $0 - i32.load - local.get $1 - call $~lib/rt/itcms/__visit + (func $~lib/typedarray/Int8Array#lastIndexOf (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) + block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.0 (result i32) + local.get $0 + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + local.get $3 + local.set $6 + local.get $5 + call $~lib/typedarray/Int8Array#get:length + local.set $7 + local.get $7 + i32.const 0 + i32.eq + if + i32.const -1 + br $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.0 + end + local.get $6 + i32.const 0 + i32.lt_s + if + local.get $7 + local.get $6 + i32.add + local.set $6 + else + local.get $6 + local.get $7 + i32.ge_s + if + local.get $7 + i32.const 1 + i32.sub + local.set $6 + end + end + local.get $5 + i32.load offset=4 + local.set $8 + loop $while-continue|0 + local.get $6 + i32.const 0 + i32.ge_s + local.set $9 + local.get $9 + if + local.get $8 + local.get $6 + i32.const 0 + i32.shl + i32.add + i32.load8_s + local.get $4 + i32.const 24 + i32.shl + i32.const 24 + i32.shr_s + i32.eq + if + local.get $6 + br $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.0 + end + local.get $6 + i32.const 1 + i32.sub + local.set $6 + br $while-continue|0 + end + end + i32.const -1 + end ) - (func $~lib/array/Array~visit (param $0 i32) (param $1 i32) + (func $~lib/typedarray/Int8Array#lastIndexOf@varargs (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + block $1of1 + block $0of1 + block $outOfRange + global.get $~argumentsLength + i32.const 1 + i32.sub + br_table $0of1 $1of1 $outOfRange + end + unreachable + end + local.get $0 + call $~lib/typedarray/Int8Array#get:length + local.set $2 + end local.get $0 local.get $1 - call $~lib/array/Array#__visit + local.get $2 + call $~lib/typedarray/Int8Array#lastIndexOf ) - (func $~lib/array/Array#__visit (param $0 i32) (param $1 i32) + (func $std/typedarray/testArrayIndexOfAndLastIndexOf<~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 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 - drop - local.get $0 - i32.load - local.get $1 - call $~lib/rt/itcms/__visit - ) - (func $~lib/array/Array~visit (param $0 i32) (param $1 i32) + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + global.get $std/typedarray/testArrayIndexOfAndLastIndexOfValues + local.tee $0 + i32.store local.get $0 - local.get $1 - call $~lib/array/Array#__visit - ) - (func $~lib/array/Array#__visit (param $0 i32) (param $1 i32) + call $~lib/array/Array#get:length + local.set $1 + global.get $~lib/memory/__stack_pointer i32.const 0 - drop - local.get $0 - i32.load - local.get $1 - call $~lib/rt/itcms/__visit - ) - (func $~lib/array/Array~visit (param $0 i32) (param $1 i32) - local.get $0 local.get $1 - call $~lib/array/Array#__visit - ) - (func $~lib/array/Array#__visit (param $0 i32) (param $1 i32) + call $~lib/typedarray/Int8Array#constructor + local.tee $2 + i32.store offset=4 i32.const 0 - drop - local.get $0 - i32.load - local.get $1 - call $~lib/rt/itcms/__visit - ) - (func $~lib/array/Array~visit (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - call $~lib/array/Array#__visit - ) - (func $~lib/array/Array#__visit (param $0 i32) (param $1 i32) + local.set $3 + loop $for-loop|0 + local.get $3 + local.get $1 + i32.lt_s + local.set $4 + local.get $4 + if + local.get $2 + local.get $3 + local.get $0 + local.get $3 + call $~lib/array/Array#__get + i32.const 24 + i32.shl + i32.const 24 + i32.shr_s + call $~lib/typedarray/Int8Array#__set + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $for-loop|0 + end + end + local.get $2 i32.const 0 - drop - local.get $0 - i32.load - local.get $1 - call $~lib/rt/itcms/__visit - ) - (func $~lib/array/Array~visit (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - call $~lib/array/Array#__visit - ) - (func $~lib/array/Array#__visit (param $0 i32) (param $1 i32) i32.const 0 - drop - local.get $0 - i32.load - local.get $1 - call $~lib/rt/itcms/__visit - ) - (func $~lib/array/Array~visit (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - call $~lib/array/Array#__visit - ) - (func $~lib/array/Array#__visit (param $0 i32) (param $1 i32) + call $~lib/typedarray/Int8Array#indexOf i32.const 0 - drop - local.get $0 - i32.load - local.get $1 - call $~lib/rt/itcms/__visit - ) - (func $~lib/array/Array~visit (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - call $~lib/array/Array#__visit - ) - (func $~lib/array/Array#__visit (param $0 i32) (param $1 i32) - i32.const 0 - drop - local.get $0 - i32.load - local.get $1 - call $~lib/rt/itcms/__visit - ) - (func $~lib/array/Array~visit (param $0 i32) (param $1 i32) - 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/array/Array - block $~lib/array/Array - block $~lib/array/Array - block $~lib/array/Array - block $~lib/array/Array - block $~lib/array/Array - block $~lib/function/Function<%28f64%2Ci32%2C~lib/typedarray/Float64Array%29=>void> - block $~lib/function/Function<%28f32%2Ci32%2C~lib/typedarray/Float32Array%29=>void> - block $~lib/function/Function<%28u64%2Ci32%2C~lib/typedarray/Uint64Array%29=>void> - block $~lib/function/Function<%28i64%2Ci32%2C~lib/typedarray/Int64Array%29=>void> - block $~lib/function/Function<%28u32%2Ci32%2C~lib/typedarray/Uint32Array%29=>void> - block $~lib/function/Function<%28i32%2Ci32%2C~lib/typedarray/Int32Array%29=>void> - block $~lib/function/Function<%28u16%2Ci32%2C~lib/typedarray/Uint16Array%29=>void> - block $~lib/function/Function<%28i16%2Ci32%2C~lib/typedarray/Int16Array%29=>void> - block $~lib/function/Function<%28u8%2Ci32%2C~lib/typedarray/Uint8ClampedArray%29=>void> - block $~lib/function/Function<%28u8%2Ci32%2C~lib/typedarray/Uint8Array%29=>void> - block $~lib/function/Function<%28i8%2Ci32%2C~lib/typedarray/Int8Array%29=>void> - block $~lib/function/Function<%28f64%2Ci32%2C~lib/typedarray/Float64Array%29=>bool> - block $~lib/function/Function<%28f32%2Ci32%2C~lib/typedarray/Float32Array%29=>bool> - block $~lib/function/Function<%28u64%2Ci32%2C~lib/typedarray/Uint64Array%29=>bool> - block $~lib/function/Function<%28i64%2Ci32%2C~lib/typedarray/Int64Array%29=>bool> - block $~lib/function/Function<%28u32%2Ci32%2C~lib/typedarray/Uint32Array%29=>bool> - block $~lib/function/Function<%28i32%2Ci32%2C~lib/typedarray/Int32Array%29=>bool> - block $~lib/function/Function<%28u16%2Ci32%2C~lib/typedarray/Uint16Array%29=>bool> - block $~lib/function/Function<%28i16%2Ci32%2C~lib/typedarray/Int16Array%29=>bool> - block $~lib/function/Function<%28u8%2Ci32%2C~lib/typedarray/Uint8ClampedArray%29=>bool> - block $~lib/function/Function<%28u8%2Ci32%2C~lib/typedarray/Uint8Array%29=>bool> - block $~lib/function/Function<%28i8%2Ci32%2C~lib/typedarray/Int8Array%29=>bool> - block $~lib/function/Function<%28f64%2Ci32%2C~lib/typedarray/Float64Array%29=>f64> - block $~lib/function/Function<%28f32%2Ci32%2C~lib/typedarray/Float32Array%29=>f32> - block $~lib/function/Function<%28u64%2Ci32%2C~lib/typedarray/Uint64Array%29=>u64> - block $~lib/function/Function<%28i64%2Ci32%2C~lib/typedarray/Int64Array%29=>i64> - block $~lib/function/Function<%28u32%2Ci32%2C~lib/typedarray/Uint32Array%29=>u32> - block $~lib/function/Function<%28i32%2Ci32%2C~lib/typedarray/Int32Array%29=>i32> - block $~lib/function/Function<%28u16%2Ci32%2C~lib/typedarray/Uint16Array%29=>u16> - block $~lib/function/Function<%28i16%2Ci32%2C~lib/typedarray/Int16Array%29=>i16> - block $~lib/function/Function<%28u8%2Ci32%2C~lib/typedarray/Uint8ClampedArray%29=>u8> - block $~lib/function/Function<%28u8%2Ci32%2C~lib/typedarray/Uint8Array%29=>u8> - block $~lib/function/Function<%28i8%2Ci32%2C~lib/typedarray/Int8Array%29=>i8> - block $~lib/function/Function<%28f64%2Cf64%2Ci32%2C~lib/typedarray/Float64Array%29=>f64> - block $~lib/function/Function<%28f32%2Cf32%2Ci32%2C~lib/typedarray/Float32Array%29=>f32> - block $~lib/function/Function<%28u64%2Cu64%2Ci32%2C~lib/typedarray/Uint64Array%29=>u64> - block $~lib/function/Function<%28i64%2Ci64%2Ci32%2C~lib/typedarray/Int64Array%29=>i64> - block $~lib/function/Function<%28u32%2Cu32%2Ci32%2C~lib/typedarray/Uint32Array%29=>u32> - block $~lib/function/Function<%28i32%2Ci32%2Ci32%2C~lib/typedarray/Int32Array%29=>i32> - block $~lib/function/Function<%28u16%2Cu16%2Ci32%2C~lib/typedarray/Uint16Array%29=>u16> - block $~lib/function/Function<%28i16%2Ci16%2Ci32%2C~lib/typedarray/Int16Array%29=>i16> - block $~lib/function/Function<%28u8%2Cu8%2Ci32%2C~lib/typedarray/Uint8ClampedArray%29=>u8> - block $~lib/function/Function<%28u8%2Cu8%2Ci32%2C~lib/typedarray/Uint8Array%29=>u8> - block $~lib/function/Function<%28i8%2Ci8%2Ci32%2C~lib/typedarray/Int8Array%29=>i8> - block $~lib/array/Array - block $~lib/array/Array - block $~lib/function/Function<%28f64%2Cf64%29=>i32> - block $~lib/typedarray/Float64Array - block $~lib/typedarray/Float32Array - block $~lib/typedarray/Uint64Array - block $~lib/typedarray/Int64Array - block $~lib/typedarray/Uint32Array - block $~lib/typedarray/Int32Array - block $~lib/typedarray/Uint16Array - block $~lib/typedarray/Int16Array - block $~lib/typedarray/Uint8ClampedArray - block $~lib/typedarray/Uint8Array - block $~lib/typedarray/Int8Array - block $~lib/arraybuffer/ArrayBufferView - block $~lib/string/String - block $~lib/arraybuffer/ArrayBuffer - local.get $0 - i32.const 8 - i32.sub - i32.load - br_table $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $~lib/typedarray/Int8Array $~lib/typedarray/Uint8Array $~lib/typedarray/Uint8ClampedArray $~lib/typedarray/Int16Array $~lib/typedarray/Uint16Array $~lib/typedarray/Int32Array $~lib/typedarray/Uint32Array $~lib/typedarray/Int64Array $~lib/typedarray/Uint64Array $~lib/typedarray/Float32Array $~lib/typedarray/Float64Array $~lib/function/Function<%28f64%2Cf64%29=>i32> $~lib/array/Array $~lib/array/Array $~lib/function/Function<%28i8%2Ci8%2Ci32%2C~lib/typedarray/Int8Array%29=>i8> $~lib/function/Function<%28u8%2Cu8%2Ci32%2C~lib/typedarray/Uint8Array%29=>u8> $~lib/function/Function<%28u8%2Cu8%2Ci32%2C~lib/typedarray/Uint8ClampedArray%29=>u8> $~lib/function/Function<%28i16%2Ci16%2Ci32%2C~lib/typedarray/Int16Array%29=>i16> $~lib/function/Function<%28u16%2Cu16%2Ci32%2C~lib/typedarray/Uint16Array%29=>u16> $~lib/function/Function<%28i32%2Ci32%2Ci32%2C~lib/typedarray/Int32Array%29=>i32> $~lib/function/Function<%28u32%2Cu32%2Ci32%2C~lib/typedarray/Uint32Array%29=>u32> $~lib/function/Function<%28i64%2Ci64%2Ci32%2C~lib/typedarray/Int64Array%29=>i64> $~lib/function/Function<%28u64%2Cu64%2Ci32%2C~lib/typedarray/Uint64Array%29=>u64> $~lib/function/Function<%28f32%2Cf32%2Ci32%2C~lib/typedarray/Float32Array%29=>f32> $~lib/function/Function<%28f64%2Cf64%2Ci32%2C~lib/typedarray/Float64Array%29=>f64> $~lib/function/Function<%28i8%2Ci32%2C~lib/typedarray/Int8Array%29=>i8> $~lib/function/Function<%28u8%2Ci32%2C~lib/typedarray/Uint8Array%29=>u8> $~lib/function/Function<%28u8%2Ci32%2C~lib/typedarray/Uint8ClampedArray%29=>u8> $~lib/function/Function<%28i16%2Ci32%2C~lib/typedarray/Int16Array%29=>i16> $~lib/function/Function<%28u16%2Ci32%2C~lib/typedarray/Uint16Array%29=>u16> $~lib/function/Function<%28i32%2Ci32%2C~lib/typedarray/Int32Array%29=>i32> $~lib/function/Function<%28u32%2Ci32%2C~lib/typedarray/Uint32Array%29=>u32> $~lib/function/Function<%28i64%2Ci32%2C~lib/typedarray/Int64Array%29=>i64> $~lib/function/Function<%28u64%2Ci32%2C~lib/typedarray/Uint64Array%29=>u64> $~lib/function/Function<%28f32%2Ci32%2C~lib/typedarray/Float32Array%29=>f32> $~lib/function/Function<%28f64%2Ci32%2C~lib/typedarray/Float64Array%29=>f64> $~lib/function/Function<%28i8%2Ci32%2C~lib/typedarray/Int8Array%29=>bool> $~lib/function/Function<%28u8%2Ci32%2C~lib/typedarray/Uint8Array%29=>bool> $~lib/function/Function<%28u8%2Ci32%2C~lib/typedarray/Uint8ClampedArray%29=>bool> $~lib/function/Function<%28i16%2Ci32%2C~lib/typedarray/Int16Array%29=>bool> $~lib/function/Function<%28u16%2Ci32%2C~lib/typedarray/Uint16Array%29=>bool> $~lib/function/Function<%28i32%2Ci32%2C~lib/typedarray/Int32Array%29=>bool> $~lib/function/Function<%28u32%2Ci32%2C~lib/typedarray/Uint32Array%29=>bool> $~lib/function/Function<%28i64%2Ci32%2C~lib/typedarray/Int64Array%29=>bool> $~lib/function/Function<%28u64%2Ci32%2C~lib/typedarray/Uint64Array%29=>bool> $~lib/function/Function<%28f32%2Ci32%2C~lib/typedarray/Float32Array%29=>bool> $~lib/function/Function<%28f64%2Ci32%2C~lib/typedarray/Float64Array%29=>bool> $~lib/function/Function<%28i8%2Ci32%2C~lib/typedarray/Int8Array%29=>void> $~lib/function/Function<%28u8%2Ci32%2C~lib/typedarray/Uint8Array%29=>void> $~lib/function/Function<%28u8%2Ci32%2C~lib/typedarray/Uint8ClampedArray%29=>void> $~lib/function/Function<%28i16%2Ci32%2C~lib/typedarray/Int16Array%29=>void> $~lib/function/Function<%28u16%2Ci32%2C~lib/typedarray/Uint16Array%29=>void> $~lib/function/Function<%28i32%2Ci32%2C~lib/typedarray/Int32Array%29=>void> $~lib/function/Function<%28u32%2Ci32%2C~lib/typedarray/Uint32Array%29=>void> $~lib/function/Function<%28i64%2Ci32%2C~lib/typedarray/Int64Array%29=>void> $~lib/function/Function<%28u64%2Ci32%2C~lib/typedarray/Uint64Array%29=>void> $~lib/function/Function<%28f32%2Ci32%2C~lib/typedarray/Float32Array%29=>void> $~lib/function/Function<%28f64%2Ci32%2C~lib/typedarray/Float64Array%29=>void> $~lib/array/Array $~lib/array/Array $~lib/array/Array $~lib/array/Array $~lib/array/Array $~lib/array/Array $~lib/array/Array $~lib/array/Array $invalid - 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/typedarray/Int8Array~visit - return - end - local.get $0 - local.get $1 - call $~lib/typedarray/Uint8Array~visit - return - end - local.get $0 - local.get $1 - call $~lib/typedarray/Uint8ClampedArray~visit - return - end - local.get $0 - local.get $1 - call $~lib/typedarray/Int16Array~visit - return - end - local.get $0 - local.get $1 - call $~lib/typedarray/Uint16Array~visit - return - end - local.get $0 - local.get $1 - call $~lib/typedarray/Int32Array~visit - return - end - local.get $0 - local.get $1 - call $~lib/typedarray/Uint32Array~visit - return - end - local.get $0 - local.get $1 - call $~lib/typedarray/Int64Array~visit - return - end - local.get $0 - local.get $1 - call $~lib/typedarray/Uint64Array~visit - return - end - local.get $0 - local.get $1 - call $~lib/typedarray/Float32Array~visit - return - end - local.get $0 - local.get $1 - call $~lib/typedarray/Float64Array~visit - return - end - local.get $0 - local.get $1 - call $~lib/function/Function<%28f64%2Cf64%29=>i32>~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<%28i8%2Ci8%2Ci32%2C~lib/typedarray/Int8Array%29=>i8>~visit - return - end - local.get $0 - local.get $1 - call $~lib/function/Function<%28u8%2Cu8%2Ci32%2C~lib/typedarray/Uint8Array%29=>u8>~visit - return - end - local.get $0 - local.get $1 - call $~lib/function/Function<%28u8%2Cu8%2Ci32%2C~lib/typedarray/Uint8ClampedArray%29=>u8>~visit - return - end - local.get $0 - local.get $1 - call $~lib/function/Function<%28i16%2Ci16%2Ci32%2C~lib/typedarray/Int16Array%29=>i16>~visit - return - end - local.get $0 - local.get $1 - call $~lib/function/Function<%28u16%2Cu16%2Ci32%2C~lib/typedarray/Uint16Array%29=>u16>~visit - return - end - local.get $0 - local.get $1 - call $~lib/function/Function<%28i32%2Ci32%2Ci32%2C~lib/typedarray/Int32Array%29=>i32>~visit - return - end - local.get $0 - local.get $1 - call $~lib/function/Function<%28u32%2Cu32%2Ci32%2C~lib/typedarray/Uint32Array%29=>u32>~visit - return - end - local.get $0 - local.get $1 - call $~lib/function/Function<%28i64%2Ci64%2Ci32%2C~lib/typedarray/Int64Array%29=>i64>~visit - return - end - local.get $0 - local.get $1 - call $~lib/function/Function<%28u64%2Cu64%2Ci32%2C~lib/typedarray/Uint64Array%29=>u64>~visit - return - end - local.get $0 - local.get $1 - call $~lib/function/Function<%28f32%2Cf32%2Ci32%2C~lib/typedarray/Float32Array%29=>f32>~visit - return - end - local.get $0 - local.get $1 - call $~lib/function/Function<%28f64%2Cf64%2Ci32%2C~lib/typedarray/Float64Array%29=>f64>~visit - return - end - local.get $0 - local.get $1 - call $~lib/function/Function<%28i8%2Ci32%2C~lib/typedarray/Int8Array%29=>i8>~visit - return - end - local.get $0 - local.get $1 - call $~lib/function/Function<%28u8%2Ci32%2C~lib/typedarray/Uint8Array%29=>u8>~visit - return - end - local.get $0 - local.get $1 - call $~lib/function/Function<%28u8%2Ci32%2C~lib/typedarray/Uint8ClampedArray%29=>u8>~visit - return - end - local.get $0 - local.get $1 - call $~lib/function/Function<%28i16%2Ci32%2C~lib/typedarray/Int16Array%29=>i16>~visit - return - end - local.get $0 - local.get $1 - call $~lib/function/Function<%28u16%2Ci32%2C~lib/typedarray/Uint16Array%29=>u16>~visit - return - end - local.get $0 - local.get $1 - call $~lib/function/Function<%28i32%2Ci32%2C~lib/typedarray/Int32Array%29=>i32>~visit - return - end - local.get $0 - local.get $1 - call $~lib/function/Function<%28u32%2Ci32%2C~lib/typedarray/Uint32Array%29=>u32>~visit - return - end - local.get $0 - local.get $1 - call $~lib/function/Function<%28i64%2Ci32%2C~lib/typedarray/Int64Array%29=>i64>~visit - return - end - local.get $0 - local.get $1 - call $~lib/function/Function<%28u64%2Ci32%2C~lib/typedarray/Uint64Array%29=>u64>~visit - return - end - local.get $0 - local.get $1 - call $~lib/function/Function<%28f32%2Ci32%2C~lib/typedarray/Float32Array%29=>f32>~visit - return - end - local.get $0 - local.get $1 - call $~lib/function/Function<%28f64%2Ci32%2C~lib/typedarray/Float64Array%29=>f64>~visit - return - end - local.get $0 - local.get $1 - call $~lib/function/Function<%28i8%2Ci32%2C~lib/typedarray/Int8Array%29=>bool>~visit - return - end - local.get $0 - local.get $1 - call $~lib/function/Function<%28u8%2Ci32%2C~lib/typedarray/Uint8Array%29=>bool>~visit - return - end - local.get $0 - local.get $1 - call $~lib/function/Function<%28u8%2Ci32%2C~lib/typedarray/Uint8ClampedArray%29=>bool>~visit - return - end - local.get $0 - local.get $1 - call $~lib/function/Function<%28i16%2Ci32%2C~lib/typedarray/Int16Array%29=>bool>~visit - return - end - local.get $0 - local.get $1 - call $~lib/function/Function<%28u16%2Ci32%2C~lib/typedarray/Uint16Array%29=>bool>~visit - return - end - local.get $0 - local.get $1 - call $~lib/function/Function<%28i32%2Ci32%2C~lib/typedarray/Int32Array%29=>bool>~visit - return - end - local.get $0 - local.get $1 - call $~lib/function/Function<%28u32%2Ci32%2C~lib/typedarray/Uint32Array%29=>bool>~visit - return - end - local.get $0 - local.get $1 - call $~lib/function/Function<%28i64%2Ci32%2C~lib/typedarray/Int64Array%29=>bool>~visit - return - end - local.get $0 - local.get $1 - call $~lib/function/Function<%28u64%2Ci32%2C~lib/typedarray/Uint64Array%29=>bool>~visit - return - end - local.get $0 - local.get $1 - call $~lib/function/Function<%28f32%2Ci32%2C~lib/typedarray/Float32Array%29=>bool>~visit - return - end - local.get $0 - local.get $1 - call $~lib/function/Function<%28f64%2Ci32%2C~lib/typedarray/Float64Array%29=>bool>~visit - return - end - local.get $0 - local.get $1 - call $~lib/function/Function<%28i8%2Ci32%2C~lib/typedarray/Int8Array%29=>void>~visit - return - end - local.get $0 - local.get $1 - call $~lib/function/Function<%28u8%2Ci32%2C~lib/typedarray/Uint8Array%29=>void>~visit - return - end - local.get $0 - local.get $1 - call $~lib/function/Function<%28u8%2Ci32%2C~lib/typedarray/Uint8ClampedArray%29=>void>~visit - return - end - local.get $0 - local.get $1 - call $~lib/function/Function<%28i16%2Ci32%2C~lib/typedarray/Int16Array%29=>void>~visit - return - end - local.get $0 - local.get $1 - call $~lib/function/Function<%28u16%2Ci32%2C~lib/typedarray/Uint16Array%29=>void>~visit - return - end - local.get $0 - local.get $1 - call $~lib/function/Function<%28i32%2Ci32%2C~lib/typedarray/Int32Array%29=>void>~visit - return - end - local.get $0 - local.get $1 - call $~lib/function/Function<%28u32%2Ci32%2C~lib/typedarray/Uint32Array%29=>void>~visit - return - end - local.get $0 - local.get $1 - call $~lib/function/Function<%28i64%2Ci32%2C~lib/typedarray/Int64Array%29=>void>~visit - return - end - local.get $0 - local.get $1 - call $~lib/function/Function<%28u64%2Ci32%2C~lib/typedarray/Uint64Array%29=>void>~visit - return - end - local.get $0 - local.get $1 - call $~lib/function/Function<%28f32%2Ci32%2C~lib/typedarray/Float32Array%29=>void>~visit - return - end - local.get $0 - local.get $1 - call $~lib/function/Function<%28f64%2Ci32%2C~lib/typedarray/Float64Array%29=>void>~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/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/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/array/Array~visit - return - end - local.get $0 - local.get $1 - call $~lib/array/Array~visit - return - end - unreachable - ) - (func $~start - call $start:std/typedarray - ) - (func $~stack_check - global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__data_end - i32.lt_s + i32.eq + i32.eqz if - i32.const 30560 - i32.const 30608 - i32.const 1 - i32.const 1 + i32.const 0 + i32.const 544 + i32.const 580 + i32.const 3 call $~lib/builtins/abort unreachable end - ) - (func $~lib/typedarray/Int8Array#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 - call $~stack_check - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - local.get $0 + local.get $2 + i32.const 11 + i32.const 0 + call $~lib/typedarray/Int8Array#indexOf + i32.const -1 + i32.eq i32.eqz if - global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 0 + i32.const 544 + i32.const 581 i32.const 3 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store + call $~lib/builtins/abort + unreachable end - global.get $~lib/memory/__stack_pointer - local.get $0 - local.set $2 - global.get $~lib/memory/__stack_pointer local.get $2 - i32.store offset=4 - local.get $2 - local.get $1 + i32.const -1 i32.const 0 - call $~lib/arraybuffer/ArrayBufferView#constructor - local.tee $0 - i32.store - local.get $0 - local.set $2 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer + call $~lib/typedarray/Int8Array#indexOf + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 582 + i32.const 3 + call $~lib/builtins/abort + unreachable + end local.get $2 - ) - (func $~lib/typedarray/Uint8Array#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 - call $~stack_check - 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 12 - i32.const 4 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - end - global.get $~lib/memory/__stack_pointer - local.get $0 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - local.get $1 - i32.const 0 - call $~lib/arraybuffer/ArrayBufferView#constructor - local.tee $0 - i32.store - local.get $0 - local.set $2 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $2 - ) - (func $~lib/typedarray/Uint8ClampedArray#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 - call $~stack_check - 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 12 - i32.const 5 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - end - global.get $~lib/memory/__stack_pointer - local.get $0 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - local.get $1 + i32.const 3 i32.const 0 - call $~lib/arraybuffer/ArrayBufferView#constructor - local.tee $0 - i32.store - local.get $0 - local.set $2 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $2 - ) - (func $~lib/typedarray/Int16Array#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 - call $~stack_check - 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 12 - i32.const 6 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - end - global.get $~lib/memory/__stack_pointer - local.get $0 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - local.get $1 - i32.const 1 - call $~lib/arraybuffer/ArrayBufferView#constructor - local.tee $0 - i32.store - local.get $0 - local.set $2 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $2 - ) - (func $~lib/typedarray/Uint16Array#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 - call $~stack_check - 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 12 - i32.const 7 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - end - global.get $~lib/memory/__stack_pointer - local.get $0 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - local.get $1 - i32.const 1 - call $~lib/arraybuffer/ArrayBufferView#constructor - local.tee $0 - i32.store - local.get $0 - local.set $2 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $2 - ) - (func $~lib/typedarray/Int32Array#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 - call $~stack_check - 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 12 - i32.const 8 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - end - global.get $~lib/memory/__stack_pointer - local.get $0 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - local.get $1 - i32.const 2 - call $~lib/arraybuffer/ArrayBufferView#constructor - local.tee $0 - i32.store - local.get $0 - local.set $2 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $2 - ) - (func $~lib/typedarray/Uint32Array#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 - call $~stack_check - 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 12 - i32.const 9 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - end - global.get $~lib/memory/__stack_pointer - local.get $0 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - local.get $1 - i32.const 2 - call $~lib/arraybuffer/ArrayBufferView#constructor - local.tee $0 - i32.store - local.get $0 - local.set $2 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $2 - ) - (func $~lib/typedarray/Int64Array#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 - call $~stack_check - 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 12 - i32.const 10 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - end - global.get $~lib/memory/__stack_pointer - local.get $0 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - local.get $1 + call $~lib/typedarray/Int8Array#indexOf i32.const 3 - call $~lib/arraybuffer/ArrayBufferView#constructor - local.tee $0 - i32.store - local.get $0 - local.set $2 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $2 - ) - (func $~lib/typedarray/Uint64Array#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 - call $~stack_check - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - local.get $0 + i32.eq i32.eqz if - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.const 11 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store + i32.const 0 + i32.const 544 + i32.const 583 + i32.const 3 + call $~lib/builtins/abort + unreachable end - global.get $~lib/memory/__stack_pointer - local.get $0 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 local.get $2 - local.get $1 i32.const 3 - call $~lib/arraybuffer/ArrayBufferView#constructor - local.tee $0 - i32.store - local.get $0 - local.set $2 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $2 - ) - (func $~lib/typedarray/Float32Array#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 - call $~stack_check - 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 12 - i32.const 12 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - end - global.get $~lib/memory/__stack_pointer - local.get $0 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - local.get $1 i32.const 2 - call $~lib/arraybuffer/ArrayBufferView#constructor - local.tee $0 - i32.store - local.get $0 - local.set $2 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $2 - ) - (func $~lib/typedarray/Float64Array#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 - call $~stack_check - 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 12 - i32.const 13 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - end - global.get $~lib/memory/__stack_pointer - local.get $0 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - local.get $1 + call $~lib/typedarray/Int8Array#indexOf i32.const 3 - call $~lib/arraybuffer/ArrayBufferView#constructor - local.tee $0 - i32.store - local.get $0 - local.set $2 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $2 - ) - (func $std/typedarray/testInstantiate (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) - (local $12 i32) - global.get $~lib/memory/__stack_pointer - i32.const 48 - 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 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=16 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=24 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=32 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=40 - global.get $~lib/memory/__stack_pointer - i32.const 0 - local.get $0 - call $~lib/typedarray/Int8Array#constructor - local.tee $1 - i32.store - local.get $1 - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=4 - local.get $12 - call $~lib/arraybuffer/ArrayBufferView#get:byteOffset - i32.const 0 i32.eq i32.eqz if i32.const 0 i32.const 544 - i32.const 32 + i32.const 584 i32.const 3 call $~lib/builtins/abort unreachable end - local.get $1 - i32.load offset=8 - local.get $0 - global.get $~lib/typedarray/Int8Array.BYTES_PER_ELEMENT - i32.mul + local.get $2 + i32.const 3 + i32.const 3 + call $~lib/typedarray/Int8Array#indexOf + i32.const 3 i32.eq i32.eqz if i32.const 0 i32.const 544 - i32.const 33 + i32.const 585 i32.const 3 call $~lib/builtins/abort unreachable end - local.get $1 - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=4 - local.get $12 - call $~lib/typedarray/Int8Array#get:length - local.get $0 + local.get $2 + i32.const 3 + i32.const 4 + call $~lib/typedarray/Int8Array#indexOf + i32.const -1 i32.eq i32.eqz if i32.const 0 i32.const 544 - i32.const 34 + i32.const 586 i32.const 3 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 0 - local.get $0 - call $~lib/typedarray/Uint8Array#constructor - local.tee $2 - i32.store offset=8 local.get $2 - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=4 - local.get $12 - call $~lib/arraybuffer/ArrayBufferView#get:byteOffset - i32.const 0 + i32.const 1 + i32.const 10 + call $~lib/typedarray/Int8Array#indexOf + i32.const -1 i32.eq i32.eqz if i32.const 0 i32.const 544 - i32.const 37 + i32.const 587 i32.const 3 call $~lib/builtins/abort unreachable end local.get $2 - i32.load offset=8 - local.get $0 - global.get $~lib/typedarray/Uint8Array.BYTES_PER_ELEMENT - i32.mul + i32.const 1 + i32.const -100 + call $~lib/typedarray/Int8Array#indexOf + i32.const 1 i32.eq i32.eqz if i32.const 0 i32.const 544 - i32.const 38 + i32.const 588 i32.const 3 call $~lib/builtins/abort unreachable end local.get $2 - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=4 - local.get $12 - call $~lib/typedarray/Uint8Array#get:length - local.get $0 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 39 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - local.get $0 - call $~lib/typedarray/Uint8ClampedArray#constructor - local.tee $3 - i32.store offset=12 - local.get $3 - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=4 - local.get $12 - call $~lib/arraybuffer/ArrayBufferView#get:byteOffset i32.const 0 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 42 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $3 - i32.load offset=8 - local.get $0 - global.get $~lib/typedarray/Uint8Array.BYTES_PER_ELEMENT - i32.mul - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 43 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $3 - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=4 - local.get $12 - call $~lib/typedarray/Uint8ClampedArray#get:length - local.get $0 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 44 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer + i32.const 1 + global.set $~argumentsLength i32.const 0 - local.get $0 - call $~lib/typedarray/Int16Array#constructor - local.tee $4 - i32.store offset=16 - local.get $4 - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=4 - local.get $12 - call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + call $~lib/typedarray/Int8Array#lastIndexOf@varargs i32.const 0 i32.eq i32.eqz if i32.const 0 i32.const 544 - i32.const 47 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $4 - i32.load offset=8 - local.get $0 - global.get $~lib/typedarray/Int16Array.BYTES_PER_ELEMENT - i32.mul - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 48 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $4 - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=4 - local.get $12 - call $~lib/typedarray/Int16Array#get:length - local.get $0 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 49 + i32.const 590 i32.const 3 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 0 - local.get $0 - call $~lib/typedarray/Uint16Array#constructor - local.tee $5 - i32.store offset=20 - local.get $5 - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=4 - local.get $12 - call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + local.get $2 + i32.const 11 + i32.const 1 + global.set $~argumentsLength i32.const 0 + call $~lib/typedarray/Int8Array#lastIndexOf@varargs + i32.const -1 i32.eq i32.eqz if i32.const 0 i32.const 544 - i32.const 52 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $5 - i32.load offset=8 - local.get $0 - global.get $~lib/typedarray/Uint16Array.BYTES_PER_ELEMENT - i32.mul - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 53 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $5 - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=4 - local.get $12 - call $~lib/typedarray/Uint16Array#get:length - local.get $0 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 54 + i32.const 591 i32.const 3 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 0 - local.get $0 - call $~lib/typedarray/Int32Array#constructor - local.tee $6 - i32.store offset=24 - local.get $6 - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=4 - local.get $12 - call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + local.get $2 + i32.const -1 + i32.const 1 + global.set $~argumentsLength i32.const 0 + call $~lib/typedarray/Int8Array#lastIndexOf@varargs + i32.const -1 i32.eq i32.eqz if i32.const 0 i32.const 544 - i32.const 57 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $6 - i32.load offset=8 - local.get $0 - global.get $~lib/typedarray/Int32Array.BYTES_PER_ELEMENT - i32.mul - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 58 + i32.const 592 i32.const 3 call $~lib/builtins/abort unreachable end - local.get $6 - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=4 - local.get $12 - call $~lib/typedarray/Int32Array#get:length - local.get $0 + local.get $2 + i32.const 3 + i32.const 1 + global.set $~argumentsLength + i32.const 0 + call $~lib/typedarray/Int8Array#lastIndexOf@varargs + i32.const 3 i32.eq i32.eqz if i32.const 0 i32.const 544 - i32.const 59 + i32.const 593 i32.const 3 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 0 - local.get $0 - call $~lib/typedarray/Uint32Array#constructor - local.tee $7 - i32.store offset=28 - local.get $7 - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=4 - local.get $12 - call $~lib/arraybuffer/ArrayBufferView#get:byteOffset - i32.const 0 + local.get $2 + i32.const 3 + i32.const 4 + call $~lib/typedarray/Int8Array#lastIndexOf + i32.const 3 i32.eq i32.eqz if i32.const 0 i32.const 544 - i32.const 62 + i32.const 594 i32.const 3 call $~lib/builtins/abort unreachable end - local.get $7 - i32.load offset=8 - local.get $0 - global.get $~lib/typedarray/Uint32Array.BYTES_PER_ELEMENT - i32.mul + local.get $2 + i32.const 3 + i32.const 3 + call $~lib/typedarray/Int8Array#lastIndexOf + i32.const 3 i32.eq i32.eqz if i32.const 0 i32.const 544 - i32.const 63 + i32.const 595 i32.const 3 call $~lib/builtins/abort unreachable end - local.get $7 - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=4 - local.get $12 - call $~lib/typedarray/Uint32Array#get:length - local.get $0 + local.get $2 + i32.const 3 + i32.const 2 + call $~lib/typedarray/Int8Array#lastIndexOf + i32.const -1 i32.eq i32.eqz if i32.const 0 i32.const 544 - i32.const 64 + i32.const 596 i32.const 3 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 0 - local.get $0 - call $~lib/typedarray/Int64Array#constructor - local.tee $8 - i32.store offset=32 - local.get $8 - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=4 - local.get $12 - call $~lib/arraybuffer/ArrayBufferView#get:byteOffset - i32.const 0 + local.get $2 + i32.const 1 + i32.const 100 + call $~lib/typedarray/Int8Array#lastIndexOf + i32.const 1 i32.eq i32.eqz if i32.const 0 i32.const 544 - i32.const 67 + i32.const 597 i32.const 3 call $~lib/builtins/abort unreachable end - local.get $8 - i32.load offset=8 - local.get $0 - global.get $~lib/typedarray/Int64Array.BYTES_PER_ELEMENT - i32.mul + local.get $2 + i32.const 1 + i32.const -10 + call $~lib/typedarray/Int8Array#lastIndexOf + i32.const 1 i32.eq i32.eqz if i32.const 0 i32.const 544 - i32.const 68 + i32.const 598 i32.const 3 call $~lib/builtins/abort unreachable end - local.get $8 - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=4 - local.get $12 - call $~lib/typedarray/Int64Array#get:length - local.get $0 + local.get $2 + i32.const 1 + i32.const -11 + call $~lib/typedarray/Int8Array#lastIndexOf + i32.const -1 i32.eq i32.eqz if i32.const 0 i32.const 544 - i32.const 69 + i32.const 599 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer + local.get $2 + i32.const 4 + i32.const 9 + call $~lib/typedarray/Int8Array#subarray + local.tee $5 + i32.store offset=8 + local.get $5 + i32.const 3 i32.const 0 - local.get $0 - call $~lib/typedarray/Uint64Array#constructor - local.tee $9 - i32.store offset=36 - local.get $9 - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=4 - local.get $12 - call $~lib/arraybuffer/ArrayBufferView#get:byteOffset - i32.const 0 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 72 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $9 - i32.load offset=8 - local.get $0 - global.get $~lib/typedarray/Uint64Array.BYTES_PER_ELEMENT - i32.mul + call $~lib/typedarray/Int8Array#indexOf + i32.const -1 i32.eq i32.eqz if i32.const 0 i32.const 544 - i32.const 73 + i32.const 603 i32.const 3 call $~lib/builtins/abort unreachable end - local.get $9 - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=4 - local.get $12 - call $~lib/typedarray/Uint64Array#get:length - local.get $0 + local.get $5 + i32.const 4 + i32.const 0 + call $~lib/typedarray/Int8Array#indexOf + i32.const 4 + i32.const 4 + i32.sub i32.eq i32.eqz if i32.const 0 i32.const 544 - i32.const 74 + i32.const 604 i32.const 3 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 0 - local.get $0 - call $~lib/typedarray/Float32Array#constructor - local.tee $10 - i32.store offset=40 - local.get $10 - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=4 - local.get $12 - call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + local.get $5 + i32.const 5 i32.const 0 + call $~lib/typedarray/Int8Array#indexOf + i32.const 5 + i32.const 4 + i32.sub i32.eq i32.eqz if i32.const 0 i32.const 544 - i32.const 77 + i32.const 605 i32.const 3 call $~lib/builtins/abort unreachable end - local.get $10 - i32.load offset=8 - local.get $0 - global.get $~lib/typedarray/Float32Array.BYTES_PER_ELEMENT - i32.mul + local.get $5 + i32.const 9 + i32.const 0 + call $~lib/typedarray/Int8Array#indexOf + i32.const -1 i32.eq i32.eqz if i32.const 0 i32.const 544 - i32.const 78 + i32.const 606 i32.const 3 call $~lib/builtins/abort unreachable end - local.get $10 - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=4 - local.get $12 - call $~lib/typedarray/Float32Array#get:length - local.get $0 + local.get $5 + i32.const 10 + i32.const 0 + call $~lib/typedarray/Int8Array#indexOf + i32.const -1 i32.eq i32.eqz if i32.const 0 i32.const 544 - i32.const 79 + i32.const 607 i32.const 3 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 0 - local.get $0 - call $~lib/typedarray/Float64Array#constructor - local.tee $11 - i32.store offset=44 - local.get $11 - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=4 - local.get $12 - call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + local.get $5 + i32.const 11 i32.const 0 + call $~lib/typedarray/Int8Array#indexOf + i32.const -1 i32.eq i32.eqz if i32.const 0 i32.const 544 - i32.const 82 + i32.const 608 i32.const 3 call $~lib/builtins/abort unreachable end - local.get $11 - i32.load offset=8 - local.get $0 - global.get $~lib/typedarray/Float64Array.BYTES_PER_ELEMENT - i32.mul + local.get $5 + i32.const 5 + i32.const 1 + call $~lib/typedarray/Int8Array#indexOf + i32.const 5 + i32.const 4 + i32.sub i32.eq i32.eqz if i32.const 0 i32.const 544 - i32.const 83 + i32.const 609 i32.const 3 call $~lib/builtins/abort unreachable end - local.get $11 - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=4 - local.get $12 - call $~lib/typedarray/Float64Array#get:length - local.get $0 + local.get $5 + i32.const 5 + i32.const 2 + call $~lib/typedarray/Int8Array#indexOf + i32.const -1 i32.eq i32.eqz if i32.const 0 i32.const 544 - i32.const 84 + i32.const 610 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 48 + i32.const 12 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/Uint8Array#indexOf (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -12206,401 +13421,191 @@ (local $7 i32) (local $8 i32) (local $9 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 - global.get $~lib/memory/__stack_pointer - local.get $0 - local.tee $5 - i32.store - local.get $1 - local.set $4 - local.get $2 - local.set $3 - local.get $5 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - call $~lib/typedarray/Int32Array#get:length - local.set $6 - local.get $4 - i32.const 0 - i32.lt_s - if (result i32) - local.get $6 - local.get $4 - i32.add - local.tee $7 - i32.const 0 - local.tee $8 - local.get $7 - local.get $8 - i32.gt_s - select - else - local.get $4 - local.tee $8 - local.get $6 - local.tee $7 - local.get $8 - local.get $7 - i32.lt_s - select - end - local.set $4 - local.get $3 - i32.const 0 - i32.lt_s - if (result i32) - local.get $6 - local.get $3 - i32.add - local.tee $7 - i32.const 0 - local.tee $8 - local.get $7 - local.get $8 - i32.gt_s - select - else + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.0 (result i32) + local.get $0 + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 local.get $3 - local.tee $8 - local.get $6 - local.tee $7 - local.get $8 + local.set $6 + local.get $5 + call $~lib/typedarray/Uint8Array#get:length + local.set $7 local.get $7 - i32.lt_s - select - end - local.set $3 - local.get $3 - local.tee $7 - local.get $4 - local.tee $8 - local.get $7 - local.get $8 - i32.gt_s - select - local.set $3 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.const 8 - call $~lib/rt/itcms/__new - local.tee $7 - i32.store offset=8 - local.get $5 - i32.load - local.set $8 - local.get $7 - local.get $8 - i32.store - local.get $7 - local.get $8 - i32.const 0 - call $~lib/rt/itcms/__link - local.get $7 - local.get $5 - i32.load offset=4 - local.get $4 - i32.const 2 - i32.shl - i32.add - i32.store offset=4 - local.get $7 - local.get $3 - local.get $4 - i32.sub - i32.const 2 - i32.shl - i32.store offset=8 - local.get $7 - local.set $9 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $9 - ) - (func $~lib/typedarray/Float64Array#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 $7 i32) - (local $8 i32) - (local $9 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 - global.get $~lib/memory/__stack_pointer - local.get $0 - local.tee $5 - i32.store - local.get $1 - local.set $4 - local.get $2 - local.set $3 - local.get $5 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - call $~lib/typedarray/Float64Array#get:length - local.set $6 - local.get $4 - i32.const 0 - i32.lt_s - if (result i32) - local.get $6 - local.get $4 - i32.add - local.tee $7 i32.const 0 - local.tee $8 - local.get $7 - local.get $8 - i32.gt_s - select - else - local.get $4 - local.tee $8 - local.get $6 - local.tee $7 - local.get $8 - local.get $7 - i32.lt_s - select - end - local.set $4 - local.get $3 - i32.const 0 - i32.lt_s - if (result i32) + i32.eq + if (result i32) + i32.const 1 + else + local.get $6 + local.get $7 + i32.ge_s + end + if + i32.const -1 + br $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.0 + end local.get $6 - local.get $3 - i32.add - local.tee $7 i32.const 0 - local.tee $8 - local.get $7 - local.get $8 - i32.gt_s - select - else - local.get $3 - local.tee $8 - local.get $6 - local.tee $7 - local.get $8 - local.get $7 i32.lt_s - select + if + local.get $7 + local.get $6 + i32.add + local.tee $8 + i32.const 0 + local.tee $9 + local.get $8 + local.get $9 + i32.gt_s + select + local.set $6 + end + local.get $5 + i32.load offset=4 + local.set $8 + loop $while-continue|0 + local.get $6 + local.get $7 + i32.lt_s + local.set $9 + local.get $9 + if + local.get $8 + local.get $6 + i32.const 0 + i32.shl + i32.add + i32.load8_u + local.get $4 + i32.const 255 + i32.and + i32.eq + if + local.get $6 + br $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.0 + end + local.get $6 + i32.const 1 + i32.add + local.set $6 + br $while-continue|0 + end + end + i32.const -1 end - local.set $3 - local.get $3 - local.tee $7 - local.get $4 - local.tee $8 - local.get $7 - local.get $8 - i32.gt_s - select - local.set $3 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.const 13 - call $~lib/rt/itcms/__new - local.tee $7 - i32.store offset=8 - local.get $5 - i32.load - local.set $8 - local.get $7 - local.get $8 - i32.store - local.get $7 - local.get $8 - i32.const 0 - call $~lib/rt/itcms/__link - local.get $7 - local.get $5 - i32.load offset=4 - local.get $4 - i32.const 3 - i32.shl - i32.add - i32.store offset=4 - local.get $7 - local.get $3 - local.get $4 - i32.sub - i32.const 3 - i32.shl - i32.store offset=8 - local.get $7 - local.set $9 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $9 ) - (func $~lib/typedarray/Float64Array#sort (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) + (func $~lib/typedarray/Uint8Array#lastIndexOf (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) - (local $6 f64) - (local $7 f64) + (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 - 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 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=16 - block $~lib/typedarray/SORT<~lib/typedarray/Float64Array,f64>|inlined.0 (result i32) - global.get $~lib/memory/__stack_pointer + block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.0 (result i32) local.get $0 - local.tee $3 - i32.store - global.get $~lib/memory/__stack_pointer + local.set $5 local.get $1 - local.tee $2 - i32.store offset=4 - local.get $3 - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=8 - local.get $11 - call $~lib/typedarray/Float64Array#get:length local.set $4 - local.get $4 - i32.const 1 - i32.le_s - if - local.get $3 - br $~lib/typedarray/SORT<~lib/typedarray/Float64Array,f64>|inlined.0 - end + local.get $2 + local.set $3 local.get $3 - i32.load offset=4 - local.set $5 - local.get $4 - i32.const 2 + local.set $6 + local.get $5 + call $~lib/typedarray/Uint8Array#get:length + local.set $7 + local.get $7 + i32.const 0 i32.eq if - local.get $5 - f64.load offset=8 + i32.const -1 + br $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.0 + end + local.get $6 + i32.const 0 + i32.lt_s + if + local.get $7 + local.get $6 + i32.add local.set $6 - local.get $5 - f64.load - local.set $7 + else local.get $6 local.get $7 - i32.const 2 - global.set $~argumentsLength - local.get $2 - i32.load - call_indirect (type $f64_f64_=>_i32) - i32.const 0 - i32.lt_s + i32.ge_s if - local.get $5 local.get $7 - f64.store offset=8 - local.get $5 - local.get $6 - f64.store + i32.const 1 + i32.sub + local.set $6 end - local.get $3 - br $~lib/typedarray/SORT<~lib/typedarray/Float64Array,f64>|inlined.0 end local.get $5 - local.set $10 - local.get $4 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $2 - local.tee $8 - i32.store offset=12 - i32.const 0 - drop - local.get $9 - i32.const 256 - i32.lt_s - if - local.get $10 - local.get $9 - local.get $8 - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=16 - local.get $11 - call $~lib/util/sort/insertionSort - else - local.get $10 + i32.load offset=4 + local.set $8 + loop $while-continue|0 + local.get $6 + i32.const 0 + i32.ge_s + local.set $9 local.get $9 - local.get $8 - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=16 - local.get $11 - call $~lib/util/sort/weakHeapSort + if + local.get $8 + local.get $6 + i32.const 0 + i32.shl + i32.add + i32.load8_u + local.get $4 + i32.const 255 + i32.and + i32.eq + if + local.get $6 + br $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.0 + end + local.get $6 + i32.const 1 + i32.sub + local.set $6 + br $while-continue|0 + end end - local.get $3 + i32.const -1 end - local.set $11 - global.get $~lib/memory/__stack_pointer - i32.const 20 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $11 ) - (func $~lib/typedarray/Int8Array#fill (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (func $~lib/typedarray/Uint8Array#lastIndexOf@varargs (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + block $1of1 + block $0of1 + block $outOfRange + global.get $~argumentsLength + i32.const 1 + i32.sub + br_table $0of1 $1of1 $outOfRange + end + unreachable + end + local.get $0 + call $~lib/typedarray/Uint8Array#get:length + local.set $2 + end + local.get $0 + local.get $1 + local.get $2 + call $~lib/typedarray/Uint8Array#lastIndexOf + ) + (func $std/typedarray/testArrayIndexOfAndLastIndexOf<~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) - (local $9 i32) - (local $10 i32) - (local $11 i32) - (local $12 i32) global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check @@ -12608,834 +13613,561 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - local.get $0 - local.tee $7 + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + global.get $std/typedarray/testArrayIndexOfAndLastIndexOfValues + local.tee $0 i32.store - local.get $1 - local.set $6 - local.get $2 - local.set $5 - local.get $3 - local.set $4 - local.get $7 - i32.load offset=4 - local.set $8 - local.get $7 - local.set $12 + local.get $0 + call $~lib/array/Array#get:length + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $12 + i32.const 0 + local.get $1 + call $~lib/typedarray/Uint8Array#constructor + local.tee $2 i32.store offset=4 - local.get $12 - call $~lib/typedarray/Int8Array#get:length - local.set $9 - local.get $5 i32.const 0 - i32.lt_s - if (result i32) - local.get $9 - local.get $5 - i32.add - local.tee $10 - i32.const 0 - local.tee $11 - local.get $10 - local.get $11 - i32.gt_s - select - else - local.get $5 - local.tee $11 - local.get $9 - local.tee $10 - local.get $11 - local.get $10 - i32.lt_s - select - end - local.set $5 - local.get $4 - i32.const 0 - i32.lt_s - if (result i32) - local.get $9 - local.get $4 - i32.add - local.tee $10 - i32.const 0 - local.tee $11 - local.get $10 - local.get $11 - i32.gt_s - select - else - local.get $4 - local.tee $11 - local.get $9 - local.tee $10 - local.get $11 - local.get $10 - i32.lt_s - select - end - local.set $4 - i32.const 1 - i32.const 1 - i32.eq - drop - local.get $5 - local.get $4 - i32.lt_s - if - local.get $8 - local.get $5 - i32.add - local.get $6 - local.get $4 - local.get $5 - i32.sub - call $~lib/memory/memory.fill - end - local.get $7 - local.set $12 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $12 - ) - (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 - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - local.get $0 - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - local.get $5 - call $~lib/typedarray/Int8Array#get:length - local.get $1 - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - local.get $5 - call $~lib/array/Array#get:length - i32.ne - if - i32.const 0 - local.set $5 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $5 - return - end - i32.const 0 - local.set $2 - local.get $0 - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - local.get $5 - call $~lib/typedarray/Int8Array#get:length local.set $3 loop $for-loop|0 - local.get $2 local.get $3 + local.get $1 i32.lt_s local.set $4 local.get $4 if - local.get $0 - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - local.get $5 - local.get $2 - call $~lib/typedarray/Int8Array#__get - local.get $1 - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - local.get $5 - local.get $2 - call $~lib/array/Array#__get - i32.ne - if - i32.const 0 - local.set $5 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $5 - return - end local.get $2 + local.get $3 + local.get $0 + local.get $3 + call $~lib/array/Array#__get + i32.const 255 + i32.and + call $~lib/typedarray/Uint8Array#__set + local.get $3 i32.const 1 i32.add - local.set $2 + local.set $3 br $for-loop|0 end end - i32.const 1 - local.set $5 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $5 - ) - (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 $7 i32) - (local $8 i32) - (local $9 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 - global.get $~lib/memory/__stack_pointer - local.get $0 - local.tee $5 - i32.store - local.get $1 - local.set $4 local.get $2 - local.set $3 - local.get $5 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - call $~lib/typedarray/Int8Array#get:length - local.set $6 - local.get $4 i32.const 0 - i32.lt_s - if (result i32) - local.get $6 - local.get $4 - i32.add - local.tee $7 + i32.const 0 + call $~lib/typedarray/Uint8Array#indexOf + i32.const 0 + i32.eq + i32.eqz + if i32.const 0 - local.tee $8 - local.get $7 - local.get $8 - i32.gt_s - select - else - local.get $4 - local.tee $8 - local.get $6 - local.tee $7 - local.get $8 - local.get $7 - i32.lt_s - select + i32.const 544 + i32.const 580 + i32.const 3 + call $~lib/builtins/abort + unreachable end - local.set $4 - local.get $3 + local.get $2 + i32.const 11 i32.const 0 - i32.lt_s - if (result i32) - local.get $6 - local.get $3 - i32.add - local.tee $7 + call $~lib/typedarray/Uint8Array#indexOf + i32.const -1 + i32.eq + i32.eqz + if i32.const 0 - local.tee $8 - local.get $7 - local.get $8 - i32.gt_s - select - else - local.get $3 - local.tee $8 - local.get $6 - local.tee $7 - local.get $8 - local.get $7 - i32.lt_s - select + i32.const 544 + i32.const 581 + i32.const 3 + call $~lib/builtins/abort + unreachable end - local.set $3 - local.get $3 - local.tee $7 - local.get $4 - local.tee $8 - local.get $7 - local.get $8 - i32.gt_s - select - local.set $3 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.const 3 - call $~lib/rt/itcms/__new - local.tee $7 - i32.store offset=8 - local.get $5 - i32.load - local.set $8 - local.get $7 - local.get $8 - i32.store - local.get $7 - local.get $8 - i32.const 0 - call $~lib/rt/itcms/__link - local.get $7 - local.get $5 - i32.load offset=4 - local.get $4 - i32.const 0 - i32.shl - i32.add - i32.store offset=4 - local.get $7 - local.get $3 - local.get $4 - i32.sub - i32.const 0 - i32.shl - i32.store offset=8 - local.get $7 - local.set $9 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $9 - ) - (func $~lib/typedarray/Int32Array#fill (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result 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 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 - local.get $0 - local.tee $7 - i32.store - local.get $1 - local.set $6 local.get $2 - local.set $5 - local.get $3 - local.set $4 - local.get $7 - i32.load offset=4 - local.set $8 - local.get $7 - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=4 - local.get $12 - call $~lib/typedarray/Int32Array#get:length - local.set $9 - local.get $5 + i32.const -1 i32.const 0 - i32.lt_s - if (result i32) - local.get $9 - local.get $5 - i32.add - local.tee $10 + call $~lib/typedarray/Uint8Array#indexOf + i32.const -1 + i32.eq + i32.eqz + if i32.const 0 - local.tee $11 - local.get $10 - local.get $11 - i32.gt_s - select - else - local.get $5 - local.tee $11 - local.get $9 - local.tee $10 - local.get $11 - local.get $10 - i32.lt_s - select + i32.const 544 + i32.const 582 + i32.const 3 + call $~lib/builtins/abort + unreachable end - local.set $5 - local.get $4 + local.get $2 + i32.const 3 i32.const 0 - i32.lt_s - if (result i32) - local.get $9 - local.get $4 - i32.add - local.tee $10 + call $~lib/typedarray/Uint8Array#indexOf + i32.const 3 + i32.eq + i32.eqz + if i32.const 0 - local.tee $11 - local.get $10 - local.get $11 - i32.gt_s - select - else - local.get $4 - local.tee $11 - local.get $9 - local.tee $10 - local.get $11 - local.get $10 - i32.lt_s - select + i32.const 544 + i32.const 583 + i32.const 3 + call $~lib/builtins/abort + unreachable end - local.set $4 - i32.const 4 - i32.const 1 + local.get $2 + i32.const 3 + i32.const 2 + call $~lib/typedarray/Uint8Array#indexOf + i32.const 3 i32.eq - drop - loop $for-loop|0 - local.get $5 - local.get $4 - i32.lt_s - local.set $11 - local.get $11 - if - local.get $8 - local.get $5 - i32.const 2 - i32.shl - i32.add - local.get $6 - i32.store - local.get $5 - i32.const 1 - i32.add - local.set $5 - br $for-loop|0 - end + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 584 + i32.const 3 + call $~lib/builtins/abort + unreachable end - local.get $7 - local.set $12 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $12 - ) - (func $std/typedarray/isInt32ArrayEqual (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 - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - local.get $0 - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - local.get $5 - call $~lib/typedarray/Int32Array#get:length - local.get $1 - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - local.get $5 - call $~lib/array/Array#get:length - i32.ne + local.get $2 + i32.const 3 + i32.const 3 + call $~lib/typedarray/Uint8Array#indexOf + i32.const 3 + i32.eq + i32.eqz if i32.const 0 - local.set $5 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $5 - return + i32.const 544 + i32.const 585 + i32.const 3 + call $~lib/builtins/abort + unreachable end - i32.const 0 - local.set $2 - local.get $0 - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - local.get $5 - call $~lib/typedarray/Int32Array#get:length - local.set $3 - loop $for-loop|0 - local.get $2 - local.get $3 - i32.lt_s - local.set $4 - local.get $4 - if - local.get $0 - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - local.get $5 - local.get $2 - call $~lib/typedarray/Int32Array#__get - local.get $1 - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - local.get $5 - local.get $2 - call $~lib/array/Array#__get - i32.ne - if - i32.const 0 - local.set $5 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $5 - return - end - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $for-loop|0 - end + local.get $2 + i32.const 3 + i32.const 4 + call $~lib/typedarray/Uint8Array#indexOf + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 586 + i32.const 3 + call $~lib/builtins/abort + unreachable end + local.get $2 i32.const 1 - local.set $5 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $5 - ) - (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) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 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 10 + call $~lib/typedarray/Uint8Array#indexOf + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 587 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 1 + i32.const -100 + call $~lib/typedarray/Uint8Array#indexOf + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 588 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 i32.const 0 - i32.store offset=8 + i32.const 1 + global.set $~argumentsLength + i32.const 0 + call $~lib/typedarray/Uint8Array#lastIndexOf@varargs + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 590 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 11 + i32.const 1 + global.set $~argumentsLength + i32.const 0 + call $~lib/typedarray/Uint8Array#lastIndexOf@varargs + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 591 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const -1 + i32.const 1 + global.set $~argumentsLength + i32.const 0 + call $~lib/typedarray/Uint8Array#lastIndexOf@varargs + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 592 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 3 + i32.const 1 + global.set $~argumentsLength + i32.const 0 + call $~lib/typedarray/Uint8Array#lastIndexOf@varargs + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 593 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 3 + i32.const 4 + call $~lib/typedarray/Uint8Array#lastIndexOf + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 594 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 3 + i32.const 3 + call $~lib/typedarray/Uint8Array#lastIndexOf + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 595 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 3 + i32.const 2 + call $~lib/typedarray/Uint8Array#lastIndexOf + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 596 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 1 + i32.const 100 + call $~lib/typedarray/Uint8Array#lastIndexOf + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 597 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 1 + i32.const -10 + call $~lib/typedarray/Uint8Array#lastIndexOf + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 598 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 1 + i32.const -11 + call $~lib/typedarray/Uint8Array#lastIndexOf + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 599 + i32.const 3 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer - local.get $0 - local.tee $5 - i32.store - local.get $1 - local.set $4 local.get $2 - local.set $3 + i32.const 4 + i32.const 9 + call $~lib/typedarray/Uint8Array#subarray + local.tee $5 + i32.store offset=8 local.get $5 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - call $~lib/typedarray/Int32Array#get:length - local.set $6 - local.get $4 + i32.const 3 i32.const 0 - i32.lt_s - if (result i32) - local.get $4 - local.get $6 - i32.add - local.tee $7 + call $~lib/typedarray/Uint8Array#indexOf + i32.const -1 + i32.eq + i32.eqz + if i32.const 0 - local.tee $8 - local.get $7 - local.get $8 - i32.gt_s - select - else - local.get $4 - local.tee $8 - local.get $6 - local.tee $7 - local.get $8 - local.get $7 - i32.lt_s - select + i32.const 544 + i32.const 603 + i32.const 3 + call $~lib/builtins/abort + unreachable end - local.set $4 - local.get $3 + local.get $5 + i32.const 4 i32.const 0 - i32.lt_s - if (result i32) - local.get $3 - local.get $6 - i32.add - local.tee $7 + call $~lib/typedarray/Uint8Array#indexOf + i32.const 4 + i32.const 4 + i32.sub + i32.eq + i32.eqz + if i32.const 0 - local.tee $8 - local.get $7 - local.get $8 - i32.gt_s - select - else - local.get $3 - local.tee $8 - local.get $6 - local.tee $7 - local.get $8 - local.get $7 - i32.lt_s - select + i32.const 544 + i32.const 604 + i32.const 3 + call $~lib/builtins/abort + unreachable end - local.set $3 - local.get $3 - local.get $4 + local.get $5 + i32.const 5 + i32.const 0 + call $~lib/typedarray/Uint8Array#indexOf + i32.const 5 + i32.const 4 i32.sub - local.tee $7 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 605 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $5 + i32.const 9 i32.const 0 - local.tee $8 - local.get $7 - local.get $8 - i32.gt_s - select - local.set $6 - global.get $~lib/memory/__stack_pointer + call $~lib/typedarray/Uint8Array#indexOf + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 606 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $5 + i32.const 10 i32.const 0 - local.get $6 - call $~lib/typedarray/Int32Array#constructor - local.tee $7 - i32.store offset=8 - local.get $7 - i32.load offset=4 + call $~lib/typedarray/Uint8Array#indexOf + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 607 + i32.const 3 + call $~lib/builtins/abort + unreachable + end local.get $5 - i32.load offset=4 - local.get $4 - i32.const 2 - i32.shl - i32.add - local.get $6 + i32.const 11 + i32.const 0 + call $~lib/typedarray/Uint8Array#indexOf + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 608 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $5 + i32.const 5 + i32.const 1 + call $~lib/typedarray/Uint8Array#indexOf + i32.const 5 + i32.const 4 + i32.sub + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 609 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $5 + i32.const 5 i32.const 2 - i32.shl - call $~lib/memory/memory.copy - local.get $7 - local.set $9 + call $~lib/typedarray/Uint8Array#indexOf + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 610 + i32.const 3 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $9 ) - (func $~lib/typedarray/Int32Array#copyWithin (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (func $~lib/typedarray/Uint8ClampedArray#indexOf (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) - (local $11 i32) - (local $12 i32) - (local $13 i32) - (local $14 i32) - (local $15 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 - global.get $~lib/memory/__stack_pointer - local.get $0 - local.tee $7 - i32.store - local.get $1 - local.set $6 - local.get $2 - local.set $5 - local.get $3 - local.set $4 - local.get $7 - local.set $15 - global.get $~lib/memory/__stack_pointer - local.get $15 - i32.store offset=4 - local.get $15 - call $~lib/typedarray/Int32Array#get:length - local.set $8 - local.get $7 - i32.load offset=4 - local.set $9 - local.get $4 - local.tee $10 - local.get $8 - local.tee $11 - local.get $10 - local.get $11 - i32.lt_s - select - local.set $4 - local.get $6 - i32.const 0 - i32.lt_s - if (result i32) - local.get $8 - local.get $6 - i32.add - local.tee $11 - i32.const 0 - local.tee $10 - local.get $11 - local.get $10 - i32.gt_s - select - else - local.get $6 - local.tee $10 - local.get $8 - local.tee $11 - local.get $10 - local.get $11 - i32.lt_s - select - end - local.set $10 - local.get $5 - i32.const 0 - i32.lt_s - if (result i32) - local.get $8 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8ClampedArray,u8>|inlined.0 (result i32) + local.get $0 + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + local.get $3 + local.set $6 local.get $5 - i32.add - local.tee $11 + call $~lib/typedarray/Uint8ClampedArray#get:length + local.set $7 + local.get $7 i32.const 0 - local.tee $12 - local.get $11 - local.get $12 - i32.gt_s - select - else - local.get $5 - local.tee $12 - local.get $8 - local.tee $11 - local.get $12 - local.get $11 - i32.lt_s - select - end - local.set $12 - local.get $4 - i32.const 0 - i32.lt_s - if (result i32) - local.get $8 - local.get $4 - i32.add - local.tee $11 + i32.eq + if (result i32) + i32.const 1 + else + local.get $6 + local.get $7 + i32.ge_s + end + if + i32.const -1 + br $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8ClampedArray,u8>|inlined.0 + end + local.get $6 i32.const 0 - local.tee $13 - local.get $11 - local.get $13 - i32.gt_s - select - else - local.get $4 - local.tee $13 - local.get $8 - local.tee $11 - local.get $13 - local.get $11 i32.lt_s - select + if + local.get $7 + local.get $6 + i32.add + local.tee $8 + i32.const 0 + local.tee $9 + local.get $8 + local.get $9 + i32.gt_s + select + local.set $6 + end + local.get $5 + i32.load offset=4 + local.set $8 + loop $while-continue|0 + local.get $6 + local.get $7 + i32.lt_s + local.set $9 + local.get $9 + if + local.get $8 + local.get $6 + i32.const 0 + i32.shl + i32.add + i32.load8_u + local.get $4 + i32.const 255 + i32.and + i32.eq + if + local.get $6 + br $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8ClampedArray,u8>|inlined.0 + end + local.get $6 + i32.const 1 + i32.add + local.set $6 + br $while-continue|0 + end + end + i32.const -1 end - local.set $13 - local.get $13 - local.get $12 - i32.sub - local.tee $11 - local.get $8 - local.get $10 - i32.sub - local.tee $14 - local.get $11 - local.get $14 - i32.lt_s - select - local.set $11 - local.get $9 - local.get $10 - i32.const 2 - i32.shl - i32.add - local.get $9 - local.get $12 - i32.const 2 - i32.shl - i32.add - local.get $11 - i32.const 2 - i32.shl - call $~lib/memory/memory.copy - local.get $7 - local.set $15 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $15 ) - (func $~lib/typedarray/Int8Array#reduce (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/typedarray/Uint8ClampedArray#lastIndexOf (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -13443,87 +14175,105 @@ (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 - 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 - global.get $~lib/memory/__stack_pointer - local.get $0 - local.tee $5 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - local.tee $4 - i32.store offset=4 - local.get $2 - local.set $3 - local.get $5 - i32.load offset=4 - local.set $6 - i32.const 0 - local.set $7 - local.get $5 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=8 - local.get $10 - call $~lib/typedarray/Int8Array#get:length - local.set $8 - loop $for-loop|0 + block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8ClampedArray,u8>|inlined.0 (result i32) + local.get $0 + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + local.get $3 + local.set $6 + local.get $5 + call $~lib/typedarray/Uint8ClampedArray#get:length + local.set $7 local.get $7 - local.get $8 + i32.const 0 + i32.eq + if + i32.const -1 + br $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8ClampedArray,u8>|inlined.0 + end + local.get $6 + i32.const 0 i32.lt_s - local.set $9 - local.get $9 if - local.get $3 - local.get $6 local.get $7 - i32.const 0 - i32.shl + local.get $6 i32.add - i32.load8_s - local.get $7 - local.get $5 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=12 - local.get $10 - i32.const 4 - global.set $~argumentsLength - local.get $4 - i32.load - call_indirect (type $i32_i32_i32_i32_=>_i32) - local.set $3 + local.set $6 + else + local.get $6 local.get $7 - i32.const 1 - i32.add - local.set $7 - br $for-loop|0 + i32.ge_s + if + local.get $7 + i32.const 1 + i32.sub + local.set $6 + end + end + local.get $5 + i32.load offset=4 + local.set $8 + loop $while-continue|0 + local.get $6 + i32.const 0 + i32.ge_s + local.set $9 + local.get $9 + if + local.get $8 + local.get $6 + i32.const 0 + i32.shl + i32.add + i32.load8_u + local.get $4 + i32.const 255 + i32.and + i32.eq + if + local.get $6 + br $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8ClampedArray,u8>|inlined.0 + end + local.get $6 + i32.const 1 + i32.sub + local.set $6 + br $while-continue|0 + end end + i32.const -1 end - local.get $3 - local.set $10 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $10 ) - (func $std/typedarray/testReduce<~lib/typedarray/Int8Array,i8> + (func $~lib/typedarray/Uint8ClampedArray#lastIndexOf@varargs (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + block $1of1 + block $0of1 + block $outOfRange + global.get $~argumentsLength + i32.const 1 + i32.sub + br_table $0of1 $1of1 $outOfRange + end + unreachable + end + local.get $0 + call $~lib/typedarray/Uint8ClampedArray#get:length + local.set $2 + end + local.get $0 + local.get $1 + local.get $2 + call $~lib/typedarray/Uint8ClampedArray#lastIndexOf + ) + (func $std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Uint8ClampedArray,u8> (local $0 i32) (local $1 i32) (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -13536,568 +14286,464 @@ i32.const 0 i32.store offset=8 global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 3 - call $~lib/typedarray/Int8Array#constructor + global.get $std/typedarray/testArrayIndexOfAndLastIndexOfValues local.tee $0 i32.store local.get $0 - local.set $2 + call $~lib/array/Array#get:length + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $2 + i32.const 0 + local.get $1 + call $~lib/typedarray/Uint8ClampedArray#constructor + local.tee $2 i32.store offset=4 + i32.const 0 + local.set $3 + loop $for-loop|0 + local.get $3 + local.get $1 + i32.lt_s + local.set $4 + local.get $4 + if + local.get $2 + local.get $3 + local.get $0 + local.get $3 + call $~lib/array/Array#__get + i32.const 255 + i32.and + call $~lib/typedarray/Uint8ClampedArray#__set + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $for-loop|0 + end + end local.get $2 i32.const 0 - i32.const 1 - call $~lib/typedarray/Int8Array#__set - local.get $0 - local.set $2 - global.get $~lib/memory/__stack_pointer + i32.const 0 + call $~lib/typedarray/Uint8ClampedArray#indexOf + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 580 + i32.const 3 + call $~lib/builtins/abort + unreachable + end local.get $2 - i32.store offset=4 + i32.const 11 + i32.const 0 + call $~lib/typedarray/Uint8ClampedArray#indexOf + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 581 + i32.const 3 + call $~lib/builtins/abort + unreachable + end local.get $2 - i32.const 1 - i32.const 2 - call $~lib/typedarray/Int8Array#__set - local.get $0 - local.set $2 - global.get $~lib/memory/__stack_pointer + i32.const -1 + i32.const 0 + call $~lib/typedarray/Uint8ClampedArray#indexOf + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 582 + i32.const 3 + call $~lib/builtins/abort + unreachable + end local.get $2 - i32.store offset=4 + i32.const 3 + i32.const 0 + call $~lib/typedarray/Uint8ClampedArray#indexOf + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 583 + i32.const 3 + call $~lib/builtins/abort + unreachable + end local.get $2 + i32.const 3 i32.const 2 + call $~lib/typedarray/Uint8ClampedArray#indexOf i32.const 3 - call $~lib/typedarray/Int8Array#__set - local.get $0 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 584 + i32.const 3 + call $~lib/builtins/abort + unreachable + end local.get $2 - i32.const 1872 - local.set $2 - global.get $~lib/memory/__stack_pointer + i32.const 3 + i32.const 3 + call $~lib/typedarray/Uint8ClampedArray#indexOf + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 585 + i32.const 3 + call $~lib/builtins/abort + unreachable + end local.get $2 - i32.store offset=8 + i32.const 3 + i32.const 4 + call $~lib/typedarray/Uint8ClampedArray#indexOf + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 586 + i32.const 3 + call $~lib/builtins/abort + unreachable + end local.get $2 - i32.const 0 - call $~lib/typedarray/Int8Array#reduce - local.set $1 - local.get $1 - i32.const 24 - i32.shl - i32.const 24 - i32.shr_s - i32.const 6 + i32.const 1 + i32.const 10 + call $~lib/typedarray/Uint8ClampedArray#indexOf + i32.const -1 i32.eq i32.eqz if i32.const 0 i32.const 544 - i32.const 323 + i32.const 587 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/Uint8Array#reduce (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 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 - global.get $~lib/memory/__stack_pointer - local.get $0 - local.tee $5 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - local.tee $4 - i32.store offset=4 local.get $2 - local.set $3 - local.get $5 - i32.load offset=4 - local.set $6 - i32.const 0 - local.set $7 - local.get $5 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=8 - local.get $10 - call $~lib/typedarray/Uint8Array#get:length - local.set $8 - loop $for-loop|0 - local.get $7 - local.get $8 - i32.lt_s - local.set $9 - local.get $9 - if - local.get $3 - local.get $6 - local.get $7 - i32.const 0 - i32.shl - i32.add - i32.load8_u - local.get $7 - local.get $5 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=12 - local.get $10 - i32.const 4 - global.set $~argumentsLength - local.get $4 - i32.load - call_indirect (type $i32_i32_i32_i32_=>_i32) - local.set $3 - local.get $7 - i32.const 1 - i32.add - local.set $7 - br $for-loop|0 - end + i32.const 1 + i32.const -100 + call $~lib/typedarray/Uint8ClampedArray#indexOf + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 588 + i32.const 3 + call $~lib/builtins/abort + unreachable end - local.get $3 - local.set $10 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $10 - ) - (func $std/typedarray/testReduce<~lib/typedarray/Uint8Array,u8> - (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 - 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 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 3 - call $~lib/typedarray/Uint8Array#constructor - local.tee $0 - i32.store - local.get $0 - 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 $~lib/typedarray/Uint8Array#__set - local.get $0 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 + global.set $~argumentsLength + i32.const 0 + call $~lib/typedarray/Uint8ClampedArray#lastIndexOf@varargs + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 590 + i32.const 3 + call $~lib/builtins/abort + unreachable + end local.get $2 + i32.const 11 i32.const 1 - i32.const 2 - call $~lib/typedarray/Uint8Array#__set - local.get $0 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 2 - i32.const 3 - call $~lib/typedarray/Uint8Array#__set - local.get $0 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 1904 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=8 - local.get $2 + global.set $~argumentsLength i32.const 0 - call $~lib/typedarray/Uint8Array#reduce - local.set $1 - local.get $1 - i32.const 255 - i32.and - i32.const 6 + call $~lib/typedarray/Uint8ClampedArray#lastIndexOf@varargs + i32.const -1 i32.eq i32.eqz if i32.const 0 i32.const 544 - i32.const 323 + i32.const 591 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/Uint8ClampedArray#reduce (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 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 - global.get $~lib/memory/__stack_pointer - local.get $0 - local.tee $5 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - local.tee $4 - i32.store offset=4 local.get $2 - local.set $3 - local.get $5 - i32.load offset=4 - local.set $6 + i32.const -1 + i32.const 1 + global.set $~argumentsLength i32.const 0 - local.set $7 - local.get $5 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=8 - local.get $10 - call $~lib/typedarray/Uint8ClampedArray#get:length - local.set $8 - loop $for-loop|0 - local.get $7 - local.get $8 - i32.lt_s - local.set $9 - local.get $9 - if - local.get $3 - local.get $6 - local.get $7 - i32.const 0 - i32.shl - i32.add - i32.load8_u - local.get $7 - local.get $5 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=12 - local.get $10 - i32.const 4 - global.set $~argumentsLength - local.get $4 - i32.load - call_indirect (type $i32_i32_i32_i32_=>_i32) - local.set $3 - local.get $7 - i32.const 1 - i32.add - local.set $7 - br $for-loop|0 - end + call $~lib/typedarray/Uint8ClampedArray#lastIndexOf@varargs + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 592 + i32.const 3 + call $~lib/builtins/abort + unreachable end - local.get $3 - local.set $10 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $10 - ) - (func $std/typedarray/testReduce<~lib/typedarray/Uint8ClampedArray,u8> - (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 - 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 - global.get $~lib/memory/__stack_pointer + local.get $2 + i32.const 3 + i32.const 1 + global.set $~argumentsLength i32.const 0 + call $~lib/typedarray/Uint8ClampedArray#lastIndexOf@varargs i32.const 3 - call $~lib/typedarray/Uint8ClampedArray#constructor - local.tee $0 - i32.store - local.get $0 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 593 + i32.const 3 + call $~lib/builtins/abort + unreachable + end local.get $2 - i32.const 0 - i32.const 1 - call $~lib/typedarray/Uint8ClampedArray#__set - local.get $0 - local.set $2 - global.get $~lib/memory/__stack_pointer + i32.const 3 + i32.const 4 + call $~lib/typedarray/Uint8ClampedArray#lastIndexOf + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 594 + i32.const 3 + call $~lib/builtins/abort + unreachable + end local.get $2 - i32.store offset=4 + i32.const 3 + i32.const 3 + call $~lib/typedarray/Uint8ClampedArray#lastIndexOf + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 595 + i32.const 3 + call $~lib/builtins/abort + unreachable + end local.get $2 - i32.const 1 + i32.const 3 i32.const 2 - call $~lib/typedarray/Uint8ClampedArray#__set - local.get $0 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 + call $~lib/typedarray/Uint8ClampedArray#lastIndexOf + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 596 + i32.const 3 + call $~lib/builtins/abort + unreachable + end local.get $2 - i32.const 2 - i32.const 3 - call $~lib/typedarray/Uint8ClampedArray#__set - local.get $0 - local.set $2 - global.get $~lib/memory/__stack_pointer + i32.const 1 + i32.const 100 + call $~lib/typedarray/Uint8ClampedArray#lastIndexOf + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 597 + i32.const 3 + call $~lib/builtins/abort + unreachable + end local.get $2 - i32.store offset=4 + i32.const 1 + i32.const -10 + call $~lib/typedarray/Uint8ClampedArray#lastIndexOf + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 598 + i32.const 3 + call $~lib/builtins/abort + unreachable + end local.get $2 - i32.const 1936 - local.set $2 + i32.const 1 + i32.const -11 + call $~lib/typedarray/Uint8ClampedArray#lastIndexOf + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 599 + i32.const 3 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer local.get $2 + i32.const 4 + i32.const 9 + call $~lib/typedarray/Uint8ClampedArray#subarray + local.tee $5 i32.store offset=8 - local.get $2 + local.get $5 + i32.const 3 i32.const 0 - call $~lib/typedarray/Uint8ClampedArray#reduce - local.set $1 - local.get $1 - i32.const 255 - i32.and - i32.const 6 + call $~lib/typedarray/Uint8ClampedArray#indexOf + i32.const -1 i32.eq i32.eqz if i32.const 0 i32.const 544 - i32.const 323 + i32.const 603 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/Int16Array#reduce (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 16 + local.get $5 + i32.const 4 + i32.const 0 + call $~lib/typedarray/Uint8ClampedArray#indexOf + i32.const 4 + i32.const 4 i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - local.tee $5 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - local.tee $4 - i32.store offset=4 - local.get $2 - local.set $3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 604 + i32.const 3 + call $~lib/builtins/abort + unreachable + end local.get $5 - i32.load offset=4 - local.set $6 + i32.const 5 i32.const 0 - local.set $7 + call $~lib/typedarray/Uint8ClampedArray#indexOf + i32.const 5 + i32.const 4 + i32.sub + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 605 + i32.const 3 + call $~lib/builtins/abort + unreachable + end local.get $5 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=8 - local.get $10 - call $~lib/typedarray/Int16Array#get:length - local.set $8 - loop $for-loop|0 - local.get $7 - local.get $8 - i32.lt_s - local.set $9 - local.get $9 - if - local.get $3 - local.get $6 - local.get $7 - i32.const 1 - i32.shl - i32.add - i32.load16_s - local.get $7 - local.get $5 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=12 - local.get $10 - i32.const 4 - global.set $~argumentsLength - local.get $4 - i32.load - call_indirect (type $i32_i32_i32_i32_=>_i32) - local.set $3 - local.get $7 - i32.const 1 - i32.add - local.set $7 - br $for-loop|0 - end - end - local.get $3 - local.set $10 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $10 - ) - (func $std/typedarray/testReduce<~lib/typedarray/Int16Array,i16> - (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 - call $~stack_check - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer + i32.const 9 i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer + call $~lib/typedarray/Uint8ClampedArray#indexOf + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 606 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $5 + i32.const 10 i32.const 0 - i32.const 3 - call $~lib/typedarray/Int16Array#constructor - local.tee $0 - i32.store - local.get $0 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 + call $~lib/typedarray/Uint8ClampedArray#indexOf + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 607 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $5 + i32.const 11 i32.const 0 + call $~lib/typedarray/Uint8ClampedArray#indexOf + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 608 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $5 + i32.const 5 i32.const 1 - call $~lib/typedarray/Int16Array#__set - local.get $0 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 1 - i32.const 2 - call $~lib/typedarray/Int16Array#__set - local.get $0 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 + call $~lib/typedarray/Uint8ClampedArray#indexOf + i32.const 5 + i32.const 4 + i32.sub + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 609 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $5 + i32.const 5 i32.const 2 - i32.const 3 - call $~lib/typedarray/Int16Array#__set - local.get $0 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 1968 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=8 - local.get $2 - i32.const 0 - call $~lib/typedarray/Int16Array#reduce - local.set $1 - local.get $1 - i32.const 16 - i32.shl - i32.const 16 - i32.shr_s - i32.const 6 + call $~lib/typedarray/Uint8ClampedArray#indexOf + i32.const -1 i32.eq i32.eqz if i32.const 0 i32.const 544 - i32.const 323 + i32.const 610 i32.const 3 call $~lib/builtins/abort unreachable @@ -14107,7 +14753,7 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/typedarray/Uint16Array#reduce (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/typedarray/Int16Array#indexOf (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -14115,87 +14761,193 @@ (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 - 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 - global.get $~lib/memory/__stack_pointer - local.get $0 - local.tee $5 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - local.tee $4 - i32.store offset=4 - local.get $2 - local.set $3 - local.get $5 - i32.load offset=4 - local.set $6 - i32.const 0 - local.set $7 - local.get $5 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=8 - local.get $10 - call $~lib/typedarray/Uint16Array#get:length - local.set $8 - loop $for-loop|0 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.0 (result i32) + local.get $0 + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + local.get $3 + local.set $6 + local.get $5 + call $~lib/typedarray/Int16Array#get:length + local.set $7 local.get $7 - local.get $8 + i32.const 0 + i32.eq + if (result i32) + i32.const 1 + else + local.get $6 + local.get $7 + i32.ge_s + end + if + i32.const -1 + br $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.0 + end + local.get $6 + i32.const 0 i32.lt_s - local.set $9 - local.get $9 if - local.get $3 - local.get $6 local.get $7 - i32.const 1 - i32.shl + local.get $6 i32.add - i32.load16_u + local.tee $8 + i32.const 0 + local.tee $9 + local.get $8 + local.get $9 + i32.gt_s + select + local.set $6 + end + local.get $5 + i32.load offset=4 + local.set $8 + loop $while-continue|0 + local.get $6 local.get $7 - local.get $5 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=12 - local.get $10 - i32.const 4 - global.set $~argumentsLength - local.get $4 - i32.load - call_indirect (type $i32_i32_i32_i32_=>_i32) - local.set $3 + i32.lt_s + local.set $9 + local.get $9 + if + local.get $8 + local.get $6 + i32.const 1 + i32.shl + i32.add + i32.load16_s + local.get $4 + i32.const 16 + i32.shl + i32.const 16 + i32.shr_s + i32.eq + if + local.get $6 + br $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.0 + end + local.get $6 + i32.const 1 + i32.add + local.set $6 + br $while-continue|0 + end + end + i32.const -1 + end + ) + (func $~lib/typedarray/Int16Array#lastIndexOf (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) + block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.0 (result i32) + local.get $0 + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + local.get $3 + local.set $6 + local.get $5 + call $~lib/typedarray/Int16Array#get:length + local.set $7 + local.get $7 + i32.const 0 + i32.eq + if + i32.const -1 + br $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.0 + end + local.get $6 + i32.const 0 + i32.lt_s + if local.get $7 - i32.const 1 + local.get $6 i32.add - local.set $7 - br $for-loop|0 + local.set $6 + else + local.get $6 + local.get $7 + i32.ge_s + if + local.get $7 + i32.const 1 + i32.sub + local.set $6 + end + end + local.get $5 + i32.load offset=4 + local.set $8 + loop $while-continue|0 + local.get $6 + i32.const 0 + i32.ge_s + local.set $9 + local.get $9 + if + local.get $8 + local.get $6 + i32.const 1 + i32.shl + i32.add + i32.load16_s + local.get $4 + i32.const 16 + i32.shl + i32.const 16 + i32.shr_s + i32.eq + if + local.get $6 + br $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.0 + end + local.get $6 + i32.const 1 + i32.sub + local.set $6 + br $while-continue|0 + end end + i32.const -1 end - local.get $3 - local.set $10 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $10 ) - (func $std/typedarray/testReduce<~lib/typedarray/Uint16Array,u16> + (func $~lib/typedarray/Int16Array#lastIndexOf@varargs (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + block $1of1 + block $0of1 + block $outOfRange + global.get $~argumentsLength + i32.const 1 + i32.sub + br_table $0of1 $1of1 $outOfRange + end + unreachable + end + local.get $0 + call $~lib/typedarray/Int16Array#get:length + local.set $2 + end + local.get $0 + local.get $1 + local.get $2 + call $~lib/typedarray/Int16Array#lastIndexOf + ) + (func $std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Int16Array,i16> (local $0 i32) (local $1 i32) (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -14208,559 +14960,466 @@ i32.const 0 i32.store offset=8 global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 3 - call $~lib/typedarray/Uint16Array#constructor + global.get $std/typedarray/testArrayIndexOfAndLastIndexOfValues local.tee $0 i32.store local.get $0 - local.set $2 + call $~lib/array/Array#get:length + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 i32.const 0 - i32.const 1 - call $~lib/typedarray/Uint16Array#__set - local.get $0 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 1 - i32.const 2 - call $~lib/typedarray/Uint16Array#__set - local.get $0 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 2 - i32.const 3 - call $~lib/typedarray/Uint16Array#__set - local.get $0 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 + call $~lib/typedarray/Int16Array#constructor + local.tee $2 i32.store offset=4 + i32.const 0 + local.set $3 + loop $for-loop|0 + local.get $3 + local.get $1 + i32.lt_s + local.set $4 + local.get $4 + if + local.get $2 + local.get $3 + local.get $0 + local.get $3 + call $~lib/array/Array#__get + i32.const 16 + i32.shl + i32.const 16 + i32.shr_s + call $~lib/typedarray/Int16Array#__set + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $for-loop|0 + end + end local.get $2 - i32.const 2000 - local.set $2 - global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 0 + call $~lib/typedarray/Int16Array#indexOf + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 580 + i32.const 3 + call $~lib/builtins/abort + unreachable + end local.get $2 - i32.store offset=8 + i32.const 11 + i32.const 0 + call $~lib/typedarray/Int16Array#indexOf + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 581 + i32.const 3 + call $~lib/builtins/abort + unreachable + end local.get $2 + i32.const -1 i32.const 0 - call $~lib/typedarray/Uint16Array#reduce - local.set $1 - local.get $1 - i32.const 65535 - i32.and - i32.const 6 + call $~lib/typedarray/Int16Array#indexOf + i32.const -1 i32.eq i32.eqz if i32.const 0 i32.const 544 - i32.const 323 + i32.const 582 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#reduce (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 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 - global.get $~lib/memory/__stack_pointer - local.get $0 - local.tee $5 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - local.tee $4 - i32.store offset=4 local.get $2 - local.set $3 - local.get $5 - i32.load offset=4 - local.set $6 - i32.const 0 - local.set $7 - local.get $5 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=8 - local.get $10 - call $~lib/typedarray/Int32Array#get:length - local.set $8 - loop $for-loop|0 - local.get $7 - local.get $8 - i32.lt_s - local.set $9 - local.get $9 - if - local.get $3 - local.get $6 - local.get $7 - i32.const 2 - i32.shl - i32.add - i32.load - local.get $7 - local.get $5 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=12 - local.get $10 - i32.const 4 - global.set $~argumentsLength - local.get $4 - i32.load - call_indirect (type $i32_i32_i32_i32_=>_i32) - local.set $3 - local.get $7 - i32.const 1 - i32.add - local.set $7 - br $for-loop|0 - end - end - local.get $3 - local.set $10 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $10 - ) - (func $std/typedarray/testReduce<~lib/typedarray/Int32Array,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 - 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 - global.get $~lib/memory/__stack_pointer - i32.const 0 i32.const 3 - call $~lib/typedarray/Int32Array#constructor - local.tee $0 - i32.store - local.get $0 - 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 $~lib/typedarray/Int32Array#__set - local.get $0 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 + call $~lib/typedarray/Int16Array#indexOf + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 583 + i32.const 3 + call $~lib/builtins/abort + unreachable + end local.get $2 - i32.const 1 + i32.const 3 i32.const 2 - call $~lib/typedarray/Int32Array#__set - local.get $0 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 + call $~lib/typedarray/Int16Array#indexOf + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 584 + i32.const 3 + call $~lib/builtins/abort + unreachable + end local.get $2 - i32.const 2 i32.const 3 - call $~lib/typedarray/Int32Array#__set - local.get $0 - local.set $2 - global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Int16Array#indexOf + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 585 + i32.const 3 + call $~lib/builtins/abort + unreachable + end local.get $2 - i32.store offset=4 + i32.const 3 + i32.const 4 + call $~lib/typedarray/Int16Array#indexOf + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 586 + i32.const 3 + call $~lib/builtins/abort + unreachable + end local.get $2 - i32.const 2032 - local.set $2 - global.get $~lib/memory/__stack_pointer + i32.const 1 + i32.const 10 + call $~lib/typedarray/Int16Array#indexOf + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 587 + i32.const 3 + call $~lib/builtins/abort + unreachable + end local.get $2 - i32.store offset=8 + i32.const 1 + i32.const -100 + call $~lib/typedarray/Int16Array#indexOf + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 588 + i32.const 3 + call $~lib/builtins/abort + unreachable + end local.get $2 i32.const 0 - call $~lib/typedarray/Int32Array#reduce - local.set $1 - local.get $1 - i32.const 6 + i32.const 1 + global.set $~argumentsLength + i32.const 0 + call $~lib/typedarray/Int16Array#lastIndexOf@varargs + i32.const 0 i32.eq i32.eqz if i32.const 0 i32.const 544 - i32.const 323 + i32.const 590 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/Uint32Array#reduce (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 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 - global.get $~lib/memory/__stack_pointer - local.get $0 - local.tee $5 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - local.tee $4 - i32.store offset=4 local.get $2 - local.set $3 - local.get $5 - i32.load offset=4 - local.set $6 + i32.const 11 + i32.const 1 + global.set $~argumentsLength i32.const 0 - local.set $7 - local.get $5 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=8 - local.get $10 - call $~lib/typedarray/Uint32Array#get:length - local.set $8 - loop $for-loop|0 - local.get $7 - local.get $8 - i32.lt_s - local.set $9 - local.get $9 - if - local.get $3 - local.get $6 - local.get $7 - i32.const 2 - i32.shl - i32.add - i32.load - local.get $7 - local.get $5 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=12 - local.get $10 - i32.const 4 - global.set $~argumentsLength - local.get $4 - i32.load - call_indirect (type $i32_i32_i32_i32_=>_i32) - local.set $3 - local.get $7 - i32.const 1 - i32.add - local.set $7 - br $for-loop|0 - end + call $~lib/typedarray/Int16Array#lastIndexOf@varargs + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 591 + i32.const 3 + call $~lib/builtins/abort + unreachable end - local.get $3 - local.set $10 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $10 - ) - (func $std/typedarray/testReduce<~lib/typedarray/Uint32Array,u32> - (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 - call $~stack_check - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer + local.get $2 + i32.const -1 + i32.const 1 + global.set $~argumentsLength i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer + call $~lib/typedarray/Int16Array#lastIndexOf@varargs + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 592 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 3 + i32.const 1 + global.set $~argumentsLength i32.const 0 + call $~lib/typedarray/Int16Array#lastIndexOf@varargs i32.const 3 - call $~lib/typedarray/Uint32Array#constructor - local.tee $0 - i32.store - local.get $0 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 593 + i32.const 3 + call $~lib/builtins/abort + unreachable + end local.get $2 - i32.const 0 - i32.const 1 - call $~lib/typedarray/Uint32Array#__set - local.get $0 - local.set $2 - global.get $~lib/memory/__stack_pointer + i32.const 3 + i32.const 4 + call $~lib/typedarray/Int16Array#lastIndexOf + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 594 + i32.const 3 + call $~lib/builtins/abort + unreachable + end local.get $2 - i32.store offset=4 + i32.const 3 + i32.const 3 + call $~lib/typedarray/Int16Array#lastIndexOf + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 595 + i32.const 3 + call $~lib/builtins/abort + unreachable + end local.get $2 - i32.const 1 + i32.const 3 i32.const 2 - call $~lib/typedarray/Uint32Array#__set - local.get $0 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 + call $~lib/typedarray/Int16Array#lastIndexOf + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 596 + i32.const 3 + call $~lib/builtins/abort + unreachable + end local.get $2 - i32.const 2 - i32.const 3 - call $~lib/typedarray/Uint32Array#__set - local.get $0 - local.set $2 - global.get $~lib/memory/__stack_pointer + i32.const 1 + i32.const 100 + call $~lib/typedarray/Int16Array#lastIndexOf + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 597 + i32.const 3 + call $~lib/builtins/abort + unreachable + end local.get $2 - i32.store offset=4 + i32.const 1 + i32.const -10 + call $~lib/typedarray/Int16Array#lastIndexOf + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 598 + i32.const 3 + call $~lib/builtins/abort + unreachable + end local.get $2 - i32.const 2064 - local.set $2 + i32.const 1 + i32.const -11 + call $~lib/typedarray/Int16Array#lastIndexOf + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 599 + i32.const 3 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer local.get $2 + i32.const 4 + i32.const 9 + call $~lib/typedarray/Int16Array#subarray + local.tee $5 i32.store offset=8 - local.get $2 + local.get $5 + i32.const 3 i32.const 0 - call $~lib/typedarray/Uint32Array#reduce - local.set $1 - local.get $1 - i32.const 6 + call $~lib/typedarray/Int16Array#indexOf + i32.const -1 i32.eq i32.eqz if i32.const 0 i32.const 544 - i32.const 323 + i32.const 603 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#reduce (param $0 i32) (param $1 i32) (param $2 i64) (result i64) - (local $3 i64) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - (local $10 i32) - (local $11 i64) - 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 - global.get $~lib/memory/__stack_pointer - local.get $0 - local.tee $5 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - local.tee $4 - i32.store offset=4 - local.get $2 - local.set $3 local.get $5 - i32.load offset=4 - local.set $6 + i32.const 4 i32.const 0 - local.set $7 - local.get $5 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=8 - local.get $10 - call $~lib/typedarray/Int64Array#get:length - local.set $8 - loop $for-loop|0 - local.get $7 - local.get $8 - i32.lt_s - local.set $9 - local.get $9 - if - local.get $3 - local.get $6 - local.get $7 - i32.const 3 - i32.shl - i32.add - i64.load - local.get $7 - local.get $5 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=12 - local.get $10 - i32.const 4 - global.set $~argumentsLength - local.get $4 - i32.load - call_indirect (type $i64_i64_i32_i32_=>_i64) - local.set $3 - local.get $7 - i32.const 1 - i32.add - local.set $7 - br $for-loop|0 - end + call $~lib/typedarray/Int16Array#indexOf + i32.const 4 + i32.const 4 + i32.sub + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 604 + i32.const 3 + call $~lib/builtins/abort + unreachable end - local.get $3 - local.set $11 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $11 - ) - (func $std/typedarray/testReduce<~lib/typedarray/Int64Array,i64> - (local $0 i32) - (local $1 i64) - (local $2 i32) - global.get $~lib/memory/__stack_pointer - i32.const 12 + local.get $5 + i32.const 5 + i32.const 0 + call $~lib/typedarray/Int16Array#indexOf + i32.const 5 + 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.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 605 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $5 + i32.const 9 i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer + call $~lib/typedarray/Int16Array#indexOf + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 606 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $5 + i32.const 10 i32.const 0 - i32.const 3 - call $~lib/typedarray/Int64Array#constructor - local.tee $0 - i32.store - local.get $0 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 + call $~lib/typedarray/Int16Array#indexOf + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 607 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $5 + i32.const 11 i32.const 0 - i64.const 1 - call $~lib/typedarray/Int64Array#__set - local.get $0 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 + call $~lib/typedarray/Int16Array#indexOf + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 608 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $5 + i32.const 5 i32.const 1 - i64.const 2 - call $~lib/typedarray/Int64Array#__set - local.get $0 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 + call $~lib/typedarray/Int16Array#indexOf + i32.const 5 + i32.const 4 + i32.sub + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 609 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $5 + i32.const 5 i32.const 2 - i64.const 3 - call $~lib/typedarray/Int64Array#__set - local.get $0 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 2096 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=8 - local.get $2 - i64.const 0 - call $~lib/typedarray/Int64Array#reduce - local.set $1 - local.get $1 - i64.const 6 - i64.eq + call $~lib/typedarray/Int16Array#indexOf + i32.const -1 + i32.eq i32.eqz if i32.const 0 i32.const 544 - i32.const 323 + i32.const 610 i32.const 3 call $~lib/builtins/abort unreachable @@ -14770,96 +15429,197 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/typedarray/Uint64Array#reduce (param $0 i32) (param $1 i32) (param $2 i64) (result i64) - (local $3 i64) + (func $~lib/typedarray/Uint16Array#indexOf (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) - (local $11 i64) - 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 - global.get $~lib/memory/__stack_pointer - local.get $0 - local.tee $5 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - local.tee $4 - i32.store offset=4 - local.get $2 - local.set $3 - local.get $5 - i32.load offset=4 - local.set $6 - i32.const 0 - local.set $7 - local.get $5 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=8 - local.get $10 - call $~lib/typedarray/Uint64Array#get:length - local.set $8 - loop $for-loop|0 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.0 (result i32) + local.get $0 + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + local.get $3 + local.set $6 + local.get $5 + call $~lib/typedarray/Uint16Array#get:length + local.set $7 local.get $7 - local.get $8 + i32.const 0 + i32.eq + if (result i32) + i32.const 1 + else + local.get $6 + local.get $7 + i32.ge_s + end + if + i32.const -1 + br $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.0 + end + local.get $6 + i32.const 0 i32.lt_s - local.set $9 - local.get $9 if - local.get $3 - local.get $6 local.get $7 - i32.const 3 - i32.shl + local.get $6 i32.add - i64.load + local.tee $8 + i32.const 0 + local.tee $9 + local.get $8 + local.get $9 + i32.gt_s + select + local.set $6 + end + local.get $5 + i32.load offset=4 + local.set $8 + loop $while-continue|0 + local.get $6 local.get $7 - local.get $5 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=12 - local.get $10 - i32.const 4 - global.set $~argumentsLength - local.get $4 - i32.load - call_indirect (type $i64_i64_i32_i32_=>_i64) - local.set $3 + i32.lt_s + local.set $9 + local.get $9 + if + local.get $8 + local.get $6 + i32.const 1 + i32.shl + i32.add + i32.load16_u + local.get $4 + i32.const 65535 + i32.and + i32.eq + if + local.get $6 + br $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.0 + end + local.get $6 + i32.const 1 + i32.add + local.set $6 + br $while-continue|0 + end + end + i32.const -1 + end + ) + (func $~lib/typedarray/Uint16Array#lastIndexOf (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) + block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.0 (result i32) + local.get $0 + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + local.get $3 + local.set $6 + local.get $5 + call $~lib/typedarray/Uint16Array#get:length + local.set $7 + local.get $7 + i32.const 0 + i32.eq + if + i32.const -1 + br $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.0 + end + local.get $6 + i32.const 0 + i32.lt_s + if local.get $7 - i32.const 1 + local.get $6 i32.add - local.set $7 - br $for-loop|0 + local.set $6 + else + local.get $6 + local.get $7 + i32.ge_s + if + local.get $7 + i32.const 1 + i32.sub + local.set $6 + end + end + local.get $5 + i32.load offset=4 + local.set $8 + loop $while-continue|0 + local.get $6 + i32.const 0 + i32.ge_s + local.set $9 + local.get $9 + if + local.get $8 + local.get $6 + i32.const 1 + i32.shl + i32.add + i32.load16_u + local.get $4 + i32.const 65535 + i32.and + i32.eq + if + local.get $6 + br $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.0 + end + local.get $6 + i32.const 1 + i32.sub + local.set $6 + br $while-continue|0 + end end + i32.const -1 end - local.get $3 - local.set $11 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $11 ) - (func $std/typedarray/testReduce<~lib/typedarray/Uint64Array,u64> + (func $~lib/typedarray/Uint16Array#lastIndexOf@varargs (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + block $1of1 + block $0of1 + block $outOfRange + global.get $~argumentsLength + i32.const 1 + i32.sub + br_table $0of1 $1of1 $outOfRange + end + unreachable + end + local.get $0 + call $~lib/typedarray/Uint16Array#get:length + local.set $2 + end + local.get $0 + local.get $1 + local.get $2 + call $~lib/typedarray/Uint16Array#lastIndexOf + ) + (func $std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Uint16Array,u16> (local $0 i32) - (local $1 i64) + (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 @@ -14872,1149 +15632,662 @@ i32.const 0 i32.store offset=8 global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 3 - call $~lib/typedarray/Uint64Array#constructor + global.get $std/typedarray/testArrayIndexOfAndLastIndexOfValues local.tee $0 i32.store local.get $0 - local.set $2 + call $~lib/array/Array#get:length + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $2 + i32.const 0 + local.get $1 + call $~lib/typedarray/Uint16Array#constructor + local.tee $2 i32.store offset=4 + i32.const 0 + local.set $3 + loop $for-loop|0 + local.get $3 + local.get $1 + i32.lt_s + local.set $4 + local.get $4 + if + local.get $2 + local.get $3 + local.get $0 + local.get $3 + call $~lib/array/Array#__get + i32.const 65535 + i32.and + call $~lib/typedarray/Uint16Array#__set + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $for-loop|0 + end + end local.get $2 i32.const 0 - i64.const 1 - call $~lib/typedarray/Uint64Array#__set - local.get $0 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 1 - i64.const 2 - call $~lib/typedarray/Uint64Array#__set - local.get $0 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 2 - i64.const 3 - call $~lib/typedarray/Uint64Array#__set - local.get $0 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 2128 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=8 - local.get $2 - i64.const 0 - call $~lib/typedarray/Uint64Array#reduce - local.set $1 - local.get $1 - i64.const 6 - i64.eq + i32.const 0 + call $~lib/typedarray/Uint16Array#indexOf + i32.const 0 + i32.eq i32.eqz if i32.const 0 i32.const 544 - i32.const 323 + i32.const 580 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/Float32Array#reduce (param $0 i32) (param $1 i32) (param $2 f32) (result f32) - (local $3 f32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - (local $10 i32) - (local $11 f32) - 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 - global.get $~lib/memory/__stack_pointer - local.get $0 - local.tee $5 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - local.tee $4 - i32.store offset=4 local.get $2 - local.set $3 - local.get $5 - i32.load offset=4 - local.set $6 + i32.const 11 i32.const 0 - local.set $7 - local.get $5 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=8 - local.get $10 - call $~lib/typedarray/Float32Array#get:length - local.set $8 - loop $for-loop|0 - local.get $7 - local.get $8 - i32.lt_s - local.set $9 - local.get $9 - if - local.get $3 - local.get $6 - local.get $7 - i32.const 2 - i32.shl - i32.add - f32.load - local.get $7 - local.get $5 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=12 - local.get $10 - i32.const 4 - global.set $~argumentsLength - local.get $4 - i32.load - call_indirect (type $f32_f32_i32_i32_=>_f32) - local.set $3 - local.get $7 - i32.const 1 - i32.add - local.set $7 - br $for-loop|0 - end + call $~lib/typedarray/Uint16Array#indexOf + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 581 + i32.const 3 + call $~lib/builtins/abort + unreachable end - local.get $3 - local.set $11 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $11 - ) - (func $std/typedarray/testReduce<~lib/typedarray/Float32Array,f32> - (local $0 i32) - (local $1 f32) - (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 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 3 - call $~lib/typedarray/Float32Array#constructor - local.tee $0 - i32.store - local.get $0 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 local.get $2 + i32.const -1 i32.const 0 - f32.const 1 - call $~lib/typedarray/Float32Array#__set - local.get $0 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 1 - f32.const 2 - call $~lib/typedarray/Float32Array#__set - local.get $0 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 2 - f32.const 3 - call $~lib/typedarray/Float32Array#__set - local.get $0 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - 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=8 - local.get $2 - f32.const 0 - call $~lib/typedarray/Float32Array#reduce - local.set $1 - local.get $1 - f32.const 6 - f32.eq + call $~lib/typedarray/Uint16Array#indexOf + i32.const -1 + i32.eq i32.eqz if i32.const 0 i32.const 544 - i32.const 323 + i32.const 582 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/Float64Array#reduce (param $0 i32) (param $1 i32) (param $2 f64) (result f64) - (local $3 f64) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - (local $10 i32) - (local $11 f64) - 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 - global.get $~lib/memory/__stack_pointer - local.get $0 - local.tee $5 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - local.tee $4 - i32.store offset=4 local.get $2 - local.set $3 - local.get $5 - i32.load offset=4 - local.set $6 - i32.const 0 - local.set $7 - local.get $5 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=8 - local.get $10 - call $~lib/typedarray/Float64Array#get:length - local.set $8 - loop $for-loop|0 - local.get $7 - local.get $8 - i32.lt_s - local.set $9 - local.get $9 - if - local.get $3 - local.get $6 - local.get $7 - i32.const 3 - i32.shl - i32.add - f64.load - local.get $7 - local.get $5 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=12 - local.get $10 - i32.const 4 - global.set $~argumentsLength - local.get $4 - i32.load - call_indirect (type $f64_f64_i32_i32_=>_f64) - local.set $3 - local.get $7 - i32.const 1 - i32.add - local.set $7 - br $for-loop|0 - end - end - local.get $3 - local.set $11 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $11 - ) - (func $std/typedarray/testReduce<~lib/typedarray/Float64Array,f64> - (local $0 i32) - (local $1 f64) - (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 - global.get $~lib/memory/__stack_pointer - i32.const 0 i32.const 3 - call $~lib/typedarray/Float64Array#constructor - local.tee $0 - i32.store - local.get $0 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 i32.const 0 - f64.const 1 - call $~lib/typedarray/Float64Array#__set - local.get $0 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 1 - f64.const 2 - call $~lib/typedarray/Float64Array#__set - local.get $0 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 + call $~lib/typedarray/Uint16Array#indexOf + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 583 + i32.const 3 + call $~lib/builtins/abort + unreachable + end local.get $2 + i32.const 3 i32.const 2 - f64.const 3 - call $~lib/typedarray/Float64Array#__set - local.get $0 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 2192 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=8 - local.get $2 - f64.const 0 - call $~lib/typedarray/Float64Array#reduce - local.set $1 - local.get $1 - f64.const 6 - f64.eq + call $~lib/typedarray/Uint16Array#indexOf + i32.const 3 + i32.eq i32.eqz if i32.const 0 i32.const 544 - i32.const 323 + i32.const 584 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/testAt<~lib/typedarray/Int8Array,i8> - (local $0 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 - global.get $~lib/memory/__stack_pointer - i32.const 0 + local.get $2 i32.const 3 - call $~lib/typedarray/Int8Array#constructor - local.tee $0 - i32.store - local.get $0 - 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/typedarray/Int8Array#__set - local.get $0 - local.set $1 - 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 - local.get $0 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 2 i32.const 3 - call $~lib/typedarray/Int8Array#__set - local.get $0 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 0 - call $~lib/typedarray/Int8Array#at - i32.const 1 + call $~lib/typedarray/Uint16Array#indexOf + i32.const 3 i32.eq i32.eqz if i32.const 0 i32.const 544 - i32.const 344 + i32.const 585 i32.const 3 call $~lib/builtins/abort unreachable end - local.get $0 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const -1 - call $~lib/typedarray/Int8Array#at + local.get $2 i32.const 3 + i32.const 4 + call $~lib/typedarray/Uint16Array#indexOf + i32.const -1 i32.eq i32.eqz if i32.const 0 i32.const 544 - i32.const 345 + i32.const 586 i32.const 3 call $~lib/builtins/abort unreachable end - local.get $0 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const -3 - call $~lib/typedarray/Int8Array#at + local.get $2 i32.const 1 + i32.const 10 + call $~lib/typedarray/Uint16Array#indexOf + i32.const -1 i32.eq i32.eqz if i32.const 0 i32.const 544 - i32.const 346 + i32.const 587 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 - ) - (func $std/typedarray/testAt<~lib/typedarray/Uint8Array,u8> - (local $0 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 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 3 - call $~lib/typedarray/Uint8Array#constructor - local.tee $0 - i32.store - local.get $0 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 0 + local.get $2 i32.const 1 - call $~lib/typedarray/Uint8Array#__set - local.get $0 - local.set $1 - 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 - local.get $0 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 2 - i32.const 3 - call $~lib/typedarray/Uint8Array#__set - local.get $0 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 0 - call $~lib/typedarray/Uint8Array#at + i32.const -100 + call $~lib/typedarray/Uint16Array#indexOf i32.const 1 i32.eq i32.eqz if i32.const 0 i32.const 544 - i32.const 344 + i32.const 588 i32.const 3 call $~lib/builtins/abort unreachable end - local.get $0 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const -1 - call $~lib/typedarray/Uint8Array#at - i32.const 3 + local.get $2 + i32.const 0 + i32.const 1 + global.set $~argumentsLength + i32.const 0 + call $~lib/typedarray/Uint16Array#lastIndexOf@varargs + i32.const 0 i32.eq i32.eqz if i32.const 0 i32.const 544 - i32.const 345 + i32.const 590 i32.const 3 call $~lib/builtins/abort unreachable end - local.get $0 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const -3 - call $~lib/typedarray/Uint8Array#at + local.get $2 + i32.const 11 i32.const 1 + global.set $~argumentsLength + i32.const 0 + call $~lib/typedarray/Uint16Array#lastIndexOf@varargs + i32.const -1 i32.eq i32.eqz if i32.const 0 i32.const 544 - i32.const 346 + i32.const 591 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 - ) - (func $std/typedarray/testAt<~lib/typedarray/Uint8ClampedArray,u8> - (local $0 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 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 3 - call $~lib/typedarray/Uint8ClampedArray#constructor - local.tee $0 - i32.store - local.get $0 - 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/typedarray/Uint8ClampedArray#__set - local.get $0 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 + local.get $2 + i32.const -1 i32.const 1 - i32.const 2 - call $~lib/typedarray/Uint8ClampedArray#__set - local.get $0 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 2 - i32.const 3 - call $~lib/typedarray/Uint8ClampedArray#__set - local.get $0 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 + global.set $~argumentsLength i32.const 0 - call $~lib/typedarray/Uint8ClampedArray#at - i32.const 1 + call $~lib/typedarray/Uint16Array#lastIndexOf@varargs + i32.const -1 i32.eq i32.eqz if i32.const 0 i32.const 544 - i32.const 344 + i32.const 592 i32.const 3 call $~lib/builtins/abort unreachable end - local.get $0 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const -1 - call $~lib/typedarray/Uint8ClampedArray#at + local.get $2 + i32.const 3 + i32.const 1 + global.set $~argumentsLength + i32.const 0 + call $~lib/typedarray/Uint16Array#lastIndexOf@varargs i32.const 3 i32.eq i32.eqz if i32.const 0 i32.const 544 - i32.const 345 + i32.const 593 i32.const 3 call $~lib/builtins/abort unreachable end - local.get $0 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const -3 - call $~lib/typedarray/Uint8ClampedArray#at - i32.const 1 + local.get $2 + i32.const 3 + i32.const 4 + call $~lib/typedarray/Uint16Array#lastIndexOf + i32.const 3 i32.eq i32.eqz if i32.const 0 i32.const 544 - i32.const 346 + i32.const 594 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 - ) - (func $std/typedarray/testAt<~lib/typedarray/Int16Array,i16> - (local $0 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 - global.get $~lib/memory/__stack_pointer - i32.const 0 + local.get $2 i32.const 3 - call $~lib/typedarray/Int16Array#constructor - local.tee $0 - i32.store - local.get $0 - 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/typedarray/Int16Array#__set - local.get $0 - local.set $1 - 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 - local.get $0 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 2 i32.const 3 - call $~lib/typedarray/Int16Array#__set - local.get $0 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 0 - call $~lib/typedarray/Int16Array#at - i32.const 1 + call $~lib/typedarray/Uint16Array#lastIndexOf + i32.const 3 i32.eq i32.eqz if i32.const 0 i32.const 544 - i32.const 344 + i32.const 595 i32.const 3 call $~lib/builtins/abort unreachable end - local.get $0 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const -1 - call $~lib/typedarray/Int16Array#at + local.get $2 i32.const 3 + i32.const 2 + call $~lib/typedarray/Uint16Array#lastIndexOf + i32.const -1 i32.eq i32.eqz if i32.const 0 i32.const 544 - i32.const 345 + i32.const 596 i32.const 3 call $~lib/builtins/abort unreachable end - local.get $0 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const -3 - call $~lib/typedarray/Int16Array#at + local.get $2 + i32.const 1 + i32.const 100 + call $~lib/typedarray/Uint16Array#lastIndexOf i32.const 1 i32.eq i32.eqz if i32.const 0 i32.const 544 - i32.const 346 + i32.const 597 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 - ) - (func $std/typedarray/testAt<~lib/typedarray/Uint16Array,u16> - (local $0 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 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 3 - call $~lib/typedarray/Uint16Array#constructor - local.tee $0 - i32.store - local.get $0 - 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/typedarray/Uint16Array#__set - local.get $0 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 + local.get $2 i32.const 1 - i32.const 2 - call $~lib/typedarray/Uint16Array#__set - local.get $0 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 2 - i32.const 3 - call $~lib/typedarray/Uint16Array#__set - local.get $0 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 0 - call $~lib/typedarray/Uint16Array#at + i32.const -10 + call $~lib/typedarray/Uint16Array#lastIndexOf i32.const 1 i32.eq i32.eqz if i32.const 0 i32.const 544 - i32.const 344 + i32.const 598 i32.const 3 call $~lib/builtins/abort unreachable end - local.get $0 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 + local.get $2 + i32.const 1 + i32.const -11 + call $~lib/typedarray/Uint16Array#lastIndexOf i32.const -1 - call $~lib/typedarray/Uint16Array#at - i32.const 3 i32.eq i32.eqz if i32.const 0 i32.const 544 - i32.const 345 + i32.const 599 i32.const 3 call $~lib/builtins/abort unreachable end - local.get $0 - local.set $1 global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const -3 - call $~lib/typedarray/Uint16Array#at - i32.const 1 + local.get $2 + i32.const 4 + i32.const 9 + call $~lib/typedarray/Uint16Array#subarray + local.tee $5 + i32.store offset=8 + local.get $5 + i32.const 3 + i32.const 0 + call $~lib/typedarray/Uint16Array#indexOf + i32.const -1 i32.eq i32.eqz if i32.const 0 i32.const 544 - i32.const 346 + i32.const 603 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 - ) - (func $std/typedarray/testAt<~lib/typedarray/Int32Array,i32> - (local $0 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 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 3 - call $~lib/typedarray/Int32Array#constructor - local.tee $0 - i32.store - local.get $0 - 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/typedarray/Int32Array#__set - local.get $0 - local.set $1 - 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 - local.get $0 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 2 - i32.const 3 - call $~lib/typedarray/Int32Array#__set - local.get $0 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 + local.get $5 + i32.const 4 i32.const 0 - call $~lib/typedarray/Int32Array#at - i32.const 1 + call $~lib/typedarray/Uint16Array#indexOf + i32.const 4 + i32.const 4 + i32.sub i32.eq i32.eqz if i32.const 0 i32.const 544 - i32.const 344 + i32.const 604 i32.const 3 call $~lib/builtins/abort unreachable end - local.get $0 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const -1 - call $~lib/typedarray/Int32Array#at - i32.const 3 + local.get $5 + i32.const 5 + i32.const 0 + call $~lib/typedarray/Uint16Array#indexOf + i32.const 5 + i32.const 4 + i32.sub i32.eq i32.eqz if i32.const 0 i32.const 544 - i32.const 345 + i32.const 605 i32.const 3 call $~lib/builtins/abort unreachable end - local.get $0 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const -3 - call $~lib/typedarray/Int32Array#at - i32.const 1 + local.get $5 + i32.const 9 + i32.const 0 + call $~lib/typedarray/Uint16Array#indexOf + i32.const -1 i32.eq i32.eqz if i32.const 0 i32.const 544 - i32.const 346 + i32.const 606 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 - ) - (func $std/typedarray/testAt<~lib/typedarray/Uint32Array,u32> - (local $0 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 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 3 - call $~lib/typedarray/Uint32Array#constructor - local.tee $0 - i32.store - local.get $0 - 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/typedarray/Uint32Array#__set - local.get $0 - local.set $1 - 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 - local.get $0 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 2 - i32.const 3 - call $~lib/typedarray/Uint32Array#__set - local.get $0 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 + local.get $5 + i32.const 10 i32.const 0 - call $~lib/typedarray/Uint32Array#at - i32.const 1 + call $~lib/typedarray/Uint16Array#indexOf + i32.const -1 i32.eq i32.eqz if i32.const 0 i32.const 544 - i32.const 344 + i32.const 607 i32.const 3 call $~lib/builtins/abort unreachable end - local.get $0 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 + local.get $5 + i32.const 11 + i32.const 0 + call $~lib/typedarray/Uint16Array#indexOf i32.const -1 - call $~lib/typedarray/Uint32Array#at - i32.const 3 i32.eq i32.eqz if i32.const 0 i32.const 544 - i32.const 345 + i32.const 608 i32.const 3 call $~lib/builtins/abort unreachable end - local.get $0 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const -3 - call $~lib/typedarray/Uint32Array#at + local.get $5 + i32.const 5 i32.const 1 + call $~lib/typedarray/Uint16Array#indexOf + i32.const 5 + i32.const 4 + i32.sub i32.eq i32.eqz if i32.const 0 i32.const 544 - i32.const 346 + i32.const 609 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $5 + i32.const 5 + i32.const 2 + call $~lib/typedarray/Uint16Array#indexOf + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 610 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 12 i32.add global.set $~lib/memory/__stack_pointer ) - (func $std/typedarray/testAt<~lib/typedarray/Int64Array,i64> + (func $~lib/typedarray/Int32Array#indexOf (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) + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.0 (result i32) + local.get $0 + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + local.get $3 + local.set $6 + local.get $5 + call $~lib/typedarray/Int32Array#get:length + local.set $7 + local.get $7 + i32.const 0 + i32.eq + if (result i32) + i32.const 1 + else + local.get $6 + local.get $7 + i32.ge_s + end + if + i32.const -1 + br $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.0 + end + local.get $6 + i32.const 0 + i32.lt_s + if + local.get $7 + local.get $6 + i32.add + local.tee $8 + i32.const 0 + local.tee $9 + local.get $8 + local.get $9 + i32.gt_s + select + local.set $6 + end + local.get $5 + i32.load offset=4 + local.set $8 + loop $while-continue|0 + local.get $6 + local.get $7 + i32.lt_s + local.set $9 + local.get $9 + if + local.get $8 + local.get $6 + i32.const 2 + i32.shl + i32.add + i32.load + local.get $4 + i32.eq + if + local.get $6 + br $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.0 + end + local.get $6 + i32.const 1 + i32.add + local.set $6 + br $while-continue|0 + end + end + i32.const -1 + end + ) + (func $~lib/typedarray/Int32Array#lastIndexOf (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) + block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.0 (result i32) + local.get $0 + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + local.get $3 + local.set $6 + local.get $5 + call $~lib/typedarray/Int32Array#get:length + local.set $7 + local.get $7 + i32.const 0 + i32.eq + if + i32.const -1 + br $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.0 + end + local.get $6 + i32.const 0 + i32.lt_s + if + local.get $7 + local.get $6 + i32.add + local.set $6 + else + local.get $6 + local.get $7 + i32.ge_s + if + local.get $7 + i32.const 1 + i32.sub + local.set $6 + end + end + local.get $5 + i32.load offset=4 + local.set $8 + loop $while-continue|0 + local.get $6 + i32.const 0 + i32.ge_s + local.set $9 + local.get $9 + if + local.get $8 + local.get $6 + i32.const 2 + i32.shl + i32.add + i32.load + local.get $4 + i32.eq + if + local.get $6 + br $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.0 + end + local.get $6 + i32.const 1 + i32.sub + local.set $6 + br $while-continue|0 + end + end + i32.const -1 + end + ) + (func $~lib/typedarray/Int32Array#lastIndexOf@varargs (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + block $1of1 + block $0of1 + block $outOfRange + global.get $~argumentsLength + i32.const 1 + i32.sub + br_table $0of1 $1of1 $outOfRange + end + unreachable + end + local.get $0 + call $~lib/typedarray/Int32Array#get:length + local.set $2 + end + local.get $0 + local.get $1 + local.get $2 + call $~lib/typedarray/Int32Array#lastIndexOf + ) + (func $std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Int32Array,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.const 12 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check @@ -16023,908 +16296,464 @@ i64.store global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 3 - call $~lib/typedarray/Int64Array#constructor + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + global.get $std/typedarray/testArrayIndexOfAndLastIndexOfValues local.tee $0 i32.store local.get $0 + call $~lib/array/Array#get:length local.set $1 global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 i32.const 0 - i64.const 1 - call $~lib/typedarray/Int64Array#__set - local.get $0 - local.set $1 - 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 - local.get $0 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 2 - i64.const 3 - call $~lib/typedarray/Int64Array#__set - local.get $0 - local.set $1 - global.get $~lib/memory/__stack_pointer local.get $1 + call $~lib/typedarray/Int32Array#constructor + local.tee $2 i32.store offset=4 - local.get $1 i32.const 0 - call $~lib/typedarray/Int64Array#at - i64.const 1 - i64.eq + local.set $3 + loop $for-loop|0 + local.get $3 + local.get $1 + i32.lt_s + local.set $4 + local.get $4 + if + local.get $2 + local.get $3 + local.get $0 + local.get $3 + call $~lib/array/Array#__get + call $~lib/typedarray/Int32Array#__set + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $for-loop|0 + end + end + local.get $2 + i32.const 0 + i32.const 0 + call $~lib/typedarray/Int32Array#indexOf + i32.const 0 + i32.eq i32.eqz if i32.const 0 i32.const 544 - i32.const 344 + i32.const 580 i32.const 3 call $~lib/builtins/abort unreachable end - local.get $0 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 + local.get $2 + i32.const 11 + i32.const 0 + call $~lib/typedarray/Int32Array#indexOf i32.const -1 - call $~lib/typedarray/Int64Array#at - i64.const 3 - i64.eq + i32.eq i32.eqz if i32.const 0 i32.const 544 - i32.const 345 + i32.const 581 i32.const 3 call $~lib/builtins/abort unreachable end - local.get $0 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const -3 - call $~lib/typedarray/Int64Array#at - i64.const 1 - i64.eq + local.get $2 + i32.const -1 + i32.const 0 + call $~lib/typedarray/Int32Array#indexOf + i32.const -1 + i32.eq i32.eqz if i32.const 0 i32.const 544 - i32.const 346 + i32.const 582 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 - ) - (func $std/typedarray/testAt<~lib/typedarray/Uint64Array,u64> - (local $0 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 - global.get $~lib/memory/__stack_pointer - i32.const 0 + local.get $2 i32.const 3 - call $~lib/typedarray/Uint64Array#constructor - local.tee $0 - i32.store - local.get $0 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 0 - i64.const 1 - call $~lib/typedarray/Uint64Array#__set - local.get $0 - local.set $1 - 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 - local.get $0 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 2 - i64.const 3 - call $~lib/typedarray/Uint64Array#__set - local.get $0 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 i32.const 0 - call $~lib/typedarray/Uint64Array#at - i64.const 1 - i64.eq + call $~lib/typedarray/Int32Array#indexOf + i32.const 3 + i32.eq i32.eqz if i32.const 0 i32.const 544 - i32.const 344 + i32.const 583 i32.const 3 call $~lib/builtins/abort unreachable end - local.get $0 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const -1 - call $~lib/typedarray/Uint64Array#at - i64.const 3 - i64.eq + local.get $2 + i32.const 3 + i32.const 2 + call $~lib/typedarray/Int32Array#indexOf + i32.const 3 + i32.eq i32.eqz if i32.const 0 i32.const 544 - i32.const 345 + i32.const 584 i32.const 3 call $~lib/builtins/abort unreachable end - local.get $0 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const -3 - call $~lib/typedarray/Uint64Array#at - i64.const 1 - i64.eq + local.get $2 + i32.const 3 + i32.const 3 + call $~lib/typedarray/Int32Array#indexOf + i32.const 3 + i32.eq i32.eqz if i32.const 0 i32.const 544 - i32.const 346 + i32.const 585 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 - ) - (func $std/typedarray/testAt<~lib/typedarray/Float32Array,f32> - (local $0 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 - global.get $~lib/memory/__stack_pointer - i32.const 0 + local.get $2 i32.const 3 - call $~lib/typedarray/Float32Array#constructor - local.tee $0 - i32.store - local.get $0 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 0 - f32.const 1 - call $~lib/typedarray/Float32Array#__set - local.get $0 - local.set $1 - 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 - local.get $0 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 2 - f32.const 3 - call $~lib/typedarray/Float32Array#__set - local.get $0 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 0 - call $~lib/typedarray/Float32Array#at - f32.const 1 - f32.eq + i32.const 4 + call $~lib/typedarray/Int32Array#indexOf + i32.const -1 + i32.eq i32.eqz if i32.const 0 i32.const 544 - i32.const 344 + i32.const 586 i32.const 3 call $~lib/builtins/abort unreachable end - local.get $0 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 + local.get $2 + i32.const 1 + i32.const 10 + call $~lib/typedarray/Int32Array#indexOf i32.const -1 - call $~lib/typedarray/Float32Array#at - f32.const 3 - f32.eq + i32.eq i32.eqz if i32.const 0 i32.const 544 - i32.const 345 + i32.const 587 i32.const 3 call $~lib/builtins/abort unreachable end - local.get $0 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const -3 - call $~lib/typedarray/Float32Array#at - f32.const 1 - f32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 346 + local.get $2 + i32.const 1 + i32.const -100 + call $~lib/typedarray/Int32Array#indexOf + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 588 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 - ) - (func $std/typedarray/testAt<~lib/typedarray/Float64Array,f64> - (local $0 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 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 3 - call $~lib/typedarray/Float64Array#constructor - local.tee $0 - i32.store - local.get $0 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 + local.get $2 i32.const 0 - f64.const 1 - call $~lib/typedarray/Float64Array#__set - local.get $0 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 i32.const 1 - f64.const 2 - call $~lib/typedarray/Float64Array#__set - local.get $0 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 2 - f64.const 3 - call $~lib/typedarray/Float64Array#__set - local.get $0 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 + global.set $~argumentsLength i32.const 0 - call $~lib/typedarray/Float64Array#at - f64.const 1 - f64.eq + call $~lib/typedarray/Int32Array#lastIndexOf@varargs + i32.const 0 + i32.eq i32.eqz if i32.const 0 i32.const 544 - i32.const 344 + i32.const 590 i32.const 3 call $~lib/builtins/abort unreachable end - local.get $0 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 + local.get $2 + i32.const 11 + i32.const 1 + global.set $~argumentsLength + i32.const 0 + call $~lib/typedarray/Int32Array#lastIndexOf@varargs i32.const -1 - call $~lib/typedarray/Float64Array#at - f64.const 3 - f64.eq + i32.eq i32.eqz if i32.const 0 i32.const 544 - i32.const 345 + i32.const 591 i32.const 3 call $~lib/builtins/abort unreachable end - local.get $0 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const -3 - call $~lib/typedarray/Float64Array#at - f64.const 1 - f64.eq + local.get $2 + i32.const -1 + i32.const 1 + global.set $~argumentsLength + i32.const 0 + call $~lib/typedarray/Int32Array#lastIndexOf@varargs + i32.const -1 + i32.eq i32.eqz if i32.const 0 i32.const 544 - i32.const 346 + i32.const 592 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 - ) - (func $~lib/typedarray/Int8Array#reduceRight (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) - 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 - global.get $~lib/memory/__stack_pointer - local.get $0 - local.tee $5 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - local.tee $4 - i32.store offset=4 local.get $2 - local.set $3 - local.get $5 - i32.load offset=4 - local.set $6 - local.get $5 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=8 - local.get $9 - call $~lib/typedarray/Int8Array#get:length + i32.const 3 i32.const 1 - i32.sub - local.set $7 - loop $for-loop|0 - local.get $7 - i32.const 0 - i32.ge_s - local.set $8 - local.get $8 - if - local.get $3 - local.get $6 - local.get $7 - i32.const 0 - i32.shl - i32.add - i32.load8_s - local.get $7 - local.get $5 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=12 - local.get $9 - i32.const 4 - global.set $~argumentsLength - local.get $4 - i32.load - call_indirect (type $i32_i32_i32_i32_=>_i32) - local.set $3 - local.get $7 - i32.const 1 - i32.sub - local.set $7 - br $for-loop|0 - end - end - local.get $3 - local.set $9 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $9 - ) - (func $std/typedarray/testReduceRight<~lib/typedarray/Int8Array,i8> - (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 - 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 - global.get $~lib/memory/__stack_pointer + global.set $~argumentsLength i32.const 0 + call $~lib/typedarray/Int32Array#lastIndexOf@varargs i32.const 3 - call $~lib/typedarray/Int8Array#constructor - local.tee $0 - i32.store - local.get $0 - 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 $~lib/typedarray/Int8Array#__set - local.get $0 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 1 - i32.const 2 - call $~lib/typedarray/Int8Array#__set - local.get $0 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 593 + i32.const 3 + call $~lib/builtins/abort + unreachable + end local.get $2 - i32.const 2 i32.const 3 - call $~lib/typedarray/Int8Array#__set - local.get $0 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 2224 - local.set $2 - global.get $~lib/memory/__stack_pointer + i32.const 4 + call $~lib/typedarray/Int32Array#lastIndexOf + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 594 + i32.const 3 + call $~lib/builtins/abort + unreachable + end local.get $2 - i32.store offset=8 + i32.const 3 + i32.const 3 + call $~lib/typedarray/Int32Array#lastIndexOf + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 595 + i32.const 3 + call $~lib/builtins/abort + unreachable + end local.get $2 - i32.const 0 - call $~lib/typedarray/Int8Array#reduceRight - local.set $1 - local.get $1 - i32.const 24 - i32.shl - i32.const 24 - i32.shr_s - i32.const 6 + i32.const 3 + i32.const 2 + call $~lib/typedarray/Int32Array#lastIndexOf + i32.const -1 i32.eq i32.eqz if i32.const 0 i32.const 544 - i32.const 367 + i32.const 596 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/Uint8Array#reduceRight (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) - 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 - global.get $~lib/memory/__stack_pointer - local.get $0 - local.tee $5 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - local.tee $4 - i32.store offset=4 local.get $2 - local.set $3 - local.get $5 - i32.load offset=4 - local.set $6 - local.get $5 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=8 - local.get $9 - call $~lib/typedarray/Uint8Array#get:length i32.const 1 - i32.sub - local.set $7 - loop $for-loop|0 - local.get $7 + i32.const 100 + call $~lib/typedarray/Int32Array#lastIndexOf + i32.const 1 + i32.eq + i32.eqz + if i32.const 0 - i32.ge_s - local.set $8 - local.get $8 - if - local.get $3 - local.get $6 - local.get $7 - i32.const 0 - i32.shl - i32.add - i32.load8_u - local.get $7 - local.get $5 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=12 - local.get $9 - i32.const 4 - global.set $~argumentsLength - local.get $4 - i32.load - call_indirect (type $i32_i32_i32_i32_=>_i32) - local.set $3 - local.get $7 - i32.const 1 - i32.sub - local.set $7 - br $for-loop|0 - end + i32.const 544 + i32.const 597 + i32.const 3 + call $~lib/builtins/abort + unreachable end - local.get $3 - local.set $9 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $9 - ) - (func $std/typedarray/testReduceRight<~lib/typedarray/Uint8Array,u8> - (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 - 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 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 3 - call $~lib/typedarray/Uint8Array#constructor - local.tee $0 - i32.store - local.get $0 - 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 $~lib/typedarray/Uint8Array#__set - local.get $0 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 + i32.const -10 + call $~lib/typedarray/Int32Array#lastIndexOf i32.const 1 - i32.const 2 - call $~lib/typedarray/Uint8Array#__set - local.get $0 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 2 - i32.const 3 - call $~lib/typedarray/Uint8Array#__set - local.get $0 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 598 + i32.const 3 + call $~lib/builtins/abort + unreachable + end local.get $2 - i32.const 2256 - local.set $2 + i32.const 1 + i32.const -11 + call $~lib/typedarray/Int32Array#lastIndexOf + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 599 + i32.const 3 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer local.get $2 + i32.const 4 + i32.const 9 + call $~lib/typedarray/Int32Array#subarray + local.tee $5 i32.store offset=8 - local.get $2 + local.get $5 + i32.const 3 i32.const 0 - call $~lib/typedarray/Uint8Array#reduceRight - local.set $1 - local.get $1 - i32.const 255 - i32.and - i32.const 6 + call $~lib/typedarray/Int32Array#indexOf + i32.const -1 i32.eq i32.eqz if i32.const 0 i32.const 544 - i32.const 367 + i32.const 603 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/Uint8ClampedArray#reduceRight (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) - 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 - global.get $~lib/memory/__stack_pointer - local.get $0 - local.tee $5 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - local.tee $4 - i32.store offset=4 - local.get $2 - local.set $3 - local.get $5 - i32.load offset=4 - local.set $6 local.get $5 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=8 - local.get $9 - call $~lib/typedarray/Uint8ClampedArray#get:length - i32.const 1 + i32.const 4 + i32.const 0 + call $~lib/typedarray/Int32Array#indexOf + i32.const 4 + i32.const 4 i32.sub - local.set $7 - loop $for-loop|0 - local.get $7 + i32.eq + i32.eqz + if i32.const 0 - i32.ge_s - local.set $8 - local.get $8 - if - local.get $3 - local.get $6 - local.get $7 - i32.const 0 - i32.shl - i32.add - i32.load8_u - local.get $7 - local.get $5 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=12 - local.get $9 - i32.const 4 - global.set $~argumentsLength - local.get $4 - i32.load - call_indirect (type $i32_i32_i32_i32_=>_i32) - local.set $3 - local.get $7 - i32.const 1 - i32.sub - local.set $7 - br $for-loop|0 - end + i32.const 544 + i32.const 604 + i32.const 3 + call $~lib/builtins/abort + unreachable end - local.get $3 - local.set $9 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $9 - ) - (func $std/typedarray/testReduceRight<~lib/typedarray/Uint8ClampedArray,u8> - (local $0 i32) - (local $1 i32) - (local $2 i32) - global.get $~lib/memory/__stack_pointer - i32.const 12 + local.get $5 + i32.const 5 + i32.const 0 + call $~lib/typedarray/Int32Array#indexOf + i32.const 5 + 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.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 605 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $5 + i32.const 9 i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer + call $~lib/typedarray/Int32Array#indexOf + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 606 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $5 + i32.const 10 i32.const 0 - i32.const 3 - call $~lib/typedarray/Uint8ClampedArray#constructor - local.tee $0 - i32.store - local.get $0 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 + call $~lib/typedarray/Int32Array#indexOf + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 607 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $5 + i32.const 11 i32.const 0 + call $~lib/typedarray/Int32Array#indexOf + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 608 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $5 + i32.const 5 i32.const 1 - call $~lib/typedarray/Uint8ClampedArray#__set - local.get $0 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 1 - i32.const 2 - call $~lib/typedarray/Uint8ClampedArray#__set - local.get $0 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 + call $~lib/typedarray/Int32Array#indexOf + i32.const 5 + i32.const 4 + i32.sub + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 609 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $5 + i32.const 5 i32.const 2 - i32.const 3 - call $~lib/typedarray/Uint8ClampedArray#__set - local.get $0 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 2288 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=8 - local.get $2 - i32.const 0 - call $~lib/typedarray/Uint8ClampedArray#reduceRight - local.set $1 - local.get $1 - i32.const 255 - i32.and - i32.const 6 + call $~lib/typedarray/Int32Array#indexOf + i32.const -1 i32.eq i32.eqz if i32.const 0 i32.const 544 - i32.const 367 + i32.const 610 i32.const 3 call $~lib/builtins/abort unreachable @@ -16934,7 +16763,7 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/typedarray/Int16Array#reduceRight (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/typedarray/Uint32Array#indexOf (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -16942,86 +16771,185 @@ (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 - 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 - global.get $~lib/memory/__stack_pointer - local.get $0 - local.tee $5 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - local.tee $4 - i32.store offset=4 - local.get $2 - local.set $3 - local.get $5 - i32.load offset=4 - local.set $6 - local.get $5 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=8 - local.get $9 - call $~lib/typedarray/Int16Array#get:length - i32.const 1 - i32.sub - local.set $7 - loop $for-loop|0 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.0 (result i32) + local.get $0 + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + local.get $3 + local.set $6 + local.get $5 + call $~lib/typedarray/Uint32Array#get:length + local.set $7 local.get $7 i32.const 0 - i32.ge_s - local.set $8 - local.get $8 - if - local.get $3 + i32.eq + if (result i32) + i32.const 1 + else local.get $6 local.get $7 - i32.const 1 - i32.shl + i32.ge_s + end + if + i32.const -1 + br $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.0 + end + local.get $6 + i32.const 0 + i32.lt_s + if + local.get $7 + local.get $6 i32.add - i32.load16_s + local.tee $8 + i32.const 0 + local.tee $9 + local.get $8 + local.get $9 + i32.gt_s + select + local.set $6 + end + local.get $5 + i32.load offset=4 + local.set $8 + loop $while-continue|0 + local.get $6 local.get $7 - local.get $5 + i32.lt_s local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=12 local.get $9 - i32.const 4 - global.set $~argumentsLength - local.get $4 - i32.load - call_indirect (type $i32_i32_i32_i32_=>_i32) - local.set $3 + if + local.get $8 + local.get $6 + i32.const 2 + i32.shl + i32.add + i32.load + local.get $4 + i32.eq + if + local.get $6 + br $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.0 + end + local.get $6 + i32.const 1 + i32.add + local.set $6 + br $while-continue|0 + end + end + i32.const -1 + end + ) + (func $~lib/typedarray/Uint32Array#lastIndexOf (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) + block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.0 (result i32) + local.get $0 + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + local.get $3 + local.set $6 + local.get $5 + call $~lib/typedarray/Uint32Array#get:length + local.set $7 + local.get $7 + i32.const 0 + i32.eq + if + i32.const -1 + br $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.0 + end + local.get $6 + i32.const 0 + i32.lt_s + if local.get $7 - i32.const 1 - i32.sub - local.set $7 - br $for-loop|0 + local.get $6 + i32.add + local.set $6 + else + local.get $6 + local.get $7 + i32.ge_s + if + local.get $7 + i32.const 1 + i32.sub + local.set $6 + end + end + local.get $5 + i32.load offset=4 + local.set $8 + loop $while-continue|0 + local.get $6 + i32.const 0 + i32.ge_s + local.set $9 + local.get $9 + if + local.get $8 + local.get $6 + i32.const 2 + i32.shl + i32.add + i32.load + local.get $4 + i32.eq + if + local.get $6 + br $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.0 + end + local.get $6 + i32.const 1 + i32.sub + local.set $6 + br $while-continue|0 + end end + i32.const -1 end - local.get $3 - local.set $9 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $9 ) - (func $std/typedarray/testReduceRight<~lib/typedarray/Int16Array,i16> + (func $~lib/typedarray/Uint32Array#lastIndexOf@varargs (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + block $1of1 + block $0of1 + block $outOfRange + global.get $~argumentsLength + i32.const 1 + i32.sub + br_table $0of1 $1of1 $outOfRange + end + unreachable + end + local.get $0 + call $~lib/typedarray/Uint32Array#get:length + local.set $2 + end + local.get $0 + local.get $1 + local.get $2 + call $~lib/typedarray/Uint32Array#lastIndexOf + ) + (func $std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Uint32Array,u32> (local $0 i32) (local $1 i32) (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -17034,559 +16962,462 @@ i32.const 0 i32.store offset=8 global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 3 - call $~lib/typedarray/Int16Array#constructor + global.get $std/typedarray/testArrayIndexOfAndLastIndexOfValues local.tee $0 i32.store local.get $0 - local.set $2 + call $~lib/array/Array#get:length + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $2 + i32.const 0 + local.get $1 + call $~lib/typedarray/Uint32Array#constructor + local.tee $2 i32.store offset=4 - local.get $2 i32.const 0 - i32.const 1 - call $~lib/typedarray/Int16Array#__set - local.get $0 - local.set $2 - global.get $~lib/memory/__stack_pointer + local.set $3 + loop $for-loop|0 + local.get $3 + local.get $1 + i32.lt_s + local.set $4 + local.get $4 + if + local.get $2 + local.get $3 + local.get $0 + local.get $3 + call $~lib/array/Array#__get + call $~lib/typedarray/Uint32Array#__set + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $for-loop|0 + end + end local.get $2 - i32.store offset=4 - local.get $2 - i32.const 1 - i32.const 2 - call $~lib/typedarray/Int16Array#__set - local.get $0 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 2 - i32.const 3 - call $~lib/typedarray/Int16Array#__set - local.get $0 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 2320 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=8 + i32.const 0 + i32.const 0 + call $~lib/typedarray/Uint32Array#indexOf + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 580 + i32.const 3 + call $~lib/builtins/abort + unreachable + end local.get $2 + i32.const 11 i32.const 0 - call $~lib/typedarray/Int16Array#reduceRight - local.set $1 - local.get $1 - i32.const 16 - i32.shl - i32.const 16 - i32.shr_s - i32.const 6 + call $~lib/typedarray/Uint32Array#indexOf + i32.const -1 i32.eq i32.eqz if i32.const 0 i32.const 544 - i32.const 367 + i32.const 581 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/Uint16Array#reduceRight (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) - 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 - global.get $~lib/memory/__stack_pointer - local.get $0 - local.tee $5 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - local.tee $4 - i32.store offset=4 local.get $2 - local.set $3 - local.get $5 - i32.load offset=4 - local.set $6 - local.get $5 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=8 - local.get $9 - call $~lib/typedarray/Uint16Array#get:length - i32.const 1 - i32.sub - local.set $7 - loop $for-loop|0 - local.get $7 + i32.const -1 + i32.const 0 + call $~lib/typedarray/Uint32Array#indexOf + i32.const -1 + i32.eq + i32.eqz + if i32.const 0 - i32.ge_s - local.set $8 - local.get $8 - if - local.get $3 - local.get $6 - local.get $7 - i32.const 1 - i32.shl - i32.add - i32.load16_u - local.get $7 - local.get $5 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=12 - local.get $9 - i32.const 4 - global.set $~argumentsLength - local.get $4 - i32.load - call_indirect (type $i32_i32_i32_i32_=>_i32) - local.set $3 - local.get $7 - i32.const 1 - i32.sub - local.set $7 - br $for-loop|0 - end + i32.const 544 + i32.const 582 + i32.const 3 + call $~lib/builtins/abort + unreachable end - local.get $3 - local.set $9 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $9 - ) - (func $std/typedarray/testReduceRight<~lib/typedarray/Uint16Array,u16> - (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 - 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 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 3 - call $~lib/typedarray/Uint16Array#constructor - local.tee $0 - i32.store - local.get $0 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 local.get $2 + i32.const 3 i32.const 0 - i32.const 1 - call $~lib/typedarray/Uint16Array#__set - local.get $0 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 1 - i32.const 2 - call $~lib/typedarray/Uint16Array#__set - local.get $0 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 + call $~lib/typedarray/Uint32Array#indexOf + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 583 + i32.const 3 + call $~lib/builtins/abort + unreachable + end local.get $2 + i32.const 3 i32.const 2 + call $~lib/typedarray/Uint32Array#indexOf i32.const 3 - call $~lib/typedarray/Uint16Array#__set - local.get $0 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 2352 - local.set $2 - global.get $~lib/memory/__stack_pointer + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 584 + i32.const 3 + call $~lib/builtins/abort + unreachable + end local.get $2 - i32.store offset=8 + i32.const 3 + i32.const 3 + call $~lib/typedarray/Uint32Array#indexOf + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 585 + i32.const 3 + call $~lib/builtins/abort + unreachable + end local.get $2 - i32.const 0 - call $~lib/typedarray/Uint16Array#reduceRight - local.set $1 - local.get $1 - i32.const 65535 - i32.and - i32.const 6 + i32.const 3 + i32.const 4 + call $~lib/typedarray/Uint32Array#indexOf + i32.const -1 i32.eq i32.eqz if i32.const 0 i32.const 544 - i32.const 367 + i32.const 586 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#reduceRight (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) - 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 - global.get $~lib/memory/__stack_pointer - local.get $0 - local.tee $5 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - local.tee $4 - i32.store offset=4 local.get $2 - local.set $3 - local.get $5 - i32.load offset=4 - local.set $6 - local.get $5 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=8 - local.get $9 - call $~lib/typedarray/Int32Array#get:length i32.const 1 - i32.sub - local.set $7 - loop $for-loop|0 - local.get $7 + i32.const 10 + call $~lib/typedarray/Uint32Array#indexOf + i32.const -1 + i32.eq + i32.eqz + if i32.const 0 - i32.ge_s - local.set $8 - local.get $8 - if - local.get $3 - local.get $6 - local.get $7 - i32.const 2 - i32.shl - i32.add - i32.load - local.get $7 - local.get $5 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=12 - local.get $9 - i32.const 4 - global.set $~argumentsLength - local.get $4 - i32.load - call_indirect (type $i32_i32_i32_i32_=>_i32) - local.set $3 - local.get $7 - i32.const 1 - i32.sub - local.set $7 - br $for-loop|0 - end + i32.const 544 + i32.const 587 + i32.const 3 + call $~lib/builtins/abort + unreachable end - local.get $3 - local.set $9 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $9 - ) - (func $std/typedarray/testReduceRight<~lib/typedarray/Int32Array,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 - 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 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 3 - call $~lib/typedarray/Int32Array#constructor - local.tee $0 - i32.store - local.get $0 - local.set $2 - global.get $~lib/memory/__stack_pointer local.get $2 - i32.store offset=4 + i32.const 1 + i32.const -100 + call $~lib/typedarray/Uint32Array#indexOf + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 588 + i32.const 3 + call $~lib/builtins/abort + unreachable + end local.get $2 i32.const 0 i32.const 1 - call $~lib/typedarray/Int32Array#__set - local.get $0 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 + global.set $~argumentsLength + i32.const 0 + call $~lib/typedarray/Uint32Array#lastIndexOf@varargs + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 590 + i32.const 3 + call $~lib/builtins/abort + unreachable + end local.get $2 + i32.const 11 i32.const 1 - i32.const 2 - call $~lib/typedarray/Int32Array#__set - local.get $0 - local.set $2 - global.get $~lib/memory/__stack_pointer + global.set $~argumentsLength + i32.const 0 + call $~lib/typedarray/Uint32Array#lastIndexOf@varargs + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 591 + i32.const 3 + call $~lib/builtins/abort + unreachable + end local.get $2 - i32.store offset=4 + i32.const -1 + i32.const 1 + global.set $~argumentsLength + i32.const 0 + call $~lib/typedarray/Uint32Array#lastIndexOf@varargs + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 592 + i32.const 3 + call $~lib/builtins/abort + unreachable + end local.get $2 - i32.const 2 i32.const 3 - call $~lib/typedarray/Int32Array#__set - local.get $0 - local.set $2 - global.get $~lib/memory/__stack_pointer + i32.const 1 + global.set $~argumentsLength + i32.const 0 + call $~lib/typedarray/Uint32Array#lastIndexOf@varargs + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 593 + i32.const 3 + call $~lib/builtins/abort + unreachable + end local.get $2 - i32.store offset=4 + i32.const 3 + i32.const 4 + call $~lib/typedarray/Uint32Array#lastIndexOf + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 594 + i32.const 3 + call $~lib/builtins/abort + unreachable + end local.get $2 - i32.const 2384 - local.set $2 - global.get $~lib/memory/__stack_pointer + i32.const 3 + i32.const 3 + call $~lib/typedarray/Uint32Array#lastIndexOf + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 595 + i32.const 3 + call $~lib/builtins/abort + unreachable + end local.get $2 - i32.store offset=8 + i32.const 3 + i32.const 2 + call $~lib/typedarray/Uint32Array#lastIndexOf + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 596 + i32.const 3 + call $~lib/builtins/abort + unreachable + end local.get $2 - i32.const 0 - call $~lib/typedarray/Int32Array#reduceRight - local.set $1 - local.get $1 - i32.const 6 + i32.const 1 + i32.const 100 + call $~lib/typedarray/Uint32Array#lastIndexOf + i32.const 1 i32.eq i32.eqz if i32.const 0 i32.const 544 - i32.const 367 + i32.const 597 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 1 + i32.const -10 + call $~lib/typedarray/Uint32Array#lastIndexOf + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 598 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 1 + i32.const -11 + call $~lib/typedarray/Uint32Array#lastIndexOf + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 599 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/Uint32Array#reduceRight (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) - 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 - global.get $~lib/memory/__stack_pointer - local.get $0 - local.tee $5 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - local.tee $4 - i32.store offset=4 local.get $2 - local.set $3 + i32.const 4 + i32.const 9 + call $~lib/typedarray/Uint32Array#subarray + local.tee $5 + i32.store offset=8 local.get $5 - i32.load offset=4 - local.set $6 + i32.const 3 + i32.const 0 + call $~lib/typedarray/Uint32Array#indexOf + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 603 + i32.const 3 + call $~lib/builtins/abort + unreachable + end local.get $5 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=8 - local.get $9 - call $~lib/typedarray/Uint32Array#get:length - i32.const 1 + i32.const 4 + i32.const 0 + call $~lib/typedarray/Uint32Array#indexOf + i32.const 4 + i32.const 4 i32.sub - local.set $7 - loop $for-loop|0 - local.get $7 + i32.eq + i32.eqz + if i32.const 0 - i32.ge_s - local.set $8 - local.get $8 - if - local.get $3 - local.get $6 - local.get $7 - i32.const 2 - i32.shl - i32.add - i32.load - local.get $7 - local.get $5 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=12 - local.get $9 - i32.const 4 - global.set $~argumentsLength - local.get $4 - i32.load - call_indirect (type $i32_i32_i32_i32_=>_i32) - local.set $3 - local.get $7 - i32.const 1 - i32.sub - local.set $7 - br $for-loop|0 - end + i32.const 544 + i32.const 604 + i32.const 3 + call $~lib/builtins/abort + unreachable end - local.get $3 - local.set $9 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $9 - ) - (func $std/typedarray/testReduceRight<~lib/typedarray/Uint32Array,u32> - (local $0 i32) - (local $1 i32) - (local $2 i32) - global.get $~lib/memory/__stack_pointer - i32.const 12 + local.get $5 + i32.const 5 + i32.const 0 + call $~lib/typedarray/Uint32Array#indexOf + i32.const 5 + 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.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 605 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $5 + i32.const 9 i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer + call $~lib/typedarray/Uint32Array#indexOf + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 606 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $5 + i32.const 10 i32.const 0 - i32.const 3 - call $~lib/typedarray/Uint32Array#constructor - local.tee $0 - i32.store - local.get $0 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 + call $~lib/typedarray/Uint32Array#indexOf + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 607 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $5 + i32.const 11 i32.const 0 + call $~lib/typedarray/Uint32Array#indexOf + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 608 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $5 + i32.const 5 i32.const 1 - call $~lib/typedarray/Uint32Array#__set - local.get $0 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 1 - i32.const 2 - call $~lib/typedarray/Uint32Array#__set - local.get $0 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 + call $~lib/typedarray/Uint32Array#indexOf + i32.const 5 + i32.const 4 + i32.sub + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 609 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $5 + i32.const 5 i32.const 2 - i32.const 3 - call $~lib/typedarray/Uint32Array#__set - local.get $0 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 2416 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=8 - local.get $2 - i32.const 0 - call $~lib/typedarray/Uint32Array#reduceRight - local.set $1 - local.get $1 - i32.const 6 + call $~lib/typedarray/Uint32Array#indexOf + i32.const -1 i32.eq i32.eqz if i32.const 0 i32.const 544 - i32.const 367 + i32.const 610 i32.const 3 call $~lib/builtins/abort unreachable @@ -17596,95 +17427,193 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/typedarray/Int64Array#reduceRight (param $0 i32) (param $1 i32) (param $2 i64) (result i64) - (local $3 i64) - (local $4 i32) + (func $~lib/typedarray/Int64Array#indexOf (param $0 i32) (param $1 i64) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i64) (local $5 i32) (local $6 i32) (local $7 i32) (local $8 i32) (local $9 i32) - (local $10 i64) - 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 - global.get $~lib/memory/__stack_pointer - local.get $0 - local.tee $5 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - local.tee $4 - i32.store offset=4 - local.get $2 - local.set $3 - local.get $5 - i32.load offset=4 - local.set $6 - local.get $5 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=8 - local.get $9 - call $~lib/typedarray/Int64Array#get:length - i32.const 1 - i32.sub - local.set $7 - loop $for-loop|0 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.0 (result i32) + local.get $0 + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + local.get $3 + local.set $6 + local.get $5 + call $~lib/typedarray/Int64Array#get:length + local.set $7 local.get $7 i32.const 0 - i32.ge_s - local.set $8 - local.get $8 - if - local.get $3 + i32.eq + if (result i32) + i32.const 1 + else local.get $6 local.get $7 - i32.const 3 - i32.shl + i32.ge_s + end + if + i32.const -1 + br $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.0 + end + local.get $6 + i32.const 0 + i32.lt_s + if + local.get $7 + local.get $6 i32.add - i64.load + local.tee $8 + i32.const 0 + local.tee $9 + local.get $8 + local.get $9 + i32.gt_s + select + local.set $6 + end + local.get $5 + i32.load offset=4 + local.set $8 + loop $while-continue|0 + local.get $6 local.get $7 - local.get $5 + i32.lt_s local.set $9 - global.get $~lib/memory/__stack_pointer local.get $9 - i32.store offset=12 - local.get $9 - i32.const 4 - global.set $~argumentsLength - local.get $4 - i32.load - call_indirect (type $i64_i64_i32_i32_=>_i64) - local.set $3 + if + local.get $8 + local.get $6 + i32.const 3 + i32.shl + i32.add + i64.load + local.get $4 + i64.eq + if + local.get $6 + br $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.0 + end + local.get $6 + i32.const 1 + i32.add + local.set $6 + br $while-continue|0 + end + end + i32.const -1 + end + ) + (func $~lib/typedarray/Int64Array#lastIndexOf (param $0 i32) (param $1 i64) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i64) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.0 (result i32) + local.get $0 + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + local.get $3 + local.set $6 + local.get $5 + call $~lib/typedarray/Int64Array#get:length + local.set $7 + local.get $7 + i32.const 0 + i32.eq + if + i32.const -1 + br $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.0 + end + local.get $6 + i32.const 0 + i32.lt_s + if local.get $7 - i32.const 1 - i32.sub - local.set $7 - br $for-loop|0 + local.get $6 + i32.add + local.set $6 + else + local.get $6 + local.get $7 + i32.ge_s + if + local.get $7 + i32.const 1 + i32.sub + local.set $6 + end + end + local.get $5 + i32.load offset=4 + local.set $8 + loop $while-continue|0 + local.get $6 + i32.const 0 + i32.ge_s + local.set $9 + local.get $9 + if + local.get $8 + local.get $6 + i32.const 3 + i32.shl + i32.add + i64.load + local.get $4 + i64.eq + if + local.get $6 + br $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.0 + end + local.get $6 + i32.const 1 + i32.sub + local.set $6 + br $while-continue|0 + end end + i32.const -1 end - local.get $3 - local.set $10 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $10 ) - (func $std/typedarray/testReduceRight<~lib/typedarray/Int64Array,i64> + (func $~lib/typedarray/Int64Array#lastIndexOf@varargs (param $0 i32) (param $1 i64) (param $2 i32) (result i32) + block $1of1 + block $0of1 + block $outOfRange + global.get $~argumentsLength + i32.const 1 + i32.sub + br_table $0of1 $1of1 $outOfRange + end + unreachable + end + local.get $0 + call $~lib/typedarray/Int64Array#get:length + local.set $2 + end + local.get $0 + local.get $1 + local.get $2 + call $~lib/typedarray/Int64Array#lastIndexOf + ) + (func $std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Int64Array,i64> (local $0 i32) - (local $1 i64) + (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 @@ -17697,939 +17626,661 @@ i32.const 0 i32.store offset=8 global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 3 - call $~lib/typedarray/Int64Array#constructor + global.get $std/typedarray/testArrayIndexOfAndLastIndexOfValues local.tee $0 i32.store local.get $0 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 0 - i64.const 1 - call $~lib/typedarray/Int64Array#__set - local.get $0 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 1 - i64.const 2 - call $~lib/typedarray/Int64Array#__set - local.get $0 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 2 - i64.const 3 - call $~lib/typedarray/Int64Array#__set - local.get $0 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 2448 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=8 - local.get $2 - i64.const 0 - call $~lib/typedarray/Int64Array#reduceRight + call $~lib/array/Array#get:length local.set $1 - local.get $1 - i64.const 6 - i64.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 367 - 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/Uint64Array#reduceRight (param $0 i32) (param $1 i32) (param $2 i64) (result i64) - (local $3 i64) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - (local $10 i64) - 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 - global.get $~lib/memory/__stack_pointer - local.get $0 - local.tee $5 - i32.store global.get $~lib/memory/__stack_pointer + i32.const 0 local.get $1 - local.tee $4 + call $~lib/typedarray/Int64Array#constructor + local.tee $2 i32.store offset=4 - local.get $2 + i32.const 0 local.set $3 - local.get $5 - i32.load offset=4 - local.set $6 - local.get $5 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=8 - local.get $9 - call $~lib/typedarray/Uint64Array#get:length - i32.const 1 - i32.sub - local.set $7 loop $for-loop|0 - local.get $7 - i32.const 0 - i32.ge_s - local.set $8 - local.get $8 + local.get $3 + local.get $1 + i32.lt_s + local.set $4 + local.get $4 if + local.get $2 local.get $3 - local.get $6 - local.get $7 - i32.const 3 - i32.shl + local.get $0 + local.get $3 + call $~lib/array/Array#__get + i64.extend_i32_s + call $~lib/typedarray/Int64Array#__set + local.get $3 + i32.const 1 i32.add - i64.load - local.get $7 - local.get $5 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=12 - local.get $9 - i32.const 4 - global.set $~argumentsLength - local.get $4 - i32.load - call_indirect (type $i64_i64_i32_i32_=>_i64) local.set $3 - local.get $7 - i32.const 1 - i32.sub - local.set $7 br $for-loop|0 end end - local.get $3 - local.set $10 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $10 - ) - (func $std/typedarray/testReduceRight<~lib/typedarray/Uint64Array,u64> - (local $0 i32) - (local $1 i64) - (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 + local.get $2 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/typedarray/Int64Array#indexOf i32.const 0 - i32.const 3 - call $~lib/typedarray/Uint64Array#constructor - local.tee $0 - i32.store - local.get $0 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 580 + i32.const 3 + call $~lib/builtins/abort + unreachable + end local.get $2 + i64.const 11 i32.const 0 - i64.const 1 - call $~lib/typedarray/Uint64Array#__set - local.get $0 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 1 - i64.const 2 - call $~lib/typedarray/Uint64Array#__set - local.get $0 - local.set $2 - global.get $~lib/memory/__stack_pointer + call $~lib/typedarray/Int64Array#indexOf + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 581 + i32.const 3 + call $~lib/builtins/abort + unreachable + end local.get $2 - i32.store offset=4 + i64.const -1 + i32.const 0 + call $~lib/typedarray/Int64Array#indexOf + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 582 + i32.const 3 + call $~lib/builtins/abort + unreachable + end local.get $2 - i32.const 2 i64.const 3 - call $~lib/typedarray/Uint64Array#__set - local.get $0 - local.set $2 - global.get $~lib/memory/__stack_pointer + i32.const 0 + call $~lib/typedarray/Int64Array#indexOf + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 583 + i32.const 3 + call $~lib/builtins/abort + unreachable + end local.get $2 - i32.store offset=4 + i64.const 3 + i32.const 2 + call $~lib/typedarray/Int64Array#indexOf + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 584 + i32.const 3 + call $~lib/builtins/abort + unreachable + end local.get $2 - i32.const 2480 - local.set $2 - global.get $~lib/memory/__stack_pointer + i64.const 3 + i32.const 3 + call $~lib/typedarray/Int64Array#indexOf + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 585 + i32.const 3 + call $~lib/builtins/abort + unreachable + end local.get $2 - i32.store offset=8 + i64.const 3 + i32.const 4 + call $~lib/typedarray/Int64Array#indexOf + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 586 + i32.const 3 + call $~lib/builtins/abort + unreachable + end local.get $2 - i64.const 0 - call $~lib/typedarray/Uint64Array#reduceRight - local.set $1 - local.get $1 - i64.const 6 - i64.eq + i64.const 1 + i32.const 10 + call $~lib/typedarray/Int64Array#indexOf + i32.const -1 + i32.eq i32.eqz if i32.const 0 i32.const 544 - i32.const 367 + i32.const 587 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/Float32Array#reduceRight (param $0 i32) (param $1 i32) (param $2 f32) (result f32) - (local $3 f32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - (local $10 f32) - 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 - global.get $~lib/memory/__stack_pointer - local.get $0 - local.tee $5 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - local.tee $4 - i32.store offset=4 local.get $2 - local.set $3 - local.get $5 - i32.load offset=4 - local.set $6 - local.get $5 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=8 - local.get $9 - call $~lib/typedarray/Float32Array#get:length + i64.const 1 + i32.const -100 + call $~lib/typedarray/Int64Array#indexOf i32.const 1 - i32.sub - local.set $7 - loop $for-loop|0 - local.get $7 + i32.eq + i32.eqz + if i32.const 0 - i32.ge_s - local.set $8 - local.get $8 - if - local.get $3 - local.get $6 - local.get $7 - i32.const 2 - i32.shl - i32.add - f32.load - local.get $7 - local.get $5 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=12 - local.get $9 - i32.const 4 - global.set $~argumentsLength - local.get $4 - i32.load - call_indirect (type $f32_f32_i32_i32_=>_f32) - local.set $3 - local.get $7 - i32.const 1 - i32.sub - local.set $7 - br $for-loop|0 - end + i32.const 544 + i32.const 588 + i32.const 3 + call $~lib/builtins/abort + unreachable end - local.get $3 - local.set $10 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $10 - ) - (func $std/typedarray/testReduceRight<~lib/typedarray/Float32Array,f32> - (local $0 i32) - (local $1 f32) - (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 + local.get $2 i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer + i32.const 1 + global.set $~argumentsLength i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer + call $~lib/typedarray/Int64Array#lastIndexOf@varargs i32.const 0 - i32.const 3 - call $~lib/typedarray/Float32Array#constructor - local.tee $0 - i32.store - local.get $0 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 590 + i32.const 3 + call $~lib/builtins/abort + unreachable + end local.get $2 + i64.const 11 + i32.const 1 + global.set $~argumentsLength i32.const 0 - f32.const 1 - call $~lib/typedarray/Float32Array#__set - local.get $0 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 + call $~lib/typedarray/Int64Array#lastIndexOf@varargs + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 591 + i32.const 3 + call $~lib/builtins/abort + unreachable + end local.get $2 + i64.const -1 i32.const 1 - f32.const 2 - call $~lib/typedarray/Float32Array#__set - local.get $0 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 2 - f32.const 3 - call $~lib/typedarray/Float32Array#__set - local.get $0 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 2512 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=8 + global.set $~argumentsLength + i32.const 0 + call $~lib/typedarray/Int64Array#lastIndexOf@varargs + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 592 + i32.const 3 + call $~lib/builtins/abort + unreachable + end local.get $2 - f32.const 0 - call $~lib/typedarray/Float32Array#reduceRight - local.set $1 - local.get $1 - f32.const 6 - f32.eq + i64.const 3 + i32.const 1 + global.set $~argumentsLength + i32.const 0 + call $~lib/typedarray/Int64Array#lastIndexOf@varargs + i32.const 3 + i32.eq i32.eqz if i32.const 0 i32.const 544 - i32.const 367 + i32.const 593 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/Float64Array#reduceRight (param $0 i32) (param $1 i32) (param $2 f64) (result f64) - (local $3 f64) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - (local $10 f64) - 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 - global.get $~lib/memory/__stack_pointer - local.get $0 - local.tee $5 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - local.tee $4 - i32.store offset=4 local.get $2 - local.set $3 - local.get $5 - i32.load offset=4 - local.set $6 - local.get $5 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=8 - local.get $9 - call $~lib/typedarray/Float64Array#get:length - i32.const 1 - i32.sub - local.set $7 - loop $for-loop|0 - local.get $7 + i64.const 3 + i32.const 4 + call $~lib/typedarray/Int64Array#lastIndexOf + i32.const 3 + i32.eq + i32.eqz + if i32.const 0 - i32.ge_s - local.set $8 - local.get $8 - if - local.get $3 - local.get $6 - local.get $7 - i32.const 3 - i32.shl - i32.add - f64.load - local.get $7 - local.get $5 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=12 - local.get $9 - i32.const 4 - global.set $~argumentsLength - local.get $4 - i32.load - call_indirect (type $f64_f64_i32_i32_=>_f64) - local.set $3 - local.get $7 - i32.const 1 - i32.sub - local.set $7 - br $for-loop|0 - end + i32.const 544 + i32.const 594 + i32.const 3 + call $~lib/builtins/abort + unreachable end - local.get $3 - local.set $10 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $10 - ) - (func $std/typedarray/testReduceRight<~lib/typedarray/Float64Array,f64> - (local $0 i32) - (local $1 f64) - (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 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 3 - call $~lib/typedarray/Float64Array#constructor - local.tee $0 - i32.store - local.get $0 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 0 - f64.const 1 - call $~lib/typedarray/Float64Array#__set - local.get $0 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 1 - f64.const 2 - call $~lib/typedarray/Float64Array#__set - local.get $0 - local.set $2 - global.get $~lib/memory/__stack_pointer local.get $2 - i32.store offset=4 + i64.const 3 + i32.const 3 + call $~lib/typedarray/Int64Array#lastIndexOf + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 595 + i32.const 3 + call $~lib/builtins/abort + unreachable + end local.get $2 + i64.const 3 i32.const 2 - f64.const 3 - call $~lib/typedarray/Float64Array#__set - local.get $0 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 + call $~lib/typedarray/Int64Array#lastIndexOf + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 596 + i32.const 3 + call $~lib/builtins/abort + unreachable + end local.get $2 - i32.const 2544 - local.set $2 - global.get $~lib/memory/__stack_pointer + i64.const 1 + i32.const 100 + call $~lib/typedarray/Int64Array#lastIndexOf + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 597 + i32.const 3 + call $~lib/builtins/abort + unreachable + end local.get $2 - i32.store offset=8 + i64.const 1 + i32.const -10 + call $~lib/typedarray/Int64Array#lastIndexOf + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 598 + i32.const 3 + call $~lib/builtins/abort + unreachable + end local.get $2 - f64.const 0 - call $~lib/typedarray/Float64Array#reduceRight - local.set $1 - local.get $1 - f64.const 6 - f64.eq + i64.const 1 + i32.const -11 + call $~lib/typedarray/Int64Array#lastIndexOf + i32.const -1 + i32.eq i32.eqz if i32.const 0 i32.const 544 - i32.const 367 + i32.const 599 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/Int8Array#map (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 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 - i64.const 0 - i64.store offset=8 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=16 - global.get $~lib/memory/__stack_pointer - local.get $0 - local.tee $3 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - local.tee $2 - i32.store offset=4 - local.get $3 - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $2 + i32.const 4 + i32.const 9 + call $~lib/typedarray/Int64Array#subarray + local.tee $5 i32.store offset=8 - local.get $11 - call $~lib/typedarray/Int8Array#get:length - local.set $4 - local.get $3 - i32.load offset=4 - local.set $5 - local.get $4 - i32.const 0 - i32.shl - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.const 3 - call $~lib/rt/itcms/__new - local.tee $7 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.const 0 - call $~lib/rt/itcms/__new - local.tee $8 - i32.store offset=16 + local.get $5 + i64.const 3 i32.const 0 - local.set $9 - loop $for-loop|0 - local.get $9 - local.get $4 - i32.lt_s - local.set $10 - local.get $10 - if - local.get $8 - local.get $9 - i32.const 0 - i32.shl - i32.add - local.get $5 - local.get $9 - i32.const 0 - i32.shl - i32.add - i32.load8_s - local.get $9 - local.get $3 - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=20 - local.get $11 - i32.const 3 - global.set $~argumentsLength - local.get $2 - i32.load - call_indirect (type $i32_i32_i32_=>_i32) - i32.store8 - local.get $9 - i32.const 1 - i32.add - local.set $9 - br $for-loop|0 - end + call $~lib/typedarray/Int64Array#indexOf + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 603 + i32.const 3 + call $~lib/builtins/abort + unreachable end - local.get $7 - local.get $8 - i32.store - local.get $7 - local.get $8 + local.get $5 + i64.const 4 i32.const 0 - call $~lib/rt/itcms/__link - local.get $7 - local.get $8 - i32.store offset=4 - local.get $7 - local.get $6 - i32.store offset=8 - local.get $7 - local.set $11 - global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $11 - ) - (func $std/typedarray/testArrayMap<~lib/typedarray/Int8Array,i8> - (local $0 i32) - (local $1 i32) - (local $2 i32) - global.get $~lib/memory/__stack_pointer - i32.const 16 + call $~lib/typedarray/Int64Array#indexOf + i32.const 4 + i32.const 4 i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=8 - global.get $~lib/memory/__stack_pointer + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 604 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $5 + i64.const 5 i32.const 0 - i32.const 3 - call $~lib/typedarray/Int8Array#constructor - local.tee $0 - i32.store - local.get $0 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 + call $~lib/typedarray/Int64Array#indexOf + i32.const 5 + i32.const 4 + i32.sub + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 605 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $5 + i64.const 9 i32.const 0 - i32.const 1 - call $~lib/typedarray/Int8Array#__set - local.get $0 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 1 - i32.const 2 - call $~lib/typedarray/Int8Array#__set - local.get $0 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 2 - i32.const 3 - call $~lib/typedarray/Int8Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 2576 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=8 - local.get $2 - call $~lib/typedarray/Int8Array#map - local.tee $1 - i32.store offset=12 - local.get $1 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 + call $~lib/typedarray/Int64Array#indexOf + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 606 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $5 + i64.const 10 i32.const 0 - call $~lib/typedarray/Int8Array#__get - i32.const 1 + call $~lib/typedarray/Int64Array#indexOf + i32.const -1 i32.eq i32.eqz if i32.const 0 i32.const 544 - i32.const 388 + i32.const 607 i32.const 3 call $~lib/builtins/abort unreachable end - local.get $1 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 1 - call $~lib/typedarray/Int8Array#__get - i32.const 4 + local.get $5 + i64.const 11 + i32.const 0 + call $~lib/typedarray/Int64Array#indexOf + i32.const -1 i32.eq i32.eqz if i32.const 0 i32.const 544 - i32.const 389 + i32.const 608 i32.const 3 call $~lib/builtins/abort unreachable end - local.get $1 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 2 - call $~lib/typedarray/Int8Array#__get - i32.const 9 + local.get $5 + i64.const 5 + i32.const 1 + call $~lib/typedarray/Int64Array#indexOf + i32.const 5 + i32.const 4 + i32.sub i32.eq i32.eqz if i32.const 0 i32.const 544 - i32.const 390 + i32.const 609 i32.const 3 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 16 + local.get $5 + i64.const 5 + i32.const 2 + call $~lib/typedarray/Int64Array#indexOf + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 610 + 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/Uint8Array#map (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) + (func $~lib/typedarray/Uint64Array#indexOf (param $0 i32) (param $1 i64) (param $2 i32) (result i32) (local $3 i32) - (local $4 i32) + (local $4 i64) (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.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 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=16 - global.get $~lib/memory/__stack_pointer - local.get $0 - local.tee $3 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - local.tee $2 - i32.store offset=4 - local.get $3 - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=8 - local.get $11 - call $~lib/typedarray/Uint8Array#get:length - local.set $4 - local.get $3 - i32.load offset=4 - local.set $5 - local.get $4 - i32.const 0 - i32.shl - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.const 4 - call $~lib/rt/itcms/__new - local.tee $7 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.const 0 - call $~lib/rt/itcms/__new - local.tee $8 - i32.store offset=16 - i32.const 0 - local.set $9 - loop $for-loop|0 - local.get $9 - local.get $4 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.0 (result i32) + local.get $0 + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + local.get $3 + local.set $6 + local.get $5 + call $~lib/typedarray/Uint64Array#get:length + local.set $7 + local.get $7 + i32.const 0 + i32.eq + if (result i32) + i32.const 1 + else + local.get $6 + local.get $7 + i32.ge_s + end + if + i32.const -1 + br $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.0 + end + local.get $6 + i32.const 0 i32.lt_s - local.set $10 - local.get $10 if - local.get $8 - local.get $9 - i32.const 0 - i32.shl + local.get $7 + local.get $6 i32.add - local.get $5 - local.get $9 + local.tee $8 i32.const 0 - i32.shl - i32.add - i32.load8_u + local.tee $9 + local.get $8 local.get $9 - local.get $3 - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=20 - local.get $11 - i32.const 3 - global.set $~argumentsLength - local.get $2 - i32.load - call_indirect (type $i32_i32_i32_=>_i32) - i32.store8 + i32.gt_s + select + local.set $6 + end + local.get $5 + i32.load offset=4 + local.set $8 + loop $while-continue|0 + local.get $6 + local.get $7 + i32.lt_s + local.set $9 local.get $9 - i32.const 1 + if + local.get $8 + local.get $6 + i32.const 3 + i32.shl + i32.add + i64.load + local.get $4 + i64.eq + if + local.get $6 + br $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.0 + end + local.get $6 + i32.const 1 + i32.add + local.set $6 + br $while-continue|0 + end + end + i32.const -1 + end + ) + (func $~lib/typedarray/Uint64Array#lastIndexOf (param $0 i32) (param $1 i64) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i64) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.0 (result i32) + local.get $0 + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + local.get $3 + local.set $6 + local.get $5 + call $~lib/typedarray/Uint64Array#get:length + local.set $7 + local.get $7 + i32.const 0 + i32.eq + if + i32.const -1 + br $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.0 + end + local.get $6 + i32.const 0 + i32.lt_s + if + local.get $7 + local.get $6 i32.add + local.set $6 + else + local.get $6 + local.get $7 + i32.ge_s + if + local.get $7 + i32.const 1 + i32.sub + local.set $6 + end + end + local.get $5 + i32.load offset=4 + local.set $8 + loop $while-continue|0 + local.get $6 + i32.const 0 + i32.ge_s local.set $9 - br $for-loop|0 + local.get $9 + if + local.get $8 + local.get $6 + i32.const 3 + i32.shl + i32.add + i64.load + local.get $4 + i64.eq + if + local.get $6 + br $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.0 + end + local.get $6 + i32.const 1 + i32.sub + local.set $6 + br $while-continue|0 + end end + i32.const -1 end - local.get $7 - local.get $8 - i32.store - local.get $7 - local.get $8 - i32.const 0 - call $~lib/rt/itcms/__link - local.get $7 - local.get $8 - i32.store offset=4 - local.get $7 - local.get $6 - i32.store offset=8 - local.get $7 - local.set $11 - global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $11 ) - (func $std/typedarray/testArrayMap<~lib/typedarray/Uint8Array,u8> + (func $~lib/typedarray/Uint64Array#lastIndexOf@varargs (param $0 i32) (param $1 i64) (param $2 i32) (result i32) + block $1of1 + block $0of1 + block $outOfRange + global.get $~argumentsLength + i32.const 1 + i32.sub + br_table $0of1 $1of1 $outOfRange + end + unreachable + end + local.get $0 + call $~lib/typedarray/Uint64Array#get:length + local.set $2 + end + local.get $0 + local.get $1 + local.get $2 + call $~lib/typedarray/Uint64Array#lastIndexOf + ) + (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 16 + i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check @@ -18637,1234 +18288,664 @@ 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 0 - i32.const 3 - call $~lib/typedarray/Uint8Array#constructor + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + global.get $std/typedarray/testArrayIndexOfAndLastIndexOfValues local.tee $0 i32.store local.get $0 - local.set $2 + call $~lib/array/Array#get:length + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $2 + i32.const 0 + local.get $1 + call $~lib/typedarray/Uint64Array#constructor + local.tee $2 i32.store offset=4 + i32.const 0 + local.set $3 + loop $for-loop|0 + local.get $3 + local.get $1 + i32.lt_s + local.set $4 + local.get $4 + if + local.get $2 + local.get $3 + local.get $0 + local.get $3 + call $~lib/array/Array#__get + 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 local.get $2 + i64.const 0 i32.const 0 - i32.const 1 - call $~lib/typedarray/Uint8Array#__set - local.get $0 - local.set $2 - global.get $~lib/memory/__stack_pointer + call $~lib/typedarray/Uint64Array#indexOf + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 580 + i32.const 3 + call $~lib/builtins/abort + unreachable + end local.get $2 - i32.store offset=4 + i64.const 11 + i32.const 0 + call $~lib/typedarray/Uint64Array#indexOf + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 581 + i32.const 3 + call $~lib/builtins/abort + unreachable + end local.get $2 - i32.const 1 - i32.const 2 - call $~lib/typedarray/Uint8Array#__set - local.get $0 - local.set $2 - global.get $~lib/memory/__stack_pointer + i64.const -1 + i32.const 0 + call $~lib/typedarray/Uint64Array#indexOf + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 582 + i32.const 3 + call $~lib/builtins/abort + unreachable + end local.get $2 - i32.store offset=4 + i64.const 3 + i32.const 0 + call $~lib/typedarray/Uint64Array#indexOf + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 583 + i32.const 3 + call $~lib/builtins/abort + unreachable + end local.get $2 + i64.const 3 i32.const 2 + call $~lib/typedarray/Uint64Array#indexOf i32.const 3 - call $~lib/typedarray/Uint8Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 2608 - local.set $2 - global.get $~lib/memory/__stack_pointer + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 584 + i32.const 3 + call $~lib/builtins/abort + unreachable + end local.get $2 - i32.store offset=8 + i64.const 3 + i32.const 3 + call $~lib/typedarray/Uint64Array#indexOf + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 585 + i32.const 3 + call $~lib/builtins/abort + unreachable + end local.get $2 - call $~lib/typedarray/Uint8Array#map - local.tee $1 - i32.store offset=12 - local.get $1 - local.set $2 - global.get $~lib/memory/__stack_pointer + i64.const 3 + i32.const 4 + call $~lib/typedarray/Uint64Array#indexOf + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 586 + i32.const 3 + call $~lib/builtins/abort + unreachable + end local.get $2 - i32.store offset=4 + i64.const 1 + i32.const 10 + call $~lib/typedarray/Uint64Array#indexOf + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 587 + i32.const 3 + call $~lib/builtins/abort + unreachable + end local.get $2 - i32.const 0 - call $~lib/typedarray/Uint8Array#__get + i64.const 1 + i32.const -100 + call $~lib/typedarray/Uint64Array#indexOf i32.const 1 i32.eq i32.eqz if i32.const 0 i32.const 544 - i32.const 388 + i32.const 588 i32.const 3 call $~lib/builtins/abort unreachable end - local.get $1 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 local.get $2 + i64.const 0 i32.const 1 - call $~lib/typedarray/Uint8Array#__get - i32.const 4 + global.set $~argumentsLength + i32.const 0 + call $~lib/typedarray/Uint64Array#lastIndexOf@varargs + i32.const 0 i32.eq i32.eqz if i32.const 0 i32.const 544 - i32.const 389 + i32.const 590 i32.const 3 call $~lib/builtins/abort unreachable end - local.get $1 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 local.get $2 - i32.const 2 - call $~lib/typedarray/Uint8Array#__get - i32.const 9 + i64.const 11 + i32.const 1 + global.set $~argumentsLength + i32.const 0 + call $~lib/typedarray/Uint64Array#lastIndexOf@varargs + i32.const -1 i32.eq i32.eqz if i32.const 0 i32.const 544 - i32.const 390 + i32.const 591 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 - ) - (func $~lib/typedarray/Uint8ClampedArray#map (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 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 - i64.const 0 - i64.store offset=8 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=16 - global.get $~lib/memory/__stack_pointer - local.get $0 - local.tee $3 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - local.tee $2 - i32.store offset=4 - local.get $3 - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=8 - local.get $11 - call $~lib/typedarray/Uint8ClampedArray#get:length - local.set $4 - local.get $3 - i32.load offset=4 - local.set $5 - local.get $4 - i32.const 0 - i32.shl - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.const 5 - call $~lib/rt/itcms/__new - local.tee $7 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.const 0 - call $~lib/rt/itcms/__new - local.tee $8 - i32.store offset=16 - i32.const 0 - local.set $9 - loop $for-loop|0 - local.get $9 - local.get $4 - i32.lt_s - local.set $10 - local.get $10 - if - local.get $8 - local.get $9 - i32.const 0 - i32.shl - i32.add - local.get $5 - local.get $9 - i32.const 0 - i32.shl - i32.add - i32.load8_u - local.get $9 - local.get $3 - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=20 - local.get $11 - i32.const 3 - global.set $~argumentsLength - local.get $2 - i32.load - call_indirect (type $i32_i32_i32_=>_i32) - i32.store8 - local.get $9 - i32.const 1 - i32.add - local.set $9 - br $for-loop|0 - end - end - local.get $7 - local.get $8 - i32.store - local.get $7 - local.get $8 - i32.const 0 - call $~lib/rt/itcms/__link - local.get $7 - local.get $8 - i32.store offset=4 - local.get $7 - local.get $6 - i32.store offset=8 - local.get $7 - local.set $11 - global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $11 - ) - (func $std/typedarray/testArrayMap<~lib/typedarray/Uint8ClampedArray,u8> - (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 - 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 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 3 - call $~lib/typedarray/Uint8ClampedArray#constructor - local.tee $0 - i32.store - local.get $0 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 local.get $2 - i32.const 0 + i64.const -1 i32.const 1 - call $~lib/typedarray/Uint8ClampedArray#__set - local.get $0 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 + global.set $~argumentsLength + i32.const 0 + call $~lib/typedarray/Uint64Array#lastIndexOf@varargs + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 592 + i32.const 3 + call $~lib/builtins/abort + unreachable + end local.get $2 + i64.const 3 i32.const 1 - i32.const 2 - call $~lib/typedarray/Uint8ClampedArray#__set - local.get $0 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 2 - i32.const 3 - call $~lib/typedarray/Uint8ClampedArray#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 2640 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=8 - local.get $2 - call $~lib/typedarray/Uint8ClampedArray#map - local.tee $1 - i32.store offset=12 - local.get $1 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 + global.set $~argumentsLength i32.const 0 - call $~lib/typedarray/Uint8ClampedArray#__get - i32.const 1 + call $~lib/typedarray/Uint64Array#lastIndexOf@varargs + i32.const 3 i32.eq i32.eqz if i32.const 0 i32.const 544 - i32.const 388 + i32.const 593 i32.const 3 call $~lib/builtins/abort unreachable end - local.get $1 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 local.get $2 - i32.const 1 - call $~lib/typedarray/Uint8ClampedArray#__get + i64.const 3 i32.const 4 + call $~lib/typedarray/Uint64Array#lastIndexOf + i32.const 3 i32.eq i32.eqz if i32.const 0 i32.const 544 - i32.const 389 + i32.const 594 i32.const 3 call $~lib/builtins/abort unreachable end - local.get $1 - local.set $2 - global.get $~lib/memory/__stack_pointer local.get $2 - i32.store offset=4 + i64.const 3 + i32.const 3 + call $~lib/typedarray/Uint64Array#lastIndexOf + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 595 + i32.const 3 + call $~lib/builtins/abort + unreachable + end local.get $2 + i64.const 3 i32.const 2 - call $~lib/typedarray/Uint8ClampedArray#__get - i32.const 9 + call $~lib/typedarray/Uint64Array#lastIndexOf + i32.const -1 i32.eq i32.eqz if i32.const 0 i32.const 544 - i32.const 390 + i32.const 596 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 - ) - (func $~lib/typedarray/Int16Array#map (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 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 - i64.const 0 - i64.store offset=8 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=16 - global.get $~lib/memory/__stack_pointer - local.get $0 - local.tee $3 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - local.tee $2 - i32.store offset=4 - local.get $3 - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=8 - local.get $11 - call $~lib/typedarray/Int16Array#get:length - local.set $4 - local.get $3 - i32.load offset=4 - local.set $5 - local.get $4 - i32.const 1 - i32.shl - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.const 6 - call $~lib/rt/itcms/__new - local.tee $7 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.const 0 - call $~lib/rt/itcms/__new - local.tee $8 - i32.store offset=16 - i32.const 0 - local.set $9 - loop $for-loop|0 - local.get $9 - local.get $4 - i32.lt_s - local.set $10 - local.get $10 - if - local.get $8 - local.get $9 - i32.const 1 - i32.shl - i32.add - local.get $5 - local.get $9 - i32.const 1 - i32.shl - i32.add - i32.load16_s - local.get $9 - local.get $3 - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=20 - local.get $11 - i32.const 3 - global.set $~argumentsLength - local.get $2 - i32.load - call_indirect (type $i32_i32_i32_=>_i32) - i32.store16 - local.get $9 - i32.const 1 - i32.add - local.set $9 - br $for-loop|0 - end - end - local.get $7 - local.get $8 - i32.store - local.get $7 - local.get $8 - i32.const 0 - call $~lib/rt/itcms/__link - local.get $7 - local.get $8 - i32.store offset=4 - local.get $7 - local.get $6 - i32.store offset=8 - local.get $7 - local.set $11 - global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $11 - ) - (func $std/typedarray/testArrayMap<~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 - 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 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 3 - call $~lib/typedarray/Int16Array#constructor - local.tee $0 - i32.store - local.get $0 - 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 $~lib/typedarray/Int16Array#__set - local.get $0 - local.set $2 - 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.const 2 - call $~lib/typedarray/Int16Array#__set - local.get $0 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 2 - i32.const 3 - call $~lib/typedarray/Int16Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 2672 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=8 - local.get $2 - call $~lib/typedarray/Int16Array#map - local.tee $1 - i32.store offset=12 - local.get $1 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 597 + i32.const 3 + call $~lib/builtins/abort + unreachable + end local.get $2 - i32.const 0 - call $~lib/typedarray/Int16Array#__get + i64.const 1 + i32.const -10 + call $~lib/typedarray/Uint64Array#lastIndexOf i32.const 1 i32.eq i32.eqz if i32.const 0 i32.const 544 - i32.const 388 + i32.const 598 i32.const 3 call $~lib/builtins/abort unreachable end - local.get $1 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 local.get $2 - i32.const 1 - call $~lib/typedarray/Int16Array#__get - i32.const 4 + i64.const 1 + i32.const -11 + call $~lib/typedarray/Uint64Array#lastIndexOf + i32.const -1 i32.eq i32.eqz if i32.const 0 i32.const 544 - i32.const 389 + i32.const 599 i32.const 3 call $~lib/builtins/abort unreachable end - local.get $1 - local.set $2 global.get $~lib/memory/__stack_pointer local.get $2 - i32.store offset=4 - local.get $2 - i32.const 2 - call $~lib/typedarray/Int16Array#__get + i32.const 4 i32.const 9 + call $~lib/typedarray/Uint64Array#subarray + local.tee $5 + i32.store offset=8 + local.get $5 + i64.const 3 + i32.const 0 + call $~lib/typedarray/Uint64Array#indexOf + i32.const -1 i32.eq i32.eqz if i32.const 0 i32.const 544 - i32.const 390 + i32.const 603 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 - ) - (func $~lib/typedarray/Uint16Array#map (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 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 - i64.const 0 - i64.store offset=8 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=16 - global.get $~lib/memory/__stack_pointer - local.get $0 - local.tee $3 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - local.tee $2 - i32.store offset=4 - local.get $3 - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=8 - local.get $11 - call $~lib/typedarray/Uint16Array#get:length - local.set $4 - local.get $3 - i32.load offset=4 - local.set $5 - local.get $4 - i32.const 1 - i32.shl - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.const 7 - call $~lib/rt/itcms/__new - local.tee $7 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.const 0 - call $~lib/rt/itcms/__new - local.tee $8 - i32.store offset=16 - i32.const 0 - local.set $9 - loop $for-loop|0 - local.get $9 - local.get $4 - i32.lt_s - local.set $10 - local.get $10 - if - local.get $8 - local.get $9 - i32.const 1 - i32.shl - i32.add - local.get $5 - local.get $9 - i32.const 1 - i32.shl - i32.add - i32.load16_u - local.get $9 - local.get $3 - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=20 - local.get $11 - i32.const 3 - global.set $~argumentsLength - local.get $2 - i32.load - call_indirect (type $i32_i32_i32_=>_i32) - i32.store16 - local.get $9 - i32.const 1 - i32.add - local.set $9 - br $for-loop|0 - end - end - local.get $7 - local.get $8 - i32.store - local.get $7 - local.get $8 + local.get $5 + i64.const 4 i32.const 0 - call $~lib/rt/itcms/__link - local.get $7 - local.get $8 - i32.store offset=4 - local.get $7 - local.get $6 - i32.store offset=8 - local.get $7 - local.set $11 - global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $11 - ) - (func $std/typedarray/testArrayMap<~lib/typedarray/Uint16Array,u16> - (local $0 i32) - (local $1 i32) - (local $2 i32) - global.get $~lib/memory/__stack_pointer - i32.const 16 + call $~lib/typedarray/Uint64Array#indexOf + i32.const 4 + i32.const 4 i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 3 - call $~lib/typedarray/Uint16Array#constructor - local.tee $0 - i32.store - local.get $0 - 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 $~lib/typedarray/Uint16Array#__set - local.get $0 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 1 - i32.const 2 - call $~lib/typedarray/Uint16Array#__set - local.get $0 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 2 - i32.const 3 - call $~lib/typedarray/Uint16Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 2704 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=8 - local.get $2 - call $~lib/typedarray/Uint16Array#map - local.tee $1 - i32.store offset=12 - 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/typedarray/Uint16Array#__get - i32.const 1 i32.eq i32.eqz if i32.const 0 i32.const 544 - i32.const 388 + i32.const 604 i32.const 3 call $~lib/builtins/abort unreachable end - local.get $1 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 1 - call $~lib/typedarray/Uint16Array#__get + local.get $5 + i64.const 5 + i32.const 0 + call $~lib/typedarray/Uint64Array#indexOf + i32.const 5 i32.const 4 + i32.sub i32.eq i32.eqz if i32.const 0 i32.const 544 - i32.const 389 + i32.const 605 i32.const 3 call $~lib/builtins/abort unreachable end - local.get $1 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 2 - call $~lib/typedarray/Uint16Array#__get - i32.const 9 + local.get $5 + i64.const 9 + i32.const 0 + call $~lib/typedarray/Uint64Array#indexOf + i32.const -1 i32.eq i32.eqz if i32.const 0 i32.const 544 - i32.const 390 + i32.const 606 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 - ) - (func $~lib/typedarray/Int32Array#map (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 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 - i64.const 0 - i64.store offset=8 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=16 - global.get $~lib/memory/__stack_pointer - local.get $0 - local.tee $3 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - local.tee $2 - i32.store offset=4 - local.get $3 - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=8 - local.get $11 - call $~lib/typedarray/Int32Array#get:length - local.set $4 - local.get $3 - i32.load offset=4 - local.set $5 - local.get $4 - i32.const 2 - i32.shl - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.const 8 - call $~lib/rt/itcms/__new - local.tee $7 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.const 0 - call $~lib/rt/itcms/__new - local.tee $8 - i32.store offset=16 + local.get $5 + i64.const 10 i32.const 0 - local.set $9 - loop $for-loop|0 - local.get $9 - local.get $4 - i32.lt_s - local.set $10 - local.get $10 - if - local.get $8 - local.get $9 - i32.const 2 - i32.shl - i32.add - local.get $5 - local.get $9 - i32.const 2 - i32.shl - i32.add - i32.load - local.get $9 - local.get $3 - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=20 - local.get $11 - i32.const 3 - global.set $~argumentsLength - local.get $2 - i32.load - call_indirect (type $i32_i32_i32_=>_i32) - i32.store - local.get $9 - i32.const 1 - i32.add - local.set $9 - br $for-loop|0 - end + call $~lib/typedarray/Uint64Array#indexOf + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 607 + i32.const 3 + call $~lib/builtins/abort + unreachable end - local.get $7 - local.get $8 - i32.store - local.get $7 - local.get $8 - i32.const 0 - call $~lib/rt/itcms/__link - local.get $7 - local.get $8 - i32.store offset=4 - local.get $7 - local.get $6 - i32.store offset=8 - local.get $7 - local.set $11 - global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $11 - ) - (func $std/typedarray/testArrayMap<~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 - 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 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 3 - call $~lib/typedarray/Int32Array#constructor - local.tee $0 - i32.store - local.get $0 - 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 $~lib/typedarray/Int32Array#__set - local.get $0 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 1 - i32.const 2 - call $~lib/typedarray/Int32Array#__set - local.get $0 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 2 - i32.const 3 - call $~lib/typedarray/Int32Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 2736 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=8 - local.get $2 - call $~lib/typedarray/Int32Array#map - local.tee $1 - i32.store offset=12 - local.get $1 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 + local.get $5 + i64.const 11 i32.const 0 - call $~lib/typedarray/Int32Array#__get - i32.const 1 + call $~lib/typedarray/Uint64Array#indexOf + i32.const -1 i32.eq i32.eqz if i32.const 0 i32.const 544 - i32.const 388 + i32.const 608 i32.const 3 call $~lib/builtins/abort unreachable end - local.get $1 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 + local.get $5 + i64.const 5 i32.const 1 - call $~lib/typedarray/Int32Array#__get + call $~lib/typedarray/Uint64Array#indexOf + i32.const 5 i32.const 4 + i32.sub i32.eq i32.eqz if i32.const 0 i32.const 544 - i32.const 389 + i32.const 609 i32.const 3 call $~lib/builtins/abort unreachable end - local.get $1 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 + local.get $5 + i64.const 5 i32.const 2 - call $~lib/typedarray/Int32Array#__get - i32.const 9 + call $~lib/typedarray/Uint64Array#indexOf + i32.const -1 i32.eq i32.eqz if i32.const 0 i32.const 544 - i32.const 390 + i32.const 610 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 16 + i32.const 12 i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/typedarray/Uint32Array#map (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) + (func $~lib/typedarray/Float32Array#indexOf (param $0 i32) (param $1 f32) (param $2 i32) (result i32) (local $3 i32) - (local $4 i32) + (local $4 f32) (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.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 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=16 - global.get $~lib/memory/__stack_pointer - local.get $0 - local.tee $3 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - local.tee $2 - i32.store offset=4 - local.get $3 - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=8 - local.get $11 - call $~lib/typedarray/Uint32Array#get:length - local.set $4 - local.get $3 - i32.load offset=4 - local.set $5 - local.get $4 - i32.const 2 - i32.shl - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.const 9 - call $~lib/rt/itcms/__new - local.tee $7 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.const 0 - call $~lib/rt/itcms/__new - local.tee $8 - i32.store offset=16 - i32.const 0 - local.set $9 - loop $for-loop|0 - local.get $9 - local.get $4 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.0 (result i32) + local.get $0 + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + local.get $3 + local.set $6 + local.get $5 + call $~lib/typedarray/Float32Array#get:length + local.set $7 + local.get $7 + i32.const 0 + i32.eq + if (result i32) + i32.const 1 + else + local.get $6 + local.get $7 + i32.ge_s + end + if + i32.const -1 + br $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.0 + end + local.get $6 + i32.const 0 i32.lt_s - local.set $10 - local.get $10 if - local.get $8 - local.get $9 - i32.const 2 - i32.shl - i32.add - local.get $5 - local.get $9 - i32.const 2 - i32.shl + local.get $7 + local.get $6 i32.add - i32.load + local.tee $8 + i32.const 0 + local.tee $9 + local.get $8 local.get $9 - local.get $3 - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=20 - local.get $11 - i32.const 3 - global.set $~argumentsLength - local.get $2 - i32.load - call_indirect (type $i32_i32_i32_=>_i32) - i32.store + i32.gt_s + select + local.set $6 + end + local.get $5 + i32.load offset=4 + local.set $8 + loop $while-continue|0 + local.get $6 + local.get $7 + i32.lt_s + local.set $9 local.get $9 - i32.const 1 + if + local.get $8 + local.get $6 + i32.const 2 + i32.shl + i32.add + f32.load + local.get $4 + f32.eq + if + local.get $6 + br $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.0 + end + local.get $6 + i32.const 1 + i32.add + local.set $6 + br $while-continue|0 + end + end + i32.const -1 + end + ) + (func $~lib/typedarray/Float32Array#lastIndexOf (param $0 i32) (param $1 f32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 f32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.0 (result i32) + local.get $0 + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + local.get $3 + local.set $6 + local.get $5 + call $~lib/typedarray/Float32Array#get:length + local.set $7 + local.get $7 + i32.const 0 + i32.eq + if + i32.const -1 + br $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.0 + end + local.get $6 + i32.const 0 + i32.lt_s + if + local.get $7 + local.get $6 i32.add + local.set $6 + else + local.get $6 + local.get $7 + i32.ge_s + if + local.get $7 + i32.const 1 + i32.sub + local.set $6 + end + end + local.get $5 + i32.load offset=4 + local.set $8 + loop $while-continue|0 + local.get $6 + i32.const 0 + i32.ge_s local.set $9 - br $for-loop|0 + local.get $9 + if + local.get $8 + local.get $6 + i32.const 2 + i32.shl + i32.add + f32.load + local.get $4 + f32.eq + if + local.get $6 + br $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.0 + end + local.get $6 + i32.const 1 + i32.sub + local.set $6 + br $while-continue|0 + end end + i32.const -1 end - local.get $7 - local.get $8 - i32.store - local.get $7 - local.get $8 - i32.const 0 - call $~lib/rt/itcms/__link - local.get $7 - local.get $8 - i32.store offset=4 - local.get $7 - local.get $6 - i32.store offset=8 - local.get $7 - local.set $11 - global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $11 ) - (func $std/typedarray/testArrayMap<~lib/typedarray/Uint32Array,u32> + (func $~lib/typedarray/Float32Array#lastIndexOf@varargs (param $0 i32) (param $1 f32) (param $2 i32) (result i32) + block $1of1 + block $0of1 + block $outOfRange + global.get $~argumentsLength + i32.const 1 + i32.sub + br_table $0of1 $1of1 $outOfRange + end + unreachable + end + local.get $0 + call $~lib/typedarray/Float32Array#get:length + local.set $2 + end + local.get $0 + local.get $1 + local.get $2 + call $~lib/typedarray/Float32Array#lastIndexOf + ) + (func $std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Float32Array,f32> (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 16 + i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check @@ -19872,740 +18953,664 @@ 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 0 - i32.const 3 - call $~lib/typedarray/Uint32Array#constructor + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + global.get $std/typedarray/testArrayIndexOfAndLastIndexOfValues local.tee $0 i32.store local.get $0 - local.set $2 + call $~lib/array/Array#get:length + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $2 + i32.const 0 + local.get $1 + call $~lib/typedarray/Float32Array#constructor + local.tee $2 i32.store offset=4 + i32.const 0 + local.set $3 + loop $for-loop|0 + local.get $3 + local.get $1 + i32.lt_s + local.set $4 + local.get $4 + if + local.get $2 + local.get $3 + local.get $0 + local.get $3 + call $~lib/array/Array#__get + f32.convert_i32_s + call $~lib/typedarray/Float32Array#__set + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $for-loop|0 + end + end local.get $2 + f32.const 0 i32.const 0 - i32.const 1 - call $~lib/typedarray/Uint32Array#__set - local.get $0 - local.set $2 - global.get $~lib/memory/__stack_pointer + call $~lib/typedarray/Float32Array#indexOf + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 580 + i32.const 3 + call $~lib/builtins/abort + unreachable + end local.get $2 - i32.store offset=4 + f32.const 11 + i32.const 0 + call $~lib/typedarray/Float32Array#indexOf + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 581 + i32.const 3 + call $~lib/builtins/abort + unreachable + end local.get $2 - i32.const 1 - i32.const 2 - call $~lib/typedarray/Uint32Array#__set - local.get $0 - local.set $2 - global.get $~lib/memory/__stack_pointer + f32.const -1 + i32.const 0 + call $~lib/typedarray/Float32Array#indexOf + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 582 + i32.const 3 + call $~lib/builtins/abort + unreachable + end local.get $2 - i32.store offset=4 + f32.const 3 + i32.const 0 + call $~lib/typedarray/Float32Array#indexOf + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 583 + i32.const 3 + call $~lib/builtins/abort + unreachable + end local.get $2 + f32.const 3 i32.const 2 + call $~lib/typedarray/Float32Array#indexOf i32.const 3 - call $~lib/typedarray/Uint32Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 584 + i32.const 3 + call $~lib/builtins/abort + unreachable + end local.get $2 - i32.const 2768 - local.set $2 - global.get $~lib/memory/__stack_pointer + f32.const 3 + i32.const 3 + call $~lib/typedarray/Float32Array#indexOf + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 585 + i32.const 3 + call $~lib/builtins/abort + unreachable + end local.get $2 - i32.store offset=8 + f32.const 3 + i32.const 4 + call $~lib/typedarray/Float32Array#indexOf + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 586 + i32.const 3 + call $~lib/builtins/abort + unreachable + end local.get $2 - call $~lib/typedarray/Uint32Array#map - local.tee $1 - i32.store offset=12 - local.get $1 - local.set $2 - global.get $~lib/memory/__stack_pointer + f32.const 1 + i32.const 10 + call $~lib/typedarray/Float32Array#indexOf + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 587 + i32.const 3 + call $~lib/builtins/abort + unreachable + end local.get $2 - i32.store offset=4 + f32.const 1 + i32.const -100 + call $~lib/typedarray/Float32Array#indexOf + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 588 + i32.const 3 + call $~lib/builtins/abort + unreachable + end local.get $2 + f32.const 0 + i32.const 1 + global.set $~argumentsLength i32.const 0 - call $~lib/typedarray/Uint32Array#__get + call $~lib/typedarray/Float32Array#lastIndexOf@varargs + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 590 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + f32.const 11 i32.const 1 + global.set $~argumentsLength + i32.const 0 + call $~lib/typedarray/Float32Array#lastIndexOf@varargs + i32.const -1 i32.eq i32.eqz if i32.const 0 i32.const 544 - i32.const 388 + i32.const 591 i32.const 3 call $~lib/builtins/abort unreachable end - local.get $1 - local.set $2 - global.get $~lib/memory/__stack_pointer local.get $2 - i32.store offset=4 + f32.const -1 + i32.const 1 + global.set $~argumentsLength + i32.const 0 + call $~lib/typedarray/Float32Array#lastIndexOf@varargs + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 592 + i32.const 3 + call $~lib/builtins/abort + unreachable + end local.get $2 + f32.const 3 i32.const 1 - call $~lib/typedarray/Uint32Array#__get + global.set $~argumentsLength + i32.const 0 + call $~lib/typedarray/Float32Array#lastIndexOf@varargs + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 593 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + f32.const 3 i32.const 4 + call $~lib/typedarray/Float32Array#lastIndexOf + i32.const 3 i32.eq i32.eqz if i32.const 0 i32.const 544 - i32.const 389 + i32.const 594 i32.const 3 call $~lib/builtins/abort unreachable end - local.get $1 - local.set $2 - global.get $~lib/memory/__stack_pointer local.get $2 - i32.store offset=4 + f32.const 3 + i32.const 3 + call $~lib/typedarray/Float32Array#lastIndexOf + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 595 + i32.const 3 + call $~lib/builtins/abort + unreachable + end local.get $2 + f32.const 3 i32.const 2 - call $~lib/typedarray/Uint32Array#__get - i32.const 9 + call $~lib/typedarray/Float32Array#lastIndexOf + i32.const -1 i32.eq i32.eqz if i32.const 0 i32.const 544 - i32.const 390 + i32.const 596 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 - ) - (func $~lib/typedarray/Int64Array#map (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 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 - i64.const 0 - i64.store offset=8 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=16 - global.get $~lib/memory/__stack_pointer - local.get $0 - local.tee $3 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - local.tee $2 - i32.store offset=4 - local.get $3 - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=8 - local.get $11 - call $~lib/typedarray/Int64Array#get:length - local.set $4 - local.get $3 - i32.load offset=4 - local.set $5 - local.get $4 - i32.const 3 - i32.shl - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.const 10 - call $~lib/rt/itcms/__new - local.tee $7 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.const 0 - call $~lib/rt/itcms/__new - local.tee $8 - i32.store offset=16 - i32.const 0 - local.set $9 - loop $for-loop|0 - local.get $9 - local.get $4 - i32.lt_s - local.set $10 - local.get $10 - if - local.get $8 - local.get $9 - i32.const 3 - i32.shl - i32.add - local.get $5 - local.get $9 - i32.const 3 - i32.shl - i32.add - i64.load - local.get $9 - local.get $3 - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=20 - local.get $11 - i32.const 3 - global.set $~argumentsLength - local.get $2 - i32.load - call_indirect (type $i64_i32_i32_=>_i64) - i64.store - local.get $9 - i32.const 1 - i32.add - local.set $9 - br $for-loop|0 - end - end - local.get $7 - local.get $8 - i32.store - local.get $7 - local.get $8 - i32.const 0 - call $~lib/rt/itcms/__link - local.get $7 - local.get $8 - i32.store offset=4 - local.get $7 - local.get $6 - i32.store offset=8 - local.get $7 - local.set $11 - global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $11 - ) - (func $std/typedarray/testArrayMap<~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 - 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 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 3 - call $~lib/typedarray/Int64Array#constructor - local.tee $0 - i32.store - local.get $0 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 0 - i64.const 1 - call $~lib/typedarray/Int64Array#__set - local.get $0 - local.set $2 - 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 - i64.const 2 - call $~lib/typedarray/Int64Array#__set - local.get $0 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 2 - i64.const 3 - call $~lib/typedarray/Int64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 2800 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=8 - local.get $2 - call $~lib/typedarray/Int64Array#map - local.tee $1 - i32.store offset=12 - 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/typedarray/Int64Array#__get - i64.const 1 - i64.eq + i32.eq i32.eqz if i32.const 0 i32.const 544 - i32.const 388 + i32.const 597 i32.const 3 call $~lib/builtins/abort unreachable end - local.get $1 - local.set $2 - 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 - call $~lib/typedarray/Int64Array#__get - i64.const 4 - i64.eq + i32.eq i32.eqz if i32.const 0 i32.const 544 - i32.const 389 + i32.const 598 i32.const 3 call $~lib/builtins/abort unreachable end - local.get $1 - local.set $2 - global.get $~lib/memory/__stack_pointer local.get $2 - i32.store offset=4 - local.get $2 - i32.const 2 - call $~lib/typedarray/Int64Array#__get - i64.const 9 - i64.eq + f32.const 1 + i32.const -11 + call $~lib/typedarray/Float32Array#lastIndexOf + i32.const -1 + i32.eq i32.eqz if i32.const 0 i32.const 544 - i32.const 390 + i32.const 599 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 - ) - (func $~lib/typedarray/Uint64Array#map (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 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 - i64.const 0 - i64.store offset=8 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=16 - global.get $~lib/memory/__stack_pointer - local.get $0 - local.tee $3 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - local.tee $2 - i32.store offset=4 - local.get $3 - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $2 + i32.const 4 + i32.const 9 + call $~lib/typedarray/Float32Array#subarray + local.tee $5 i32.store offset=8 - local.get $11 - call $~lib/typedarray/Uint64Array#get:length - local.set $4 - local.get $3 - i32.load offset=4 - local.set $5 - local.get $4 - i32.const 3 - i32.shl - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.const 11 - call $~lib/rt/itcms/__new - local.tee $7 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.const 0 - call $~lib/rt/itcms/__new - local.tee $8 - i32.store offset=16 + local.get $5 + f32.const 3 i32.const 0 - local.set $9 - loop $for-loop|0 - local.get $9 - local.get $4 - i32.lt_s - local.set $10 - local.get $10 - if - local.get $8 - local.get $9 - i32.const 3 - i32.shl - i32.add - local.get $5 - local.get $9 - i32.const 3 - i32.shl - i32.add - i64.load - local.get $9 - local.get $3 - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=20 - local.get $11 - i32.const 3 - global.set $~argumentsLength - local.get $2 - i32.load - call_indirect (type $i64_i32_i32_=>_i64) - i64.store - local.get $9 - i32.const 1 - i32.add - local.set $9 - br $for-loop|0 - end + call $~lib/typedarray/Float32Array#indexOf + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 603 + i32.const 3 + call $~lib/builtins/abort + unreachable end - local.get $7 - local.get $8 - i32.store - local.get $7 - local.get $8 + local.get $5 + f32.const 4 i32.const 0 - call $~lib/rt/itcms/__link - local.get $7 - local.get $8 - i32.store offset=4 - local.get $7 - local.get $6 - i32.store offset=8 - local.get $7 - local.set $11 - global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $11 - ) - (func $std/typedarray/testArrayMap<~lib/typedarray/Uint64Array,u64> - (local $0 i32) - (local $1 i32) - (local $2 i32) - global.get $~lib/memory/__stack_pointer - i32.const 16 + call $~lib/typedarray/Float32Array#indexOf + i32.const 4 + i32.const 4 i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 3 - call $~lib/typedarray/Uint64Array#constructor - local.tee $0 - i32.store - local.get $0 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 604 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $5 + f32.const 5 i32.const 0 - i64.const 1 - call $~lib/typedarray/Uint64Array#__set - local.get $0 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 1 - i64.const 2 - call $~lib/typedarray/Uint64Array#__set - local.get $0 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 2 - i64.const 3 - call $~lib/typedarray/Uint64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 2832 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=8 - local.get $2 - call $~lib/typedarray/Uint64Array#map - local.tee $1 - i32.store offset=12 - local.get $1 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 + call $~lib/typedarray/Float32Array#indexOf + i32.const 5 + i32.const 4 + i32.sub + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 605 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $5 + f32.const 9 i32.const 0 - call $~lib/typedarray/Uint64Array#__get - i64.const 1 - i64.eq + call $~lib/typedarray/Float32Array#indexOf + i32.const -1 + i32.eq i32.eqz if i32.const 0 i32.const 544 - i32.const 388 + i32.const 606 i32.const 3 call $~lib/builtins/abort unreachable end - local.get $1 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 1 - call $~lib/typedarray/Uint64Array#__get - i64.const 4 - i64.eq + local.get $5 + f32.const 10 + i32.const 0 + call $~lib/typedarray/Float32Array#indexOf + i32.const -1 + i32.eq i32.eqz if i32.const 0 i32.const 544 - i32.const 389 + i32.const 607 i32.const 3 call $~lib/builtins/abort unreachable end - local.get $1 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 2 - call $~lib/typedarray/Uint64Array#__get - i64.const 9 - i64.eq + local.get $5 + f32.const 11 + i32.const 0 + call $~lib/typedarray/Float32Array#indexOf + i32.const -1 + i32.eq i32.eqz if i32.const 0 i32.const 544 - i32.const 390 + i32.const 608 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 + local.get $5 + f32.const 5 + i32.const 1 + call $~lib/typedarray/Float32Array#indexOf + i32.const 5 + i32.const 4 + i32.sub + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 609 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $5 + f32.const 5 + i32.const 2 + call $~lib/typedarray/Float32Array#indexOf + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 610 + 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/Float32Array#map (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) + (func $~lib/typedarray/Float64Array#indexOf (param $0 i32) (param $1 f64) (param $2 i32) (result i32) (local $3 i32) - (local $4 i32) + (local $4 f64) (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.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 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=16 - global.get $~lib/memory/__stack_pointer - local.get $0 - local.tee $3 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - local.tee $2 - i32.store offset=4 - local.get $3 - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=8 - local.get $11 - call $~lib/typedarray/Float32Array#get:length - local.set $4 - local.get $3 - i32.load offset=4 - local.set $5 - local.get $4 - i32.const 2 - i32.shl - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.const 12 - call $~lib/rt/itcms/__new - local.tee $7 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.const 0 - call $~lib/rt/itcms/__new - local.tee $8 - i32.store offset=16 - i32.const 0 - local.set $9 - loop $for-loop|0 - local.get $9 - local.get $4 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.0 (result i32) + local.get $0 + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + local.get $3 + local.set $6 + local.get $5 + call $~lib/typedarray/Float64Array#get:length + local.set $7 + local.get $7 + i32.const 0 + i32.eq + if (result i32) + i32.const 1 + else + local.get $6 + local.get $7 + i32.ge_s + end + if + i32.const -1 + br $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.0 + end + local.get $6 + i32.const 0 i32.lt_s - local.set $10 - local.get $10 if - local.get $8 - local.get $9 - i32.const 2 - i32.shl - i32.add - local.get $5 - local.get $9 - i32.const 2 - i32.shl + local.get $7 + local.get $6 i32.add - f32.load + local.tee $8 + i32.const 0 + local.tee $9 + local.get $8 local.get $9 - local.get $3 - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=20 - local.get $11 - i32.const 3 - global.set $~argumentsLength - local.get $2 - i32.load - call_indirect (type $f32_i32_i32_=>_f32) - f32.store + i32.gt_s + select + local.set $6 + end + local.get $5 + i32.load offset=4 + local.set $8 + loop $while-continue|0 + local.get $6 + local.get $7 + i32.lt_s + local.set $9 local.get $9 - i32.const 1 + if + local.get $8 + local.get $6 + i32.const 3 + i32.shl + i32.add + f64.load + local.get $4 + f64.eq + if + local.get $6 + br $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.0 + end + local.get $6 + i32.const 1 + i32.add + local.set $6 + br $while-continue|0 + end + end + i32.const -1 + end + ) + (func $~lib/typedarray/Float64Array#lastIndexOf (param $0 i32) (param $1 f64) (param $2 i32) (result i32) + (local $3 i32) + (local $4 f64) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.0 (result i32) + local.get $0 + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + local.get $3 + local.set $6 + local.get $5 + call $~lib/typedarray/Float64Array#get:length + local.set $7 + local.get $7 + i32.const 0 + i32.eq + if + i32.const -1 + br $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.0 + end + local.get $6 + i32.const 0 + i32.lt_s + if + local.get $7 + local.get $6 i32.add + local.set $6 + else + local.get $6 + local.get $7 + i32.ge_s + if + local.get $7 + i32.const 1 + i32.sub + local.set $6 + end + end + local.get $5 + i32.load offset=4 + local.set $8 + loop $while-continue|0 + local.get $6 + i32.const 0 + i32.ge_s local.set $9 - br $for-loop|0 + local.get $9 + if + local.get $8 + local.get $6 + i32.const 3 + i32.shl + i32.add + f64.load + local.get $4 + f64.eq + if + local.get $6 + br $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.0 + end + local.get $6 + i32.const 1 + i32.sub + local.set $6 + br $while-continue|0 + end end + i32.const -1 end - local.get $7 - local.get $8 - i32.store - local.get $7 - local.get $8 - i32.const 0 - call $~lib/rt/itcms/__link - local.get $7 - local.get $8 - i32.store offset=4 - local.get $7 - local.get $6 - i32.store offset=8 - local.get $7 - local.set $11 - global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $11 ) - (func $std/typedarray/testArrayMap<~lib/typedarray/Float32Array,f32> + (func $~lib/typedarray/Float64Array#lastIndexOf@varargs (param $0 i32) (param $1 f64) (param $2 i32) (result i32) + block $1of1 + block $0of1 + block $outOfRange + global.get $~argumentsLength + i32.const 1 + i32.sub + br_table $0of1 $1of1 $outOfRange + end + unreachable + end + local.get $0 + call $~lib/typedarray/Float64Array#get:length + local.set $2 + end + local.get $0 + local.get $1 + local.get $2 + call $~lib/typedarray/Float64Array#lastIndexOf + ) + (func $std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Float64Array,f64> (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 16 + i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check @@ -20613,13445 +19618,9786 @@ 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 0 - i32.const 3 - call $~lib/typedarray/Float32Array#constructor + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + global.get $std/typedarray/testArrayIndexOfAndLastIndexOfValues local.tee $0 i32.store local.get $0 - local.set $2 + call $~lib/array/Array#get:length + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $2 + i32.const 0 + local.get $1 + call $~lib/typedarray/Float64Array#constructor + local.tee $2 i32.store offset=4 + i32.const 0 + local.set $3 + loop $for-loop|0 + local.get $3 + local.get $1 + i32.lt_s + local.set $4 + local.get $4 + if + local.get $2 + local.get $3 + local.get $0 + local.get $3 + call $~lib/array/Array#__get + f64.convert_i32_s + call $~lib/typedarray/Float64Array#__set + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $for-loop|0 + end + end local.get $2 + f64.const 0 i32.const 0 - f32.const 1 - call $~lib/typedarray/Float32Array#__set - local.get $0 - local.set $2 - global.get $~lib/memory/__stack_pointer + call $~lib/typedarray/Float64Array#indexOf + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 580 + i32.const 3 + call $~lib/builtins/abort + unreachable + end local.get $2 - i32.store offset=4 + f64.const 11 + i32.const 0 + call $~lib/typedarray/Float64Array#indexOf + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 581 + i32.const 3 + call $~lib/builtins/abort + unreachable + end local.get $2 - i32.const 1 - f32.const 2 - call $~lib/typedarray/Float32Array#__set - local.get $0 - local.set $2 - global.get $~lib/memory/__stack_pointer + f64.const -1 + i32.const 0 + call $~lib/typedarray/Float64Array#indexOf + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 582 + i32.const 3 + call $~lib/builtins/abort + unreachable + end local.get $2 - i32.store offset=4 + f64.const 3 + i32.const 0 + call $~lib/typedarray/Float64Array#indexOf + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 583 + i32.const 3 + call $~lib/builtins/abort + unreachable + end local.get $2 + f64.const 3 i32.const 2 - f32.const 3 - call $~lib/typedarray/Float32Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 2864 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=8 - local.get $2 - call $~lib/typedarray/Float32Array#map - local.tee $1 - i32.store offset=12 - 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/typedarray/Float32Array#__get - f32.const 1 - f32.eq + call $~lib/typedarray/Float64Array#indexOf + i32.const 3 + i32.eq i32.eqz if i32.const 0 i32.const 544 - i32.const 388 + i32.const 584 i32.const 3 call $~lib/builtins/abort unreachable end - local.get $1 - local.set $2 - global.get $~lib/memory/__stack_pointer local.get $2 - i32.store offset=4 + f64.const 3 + i32.const 3 + call $~lib/typedarray/Float64Array#indexOf + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 585 + i32.const 3 + call $~lib/builtins/abort + unreachable + end local.get $2 - i32.const 1 - call $~lib/typedarray/Float32Array#__get - f32.const 4 - f32.eq + f64.const 3 + i32.const 4 + call $~lib/typedarray/Float64Array#indexOf + i32.const -1 + i32.eq i32.eqz if i32.const 0 i32.const 544 - i32.const 389 + i32.const 586 i32.const 3 call $~lib/builtins/abort unreachable end - local.get $1 - local.set $2 - global.get $~lib/memory/__stack_pointer local.get $2 - i32.store offset=4 + f64.const 1 + i32.const 10 + call $~lib/typedarray/Float64Array#indexOf + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 587 + i32.const 3 + call $~lib/builtins/abort + unreachable + end local.get $2 - i32.const 2 - call $~lib/typedarray/Float32Array#__get - f32.const 9 - f32.eq + f64.const 1 + i32.const -100 + call $~lib/typedarray/Float64Array#indexOf + i32.const 1 + i32.eq i32.eqz if i32.const 0 i32.const 544 - i32.const 390 + i32.const 588 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 - ) - (func $~lib/typedarray/Float64Array#map (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 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 - i64.const 0 - i64.store offset=8 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=16 - global.get $~lib/memory/__stack_pointer - local.get $0 - local.tee $3 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - local.tee $2 - i32.store offset=4 - local.get $3 - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=8 - local.get $11 - call $~lib/typedarray/Float64Array#get:length - local.set $4 - local.get $3 - i32.load offset=4 - local.set $5 - local.get $4 - i32.const 3 - i32.shl - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.const 13 - call $~lib/rt/itcms/__new - local.tee $7 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.const 0 - call $~lib/rt/itcms/__new - local.tee $8 - i32.store offset=16 - i32.const 0 - local.set $9 - loop $for-loop|0 - local.get $9 - local.get $4 - i32.lt_s - local.set $10 - local.get $10 - if - local.get $8 - local.get $9 - i32.const 3 - i32.shl - i32.add - local.get $5 - local.get $9 - i32.const 3 - i32.shl - i32.add - f64.load - local.get $9 - local.get $3 - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=20 - local.get $11 - i32.const 3 - global.set $~argumentsLength - local.get $2 - i32.load - call_indirect (type $f64_i32_i32_=>_f64) - f64.store - local.get $9 - i32.const 1 - i32.add - local.set $9 - br $for-loop|0 - end - end - local.get $7 - local.get $8 - i32.store - local.get $7 - local.get $8 - i32.const 0 - call $~lib/rt/itcms/__link - local.get $7 - local.get $8 - i32.store offset=4 - local.get $7 - local.get $6 - i32.store offset=8 - local.get $7 - local.set $11 - global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $11 - ) - (func $std/typedarray/testArrayMap<~lib/typedarray/Float64Array,f64> - (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 - 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 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 3 - call $~lib/typedarray/Float64Array#constructor - local.tee $0 - i32.store - local.get $0 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 0 - f64.const 1 - call $~lib/typedarray/Float64Array#__set - local.get $0 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 local.get $2 + f64.const 0 i32.const 1 - f64.const 2 - call $~lib/typedarray/Float64Array#__set - local.get $0 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 2 - f64.const 3 - call $~lib/typedarray/Float64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 2896 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=8 - local.get $2 - call $~lib/typedarray/Float64Array#map - local.tee $1 - i32.store offset=12 - local.get $1 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 + global.set $~argumentsLength i32.const 0 - call $~lib/typedarray/Float64Array#__get - f64.const 1 - f64.eq + call $~lib/typedarray/Float64Array#lastIndexOf@varargs + i32.const 0 + i32.eq i32.eqz if i32.const 0 i32.const 544 - i32.const 388 + i32.const 590 i32.const 3 call $~lib/builtins/abort unreachable end - local.get $1 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 local.get $2 + f64.const 11 i32.const 1 - call $~lib/typedarray/Float64Array#__get - f64.const 4 - f64.eq + global.set $~argumentsLength + i32.const 0 + call $~lib/typedarray/Float64Array#lastIndexOf@varargs + i32.const -1 + i32.eq i32.eqz if i32.const 0 i32.const 544 - i32.const 389 + i32.const 591 i32.const 3 call $~lib/builtins/abort unreachable end - local.get $1 - local.set $2 - global.get $~lib/memory/__stack_pointer local.get $2 - i32.store offset=4 - local.get $2 - i32.const 2 - call $~lib/typedarray/Float64Array#__get - f64.const 9 - f64.eq + f64.const -1 + i32.const 1 + global.set $~argumentsLength + i32.const 0 + call $~lib/typedarray/Float64Array#lastIndexOf@varargs + i32.const -1 + i32.eq i32.eqz if i32.const 0 i32.const 544 - i32.const 390 + i32.const 592 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 - ) - (func $~lib/typedarray/Int8Array#filter (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) - (local $12 i32) - (local $13 i32) - global.get $~lib/memory/__stack_pointer - 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 - i64.const 0 - i64.store offset=8 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=16 - global.get $~lib/memory/__stack_pointer - local.get $0 - local.tee $3 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - local.tee $2 - i32.store offset=4 - local.get $3 - local.set $13 - global.get $~lib/memory/__stack_pointer - local.get $13 - i32.store offset=8 - local.get $13 - call $~lib/typedarray/Int8Array#get:length - local.set $4 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.const 3 - call $~lib/rt/itcms/__new - local.tee $5 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.const 0 - i32.shl - i32.const 0 - call $~lib/rt/itcms/__new - local.tee $6 - i32.store offset=16 - local.get $3 - i32.load offset=4 - local.set $7 - i32.const 0 - local.set $8 - i32.const 0 - local.set $9 - loop $for-loop|0 - local.get $9 - local.get $4 - i32.lt_s - local.set $10 - local.get $10 - if - local.get $7 - local.get $9 - i32.const 0 - i32.shl - i32.add - i32.load8_s - local.set $11 - local.get $11 - local.get $9 - local.get $3 - local.set $13 - global.get $~lib/memory/__stack_pointer - local.get $13 - i32.store offset=20 - local.get $13 - i32.const 3 - global.set $~argumentsLength - local.get $2 - i32.load - call_indirect (type $i32_i32_i32_=>_i32) - if - local.get $6 - local.get $8 - local.tee $12 - i32.const 1 - i32.add - local.set $8 - local.get $12 - i32.const 0 - i32.shl - i32.add - local.get $11 - i32.store8 - end - local.get $9 - i32.const 1 - i32.add - local.set $9 - br $for-loop|0 - end - end - local.get $8 - i32.const 0 - i32.shl - local.set $9 - local.get $6 - local.get $9 - call $~lib/rt/itcms/__renew - local.set $10 - local.get $5 - local.get $10 - i32.store - local.get $5 - local.get $10 - i32.const 0 - call $~lib/rt/itcms/__link - local.get $5 - local.get $9 - i32.store offset=8 - local.get $5 - local.get $10 - i32.store offset=4 - local.get $5 - local.set $13 - global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $13 - ) - (func $std/typedarray/testArrayFilter<~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 - 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 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 6 - call $~lib/typedarray/Int8Array#constructor - local.tee $0 - i32.store - local.get $0 - 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 $~lib/typedarray/Int8Array#__set - local.get $0 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 local.get $2 + f64.const 3 i32.const 1 - i32.const 2 - call $~lib/typedarray/Int8Array#__set - local.get $0 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 2 - i32.const 3 - call $~lib/typedarray/Int8Array#__set - local.get $0 - local.set $2 - 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#__set - local.get $0 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 5 - i32.const 5 - call $~lib/typedarray/Int8Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 2928 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=8 - local.get $2 - call $~lib/typedarray/Int8Array#filter - local.tee $1 - i32.store offset=12 - local.get $1 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + global.set $~argumentsLength i32.const 0 + call $~lib/typedarray/Float64Array#lastIndexOf@varargs + i32.const 3 i32.eq i32.eqz if i32.const 0 i32.const 544 - i32.const 413 + i32.const 593 i32.const 3 call $~lib/builtins/abort unreachable end - local.get $1 - local.set $2 - global.get $~lib/memory/__stack_pointer local.get $2 - i32.store offset=4 - local.get $2 - call $~lib/typedarray/Int8Array#get:length + f64.const 3 + i32.const 4 + call $~lib/typedarray/Float64Array#lastIndexOf i32.const 3 i32.eq i32.eqz if i32.const 0 i32.const 544 - i32.const 414 + i32.const 594 i32.const 3 call $~lib/builtins/abort unreachable end - 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/typedarray/Int8Array#__get + f64.const 3 + i32.const 3 + call $~lib/typedarray/Float64Array#lastIndexOf i32.const 3 i32.eq i32.eqz if i32.const 0 i32.const 544 - i32.const 415 + i32.const 595 i32.const 3 call $~lib/builtins/abort unreachable end - local.get $1 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 local.get $2 - i32.const 1 - call $~lib/typedarray/Int8Array#__get - i32.const 4 + f64.const 3 + i32.const 2 + call $~lib/typedarray/Float64Array#lastIndexOf + i32.const -1 i32.eq i32.eqz if i32.const 0 i32.const 544 - i32.const 416 + i32.const 596 i32.const 3 call $~lib/builtins/abort unreachable end - local.get $1 - local.set $2 - global.get $~lib/memory/__stack_pointer local.get $2 - i32.store offset=4 + f64.const 1 + i32.const 100 + call $~lib/typedarray/Float64Array#lastIndexOf + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 597 + i32.const 3 + call $~lib/builtins/abort + unreachable + end local.get $2 - i32.const 2 - call $~lib/typedarray/Int8Array#__get - i32.const 5 + f64.const 1 + i32.const -10 + call $~lib/typedarray/Float64Array#lastIndexOf + i32.const 1 i32.eq i32.eqz if i32.const 0 i32.const 544 - i32.const 417 + i32.const 598 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + f64.const 1 + i32.const -11 + call $~lib/typedarray/Float64Array#lastIndexOf + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 599 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 - ) - (func $~lib/typedarray/Uint8Array#filter (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) - (local $12 i32) - (local $13 i32) - global.get $~lib/memory/__stack_pointer - 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 - i64.const 0 - i64.store offset=8 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=16 - global.get $~lib/memory/__stack_pointer - local.get $0 - local.tee $3 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - local.tee $2 - i32.store offset=4 - local.get $3 - local.set $13 - global.get $~lib/memory/__stack_pointer - local.get $13 - i32.store offset=8 - local.get $13 - call $~lib/typedarray/Uint8Array#get:length - local.set $4 - global.get $~lib/memory/__stack_pointer - i32.const 12 + local.get $2 i32.const 4 - call $~lib/rt/itcms/__new + i32.const 9 + call $~lib/typedarray/Float64Array#subarray local.tee $5 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.const 0 - i32.shl - i32.const 0 - call $~lib/rt/itcms/__new - local.tee $6 - i32.store offset=16 - local.get $3 - i32.load offset=4 - local.set $7 - i32.const 0 - local.set $8 + i32.store offset=8 + local.get $5 + f64.const 3 i32.const 0 - local.set $9 - loop $for-loop|0 - local.get $9 - local.get $4 - i32.lt_s - local.set $10 - local.get $10 - if - local.get $7 - local.get $9 - i32.const 0 - i32.shl - i32.add - i32.load8_u - local.set $11 - local.get $11 - local.get $9 - local.get $3 - local.set $13 - global.get $~lib/memory/__stack_pointer - local.get $13 - i32.store offset=20 - local.get $13 - i32.const 3 - global.set $~argumentsLength - local.get $2 - i32.load - call_indirect (type $i32_i32_i32_=>_i32) - if - local.get $6 - local.get $8 - local.tee $12 - i32.const 1 - i32.add - local.set $8 - local.get $12 - i32.const 0 - i32.shl - i32.add - local.get $11 - i32.store8 - end - local.get $9 - i32.const 1 - i32.add - local.set $9 - br $for-loop|0 - end + call $~lib/typedarray/Float64Array#indexOf + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 603 + i32.const 3 + call $~lib/builtins/abort + unreachable end - local.get $8 - i32.const 0 - i32.shl - local.set $9 - local.get $6 - local.get $9 - call $~lib/rt/itcms/__renew - local.set $10 local.get $5 - local.get $10 - i32.store - local.get $5 - local.get $10 + f64.const 4 i32.const 0 - call $~lib/rt/itcms/__link - local.get $5 - local.get $9 - i32.store offset=8 - local.get $5 - local.get $10 - i32.store offset=4 - local.get $5 - local.set $13 - global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $13 - ) - (func $std/typedarray/testArrayFilter<~lib/typedarray/Uint8Array,u8> - (local $0 i32) - (local $1 i32) - (local $2 i32) - global.get $~lib/memory/__stack_pointer - i32.const 16 + call $~lib/typedarray/Float64Array#indexOf + i32.const 4 + i32.const 4 i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 6 - call $~lib/typedarray/Uint8Array#constructor - local.tee $0 - i32.store - local.get $0 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 604 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $5 + f64.const 5 i32.const 0 - i32.const 1 - call $~lib/typedarray/Uint8Array#__set - local.get $0 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 1 - i32.const 2 - call $~lib/typedarray/Uint8Array#__set - local.get $0 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 2 - i32.const 3 - call $~lib/typedarray/Uint8Array#__set - local.get $0 - local.set $2 - 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#__set - local.get $0 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 5 + call $~lib/typedarray/Float64Array#indexOf i32.const 5 - call $~lib/typedarray/Uint8Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 2960 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=8 - local.get $2 - call $~lib/typedarray/Uint8Array#filter - local.tee $1 - i32.store offset=12 - local.get $1 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + i32.const 4 + i32.sub + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 605 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $5 + f64.const 9 i32.const 0 + call $~lib/typedarray/Float64Array#indexOf + i32.const -1 i32.eq i32.eqz if i32.const 0 i32.const 544 - i32.const 413 + i32.const 606 i32.const 3 call $~lib/builtins/abort unreachable end - local.get $1 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - call $~lib/typedarray/Uint8Array#get:length - i32.const 3 + local.get $5 + f64.const 10 + i32.const 0 + call $~lib/typedarray/Float64Array#indexOf + i32.const -1 i32.eq i32.eqz if i32.const 0 i32.const 544 - i32.const 414 + i32.const 607 i32.const 3 call $~lib/builtins/abort unreachable end - local.get $1 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 + local.get $5 + f64.const 11 i32.const 0 - call $~lib/typedarray/Uint8Array#__get - i32.const 3 + call $~lib/typedarray/Float64Array#indexOf + i32.const -1 i32.eq i32.eqz if i32.const 0 i32.const 544 - i32.const 415 + i32.const 608 i32.const 3 call $~lib/builtins/abort unreachable end - local.get $1 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 + local.get $5 + f64.const 5 i32.const 1 - call $~lib/typedarray/Uint8Array#__get + call $~lib/typedarray/Float64Array#indexOf + i32.const 5 i32.const 4 + i32.sub i32.eq i32.eqz if i32.const 0 i32.const 544 - i32.const 416 + i32.const 609 i32.const 3 call $~lib/builtins/abort unreachable end - local.get $1 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 + local.get $5 + f64.const 5 i32.const 2 - call $~lib/typedarray/Uint8Array#__get - i32.const 5 + call $~lib/typedarray/Float64Array#indexOf + i32.const -1 i32.eq i32.eqz if i32.const 0 i32.const 544 - i32.const 417 + i32.const 610 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 16 + i32.const 12 i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/typedarray/Uint8ClampedArray#filter (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) + (func $~lib/typedarray/Float64Array#includes (param $0 i32) (param $1 f64) (param $2 i32) (result i32) (local $3 i32) - (local $4 i32) + (local $4 f64) (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) - global.get $~lib/memory/__stack_pointer - 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 - i64.const 0 - i64.store offset=8 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=16 - global.get $~lib/memory/__stack_pointer - local.get $0 - local.tee $3 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - local.tee $2 - i32.store offset=4 - local.get $3 - local.set $13 - global.get $~lib/memory/__stack_pointer - local.get $13 - i32.store offset=8 - local.get $13 - call $~lib/typedarray/Uint8ClampedArray#get:length - local.set $4 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.const 5 - call $~lib/rt/itcms/__new - local.tee $5 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.const 0 - i32.shl - i32.const 0 - call $~lib/rt/itcms/__new - local.tee $6 - i32.store offset=16 - local.get $3 - i32.load offset=4 - local.set $7 - i32.const 0 - local.set $8 - i32.const 0 - local.set $9 - loop $for-loop|0 - local.get $9 - local.get $4 + (local $10 f64) + block $~lib/typedarray/INCLUDES<~lib/typedarray/Float64Array,f64>|inlined.0 (result i32) + local.get $0 + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + i32.const 1 + drop + local.get $3 + local.set $6 + local.get $5 + call $~lib/typedarray/Float64Array#get:length + local.set $7 + local.get $7 + i32.const 0 + i32.eq + if (result i32) + i32.const 1 + else + local.get $6 + local.get $7 + i32.ge_s + end + if + i32.const 0 + br $~lib/typedarray/INCLUDES<~lib/typedarray/Float64Array,f64>|inlined.0 + end + local.get $6 + i32.const 0 i32.lt_s - local.set $10 - local.get $10 if local.get $7 - local.get $9 - i32.const 0 - i32.shl + local.get $6 i32.add - i32.load8_u - local.set $11 - local.get $11 + local.tee $8 + i32.const 0 + local.tee $9 + local.get $8 + local.get $9 + i32.gt_s + select + local.set $6 + end + local.get $5 + i32.load offset=4 + local.set $8 + loop $while-continue|0 + local.get $6 + local.get $7 + i32.lt_s + local.set $9 local.get $9 - local.get $3 - local.set $13 - global.get $~lib/memory/__stack_pointer - local.get $13 - i32.store offset=20 - local.get $13 - i32.const 3 - global.set $~argumentsLength - local.get $2 - i32.load - call_indirect (type $i32_i32_i32_=>_i32) if - local.get $6 local.get $8 - local.tee $12 - i32.const 1 + local.get $6 + i32.const 3 + i32.shl i32.add - local.set $8 - local.get $12 - i32.const 0 - i32.shl + f64.load + local.set $10 + local.get $10 + local.get $4 + f64.eq + if (result i32) + i32.const 1 + else + local.get $10 + local.get $10 + f64.ne + local.get $4 + local.get $4 + f64.ne + i32.and + end + if + i32.const 1 + br $~lib/typedarray/INCLUDES<~lib/typedarray/Float64Array,f64>|inlined.0 + end + local.get $6 + i32.const 1 i32.add - local.get $11 - i32.store8 + local.set $6 + br $while-continue|0 end - local.get $9 - i32.const 1 - i32.add - local.set $9 - br $for-loop|0 end - end - local.get $8 - i32.const 0 - i32.shl - local.set $9 - local.get $6 - local.get $9 - call $~lib/rt/itcms/__renew - local.set $10 - local.get $5 - local.get $10 - i32.store - local.get $5 - local.get $10 - i32.const 0 - call $~lib/rt/itcms/__link - local.get $5 - local.get $9 - i32.store offset=8 - local.get $5 - local.get $10 - i32.store offset=4 - local.get $5 - local.set $13 - global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $13 - ) - (func $std/typedarray/testArrayFilter<~lib/typedarray/Uint8ClampedArray,u8> - (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 - 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 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 6 - call $~lib/typedarray/Uint8ClampedArray#constructor - local.tee $0 - i32.store - local.get $0 - 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 $~lib/typedarray/Uint8ClampedArray#__set - local.get $0 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 1 - i32.const 2 - call $~lib/typedarray/Uint8ClampedArray#__set - local.get $0 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 2 - i32.const 3 - call $~lib/typedarray/Uint8ClampedArray#__set - local.get $0 - local.set $2 - 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/Uint8ClampedArray#__set - local.get $0 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 5 - i32.const 5 - call $~lib/typedarray/Uint8ClampedArray#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 2992 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=8 - local.get $2 - call $~lib/typedarray/Uint8ClampedArray#filter - local.tee $1 - i32.store offset=12 - local.get $1 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - call $~lib/arraybuffer/ArrayBufferView#get:byteOffset - i32.const 0 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 413 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $1 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - call $~lib/typedarray/Uint8ClampedArray#get:length - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 414 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - 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/typedarray/Uint8ClampedArray#__get - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 415 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $1 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 1 - call $~lib/typedarray/Uint8ClampedArray#__get - i32.const 4 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 416 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $1 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 2 - call $~lib/typedarray/Uint8ClampedArray#__get - i32.const 5 - i32.eq - i32.eqz - if i32.const 0 - i32.const 544 - i32.const 417 - i32.const 3 - call $~lib/builtins/abort - unreachable + br $~lib/typedarray/INCLUDES<~lib/typedarray/Float64Array,f64>|inlined.0 end - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer ) - (func $~lib/typedarray/Int16Array#filter (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) + (func $~lib/typedarray/Float32Array#includes (param $0 i32) (param $1 f32) (param $2 i32) (result i32) (local $3 i32) - (local $4 i32) + (local $4 f32) (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) - global.get $~lib/memory/__stack_pointer - 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 - i64.const 0 - i64.store offset=8 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=16 - global.get $~lib/memory/__stack_pointer - local.get $0 - local.tee $3 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - local.tee $2 - i32.store offset=4 - local.get $3 - local.set $13 - global.get $~lib/memory/__stack_pointer - local.get $13 - i32.store offset=8 - local.get $13 - call $~lib/typedarray/Int16Array#get:length - local.set $4 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.const 6 - call $~lib/rt/itcms/__new - local.tee $5 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.const 1 - i32.shl - i32.const 0 - call $~lib/rt/itcms/__new - local.tee $6 - i32.store offset=16 - local.get $3 - i32.load offset=4 - local.set $7 - i32.const 0 - local.set $8 - i32.const 0 - local.set $9 - loop $for-loop|0 - local.get $9 - local.get $4 + (local $10 f32) + block $~lib/typedarray/INCLUDES<~lib/typedarray/Float32Array,f32>|inlined.0 (result i32) + local.get $0 + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + i32.const 1 + drop + local.get $3 + local.set $6 + local.get $5 + call $~lib/typedarray/Float32Array#get:length + local.set $7 + local.get $7 + i32.const 0 + i32.eq + if (result i32) + i32.const 1 + else + local.get $6 + local.get $7 + i32.ge_s + end + if + i32.const 0 + br $~lib/typedarray/INCLUDES<~lib/typedarray/Float32Array,f32>|inlined.0 + end + local.get $6 + i32.const 0 i32.lt_s - local.set $10 - local.get $10 if local.get $7 - local.get $9 - i32.const 1 - i32.shl + local.get $6 i32.add - i32.load16_s - local.set $11 - local.get $11 + local.tee $8 + i32.const 0 + local.tee $9 + local.get $8 + local.get $9 + i32.gt_s + select + local.set $6 + end + local.get $5 + i32.load offset=4 + local.set $8 + loop $while-continue|0 + local.get $6 + local.get $7 + i32.lt_s + local.set $9 local.get $9 - local.get $3 - local.set $13 - global.get $~lib/memory/__stack_pointer - local.get $13 - i32.store offset=20 - local.get $13 - i32.const 3 - global.set $~argumentsLength - local.get $2 - i32.load - call_indirect (type $i32_i32_i32_=>_i32) if - local.get $6 local.get $8 - local.tee $12 - i32.const 1 + local.get $6 + i32.const 2 + i32.shl i32.add - local.set $8 - local.get $12 + f32.load + local.set $10 + local.get $10 + local.get $4 + f32.eq + if (result i32) + i32.const 1 + else + local.get $10 + local.get $10 + f32.ne + local.get $4 + local.get $4 + f32.ne + i32.and + end + if + i32.const 1 + br $~lib/typedarray/INCLUDES<~lib/typedarray/Float32Array,f32>|inlined.0 + end + local.get $6 i32.const 1 - i32.shl i32.add - local.get $11 - i32.store16 + local.set $6 + br $while-continue|0 end - local.get $9 + end + i32.const 0 + br $~lib/typedarray/INCLUDES<~lib/typedarray/Float32Array,f32>|inlined.0 + end + ) + (func $~lib/util/number/decimalCount32 (param $0 i32) (result i32) + local.get $0 + i32.const 100000 + i32.lt_u + if + local.get $0 + i32.const 100 + i32.lt_u + if i32.const 1 + local.get $0 + i32.const 10 + i32.ge_u i32.add - local.set $9 - br $for-loop|0 + return + else + i32.const 3 + local.get $0 + i32.const 10000 + i32.ge_u + i32.add + local.get $0 + i32.const 1000 + i32.ge_u + i32.add + return + end + unreachable + else + local.get $0 + i32.const 10000000 + i32.lt_u + if + i32.const 6 + local.get $0 + i32.const 1000000 + i32.ge_u + i32.add + return + else + i32.const 8 + local.get $0 + i32.const 1000000000 + i32.ge_u + i32.add + local.get $0 + i32.const 100000000 + i32.ge_u + i32.add + return end + unreachable end - local.get $8 - i32.const 1 - i32.shl - local.set $9 - local.get $6 - local.get $9 - call $~lib/rt/itcms/__renew - local.set $10 - local.get $5 - local.get $10 - i32.store - local.get $5 - local.get $10 - i32.const 0 - call $~lib/rt/itcms/__link - local.get $5 - local.get $9 - i32.store offset=8 - local.get $5 - local.get $10 - i32.store offset=4 - local.get $5 - local.set $13 - global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $13 + unreachable ) - (func $std/typedarray/testArrayFilter<~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 - 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 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 6 - call $~lib/typedarray/Int16Array#constructor - local.tee $0 - i32.store - local.get $0 - 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 $~lib/typedarray/Int16Array#__set - local.get $0 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 1 - i32.const 2 - call $~lib/typedarray/Int16Array#__set - local.get $0 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 2 - i32.const 3 - call $~lib/typedarray/Int16Array#__set - local.get $0 - local.set $2 - 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#__set - local.get $0 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 5 - i32.const 5 - call $~lib/typedarray/Int16Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 3024 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=8 - local.get $2 - call $~lib/typedarray/Int16Array#filter - local.tee $1 - i32.store offset=12 - local.get $1 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - call $~lib/arraybuffer/ArrayBufferView#get:byteOffset - i32.const 0 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 413 - i32.const 3 - call $~lib/builtins/abort - unreachable + (func $~lib/util/number/utoa32_dec_lut (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 i64) + (local $9 i64) + (local $10 i32) + (local $11 i32) + loop $while-continue|0 + local.get $1 + i32.const 10000 + i32.ge_u + local.set $3 + local.get $3 + if + local.get $1 + i32.const 10000 + i32.div_u + local.set $4 + local.get $1 + i32.const 10000 + i32.rem_u + local.set $5 + local.get $4 + local.set $1 + local.get $5 + i32.const 100 + i32.div_u + local.set $6 + local.get $5 + i32.const 100 + i32.rem_u + local.set $7 + i32.const 6284 + local.get $6 + i32.const 2 + i32.shl + i32.add + i64.load32_u + local.set $8 + i32.const 6284 + local.get $7 + i32.const 2 + i32.shl + i32.add + i64.load32_u + local.set $9 + local.get $2 + i32.const 4 + i32.sub + local.set $2 + local.get $0 + local.get $2 + i32.const 1 + i32.shl + i32.add + local.get $8 + local.get $9 + i64.const 32 + i64.shl + i64.or + i64.store + br $while-continue|0 + end end local.get $1 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - call $~lib/typedarray/Int16Array#get:length - i32.const 3 - i32.eq - i32.eqz + i32.const 100 + i32.ge_u if - i32.const 0 - i32.const 544 - i32.const 414 - i32.const 3 - call $~lib/builtins/abort - unreachable + local.get $1 + i32.const 100 + i32.div_u + local.set $3 + local.get $1 + i32.const 100 + i32.rem_u + local.set $10 + local.get $3 + local.set $1 + local.get $2 + i32.const 2 + i32.sub + local.set $2 + i32.const 6284 + local.get $10 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $11 + local.get $0 + local.get $2 + i32.const 1 + i32.shl + i32.add + local.get $11 + i32.store end 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/typedarray/Int16Array#__get - i32.const 3 - i32.eq - i32.eqz + i32.const 10 + i32.ge_u if - i32.const 0 - i32.const 544 - i32.const 415 - i32.const 3 - call $~lib/builtins/abort - unreachable + local.get $2 + i32.const 2 + i32.sub + local.set $2 + i32.const 6284 + local.get $1 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $11 + local.get $0 + local.get $2 + i32.const 1 + i32.shl + i32.add + local.get $11 + i32.store + else + local.get $2 + i32.const 1 + i32.sub + local.set $2 + i32.const 48 + local.get $1 + i32.add + local.set $11 + local.get $0 + local.get $2 + i32.const 1 + i32.shl + i32.add + local.get $11 + i32.store16 + end + ) + (func $~lib/util/number/utoa_hex_lut (param $0 i32) (param $1 i64) (param $2 i32) + (local $3 i32) + loop $while-continue|0 + local.get $2 + i32.const 2 + i32.ge_u + local.set $3 + local.get $3 + if + local.get $2 + i32.const 2 + i32.sub + local.set $2 + local.get $0 + local.get $2 + i32.const 1 + i32.shl + i32.add + i32.const 6704 + local.get $1 + i32.wrap_i64 + i32.const 255 + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + i32.store + local.get $1 + i64.const 8 + i64.shr_u + local.set $1 + br $while-continue|0 + end end - local.get $1 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 local.get $2 i32.const 1 - call $~lib/typedarray/Int16Array#__get - i32.const 4 - i32.eq - i32.eqz + i32.and if - i32.const 0 - i32.const 544 - i32.const 416 - i32.const 3 - call $~lib/builtins/abort - unreachable + local.get $0 + i32.const 6704 + local.get $1 + i32.wrap_i64 + i32.const 6 + i32.shl + i32.add + i32.load16_u + i32.store16 end + ) + (func $~lib/util/number/ulog_base (param $0 i64) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i64) + (local $4 i64) + (local $5 i32) local.get $1 local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 local.get $2 - i32.const 2 - call $~lib/typedarray/Int16Array#__get - i32.const 5 + i32.popcnt + i32.const 1 i32.eq - i32.eqz if - i32.const 0 - i32.const 544 - i32.const 417 - i32.const 3 - call $~lib/builtins/abort - unreachable + 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 + return end - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/typedarray/Uint16Array#filter (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) - (local $12 i32) - (local $13 i32) - global.get $~lib/memory/__stack_pointer - 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 - i64.const 0 - i64.store offset=8 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=16 - global.get $~lib/memory/__stack_pointer - local.get $0 - local.tee $3 - i32.store - global.get $~lib/memory/__stack_pointer local.get $1 - local.tee $2 - i32.store offset=4 + i64.extend_i32_s + local.set $3 local.get $3 - local.set $13 - global.get $~lib/memory/__stack_pointer - local.get $13 - i32.store offset=8 - local.get $13 - call $~lib/typedarray/Uint16Array#get:length local.set $4 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.const 7 - call $~lib/rt/itcms/__new - local.tee $5 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $4 i32.const 1 - i32.shl - i32.const 0 - call $~lib/rt/itcms/__new - local.tee $6 - i32.store offset=16 - local.get $3 - i32.load offset=4 - local.set $7 - i32.const 0 - local.set $8 - i32.const 0 - local.set $9 - loop $for-loop|0 - local.get $9 + local.set $5 + loop $while-continue|0 + local.get $0 local.get $4 - i32.lt_s - local.set $10 - local.get $10 + i64.ge_u + local.set $2 + local.get $2 if - local.get $7 - local.get $9 + local.get $0 + local.get $4 + i64.div_u + local.set $0 + local.get $4 + local.get $4 + i64.mul + local.set $4 + local.get $5 i32.const 1 i32.shl - i32.add - i32.load16_u - local.set $11 - local.get $11 - local.get $9 + local.set $5 + br $while-continue|0 + end + end + loop $while-continue|1 + local.get $0 + i64.const 1 + i64.ge_u + local.set $2 + local.get $2 + if + local.get $0 local.get $3 - local.set $13 - global.get $~lib/memory/__stack_pointer - local.get $13 - i32.store offset=20 - local.get $13 - i32.const 3 - global.set $~argumentsLength - local.get $2 - i32.load - call_indirect (type $i32_i32_i32_=>_i32) - if - local.get $6 - local.get $8 - local.tee $12 - i32.const 1 - i32.add - local.set $8 - local.get $12 - i32.const 1 - i32.shl - i32.add - local.get $11 - i32.store16 - end - local.get $9 + i64.div_u + local.set $0 + local.get $5 i32.const 1 i32.add - local.set $9 - br $for-loop|0 + local.set $5 + br $while-continue|1 end end - local.get $8 - i32.const 1 - i32.shl - local.set $9 - local.get $6 - local.get $9 - call $~lib/rt/itcms/__renew - local.set $10 - local.get $5 - local.get $10 - i32.store - local.get $5 - local.get $10 - i32.const 0 - call $~lib/rt/itcms/__link - local.get $5 - local.get $9 - i32.store offset=8 local.get $5 - local.get $10 - i32.store offset=4 - local.get $5 - local.set $13 - global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $13 - ) - (func $std/typedarray/testArrayFilter<~lib/typedarray/Uint16Array,u16> - (local $0 i32) - (local $1 i32) - (local $2 i32) - global.get $~lib/memory/__stack_pointer - i32.const 16 + i32.const 1 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 - global.get $~lib/memory/__stack_pointer + ) + (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 i64) + (local $7 i32) + local.get $3 + i64.extend_i32_s + local.set $4 + local.get $3 + local.get $3 + i32.const 1 + i32.sub + i32.and i32.const 0 - i32.const 6 - call $~lib/typedarray/Uint16Array#constructor - local.tee $0 - i32.store + i32.eq + if + local.get $3 + i32.ctz + i32.const 7 + i32.and + i64.extend_i32_s + local.set $5 + local.get $4 + i64.const 1 + i64.sub + local.set $6 + loop $do-continue|0 + local.get $2 + i32.const 1 + i32.sub + local.set $2 + local.get $0 + local.get $2 + i32.const 1 + i32.shl + i32.add + i32.const 7760 + local.get $1 + local.get $6 + i64.and + i32.wrap_i64 + i32.const 1 + i32.shl + i32.add + i32.load16_u + i32.store16 + local.get $1 + local.get $5 + i64.shr_u + local.set $1 + local.get $1 + i64.const 0 + i64.ne + local.set $7 + local.get $7 + br_if $do-continue|0 + end + else + loop $do-continue|1 + local.get $2 + i32.const 1 + i32.sub + local.set $2 + local.get $1 + local.get $4 + i64.div_u + local.set $6 + local.get $0 + local.get $2 + i32.const 1 + i32.shl + i32.add + i32.const 7760 + local.get $1 + local.get $6 + local.get $4 + i64.mul + i64.sub + i32.wrap_i64 + i32.const 1 + i32.shl + i32.add + i32.load16_u + i32.store16 + local.get $6 + local.set $1 + local.get $1 + i64.const 0 + i64.ne + local.set $7 + local.get $7 + br_if $do-continue|1 + end + end + ) + (func $~lib/string/String#get:length (param $0 i32) (result i32) local.get $0 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u + ) + (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) i32.const 0 + local.set $2 i32.const 1 - call $~lib/typedarray/Uint16Array#__set - local.get $0 + drop + local.get $1 + i32.const 24 + i32.shl + i32.const 24 + i32.shr_s + i32.const 0 + i32.lt_s local.set $2 - global.get $~lib/memory/__stack_pointer local.get $2 - i32.store offset=4 + if + i32.const 0 + local.get $1 + i32.sub + local.set $1 + local.get $0 + i32.const 45 + i32.store16 + end + i32.const 0 + i32.const 1 + i32.le_s + drop + i32.const 1 + drop + i32.const 1 + i32.const 4 + i32.le_u + drop + local.get $1 + i32.const 24 + i32.shl + i32.const 24 + i32.shr_s + i32.const 10 + i32.lt_u + if + local.get $0 + local.get $2 + i32.const 1 + i32.shl + i32.add + local.get $1 + i32.const 24 + i32.shl + i32.const 24 + i32.shr_s + i32.const 48 + i32.or + i32.store16 + i32.const 1 + local.get $2 + i32.add + return + end local.get $2 + local.set $3 i32.const 1 - i32.const 2 - call $~lib/typedarray/Uint16Array#__set + i32.const 4 + i32.le_u + drop + local.get $3 + local.get $1 + i32.const 24 + i32.shl + i32.const 24 + i32.shr_s + call $~lib/util/number/decimalCount32 + i32.add + local.set $3 local.get $0 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 2 - i32.const 3 - call $~lib/typedarray/Uint16Array#__set + local.set $6 + local.get $1 + i32.const 24 + i32.shl + i32.const 24 + i32.shr_s + local.set $5 + local.get $3 + local.set $4 + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $6 + local.get $5 + local.get $4 + call $~lib/util/number/utoa32_dec_lut + local.get $3 + ) + (func $~lib/typedarray/Int8Array#join (param $0 i32) (param $1 i32) (result i32) local.get $0 - local.set $2 - 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#__set + i32.load offset=4 local.get $0 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 5 - i32.const 5 - call $~lib/typedarray/Uint16Array#__set - global.get $~lib/memory/__stack_pointer + call $~lib/typedarray/Int8Array#get:length + local.get $1 + call $~lib/util/string/joinIntegerArray + ) + (func $~lib/util/string/compareImpl (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) (result i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) local.get $0 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 3056 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=8 - local.get $2 - call $~lib/typedarray/Uint16Array#filter - local.tee $1 - i32.store offset=12 local.get $1 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 + i32.const 1 + i32.shl + i32.add + local.set $5 local.get $2 - call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + local.get $3 + i32.const 1 + i32.shl + i32.add + local.set $6 i32.const 0 - i32.eq - i32.eqz - if + i32.const 2 + i32.lt_s + drop + local.get $4 + i32.const 4 + i32.ge_u + if (result i32) + local.get $5 + i32.const 7 + i32.and + local.get $6 + i32.const 7 + i32.and + i32.or + i32.eqz + else i32.const 0 - i32.const 544 - i32.const 413 - i32.const 3 - call $~lib/builtins/abort - unreachable end + if + block $do-break|0 + loop $do-continue|0 + local.get $5 + i64.load + local.get $6 + i64.load + i64.ne + if + br $do-break|0 + end + local.get $5 + i32.const 8 + i32.add + local.set $5 + local.get $6 + i32.const 8 + i32.add + local.set $6 + local.get $4 + i32.const 4 + i32.sub + local.set $4 + local.get $4 + i32.const 4 + i32.ge_u + local.set $7 + local.get $7 + br_if $do-continue|0 + end + end + end + loop $while-continue|1 + local.get $4 + local.tee $7 + i32.const 1 + i32.sub + local.set $4 + local.get $7 + local.set $7 + local.get $7 + if + local.get $5 + i32.load16_u + local.set $8 + local.get $6 + i32.load16_u + local.set $9 + local.get $8 + local.get $9 + i32.ne + if + local.get $8 + local.get $9 + i32.sub + return + end + local.get $5 + i32.const 2 + i32.add + local.set $5 + local.get $6 + i32.const 2 + i32.add + local.set $6 + br $while-continue|1 + end + end + i32.const 0 + ) + (func $~lib/string/String.__eq (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + local.get $0 local.get $1 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - call $~lib/typedarray/Uint16Array#get:length - i32.const 3 i32.eq - i32.eqz if - i32.const 0 - i32.const 544 - i32.const 414 - i32.const 3 - call $~lib/builtins/abort - unreachable + i32.const 1 + return end - local.get $1 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 + local.get $0 i32.const 0 - call $~lib/typedarray/Uint16Array#__get - i32.const 3 i32.eq - i32.eqz + if (result i32) + i32.const 1 + else + local.get $1 + i32.const 0 + i32.eq + end if i32.const 0 - i32.const 544 - i32.const 415 - i32.const 3 - call $~lib/builtins/abort - unreachable + return end - local.get $1 + local.get $0 + call $~lib/string/String#get:length local.set $2 - global.get $~lib/memory/__stack_pointer local.get $2 - i32.store offset=4 - local.get $2 - i32.const 1 - call $~lib/typedarray/Uint16Array#__get - i32.const 4 - i32.eq - i32.eqz + local.get $1 + call $~lib/string/String#get:length + i32.ne if i32.const 0 - i32.const 544 - i32.const 416 - i32.const 3 - call $~lib/builtins/abort - unreachable + return end + local.get $0 + i32.const 0 local.get $1 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 + i32.const 0 local.get $2 - i32.const 2 - call $~lib/typedarray/Uint16Array#__get - i32.const 5 - i32.eq + call $~lib/util/string/compareImpl i32.eqz - if - i32.const 0 - i32.const 544 - 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 ) - (func $~lib/typedarray/Int32Array#filter (param $0 i32) (param $1 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) (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - (local $10 i32) - (local $11 i32) - (local $12 i32) - (local $13 i32) - global.get $~lib/memory/__stack_pointer - i32.const 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 - i64.const 0 - i64.store offset=8 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=16 - global.get $~lib/memory/__stack_pointer - local.get $0 - local.tee $3 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - local.tee $2 - i32.store offset=4 - local.get $3 - local.set $13 - global.get $~lib/memory/__stack_pointer - local.get $13 - i32.store offset=8 - local.get $13 - call $~lib/typedarray/Int32Array#get:length - local.set $4 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.const 8 - call $~lib/rt/itcms/__new - local.tee $5 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.const 2 - i32.shl i32.const 0 - call $~lib/rt/itcms/__new - local.tee $6 - i32.store offset=16 - local.get $3 - i32.load offset=4 - local.set $7 - i32.const 0 - local.set $8 + local.set $2 i32.const 0 - local.set $9 - loop $for-loop|0 - local.get $9 - local.get $4 - i32.lt_s - local.set $10 - local.get $10 - if - local.get $7 - local.get $9 - i32.const 2 - i32.shl - i32.add - i32.load - local.set $11 - local.get $11 - local.get $9 - local.get $3 - local.set $13 - global.get $~lib/memory/__stack_pointer - local.get $13 - i32.store offset=20 - local.get $13 - i32.const 3 - global.set $~argumentsLength - local.get $2 - i32.load - call_indirect (type $i32_i32_i32_=>_i32) - if - local.get $6 - local.get $8 - local.tee $12 - i32.const 1 - i32.add - local.set $8 - local.get $12 - i32.const 2 - i32.shl - i32.add - local.get $11 - i32.store - end - local.get $9 - i32.const 1 - i32.add - local.set $9 - br $for-loop|0 - end - end - local.get $8 - i32.const 2 - i32.shl - local.set $9 - local.get $6 - local.get $9 - call $~lib/rt/itcms/__renew - local.set $10 - local.get $5 - local.get $10 - i32.store - local.get $5 - local.get $10 + drop i32.const 0 - call $~lib/rt/itcms/__link - local.get $5 - local.get $9 - i32.store offset=8 - local.get $5 - local.get $10 - i32.store offset=4 - local.get $5 - local.set $13 - global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $13 - ) - (func $std/typedarray/testArrayFilter<~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 - 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 - global.get $~lib/memory/__stack_pointer + i32.const 1 + i32.le_s + drop i32.const 0 - i32.const 6 - call $~lib/typedarray/Int32Array#constructor - local.tee $0 - i32.store - local.get $0 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 + drop + local.get $1 + i32.const 255 + i32.and + i32.const 10 + i32.lt_u + if + local.get $0 + local.get $1 + i32.const 255 + i32.and + i32.const 48 + i32.or + i32.store16 + i32.const 1 + return + end local.get $2 - i32.const 0 + local.set $3 i32.const 1 - call $~lib/typedarray/Int32Array#__set + i32.const 4 + i32.le_u + drop + local.get $3 + local.get $1 + i32.const 255 + i32.and + call $~lib/util/number/decimalCount32 + i32.add + local.set $3 local.get $0 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 + local.set $6 + local.get $1 + i32.const 255 + i32.and + local.set $5 + local.get $3 + local.set $4 + i32.const 0 i32.const 1 - i32.const 2 - call $~lib/typedarray/Int32Array#__set + i32.ge_s + drop + local.get $6 + local.get $5 + local.get $4 + call $~lib/util/number/utoa32_dec_lut + local.get $3 + ) + (func $~lib/typedarray/Uint8Array#join (param $0 i32) (param $1 i32) (result i32) local.get $0 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 2 - i32.const 3 - call $~lib/typedarray/Int32Array#__set + i32.load offset=4 local.get $0 - local.set $2 - 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#__set + call $~lib/typedarray/Uint8Array#get:length + local.get $1 + call $~lib/util/string/joinIntegerArray + ) + (func $~lib/typedarray/Uint8ClampedArray#join (param $0 i32) (param $1 i32) (result i32) local.get $0 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 5 - i32.const 5 - call $~lib/typedarray/Int32Array#__set - global.get $~lib/memory/__stack_pointer + i32.load offset=4 local.get $0 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 3088 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=8 - local.get $2 - call $~lib/typedarray/Int32Array#filter - local.tee $1 - i32.store offset=12 + call $~lib/typedarray/Uint8ClampedArray#get:length local.get $1 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + call $~lib/util/string/joinIntegerArray + ) + (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) i32.const 0 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 413 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $1 local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - call $~lib/typedarray/Int32Array#get:length - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 414 - i32.const 3 - call $~lib/builtins/abort - unreachable - end + i32.const 1 + drop local.get $1 + i32.const 16 + i32.shl + i32.const 16 + i32.shr_s + i32.const 0 + i32.lt_s local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 local.get $2 - i32.const 0 - call $~lib/typedarray/Int32Array#__get - i32.const 3 - i32.eq - i32.eqz if i32.const 0 - i32.const 544 - i32.const 415 - i32.const 3 - call $~lib/builtins/abort - unreachable + local.get $1 + i32.sub + local.set $1 + local.get $0 + i32.const 45 + i32.store16 end - 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 $~lib/typedarray/Int32Array#__get + i32.le_s + drop + i32.const 1 + drop + i32.const 2 i32.const 4 - i32.eq - i32.eqz + i32.le_u + drop + local.get $1 + i32.const 16 + i32.shl + i32.const 16 + i32.shr_s + i32.const 10 + i32.lt_u if - i32.const 0 - i32.const 544 - i32.const 416 - i32.const 3 - call $~lib/builtins/abort - unreachable + local.get $0 + local.get $2 + i32.const 1 + i32.shl + i32.add + local.get $1 + i32.const 16 + i32.shl + i32.const 16 + i32.shr_s + i32.const 48 + i32.or + i32.store16 + i32.const 1 + local.get $2 + i32.add + return end - local.get $1 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 local.get $2 + local.set $3 i32.const 2 - call $~lib/typedarray/Int32Array#__get - i32.const 5 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 417 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.le_u + drop + local.get $3 + local.get $1 + i32.const 16 + i32.shl i32.const 16 + i32.shr_s + call $~lib/util/number/decimalCount32 i32.add - global.set $~lib/memory/__stack_pointer + local.set $3 + local.get $0 + local.set $6 + local.get $1 + i32.const 16 + i32.shl + i32.const 16 + i32.shr_s + local.set $5 + local.get $3 + local.set $4 + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $6 + local.get $5 + local.get $4 + call $~lib/util/number/utoa32_dec_lut + local.get $3 ) - (func $~lib/typedarray/Uint32Array#filter (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Int16Array#join (param $0 i32) (param $1 i32) (result i32) + local.get $0 + i32.load offset=4 + local.get $0 + call $~lib/typedarray/Int16Array#get:length + local.get $1 + call $~lib/util/string/joinIntegerArray + ) + (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) - (local $10 i32) - (local $11 i32) - (local $12 i32) - (local $13 i32) - global.get $~lib/memory/__stack_pointer - 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 - i64.const 0 - i64.store offset=8 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=16 - global.get $~lib/memory/__stack_pointer + i32.const 0 + local.set $2 + i32.const 0 + drop + i32.const 0 + i32.const 1 + i32.le_s + drop + i32.const 0 + drop + local.get $1 + i32.const 65535 + i32.and + i32.const 10 + i32.lt_u + if + local.get $0 + local.get $1 + i32.const 65535 + i32.and + i32.const 48 + i32.or + i32.store16 + i32.const 1 + return + end + local.get $2 + local.set $3 + i32.const 2 + i32.const 4 + i32.le_u + drop + local.get $3 + local.get $1 + i32.const 65535 + i32.and + call $~lib/util/number/decimalCount32 + i32.add + local.set $3 local.get $0 - local.tee $3 - i32.store - global.get $~lib/memory/__stack_pointer + local.set $6 local.get $1 - local.tee $2 - i32.store offset=4 + i32.const 65535 + i32.and + local.set $5 local.get $3 - local.set $13 - global.get $~lib/memory/__stack_pointer - local.get $13 - i32.store offset=8 - local.get $13 - call $~lib/typedarray/Uint32Array#get:length local.set $4 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.const 9 - call $~lib/rt/itcms/__new - local.tee $5 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.const 2 - i32.shl i32.const 0 - call $~lib/rt/itcms/__new - local.tee $6 - i32.store offset=16 + i32.const 1 + i32.ge_s + drop + local.get $6 + local.get $5 + local.get $4 + call $~lib/util/number/utoa32_dec_lut local.get $3 + ) + (func $~lib/typedarray/Uint16Array#join (param $0 i32) (param $1 i32) (result i32) + local.get $0 i32.load offset=4 - local.set $7 + local.get $0 + call $~lib/typedarray/Uint16Array#get:length + local.get $1 + call $~lib/util/string/joinIntegerArray + ) + (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) i32.const 0 - local.set $8 + local.set $2 + i32.const 1 + drop + local.get $1 i32.const 0 - local.set $9 - loop $for-loop|0 - local.get $9 - local.get $4 - i32.lt_s - local.set $10 - local.get $10 - if - local.get $7 - local.get $9 - i32.const 2 - i32.shl - i32.add - i32.load - local.set $11 - local.get $11 - local.get $9 - local.get $3 - local.set $13 - global.get $~lib/memory/__stack_pointer - local.get $13 - i32.store offset=20 - local.get $13 - i32.const 3 - global.set $~argumentsLength - local.get $2 - i32.load - call_indirect (type $i32_i32_i32_=>_i32) - if - local.get $6 - local.get $8 - local.tee $12 - i32.const 1 - i32.add - local.set $8 - local.get $12 - i32.const 2 - i32.shl - i32.add - local.get $11 - i32.store - end - local.get $9 - i32.const 1 - i32.add - local.set $9 - br $for-loop|0 - end - end - local.get $8 - i32.const 2 - i32.shl - local.set $9 - local.get $6 - local.get $9 - call $~lib/rt/itcms/__renew - local.set $10 - local.get $5 - local.get $10 - i32.store - local.get $5 - local.get $10 - i32.const 0 - call $~lib/rt/itcms/__link - local.get $5 - local.get $9 - i32.store offset=8 - local.get $5 - local.get $10 - i32.store offset=4 - local.get $5 - local.set $13 - global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $13 - ) - (func $std/typedarray/testArrayFilter<~lib/typedarray/Uint32Array,u32> - (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 - 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 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 6 - call $~lib/typedarray/Uint32Array#constructor - local.tee $0 - i32.store - local.get $0 + i32.lt_s local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 local.get $2 + if + i32.const 0 + local.get $1 + i32.sub + local.set $1 + local.get $0 + i32.const 45 + i32.store16 + end i32.const 0 i32.const 1 - call $~lib/typedarray/Uint32Array#__set - local.get $0 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 + i32.le_s + drop i32.const 1 - i32.const 2 - call $~lib/typedarray/Uint32Array#__set - local.get $0 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 2 - i32.const 3 - call $~lib/typedarray/Uint32Array#__set - local.get $0 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 + drop + i32.const 4 + i32.const 4 + i32.le_u + drop + local.get $1 + i32.const 10 + i32.lt_u + if + local.get $0 + local.get $2 + i32.const 1 + i32.shl + i32.add + local.get $1 + i32.const 48 + i32.or + i32.store16 + i32.const 1 + local.get $2 + i32.add + return + end local.get $2 - i32.const 3 + local.set $3 i32.const 4 - call $~lib/typedarray/Uint32Array#__set + i32.const 4 + i32.le_u + drop + local.get $3 + local.get $1 + call $~lib/util/number/decimalCount32 + i32.add + local.set $3 local.get $0 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 5 - i32.const 5 - call $~lib/typedarray/Uint32Array#__set - global.get $~lib/memory/__stack_pointer + local.set $6 + local.get $1 + local.set $5 + local.get $3 + local.set $4 + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $6 + local.get $5 + local.get $4 + call $~lib/util/number/utoa32_dec_lut + local.get $3 + ) + (func $~lib/typedarray/Int32Array#join (param $0 i32) (param $1 i32) (result i32) local.get $0 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 3120 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=8 - local.get $2 - call $~lib/typedarray/Uint32Array#filter - local.tee $1 - i32.store offset=12 + i32.load offset=4 + local.get $0 + call $~lib/typedarray/Int32Array#get:length local.get $1 + call $~lib/util/string/joinIntegerArray + ) + (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) + i32.const 0 local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - call $~lib/arraybuffer/ArrayBufferView#get:byteOffset i32.const 0 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 413 - i32.const 3 - call $~lib/builtins/abort - unreachable - end + drop + i32.const 0 + i32.const 1 + i32.le_s + drop + i32.const 0 + drop local.get $1 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - call $~lib/typedarray/Uint32Array#get:length - i32.const 3 - i32.eq - i32.eqz + i32.const 10 + i32.lt_u if - i32.const 0 - i32.const 544 - i32.const 414 - i32.const 3 - call $~lib/builtins/abort - unreachable + local.get $0 + local.get $1 + i32.const 48 + i32.or + i32.store16 + i32.const 1 + return end - 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/typedarray/Uint32Array#__get - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 415 - i32.const 3 - call $~lib/builtins/abort - unreachable - end + local.set $3 + i32.const 4 + i32.const 4 + i32.le_u + drop + local.get $3 local.get $1 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 + call $~lib/util/number/decimalCount32 + i32.add + local.set $3 + local.get $0 + local.set $6 + local.get $1 + local.set $5 + local.get $3 + local.set $4 + i32.const 0 i32.const 1 - call $~lib/typedarray/Uint32Array#__get - i32.const 4 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 416 - i32.const 3 - call $~lib/builtins/abort - unreachable - end + i32.ge_s + drop + local.get $6 + local.get $5 + local.get $4 + call $~lib/util/number/utoa32_dec_lut + local.get $3 + ) + (func $~lib/typedarray/Uint32Array#join (param $0 i32) (param $1 i32) (result i32) + local.get $0 + i32.load offset=4 + local.get $0 + call $~lib/typedarray/Uint32Array#get:length local.get $1 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 2 - call $~lib/typedarray/Uint32Array#__get - i32.const 5 - i32.eq - i32.eqz + call $~lib/util/string/joinIntegerArray + ) + (func $~lib/util/number/decimalCount64High (param $0 i64) (result i32) + local.get $0 + i64.const 1000000000000000 + i64.lt_u if - i32.const 0 - i32.const 544 - i32.const 417 - i32.const 3 - call $~lib/builtins/abort + local.get $0 + i64.const 1000000000000 + i64.lt_u + if + i32.const 10 + local.get $0 + i64.const 100000000000 + i64.ge_u + i32.add + local.get $0 + i64.const 10000000000 + i64.ge_u + i32.add + return + else + i32.const 13 + local.get $0 + i64.const 100000000000000 + i64.ge_u + i32.add + local.get $0 + i64.const 10000000000000 + i64.ge_u + i32.add + return + end + unreachable + else + local.get $0 + i64.const 100000000000000000 + i64.lt_u + if + i32.const 16 + local.get $0 + i64.const 10000000000000000 + i64.ge_u + i32.add + return + else + i32.const 18 + local.get $0 + i64.const -8446744073709551616 + i64.ge_u + i32.add + local.get $0 + i64.const 1000000000000000000 + i64.ge_u + i32.add + return + end unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer + unreachable ) - (func $~lib/typedarray/Int64Array#filter (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) + (func $~lib/util/number/utoa64_dec_lut (param $0 i32) (param $1 i64) (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 i32) (local $10 i32) - (local $11 i64) - (local $12 i32) - (local $13 i32) - global.get $~lib/memory/__stack_pointer - 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 - i64.const 0 - i64.store offset=8 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=16 - global.get $~lib/memory/__stack_pointer - local.get $0 - local.tee $3 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - local.tee $2 - i32.store offset=4 - local.get $3 - local.set $13 - global.get $~lib/memory/__stack_pointer - local.get $13 - i32.store offset=8 - local.get $13 - call $~lib/typedarray/Int64Array#get:length - local.set $4 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.const 10 - call $~lib/rt/itcms/__new - local.tee $5 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.const 3 - i32.shl - i32.const 0 - call $~lib/rt/itcms/__new - local.tee $6 - i32.store offset=16 - local.get $3 - i32.load offset=4 - local.set $7 - i32.const 0 - local.set $8 - i32.const 0 - local.set $9 - loop $for-loop|0 - local.get $9 - local.get $4 - i32.lt_s - local.set $10 - local.get $10 + (local $11 i32) + (local $12 i64) + (local $13 i64) + loop $while-continue|0 + local.get $1 + i64.const 100000000 + i64.ge_u + local.set $3 + local.get $3 if + local.get $1 + i64.const 100000000 + i64.div_u + local.set $4 + local.get $1 + local.get $4 + i64.const 100000000 + i64.mul + i64.sub + i32.wrap_i64 + local.set $5 + local.get $4 + local.set $1 + local.get $5 + i32.const 10000 + i32.div_u + local.set $6 + local.get $5 + i32.const 10000 + i32.rem_u + local.set $7 + local.get $6 + i32.const 100 + i32.div_u + local.set $8 + local.get $6 + i32.const 100 + i32.rem_u + local.set $9 local.get $7 - local.get $9 - i32.const 3 - i32.shl - i32.add - i64.load + i32.const 100 + i32.div_u + local.set $10 + local.get $7 + i32.const 100 + i32.rem_u local.set $11 + i32.const 6284 + local.get $10 + i32.const 2 + i32.shl + i32.add + i64.load32_u + local.set $12 + i32.const 6284 local.get $11 - local.get $9 - local.get $3 + i32.const 2 + i32.shl + i32.add + i64.load32_u local.set $13 - global.get $~lib/memory/__stack_pointer - local.get $13 - i32.store offset=20 - local.get $13 - i32.const 3 - global.set $~argumentsLength local.get $2 - i32.load - call_indirect (type $i64_i32_i32_=>_i32) - if - local.get $6 - local.get $8 - local.tee $12 - i32.const 1 - i32.add - local.set $8 - local.get $12 - i32.const 3 - i32.shl - i32.add - local.get $11 - i64.store - end + i32.const 4 + i32.sub + local.set $2 + local.get $0 + local.get $2 + i32.const 1 + i32.shl + i32.add + local.get $12 + local.get $13 + i64.const 32 + i64.shl + i64.or + i64.store + i32.const 6284 + local.get $8 + i32.const 2 + i32.shl + i32.add + i64.load32_u + local.set $12 + i32.const 6284 local.get $9 + i32.const 2 + i32.shl + i32.add + i64.load32_u + local.set $13 + local.get $2 + i32.const 4 + i32.sub + local.set $2 + local.get $0 + local.get $2 i32.const 1 + i32.shl i32.add - local.set $9 - br $for-loop|0 + local.get $12 + local.get $13 + i64.const 32 + i64.shl + i64.or + i64.store + br $while-continue|0 end end - local.get $8 - i32.const 3 - i32.shl - local.set $9 - local.get $6 - local.get $9 - call $~lib/rt/itcms/__renew - local.set $10 - local.get $5 - local.get $10 - i32.store - local.get $5 - local.get $10 - i32.const 0 - call $~lib/rt/itcms/__link - local.get $5 - local.get $9 - i32.store offset=8 - local.get $5 - local.get $10 - i32.store offset=4 - local.get $5 - local.set $13 - global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $13 - ) - (func $std/typedarray/testArrayFilter<~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 - 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 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 6 - call $~lib/typedarray/Int64Array#constructor - local.tee $0 - i32.store local.get $0 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 + 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 $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i64) i32.const 0 - i64.const 1 - call $~lib/typedarray/Int64Array#__set - local.get $0 local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 i32.const 1 - i64.const 2 - call $~lib/typedarray/Int64Array#__set - local.get $0 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 2 - i64.const 3 - call $~lib/typedarray/Int64Array#__set - local.get $0 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 3 - i64.const 4 - call $~lib/typedarray/Int64Array#__set - local.get $0 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 5 - i64.const 5 - call $~lib/typedarray/Int64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 3152 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=8 - local.get $2 - call $~lib/typedarray/Int64Array#filter - local.tee $1 - i32.store offset=12 + drop local.get $1 + i64.const 0 + i64.lt_s local.set $2 - global.get $~lib/memory/__stack_pointer local.get $2 - i32.store offset=4 - local.get $2 - call $~lib/arraybuffer/ArrayBufferView#get:byteOffset - i32.const 0 - i32.eq - i32.eqz if - i32.const 0 - i32.const 544 - i32.const 413 - i32.const 3 - call $~lib/builtins/abort - unreachable + i64.const 0 + local.get $1 + i64.sub + local.set $1 + local.get $0 + i32.const 45 + i32.store16 end + i32.const 0 + i32.const 1 + i32.le_s + drop + i32.const 1 + drop + i32.const 8 + i32.const 4 + i32.le_u + drop local.get $1 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - call $~lib/typedarray/Int64Array#get:length - i32.const 3 - i32.eq - i32.eqz + i64.const 10 + i64.lt_u if - i32.const 0 - i32.const 544 - i32.const 414 - i32.const 3 - call $~lib/builtins/abort - unreachable + local.get $0 + local.get $2 + i32.const 1 + i32.shl + i32.add + local.get $1 + i64.const 48 + i64.or + i64.store16 + i32.const 1 + local.get $2 + i32.add + return end - 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/typedarray/Int64Array#__get - i64.const 3 - i64.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 415 - i32.const 3 - call $~lib/builtins/abort - unreachable - end + local.set $3 + i32.const 8 + i32.const 4 + i32.le_u + drop local.get $1 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 1 - call $~lib/typedarray/Int64Array#__get - i64.const 4 - i64.eq - i32.eqz + global.get $~lib/builtins/u32.MAX_VALUE + i64.extend_i32_u + i64.le_u if + local.get $1 + i32.wrap_i64 + local.set $4 + local.get $3 + local.get $4 + call $~lib/util/number/decimalCount32 + i32.add + local.set $3 + local.get $0 + local.set $7 + local.get $4 + local.set $6 + local.get $3 + local.set $5 i32.const 0 - i32.const 544 - i32.const 416 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $1 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 2 - call $~lib/typedarray/Int64Array#__get - i64.const 5 - i64.eq - i32.eqz - if + i32.const 1 + i32.ge_s + drop + local.get $7 + local.get $6 + local.get $5 + call $~lib/util/number/utoa32_dec_lut + else + local.get $3 + local.get $1 + call $~lib/util/number/decimalCount64High + i32.add + local.set $3 + local.get $0 + local.set $6 + local.get $1 + local.set $8 + local.get $3 + local.set $5 i32.const 0 - i32.const 544 - i32.const 417 - i32.const 3 - call $~lib/builtins/abort - unreachable + i32.const 1 + i32.ge_s + drop + local.get $6 + local.get $8 + local.get $5 + call $~lib/util/number/utoa64_dec_lut end - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer + local.get $3 ) - (func $~lib/typedarray/Uint64Array#filter (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Int64Array#join (param $0 i32) (param $1 i32) (result i32) + local.get $0 + i32.load offset=4 + local.get $0 + call $~lib/typedarray/Int64Array#get:length + local.get $1 + call $~lib/util/string/joinIntegerArray + ) + (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) - (local $10 i32) - (local $11 i64) - (local $12 i32) - (local $13 i32) - global.get $~lib/memory/__stack_pointer - 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 - i64.const 0 - i64.store offset=8 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=16 - global.get $~lib/memory/__stack_pointer - local.get $0 - local.tee $3 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - local.tee $2 - i32.store offset=4 - local.get $3 - local.set $13 - global.get $~lib/memory/__stack_pointer - local.get $13 - i32.store offset=8 - local.get $13 - call $~lib/typedarray/Uint64Array#get:length - local.set $4 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.const 11 - call $~lib/rt/itcms/__new - local.tee $5 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.const 3 - i32.shl + (local $8 i64) i32.const 0 - call $~lib/rt/itcms/__new - local.tee $6 - i32.store offset=16 - local.get $3 - i32.load offset=4 - local.set $7 + local.set $2 i32.const 0 - local.set $8 + drop i32.const 0 - local.set $9 - loop $for-loop|0 - local.get $9 - local.get $4 - i32.lt_s - local.set $10 - local.get $10 - if - local.get $7 - local.get $9 - i32.const 3 - i32.shl - i32.add - i64.load - local.set $11 - local.get $11 - local.get $9 - local.get $3 - local.set $13 - global.get $~lib/memory/__stack_pointer - local.get $13 - i32.store offset=20 - local.get $13 - i32.const 3 - global.set $~argumentsLength - local.get $2 - i32.load - call_indirect (type $i64_i32_i32_=>_i32) - if - local.get $6 - local.get $8 - local.tee $12 - i32.const 1 - i32.add - local.set $8 - local.get $12 - i32.const 3 - i32.shl - i32.add - local.get $11 - i64.store - end - local.get $9 - i32.const 1 - i32.add - local.set $9 - br $for-loop|0 - end - end - local.get $8 - i32.const 3 - i32.shl - local.set $9 - local.get $6 - local.get $9 - call $~lib/rt/itcms/__renew - local.set $10 - local.get $5 - local.get $10 - i32.store - local.get $5 - local.get $10 + i32.const 1 + i32.le_s + drop i32.const 0 - call $~lib/rt/itcms/__link - local.get $5 - local.get $9 - i32.store offset=8 - local.get $5 - local.get $10 - i32.store offset=4 - local.get $5 - local.set $13 - global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $13 - ) - (func $std/typedarray/testArrayFilter<~lib/typedarray/Uint64Array,u64> - (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 - 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 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 6 - call $~lib/typedarray/Uint64Array#constructor - local.tee $0 - i32.store - local.get $0 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 0 - i64.const 1 - call $~lib/typedarray/Uint64Array#__set - local.get $0 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 1 - i64.const 2 - call $~lib/typedarray/Uint64Array#__set - local.get $0 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 2 - i64.const 3 - call $~lib/typedarray/Uint64Array#__set - local.get $0 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 3 - i64.const 4 - call $~lib/typedarray/Uint64Array#__set - local.get $0 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 5 - i64.const 5 - call $~lib/typedarray/Uint64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 3184 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=8 - local.get $2 - call $~lib/typedarray/Uint64Array#filter - local.tee $1 - i32.store offset=12 + drop local.get $1 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - call $~lib/arraybuffer/ArrayBufferView#get:byteOffset - i32.const 0 - i32.eq - i32.eqz + i64.const 10 + i64.lt_u if - i32.const 0 - i32.const 544 - i32.const 413 - i32.const 3 - call $~lib/builtins/abort - unreachable + local.get $0 + local.get $1 + i64.const 48 + i64.or + i64.store16 + i32.const 1 + return end - local.get $1 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 local.get $2 - call $~lib/typedarray/Uint64Array#get:length - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 414 - i32.const 3 - call $~lib/builtins/abort - unreachable - end + local.set $3 + i32.const 8 + i32.const 4 + i32.le_u + drop 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/typedarray/Uint64Array#__get - i64.const 3 - i64.eq - i32.eqz + global.get $~lib/builtins/u32.MAX_VALUE + i64.extend_i32_u + i64.le_u if + local.get $1 + i32.wrap_i64 + local.set $4 + local.get $3 + local.get $4 + call $~lib/util/number/decimalCount32 + i32.add + local.set $3 + local.get $0 + local.set $7 + local.get $4 + local.set $6 + local.get $3 + local.set $5 i32.const 0 - i32.const 544 - i32.const 415 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $1 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 1 - call $~lib/typedarray/Uint64Array#__get - i64.const 4 - i64.eq - i32.eqz - if + i32.const 1 + i32.ge_s + drop + local.get $7 + local.get $6 + local.get $5 + call $~lib/util/number/utoa32_dec_lut + else + local.get $3 + local.get $1 + call $~lib/util/number/decimalCount64High + i32.add + local.set $3 + local.get $0 + local.set $6 + local.get $1 + local.set $8 + local.get $3 + local.set $5 i32.const 0 - i32.const 544 - i32.const 416 - i32.const 3 - call $~lib/builtins/abort - unreachable + i32.const 1 + i32.ge_s + drop + local.get $6 + local.get $8 + local.get $5 + call $~lib/util/number/utoa64_dec_lut end + local.get $3 + ) + (func $~lib/typedarray/Uint64Array#join (param $0 i32) (param $1 i32) (result i32) + local.get $0 + i32.load offset=4 + local.get $0 + call $~lib/typedarray/Uint64Array#get:length local.get $1 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 2 - call $~lib/typedarray/Uint64Array#__get - i64.const 5 - i64.eq - i32.eqz - if - i32.const 0 - i32.const 544 - 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 + call $~lib/util/string/joinIntegerArray ) - (func $~lib/typedarray/Float32Array#filter (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) + (func $~lib/util/number/genDigits (param $0 i32) (param $1 i64) (param $2 i32) (param $3 i64) (param $4 i32) (param $5 i64) (param $6 i32) (result i32) (local $7 i32) - (local $8 i32) - (local $9 i32) - (local $10 i32) - (local $11 f32) - (local $12 i32) + (local $8 i64) + (local $9 i64) + (local $10 i64) + (local $11 i32) + (local $12 i64) (local $13 i32) - global.get $~lib/memory/__stack_pointer - 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 - i64.const 0 - i64.store offset=8 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=16 - global.get $~lib/memory/__stack_pointer - local.get $0 - local.tee $3 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - local.tee $2 - i32.store offset=4 - local.get $3 - local.set $13 - global.get $~lib/memory/__stack_pointer - local.get $13 - i32.store offset=8 - local.get $13 - call $~lib/typedarray/Float32Array#get:length - local.set $4 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.const 12 - call $~lib/rt/itcms/__new - local.tee $5 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.const 2 - i32.shl + (local $14 i32) + (local $15 i32) + (local $16 i32) + (local $17 i32) + (local $18 i64) + (local $19 i64) + (local $20 i64) + (local $21 i64) + (local $22 i64) + (local $23 i32) + (local $24 i32) + (local $25 i32) + (local $26 i32) + (local $27 i64) i32.const 0 - call $~lib/rt/itcms/__new - local.tee $6 - i32.store offset=16 - local.get $3 - i32.load offset=4 + local.get $4 + i32.sub local.set $7 - i32.const 0 + i64.const 1 + local.get $7 + i64.extend_i32_s + i64.shl local.set $8 - i32.const 0 - local.set $9 - loop $for-loop|0 - local.get $9 - local.get $4 - i32.lt_s - local.set $10 - local.get $10 - if - local.get $7 - local.get $9 - i32.const 2 - i32.shl - i32.add - f32.load - local.set $11 - local.get $11 - local.get $9 - local.get $3 - local.set $13 - global.get $~lib/memory/__stack_pointer - local.get $13 - i32.store offset=20 - local.get $13 - i32.const 3 - global.set $~argumentsLength - local.get $2 - i32.load - call_indirect (type $f32_i32_i32_=>_i32) - if - local.get $6 - local.get $8 - local.tee $12 - i32.const 1 - i32.add - local.set $8 - local.get $12 - i32.const 2 - i32.shl - i32.add - local.get $11 - f32.store - end - local.get $9 - i32.const 1 - i32.add - local.set $9 - br $for-loop|0 - end - end local.get $8 - i32.const 2 - i32.shl + i64.const 1 + i64.sub local.set $9 - local.get $6 - local.get $9 - call $~lib/rt/itcms/__renew + local.get $3 + local.get $1 + i64.sub local.set $10 - local.get $5 - local.get $10 - i32.store - local.get $5 - local.get $10 - i32.const 0 - call $~lib/rt/itcms/__link - local.get $5 + local.get $3 + local.get $7 + i64.extend_i32_s + i64.shr_u + i32.wrap_i64 + local.set $11 + local.get $3 local.get $9 - i32.store offset=8 - local.get $5 - local.get $10 - i32.store offset=4 - local.get $5 + i64.and + local.set $12 + local.get $11 + call $~lib/util/number/decimalCount32 local.set $13 - global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $13 - ) - (func $std/typedarray/testArrayFilter<~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 - 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 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 6 - call $~lib/typedarray/Float32Array#constructor - local.tee $0 - i32.store - local.get $0 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 0 - f32.const 1 - call $~lib/typedarray/Float32Array#__set - local.get $0 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 1 - f32.const 2 - call $~lib/typedarray/Float32Array#__set - local.get $0 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 2 - f32.const 3 - call $~lib/typedarray/Float32Array#__set - local.get $0 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 3 - f32.const 4 - call $~lib/typedarray/Float32Array#__set - local.get $0 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 5 - f32.const 5 - call $~lib/typedarray/Float32Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 3216 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=8 - local.get $2 - call $~lib/typedarray/Float32Array#filter - local.tee $1 - i32.store offset=12 - local.get $1 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - call $~lib/arraybuffer/ArrayBufferView#get:byteOffset - i32.const 0 - i32.eq - i32.eqz - if + local.get $6 + local.set $14 + loop $while-continue|0 + local.get $13 i32.const 0 - i32.const 544 - i32.const 413 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $1 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - call $~lib/typedarray/Float32Array#get:length - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 414 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - 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/typedarray/Float32Array#__get - f32.const 3 - f32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 415 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $1 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 1 - call $~lib/typedarray/Float32Array#__get - f32.const 4 - f32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 416 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $1 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 2 - call $~lib/typedarray/Float32Array#__get - f32.const 5 - f32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 417 - i32.const 3 - call $~lib/builtins/abort - unreachable + i32.gt_s + local.set $15 + local.get $15 + 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 $13 + local.set $17 + local.get $17 + i32.const 10 + i32.eq + br_if $case0|1 + local.get $17 + i32.const 9 + i32.eq + br_if $case1|1 + local.get $17 + i32.const 8 + i32.eq + br_if $case2|1 + local.get $17 + i32.const 7 + i32.eq + br_if $case3|1 + local.get $17 + i32.const 6 + i32.eq + br_if $case4|1 + local.get $17 + i32.const 5 + i32.eq + br_if $case5|1 + local.get $17 + i32.const 4 + i32.eq + br_if $case6|1 + local.get $17 + i32.const 3 + i32.eq + br_if $case7|1 + local.get $17 + i32.const 2 + i32.eq + br_if $case8|1 + local.get $17 + i32.const 1 + i32.eq + br_if $case9|1 + br $case10|1 + end + local.get $11 + i32.const 1000000000 + i32.div_u + local.set $16 + local.get $11 + i32.const 1000000000 + i32.rem_u + local.set $11 + br $break|1 + end + local.get $11 + i32.const 100000000 + i32.div_u + local.set $16 + local.get $11 + i32.const 100000000 + i32.rem_u + local.set $11 + br $break|1 + end + local.get $11 + i32.const 10000000 + i32.div_u + local.set $16 + local.get $11 + i32.const 10000000 + i32.rem_u + local.set $11 + br $break|1 + end + local.get $11 + i32.const 1000000 + i32.div_u + local.set $16 + local.get $11 + i32.const 1000000 + i32.rem_u + local.set $11 + br $break|1 + end + local.get $11 + i32.const 100000 + i32.div_u + local.set $16 + local.get $11 + i32.const 100000 + i32.rem_u + local.set $11 + br $break|1 + end + local.get $11 + i32.const 10000 + i32.div_u + local.set $16 + local.get $11 + i32.const 10000 + i32.rem_u + local.set $11 + br $break|1 + end + local.get $11 + i32.const 1000 + i32.div_u + local.set $16 + local.get $11 + i32.const 1000 + i32.rem_u + local.set $11 + br $break|1 + end + local.get $11 + i32.const 100 + i32.div_u + local.set $16 + local.get $11 + i32.const 100 + i32.rem_u + local.set $11 + br $break|1 + end + local.get $11 + i32.const 10 + i32.div_u + local.set $16 + local.get $11 + i32.const 10 + i32.rem_u + local.set $11 + br $break|1 + end + local.get $11 + local.set $16 + i32.const 0 + local.set $11 + br $break|1 + end + i32.const 0 + local.set $16 + br $break|1 + end + local.get $16 + local.get $14 + i32.or + if + local.get $0 + local.get $14 + local.tee $17 + i32.const 1 + i32.add + local.set $14 + local.get $17 + i32.const 1 + i32.shl + i32.add + i32.const 48 + local.get $16 + i32.const 65535 + i32.and + i32.add + i32.store16 + end + local.get $13 + i32.const 1 + i32.sub + local.set $13 + local.get $11 + i64.extend_i32_u + local.get $7 + i64.extend_i32_s + i64.shl + local.get $12 + i64.add + local.set $18 + local.get $18 + local.get $5 + i64.le_u + if + global.get $~lib/util/number/_K + local.get $13 + i32.add + global.set $~lib/util/number/_K + local.get $0 + local.set $23 + local.get $14 + local.set $17 + local.get $5 + local.set $22 + local.get $18 + local.set $21 + i32.const 9008 + local.get $13 + i32.const 2 + i32.shl + i32.add + i64.load32_u + local.get $7 + i64.extend_i32_s + i64.shl + local.set $20 + local.get $10 + local.set $19 + local.get $23 + local.get $17 + i32.const 1 + i32.sub + i32.const 1 + i32.shl + i32.add + local.set $24 + local.get $24 + i32.load16_u + local.set $25 + loop $while-continue|3 + local.get $21 + local.get $19 + i64.lt_u + if (result i32) + local.get $22 + local.get $21 + i64.sub + local.get $20 + i64.ge_u + else + i32.const 0 + end + if (result i32) + local.get $21 + local.get $20 + i64.add + local.get $19 + i64.lt_u + if (result i32) + i32.const 1 + else + local.get $19 + local.get $21 + i64.sub + local.get $21 + local.get $20 + i64.add + local.get $19 + i64.sub + i64.gt_u + end + else + i32.const 0 + end + local.set $26 + local.get $26 + if + local.get $25 + i32.const 1 + i32.sub + local.set $25 + local.get $21 + local.get $20 + i64.add + local.set $21 + br $while-continue|3 + end + end + local.get $24 + local.get $25 + i32.store16 + local.get $14 + return + end + br $while-continue|0 + end end - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/typedarray/Float64Array#filter (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 f64) - (local $12 i32) - (local $13 i32) - global.get $~lib/memory/__stack_pointer - 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 - i64.const 0 - i64.store offset=8 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=16 - global.get $~lib/memory/__stack_pointer - local.get $0 - local.tee $3 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - local.tee $2 - i32.store offset=4 - local.get $3 - local.set $13 - global.get $~lib/memory/__stack_pointer - local.get $13 - i32.store offset=8 - local.get $13 - call $~lib/typedarray/Float64Array#get:length - local.set $4 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.const 13 - call $~lib/rt/itcms/__new - local.tee $5 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.const 3 - i32.shl - i32.const 0 - call $~lib/rt/itcms/__new - local.tee $6 - i32.store offset=16 - local.get $3 - i32.load offset=4 - local.set $7 - i32.const 0 - local.set $8 - i32.const 0 - local.set $9 - loop $for-loop|0 - local.get $9 - local.get $4 - i32.lt_s - local.set $10 - local.get $10 + loop $while-continue|4 + i32.const 1 + local.set $15 + local.get $15 if + local.get $12 + i64.const 10 + i64.mul + local.set $12 + local.get $5 + i64.const 10 + i64.mul + local.set $5 + local.get $12 local.get $7 - local.get $9 - i32.const 3 - i32.shl - i32.add - f64.load - local.set $11 - local.get $11 - local.get $9 - local.get $3 - local.set $13 - global.get $~lib/memory/__stack_pointer - local.get $13 - i32.store offset=20 - local.get $13 - i32.const 3 - global.set $~argumentsLength - local.get $2 - i32.load - call_indirect (type $f64_i32_i32_=>_i32) + i64.extend_i32_s + i64.shr_u + local.set $22 + local.get $22 + local.get $14 + i64.extend_i32_s + i64.or + i64.const 0 + i64.ne if - local.get $6 - local.get $8 - local.tee $12 + local.get $0 + local.get $14 + local.tee $25 i32.const 1 i32.add - local.set $8 - local.get $12 - i32.const 3 + local.set $14 + local.get $25 + i32.const 1 i32.shl i32.add - local.get $11 - f64.store + i32.const 48 + local.get $22 + i32.wrap_i64 + i32.const 65535 + i32.and + i32.add + i32.store16 end + local.get $12 local.get $9 + i64.and + local.set $12 + local.get $13 i32.const 1 - i32.add - local.set $9 - br $for-loop|0 - end - end - local.get $8 - i32.const 3 - i32.shl - local.set $9 - local.get $6 - local.get $9 - call $~lib/rt/itcms/__renew - local.set $10 - local.get $5 - local.get $10 - i32.store - local.get $5 - local.get $10 - i32.const 0 - call $~lib/rt/itcms/__link - local.get $5 - local.get $9 - i32.store offset=8 - local.get $5 - local.get $10 - i32.store offset=4 - local.get $5 - local.set $13 - global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $13 - ) - (func $std/typedarray/testArrayFilter<~lib/typedarray/Float64Array,f64> - (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 - 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 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 6 - call $~lib/typedarray/Float64Array#constructor - local.tee $0 - i32.store - local.get $0 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 0 - f64.const 1 - call $~lib/typedarray/Float64Array#__set - local.get $0 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 1 - f64.const 2 - call $~lib/typedarray/Float64Array#__set - local.get $0 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 2 - f64.const 3 - call $~lib/typedarray/Float64Array#__set - local.get $0 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 3 - f64.const 4 - call $~lib/typedarray/Float64Array#__set - local.get $0 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 5 - f64.const 5 - call $~lib/typedarray/Float64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 3248 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=8 - local.get $2 - call $~lib/typedarray/Float64Array#filter - local.tee $1 - i32.store offset=12 - local.get $1 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - call $~lib/arraybuffer/ArrayBufferView#get:byteOffset - i32.const 0 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 413 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $1 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - call $~lib/typedarray/Float64Array#get:length - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 414 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - 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/typedarray/Float64Array#__get - f64.const 3 - f64.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 415 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $1 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 1 - call $~lib/typedarray/Float64Array#__get - f64.const 4 - f64.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 416 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $1 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 2 - call $~lib/typedarray/Float64Array#__get - f64.const 5 - f64.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 417 - i32.const 3 - call $~lib/builtins/abort - unreachable + i32.sub + local.set $13 + local.get $12 + local.get $5 + i64.lt_u + if + global.get $~lib/util/number/_K + local.get $13 + i32.add + global.set $~lib/util/number/_K + local.get $10 + i32.const 9008 + i32.const 0 + local.get $13 + i32.sub + i32.const 2 + i32.shl + i32.add + i64.load32_u + i64.mul + local.set $10 + local.get $0 + local.set $17 + local.get $14 + local.set $26 + local.get $5 + local.set $27 + local.get $12 + local.set $21 + local.get $8 + local.set $20 + local.get $10 + local.set $19 + local.get $17 + local.get $26 + i32.const 1 + i32.sub + i32.const 1 + i32.shl + i32.add + local.set $25 + local.get $25 + i32.load16_u + local.set $24 + loop $while-continue|6 + local.get $21 + local.get $19 + i64.lt_u + if (result i32) + local.get $27 + local.get $21 + i64.sub + local.get $20 + i64.ge_u + else + i32.const 0 + end + if (result i32) + local.get $21 + local.get $20 + i64.add + local.get $19 + i64.lt_u + if (result i32) + i32.const 1 + else + local.get $19 + local.get $21 + i64.sub + local.get $21 + local.get $20 + i64.add + local.get $19 + i64.sub + i64.gt_u + end + else + i32.const 0 + end + local.set $23 + local.get $23 + if + local.get $24 + i32.const 1 + i32.sub + local.set $24 + local.get $21 + local.get $20 + i64.add + local.set $21 + br $while-continue|6 + end + end + local.get $25 + local.get $24 + i32.store16 + local.get $14 + return + end + br $while-continue|4 + end end - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer + unreachable ) - (func $~lib/typedarray/Int8Array#some (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) (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 - 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 - block $~lib/typedarray/SOME<~lib/typedarray/Int8Array,i8>|inlined.0 (result i32) - global.get $~lib/memory/__stack_pointer + (local $9 i32) + (local $10 i32) + (local $11 i32) + local.get $2 + i32.eqz + if local.get $0 - local.tee $3 + local.get $1 + i32.const 1 + i32.shl + i32.add + i32.const 46 + i32.const 48 + i32.const 16 + i32.shl + i32.or i32.store - global.get $~lib/memory/__stack_pointer local.get $1 - local.tee $2 - i32.store offset=4 + i32.const 2 + i32.add + return + end + local.get $1 + local.get $2 + i32.add + local.set $3 + local.get $1 + local.get $3 + i32.le_s + if (result i32) local.get $3 - i32.load offset=4 - local.set $4 + i32.const 21 + i32.le_s + else i32.const 0 - local.set $5 - local.get $3 - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=8 - local.get $8 - call $~lib/typedarray/Int8Array#get:length - local.set $6 + end + if + local.get $1 + local.set $4 loop $for-loop|0 - local.get $5 - local.get $6 + local.get $4 + local.get $3 i32.lt_s - local.set $7 - local.get $7 + local.set $5 + local.get $5 if + local.get $0 local.get $4 - local.get $5 - i32.const 0 + i32.const 1 i32.shl i32.add - i32.load8_s - local.get $5 - local.get $3 - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=12 - local.get $8 - i32.const 3 - global.set $~argumentsLength - local.get $2 - i32.load - call_indirect (type $i32_i32_i32_=>_i32) - if - i32.const 1 - br $~lib/typedarray/SOME<~lib/typedarray/Int8Array,i8>|inlined.0 - end - local.get $5 + i32.const 48 + i32.store16 + local.get $4 i32.const 1 i32.add - local.set $5 + local.set $4 br $for-loop|0 end end + local.get $0 + local.get $3 + i32.const 1 + i32.shl + i32.add + i32.const 46 + i32.const 48 + i32.const 16 + i32.shl + i32.or + i32.store + local.get $3 + i32.const 2 + i32.add + return + else + local.get $3 i32.const 0 - end - local.set $8 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $8 - ) - (func $std/typedarray/testArraySome<~lib/typedarray/Int8Array,i8> - (local $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 - 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 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 3 - call $~lib/typedarray/Int8Array#constructor - local.tee $0 - i32.store - local.get $0 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - i32.const 0 - i32.const 2 - call $~lib/typedarray/Int8Array#__set - local.get $0 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - i32.const 1 - i32.const 4 - call $~lib/typedarray/Int8Array#__set - local.get $0 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - i32.const 2 - i32.const 6 - call $~lib/typedarray/Int8Array#__set - local.get $0 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - i32.const 3280 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=8 - local.get $3 - call $~lib/typedarray/Int8Array#some - local.set $1 - local.get $1 - i32.const 0 - i32.ne - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 438 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - i32.const 3312 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=8 - local.get $3 - call $~lib/typedarray/Int8Array#some - local.set $2 - local.get $2 - i32.eqz - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 440 - 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/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 $7 i32) - (local $8 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 - block $~lib/typedarray/SOME<~lib/typedarray/Uint8Array,u8>|inlined.0 (result i32) - global.get $~lib/memory/__stack_pointer - local.get $0 - local.tee $3 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - local.tee $2 - i32.store offset=4 - local.get $3 - i32.load offset=4 - local.set $4 - i32.const 0 - local.set $5 - local.get $3 - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=8 - local.get $8 - call $~lib/typedarray/Uint8Array#get:length - local.set $6 - loop $for-loop|0 - local.get $5 - local.get $6 + i32.gt_s + if (result i32) + local.get $3 + i32.const 21 + i32.le_s + else + i32.const 0 + end + if + local.get $0 + local.get $3 + i32.const 1 + i32.shl + i32.add + local.set $4 + local.get $4 + i32.const 2 + i32.add + local.get $4 + i32.const 0 + local.get $2 + i32.sub + i32.const 1 + i32.shl + call $~lib/memory/memory.copy + local.get $0 + local.get $3 + i32.const 1 + i32.shl + i32.add + i32.const 46 + i32.store16 + local.get $1 + i32.const 1 + i32.add + return + else + i32.const -6 + local.get $3 i32.lt_s - local.set $7 - local.get $7 + if (result i32) + local.get $3 + i32.const 0 + i32.le_s + else + i32.const 0 + end if + i32.const 2 + local.get $3 + i32.sub + local.set $4 + local.get $0 local.get $4 - local.get $5 - i32.const 0 + i32.const 1 i32.shl i32.add - i32.load8_u - local.get $5 - local.get $3 - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=12 - local.get $8 - i32.const 3 - global.set $~argumentsLength - local.get $2 - i32.load - call_indirect (type $i32_i32_i32_=>_i32) + local.get $0 + local.get $1 + i32.const 1 + i32.shl + call $~lib/memory/memory.copy + local.get $0 + i32.const 48 + i32.const 46 + i32.const 16 + i32.shl + i32.or + i32.store + i32.const 2 + local.set $5 + loop $for-loop|1 + local.get $5 + local.get $4 + i32.lt_s + local.set $6 + local.get $6 + if + local.get $0 + local.get $5 + i32.const 1 + i32.shl + i32.add + i32.const 48 + i32.store16 + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|1 + end + end + local.get $1 + local.get $4 + i32.add + return + 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.set $5 + local.get $3 i32.const 1 - br $~lib/typedarray/SOME<~lib/typedarray/Uint8Array,u8>|inlined.0 + i32.sub + local.set $6 + local.get $6 + i32.const 0 + i32.lt_s + local.set $4 + local.get $4 + if + i32.const 0 + local.get $6 + i32.sub + local.set $6 + end + local.get $6 + call $~lib/util/number/decimalCount32 + i32.const 1 + i32.add + local.set $7 + local.get $5 + local.set $10 + local.get $6 + local.set $9 + local.get $7 + local.set $8 + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $10 + local.get $9 + local.get $8 + call $~lib/util/number/utoa32_dec_lut + local.get $5 + i32.const 45 + i32.const 43 + local.get $4 + select + i32.store16 + local.get $7 + local.set $1 + local.get $1 + i32.const 2 + i32.add + return + else + local.get $1 + i32.const 1 + i32.shl + local.set $7 + local.get $0 + i32.const 4 + i32.add + local.get $0 + i32.const 2 + i32.add + local.get $7 + i32.const 2 + i32.sub + call $~lib/memory/memory.copy + local.get $0 + i32.const 46 + i32.store16 offset=2 + local.get $0 + local.get $7 + i32.add + i32.const 101 + i32.store16 offset=2 + local.get $1 + local.get $0 + local.get $7 + i32.add + i32.const 4 + i32.add + local.set $9 + local.get $3 + i32.const 1 + i32.sub + local.set $8 + local.get $8 + i32.const 0 + i32.lt_s + local.set $4 + local.get $4 + if + i32.const 0 + local.get $8 + i32.sub + local.set $8 + end + local.get $8 + call $~lib/util/number/decimalCount32 + i32.const 1 + i32.add + local.set $5 + local.get $9 + local.set $11 + local.get $8 + local.set $6 + local.get $5 + local.set $10 + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $11 + local.get $6 + local.get $10 + call $~lib/util/number/utoa32_dec_lut + local.get $9 + i32.const 45 + i32.const 43 + local.get $4 + select + i32.store16 + local.get $5 + i32.add + local.set $1 + local.get $1 + i32.const 2 + i32.add + return end - local.get $5 - i32.const 1 - i32.add - local.set $5 - br $for-loop|0 + unreachable end + unreachable end - i32.const 0 + unreachable end - local.set $8 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $8 + unreachable ) - (func $std/typedarray/testArraySome<~lib/typedarray/Uint8Array,u8> - (local $0 i32) - (local $1 i32) + (func $~lib/util/number/dtoa_core (param $0 i32) (param $1 f64) (result i32) (local $2 i32) (local $3 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 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 3 - call $~lib/typedarray/Uint8Array#constructor - local.tee $0 - i32.store - local.get $0 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - i32.const 0 - i32.const 2 - call $~lib/typedarray/Uint8Array#__set - local.get $0 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - i32.const 1 - i32.const 4 - call $~lib/typedarray/Uint8Array#__set - local.get $0 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - i32.const 2 - i32.const 6 - call $~lib/typedarray/Uint8Array#__set - local.get $0 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - i32.const 3344 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=8 - local.get $3 - call $~lib/typedarray/Uint8Array#some - local.set $1 + (local $4 i32) + (local $5 f64) + (local $6 i64) + (local $7 i32) + (local $8 i64) + (local $9 i64) + (local $10 i32) + (local $11 i64) + (local $12 i64) + (local $13 i32) + (local $14 i32) + (local $15 i32) + (local $16 f64) + (local $17 i64) + (local $18 i64) + (local $19 i64) + (local $20 i64) + (local $21 i64) + (local $22 i64) + (local $23 i64) + (local $24 i64) + (local $25 i64) + (local $26 i32) + (local $27 i64) + (local $28 i32) local.get $1 - i32.const 0 - i32.ne - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 438 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - i32.const 3376 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=8 - local.get $3 - call $~lib/typedarray/Uint8Array#some + f64.const 0 + f64.lt local.set $2 local.get $2 - i32.eqz - i32.eqz if - i32.const 0 - i32.const 544 - i32.const 440 - i32.const 3 - call $~lib/builtins/abort - unreachable + local.get $1 + f64.neg + local.set $1 + local.get $0 + i32.const 45 + i32.store16 end - global.get $~lib/memory/__stack_pointer - i32.const 12 + local.get $1 + local.set $5 + local.get $0 + local.set $4 + local.get $2 + local.set $3 + local.get $5 + i64.reinterpret_f64 + local.set $6 + local.get $6 + i64.const 9218868437227405312 + i64.and + i64.const 52 + i64.shr_u + i32.wrap_i64 + local.set $7 + local.get $6 + i64.const 4503599627370495 + i64.and + local.set $8 + local.get $7 + i32.const 0 + i32.ne + i64.extend_i32_u + i64.const 52 + i64.shl + local.get $8 + i64.add + local.set $9 + local.get $7 + i32.const 1 + local.get $7 + select + i32.const 1023 + i32.const 52 i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/typedarray/Uint8ClampedArray#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 $7 i32) - (local $8 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 - block $~lib/typedarray/SOME<~lib/typedarray/Uint8ClampedArray,u8>|inlined.0 (result i32) - global.get $~lib/memory/__stack_pointer - local.get $0 - local.tee $3 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - local.tee $2 - i32.store offset=4 - local.get $3 - i32.load offset=4 - local.set $4 - i32.const 0 - local.set $5 - local.get $3 - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=8 - local.get $8 - call $~lib/typedarray/Uint8ClampedArray#get:length - local.set $6 - loop $for-loop|0 - local.get $5 - local.get $6 - i32.lt_s - local.set $7 - local.get $7 - if - local.get $4 - local.get $5 - i32.const 0 - i32.shl - i32.add - i32.load8_u - local.get $5 - local.get $3 - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=12 - local.get $8 - i32.const 3 - global.set $~argumentsLength - local.get $2 - i32.load - call_indirect (type $i32_i32_i32_=>_i32) - if - i32.const 1 - br $~lib/typedarray/SOME<~lib/typedarray/Uint8ClampedArray,u8>|inlined.0 - end - local.get $5 - i32.const 1 - i32.add - local.set $5 - br $for-loop|0 - end - end - i32.const 0 - end - local.set $8 - global.get $~lib/memory/__stack_pointer - i32.const 16 + local.set $7 + local.get $9 + local.set $11 + local.get $7 + local.set $10 + local.get $11 + i64.const 1 + i64.shl + i64.const 1 + i64.add + local.set $12 + local.get $10 + i32.const 1 + i32.sub + local.set $13 + local.get $12 + i64.clz + i32.wrap_i64 + local.set $14 + local.get $12 + local.get $14 + i64.extend_i32_s + i64.shl + local.set $12 + local.get $13 + local.get $14 + i32.sub + local.set $13 + i32.const 1 + local.get $11 + i64.const 4503599627370496 + i64.eq i32.add - global.set $~lib/memory/__stack_pointer - local.get $8 - ) - (func $std/typedarray/testArraySome<~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 + local.set $15 + local.get $12 + global.set $~lib/util/number/_frc_plus + local.get $11 + local.get $15 + i64.extend_i32_s + i64.shl + i64.const 1 + i64.sub + local.get $10 + local.get $15 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 - global.get $~lib/memory/__stack_pointer - i32.const 0 + local.get $13 + i32.sub + i64.extend_i32_s + i64.shl + global.set $~lib/util/number/_frc_minus + local.get $13 + global.set $~lib/util/number/_exp + global.get $~lib/util/number/_exp + local.set $10 + i32.const -61 + local.get $10 + i32.sub + f64.convert_i32_s + f64.const 0.30102999566398114 + f64.mul + f64.const 347 + f64.add + local.set $16 + local.get $16 + i32.trunc_f64_s + local.set $15 + local.get $15 + local.get $15 + f64.convert_i32_s + local.get $16 + f64.ne + i32.add + local.set $15 + local.get $15 i32.const 3 - call $~lib/typedarray/Uint8ClampedArray#constructor - local.tee $0 - i32.store - local.get $0 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - i32.const 0 - i32.const 2 - call $~lib/typedarray/Uint8ClampedArray#__set - local.get $0 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 + i32.shr_s i32.const 1 - i32.const 4 - call $~lib/typedarray/Uint8ClampedArray#__set - local.get $0 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 + i32.add + local.set $14 + i32.const 348 + local.get $14 + i32.const 3 + i32.shl + i32.sub + global.set $~lib/util/number/_K + i32.const 8136 + local.get $14 + i32.const 3 + i32.shl + i32.add + i64.load + global.set $~lib/util/number/_frc_pow + i32.const 8832 + local.get $14 + i32.const 1 + i32.shl + i32.add + i32.load16_s + global.set $~lib/util/number/_exp_pow + local.get $9 + i64.clz + i32.wrap_i64 + local.set $14 + local.get $9 + local.get $14 + i64.extend_i32_s + i64.shl + local.set $9 + local.get $7 + local.get $14 + i32.sub + local.set $7 + global.get $~lib/util/number/_frc_pow + local.set $12 + global.get $~lib/util/number/_exp_pow + local.set $15 + local.get $9 + local.set $17 + local.get $12 + local.set $11 + local.get $17 + i64.const 4294967295 + i64.and + local.set $18 + local.get $11 + i64.const 4294967295 + i64.and + local.set $19 + local.get $17 + i64.const 32 + i64.shr_u + local.set $20 + local.get $11 + i64.const 32 + i64.shr_u + local.set $21 + local.get $18 + local.get $19 + i64.mul + local.set $22 + local.get $20 + local.get $19 + i64.mul + local.get $22 + i64.const 32 + i64.shr_u + i64.add + local.set $23 + local.get $18 + local.get $21 + i64.mul + local.get $23 + i64.const 4294967295 + i64.and + i64.add + local.set $24 + local.get $24 + i64.const 2147483647 + i64.add + local.set $24 + local.get $23 + i64.const 32 + i64.shr_u + local.set $23 + local.get $24 + i64.const 32 + i64.shr_u + local.set $24 + local.get $20 + local.get $21 + i64.mul + local.get $23 + i64.add + local.get $24 + i64.add + local.set $24 + local.get $7 + local.set $10 + local.get $15 + local.set $13 + local.get $10 + local.get $13 + i32.add + i32.const 64 + i32.add + local.set $10 + global.get $~lib/util/number/_frc_plus + local.set $17 + local.get $12 + local.set $11 + local.get $17 + i64.const 4294967295 + i64.and + local.set $23 + local.get $11 + i64.const 4294967295 + i64.and + local.set $22 + local.get $17 + i64.const 32 + i64.shr_u + local.set $21 + local.get $11 + i64.const 32 + i64.shr_u + local.set $20 + local.get $23 + local.get $22 + i64.mul + local.set $19 + local.get $21 + local.get $22 + i64.mul + local.get $19 + i64.const 32 + i64.shr_u + i64.add + local.set $18 + local.get $23 + local.get $20 + i64.mul + local.get $18 + i64.const 4294967295 + i64.and + i64.add + local.set $25 + local.get $25 + i64.const 2147483647 + i64.add + local.set $25 + local.get $18 + i64.const 32 + i64.shr_u + local.set $18 + local.get $25 + i64.const 32 + i64.shr_u + local.set $25 + local.get $21 + local.get $20 + i64.mul + local.get $18 + i64.add + local.get $25 + i64.add + i64.const 1 + i64.sub + local.set $25 + global.get $~lib/util/number/_exp + local.set $26 + local.get $15 + local.set $13 + local.get $26 + local.get $13 + i32.add + i32.const 64 + i32.add + local.set $26 + global.get $~lib/util/number/_frc_minus + local.set $17 + local.get $12 + local.set $11 + local.get $17 + i64.const 4294967295 + i64.and + local.set $18 + local.get $11 + i64.const 4294967295 + i64.and + local.set $19 + local.get $17 + i64.const 32 + i64.shr_u + local.set $20 + local.get $11 + i64.const 32 + i64.shr_u + local.set $21 + local.get $18 + local.get $19 + i64.mul + local.set $22 + local.get $20 + local.get $19 + i64.mul + local.get $22 + i64.const 32 + i64.shr_u + i64.add + local.set $23 + local.get $18 + local.get $21 + i64.mul + local.get $23 + i64.const 4294967295 + i64.and + i64.add + local.set $27 + local.get $27 + i64.const 2147483647 + i64.add + local.set $27 + local.get $23 + i64.const 32 + i64.shr_u + local.set $23 + local.get $27 + i64.const 32 + i64.shr_u + local.set $27 + local.get $20 + local.get $21 + i64.mul + local.get $23 + i64.add + local.get $27 + i64.add + i64.const 1 + i64.add + local.set $27 + local.get $25 + local.get $27 + i64.sub + local.set $23 + local.get $4 + local.get $24 + local.get $10 + local.get $25 + local.get $26 + local.get $23 local.get $3 - i32.const 2 - i32.const 6 - call $~lib/typedarray/Uint8ClampedArray#__set + call $~lib/util/number/genDigits + local.set $28 local.get $0 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - i32.const 3408 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=8 - local.get $3 - call $~lib/typedarray/Uint8ClampedArray#some - local.set $1 + local.get $2 + i32.const 1 + i32.shl + i32.add + local.get $28 + local.get $2 + i32.sub + global.get $~lib/util/number/_K + call $~lib/util/number/prettify + local.set $28 + local.get $28 + local.get $2 + i32.add + ) + (func $~lib/util/number/dtoa_buffered (param $0 i32) (param $1 f64) (result i32) + (local $2 i32) local.get $1 - i32.const 0 - i32.ne - i32.eqz + f64.const 0 + f64.eq if - i32.const 0 - i32.const 544 - i32.const 438 + 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 + return end - local.get $0 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - i32.const 3440 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=8 - local.get $3 - call $~lib/typedarray/Uint8ClampedArray#some - local.set $2 - local.get $2 - i32.eqz + local.get $1 + local.get $1 + f64.sub + f64.const 0 + f64.eq i32.eqz if - i32.const 0 - i32.const 544 - i32.const 440 - 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/Int16Array#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 $7 i32) - (local $8 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 - block $~lib/typedarray/SOME<~lib/typedarray/Int16Array,i16>|inlined.0 (result i32) - global.get $~lib/memory/__stack_pointer - local.get $0 - local.tee $3 - i32.store - global.get $~lib/memory/__stack_pointer local.get $1 - local.tee $2 - i32.store offset=4 - local.get $3 - i32.load offset=4 - local.set $4 - i32.const 0 - local.set $5 - local.get $3 - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=8 - local.get $8 - call $~lib/typedarray/Int16Array#get:length - local.set $6 - loop $for-loop|0 - local.get $5 - local.get $6 - i32.lt_s - local.set $7 - local.get $7 + 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 + return + else + local.get $1 + f64.const 0 + f64.lt + local.set $2 + local.get $2 if - local.get $4 - local.get $5 - i32.const 1 - i32.shl - i32.add - i32.load16_s - local.get $5 - local.get $3 - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=12 - local.get $8 - i32.const 3 - global.set $~argumentsLength - local.get $2 - i32.load - call_indirect (type $i32_i32_i32_=>_i32) - if - i32.const 1 - br $~lib/typedarray/SOME<~lib/typedarray/Int16Array,i16>|inlined.0 - end - local.get $5 - i32.const 1 + local.get $0 + i32.const 45 + i32.store16 + local.get $0 + i32.const 2 i32.add - local.set $5 - br $for-loop|0 + local.set $0 end + local.get $0 + i64.const 29555310648492105 + i64.store + local.get $0 + i64.const 34058970405077102 + i64.store offset=8 + i32.const 8 + local.get $2 + i32.add + return end - i32.const 0 + unreachable end - local.set $8 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $8 + local.get $0 + local.get $1 + call $~lib/util/number/dtoa_core ) - (func $std/typedarray/testArraySome<~lib/typedarray/Int16Array,i16> - (local $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 - 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 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 3 - call $~lib/typedarray/Int16Array#constructor - local.tee $0 - i32.store + (func $~lib/typedarray/Float32Array#join (param $0 i32) (param $1 i32) (result i32) local.get $0 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - i32.const 0 - i32.const 2 - call $~lib/typedarray/Int16Array#__set + i32.load offset=4 local.get $0 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - i32.const 1 - i32.const 4 - call $~lib/typedarray/Int16Array#__set + call $~lib/typedarray/Float32Array#get:length + local.get $1 + call $~lib/util/string/joinFloatArray + ) + (func $~lib/typedarray/Float64Array#join (param $0 i32) (param $1 i32) (result i32) local.get $0 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - i32.const 2 - i32.const 6 - call $~lib/typedarray/Int16Array#__set + i32.load offset=4 local.get $0 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - i32.const 3472 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=8 - local.get $3 - call $~lib/typedarray/Int16Array#some - local.set $1 + call $~lib/typedarray/Float64Array#get:length local.get $1 - i32.const 0 - i32.ne - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 438 - i32.const 3 - call $~lib/builtins/abort - unreachable + call $~lib/util/string/joinFloatArray + ) + (func $~lib/arraybuffer/ArrayBuffer#get:byteLength (param $0 i32) (result i32) + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 + ) + (func $~lib/typedarray/Uint8Array.wrap@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 0 + local.set $1 + end + i32.const -1 + local.set $2 end local.get $0 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - i32.const 3504 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=8 - local.get $3 - call $~lib/typedarray/Int16Array#some - local.set $2 + local.get $1 local.get $2 - i32.eqz - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 440 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer + call $~lib/typedarray/Uint8Array.wrap ) - (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) - (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 - 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 - block $~lib/typedarray/SOME<~lib/typedarray/Uint16Array,u16>|inlined.0 (result i32) - global.get $~lib/memory/__stack_pointer - local.get $0 - local.tee $3 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - local.tee $2 - i32.store offset=4 - local.get $3 - i32.load offset=4 - local.set $4 - i32.const 0 - local.set $5 - local.get $3 - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=8 - local.get $8 - call $~lib/typedarray/Uint16Array#get:length - local.set $6 - loop $for-loop|0 - local.get $5 - local.get $6 - i32.lt_s - local.set $7 - local.get $7 - if - local.get $4 - local.get $5 - i32.const 1 - i32.shl - i32.add - i32.load16_u - local.get $5 - local.get $3 - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=12 - local.get $8 - i32.const 3 - global.set $~argumentsLength - local.get $2 - i32.load - call_indirect (type $i32_i32_i32_=>_i32) - if + (func $~lib/typedarray/Int8Array.wrap@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 - br $~lib/typedarray/SOME<~lib/typedarray/Uint16Array,u16>|inlined.0 + i32.sub + br_table $0of2 $1of2 $2of2 $outOfRange end - local.get $5 - i32.const 1 - i32.add - local.set $5 - br $for-loop|0 + unreachable end + i32.const 0 + local.set $1 end - i32.const 0 + i32.const -1 + local.set $2 end - local.set $8 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $8 - ) - (func $std/typedarray/testArraySome<~lib/typedarray/Uint16Array,u16> - (local $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 - 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 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 3 - call $~lib/typedarray/Uint16Array#constructor - local.tee $0 - i32.store - local.get $0 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - i32.const 0 - i32.const 2 - call $~lib/typedarray/Uint16Array#__set - local.get $0 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - i32.const 1 - i32.const 4 - call $~lib/typedarray/Uint16Array#__set local.get $0 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - i32.const 2 - i32.const 6 - call $~lib/typedarray/Uint16Array#__set + local.get $1 + local.get $2 + call $~lib/typedarray/Int8Array.wrap + ) + (func $~lib/typedarray/Uint8ClampedArray.wrap@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 0 + local.set $1 + end + i32.const -1 + local.set $2 + end local.get $0 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - i32.const 3536 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=8 - local.get $3 - call $~lib/typedarray/Uint16Array#some - local.set $1 local.get $1 - i32.const 0 - i32.ne - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 438 - i32.const 3 - call $~lib/builtins/abort - unreachable + local.get $2 + call $~lib/typedarray/Uint8ClampedArray.wrap + ) + (func $~lib/typedarray/Int16Array.wrap@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 0 + local.set $1 + end + i32.const -1 + local.set $2 end local.get $0 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - i32.const 3568 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=8 - local.get $3 - call $~lib/typedarray/Uint16Array#some - local.set $2 + local.get $1 local.get $2 - i32.eqz - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 440 - i32.const 3 - call $~lib/builtins/abort - unreachable + call $~lib/typedarray/Int16Array.wrap + ) + (func $~lib/typedarray/Uint16Array.wrap@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 0 + local.set $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 $0 + local.get $1 + local.get $2 + call $~lib/typedarray/Uint16Array.wrap ) - (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) - (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 - 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 - block $~lib/typedarray/SOME<~lib/typedarray/Int32Array,i32>|inlined.0 (result i32) - global.get $~lib/memory/__stack_pointer - local.get $0 - local.tee $3 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - local.tee $2 - i32.store offset=4 - local.get $3 - i32.load offset=4 - local.set $4 - i32.const 0 - local.set $5 - local.get $3 - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=8 - local.get $8 - call $~lib/typedarray/Int32Array#get:length - local.set $6 - loop $for-loop|0 - local.get $5 - local.get $6 - i32.lt_s - local.set $7 - local.get $7 - if - local.get $4 - local.get $5 - i32.const 2 - i32.shl - i32.add - i32.load - local.get $5 - local.get $3 - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=12 - local.get $8 - i32.const 3 - global.set $~argumentsLength - local.get $2 - i32.load - call_indirect (type $i32_i32_i32_=>_i32) - if + (func $~lib/typedarray/Int32Array.wrap@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 - br $~lib/typedarray/SOME<~lib/typedarray/Int32Array,i32>|inlined.0 + i32.sub + br_table $0of2 $1of2 $2of2 $outOfRange end - local.get $5 - i32.const 1 - i32.add - local.set $5 - br $for-loop|0 + unreachable end + i32.const 0 + local.set $1 end - i32.const 0 + i32.const -1 + local.set $2 end - local.set $8 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $8 - ) - (func $std/typedarray/testArraySome<~lib/typedarray/Int32Array,i32> - (local $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 - 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 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 3 - call $~lib/typedarray/Int32Array#constructor - local.tee $0 - i32.store - local.get $0 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - i32.const 0 - i32.const 2 - call $~lib/typedarray/Int32Array#__set local.get $0 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - i32.const 1 - i32.const 4 - call $~lib/typedarray/Int32Array#__set + local.get $1 + local.get $2 + call $~lib/typedarray/Int32Array.wrap + ) + (func $~lib/typedarray/Uint32Array.wrap@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 0 + local.set $1 + end + i32.const -1 + local.set $2 + end local.get $0 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - i32.const 2 - i32.const 6 - call $~lib/typedarray/Int32Array#__set + local.get $1 + local.get $2 + call $~lib/typedarray/Uint32Array.wrap + ) + (func $~lib/typedarray/Int64Array.wrap@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 0 + local.set $1 + end + i32.const -1 + local.set $2 + end local.get $0 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - i32.const 3600 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=8 - local.get $3 - call $~lib/typedarray/Int32Array#some - local.set $1 local.get $1 - i32.const 0 - i32.ne - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 438 - i32.const 3 - call $~lib/builtins/abort - unreachable + local.get $2 + call $~lib/typedarray/Int64Array.wrap + ) + (func $~lib/typedarray/Uint64Array.wrap@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 0 + local.set $1 + end + i32.const -1 + local.set $2 end local.get $0 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - i32.const 3632 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=8 - local.get $3 - call $~lib/typedarray/Int32Array#some - local.set $2 + local.get $1 local.get $2 - i32.eqz - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 440 - i32.const 3 - call $~lib/builtins/abort - unreachable + call $~lib/typedarray/Uint64Array.wrap + ) + (func $~lib/typedarray/Float32Array.wrap@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 0 + local.set $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 $0 + local.get $1 + local.get $2 + call $~lib/typedarray/Float32Array.wrap ) - (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) - (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 - 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 - block $~lib/typedarray/SOME<~lib/typedarray/Uint32Array,u32>|inlined.0 (result i32) - global.get $~lib/memory/__stack_pointer - local.get $0 - local.tee $3 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - local.tee $2 - i32.store offset=4 - local.get $3 - i32.load offset=4 - local.set $4 - i32.const 0 - local.set $5 - local.get $3 - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=8 - local.get $8 - call $~lib/typedarray/Uint32Array#get:length - local.set $6 - loop $for-loop|0 - local.get $5 - local.get $6 - i32.lt_s - local.set $7 - local.get $7 - if - local.get $4 - local.get $5 - i32.const 2 - i32.shl - i32.add - i32.load - local.get $5 - local.get $3 - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=12 - local.get $8 - i32.const 3 - global.set $~argumentsLength - local.get $2 - i32.load - call_indirect (type $i32_i32_i32_=>_i32) - if + (func $~lib/typedarray/Float64Array.wrap@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 - br $~lib/typedarray/SOME<~lib/typedarray/Uint32Array,u32>|inlined.0 + i32.sub + br_table $0of2 $1of2 $2of2 $outOfRange end - local.get $5 - i32.const 1 - i32.add - local.set $5 - br $for-loop|0 + unreachable end + i32.const 0 + local.set $1 end - i32.const 0 + i32.const -1 + local.set $2 end - local.set $8 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $8 + local.get $0 + local.get $1 + local.get $2 + call $~lib/typedarray/Float64Array.wrap ) - (func $std/typedarray/testArraySome<~lib/typedarray/Uint32Array,u32> - (local $0 i32) - (local $1 i32) - (local $2 i32) + (func $~lib/typedarray/Int8Array#set<~lib/array/Array> (param $0 i32) (param $1 i32) (param $2 i32) (local $3 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 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 3 - call $~lib/typedarray/Uint32Array#constructor - local.tee $0 - i32.store + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) local.get $0 + local.set $5 + local.get $1 + local.set $4 + local.get $2 local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 i32.const 0 - i32.const 2 - call $~lib/typedarray/Uint32Array#__set - local.get $0 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - i32.const 1 - i32.const 4 - call $~lib/typedarray/Uint32Array#__set - local.get $0 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - i32.const 2 - i32.const 6 - call $~lib/typedarray/Uint32Array#__set - local.get $0 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - i32.const 3664 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=8 + drop local.get $3 - call $~lib/typedarray/Uint32Array#some - local.set $1 - local.get $1 i32.const 0 - i32.ne - i32.eqz + i32.lt_s if - i32.const 0 - i32.const 544 - i32.const 438 - i32.const 3 + i32.const 336 + i32.const 608 + i32.const 1864 + i32.const 19 call $~lib/builtins/abort unreachable end - local.get $0 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - i32.const 3696 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=8 + local.get $4 + call $~lib/array/Array#get:length local.get $3 - call $~lib/typedarray/Uint32Array#some - local.set $2 - local.get $2 - i32.eqz - i32.eqz + i32.add + local.get $5 + call $~lib/typedarray/Int8Array#get:length + i32.gt_s if - i32.const 0 - i32.const 544 - i32.const 440 - i32.const 3 + i32.const 336 + i32.const 608 + i32.const 1865 + i32.const 47 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 1 + i32.const 1 + i32.eq + if (result i32) + i32.const 0 + i32.const 2 + i32.eq + else + i32.const 0 + end + if (result i32) + i32.const 0 + if (result i32) + i32.const 1 + else + i32.const 0 + end + i32.eqz + else + i32.const 0 + end + drop + local.get $5 + i32.load offset=4 + local.get $3 + i32.const 0 + i32.shl i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/typedarray/Int64Array#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 $7 i32) - (local $8 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 - block $~lib/typedarray/SOME<~lib/typedarray/Int64Array,i64>|inlined.0 (result i32) - global.get $~lib/memory/__stack_pointer - local.get $0 - local.tee $3 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - local.tee $2 - i32.store offset=4 - local.get $3 - i32.load offset=4 - local.set $4 - i32.const 0 - local.set $5 - local.get $3 - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=8 + local.set $6 + local.get $4 + i32.load offset=4 + local.set $7 + local.get $4 + call $~lib/array/Array#get:length + local.set $8 + i32.const 0 + local.set $9 + loop $for-loop|0 + local.get $9 local.get $8 - call $~lib/typedarray/Int64Array#get:length - local.set $6 - loop $for-loop|0 - local.get $5 + i32.lt_s + local.set $10 + local.get $10 + if + i32.const 0 + drop + i32.const 0 + if (result i32) + i32.const 0 + i32.eqz + else + i32.const 0 + end + drop + i32.const 0 + if (result i32) + i32.const 0 + i32.eqz + else + i32.const 0 + end + drop local.get $6 - i32.lt_s - local.set $7 + local.get $9 + i32.const 0 + i32.shl + i32.add local.get $7 - if - local.get $4 - local.get $5 - i32.const 3 - i32.shl - i32.add - i64.load - local.get $5 - local.get $3 - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=12 - local.get $8 - i32.const 3 - global.set $~argumentsLength - local.get $2 - i32.load - call_indirect (type $i64_i32_i32_=>_i32) - if - i32.const 1 - br $~lib/typedarray/SOME<~lib/typedarray/Int64Array,i64>|inlined.0 - end - local.get $5 - i32.const 1 - i32.add - local.set $5 - br $for-loop|0 - end + local.get $9 + i32.const 2 + i32.shl + i32.add + i32.load + i32.store8 + local.get $9 + i32.const 1 + i32.add + local.set $9 + br $for-loop|0 end - i32.const 0 end - local.set $8 - global.get $~lib/memory/__stack_pointer - i32.const 16 + ) + (func $~lib/typedarray/Int8Array#__uget (param $0 i32) (param $1 i32) (result i32) + local.get $0 + i32.load offset=4 + local.get $1 i32.add - global.set $~lib/memory/__stack_pointer - local.get $8 + i32.load8_s ) - (func $std/typedarray/testArraySome<~lib/typedarray/Int64Array,i64> - (local $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 - 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 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 3 - call $~lib/typedarray/Int64Array#constructor - local.tee $0 - i32.store + (func $~lib/array/Array#__uget (param $0 i32) (param $1 i32) (result i32) local.get $0 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 + i32.load offset=4 + local.get $1 i32.const 0 - i64.const 2 - call $~lib/typedarray/Int64Array#__set - local.get $0 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - i32.const 1 - i64.const 4 - call $~lib/typedarray/Int64Array#__set + i32.shl + i32.add + i32.load8_s + ) + (func $~lib/array/Array#get:length (param $0 i32) (result i32) local.get $0 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - i32.const 2 - i64.const 6 - call $~lib/typedarray/Int64Array#__set + i32.load offset=12 + ) + (func $~lib/typedarray/Int8Array#set<~lib/array/Array> (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 f32) local.get $0 + local.set $5 + local.get $1 + local.set $4 + local.get $2 local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - i32.const 3728 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=8 + i32.const 0 + drop local.get $3 - call $~lib/typedarray/Int64Array#some - local.set $1 - local.get $1 i32.const 0 - i32.ne - i32.eqz + i32.lt_s if - i32.const 0 - i32.const 544 - i32.const 438 - i32.const 3 + i32.const 336 + i32.const 608 + i32.const 1864 + i32.const 19 call $~lib/builtins/abort unreachable end - local.get $0 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - i32.const 3760 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=8 + local.get $4 + call $~lib/array/Array#get:length local.get $3 - call $~lib/typedarray/Int64Array#some - local.set $2 - local.get $2 - i32.eqz - i32.eqz + i32.add + local.get $5 + call $~lib/typedarray/Int8Array#get:length + i32.gt_s if - i32.const 0 - i32.const 544 - i32.const 440 - i32.const 3 + i32.const 336 + i32.const 608 + i32.const 1865 + i32.const 47 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/Uint64Array#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 $7 i32) - (local $8 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 - block $~lib/typedarray/SOME<~lib/typedarray/Uint64Array,u64>|inlined.0 (result i32) - global.get $~lib/memory/__stack_pointer - local.get $0 - local.tee $3 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - local.tee $2 - i32.store offset=4 - local.get $3 - i32.load offset=4 - local.set $4 + i32.const 1 + i32.const 0 + i32.eq + if (result i32) i32.const 0 - local.set $5 - local.get $3 - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=8 + i32.const 2 + i32.eq + else + i32.const 0 + end + if (result i32) + i32.const 0 + if (result i32) + i32.const 0 + else + i32.const 0 + end + i32.eqz + else + i32.const 0 + end + drop + local.get $5 + i32.load offset=4 + local.get $3 + i32.const 0 + i32.shl + i32.add + local.set $6 + local.get $4 + i32.load offset=4 + local.set $7 + local.get $4 + call $~lib/array/Array#get:length + local.set $8 + i32.const 0 + local.set $9 + loop $for-loop|0 + local.get $9 local.get $8 - call $~lib/typedarray/Uint64Array#get:length - local.set $6 - loop $for-loop|0 - local.get $5 - local.get $6 - i32.lt_s - local.set $7 + i32.lt_s + local.set $10 + local.get $10 + if + i32.const 0 + drop + i32.const 1 + if (result i32) + i32.const 0 + i32.eqz + else + i32.const 0 + end + drop local.get $7 - if - local.get $4 - local.get $5 - i32.const 3 - i32.shl - i32.add - i64.load - local.get $5 - local.get $3 - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=12 - local.get $8 - i32.const 3 - global.set $~argumentsLength - local.get $2 - i32.load - call_indirect (type $i64_i32_i32_=>_i32) - if - i32.const 1 - br $~lib/typedarray/SOME<~lib/typedarray/Uint64Array,u64>|inlined.0 - end - local.get $5 - i32.const 1 - i32.add - local.set $5 - br $for-loop|0 + local.get $9 + i32.const 2 + i32.shl + i32.add + f32.load + local.set $11 + local.get $6 + local.get $9 + i32.const 0 + i32.shl + i32.add + local.get $11 + local.get $11 + f32.sub + f32.const 0 + f32.eq + if (result i32) + local.get $11 + i32.trunc_f32_s + else + i32.const 0 end + i32.store8 + local.get $9 + i32.const 1 + i32.add + local.set $9 + br $for-loop|0 end - i32.const 0 end - local.set $8 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $8 ) - (func $std/typedarray/testArraySome<~lib/typedarray/Uint64Array,u64> - (local $0 i32) - (local $1 i32) - (local $2 i32) + (func $~lib/typedarray/Int8Array#set<~lib/typedarray/Int64Array> (param $0 i32) (param $1 i32) (param $2 i32) (local $3 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 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 3 - call $~lib/typedarray/Uint64Array#constructor - local.tee $0 - i32.store + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) local.get $0 + local.set $5 + local.get $1 + local.set $4 + local.get $2 local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 i32.const 0 - i64.const 2 - call $~lib/typedarray/Uint64Array#__set - local.get $0 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - i32.const 1 - i64.const 4 - call $~lib/typedarray/Uint64Array#__set - local.get $0 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - i32.const 2 - i64.const 6 - call $~lib/typedarray/Uint64Array#__set - local.get $0 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - i32.const 3792 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=8 + drop local.get $3 - call $~lib/typedarray/Uint64Array#some - local.set $1 - local.get $1 i32.const 0 - i32.ne - i32.eqz + i32.lt_s if - i32.const 0 - i32.const 544 - i32.const 438 - i32.const 3 + i32.const 336 + i32.const 608 + i32.const 1864 + i32.const 19 call $~lib/builtins/abort unreachable end - local.get $0 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - i32.const 3824 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=8 + local.get $4 + call $~lib/typedarray/Int64Array#get:length local.get $3 - call $~lib/typedarray/Uint64Array#some - local.set $2 - local.get $2 - i32.eqz - i32.eqz + i32.add + local.get $5 + call $~lib/typedarray/Int8Array#get:length + i32.gt_s if - i32.const 0 - i32.const 544 - i32.const 440 - i32.const 3 + i32.const 336 + i32.const 608 + i32.const 1865 + i32.const 47 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 1 + i32.const 1 + i32.eq + if (result i32) + i32.const 0 + i32.const 3 + i32.eq + else + i32.const 0 + end + if (result i32) + i32.const 0 + if (result i32) + i32.const 1 + else + i32.const 0 + end + i32.eqz + else + i32.const 0 + end + drop + local.get $5 + i32.load offset=4 + local.get $3 + i32.const 0 + i32.shl i32.add - global.set $~lib/memory/__stack_pointer + local.set $6 + local.get $4 + i32.load offset=4 + local.set $7 + local.get $4 + call $~lib/typedarray/Int64Array#get:length + local.set $8 + i32.const 0 + local.set $9 + loop $for-loop|0 + local.get $9 + local.get $8 + i32.lt_s + local.set $10 + local.get $10 + if + i32.const 0 + drop + i32.const 0 + if (result i32) + i32.const 0 + i32.eqz + else + i32.const 0 + end + drop + i32.const 0 + if (result i32) + i32.const 0 + i32.eqz + else + i32.const 0 + end + drop + local.get $6 + local.get $9 + i32.const 0 + i32.shl + i32.add + local.get $7 + local.get $9 + i32.const 3 + i32.shl + i32.add + i64.load + i64.store8 + local.get $9 + i32.const 1 + i32.add + local.set $9 + br $for-loop|0 + end + end ) - (func $~lib/typedarray/Float32Array#some (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) + (func $~lib/array/Array#get:length (param $0 i32) (result i32) + local.get $0 + i32.load offset=12 + ) + (func $~lib/typedarray/Int8Array#set<~lib/array/Array> (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) - 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 - block $~lib/typedarray/SOME<~lib/typedarray/Float32Array,f32>|inlined.0 (result i32) - global.get $~lib/memory/__stack_pointer - local.get $0 - local.tee $3 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - local.tee $2 - i32.store offset=4 - local.get $3 - i32.load offset=4 - local.set $4 + (local $9 i32) + (local $10 i32) + (local $11 f64) + local.get $0 + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + i32.const 0 + drop + local.get $3 + i32.const 0 + i32.lt_s + if + i32.const 336 + i32.const 608 + i32.const 1864 + i32.const 19 + call $~lib/builtins/abort + unreachable + end + local.get $4 + call $~lib/array/Array#get:length + local.get $3 + i32.add + local.get $5 + call $~lib/typedarray/Int8Array#get:length + i32.gt_s + if + i32.const 336 + i32.const 608 + i32.const 1865 + i32.const 47 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + i32.const 0 + i32.eq + if (result i32) i32.const 0 - local.set $5 - local.get $3 - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=8 + i32.const 3 + i32.eq + else + i32.const 0 + end + if (result i32) + i32.const 0 + if (result i32) + i32.const 0 + else + i32.const 0 + end + i32.eqz + else + i32.const 0 + end + drop + local.get $5 + i32.load offset=4 + local.get $3 + i32.const 0 + i32.shl + i32.add + local.set $6 + local.get $4 + i32.load offset=4 + local.set $7 + local.get $4 + call $~lib/array/Array#get:length + local.set $8 + i32.const 0 + local.set $9 + loop $for-loop|0 + local.get $9 local.get $8 - call $~lib/typedarray/Float32Array#get:length - local.set $6 - loop $for-loop|0 - local.get $5 - local.get $6 - i32.lt_s - local.set $7 + i32.lt_s + local.set $10 + local.get $10 + if + i32.const 0 + drop + i32.const 1 + if (result i32) + i32.const 0 + i32.eqz + else + i32.const 0 + end + drop local.get $7 - if - local.get $4 - local.get $5 - i32.const 2 - i32.shl - i32.add - f32.load - local.get $5 - local.get $3 - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=12 - local.get $8 - i32.const 3 - global.set $~argumentsLength - local.get $2 - i32.load - call_indirect (type $f32_i32_i32_=>_i32) - if - i32.const 1 - br $~lib/typedarray/SOME<~lib/typedarray/Float32Array,f32>|inlined.0 - end - local.get $5 - i32.const 1 - i32.add - local.set $5 - br $for-loop|0 + local.get $9 + i32.const 3 + i32.shl + i32.add + f64.load + local.set $11 + local.get $6 + local.get $9 + i32.const 0 + i32.shl + i32.add + local.get $11 + local.get $11 + f64.sub + f64.const 0 + f64.eq + if (result i32) + local.get $11 + i32.trunc_f64_s + else + i32.const 0 end + i32.store8 + local.get $9 + i32.const 1 + i32.add + local.set $9 + br $for-loop|0 end - i32.const 0 end - local.set $8 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $8 ) - (func $std/typedarray/testArraySome<~lib/typedarray/Float32Array,f32> - (local $0 i32) - (local $1 i32) - (local $2 i32) + (func $~lib/typedarray/Int8Array#set<~lib/typedarray/Uint8Array> (param $0 i32) (param $1 i32) (param $2 i32) (local $3 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 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 3 - call $~lib/typedarray/Float32Array#constructor - local.tee $0 - i32.store + (local $4 i32) + (local $5 i32) local.get $0 + local.set $5 + local.get $1 + local.set $4 + local.get $2 local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 i32.const 0 - f32.const 2 - call $~lib/typedarray/Float32Array#__set - local.get $0 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - i32.const 1 - f32.const 4 - call $~lib/typedarray/Float32Array#__set - local.get $0 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - i32.const 2 - f32.const 6 - call $~lib/typedarray/Float32Array#__set - local.get $0 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - i32.const 3856 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=8 + drop local.get $3 - call $~lib/typedarray/Float32Array#some - local.set $1 - local.get $1 i32.const 0 - i32.ne - i32.eqz + i32.lt_s if - i32.const 0 - i32.const 544 - i32.const 438 - i32.const 3 + i32.const 336 + i32.const 608 + i32.const 1864 + i32.const 19 call $~lib/builtins/abort unreachable end - local.get $0 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - i32.const 3888 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=8 + local.get $4 + call $~lib/typedarray/Uint8Array#get:length local.get $3 - call $~lib/typedarray/Float32Array#some - local.set $2 - local.get $2 - i32.eqz - i32.eqz + i32.add + local.get $5 + call $~lib/typedarray/Int8Array#get:length + i32.gt_s if - i32.const 0 - i32.const 544 - i32.const 440 - i32.const 3 + i32.const 336 + i32.const 608 + i32.const 1865 + i32.const 47 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 1 + i32.const 1 + i32.eq + if (result i32) + i32.const 0 + i32.const 0 + i32.eq + else + i32.const 0 + end + if (result i32) + i32.const 0 + if (result i32) + i32.const 0 + else + i32.const 0 + end + i32.eqz + else + i32.const 0 + end + drop + local.get $5 + i32.load offset=4 + local.get $3 + i32.const 0 + i32.shl i32.add - global.set $~lib/memory/__stack_pointer + local.get $4 + i32.load offset=4 + local.get $4 + i32.load offset=8 + call $~lib/memory/memory.copy ) - (func $~lib/typedarray/Float64Array#some (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) + (func $~lib/typedarray/Int8Array#set<~lib/typedarray/Int16Array> (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) - 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 - block $~lib/typedarray/SOME<~lib/typedarray/Float64Array,f64>|inlined.0 (result i32) - global.get $~lib/memory/__stack_pointer - local.get $0 - local.tee $3 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - local.tee $2 - i32.store offset=4 - local.get $3 - i32.load offset=4 - local.set $4 + (local $9 i32) + (local $10 i32) + local.get $0 + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + i32.const 0 + drop + local.get $3 + i32.const 0 + i32.lt_s + if + i32.const 336 + i32.const 608 + i32.const 1864 + i32.const 19 + call $~lib/builtins/abort + unreachable + end + local.get $4 + call $~lib/typedarray/Int16Array#get:length + local.get $3 + i32.add + local.get $5 + call $~lib/typedarray/Int8Array#get:length + i32.gt_s + if + i32.const 336 + i32.const 608 + i32.const 1865 + i32.const 47 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + i32.const 1 + i32.eq + if (result i32) i32.const 0 - local.set $5 - local.get $3 - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=8 - local.get $8 - call $~lib/typedarray/Float64Array#get:length - local.set $6 - loop $for-loop|0 - local.get $5 - local.get $6 - i32.lt_s - local.set $7 - local.get $7 - if - local.get $4 - local.get $5 - i32.const 3 - i32.shl - i32.add - f64.load - local.get $5 - local.get $3 - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=12 - local.get $8 - i32.const 3 - global.set $~argumentsLength - local.get $2 - i32.load - call_indirect (type $f64_i32_i32_=>_i32) - if - i32.const 1 - br $~lib/typedarray/SOME<~lib/typedarray/Float64Array,f64>|inlined.0 - end - local.get $5 - i32.const 1 - i32.add - local.set $5 - br $for-loop|0 - end + i32.const 1 + i32.eq + else + i32.const 0 + end + if (result i32) + i32.const 0 + if (result i32) + i32.const 1 + else + i32.const 0 end + i32.eqz + else i32.const 0 end - local.set $8 - global.get $~lib/memory/__stack_pointer - i32.const 16 + drop + local.get $5 + i32.load offset=4 + local.get $3 + i32.const 0 + i32.shl i32.add - global.set $~lib/memory/__stack_pointer - local.get $8 + local.set $6 + local.get $4 + i32.load offset=4 + local.set $7 + local.get $4 + call $~lib/typedarray/Int16Array#get:length + local.set $8 + i32.const 0 + local.set $9 + loop $for-loop|0 + local.get $9 + local.get $8 + i32.lt_s + local.set $10 + local.get $10 + if + i32.const 0 + drop + i32.const 0 + if (result i32) + i32.const 0 + i32.eqz + else + i32.const 0 + end + drop + i32.const 0 + if (result i32) + i32.const 0 + i32.eqz + else + i32.const 0 + end + drop + local.get $6 + local.get $9 + i32.const 0 + i32.shl + i32.add + local.get $7 + local.get $9 + i32.const 1 + i32.shl + i32.add + i32.load16_s + i32.store8 + local.get $9 + i32.const 1 + i32.add + local.set $9 + br $for-loop|0 + end + end ) - (func $std/typedarray/testArraySome<~lib/typedarray/Float64Array,f64> - (local $0 i32) - (local $1 i32) - (local $2 i32) + (func $~lib/typedarray/Int8Array#set<~lib/array/Array> (param $0 i32) (param $1 i32) (param $2 i32) (local $3 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 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 3 - call $~lib/typedarray/Float64Array#constructor - local.tee $0 - i32.store + (local $4 i32) + (local $5 i32) local.get $0 + local.set $5 + local.get $1 + local.set $4 + local.get $2 local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 i32.const 0 - f64.const 2 - call $~lib/typedarray/Float64Array#__set - local.get $0 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - i32.const 1 - f64.const 4 - call $~lib/typedarray/Float64Array#__set - local.get $0 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - i32.const 2 - f64.const 6 - call $~lib/typedarray/Float64Array#__set - local.get $0 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - i32.const 3920 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=8 + drop local.get $3 - call $~lib/typedarray/Float64Array#some - local.set $1 - local.get $1 i32.const 0 - i32.ne - i32.eqz + i32.lt_s if - i32.const 0 - i32.const 544 - i32.const 438 - i32.const 3 + i32.const 336 + i32.const 608 + i32.const 1864 + i32.const 19 call $~lib/builtins/abort unreachable end - local.get $0 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - i32.const 3952 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=8 + local.get $4 + call $~lib/array/Array#get:length local.get $3 - call $~lib/typedarray/Float64Array#some - local.set $2 - local.get $2 - i32.eqz - i32.eqz + i32.add + local.get $5 + call $~lib/typedarray/Int8Array#get:length + i32.gt_s if - i32.const 0 - i32.const 544 - i32.const 440 - i32.const 3 + i32.const 336 + i32.const 608 + i32.const 1865 + i32.const 47 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 1 + i32.const 1 + i32.eq + if (result i32) + i32.const 0 + i32.const 0 + i32.eq + else + i32.const 0 + end + if (result i32) + i32.const 0 + if (result i32) + i32.const 1 + else + i32.const 0 + end + i32.eqz + else + i32.const 0 + end + drop + local.get $5 + i32.load offset=4 + local.get $3 + i32.const 0 + i32.shl i32.add - global.set $~lib/memory/__stack_pointer + local.get $4 + i32.load offset=4 + local.get $4 + i32.load offset=8 + call $~lib/memory/memory.copy ) - (func $~lib/typedarray/Int8Array#findIndex (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) + (func $~lib/typedarray/Uint8Array#set<~lib/array/Array> (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) - 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 - block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int8Array,i8>|inlined.0 (result i32) - global.get $~lib/memory/__stack_pointer - local.get $0 - local.tee $3 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - local.tee $2 - i32.store offset=4 - local.get $3 - i32.load offset=4 - local.set $4 - i32.const 0 - local.set $5 - local.get $3 - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=8 - local.get $8 - call $~lib/typedarray/Int8Array#get:length - local.set $6 - loop $for-loop|0 - local.get $5 - local.get $6 - i32.lt_s - local.set $7 - local.get $7 - if - local.get $4 - local.get $5 - i32.const 0 - i32.shl - i32.add - i32.load8_s - local.get $5 - local.get $3 - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=12 - local.get $8 - i32.const 3 - global.set $~argumentsLength - local.get $2 - i32.load - call_indirect (type $i32_i32_i32_=>_i32) - if - local.get $5 - br $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int8Array,i8>|inlined.0 - end - local.get $5 - i32.const 1 - i32.add - local.set $5 - br $for-loop|0 - end - end - i32.const -1 - end - local.set $8 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $8 - ) - (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Int8Array,i8> - (local $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 - 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 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 3 - call $~lib/typedarray/Int8Array#constructor - local.tee $0 - i32.store + (local $9 i32) + (local $10 i32) local.get $0 + local.set $5 + local.get $1 + local.set $4 + local.get $2 local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 i32.const 0 - i32.const 1 - call $~lib/typedarray/Int8Array#__set - local.get $0 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - i32.const 1 - i32.const 2 - call $~lib/typedarray/Int8Array#__set - local.get $0 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - i32.const 2 - i32.const 3 - call $~lib/typedarray/Int8Array#__set - local.get $0 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - i32.const 3984 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=8 + drop local.get $3 - call $~lib/typedarray/Int8Array#findIndex - local.set $1 - local.get $1 - i32.const 1 - i32.eq - i32.eqz + i32.const 0 + i32.lt_s if - i32.const 0 - i32.const 544 - i32.const 461 - i32.const 3 + i32.const 336 + i32.const 608 + i32.const 1864 + i32.const 19 call $~lib/builtins/abort unreachable end - local.get $0 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - i32.const 4016 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=8 + local.get $4 + call $~lib/array/Array#get:length local.get $3 - call $~lib/typedarray/Int8Array#findIndex - local.set $2 - local.get $2 - i32.const -1 - i32.eq - i32.eqz + i32.add + local.get $5 + call $~lib/typedarray/Uint8Array#get:length + i32.gt_s if - i32.const 0 - i32.const 544 - i32.const 463 - i32.const 3 + i32.const 336 + i32.const 608 + i32.const 1865 + i32.const 47 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/Uint8Array#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) - 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 - block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint8Array,u8>|inlined.0 (result i32) - global.get $~lib/memory/__stack_pointer - local.get $0 - local.tee $3 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - local.tee $2 - i32.store offset=4 - local.get $3 - i32.load offset=4 - local.set $4 + i32.const 1 + i32.const 1 + i32.eq + if (result i32) i32.const 0 - local.set $5 - local.get $3 - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=8 - local.get $8 - call $~lib/typedarray/Uint8Array#get:length - local.set $6 - loop $for-loop|0 - local.get $5 - local.get $6 - i32.lt_s - local.set $7 - local.get $7 - if - local.get $4 - local.get $5 - i32.const 0 - i32.shl - i32.add - i32.load8_u - local.get $5 - local.get $3 - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=12 - local.get $8 - i32.const 3 - global.set $~argumentsLength - local.get $2 - i32.load - call_indirect (type $i32_i32_i32_=>_i32) - if - local.get $5 - br $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint8Array,u8>|inlined.0 - end - local.get $5 - i32.const 1 - i32.add - local.set $5 - br $for-loop|0 - end + i32.const 2 + i32.eq + else + i32.const 0 + end + if (result i32) + i32.const 0 + if (result i32) + i32.const 1 + else + i32.const 0 end - i32.const -1 + i32.eqz + else + i32.const 0 end - local.set $8 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $8 - ) - (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Uint8Array,u8> - (local $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 - call $~stack_check - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer + drop + local.get $5 + i32.load offset=4 + local.get $3 i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer + i32.shl + i32.add + local.set $6 + local.get $4 + i32.load offset=4 + local.set $7 + local.get $4 + call $~lib/array/Array#get:length + local.set $8 i32.const 0 - i32.const 3 - call $~lib/typedarray/Uint8Array#constructor - local.tee $0 - i32.store + local.set $9 + loop $for-loop|0 + local.get $9 + local.get $8 + i32.lt_s + local.set $10 + local.get $10 + if + i32.const 0 + drop + i32.const 0 + if (result i32) + i32.const 0 + i32.eqz + else + i32.const 0 + end + drop + i32.const 0 + if (result i32) + i32.const 0 + i32.eqz + else + i32.const 0 + end + drop + local.get $6 + local.get $9 + i32.const 0 + i32.shl + i32.add + local.get $7 + local.get $9 + i32.const 2 + i32.shl + i32.add + i32.load + i32.store8 + local.get $9 + i32.const 1 + i32.add + local.set $9 + br $for-loop|0 + end + end + ) + (func $~lib/array/Array#get:length (param $0 i32) (result i32) local.get $0 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - i32.const 0 - i32.const 1 - call $~lib/typedarray/Uint8Array#__set + i32.load offset=12 + ) + (func $~lib/typedarray/Uint8Array#__uget (param $0 i32) (param $1 i32) (result i32) local.get $0 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - i32.const 1 - i32.const 2 - call $~lib/typedarray/Uint8Array#__set + i32.load offset=4 + local.get $1 + i32.add + i32.load8_u + ) + (func $~lib/array/Array#__uget (param $0 i32) (param $1 i32) (result i32) local.get $0 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - i32.const 2 - i32.const 3 - call $~lib/typedarray/Uint8Array#__set + i32.load offset=4 + local.get $1 + i32.const 0 + i32.shl + i32.add + i32.load8_u + ) + (func $~lib/typedarray/Uint8Array#set<~lib/array/Array> (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 f32) local.get $0 + local.set $5 + local.get $1 + local.set $4 + local.get $2 local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - i32.const 4048 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=8 + i32.const 0 + drop local.get $3 - call $~lib/typedarray/Uint8Array#findIndex - local.set $1 - local.get $1 - i32.const 1 - i32.eq - i32.eqz + i32.const 0 + i32.lt_s if - i32.const 0 - i32.const 544 - i32.const 461 - i32.const 3 + i32.const 336 + i32.const 608 + i32.const 1864 + i32.const 19 call $~lib/builtins/abort unreachable end - local.get $0 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - i32.const 4080 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=8 + local.get $4 + call $~lib/array/Array#get:length local.get $3 - call $~lib/typedarray/Uint8Array#findIndex - local.set $2 - local.get $2 - i32.const -1 - i32.eq - i32.eqz + i32.add + local.get $5 + call $~lib/typedarray/Uint8Array#get:length + i32.gt_s if - i32.const 0 - i32.const 544 - i32.const 463 - i32.const 3 + i32.const 336 + i32.const 608 + i32.const 1865 + i32.const 47 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/Uint8ClampedArray#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) - 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 - block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint8ClampedArray,u8>|inlined.0 (result i32) - global.get $~lib/memory/__stack_pointer - local.get $0 - local.tee $3 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - local.tee $2 - i32.store offset=4 - local.get $3 - i32.load offset=4 - local.set $4 + i32.const 1 + i32.const 0 + i32.eq + if (result i32) i32.const 0 - local.set $5 - local.get $3 - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=8 + i32.const 2 + i32.eq + else + i32.const 0 + end + if (result i32) + i32.const 0 + if (result i32) + i32.const 0 + else + i32.const 0 + end + i32.eqz + else + i32.const 0 + end + drop + local.get $5 + i32.load offset=4 + local.get $3 + i32.const 0 + i32.shl + i32.add + local.set $6 + local.get $4 + i32.load offset=4 + local.set $7 + local.get $4 + call $~lib/array/Array#get:length + local.set $8 + i32.const 0 + local.set $9 + loop $for-loop|0 + local.get $9 local.get $8 - call $~lib/typedarray/Uint8ClampedArray#get:length - local.set $6 - loop $for-loop|0 - local.get $5 - local.get $6 - i32.lt_s - local.set $7 + i32.lt_s + local.set $10 + local.get $10 + if + i32.const 0 + drop + i32.const 1 + if (result i32) + i32.const 0 + i32.eqz + else + i32.const 0 + end + drop local.get $7 - if - local.get $4 - local.get $5 + local.get $9 + i32.const 2 + i32.shl + i32.add + f32.load + local.set $11 + local.get $6 + local.get $9 + i32.const 0 + i32.shl + i32.add + local.get $11 + local.get $11 + f32.sub + f32.const 0 + f32.eq + if (result i32) + local.get $11 + i32.trunc_f32_u + else i32.const 0 - i32.shl - i32.add - i32.load8_u - local.get $5 - local.get $3 - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=12 - local.get $8 - i32.const 3 - global.set $~argumentsLength - local.get $2 - i32.load - call_indirect (type $i32_i32_i32_=>_i32) - if - local.get $5 - br $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint8ClampedArray,u8>|inlined.0 - end - local.get $5 - i32.const 1 - i32.add - local.set $5 - br $for-loop|0 end + i32.store8 + local.get $9 + i32.const 1 + i32.add + local.set $9 + br $for-loop|0 end - i32.const -1 end - local.set $8 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $8 ) - (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Uint8ClampedArray,u8> - (local $0 i32) - (local $1 i32) - (local $2 i32) + (func $~lib/typedarray/Uint8Array#set<~lib/typedarray/Int64Array> (param $0 i32) (param $1 i32) (param $2 i32) (local $3 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 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 3 - call $~lib/typedarray/Uint8ClampedArray#constructor - local.tee $0 - i32.store + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) local.get $0 + local.set $5 + local.get $1 + local.set $4 + local.get $2 local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 i32.const 0 - i32.const 1 - call $~lib/typedarray/Uint8ClampedArray#__set - local.get $0 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - i32.const 1 - i32.const 2 - call $~lib/typedarray/Uint8ClampedArray#__set - local.get $0 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - i32.const 2 - i32.const 3 - call $~lib/typedarray/Uint8ClampedArray#__set - local.get $0 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - i32.const 4112 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=8 + drop local.get $3 - call $~lib/typedarray/Uint8ClampedArray#findIndex - local.set $1 - local.get $1 - i32.const 1 - i32.eq - i32.eqz + i32.const 0 + i32.lt_s if - i32.const 0 - i32.const 544 - i32.const 461 - i32.const 3 + i32.const 336 + i32.const 608 + i32.const 1864 + i32.const 19 call $~lib/builtins/abort unreachable end - local.get $0 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - i32.const 4144 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=8 + local.get $4 + call $~lib/typedarray/Int64Array#get:length local.get $3 - call $~lib/typedarray/Uint8ClampedArray#findIndex - local.set $2 - local.get $2 - i32.const -1 - i32.eq - i32.eqz + i32.add + local.get $5 + call $~lib/typedarray/Uint8Array#get:length + i32.gt_s if - i32.const 0 - i32.const 544 - i32.const 463 - i32.const 3 + i32.const 336 + i32.const 608 + i32.const 1865 + i32.const 47 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/Int16Array#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) - 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 - block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int16Array,i16>|inlined.0 (result i32) - global.get $~lib/memory/__stack_pointer - local.get $0 - local.tee $3 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - local.tee $2 - i32.store offset=4 - local.get $3 - i32.load offset=4 - local.set $4 + i32.const 1 + i32.const 1 + i32.eq + if (result i32) i32.const 0 - local.set $5 - local.get $3 - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=8 + i32.const 3 + i32.eq + else + i32.const 0 + end + if (result i32) + i32.const 0 + if (result i32) + i32.const 1 + else + i32.const 0 + end + i32.eqz + else + i32.const 0 + end + drop + local.get $5 + i32.load offset=4 + local.get $3 + i32.const 0 + i32.shl + i32.add + local.set $6 + local.get $4 + i32.load offset=4 + local.set $7 + local.get $4 + call $~lib/typedarray/Int64Array#get:length + local.set $8 + i32.const 0 + local.set $9 + loop $for-loop|0 + local.get $9 local.get $8 - call $~lib/typedarray/Int16Array#get:length - local.set $6 - loop $for-loop|0 - local.get $5 + i32.lt_s + local.set $10 + local.get $10 + if + i32.const 0 + drop + i32.const 0 + if (result i32) + i32.const 0 + i32.eqz + else + i32.const 0 + end + drop + i32.const 0 + if (result i32) + i32.const 0 + i32.eqz + else + i32.const 0 + end + drop local.get $6 - i32.lt_s - local.set $7 + local.get $9 + i32.const 0 + i32.shl + i32.add local.get $7 - if - local.get $4 - local.get $5 - i32.const 1 - i32.shl - i32.add - i32.load16_s - local.get $5 - local.get $3 - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=12 - local.get $8 - i32.const 3 - global.set $~argumentsLength - local.get $2 - i32.load - call_indirect (type $i32_i32_i32_=>_i32) - if - local.get $5 - br $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int16Array,i16>|inlined.0 - end - local.get $5 - i32.const 1 - i32.add - local.set $5 - br $for-loop|0 - end + local.get $9 + i32.const 3 + i32.shl + i32.add + i64.load + i64.store8 + local.get $9 + i32.const 1 + i32.add + local.set $9 + br $for-loop|0 end - i32.const -1 end - local.set $8 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $8 ) - (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Int16Array,i16> - (local $0 i32) - (local $1 i32) - (local $2 i32) + (func $~lib/typedarray/Uint8Array#set<~lib/array/Array> (param $0 i32) (param $1 i32) (param $2 i32) (local $3 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 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 3 - call $~lib/typedarray/Int16Array#constructor - local.tee $0 - i32.store + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 f64) local.get $0 + local.set $5 + local.get $1 + local.set $4 + local.get $2 local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 i32.const 0 - i32.const 1 - call $~lib/typedarray/Int16Array#__set - local.get $0 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - i32.const 1 - i32.const 2 - call $~lib/typedarray/Int16Array#__set - local.get $0 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - i32.const 2 - i32.const 3 - call $~lib/typedarray/Int16Array#__set - local.get $0 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - i32.const 4176 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=8 + drop local.get $3 - call $~lib/typedarray/Int16Array#findIndex - local.set $1 - local.get $1 - i32.const 1 - i32.eq - i32.eqz + i32.const 0 + i32.lt_s if - i32.const 0 - i32.const 544 - i32.const 461 - i32.const 3 + i32.const 336 + i32.const 608 + i32.const 1864 + i32.const 19 call $~lib/builtins/abort unreachable end - local.get $0 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - i32.const 4208 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=8 + local.get $4 + call $~lib/array/Array#get:length local.get $3 - call $~lib/typedarray/Int16Array#findIndex - local.set $2 - local.get $2 - i32.const -1 - i32.eq - i32.eqz + i32.add + local.get $5 + call $~lib/typedarray/Uint8Array#get:length + i32.gt_s if - i32.const 0 - i32.const 544 - i32.const 463 - i32.const 3 + i32.const 336 + i32.const 608 + i32.const 1865 + i32.const 47 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/Uint16Array#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) - 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 - block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint16Array,u16>|inlined.0 (result i32) - global.get $~lib/memory/__stack_pointer - local.get $0 - local.tee $3 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - local.tee $2 - i32.store offset=4 - local.get $3 - i32.load offset=4 - local.set $4 + i32.const 1 + i32.const 0 + i32.eq + if (result i32) i32.const 0 - local.set $5 - local.get $3 - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=8 + i32.const 3 + i32.eq + else + i32.const 0 + end + if (result i32) + i32.const 0 + if (result i32) + i32.const 0 + else + i32.const 0 + end + i32.eqz + else + i32.const 0 + end + drop + local.get $5 + i32.load offset=4 + local.get $3 + i32.const 0 + i32.shl + i32.add + local.set $6 + local.get $4 + i32.load offset=4 + local.set $7 + local.get $4 + call $~lib/array/Array#get:length + local.set $8 + i32.const 0 + local.set $9 + loop $for-loop|0 + local.get $9 local.get $8 - call $~lib/typedarray/Uint16Array#get:length - local.set $6 - loop $for-loop|0 - local.get $5 - local.get $6 - i32.lt_s - local.set $7 + i32.lt_s + local.set $10 + local.get $10 + if + i32.const 0 + drop + i32.const 1 + if (result i32) + i32.const 0 + i32.eqz + else + i32.const 0 + end + drop local.get $7 - if - local.get $4 - local.get $5 - i32.const 1 - i32.shl - i32.add - i32.load16_u - local.get $5 - local.get $3 - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=12 - local.get $8 - i32.const 3 - global.set $~argumentsLength - local.get $2 - i32.load - call_indirect (type $i32_i32_i32_=>_i32) - if - local.get $5 - br $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint16Array,u16>|inlined.0 - end - local.get $5 - i32.const 1 - i32.add - local.set $5 - br $for-loop|0 + local.get $9 + i32.const 3 + i32.shl + i32.add + f64.load + local.set $11 + local.get $6 + local.get $9 + i32.const 0 + i32.shl + i32.add + local.get $11 + local.get $11 + f64.sub + f64.const 0 + f64.eq + if (result i32) + local.get $11 + i32.trunc_f64_u + else + i32.const 0 end + i32.store8 + local.get $9 + i32.const 1 + i32.add + local.set $9 + br $for-loop|0 end - i32.const -1 end - local.set $8 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $8 ) - (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Uint16Array,u16> - (local $0 i32) - (local $1 i32) - (local $2 i32) + (func $~lib/typedarray/Uint8Array#set<~lib/typedarray/Uint8Array> (param $0 i32) (param $1 i32) (param $2 i32) (local $3 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 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 3 - call $~lib/typedarray/Uint16Array#constructor - local.tee $0 - i32.store + (local $4 i32) + (local $5 i32) local.get $0 + local.set $5 + local.get $1 + local.set $4 + local.get $2 local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 i32.const 0 - i32.const 1 - call $~lib/typedarray/Uint16Array#__set - local.get $0 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - i32.const 1 - i32.const 2 - call $~lib/typedarray/Uint16Array#__set - local.get $0 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - i32.const 2 - i32.const 3 - call $~lib/typedarray/Uint16Array#__set - local.get $0 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - i32.const 4240 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=8 + drop local.get $3 - call $~lib/typedarray/Uint16Array#findIndex - local.set $1 - local.get $1 - i32.const 1 - i32.eq - i32.eqz + i32.const 0 + i32.lt_s if - i32.const 0 - i32.const 544 - i32.const 461 - i32.const 3 + i32.const 336 + i32.const 608 + i32.const 1864 + i32.const 19 call $~lib/builtins/abort unreachable end - local.get $0 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - i32.const 4272 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=8 + local.get $4 + call $~lib/typedarray/Uint8Array#get:length local.get $3 - call $~lib/typedarray/Uint16Array#findIndex - local.set $2 - local.get $2 - i32.const -1 - i32.eq - i32.eqz + i32.add + local.get $5 + call $~lib/typedarray/Uint8Array#get:length + i32.gt_s if - i32.const 0 - i32.const 544 - i32.const 463 - i32.const 3 + i32.const 336 + i32.const 608 + i32.const 1865 + i32.const 47 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 1 + i32.const 1 + i32.eq + if (result i32) + i32.const 0 + i32.const 0 + i32.eq + else + i32.const 0 + end + if (result i32) + i32.const 0 + if (result i32) + i32.const 0 + else + i32.const 0 + end + i32.eqz + else + i32.const 0 + end + drop + local.get $5 + i32.load offset=4 + local.get $3 + i32.const 0 + i32.shl i32.add - global.set $~lib/memory/__stack_pointer + local.get $4 + i32.load offset=4 + local.get $4 + i32.load offset=8 + call $~lib/memory/memory.copy ) - (func $~lib/typedarray/Int32Array#findIndex (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) + (func $~lib/typedarray/Uint8Array#set<~lib/typedarray/Int16Array> (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) - 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 - block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int32Array,i32>|inlined.0 (result i32) - global.get $~lib/memory/__stack_pointer - local.get $0 - local.tee $3 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - local.tee $2 - i32.store offset=4 - local.get $3 - i32.load offset=4 - local.set $4 + (local $9 i32) + (local $10 i32) + local.get $0 + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + i32.const 0 + drop + local.get $3 + i32.const 0 + i32.lt_s + if + i32.const 336 + i32.const 608 + i32.const 1864 + i32.const 19 + call $~lib/builtins/abort + unreachable + end + local.get $4 + call $~lib/typedarray/Int16Array#get:length + local.get $3 + i32.add + local.get $5 + call $~lib/typedarray/Uint8Array#get:length + i32.gt_s + if + i32.const 336 + i32.const 608 + i32.const 1865 + i32.const 47 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + i32.const 1 + i32.eq + if (result i32) i32.const 0 - local.set $5 - local.get $3 - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=8 + i32.const 1 + i32.eq + else + i32.const 0 + end + if (result i32) + i32.const 0 + if (result i32) + i32.const 1 + else + i32.const 0 + end + i32.eqz + else + i32.const 0 + end + drop + local.get $5 + i32.load offset=4 + local.get $3 + i32.const 0 + i32.shl + i32.add + local.set $6 + local.get $4 + i32.load offset=4 + local.set $7 + local.get $4 + call $~lib/typedarray/Int16Array#get:length + local.set $8 + i32.const 0 + local.set $9 + loop $for-loop|0 + local.get $9 local.get $8 - call $~lib/typedarray/Int32Array#get:length - local.set $6 - loop $for-loop|0 - local.get $5 + i32.lt_s + local.set $10 + local.get $10 + if + i32.const 0 + drop + i32.const 0 + if (result i32) + i32.const 0 + i32.eqz + else + i32.const 0 + end + drop + i32.const 0 + if (result i32) + i32.const 0 + i32.eqz + else + i32.const 0 + end + drop local.get $6 - i32.lt_s - local.set $7 + local.get $9 + i32.const 0 + i32.shl + i32.add local.get $7 - if - local.get $4 - local.get $5 - i32.const 2 - i32.shl - i32.add - i32.load - local.get $5 - local.get $3 - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=12 - local.get $8 - i32.const 3 - global.set $~argumentsLength - local.get $2 - i32.load - call_indirect (type $i32_i32_i32_=>_i32) - if - local.get $5 - br $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int32Array,i32>|inlined.0 - end - local.get $5 - i32.const 1 - i32.add - local.set $5 - br $for-loop|0 - end + local.get $9 + i32.const 1 + i32.shl + i32.add + i32.load16_s + i32.store8 + local.get $9 + i32.const 1 + i32.add + local.set $9 + br $for-loop|0 end - i32.const -1 end - local.set $8 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $8 ) - (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Int32Array,i32> - (local $0 i32) - (local $1 i32) - (local $2 i32) + (func $~lib/typedarray/Uint8Array#set<~lib/array/Array> (param $0 i32) (param $1 i32) (param $2 i32) (local $3 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 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 3 - call $~lib/typedarray/Int32Array#constructor - local.tee $0 - i32.store + (local $4 i32) + (local $5 i32) local.get $0 + local.set $5 + local.get $1 + local.set $4 + local.get $2 local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 i32.const 0 - i32.const 1 - call $~lib/typedarray/Int32Array#__set - local.get $0 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - i32.const 1 - i32.const 2 - call $~lib/typedarray/Int32Array#__set - local.get $0 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - i32.const 2 - i32.const 3 - call $~lib/typedarray/Int32Array#__set - local.get $0 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - i32.const 4304 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=8 + drop local.get $3 - call $~lib/typedarray/Int32Array#findIndex - local.set $1 - local.get $1 - i32.const 1 - i32.eq - i32.eqz + i32.const 0 + i32.lt_s if - i32.const 0 - i32.const 544 - i32.const 461 - i32.const 3 + i32.const 336 + i32.const 608 + i32.const 1864 + i32.const 19 call $~lib/builtins/abort unreachable end - local.get $0 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - i32.const 4336 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=8 + local.get $4 + call $~lib/array/Array#get:length local.get $3 - call $~lib/typedarray/Int32Array#findIndex - local.set $2 - local.get $2 - i32.const -1 - i32.eq - i32.eqz + i32.add + local.get $5 + call $~lib/typedarray/Uint8Array#get:length + i32.gt_s if - i32.const 0 - i32.const 544 - i32.const 463 - i32.const 3 + i32.const 336 + i32.const 608 + i32.const 1865 + i32.const 47 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 1 + i32.const 1 + i32.eq + if (result i32) + i32.const 0 + i32.const 0 + i32.eq + else + i32.const 0 + end + if (result i32) + i32.const 0 + if (result i32) + i32.const 1 + else + i32.const 0 + end + i32.eqz + else + i32.const 0 + end + drop + local.get $5 + i32.load offset=4 + local.get $3 + i32.const 0 + i32.shl i32.add - global.set $~lib/memory/__stack_pointer + local.get $4 + i32.load offset=4 + local.get $4 + i32.load offset=8 + call $~lib/memory/memory.copy ) - (func $~lib/typedarray/Uint32Array#findIndex (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) + (func $~lib/typedarray/Uint8ClampedArray#set<~lib/array/Array> (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) - 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 - block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint32Array,u32>|inlined.0 (result i32) - global.get $~lib/memory/__stack_pointer - local.get $0 - local.tee $3 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - local.tee $2 - i32.store offset=4 - local.get $3 - i32.load offset=4 - local.set $4 - i32.const 0 - local.set $5 - local.get $3 - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=8 - local.get $8 - call $~lib/typedarray/Uint32Array#get:length - local.set $6 - loop $for-loop|0 - local.get $5 - local.get $6 - i32.lt_s - local.set $7 - local.get $7 - if - local.get $4 - local.get $5 - i32.const 2 - i32.shl - i32.add - i32.load - local.get $5 - local.get $3 - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=12 - local.get $8 - i32.const 3 - global.set $~argumentsLength - local.get $2 - i32.load - call_indirect (type $i32_i32_i32_=>_i32) - if - local.get $5 - br $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint32Array,u32>|inlined.0 - end - local.get $5 - i32.const 1 - i32.add - local.set $5 - br $for-loop|0 - end - end - i32.const -1 - end - local.set $8 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $8 - ) - (func $std/typedarray/testArrayFindIndex<~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.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 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 3 - call $~lib/typedarray/Uint32Array#constructor - local.tee $0 - i32.store + (local $9 i32) + (local $10 i32) + (local $11 i32) local.get $0 + local.set $5 + local.get $1 + local.set $4 + local.get $2 local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 i32.const 0 - i32.const 1 - call $~lib/typedarray/Uint32Array#__set - local.get $0 - local.set $3 - global.get $~lib/memory/__stack_pointer + drop local.get $3 - i32.store offset=4 - local.get $3 - i32.const 1 - i32.const 2 - call $~lib/typedarray/Uint32Array#__set - local.get $0 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - i32.const 2 - i32.const 3 - call $~lib/typedarray/Uint32Array#__set - local.get $0 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - i32.const 4368 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=8 - local.get $3 - call $~lib/typedarray/Uint32Array#findIndex - local.set $1 - local.get $1 - i32.const 1 - i32.eq - i32.eqz + i32.const 0 + i32.lt_s if - i32.const 0 - i32.const 544 - i32.const 461 - i32.const 3 + i32.const 336 + i32.const 608 + i32.const 1864 + i32.const 19 call $~lib/builtins/abort unreachable end - local.get $0 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - i32.const 4400 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=8 + local.get $4 + call $~lib/array/Array#get:length local.get $3 - call $~lib/typedarray/Uint32Array#findIndex - local.set $2 - local.get $2 - i32.const -1 - i32.eq - i32.eqz + i32.add + local.get $5 + call $~lib/typedarray/Uint8ClampedArray#get:length + i32.gt_s if - i32.const 0 - i32.const 544 - i32.const 463 - i32.const 3 + i32.const 336 + i32.const 608 + i32.const 1865 + i32.const 47 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 1 + i32.const 1 + i32.eq + if (result i32) + i32.const 0 + i32.const 2 + i32.eq + else + i32.const 0 + end + if (result i32) + i32.const 1 + if (result i32) + i32.const 1 + else + i32.const 0 + end + i32.eqz + else + i32.const 0 + end + drop + local.get $5 + i32.load offset=4 + local.get $3 + i32.const 0 + i32.shl i32.add - global.set $~lib/memory/__stack_pointer + local.set $6 + local.get $4 + i32.load offset=4 + local.set $7 + local.get $4 + call $~lib/array/Array#get:length + local.set $8 + i32.const 0 + local.set $9 + loop $for-loop|0 + local.get $9 + local.get $8 + i32.lt_s + local.set $10 + local.get $10 + if + i32.const 1 + drop + i32.const 0 + drop + local.get $7 + local.get $9 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $11 + i32.const 1 + i32.eqz + drop + i32.const 1 + i32.const 4 + i32.le_u + drop + local.get $6 + local.get $9 + i32.const 0 + i32.shl + i32.add + local.get $11 + i32.const 31 + i32.shr_s + i32.const -1 + i32.xor + i32.const 255 + local.get $11 + i32.sub + i32.const 31 + i32.shr_s + local.get $11 + i32.or + i32.and + i32.store8 + local.get $9 + i32.const 1 + i32.add + local.set $9 + br $for-loop|0 + end + end ) - (func $~lib/typedarray/Int64Array#findIndex (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) + (func $~lib/typedarray/Uint8ClampedArray#__uget (param $0 i32) (param $1 i32) (result i32) + local.get $0 + i32.load offset=4 + local.get $1 + i32.add + i32.load8_u + ) + (func $~lib/typedarray/Uint8ClampedArray#set<~lib/array/Array> (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) - 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 - block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int64Array,i64>|inlined.0 (result i32) - global.get $~lib/memory/__stack_pointer - local.get $0 - local.tee $3 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - local.tee $2 - i32.store offset=4 - local.get $3 - i32.load offset=4 - local.set $4 + (local $9 i32) + (local $10 i32) + (local $11 f32) + local.get $0 + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + i32.const 0 + drop + local.get $3 + i32.const 0 + i32.lt_s + if + i32.const 336 + i32.const 608 + i32.const 1864 + i32.const 19 + call $~lib/builtins/abort + unreachable + end + local.get $4 + call $~lib/array/Array#get:length + local.get $3 + i32.add + local.get $5 + call $~lib/typedarray/Uint8ClampedArray#get:length + i32.gt_s + if + i32.const 336 + i32.const 608 + i32.const 1865 + i32.const 47 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + i32.const 0 + i32.eq + if (result i32) i32.const 0 - local.set $5 - local.get $3 - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=8 + i32.const 2 + i32.eq + else + i32.const 0 + end + if (result i32) + i32.const 1 + if (result i32) + i32.const 0 + else + i32.const 0 + end + i32.eqz + else + i32.const 0 + end + drop + local.get $5 + i32.load offset=4 + local.get $3 + i32.const 0 + i32.shl + i32.add + local.set $6 + local.get $4 + i32.load offset=4 + local.set $7 + local.get $4 + call $~lib/array/Array#get:length + local.set $8 + i32.const 0 + local.set $9 + loop $for-loop|0 + local.get $9 local.get $8 - call $~lib/typedarray/Int64Array#get:length - local.set $6 - loop $for-loop|0 - local.get $5 - local.get $6 - i32.lt_s - local.set $7 + i32.lt_s + local.set $10 + local.get $10 + if + i32.const 1 + drop + i32.const 1 + drop local.get $7 - if - local.get $4 - local.get $5 - i32.const 3 - i32.shl - i32.add - i64.load - local.get $5 - local.get $3 - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=12 - local.get $8 - i32.const 3 - global.set $~argumentsLength - local.get $2 - i32.load - call_indirect (type $i64_i32_i32_=>_i32) - if - local.get $5 - br $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int64Array,i64>|inlined.0 - end - local.get $5 - i32.const 1 - i32.add - local.set $5 - br $for-loop|0 + local.get $9 + i32.const 2 + i32.shl + i32.add + f32.load + local.set $11 + local.get $6 + local.get $9 + i32.const 0 + i32.shl + i32.add + local.get $11 + local.get $11 + f32.sub + f32.const 0 + f32.eq + if (result i32) + f32.const 0 + f32.const 255 + local.get $11 + f32.min + f32.max + i32.trunc_f32_u + else + i32.const 0 end + i32.store8 + local.get $9 + i32.const 1 + i32.add + local.set $9 + br $for-loop|0 end - i32.const -1 end - local.set $8 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $8 ) - (func $std/typedarray/testArrayFindIndex<~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) - 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 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 3 - call $~lib/typedarray/Int64Array#constructor - local.tee $0 - i32.store + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i64) local.get $0 + local.set $5 + local.get $1 + local.set $4 + local.get $2 local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 i32.const 0 - i64.const 1 - call $~lib/typedarray/Int64Array#__set - local.get $0 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - i32.const 1 - i64.const 2 - call $~lib/typedarray/Int64Array#__set - local.get $0 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - i32.const 2 - i64.const 3 - call $~lib/typedarray/Int64Array#__set - local.get $0 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - i32.const 4432 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=8 + drop local.get $3 - call $~lib/typedarray/Int64Array#findIndex - local.set $1 - local.get $1 - i32.const 1 - i32.eq - i32.eqz + i32.const 0 + i32.lt_s if - i32.const 0 - i32.const 544 - i32.const 461 - i32.const 3 + i32.const 336 + i32.const 608 + i32.const 1864 + i32.const 19 call $~lib/builtins/abort unreachable end - local.get $0 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - i32.const 4464 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=8 + local.get $4 + call $~lib/typedarray/Int64Array#get:length local.get $3 - call $~lib/typedarray/Int64Array#findIndex - local.set $2 - local.get $2 - i32.const -1 - i32.eq - i32.eqz + i32.add + local.get $5 + call $~lib/typedarray/Uint8ClampedArray#get:length + i32.gt_s if - i32.const 0 - i32.const 544 - i32.const 463 - i32.const 3 + i32.const 336 + i32.const 608 + i32.const 1865 + i32.const 47 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 1 + i32.const 1 + i32.eq + if (result i32) + i32.const 0 + i32.const 3 + i32.eq + else + i32.const 0 + end + if (result i32) + i32.const 1 + if (result i32) + i32.const 1 + else + i32.const 0 + end + i32.eqz + else + i32.const 0 + end + drop + local.get $5 + i32.load offset=4 + local.get $3 + i32.const 0 + i32.shl i32.add - global.set $~lib/memory/__stack_pointer - ) - (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) - 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 - block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint64Array,u64>|inlined.0 (result i32) - global.get $~lib/memory/__stack_pointer - local.get $0 - local.tee $3 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - local.tee $2 - i32.store offset=4 - local.get $3 - i32.load offset=4 - local.set $4 - i32.const 0 - local.set $5 - local.get $3 - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=8 + local.set $6 + local.get $4 + i32.load offset=4 + local.set $7 + local.get $4 + call $~lib/typedarray/Int64Array#get:length + local.set $8 + i32.const 0 + local.set $9 + loop $for-loop|0 + local.get $9 local.get $8 - call $~lib/typedarray/Uint64Array#get:length - local.set $6 - loop $for-loop|0 - local.get $5 - local.get $6 - i32.lt_s - local.set $7 + i32.lt_s + local.set $10 + local.get $10 + if + i32.const 1 + drop + i32.const 0 + drop local.get $7 - if - local.get $4 - local.get $5 - i32.const 3 - i32.shl - i32.add - i64.load - local.get $5 - local.get $3 - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=12 - local.get $8 - i32.const 3 - global.set $~argumentsLength - local.get $2 - i32.load - call_indirect (type $i64_i32_i32_=>_i32) - if - local.get $5 - br $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint64Array,u64>|inlined.0 - end - local.get $5 - i32.const 1 - i32.add - local.set $5 - br $for-loop|0 - end + local.get $9 + i32.const 3 + i32.shl + i32.add + i64.load + local.set $11 + i32.const 1 + i32.eqz + drop + i32.const 1 + i32.const 4 + i32.le_u + drop + local.get $6 + local.get $9 + i32.const 0 + i32.shl + i32.add + local.get $11 + i32.wrap_i64 + i32.const 31 + i32.shr_s + i32.const -1 + i32.xor + i64.extend_i32_s + i32.const 255 + local.get $11 + i32.wrap_i64 + i32.sub + i32.const 31 + i32.shr_s + i64.extend_i32_s + local.get $11 + i64.or + i64.and + i64.store8 + local.get $9 + i32.const 1 + i32.add + local.set $9 + br $for-loop|0 end - i32.const -1 end - local.set $8 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $8 ) - (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Uint64Array,u64> - (local $0 i32) - (local $1 i32) - (local $2 i32) + (func $~lib/typedarray/Uint8ClampedArray#set<~lib/array/Array> (param $0 i32) (param $1 i32) (param $2 i32) (local $3 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 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 3 - call $~lib/typedarray/Uint64Array#constructor - local.tee $0 - i32.store + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 f64) local.get $0 + local.set $5 + local.get $1 + local.set $4 + local.get $2 local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 i32.const 0 - i64.const 1 - call $~lib/typedarray/Uint64Array#__set - local.get $0 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - i32.const 1 - i64.const 2 - call $~lib/typedarray/Uint64Array#__set - local.get $0 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - i32.const 2 - i64.const 3 - call $~lib/typedarray/Uint64Array#__set - local.get $0 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - i32.const 4496 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=8 + drop local.get $3 - call $~lib/typedarray/Uint64Array#findIndex - local.set $1 - local.get $1 - i32.const 1 - i32.eq - i32.eqz + i32.const 0 + i32.lt_s if - i32.const 0 - i32.const 544 - i32.const 461 - i32.const 3 + i32.const 336 + i32.const 608 + i32.const 1864 + i32.const 19 call $~lib/builtins/abort unreachable end - local.get $0 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - i32.const 4528 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=8 + local.get $4 + call $~lib/array/Array#get:length local.get $3 - call $~lib/typedarray/Uint64Array#findIndex - local.set $2 - local.get $2 - i32.const -1 - i32.eq - i32.eqz + i32.add + local.get $5 + call $~lib/typedarray/Uint8ClampedArray#get:length + i32.gt_s if - i32.const 0 - i32.const 544 - i32.const 463 - i32.const 3 + i32.const 336 + i32.const 608 + i32.const 1865 + i32.const 47 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/Float32Array#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) - 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 - block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Float32Array,f32>|inlined.0 (result i32) - global.get $~lib/memory/__stack_pointer - local.get $0 - local.tee $3 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - local.tee $2 - i32.store offset=4 - local.get $3 - i32.load offset=4 - local.set $4 + i32.const 1 + i32.const 0 + i32.eq + if (result i32) i32.const 0 - local.set $5 - local.get $3 - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=8 + i32.const 3 + i32.eq + else + i32.const 0 + end + if (result i32) + i32.const 1 + if (result i32) + i32.const 0 + else + i32.const 0 + end + i32.eqz + else + i32.const 0 + end + drop + local.get $5 + i32.load offset=4 + local.get $3 + i32.const 0 + i32.shl + i32.add + local.set $6 + local.get $4 + i32.load offset=4 + local.set $7 + local.get $4 + call $~lib/array/Array#get:length + local.set $8 + i32.const 0 + local.set $9 + loop $for-loop|0 + local.get $9 local.get $8 - call $~lib/typedarray/Float32Array#get:length - local.set $6 - loop $for-loop|0 - local.get $5 - local.get $6 - i32.lt_s - local.set $7 + i32.lt_s + local.set $10 + local.get $10 + if + i32.const 1 + drop + i32.const 1 + drop local.get $7 - if - local.get $4 - local.get $5 - i32.const 2 - i32.shl - i32.add - f32.load - local.get $5 - local.get $3 - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=12 - local.get $8 - i32.const 3 - global.set $~argumentsLength - local.get $2 - i32.load - call_indirect (type $f32_i32_i32_=>_i32) - if - local.get $5 - br $~lib/typedarray/FIND_INDEX<~lib/typedarray/Float32Array,f32>|inlined.0 - end - local.get $5 - i32.const 1 - i32.add - local.set $5 - br $for-loop|0 + local.get $9 + i32.const 3 + i32.shl + i32.add + f64.load + local.set $11 + local.get $6 + local.get $9 + i32.const 0 + i32.shl + i32.add + local.get $11 + local.get $11 + f64.sub + f64.const 0 + f64.eq + if (result i32) + f64.const 0 + f64.const 255 + local.get $11 + f64.min + f64.max + i32.trunc_f64_u + else + i32.const 0 end + i32.store8 + local.get $9 + i32.const 1 + i32.add + local.set $9 + br $for-loop|0 end - i32.const -1 end - local.set $8 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $8 ) - (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Float32Array,f32> - (local $0 i32) - (local $1 i32) - (local $2 i32) + (func $~lib/typedarray/Uint8ClampedArray#set<~lib/typedarray/Uint8Array> (param $0 i32) (param $1 i32) (param $2 i32) (local $3 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 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 3 - call $~lib/typedarray/Float32Array#constructor - local.tee $0 - i32.store + (local $4 i32) + (local $5 i32) local.get $0 + local.set $5 + local.get $1 + local.set $4 + local.get $2 local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 i32.const 0 - f32.const 1 - call $~lib/typedarray/Float32Array#__set - local.get $0 - local.set $3 - global.get $~lib/memory/__stack_pointer + drop local.get $3 - i32.store offset=4 + i32.const 0 + i32.lt_s + if + i32.const 336 + i32.const 608 + i32.const 1864 + i32.const 19 + call $~lib/builtins/abort + unreachable + end + local.get $4 + call $~lib/typedarray/Uint8Array#get:length local.get $3 + i32.add + local.get $5 + call $~lib/typedarray/Uint8ClampedArray#get:length + i32.gt_s + if + i32.const 336 + i32.const 608 + i32.const 1865 + i32.const 47 + call $~lib/builtins/abort + unreachable + end i32.const 1 - f32.const 2 - call $~lib/typedarray/Float32Array#__set - local.get $0 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - i32.const 2 - f32.const 3 - call $~lib/typedarray/Float32Array#__set - local.get $0 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - i32.const 4560 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=8 - local.get $3 - call $~lib/typedarray/Float32Array#findIndex - local.set $1 - local.get $1 i32.const 1 i32.eq - i32.eqz - if + if (result i32) + i32.const 0 + i32.const 0 + i32.eq + else i32.const 0 - i32.const 544 - i32.const 461 - i32.const 3 - call $~lib/builtins/abort - unreachable end - local.get $0 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - i32.const 4592 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=8 - local.get $3 - call $~lib/typedarray/Float32Array#findIndex - local.set $2 - local.get $2 - i32.const -1 - i32.eq - i32.eqz - if + if (result i32) + i32.const 1 + if (result i32) + i32.const 0 + else + i32.const 0 + end + i32.eqz + else i32.const 0 - i32.const 544 - i32.const 463 - i32.const 3 - call $~lib/builtins/abort - unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 12 + drop + local.get $5 + i32.load offset=4 + local.get $3 + i32.const 0 + i32.shl i32.add - global.set $~lib/memory/__stack_pointer + local.get $4 + i32.load offset=4 + local.get $4 + i32.load offset=8 + call $~lib/memory/memory.copy ) - (func $~lib/typedarray/Float64Array#findIndex (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) + (func $~lib/typedarray/Uint8ClampedArray#set<~lib/typedarray/Int16Array> (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) - 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 - block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Float64Array,f64>|inlined.0 (result i32) - global.get $~lib/memory/__stack_pointer - local.get $0 - local.tee $3 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - local.tee $2 - i32.store offset=4 - local.get $3 - i32.load offset=4 - local.set $4 - i32.const 0 - local.set $5 - local.get $3 - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=8 - local.get $8 - call $~lib/typedarray/Float64Array#get:length - local.set $6 - loop $for-loop|0 - local.get $5 - local.get $6 - i32.lt_s - local.set $7 - local.get $7 - if - local.get $4 - local.get $5 - i32.const 3 - i32.shl - i32.add - f64.load - local.get $5 - local.get $3 - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=12 - local.get $8 - i32.const 3 - global.set $~argumentsLength - local.get $2 - i32.load - call_indirect (type $f64_i32_i32_=>_i32) - if - local.get $5 - br $~lib/typedarray/FIND_INDEX<~lib/typedarray/Float64Array,f64>|inlined.0 - end - local.get $5 - i32.const 1 - i32.add - local.set $5 - br $for-loop|0 - end - end - i32.const -1 - end - local.set $8 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $8 - ) - (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Float64Array,f64> - (local $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 - 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 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 3 - call $~lib/typedarray/Float64Array#constructor - local.tee $0 - i32.store + (local $9 i32) + (local $10 i32) + (local $11 i32) local.get $0 + local.set $5 + local.get $1 + local.set $4 + local.get $2 local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 i32.const 0 - f64.const 1 - call $~lib/typedarray/Float64Array#__set - local.get $0 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - i32.const 1 - f64.const 2 - call $~lib/typedarray/Float64Array#__set - local.get $0 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - i32.const 2 - f64.const 3 - call $~lib/typedarray/Float64Array#__set - local.get $0 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - i32.const 4624 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=8 + drop local.get $3 - call $~lib/typedarray/Float64Array#findIndex - local.set $1 - local.get $1 - i32.const 1 - i32.eq - i32.eqz + i32.const 0 + i32.lt_s if - i32.const 0 - i32.const 544 - i32.const 461 - i32.const 3 + i32.const 336 + i32.const 608 + i32.const 1864 + i32.const 19 call $~lib/builtins/abort unreachable end - local.get $0 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - i32.const 4656 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=8 + local.get $4 + call $~lib/typedarray/Int16Array#get:length local.get $3 - call $~lib/typedarray/Float64Array#findIndex - local.set $2 - local.get $2 - i32.const -1 - i32.eq - i32.eqz + i32.add + local.get $5 + call $~lib/typedarray/Uint8ClampedArray#get:length + i32.gt_s if - i32.const 0 - i32.const 544 - i32.const 463 - i32.const 3 + i32.const 336 + i32.const 608 + i32.const 1865 + i32.const 47 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 1 + i32.const 1 + i32.eq + if (result i32) + i32.const 0 + i32.const 1 + i32.eq + else + i32.const 0 + end + if (result i32) + i32.const 1 + if (result i32) + i32.const 1 + else + i32.const 0 + end + i32.eqz + else + i32.const 0 + end + drop + local.get $5 + i32.load offset=4 + local.get $3 + i32.const 0 + i32.shl i32.add - global.set $~lib/memory/__stack_pointer + local.set $6 + local.get $4 + i32.load offset=4 + local.set $7 + local.get $4 + call $~lib/typedarray/Int16Array#get:length + local.set $8 + i32.const 0 + local.set $9 + loop $for-loop|0 + local.get $9 + local.get $8 + i32.lt_s + local.set $10 + local.get $10 + if + i32.const 1 + drop + i32.const 0 + drop + local.get $7 + local.get $9 + i32.const 1 + i32.shl + i32.add + i32.load16_s + local.set $11 + i32.const 1 + i32.eqz + drop + i32.const 1 + i32.const 4 + i32.le_u + drop + local.get $6 + local.get $9 + i32.const 0 + i32.shl + i32.add + local.get $11 + i32.const 31 + i32.shr_s + i32.const -1 + i32.xor + i32.const 255 + local.get $11 + i32.sub + i32.const 31 + i32.shr_s + local.get $11 + i32.or + i32.and + i32.store8 + local.get $9 + i32.const 1 + i32.add + local.set $9 + br $for-loop|0 + end + end ) - (func $~lib/typedarray/Int8Array#every (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) + (func $~lib/typedarray/Uint8ClampedArray#set<~lib/array/Array> (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) - 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 - block $~lib/typedarray/EVERY<~lib/typedarray/Int8Array,i8>|inlined.0 (result i32) - global.get $~lib/memory/__stack_pointer - local.get $0 - local.tee $3 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - local.tee $2 - i32.store offset=4 - local.get $3 - i32.load offset=4 - local.set $4 - i32.const 0 - local.set $5 - local.get $3 - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=8 - local.get $8 - call $~lib/typedarray/Int8Array#get:length - local.set $6 - loop $for-loop|0 - local.get $5 - local.get $6 - i32.lt_s - local.set $7 - local.get $7 - if - block $for-continue|0 - local.get $4 - local.get $5 - i32.const 0 - i32.shl - i32.add - i32.load8_s - local.get $5 - local.get $3 - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=12 - local.get $8 - i32.const 3 - global.set $~argumentsLength - local.get $2 - i32.load - call_indirect (type $i32_i32_i32_=>_i32) - if - br $for-continue|0 - end - i32.const 0 - br $~lib/typedarray/EVERY<~lib/typedarray/Int8Array,i8>|inlined.0 - end - local.get $5 - i32.const 1 - i32.add - local.set $5 - br $for-loop|0 - end - end - i32.const 1 - end - local.set $8 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $8 - ) - (func $std/typedarray/testArrayEvery<~lib/typedarray/Int8Array,i8> - (local $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 - 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 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 3 - call $~lib/typedarray/Int8Array#constructor - local.tee $0 - i32.store + (local $9 i32) + (local $10 i32) + (local $11 i32) local.get $0 + local.set $5 + local.get $1 + local.set $4 + local.get $2 local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 i32.const 0 - i32.const 2 - call $~lib/typedarray/Int8Array#__set - local.get $0 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - i32.const 1 - i32.const 4 - call $~lib/typedarray/Int8Array#__set - local.get $0 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - i32.const 2 - i32.const 6 - call $~lib/typedarray/Int8Array#__set - local.get $0 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - i32.const 4688 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=8 + drop local.get $3 - call $~lib/typedarray/Int8Array#every - local.set $1 - local.get $1 i32.const 0 - i32.ne - i32.eqz + i32.lt_s if - i32.const 0 - i32.const 544 - i32.const 484 - i32.const 3 + i32.const 336 + i32.const 608 + i32.const 1864 + i32.const 19 call $~lib/builtins/abort unreachable end - local.get $0 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - i32.const 4720 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=8 + local.get $4 + call $~lib/array/Array#get:length local.get $3 - call $~lib/typedarray/Int8Array#every - local.set $2 - local.get $2 - i32.eqz - i32.eqz + i32.add + local.get $5 + call $~lib/typedarray/Uint8ClampedArray#get:length + i32.gt_s if - i32.const 0 - i32.const 544 - i32.const 486 - i32.const 3 + i32.const 336 + i32.const 608 + i32.const 1865 + i32.const 47 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 1 + i32.const 1 + i32.eq + if (result i32) + i32.const 0 + i32.const 0 + i32.eq + else + i32.const 0 + end + if (result i32) + i32.const 1 + if (result i32) + i32.const 1 + else + i32.const 0 + end + i32.eqz + else + i32.const 0 + end + drop + local.get $5 + i32.load offset=4 + local.get $3 + i32.const 0 + i32.shl i32.add - global.set $~lib/memory/__stack_pointer + local.set $6 + local.get $4 + i32.load offset=4 + local.set $7 + local.get $4 + call $~lib/array/Array#get:length + local.set $8 + i32.const 0 + local.set $9 + loop $for-loop|0 + local.get $9 + local.get $8 + i32.lt_s + local.set $10 + local.get $10 + if + i32.const 1 + drop + i32.const 0 + drop + local.get $7 + local.get $9 + i32.const 0 + i32.shl + i32.add + i32.load8_s + local.set $11 + i32.const 1 + i32.eqz + drop + i32.const 1 + i32.const 4 + i32.le_u + drop + local.get $6 + local.get $9 + i32.const 0 + i32.shl + i32.add + local.get $11 + i32.const 31 + i32.shr_s + i32.const -1 + i32.xor + i32.const 255 + local.get $11 + i32.sub + i32.const 31 + i32.shr_s + local.get $11 + i32.or + i32.and + i32.store8 + local.get $9 + i32.const 1 + i32.add + local.set $9 + br $for-loop|0 + end + end ) - (func $~lib/typedarray/Uint8Array#every (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) + (func $~lib/typedarray/Int16Array#set<~lib/array/Array> (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) - 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 - block $~lib/typedarray/EVERY<~lib/typedarray/Uint8Array,u8>|inlined.0 (result i32) - global.get $~lib/memory/__stack_pointer - local.get $0 - local.tee $3 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - local.tee $2 - i32.store offset=4 - local.get $3 - i32.load offset=4 - local.set $4 + (local $9 i32) + (local $10 i32) + local.get $0 + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + i32.const 0 + drop + local.get $3 + i32.const 0 + i32.lt_s + if + i32.const 336 + i32.const 608 + i32.const 1864 + i32.const 19 + call $~lib/builtins/abort + unreachable + end + local.get $4 + call $~lib/array/Array#get:length + local.get $3 + i32.add + local.get $5 + call $~lib/typedarray/Int16Array#get:length + i32.gt_s + if + i32.const 336 + i32.const 608 + i32.const 1865 + i32.const 47 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + i32.const 1 + i32.eq + if (result i32) + i32.const 1 + i32.const 2 + i32.eq + else i32.const 0 - local.set $5 - local.get $3 - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=8 + end + if (result i32) + i32.const 0 + if (result i32) + i32.const 1 + else + i32.const 0 + end + i32.eqz + else + i32.const 0 + end + drop + local.get $5 + i32.load offset=4 + local.get $3 + i32.const 1 + i32.shl + i32.add + local.set $6 + local.get $4 + i32.load offset=4 + local.set $7 + local.get $4 + call $~lib/array/Array#get:length + local.set $8 + i32.const 0 + local.set $9 + loop $for-loop|0 + local.get $9 local.get $8 - call $~lib/typedarray/Uint8Array#get:length - local.set $6 - loop $for-loop|0 - local.get $5 + i32.lt_s + local.set $10 + local.get $10 + if + i32.const 0 + drop + i32.const 0 + if (result i32) + i32.const 0 + i32.eqz + else + i32.const 0 + end + drop + i32.const 0 + if (result i32) + i32.const 0 + i32.eqz + else + i32.const 0 + end + drop local.get $6 - i32.lt_s - local.set $7 + local.get $9 + i32.const 1 + i32.shl + i32.add local.get $7 - if - block $for-continue|0 - local.get $4 - local.get $5 - i32.const 0 - i32.shl - i32.add - i32.load8_u - local.get $5 - local.get $3 - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=12 - local.get $8 - i32.const 3 - global.set $~argumentsLength - local.get $2 - i32.load - call_indirect (type $i32_i32_i32_=>_i32) - if - br $for-continue|0 - end - i32.const 0 - br $~lib/typedarray/EVERY<~lib/typedarray/Uint8Array,u8>|inlined.0 - end - local.get $5 - i32.const 1 - i32.add - local.set $5 - br $for-loop|0 - end + local.get $9 + i32.const 2 + i32.shl + i32.add + i32.load + i32.store16 + local.get $9 + i32.const 1 + i32.add + local.set $9 + br $for-loop|0 end - i32.const 1 end - local.set $8 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $8 ) - (func $std/typedarray/testArrayEvery<~lib/typedarray/Uint8Array,u8> - (local $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 - 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 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 3 - call $~lib/typedarray/Uint8Array#constructor - local.tee $0 - i32.store + (func $~lib/array/Array#get:length (param $0 i32) (result i32) local.get $0 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - i32.const 0 - i32.const 2 - call $~lib/typedarray/Uint8Array#__set + i32.load offset=12 + ) + (func $~lib/typedarray/Int16Array#__uget (param $0 i32) (param $1 i32) (result i32) local.get $0 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 + i32.load offset=4 + local.get $1 i32.const 1 - i32.const 4 - call $~lib/typedarray/Uint8Array#__set + i32.shl + i32.add + i32.load16_s + ) + (func $~lib/array/Array#__uget (param $0 i32) (param $1 i32) (result i32) local.get $0 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - i32.const 2 - i32.const 6 - call $~lib/typedarray/Uint8Array#__set + i32.load offset=4 + local.get $1 + i32.const 1 + i32.shl + i32.add + i32.load16_s + ) + (func $~lib/typedarray/Int16Array#set<~lib/array/Array> (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 f32) local.get $0 + local.set $5 + local.get $1 + local.set $4 + local.get $2 local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - i32.const 4752 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=8 + i32.const 0 + drop local.get $3 - call $~lib/typedarray/Uint8Array#every - local.set $1 - local.get $1 i32.const 0 - i32.ne - i32.eqz + i32.lt_s if - i32.const 0 - i32.const 544 - i32.const 484 - i32.const 3 + i32.const 336 + i32.const 608 + i32.const 1864 + i32.const 19 call $~lib/builtins/abort unreachable end - local.get $0 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - i32.const 4784 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=8 + local.get $4 + call $~lib/array/Array#get:length local.get $3 - call $~lib/typedarray/Uint8Array#every - local.set $2 - local.get $2 - i32.eqz - i32.eqz + i32.add + local.get $5 + call $~lib/typedarray/Int16Array#get:length + i32.gt_s if - i32.const 0 - i32.const 544 - i32.const 486 - i32.const 3 + i32.const 336 + i32.const 608 + i32.const 1865 + i32.const 47 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 1 + i32.const 0 + i32.eq + if (result i32) + i32.const 1 + i32.const 2 + i32.eq + else + i32.const 0 + end + if (result i32) + i32.const 0 + if (result i32) + i32.const 0 + else + i32.const 0 + end + i32.eqz + else + i32.const 0 + end + drop + local.get $5 + i32.load offset=4 + local.get $3 + i32.const 1 + i32.shl i32.add - global.set $~lib/memory/__stack_pointer + local.set $6 + local.get $4 + i32.load offset=4 + local.set $7 + local.get $4 + call $~lib/array/Array#get:length + local.set $8 + i32.const 0 + local.set $9 + loop $for-loop|0 + local.get $9 + local.get $8 + i32.lt_s + local.set $10 + local.get $10 + if + i32.const 0 + drop + i32.const 1 + if (result i32) + i32.const 0 + i32.eqz + else + i32.const 0 + end + drop + local.get $7 + local.get $9 + i32.const 2 + i32.shl + i32.add + f32.load + local.set $11 + local.get $6 + local.get $9 + i32.const 1 + i32.shl + i32.add + local.get $11 + local.get $11 + f32.sub + f32.const 0 + f32.eq + if (result i32) + local.get $11 + i32.trunc_f32_s + else + i32.const 0 + end + i32.store16 + local.get $9 + i32.const 1 + i32.add + local.set $9 + br $for-loop|0 + end + end ) - (func $~lib/typedarray/Uint8ClampedArray#every (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) + (func $~lib/typedarray/Int16Array#set<~lib/typedarray/Int64Array> (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) - 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 - block $~lib/typedarray/EVERY<~lib/typedarray/Uint8ClampedArray,u8>|inlined.0 (result i32) - global.get $~lib/memory/__stack_pointer - local.get $0 - local.tee $3 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - local.tee $2 - i32.store offset=4 - local.get $3 - i32.load offset=4 - local.set $4 - i32.const 0 - local.set $5 - local.get $3 - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=8 - local.get $8 - call $~lib/typedarray/Uint8ClampedArray#get:length - local.set $6 - loop $for-loop|0 - local.get $5 - local.get $6 - i32.lt_s - local.set $7 - local.get $7 - if - block $for-continue|0 - local.get $4 - local.get $5 - i32.const 0 - i32.shl - i32.add - i32.load8_u - local.get $5 - local.get $3 - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=12 - local.get $8 - i32.const 3 - global.set $~argumentsLength - local.get $2 - i32.load - call_indirect (type $i32_i32_i32_=>_i32) - if - br $for-continue|0 - end - i32.const 0 - br $~lib/typedarray/EVERY<~lib/typedarray/Uint8ClampedArray,u8>|inlined.0 - end - local.get $5 - i32.const 1 - i32.add - local.set $5 - br $for-loop|0 - end - end - i32.const 1 - end - local.set $8 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $8 - ) - (func $std/typedarray/testArrayEvery<~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.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 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 3 - call $~lib/typedarray/Uint8ClampedArray#constructor - local.tee $0 - i32.store + (local $9 i32) + (local $10 i32) local.get $0 + local.set $5 + local.get $1 + local.set $4 + local.get $2 local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 i32.const 0 - i32.const 2 - call $~lib/typedarray/Uint8ClampedArray#__set - local.get $0 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - i32.const 1 - i32.const 4 - call $~lib/typedarray/Uint8ClampedArray#__set - local.get $0 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - i32.const 2 - i32.const 6 - call $~lib/typedarray/Uint8ClampedArray#__set - local.get $0 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - i32.const 4816 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=8 + drop local.get $3 - call $~lib/typedarray/Uint8ClampedArray#every - local.set $1 - local.get $1 i32.const 0 - i32.ne - i32.eqz + i32.lt_s if - i32.const 0 - i32.const 544 - i32.const 484 - i32.const 3 + i32.const 336 + i32.const 608 + i32.const 1864 + i32.const 19 call $~lib/builtins/abort unreachable end - local.get $0 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - i32.const 4848 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=8 + local.get $4 + call $~lib/typedarray/Int64Array#get:length local.get $3 - call $~lib/typedarray/Uint8ClampedArray#every - local.set $2 - local.get $2 - i32.eqz - i32.eqz + i32.add + local.get $5 + call $~lib/typedarray/Int16Array#get:length + i32.gt_s if - i32.const 0 - i32.const 544 - i32.const 486 - i32.const 3 + i32.const 336 + i32.const 608 + i32.const 1865 + i32.const 47 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/Int16Array#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) - 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 - block $~lib/typedarray/EVERY<~lib/typedarray/Int16Array,i16>|inlined.0 (result i32) - global.get $~lib/memory/__stack_pointer - local.get $0 - local.tee $3 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - local.tee $2 - i32.store offset=4 - local.get $3 - i32.load offset=4 - local.set $4 + i32.const 1 + i32.const 1 + i32.eq + if (result i32) + i32.const 1 + i32.const 3 + i32.eq + else i32.const 0 - local.set $5 - local.get $3 - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=8 + end + if (result i32) + i32.const 0 + if (result i32) + i32.const 1 + else + i32.const 0 + end + i32.eqz + else + i32.const 0 + end + drop + local.get $5 + i32.load offset=4 + local.get $3 + i32.const 1 + i32.shl + i32.add + local.set $6 + local.get $4 + i32.load offset=4 + local.set $7 + local.get $4 + call $~lib/typedarray/Int64Array#get:length + local.set $8 + i32.const 0 + local.set $9 + loop $for-loop|0 + local.get $9 local.get $8 - call $~lib/typedarray/Int16Array#get:length - local.set $6 - loop $for-loop|0 - local.get $5 + i32.lt_s + local.set $10 + local.get $10 + if + i32.const 0 + drop + i32.const 0 + if (result i32) + i32.const 0 + i32.eqz + else + i32.const 0 + end + drop + i32.const 0 + if (result i32) + i32.const 0 + i32.eqz + else + i32.const 0 + end + drop local.get $6 - i32.lt_s - local.set $7 + local.get $9 + i32.const 1 + i32.shl + i32.add local.get $7 - if - block $for-continue|0 - local.get $4 - local.get $5 - i32.const 1 - i32.shl - i32.add - i32.load16_s - local.get $5 - local.get $3 - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=12 - local.get $8 - i32.const 3 - global.set $~argumentsLength - local.get $2 - i32.load - call_indirect (type $i32_i32_i32_=>_i32) - if - br $for-continue|0 - end - i32.const 0 - br $~lib/typedarray/EVERY<~lib/typedarray/Int16Array,i16>|inlined.0 - end - local.get $5 - i32.const 1 - i32.add - local.set $5 - br $for-loop|0 - end + local.get $9 + i32.const 3 + i32.shl + i32.add + i64.load + i64.store16 + local.get $9 + i32.const 1 + i32.add + local.set $9 + br $for-loop|0 end - i32.const 1 end - local.set $8 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $8 ) - (func $std/typedarray/testArrayEvery<~lib/typedarray/Int16Array,i16> - (local $0 i32) - (local $1 i32) - (local $2 i32) + (func $~lib/typedarray/Int16Array#set<~lib/array/Array> (param $0 i32) (param $1 i32) (param $2 i32) (local $3 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 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 3 - call $~lib/typedarray/Int16Array#constructor - local.tee $0 - i32.store + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 f64) local.get $0 + local.set $5 + local.get $1 + local.set $4 + local.get $2 local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 i32.const 0 - i32.const 2 - call $~lib/typedarray/Int16Array#__set - local.get $0 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - i32.const 1 - i32.const 4 - call $~lib/typedarray/Int16Array#__set - local.get $0 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - i32.const 2 - i32.const 6 - call $~lib/typedarray/Int16Array#__set - local.get $0 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - i32.const 4880 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=8 + drop local.get $3 - call $~lib/typedarray/Int16Array#every - local.set $1 - local.get $1 i32.const 0 - i32.ne - i32.eqz + i32.lt_s if - i32.const 0 - i32.const 544 - i32.const 484 - i32.const 3 + i32.const 336 + i32.const 608 + i32.const 1864 + i32.const 19 call $~lib/builtins/abort unreachable end - local.get $0 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - i32.const 4912 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=8 + local.get $4 + call $~lib/array/Array#get:length local.get $3 - call $~lib/typedarray/Int16Array#every - local.set $2 - local.get $2 - i32.eqz - i32.eqz + i32.add + local.get $5 + call $~lib/typedarray/Int16Array#get:length + i32.gt_s if - i32.const 0 - i32.const 544 - i32.const 486 - i32.const 3 + i32.const 336 + i32.const 608 + i32.const 1865 + i32.const 47 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/Uint16Array#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) - 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 - block $~lib/typedarray/EVERY<~lib/typedarray/Uint16Array,u16>|inlined.0 (result i32) - global.get $~lib/memory/__stack_pointer - local.get $0 - local.tee $3 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - local.tee $2 - i32.store offset=4 - local.get $3 - i32.load offset=4 - local.set $4 + i32.const 1 + i32.const 0 + i32.eq + if (result i32) + i32.const 1 + i32.const 3 + i32.eq + else i32.const 0 - local.set $5 - local.get $3 - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=8 - local.get $8 - call $~lib/typedarray/Uint16Array#get:length - local.set $6 - loop $for-loop|0 - local.get $5 - local.get $6 - i32.lt_s - local.set $7 + end + if (result i32) + i32.const 0 + if (result i32) + i32.const 0 + else + i32.const 0 + end + i32.eqz + else + i32.const 0 + end + drop + local.get $5 + i32.load offset=4 + local.get $3 + i32.const 1 + i32.shl + i32.add + local.set $6 + local.get $4 + i32.load offset=4 + local.set $7 + local.get $4 + call $~lib/array/Array#get:length + local.set $8 + i32.const 0 + local.set $9 + loop $for-loop|0 + local.get $9 + local.get $8 + i32.lt_s + local.set $10 + local.get $10 + if + i32.const 0 + drop + i32.const 1 + if (result i32) + i32.const 0 + i32.eqz + else + i32.const 0 + end + drop local.get $7 - if - block $for-continue|0 - local.get $4 - local.get $5 - i32.const 1 - i32.shl - i32.add - i32.load16_u - local.get $5 - local.get $3 - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=12 - local.get $8 - i32.const 3 - global.set $~argumentsLength - local.get $2 - i32.load - call_indirect (type $i32_i32_i32_=>_i32) - if - br $for-continue|0 - end - i32.const 0 - br $~lib/typedarray/EVERY<~lib/typedarray/Uint16Array,u16>|inlined.0 - end - local.get $5 - i32.const 1 - i32.add - local.set $5 - br $for-loop|0 + local.get $9 + i32.const 3 + i32.shl + i32.add + f64.load + local.set $11 + local.get $6 + local.get $9 + i32.const 1 + i32.shl + i32.add + local.get $11 + local.get $11 + f64.sub + f64.const 0 + f64.eq + if (result i32) + local.get $11 + i32.trunc_f64_s + else + i32.const 0 end + i32.store16 + local.get $9 + i32.const 1 + i32.add + local.set $9 + br $for-loop|0 end - i32.const 1 end - local.set $8 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $8 ) - (func $std/typedarray/testArrayEvery<~lib/typedarray/Uint16Array,u16> - (local $0 i32) - (local $1 i32) - (local $2 i32) + (func $~lib/typedarray/Int16Array#set<~lib/typedarray/Uint8Array> (param $0 i32) (param $1 i32) (param $2 i32) (local $3 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 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 3 - call $~lib/typedarray/Uint16Array#constructor - local.tee $0 - i32.store + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) local.get $0 + local.set $5 + local.get $1 + local.set $4 + local.get $2 local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 i32.const 0 - i32.const 2 - call $~lib/typedarray/Uint16Array#__set - local.get $0 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - i32.const 1 - i32.const 4 - call $~lib/typedarray/Uint16Array#__set - local.get $0 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - i32.const 2 - i32.const 6 - call $~lib/typedarray/Uint16Array#__set - local.get $0 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - i32.const 4944 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=8 + drop local.get $3 - call $~lib/typedarray/Uint16Array#every - local.set $1 - local.get $1 i32.const 0 - i32.ne - i32.eqz + i32.lt_s if - i32.const 0 - i32.const 544 - i32.const 484 - i32.const 3 + i32.const 336 + i32.const 608 + i32.const 1864 + i32.const 19 call $~lib/builtins/abort unreachable end - local.get $0 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - i32.const 4976 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=8 + local.get $4 + call $~lib/typedarray/Uint8Array#get:length local.get $3 - call $~lib/typedarray/Uint16Array#every - local.set $2 - local.get $2 - i32.eqz - i32.eqz + i32.add + local.get $5 + call $~lib/typedarray/Int16Array#get:length + i32.gt_s if - i32.const 0 - i32.const 544 - i32.const 486 - i32.const 3 + i32.const 336 + i32.const 608 + i32.const 1865 + i32.const 47 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#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) - 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 - block $~lib/typedarray/EVERY<~lib/typedarray/Int32Array,i32>|inlined.0 (result i32) - global.get $~lib/memory/__stack_pointer - local.get $0 - local.tee $3 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - local.tee $2 - i32.store offset=4 - local.get $3 - i32.load offset=4 - local.set $4 + i32.const 1 + i32.const 1 + i32.eq + if (result i32) + i32.const 1 i32.const 0 - local.set $5 - local.get $3 - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=8 + i32.eq + else + i32.const 0 + end + if (result i32) + i32.const 0 + if (result i32) + i32.const 0 + else + i32.const 0 + end + i32.eqz + else + i32.const 0 + end + drop + local.get $5 + i32.load offset=4 + local.get $3 + i32.const 1 + i32.shl + i32.add + local.set $6 + local.get $4 + i32.load offset=4 + local.set $7 + local.get $4 + call $~lib/typedarray/Uint8Array#get:length + local.set $8 + i32.const 0 + local.set $9 + loop $for-loop|0 + local.get $9 local.get $8 - call $~lib/typedarray/Int32Array#get:length - local.set $6 - loop $for-loop|0 - local.get $5 + i32.lt_s + local.set $10 + local.get $10 + if + i32.const 0 + drop + i32.const 0 + if (result i32) + i32.const 0 + i32.eqz + else + i32.const 0 + end + drop + i32.const 0 + if (result i32) + i32.const 0 + i32.eqz + else + i32.const 0 + end + drop local.get $6 - i32.lt_s - local.set $7 + local.get $9 + i32.const 1 + i32.shl + i32.add local.get $7 - if - block $for-continue|0 - local.get $4 - local.get $5 - i32.const 2 - i32.shl - i32.add - i32.load - local.get $5 - local.get $3 - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=12 - local.get $8 - i32.const 3 - global.set $~argumentsLength - local.get $2 - i32.load - call_indirect (type $i32_i32_i32_=>_i32) - if - br $for-continue|0 - end - i32.const 0 - br $~lib/typedarray/EVERY<~lib/typedarray/Int32Array,i32>|inlined.0 - end - local.get $5 - i32.const 1 - i32.add - local.set $5 - br $for-loop|0 - end + local.get $9 + i32.const 0 + i32.shl + i32.add + i32.load8_u + i32.store16 + local.get $9 + i32.const 1 + i32.add + local.set $9 + br $for-loop|0 end - i32.const 1 end - local.set $8 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $8 ) - (func $std/typedarray/testArrayEvery<~lib/typedarray/Int32Array,i32> - (local $0 i32) - (local $1 i32) - (local $2 i32) + (func $~lib/typedarray/Int16Array#set<~lib/typedarray/Int16Array> (param $0 i32) (param $1 i32) (param $2 i32) (local $3 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 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 3 - call $~lib/typedarray/Int32Array#constructor - local.tee $0 - i32.store + (local $4 i32) + (local $5 i32) local.get $0 + local.set $5 + local.get $1 + local.set $4 + local.get $2 local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 i32.const 0 - i32.const 2 - call $~lib/typedarray/Int32Array#__set - local.get $0 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - i32.const 1 - i32.const 4 - call $~lib/typedarray/Int32Array#__set - local.get $0 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - i32.const 2 - i32.const 6 - call $~lib/typedarray/Int32Array#__set - local.get $0 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - i32.const 5008 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=8 + drop local.get $3 - call $~lib/typedarray/Int32Array#every - local.set $1 - local.get $1 i32.const 0 - i32.ne - i32.eqz + i32.lt_s if - i32.const 0 - i32.const 544 - i32.const 484 - i32.const 3 + i32.const 336 + i32.const 608 + i32.const 1864 + i32.const 19 call $~lib/builtins/abort unreachable end - local.get $0 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - i32.const 5040 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=8 + local.get $4 + call $~lib/typedarray/Int16Array#get:length local.get $3 - call $~lib/typedarray/Int32Array#every - local.set $2 - local.get $2 - i32.eqz - i32.eqz + i32.add + local.get $5 + call $~lib/typedarray/Int16Array#get:length + i32.gt_s if - i32.const 0 - i32.const 544 - i32.const 486 - i32.const 3 + i32.const 336 + i32.const 608 + i32.const 1865 + i32.const 47 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/Uint32Array#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) - 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 - block $~lib/typedarray/EVERY<~lib/typedarray/Uint32Array,u32>|inlined.0 (result i32) - global.get $~lib/memory/__stack_pointer - local.get $0 - local.tee $3 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - local.tee $2 - i32.store offset=4 - local.get $3 - i32.load offset=4 - local.set $4 + i32.const 1 + i32.const 1 + i32.eq + if (result i32) + i32.const 1 + i32.const 1 + i32.eq + else i32.const 0 - local.set $5 - local.get $3 - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=8 - local.get $8 - call $~lib/typedarray/Uint32Array#get:length - local.set $6 - loop $for-loop|0 - local.get $5 - local.get $6 - i32.lt_s - local.set $7 - local.get $7 - if - block $for-continue|0 - local.get $4 - local.get $5 - i32.const 2 - i32.shl - i32.add - i32.load - local.get $5 - local.get $3 - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=12 - local.get $8 - i32.const 3 - global.set $~argumentsLength - local.get $2 - i32.load - call_indirect (type $i32_i32_i32_=>_i32) - if - br $for-continue|0 - end - i32.const 0 - br $~lib/typedarray/EVERY<~lib/typedarray/Uint32Array,u32>|inlined.0 - end - local.get $5 - i32.const 1 - i32.add - local.set $5 - br $for-loop|0 - end + end + if (result i32) + i32.const 0 + if (result i32) + i32.const 1 + else + i32.const 0 end - i32.const 1 + i32.eqz + else + i32.const 0 end - local.set $8 - global.get $~lib/memory/__stack_pointer - i32.const 16 + drop + local.get $5 + i32.load offset=4 + local.get $3 + i32.const 1 + i32.shl i32.add - global.set $~lib/memory/__stack_pointer - local.get $8 + local.get $4 + i32.load offset=4 + local.get $4 + i32.load offset=8 + call $~lib/memory/memory.copy ) - (func $std/typedarray/testArrayEvery<~lib/typedarray/Uint32Array,u32> - (local $0 i32) - (local $1 i32) - (local $2 i32) + (func $~lib/typedarray/Int16Array#set<~lib/array/Array> (param $0 i32) (param $1 i32) (param $2 i32) (local $3 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 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 3 - call $~lib/typedarray/Uint32Array#constructor - local.tee $0 - i32.store + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) local.get $0 + local.set $5 + local.get $1 + local.set $4 + local.get $2 local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 i32.const 0 - i32.const 2 - call $~lib/typedarray/Uint32Array#__set - local.get $0 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - i32.const 1 - i32.const 4 - call $~lib/typedarray/Uint32Array#__set - local.get $0 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - i32.const 2 - i32.const 6 - call $~lib/typedarray/Uint32Array#__set - local.get $0 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - i32.const 5072 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=8 + drop local.get $3 - call $~lib/typedarray/Uint32Array#every - local.set $1 - local.get $1 i32.const 0 - i32.ne - i32.eqz + i32.lt_s if - i32.const 0 - i32.const 544 - i32.const 484 - i32.const 3 + i32.const 336 + i32.const 608 + i32.const 1864 + i32.const 19 call $~lib/builtins/abort unreachable end - local.get $0 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - i32.const 5104 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=8 + local.get $4 + call $~lib/array/Array#get:length local.get $3 - call $~lib/typedarray/Uint32Array#every - local.set $2 - local.get $2 - i32.eqz - i32.eqz + i32.add + local.get $5 + call $~lib/typedarray/Int16Array#get:length + i32.gt_s if - i32.const 0 - i32.const 544 - i32.const 486 - i32.const 3 + i32.const 336 + i32.const 608 + i32.const 1865 + i32.const 47 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#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) - 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 - block $~lib/typedarray/EVERY<~lib/typedarray/Int64Array,i64>|inlined.0 (result i32) - global.get $~lib/memory/__stack_pointer - local.get $0 - local.tee $3 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - local.tee $2 - i32.store offset=4 - local.get $3 - i32.load offset=4 - local.set $4 + i32.const 1 + i32.const 1 + i32.eq + if (result i32) + i32.const 1 i32.const 0 - local.set $5 - local.get $3 - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=8 + i32.eq + else + i32.const 0 + end + if (result i32) + i32.const 0 + if (result i32) + i32.const 1 + else + i32.const 0 + end + i32.eqz + else + i32.const 0 + end + drop + local.get $5 + i32.load offset=4 + local.get $3 + i32.const 1 + i32.shl + i32.add + local.set $6 + local.get $4 + i32.load offset=4 + local.set $7 + local.get $4 + call $~lib/array/Array#get:length + local.set $8 + i32.const 0 + local.set $9 + loop $for-loop|0 + local.get $9 local.get $8 - call $~lib/typedarray/Int64Array#get:length - local.set $6 - loop $for-loop|0 - local.get $5 + i32.lt_s + local.set $10 + local.get $10 + if + i32.const 0 + drop + i32.const 0 + if (result i32) + i32.const 0 + i32.eqz + else + i32.const 0 + end + drop + i32.const 0 + if (result i32) + i32.const 0 + i32.eqz + else + i32.const 0 + end + drop local.get $6 - i32.lt_s - local.set $7 + local.get $9 + i32.const 1 + i32.shl + i32.add local.get $7 - if - block $for-continue|0 - local.get $4 - local.get $5 - i32.const 3 - i32.shl - i32.add - i64.load - local.get $5 - local.get $3 - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=12 - local.get $8 - i32.const 3 - global.set $~argumentsLength - local.get $2 - i32.load - call_indirect (type $i64_i32_i32_=>_i32) - if - br $for-continue|0 - end - i32.const 0 - br $~lib/typedarray/EVERY<~lib/typedarray/Int64Array,i64>|inlined.0 - end - local.get $5 - i32.const 1 - i32.add - local.set $5 - br $for-loop|0 - end + local.get $9 + i32.const 0 + i32.shl + i32.add + i32.load8_s + i32.store16 + local.get $9 + i32.const 1 + i32.add + local.set $9 + br $for-loop|0 end - i32.const 1 end - local.set $8 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $8 ) - (func $std/typedarray/testArrayEvery<~lib/typedarray/Int64Array,i64> - (local $0 i32) - (local $1 i32) - (local $2 i32) + (func $~lib/typedarray/Uint16Array#set<~lib/array/Array> (param $0 i32) (param $1 i32) (param $2 i32) (local $3 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 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 3 - call $~lib/typedarray/Int64Array#constructor - local.tee $0 - i32.store + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) local.get $0 + local.set $5 + local.get $1 + local.set $4 + local.get $2 local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 i32.const 0 - i64.const 2 - call $~lib/typedarray/Int64Array#__set - local.get $0 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - i32.const 1 - i64.const 4 - call $~lib/typedarray/Int64Array#__set - local.get $0 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - i32.const 2 - i64.const 6 - call $~lib/typedarray/Int64Array#__set - local.get $0 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - i32.const 5136 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=8 + drop local.get $3 - call $~lib/typedarray/Int64Array#every - local.set $1 - local.get $1 i32.const 0 - i32.ne - i32.eqz + i32.lt_s if - i32.const 0 - i32.const 544 - i32.const 484 - i32.const 3 + i32.const 336 + i32.const 608 + i32.const 1864 + i32.const 19 call $~lib/builtins/abort unreachable end - local.get $0 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - i32.const 5168 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=8 + local.get $4 + call $~lib/array/Array#get:length local.get $3 - call $~lib/typedarray/Int64Array#every - local.set $2 - local.get $2 - i32.eqz - i32.eqz + i32.add + local.get $5 + call $~lib/typedarray/Uint16Array#get:length + i32.gt_s if - i32.const 0 - i32.const 544 - i32.const 486 - i32.const 3 + i32.const 336 + i32.const 608 + i32.const 1865 + i32.const 47 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 1 + i32.const 1 + i32.eq + if (result i32) + i32.const 1 + i32.const 2 + i32.eq + else + i32.const 0 + end + if (result i32) + i32.const 0 + if (result i32) + i32.const 1 + else + i32.const 0 + end + i32.eqz + else + i32.const 0 + end + drop + local.get $5 + i32.load offset=4 + local.get $3 + i32.const 1 + i32.shl i32.add - global.set $~lib/memory/__stack_pointer - ) - (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) - 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 - block $~lib/typedarray/EVERY<~lib/typedarray/Uint64Array,u64>|inlined.0 (result i32) - global.get $~lib/memory/__stack_pointer - local.get $0 - local.tee $3 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - local.tee $2 - i32.store offset=4 - local.get $3 - i32.load offset=4 - local.set $4 - i32.const 0 - local.set $5 - local.get $3 - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=8 + local.set $6 + local.get $4 + i32.load offset=4 + local.set $7 + local.get $4 + call $~lib/array/Array#get:length + local.set $8 + i32.const 0 + local.set $9 + loop $for-loop|0 + local.get $9 local.get $8 - call $~lib/typedarray/Uint64Array#get:length - local.set $6 - loop $for-loop|0 - local.get $5 + i32.lt_s + local.set $10 + local.get $10 + if + i32.const 0 + drop + i32.const 0 + if (result i32) + i32.const 0 + i32.eqz + else + i32.const 0 + end + drop + i32.const 0 + if (result i32) + i32.const 0 + i32.eqz + else + i32.const 0 + end + drop local.get $6 - i32.lt_s - local.set $7 + local.get $9 + i32.const 1 + i32.shl + i32.add local.get $7 - if - block $for-continue|0 - local.get $4 - local.get $5 - i32.const 3 - i32.shl - i32.add - i64.load - local.get $5 - local.get $3 - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=12 - local.get $8 - i32.const 3 - global.set $~argumentsLength - local.get $2 - i32.load - call_indirect (type $i64_i32_i32_=>_i32) - if - br $for-continue|0 - end - i32.const 0 - br $~lib/typedarray/EVERY<~lib/typedarray/Uint64Array,u64>|inlined.0 - end - local.get $5 - i32.const 1 - i32.add - local.set $5 - br $for-loop|0 - end + local.get $9 + i32.const 2 + i32.shl + i32.add + i32.load + i32.store16 + local.get $9 + i32.const 1 + i32.add + local.set $9 + br $for-loop|0 end - i32.const 1 end - local.set $8 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $8 ) - (func $std/typedarray/testArrayEvery<~lib/typedarray/Uint64Array,u64> - (local $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 - 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 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 3 - call $~lib/typedarray/Uint64Array#constructor - local.tee $0 - i32.store + (func $~lib/array/Array#get:length (param $0 i32) (result i32) local.get $0 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - i32.const 0 - i64.const 2 - call $~lib/typedarray/Uint64Array#__set + i32.load offset=12 + ) + (func $~lib/typedarray/Uint16Array#__uget (param $0 i32) (param $1 i32) (result i32) local.get $0 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 + i32.load offset=4 + local.get $1 i32.const 1 - i64.const 4 - call $~lib/typedarray/Uint64Array#__set + i32.shl + i32.add + i32.load16_u + ) + (func $~lib/array/Array#__uget (param $0 i32) (param $1 i32) (result i32) local.get $0 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - i32.const 2 - i64.const 6 - call $~lib/typedarray/Uint64Array#__set + i32.load offset=4 + local.get $1 + i32.const 1 + i32.shl + i32.add + i32.load16_u + ) + (func $~lib/typedarray/Uint16Array#set<~lib/array/Array> (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 f32) local.get $0 + local.set $5 + local.get $1 + local.set $4 + local.get $2 local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - i32.const 5200 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=8 + i32.const 0 + drop local.get $3 - call $~lib/typedarray/Uint64Array#every - local.set $1 - local.get $1 i32.const 0 - i32.ne - i32.eqz + i32.lt_s if - i32.const 0 - i32.const 544 - i32.const 484 - i32.const 3 + i32.const 336 + i32.const 608 + i32.const 1864 + i32.const 19 call $~lib/builtins/abort unreachable end - local.get $0 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - i32.const 5232 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=8 + local.get $4 + call $~lib/array/Array#get:length local.get $3 - call $~lib/typedarray/Uint64Array#every - local.set $2 - local.get $2 - i32.eqz - i32.eqz + i32.add + local.get $5 + call $~lib/typedarray/Uint16Array#get:length + i32.gt_s if - i32.const 0 - i32.const 544 - i32.const 486 - i32.const 3 + i32.const 336 + i32.const 608 + i32.const 1865 + i32.const 47 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/Float32Array#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) - 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 - block $~lib/typedarray/EVERY<~lib/typedarray/Float32Array,f32>|inlined.0 (result i32) - global.get $~lib/memory/__stack_pointer - local.get $0 - local.tee $3 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - local.tee $2 - i32.store offset=4 - local.get $3 - i32.load offset=4 - local.set $4 + i32.const 1 + i32.const 0 + i32.eq + if (result i32) + i32.const 1 + i32.const 2 + i32.eq + else i32.const 0 - local.set $5 - local.get $3 - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=8 + end + if (result i32) + i32.const 0 + if (result i32) + i32.const 0 + else + i32.const 0 + end + i32.eqz + else + i32.const 0 + end + drop + local.get $5 + i32.load offset=4 + local.get $3 + i32.const 1 + i32.shl + i32.add + local.set $6 + local.get $4 + i32.load offset=4 + local.set $7 + local.get $4 + call $~lib/array/Array#get:length + local.set $8 + i32.const 0 + local.set $9 + loop $for-loop|0 + local.get $9 local.get $8 - call $~lib/typedarray/Float32Array#get:length - local.set $6 - loop $for-loop|0 - local.get $5 - local.get $6 - i32.lt_s - local.set $7 + i32.lt_s + local.set $10 + local.get $10 + if + i32.const 0 + drop + i32.const 1 + if (result i32) + i32.const 0 + i32.eqz + else + i32.const 0 + end + drop local.get $7 - if - block $for-continue|0 - local.get $4 - local.get $5 - i32.const 2 - i32.shl - i32.add - f32.load - local.get $5 - local.get $3 - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=12 - local.get $8 - i32.const 3 - global.set $~argumentsLength - local.get $2 - i32.load - call_indirect (type $f32_i32_i32_=>_i32) - if - br $for-continue|0 - end - i32.const 0 - br $~lib/typedarray/EVERY<~lib/typedarray/Float32Array,f32>|inlined.0 - end - local.get $5 - i32.const 1 - i32.add - local.set $5 - br $for-loop|0 + local.get $9 + i32.const 2 + i32.shl + i32.add + f32.load + local.set $11 + local.get $6 + local.get $9 + i32.const 1 + i32.shl + i32.add + local.get $11 + local.get $11 + f32.sub + f32.const 0 + f32.eq + if (result i32) + local.get $11 + i32.trunc_f32_u + else + i32.const 0 end + i32.store16 + local.get $9 + i32.const 1 + i32.add + local.set $9 + br $for-loop|0 end - i32.const 1 end - local.set $8 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $8 ) - (func $std/typedarray/testArrayEvery<~lib/typedarray/Float32Array,f32> - (local $0 i32) - (local $1 i32) - (local $2 i32) + (func $~lib/typedarray/Uint16Array#set<~lib/typedarray/Int64Array> (param $0 i32) (param $1 i32) (param $2 i32) (local $3 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 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 3 - call $~lib/typedarray/Float32Array#constructor - local.tee $0 - i32.store + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) local.get $0 + local.set $5 + local.get $1 + local.set $4 + local.get $2 local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 i32.const 0 - f32.const 2 - call $~lib/typedarray/Float32Array#__set - local.get $0 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - i32.const 1 - f32.const 4 - call $~lib/typedarray/Float32Array#__set - local.get $0 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - i32.const 2 - f32.const 6 - call $~lib/typedarray/Float32Array#__set - local.get $0 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - i32.const 5264 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=8 + drop local.get $3 - call $~lib/typedarray/Float32Array#every - local.set $1 - local.get $1 i32.const 0 - i32.ne - i32.eqz + i32.lt_s if - i32.const 0 - i32.const 544 - i32.const 484 - i32.const 3 + i32.const 336 + i32.const 608 + i32.const 1864 + i32.const 19 call $~lib/builtins/abort unreachable end - local.get $0 - local.set $3 - global.get $~lib/memory/__stack_pointer + local.get $4 + call $~lib/typedarray/Int64Array#get:length local.get $3 - i32.store offset=4 - local.get $3 - i32.const 5296 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=8 - local.get $3 - call $~lib/typedarray/Float32Array#every - local.set $2 - local.get $2 - i32.eqz - i32.eqz + i32.add + local.get $5 + call $~lib/typedarray/Uint16Array#get:length + i32.gt_s if - i32.const 0 - i32.const 544 - i32.const 486 - i32.const 3 + i32.const 336 + i32.const 608 + i32.const 1865 + i32.const 47 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/Float64Array#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) - 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 - block $~lib/typedarray/EVERY<~lib/typedarray/Float64Array,f64>|inlined.0 (result i32) - global.get $~lib/memory/__stack_pointer - local.get $0 - local.tee $3 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - local.tee $2 - i32.store offset=4 - local.get $3 - i32.load offset=4 - local.set $4 + i32.const 1 + i32.const 1 + i32.eq + if (result i32) + i32.const 1 + i32.const 3 + i32.eq + else i32.const 0 - local.set $5 - local.get $3 - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=8 + end + if (result i32) + i32.const 0 + if (result i32) + i32.const 1 + else + i32.const 0 + end + i32.eqz + else + i32.const 0 + end + drop + local.get $5 + i32.load offset=4 + local.get $3 + i32.const 1 + i32.shl + i32.add + local.set $6 + local.get $4 + i32.load offset=4 + local.set $7 + local.get $4 + call $~lib/typedarray/Int64Array#get:length + local.set $8 + i32.const 0 + local.set $9 + loop $for-loop|0 + local.get $9 local.get $8 - call $~lib/typedarray/Float64Array#get:length - local.set $6 - loop $for-loop|0 - local.get $5 + i32.lt_s + local.set $10 + local.get $10 + if + i32.const 0 + drop + i32.const 0 + if (result i32) + i32.const 0 + i32.eqz + else + i32.const 0 + end + drop + i32.const 0 + if (result i32) + i32.const 0 + i32.eqz + else + i32.const 0 + end + drop local.get $6 - i32.lt_s - local.set $7 + local.get $9 + i32.const 1 + i32.shl + i32.add local.get $7 - if - block $for-continue|0 - local.get $4 - local.get $5 - i32.const 3 - i32.shl - i32.add - f64.load - local.get $5 - local.get $3 - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=12 - local.get $8 - i32.const 3 - global.set $~argumentsLength - local.get $2 - i32.load - call_indirect (type $f64_i32_i32_=>_i32) - if - br $for-continue|0 - end - i32.const 0 - br $~lib/typedarray/EVERY<~lib/typedarray/Float64Array,f64>|inlined.0 - end - local.get $5 - i32.const 1 - i32.add - local.set $5 - br $for-loop|0 - end + local.get $9 + i32.const 3 + i32.shl + i32.add + i64.load + i64.store16 + local.get $9 + i32.const 1 + i32.add + local.set $9 + br $for-loop|0 end - i32.const 1 end - local.set $8 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $8 ) - (func $std/typedarray/testArrayEvery<~lib/typedarray/Float64Array,f64> - (local $0 i32) - (local $1 i32) - (local $2 i32) + (func $~lib/typedarray/Uint16Array#set<~lib/array/Array> (param $0 i32) (param $1 i32) (param $2 i32) (local $3 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 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 3 - call $~lib/typedarray/Float64Array#constructor - local.tee $0 - i32.store + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 f64) local.get $0 + local.set $5 + local.get $1 + local.set $4 + local.get $2 local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 i32.const 0 - f64.const 2 - call $~lib/typedarray/Float64Array#__set - local.get $0 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - i32.const 1 - f64.const 4 - call $~lib/typedarray/Float64Array#__set - local.get $0 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - i32.const 2 - f64.const 6 - call $~lib/typedarray/Float64Array#__set - local.get $0 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - i32.const 5328 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=8 + drop local.get $3 - call $~lib/typedarray/Float64Array#every - local.set $1 - local.get $1 i32.const 0 - i32.ne - i32.eqz + i32.lt_s if - i32.const 0 - i32.const 544 - i32.const 484 - i32.const 3 + i32.const 336 + i32.const 608 + i32.const 1864 + i32.const 19 call $~lib/builtins/abort unreachable end - local.get $0 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - i32.const 5360 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=8 + local.get $4 + call $~lib/array/Array#get:length local.get $3 - call $~lib/typedarray/Float64Array#every - local.set $2 - local.get $2 - i32.eqz - i32.eqz + i32.add + local.get $5 + call $~lib/typedarray/Uint16Array#get:length + i32.gt_s if - i32.const 0 - i32.const 544 - i32.const 486 - i32.const 3 + i32.const 336 + i32.const 608 + i32.const 1865 + i32.const 47 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/testArrayForEach<~lib/typedarray/Int8Array,i8>~anonymous|0 (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 - call $~stack_check - global.get $~lib/memory/__stack_pointer + i32.const 1 i32.const 0 - i32.store - global.get $std/typedarray/forEachValues - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store - local.get $4 - local.get $1 - call $~lib/array/Array#__get - local.set $3 - local.get $0 - i32.const 24 - i32.shl - i32.const 24 - i32.shr_s - local.get $3 - i32.const 24 - i32.shl - i32.const 24 - i32.shr_s i32.eq - i32.eqz - if + if (result i32) + i32.const 1 + i32.const 3 + i32.eq + else i32.const 0 - i32.const 544 - i32.const 513 - i32.const 5 - call $~lib/builtins/abort - unreachable end - local.get $1 - global.get $std/typedarray/forEachCallCount - i32.eq - i32.eqz - if + if (result i32) i32.const 0 - i32.const 544 - i32.const 514 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $std/typedarray/forEachSelf - local.get $2 - i32.eq - i32.eqz - if + if (result i32) + i32.const 0 + else + i32.const 0 + end + i32.eqz + else i32.const 0 - i32.const 544 - i32.const 515 - i32.const 5 - call $~lib/builtins/abort - unreachable end - global.get $std/typedarray/forEachCallCount + drop + local.get $5 + i32.load offset=4 + local.get $3 i32.const 1 + i32.shl 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/Int8Array#forEach (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 - 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 - global.get $~lib/memory/__stack_pointer - local.get $0 - local.tee $3 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - local.tee $2 - i32.store offset=4 - local.get $3 + local.set $6 + local.get $4 i32.load offset=4 - local.set $4 - i32.const 0 - local.set $5 - local.get $3 + local.set $7 + local.get $4 + call $~lib/array/Array#get:length local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=8 - local.get $8 - call $~lib/typedarray/Int8Array#get:length - local.set $6 + i32.const 0 + local.set $9 loop $for-loop|0 - local.get $5 - local.get $6 + local.get $9 + local.get $8 i32.lt_s - local.set $7 - local.get $7 + local.set $10 + local.get $10 if - local.get $4 - local.get $5 i32.const 0 + drop + i32.const 1 + if (result i32) + i32.const 0 + i32.eqz + else + i32.const 0 + end + drop + local.get $7 + local.get $9 + i32.const 3 i32.shl i32.add - i32.load8_s - local.get $5 - local.get $3 - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=12 - local.get $8 - i32.const 3 - global.set $~argumentsLength - local.get $2 - i32.load - call_indirect (type $i32_i32_i32_=>_none) - local.get $5 + f64.load + local.set $11 + local.get $6 + local.get $9 i32.const 1 + i32.shl i32.add - local.set $5 + local.get $11 + local.get $11 + f64.sub + f64.const 0 + f64.eq + if (result i32) + local.get $11 + i32.trunc_f64_u + else + i32.const 0 + end + i32.store16 + local.get $9 + i32.const 1 + i32.add + local.set $9 br $for-loop|0 end end - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer ) - (func $std/typedarray/testArrayForEach<~lib/typedarray/Int8Array,i8> - (local $0 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 - i32.const 0 - global.set $std/typedarray/forEachCallCount - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 3 - call $~lib/typedarray/Int8Array#constructor - local.tee $0 - i32.store - local.get $0 - global.set $std/typedarray/forEachSelf + (func $~lib/typedarray/Uint16Array#set<~lib/typedarray/Uint8Array> (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.get $0 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 + local.set $5 local.get $1 + local.set $4 + local.get $2 + local.set $3 i32.const 0 - global.get $std/typedarray/forEachValues - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $1 + drop + local.get $3 i32.const 0 - call $~lib/array/Array#__get - i32.const 24 - i32.shl - i32.const 24 - i32.shr_s - call $~lib/typedarray/Int8Array#__set - local.get $0 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 1 - global.get $std/typedarray/forEachValues - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $1 - i32.const 1 - call $~lib/array/Array#__get - i32.const 24 - i32.shl - i32.const 24 - i32.shr_s - call $~lib/typedarray/Int8Array#__set - local.get $0 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 2 - global.get $std/typedarray/forEachValues - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $1 - i32.const 2 - call $~lib/array/Array#__get - i32.const 24 - i32.shl - i32.const 24 - i32.shr_s - call $~lib/typedarray/Int8Array#__set - local.get $0 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 5472 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $1 - call $~lib/typedarray/Int8Array#forEach - global.get $std/typedarray/forEachCallCount - i32.const 3 - i32.eq - i32.eqz + i32.lt_s if - i32.const 0 - i32.const 544 - i32.const 518 - i32.const 3 + i32.const 336 + i32.const 608 + i32.const 1864 + i32.const 19 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/testArrayForEach<~lib/typedarray/Uint8Array,u8>~anonymous|0 (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 - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $std/typedarray/forEachValues - local.set $4 - global.get $~lib/memory/__stack_pointer local.get $4 - i32.store - local.get $4 - local.get $1 - call $~lib/array/Array#__get - local.set $3 - local.get $0 - i32.const 255 - i32.and + call $~lib/typedarray/Uint8Array#get:length local.get $3 - i32.const 255 - i32.and - i32.eq - i32.eqz + i32.add + local.get $5 + call $~lib/typedarray/Uint16Array#get:length + i32.gt_s if - i32.const 0 - i32.const 544 - i32.const 513 - i32.const 5 + i32.const 336 + i32.const 608 + i32.const 1865 + i32.const 47 call $~lib/builtins/abort unreachable end - local.get $1 - global.get $std/typedarray/forEachCallCount + i32.const 1 + i32.const 1 i32.eq - i32.eqz - if + if (result i32) + i32.const 1 + i32.const 0 + i32.eq + else i32.const 0 - i32.const 544 - i32.const 514 - i32.const 5 - call $~lib/builtins/abort - unreachable end - global.get $std/typedarray/forEachSelf - local.get $2 - i32.eq - i32.eqz - if + if (result i32) + i32.const 0 + if (result i32) + i32.const 0 + else + i32.const 0 + end + i32.eqz + else i32.const 0 - i32.const 544 - i32.const 515 - i32.const 5 - call $~lib/builtins/abort - unreachable end - global.get $std/typedarray/forEachCallCount + drop + local.get $5 + i32.load offset=4 + local.get $3 i32.const 1 + i32.shl 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/Uint8Array#forEach (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 - 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 - global.get $~lib/memory/__stack_pointer - local.get $0 - local.tee $3 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - local.tee $2 - i32.store offset=4 - local.get $3 + local.set $6 + local.get $4 i32.load offset=4 - local.set $4 - i32.const 0 - local.set $5 - local.get $3 - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=8 - local.get $8 + local.set $7 + local.get $4 call $~lib/typedarray/Uint8Array#get:length - local.set $6 + local.set $8 + i32.const 0 + local.set $9 loop $for-loop|0 - local.get $5 - local.get $6 + local.get $9 + local.get $8 i32.lt_s - local.set $7 - local.get $7 + local.set $10 + local.get $10 if - local.get $4 - local.get $5 + i32.const 0 + drop + i32.const 0 + if (result i32) + i32.const 0 + i32.eqz + else + i32.const 0 + end + drop + i32.const 0 + if (result i32) + i32.const 0 + i32.eqz + else + i32.const 0 + end + drop + local.get $6 + local.get $9 + i32.const 1 + i32.shl + i32.add + local.get $7 + local.get $9 i32.const 0 i32.shl i32.add i32.load8_u - local.get $5 - local.get $3 - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=12 - local.get $8 - i32.const 3 - global.set $~argumentsLength - local.get $2 - i32.load - call_indirect (type $i32_i32_i32_=>_none) - local.get $5 + i32.store16 + local.get $9 i32.const 1 i32.add - local.set $5 + local.set $9 br $for-loop|0 end end - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer ) - (func $std/typedarray/testArrayForEach<~lib/typedarray/Uint8Array,u8> - (local $0 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 - i32.const 0 - global.set $std/typedarray/forEachCallCount - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 3 - call $~lib/typedarray/Uint8Array#constructor - local.tee $0 - i32.store - local.get $0 - global.set $std/typedarray/forEachSelf + (func $~lib/typedarray/Uint16Array#set<~lib/typedarray/Int16Array> (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) local.get $0 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 + local.set $5 local.get $1 + local.set $4 + local.get $2 + local.set $3 i32.const 0 - global.get $std/typedarray/forEachValues - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $1 + drop + local.get $3 i32.const 0 - call $~lib/array/Array#__get - i32.const 255 - i32.and - call $~lib/typedarray/Uint8Array#__set - local.get $0 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 1 - global.get $std/typedarray/forEachValues - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $1 - i32.const 1 - call $~lib/array/Array#__get - i32.const 255 - i32.and - call $~lib/typedarray/Uint8Array#__set - local.get $0 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 2 - global.get $std/typedarray/forEachValues - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $1 - i32.const 2 - call $~lib/array/Array#__get - i32.const 255 - i32.and - call $~lib/typedarray/Uint8Array#__set - local.get $0 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 5504 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $1 - call $~lib/typedarray/Uint8Array#forEach - global.get $std/typedarray/forEachCallCount - i32.const 3 - i32.eq - i32.eqz + i32.lt_s if - i32.const 0 - i32.const 544 - i32.const 518 - i32.const 3 + i32.const 336 + i32.const 608 + i32.const 1864 + i32.const 19 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/testArrayForEach<~lib/typedarray/Uint8ClampedArray,u8>~anonymous|0 (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 - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $std/typedarray/forEachValues - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store local.get $4 - local.get $1 - call $~lib/array/Array#__get - local.set $3 - local.get $0 - i32.const 255 - i32.and + call $~lib/typedarray/Int16Array#get:length local.get $3 - i32.const 255 - i32.and - i32.eq - i32.eqz + i32.add + local.get $5 + call $~lib/typedarray/Uint16Array#get:length + i32.gt_s if - i32.const 0 - i32.const 544 - i32.const 513 - i32.const 5 + i32.const 336 + i32.const 608 + i32.const 1865 + i32.const 47 call $~lib/builtins/abort unreachable end - local.get $1 - global.get $std/typedarray/forEachCallCount + i32.const 1 + i32.const 1 i32.eq - i32.eqz - if + if (result i32) + i32.const 1 + i32.const 1 + i32.eq + else i32.const 0 - i32.const 544 - i32.const 514 - i32.const 5 - call $~lib/builtins/abort - unreachable end - global.get $std/typedarray/forEachSelf - local.get $2 - i32.eq - i32.eqz - if + if (result i32) + i32.const 0 + if (result i32) + i32.const 1 + else + i32.const 0 + end + i32.eqz + else i32.const 0 - i32.const 544 - i32.const 515 - i32.const 5 - call $~lib/builtins/abort - unreachable end - global.get $std/typedarray/forEachCallCount + drop + local.get $5 + i32.load offset=4 + local.get $3 i32.const 1 + i32.shl 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 $4 + i32.load offset=4 + local.get $4 + i32.load offset=8 + call $~lib/memory/memory.copy ) - (func $~lib/typedarray/Uint8ClampedArray#forEach (param $0 i32) (param $1 i32) - (local $2 i32) + (func $~lib/typedarray/Uint16Array#set<~lib/array/Array> (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) - 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 - global.get $~lib/memory/__stack_pointer + (local $9 i32) + (local $10 i32) local.get $0 - local.tee $3 - i32.store - global.get $~lib/memory/__stack_pointer + local.set $5 local.get $1 - local.tee $2 - i32.store offset=4 - local.get $3 - i32.load offset=4 local.set $4 + local.get $2 + local.set $3 i32.const 0 - local.set $5 + drop local.get $3 - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=8 - local.get $8 - call $~lib/typedarray/Uint8ClampedArray#get:length + i32.const 0 + i32.lt_s + if + i32.const 336 + i32.const 608 + i32.const 1864 + i32.const 19 + call $~lib/builtins/abort + unreachable + end + local.get $4 + call $~lib/array/Array#get:length + local.get $3 + i32.add + local.get $5 + call $~lib/typedarray/Uint16Array#get:length + i32.gt_s + if + i32.const 336 + i32.const 608 + i32.const 1865 + i32.const 47 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + i32.const 1 + i32.eq + if (result i32) + i32.const 1 + i32.const 0 + i32.eq + else + i32.const 0 + end + if (result i32) + i32.const 0 + if (result i32) + i32.const 1 + else + i32.const 0 + end + i32.eqz + else + i32.const 0 + end + drop + local.get $5 + i32.load offset=4 + local.get $3 + i32.const 1 + i32.shl + i32.add local.set $6 + local.get $4 + i32.load offset=4 + local.set $7 + local.get $4 + call $~lib/array/Array#get:length + local.set $8 + i32.const 0 + local.set $9 loop $for-loop|0 - local.get $5 - local.get $6 + local.get $9 + local.get $8 i32.lt_s - local.set $7 - local.get $7 + local.set $10 + local.get $10 if - local.get $4 - local.get $5 i32.const 0 + drop + i32.const 0 + if (result i32) + i32.const 0 + i32.eqz + else + i32.const 0 + end + drop + i32.const 0 + if (result i32) + i32.const 0 + i32.eqz + else + i32.const 0 + end + drop + local.get $6 + local.get $9 + i32.const 1 i32.shl i32.add - i32.load8_u - local.get $5 - local.get $3 - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=12 - local.get $8 - i32.const 3 - global.set $~argumentsLength - local.get $2 - i32.load - call_indirect (type $i32_i32_i32_=>_none) - local.get $5 + local.get $7 + local.get $9 + i32.const 0 + i32.shl + i32.add + i32.load8_s + i32.store16 + local.get $9 i32.const 1 i32.add - local.set $5 + local.set $9 br $for-loop|0 end end - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer ) - (func $std/typedarray/testArrayForEach<~lib/typedarray/Uint8ClampedArray,u8> - (local $0 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 - i32.const 0 - global.set $std/typedarray/forEachCallCount - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 3 - call $~lib/typedarray/Uint8ClampedArray#constructor - local.tee $0 - i32.store - local.get $0 - global.set $std/typedarray/forEachSelf + (func $~lib/typedarray/Int32Array#set<~lib/array/Array> (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) local.get $0 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 + local.set $5 local.get $1 + local.set $4 + local.get $2 + local.set $3 i32.const 0 - global.get $std/typedarray/forEachValues - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $1 + drop + local.get $3 i32.const 0 - call $~lib/array/Array#__get - i32.const 255 - i32.and - call $~lib/typedarray/Uint8ClampedArray#__set - local.get $0 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 + i32.lt_s + if + i32.const 336 + i32.const 608 + i32.const 1864 + i32.const 19 + call $~lib/builtins/abort + unreachable + end + local.get $4 + call $~lib/array/Array#get:length + local.get $3 + i32.add + local.get $5 + call $~lib/typedarray/Int32Array#get:length + i32.gt_s + if + i32.const 336 + i32.const 608 + i32.const 1865 + i32.const 47 + call $~lib/builtins/abort + unreachable + end i32.const 1 - global.get $std/typedarray/forEachValues - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $1 i32.const 1 - call $~lib/array/Array#__get - i32.const 255 - i32.and - call $~lib/typedarray/Uint8ClampedArray#__set - local.get $0 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 + i32.eq + if (result i32) + i32.const 2 + i32.const 2 + i32.eq + else + i32.const 0 + end + if (result i32) + i32.const 0 + if (result i32) + i32.const 1 + else + i32.const 0 + end + i32.eqz + else + i32.const 0 + end + drop + local.get $5 + i32.load offset=4 + local.get $3 i32.const 2 - global.get $std/typedarray/forEachValues - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 + i32.shl + i32.add + local.get $4 + i32.load offset=4 + local.get $4 + i32.load offset=8 + call $~lib/memory/memory.copy + ) + (func $~lib/typedarray/Int32Array#__uget (param $0 i32) (param $1 i32) (result i32) + local.get $0 + i32.load offset=4 local.get $1 i32.const 2 - call $~lib/array/Array#__get - i32.const 255 - i32.and - call $~lib/typedarray/Uint8ClampedArray#__set + i32.shl + i32.add + i32.load + ) + (func $~lib/array/Array#__uget (param $0 i32) (param $1 i32) (result i32) local.get $0 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 5536 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 + i32.load offset=4 local.get $1 - call $~lib/typedarray/Uint8ClampedArray#forEach - global.get $std/typedarray/forEachCallCount - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 518 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 2 + i32.shl i32.add - global.set $~lib/memory/__stack_pointer + i32.load ) - (func $std/typedarray/testArrayForEach<~lib/typedarray/Int16Array,i16>~anonymous|0 (param $0 i32) (param $1 i32) (param $2 i32) + (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 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 $std/typedarray/forEachValues - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store - local.get $4 + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 f32) + local.get $0 + local.set $5 local.get $1 - call $~lib/array/Array#__get + local.set $4 + local.get $2 local.set $3 - local.get $0 - i32.const 16 - i32.shl - i32.const 16 - i32.shr_s + i32.const 0 + drop local.get $3 - i32.const 16 - i32.shl - i32.const 16 - i32.shr_s - i32.eq - i32.eqz + i32.const 0 + i32.lt_s if - i32.const 0 - i32.const 544 - i32.const 513 - i32.const 5 + i32.const 336 + i32.const 608 + i32.const 1864 + i32.const 19 call $~lib/builtins/abort unreachable end - local.get $1 - global.get $std/typedarray/forEachCallCount - i32.eq - i32.eqz + local.get $4 + call $~lib/array/Array#get:length + local.get $3 + i32.add + local.get $5 + call $~lib/typedarray/Int32Array#get:length + i32.gt_s if - i32.const 0 - i32.const 544 - i32.const 514 - i32.const 5 + i32.const 336 + i32.const 608 + i32.const 1865 + i32.const 47 call $~lib/builtins/abort unreachable end - global.get $std/typedarray/forEachSelf - local.get $2 + i32.const 1 + i32.const 0 i32.eq - i32.eqz - if + if (result i32) + i32.const 2 + i32.const 2 + i32.eq + else i32.const 0 - i32.const 544 - i32.const 515 - 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 + if (result i32) + i32.const 0 + if (result i32) + i32.const 0 + else + i32.const 0 + end + i32.eqz + else + i32.const 0 + end + drop + local.get $5 + i32.load offset=4 + local.get $3 + i32.const 2 + i32.shl i32.add - global.set $~lib/memory/__stack_pointer + local.set $6 + local.get $4 + i32.load offset=4 + local.set $7 + local.get $4 + call $~lib/array/Array#get:length + local.set $8 + i32.const 0 + local.set $9 + loop $for-loop|0 + local.get $9 + local.get $8 + i32.lt_s + local.set $10 + local.get $10 + if + i32.const 0 + drop + i32.const 1 + if (result i32) + i32.const 0 + i32.eqz + else + i32.const 0 + end + drop + local.get $7 + local.get $9 + i32.const 2 + i32.shl + i32.add + f32.load + local.set $11 + local.get $6 + local.get $9 + i32.const 2 + i32.shl + i32.add + local.get $11 + local.get $11 + f32.sub + f32.const 0 + f32.eq + if (result i32) + local.get $11 + i32.trunc_f32_s + else + i32.const 0 + end + i32.store + local.get $9 + i32.const 1 + i32.add + local.set $9 + br $for-loop|0 + end + end ) - (func $~lib/typedarray/Int16Array#forEach (param $0 i32) (param $1 i32) - (local $2 i32) + (func $~lib/typedarray/Int32Array#set<~lib/typedarray/Int64Array> (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) - 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 - global.get $~lib/memory/__stack_pointer + (local $9 i32) + (local $10 i32) local.get $0 - local.tee $3 - i32.store - global.get $~lib/memory/__stack_pointer + local.set $5 local.get $1 - local.tee $2 - i32.store offset=4 - local.get $3 - i32.load offset=4 local.set $4 + local.get $2 + local.set $3 i32.const 0 - local.set $5 + drop local.get $3 - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=8 - local.get $8 - call $~lib/typedarray/Int16Array#get:length + i32.const 0 + i32.lt_s + if + i32.const 336 + i32.const 608 + i32.const 1864 + i32.const 19 + call $~lib/builtins/abort + unreachable + end + local.get $4 + call $~lib/typedarray/Int64Array#get:length + local.get $3 + i32.add + local.get $5 + call $~lib/typedarray/Int32Array#get:length + i32.gt_s + if + i32.const 336 + i32.const 608 + i32.const 1865 + i32.const 47 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + i32.const 1 + i32.eq + if (result i32) + i32.const 2 + i32.const 3 + i32.eq + else + i32.const 0 + end + if (result i32) + i32.const 0 + if (result i32) + i32.const 1 + else + i32.const 0 + end + i32.eqz + else + i32.const 0 + end + drop + local.get $5 + i32.load offset=4 + local.get $3 + i32.const 2 + i32.shl + i32.add local.set $6 + local.get $4 + i32.load offset=4 + local.set $7 + local.get $4 + call $~lib/typedarray/Int64Array#get:length + local.set $8 + i32.const 0 + local.set $9 loop $for-loop|0 - local.get $5 - local.get $6 + local.get $9 + local.get $8 i32.lt_s - local.set $7 - local.get $7 + local.set $10 + local.get $10 if - local.get $4 - local.get $5 - i32.const 1 + i32.const 0 + drop + i32.const 0 + if (result i32) + i32.const 0 + i32.eqz + else + i32.const 0 + end + drop + i32.const 0 + if (result i32) + i32.const 0 + i32.eqz + else + i32.const 0 + end + drop + local.get $6 + local.get $9 + i32.const 2 i32.shl i32.add - i32.load16_s - local.get $5 - local.get $3 - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=12 - local.get $8 + local.get $7 + local.get $9 i32.const 3 - global.set $~argumentsLength - local.get $2 - i32.load - call_indirect (type $i32_i32_i32_=>_none) - local.get $5 + i32.shl + i32.add + i64.load + i64.store32 + local.get $9 i32.const 1 i32.add - local.set $5 + local.set $9 br $for-loop|0 end end - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer ) - (func $std/typedarray/testArrayForEach<~lib/typedarray/Int16Array,i16> - (local $0 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 - i32.const 0 - global.set $std/typedarray/forEachCallCount - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 3 - call $~lib/typedarray/Int16Array#constructor - local.tee $0 - i32.store - local.get $0 - global.set $std/typedarray/forEachSelf + (func $~lib/typedarray/Int32Array#set<~lib/array/Array> (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 f64) local.get $0 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 + local.set $5 local.get $1 + local.set $4 + local.get $2 + local.set $3 i32.const 0 - global.get $std/typedarray/forEachValues - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $1 + drop + local.get $3 i32.const 0 - call $~lib/array/Array#__get - i32.const 16 - i32.shl - i32.const 16 - i32.shr_s - call $~lib/typedarray/Int16Array#__set - local.get $0 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 1 - global.get $std/typedarray/forEachValues - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $1 - i32.const 1 - call $~lib/array/Array#__get - i32.const 16 - i32.shl - i32.const 16 - i32.shr_s - call $~lib/typedarray/Int16Array#__set - local.get $0 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 2 - global.get $std/typedarray/forEachValues - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $1 - i32.const 2 - call $~lib/array/Array#__get - i32.const 16 - i32.shl - i32.const 16 - i32.shr_s - call $~lib/typedarray/Int16Array#__set - local.get $0 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 5568 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $1 - call $~lib/typedarray/Int16Array#forEach - global.get $std/typedarray/forEachCallCount - i32.const 3 - i32.eq - i32.eqz + i32.lt_s if - i32.const 0 - i32.const 544 - i32.const 518 - i32.const 3 + i32.const 336 + i32.const 608 + i32.const 1864 + i32.const 19 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/testArrayForEach<~lib/typedarray/Uint16Array,u16>~anonymous|0 (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 - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $std/typedarray/forEachValues - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store local.get $4 - local.get $1 - call $~lib/array/Array#__get - local.set $3 - local.get $0 - i32.const 65535 - i32.and + call $~lib/array/Array#get:length local.get $3 - i32.const 65535 - i32.and - i32.eq - i32.eqz + i32.add + local.get $5 + call $~lib/typedarray/Int32Array#get:length + i32.gt_s if - i32.const 0 - i32.const 544 - i32.const 513 - i32.const 5 + i32.const 336 + i32.const 608 + i32.const 1865 + i32.const 47 call $~lib/builtins/abort unreachable end - local.get $1 - global.get $std/typedarray/forEachCallCount + i32.const 1 + i32.const 0 i32.eq - i32.eqz - if + if (result i32) + i32.const 2 + i32.const 3 + i32.eq + else i32.const 0 - i32.const 544 - i32.const 514 - i32.const 5 - call $~lib/builtins/abort - unreachable end - global.get $std/typedarray/forEachSelf - local.get $2 - i32.eq - i32.eqz - if + if (result i32) + i32.const 0 + if (result i32) + i32.const 0 + else + i32.const 0 + end + i32.eqz + else i32.const 0 - i32.const 544 - i32.const 515 - 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/Uint16Array#forEach (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 - 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 - global.get $~lib/memory/__stack_pointer - local.get $0 - local.tee $3 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - local.tee $2 - i32.store offset=4 - local.get $3 + drop + local.get $5 i32.load offset=4 - local.set $4 - i32.const 0 - local.set $5 local.get $3 - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=8 - local.get $8 - call $~lib/typedarray/Uint16Array#get:length + i32.const 2 + i32.shl + i32.add local.set $6 + local.get $4 + i32.load offset=4 + local.set $7 + local.get $4 + call $~lib/array/Array#get:length + local.set $8 + i32.const 0 + local.set $9 loop $for-loop|0 - local.get $5 - local.get $6 + local.get $9 + local.get $8 i32.lt_s - local.set $7 - local.get $7 + local.set $10 + local.get $10 if - local.get $4 - local.get $5 + i32.const 0 + drop i32.const 1 + if (result i32) + i32.const 0 + i32.eqz + else + i32.const 0 + end + drop + local.get $7 + local.get $9 + i32.const 3 i32.shl i32.add - i32.load16_u - local.get $5 - local.get $3 - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=12 - local.get $8 - i32.const 3 - global.set $~argumentsLength - local.get $2 - i32.load - call_indirect (type $i32_i32_i32_=>_none) - local.get $5 + f64.load + local.set $11 + local.get $6 + local.get $9 + i32.const 2 + i32.shl + i32.add + local.get $11 + local.get $11 + f64.sub + f64.const 0 + f64.eq + if (result i32) + local.get $11 + i32.trunc_f64_s + else + i32.const 0 + end + i32.store + local.get $9 i32.const 1 i32.add - local.set $5 + local.set $9 br $for-loop|0 end end - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer ) - (func $std/typedarray/testArrayForEach<~lib/typedarray/Uint16Array,u16> - (local $0 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 - i32.const 0 - global.set $std/typedarray/forEachCallCount - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 3 - call $~lib/typedarray/Uint16Array#constructor - local.tee $0 - i32.store - local.get $0 - global.set $std/typedarray/forEachSelf + (func $~lib/typedarray/Int32Array#set<~lib/typedarray/Uint8Array> (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.get $0 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 + local.set $5 local.get $1 + local.set $4 + local.get $2 + local.set $3 i32.const 0 - global.get $std/typedarray/forEachValues - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $1 + drop + local.get $3 i32.const 0 - call $~lib/array/Array#__get - i32.const 65535 - i32.and - call $~lib/typedarray/Uint16Array#__set - local.get $0 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 1 - global.get $std/typedarray/forEachValues - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $1 - i32.const 1 - call $~lib/array/Array#__get - i32.const 65535 - i32.and - call $~lib/typedarray/Uint16Array#__set - local.get $0 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 2 - global.get $std/typedarray/forEachValues - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $1 - i32.const 2 - call $~lib/array/Array#__get - i32.const 65535 - i32.and - call $~lib/typedarray/Uint16Array#__set - local.get $0 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 5600 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $1 - call $~lib/typedarray/Uint16Array#forEach - global.get $std/typedarray/forEachCallCount - i32.const 3 - i32.eq - i32.eqz + i32.lt_s if - i32.const 0 - i32.const 544 - i32.const 518 - i32.const 3 + i32.const 336 + i32.const 608 + i32.const 1864 + i32.const 19 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/testArrayForEach<~lib/typedarray/Int32Array,i32>~anonymous|0 (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 - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $std/typedarray/forEachValues - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store local.get $4 - local.get $1 - call $~lib/array/Array#__get - local.set $3 - local.get $0 + call $~lib/typedarray/Uint8Array#get:length local.get $3 - i32.eq - i32.eqz + i32.add + local.get $5 + call $~lib/typedarray/Int32Array#get:length + i32.gt_s if - i32.const 0 - i32.const 544 - i32.const 513 - i32.const 5 + i32.const 336 + i32.const 608 + i32.const 1865 + i32.const 47 call $~lib/builtins/abort unreachable end - local.get $1 - global.get $std/typedarray/forEachCallCount + i32.const 1 + i32.const 1 i32.eq - i32.eqz - if + if (result i32) + i32.const 2 + i32.const 0 + i32.eq + else i32.const 0 - i32.const 544 - i32.const 514 - i32.const 5 - call $~lib/builtins/abort - unreachable end - global.get $std/typedarray/forEachSelf - local.get $2 - i32.eq - i32.eqz - if + if (result i32) + i32.const 0 + if (result i32) + i32.const 0 + else + i32.const 0 + end + i32.eqz + else i32.const 0 - i32.const 544 - i32.const 515 - 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/Int32Array#forEach (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 - 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 - global.get $~lib/memory/__stack_pointer - local.get $0 - local.tee $3 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - local.tee $2 - i32.store offset=4 - local.get $3 + drop + local.get $5 i32.load offset=4 - local.set $4 - i32.const 0 - local.set $5 local.get $3 - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=8 - local.get $8 - call $~lib/typedarray/Int32Array#get:length + i32.const 2 + i32.shl + i32.add local.set $6 + local.get $4 + i32.load offset=4 + local.set $7 + local.get $4 + call $~lib/typedarray/Uint8Array#get:length + local.set $8 + i32.const 0 + local.set $9 loop $for-loop|0 - local.get $5 - local.get $6 + local.get $9 + local.get $8 i32.lt_s - local.set $7 - local.get $7 + local.set $10 + local.get $10 if - local.get $4 - local.get $5 + i32.const 0 + drop + i32.const 0 + if (result i32) + i32.const 0 + i32.eqz + else + i32.const 0 + end + drop + i32.const 0 + if (result i32) + i32.const 0 + i32.eqz + else + i32.const 0 + end + drop + local.get $6 + local.get $9 i32.const 2 i32.shl i32.add - i32.load - local.get $5 - local.get $3 - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=12 - local.get $8 - i32.const 3 - global.set $~argumentsLength - local.get $2 - i32.load - call_indirect (type $i32_i32_i32_=>_none) - local.get $5 + local.get $7 + local.get $9 + i32.const 0 + i32.shl + i32.add + i32.load8_u + i32.store + local.get $9 i32.const 1 i32.add - local.set $5 + local.set $9 br $for-loop|0 end end - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer ) - (func $std/typedarray/testArrayForEach<~lib/typedarray/Int32Array,i32> - (local $0 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 - i32.const 0 - global.set $std/typedarray/forEachCallCount - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 3 - call $~lib/typedarray/Int32Array#constructor - local.tee $0 - i32.store - local.get $0 - global.set $std/typedarray/forEachSelf + (func $~lib/typedarray/Int32Array#set<~lib/typedarray/Int16Array> (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.get $0 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 + local.set $5 local.get $1 + local.set $4 + local.get $2 + local.set $3 i32.const 0 - global.get $std/typedarray/forEachValues - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $1 + drop + local.get $3 i32.const 0 - call $~lib/array/Array#__get - call $~lib/typedarray/Int32Array#__set - local.get $0 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 1 - global.get $std/typedarray/forEachValues - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $1 - i32.const 1 - call $~lib/array/Array#__get - call $~lib/typedarray/Int32Array#__set - local.get $0 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 2 - global.get $std/typedarray/forEachValues - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $1 - i32.const 2 - call $~lib/array/Array#__get - call $~lib/typedarray/Int32Array#__set - local.get $0 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 5632 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $1 - call $~lib/typedarray/Int32Array#forEach - global.get $std/typedarray/forEachCallCount - i32.const 3 - i32.eq - i32.eqz + i32.lt_s if - i32.const 0 - i32.const 544 - i32.const 518 - i32.const 3 + i32.const 336 + i32.const 608 + i32.const 1864 + i32.const 19 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/testArrayForEach<~lib/typedarray/Uint32Array,u32>~anonymous|0 (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 - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $std/typedarray/forEachValues - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store local.get $4 - local.get $1 - call $~lib/array/Array#__get - local.set $3 - local.get $0 + call $~lib/typedarray/Int16Array#get:length local.get $3 - i32.eq - i32.eqz + i32.add + local.get $5 + call $~lib/typedarray/Int32Array#get:length + i32.gt_s if - i32.const 0 - i32.const 544 - i32.const 513 - i32.const 5 + i32.const 336 + i32.const 608 + i32.const 1865 + i32.const 47 call $~lib/builtins/abort unreachable end - local.get $1 - global.get $std/typedarray/forEachCallCount + i32.const 1 + i32.const 1 i32.eq - i32.eqz - if + if (result i32) + i32.const 2 + i32.const 1 + i32.eq + else i32.const 0 - i32.const 544 - i32.const 514 - i32.const 5 - call $~lib/builtins/abort - unreachable end - global.get $std/typedarray/forEachSelf - local.get $2 - i32.eq - i32.eqz - if + if (result i32) + i32.const 0 + if (result i32) + i32.const 1 + else + i32.const 0 + end + i32.eqz + else i32.const 0 - i32.const 544 - i32.const 515 - 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 + drop + local.get $5 + i32.load offset=4 + local.get $3 + i32.const 2 + i32.shl i32.add - global.set $~lib/memory/__stack_pointer + local.set $6 + local.get $4 + i32.load offset=4 + local.set $7 + local.get $4 + call $~lib/typedarray/Int16Array#get:length + local.set $8 + i32.const 0 + local.set $9 + loop $for-loop|0 + local.get $9 + local.get $8 + i32.lt_s + local.set $10 + local.get $10 + if + i32.const 0 + drop + i32.const 0 + if (result i32) + i32.const 0 + i32.eqz + else + i32.const 0 + end + drop + i32.const 0 + if (result i32) + i32.const 0 + i32.eqz + else + i32.const 0 + end + drop + local.get $6 + local.get $9 + i32.const 2 + i32.shl + i32.add + local.get $7 + local.get $9 + i32.const 1 + i32.shl + i32.add + i32.load16_s + i32.store + local.get $9 + i32.const 1 + i32.add + local.set $9 + br $for-loop|0 + end + end ) - (func $~lib/typedarray/Uint32Array#forEach (param $0 i32) (param $1 i32) - (local $2 i32) + (func $~lib/typedarray/Int32Array#set<~lib/array/Array> (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) - 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 - global.get $~lib/memory/__stack_pointer + (local $9 i32) + (local $10 i32) local.get $0 - local.tee $3 - i32.store - global.get $~lib/memory/__stack_pointer + local.set $5 local.get $1 - local.tee $2 - i32.store offset=4 - local.get $3 - i32.load offset=4 local.set $4 + local.get $2 + local.set $3 i32.const 0 - local.set $5 + drop local.get $3 - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=8 - local.get $8 - call $~lib/typedarray/Uint32Array#get:length + i32.const 0 + i32.lt_s + if + i32.const 336 + i32.const 608 + i32.const 1864 + i32.const 19 + call $~lib/builtins/abort + unreachable + end + local.get $4 + call $~lib/array/Array#get:length + local.get $3 + i32.add + local.get $5 + call $~lib/typedarray/Int32Array#get:length + i32.gt_s + if + i32.const 336 + i32.const 608 + i32.const 1865 + i32.const 47 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + i32.const 1 + i32.eq + if (result i32) + i32.const 2 + i32.const 0 + i32.eq + else + i32.const 0 + end + if (result i32) + i32.const 0 + if (result i32) + i32.const 1 + else + i32.const 0 + end + i32.eqz + else + i32.const 0 + end + drop + local.get $5 + i32.load offset=4 + local.get $3 + i32.const 2 + i32.shl + i32.add local.set $6 + local.get $4 + i32.load offset=4 + local.set $7 + local.get $4 + call $~lib/array/Array#get:length + local.set $8 + i32.const 0 + local.set $9 loop $for-loop|0 - local.get $5 - local.get $6 + local.get $9 + local.get $8 i32.lt_s - local.set $7 - local.get $7 + local.set $10 + local.get $10 if - local.get $4 - local.get $5 + i32.const 0 + drop + i32.const 0 + if (result i32) + i32.const 0 + i32.eqz + else + i32.const 0 + end + drop + i32.const 0 + if (result i32) + i32.const 0 + i32.eqz + else + i32.const 0 + end + drop + local.get $6 + local.get $9 i32.const 2 i32.shl i32.add - i32.load - local.get $5 - local.get $3 - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=12 - local.get $8 - i32.const 3 - global.set $~argumentsLength - local.get $2 - i32.load - call_indirect (type $i32_i32_i32_=>_none) - local.get $5 + local.get $7 + local.get $9 + i32.const 0 + i32.shl + i32.add + i32.load8_s + i32.store + local.get $9 i32.const 1 i32.add - local.set $5 + local.set $9 br $for-loop|0 end end - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer ) - (func $std/typedarray/testArrayForEach<~lib/typedarray/Uint32Array,u32> - (local $0 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 - i32.const 0 - global.set $std/typedarray/forEachCallCount - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 3 - call $~lib/typedarray/Uint32Array#constructor - local.tee $0 - i32.store - local.get $0 - global.set $std/typedarray/forEachSelf + (func $~lib/typedarray/Uint32Array#set<~lib/array/Array> (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) local.get $0 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 + local.set $5 local.get $1 + local.set $4 + local.get $2 + local.set $3 i32.const 0 - global.get $std/typedarray/forEachValues - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $1 + drop + local.get $3 i32.const 0 - call $~lib/array/Array#__get - call $~lib/typedarray/Uint32Array#__set - local.get $0 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 1 - global.get $std/typedarray/forEachValues - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $1 - i32.const 1 - call $~lib/array/Array#__get - call $~lib/typedarray/Uint32Array#__set - local.get $0 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 2 - global.get $std/typedarray/forEachValues - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $1 - i32.const 2 - call $~lib/array/Array#__get - call $~lib/typedarray/Uint32Array#__set - local.get $0 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 5664 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $1 - call $~lib/typedarray/Uint32Array#forEach - global.get $std/typedarray/forEachCallCount - i32.const 3 - i32.eq - i32.eqz + i32.lt_s if - i32.const 0 - i32.const 544 - i32.const 518 - i32.const 3 + i32.const 336 + i32.const 608 + i32.const 1864 + i32.const 19 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/testArrayForEach<~lib/typedarray/Int64Array,i64>~anonymous|0 (param $0 i64) (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 - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $std/typedarray/forEachValues - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store local.get $4 - local.get $1 - call $~lib/array/Array#__get - local.set $3 - local.get $0 + call $~lib/array/Array#get:length local.get $3 - i64.extend_i32_s - i64.eq - i32.eqz + i32.add + local.get $5 + call $~lib/typedarray/Uint32Array#get:length + i32.gt_s if - i32.const 0 - i32.const 544 - i32.const 513 - i32.const 5 + i32.const 336 + i32.const 608 + i32.const 1865 + i32.const 47 call $~lib/builtins/abort unreachable end - local.get $1 - global.get $std/typedarray/forEachCallCount + i32.const 1 + i32.const 1 i32.eq - i32.eqz - if + if (result i32) + i32.const 2 + i32.const 2 + i32.eq + else i32.const 0 - i32.const 544 - i32.const 514 - i32.const 5 - call $~lib/builtins/abort - unreachable end - global.get $std/typedarray/forEachSelf - local.get $2 - i32.eq - i32.eqz - if + if (result i32) + i32.const 0 + if (result i32) + i32.const 1 + else + i32.const 0 + end + i32.eqz + else i32.const 0 - i32.const 544 - i32.const 515 - i32.const 5 - call $~lib/builtins/abort - unreachable end - global.get $std/typedarray/forEachCallCount - i32.const 1 + drop + local.get $5 + i32.load offset=4 + local.get $3 + i32.const 2 + i32.shl i32.add - global.set $std/typedarray/forEachCallCount - global.get $~lib/memory/__stack_pointer - i32.const 4 + local.get $4 + i32.load offset=4 + local.get $4 + i32.load offset=8 + call $~lib/memory/memory.copy + ) + (func $~lib/array/Array#get:length (param $0 i32) (result i32) + local.get $0 + i32.load offset=12 + ) + (func $~lib/typedarray/Uint32Array#__uget (param $0 i32) (param $1 i32) (result i32) + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 2 + i32.shl i32.add - global.set $~lib/memory/__stack_pointer + i32.load ) - (func $~lib/typedarray/Int64Array#forEach (param $0 i32) (param $1 i32) - (local $2 i32) + (func $~lib/array/Array#__uget (param $0 i32) (param $1 i32) (result i32) + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 2 + i32.shl + i32.add + i32.load + ) + (func $~lib/typedarray/Uint32Array#set<~lib/array/Array> (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) - 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 - global.get $~lib/memory/__stack_pointer + (local $9 i32) + (local $10 i32) + (local $11 f32) local.get $0 - local.tee $3 - i32.store - global.get $~lib/memory/__stack_pointer + local.set $5 local.get $1 - local.tee $2 - i32.store offset=4 - local.get $3 - i32.load offset=4 local.set $4 + local.get $2 + local.set $3 i32.const 0 - local.set $5 + drop local.get $3 - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=8 - local.get $8 - call $~lib/typedarray/Int64Array#get:length + i32.const 0 + i32.lt_s + if + i32.const 336 + i32.const 608 + i32.const 1864 + i32.const 19 + call $~lib/builtins/abort + unreachable + end + local.get $4 + call $~lib/array/Array#get:length + local.get $3 + i32.add + local.get $5 + call $~lib/typedarray/Uint32Array#get:length + i32.gt_s + if + i32.const 336 + i32.const 608 + i32.const 1865 + i32.const 47 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + i32.const 0 + i32.eq + if (result i32) + i32.const 2 + i32.const 2 + i32.eq + else + i32.const 0 + end + if (result i32) + i32.const 0 + if (result i32) + i32.const 0 + else + i32.const 0 + end + i32.eqz + else + i32.const 0 + end + drop + local.get $5 + i32.load offset=4 + local.get $3 + i32.const 2 + i32.shl + i32.add local.set $6 + local.get $4 + i32.load offset=4 + local.set $7 + local.get $4 + call $~lib/array/Array#get:length + local.set $8 + i32.const 0 + local.set $9 loop $for-loop|0 - local.get $5 - local.get $6 + local.get $9 + local.get $8 i32.lt_s - local.set $7 - local.get $7 + local.set $10 + local.get $10 if - local.get $4 - local.get $5 - i32.const 3 + i32.const 0 + drop + i32.const 1 + if (result i32) + i32.const 0 + i32.eqz + else + i32.const 0 + end + drop + local.get $7 + local.get $9 + i32.const 2 i32.shl i32.add - i64.load - local.get $5 - local.get $3 - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=12 - local.get $8 - i32.const 3 - global.set $~argumentsLength - local.get $2 - i32.load - call_indirect (type $i64_i32_i32_=>_none) - local.get $5 + f32.load + local.set $11 + local.get $6 + local.get $9 + i32.const 2 + i32.shl + i32.add + local.get $11 + local.get $11 + f32.sub + f32.const 0 + f32.eq + if (result i32) + local.get $11 + i32.trunc_f32_u + else + i32.const 0 + end + i32.store + local.get $9 i32.const 1 i32.add - local.set $5 + local.set $9 br $for-loop|0 end end - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer ) - (func $std/typedarray/testArrayForEach<~lib/typedarray/Int64Array,i64> - (local $0 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 - i32.const 0 - global.set $std/typedarray/forEachCallCount - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 3 - call $~lib/typedarray/Int64Array#constructor - local.tee $0 - i32.store - local.get $0 - global.set $std/typedarray/forEachSelf + (func $~lib/typedarray/Uint32Array#set<~lib/typedarray/Int64Array> (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.get $0 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 + local.set $5 local.get $1 + local.set $4 + local.get $2 + local.set $3 i32.const 0 - global.get $std/typedarray/forEachValues - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $1 + drop + local.get $3 i32.const 0 - call $~lib/array/Array#__get - i64.extend_i32_s - call $~lib/typedarray/Int64Array#__set - local.get $0 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 1 - global.get $std/typedarray/forEachValues - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $1 - i32.const 1 - call $~lib/array/Array#__get - i64.extend_i32_s - call $~lib/typedarray/Int64Array#__set - local.get $0 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 2 - global.get $std/typedarray/forEachValues - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $1 - i32.const 2 - call $~lib/array/Array#__get - i64.extend_i32_s - call $~lib/typedarray/Int64Array#__set - local.get $0 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 5696 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $1 - call $~lib/typedarray/Int64Array#forEach - global.get $std/typedarray/forEachCallCount - i32.const 3 - i32.eq - i32.eqz + i32.lt_s if - i32.const 0 - i32.const 544 - i32.const 518 - i32.const 3 + i32.const 336 + i32.const 608 + i32.const 1864 + i32.const 19 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/testArrayForEach<~lib/typedarray/Uint64Array,u64>~anonymous|0 (param $0 i64) (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 - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $std/typedarray/forEachValues - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store local.get $4 - local.get $1 - call $~lib/array/Array#__get - local.set $3 - local.get $0 + call $~lib/typedarray/Int64Array#get:length local.get $3 - i64.extend_i32_s - i64.eq - i32.eqz + i32.add + local.get $5 + call $~lib/typedarray/Uint32Array#get:length + i32.gt_s if - i32.const 0 - i32.const 544 - i32.const 513 - i32.const 5 + i32.const 336 + i32.const 608 + i32.const 1865 + i32.const 47 call $~lib/builtins/abort unreachable end - local.get $1 - global.get $std/typedarray/forEachCallCount + i32.const 1 + i32.const 1 i32.eq - i32.eqz - if + if (result i32) + i32.const 2 + i32.const 3 + i32.eq + else i32.const 0 - i32.const 544 - i32.const 514 - i32.const 5 - call $~lib/builtins/abort - unreachable end - global.get $std/typedarray/forEachSelf - local.get $2 - i32.eq - i32.eqz - if + if (result i32) + i32.const 0 + if (result i32) + i32.const 1 + else + i32.const 0 + end + i32.eqz + else i32.const 0 - i32.const 544 - i32.const 515 - 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/Uint64Array#forEach (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 - 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 - global.get $~lib/memory/__stack_pointer - local.get $0 - local.tee $3 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - local.tee $2 - i32.store offset=4 - local.get $3 + drop + local.get $5 i32.load offset=4 - local.set $4 - i32.const 0 - local.set $5 local.get $3 - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=8 - local.get $8 - call $~lib/typedarray/Uint64Array#get:length + i32.const 2 + i32.shl + i32.add local.set $6 + local.get $4 + i32.load offset=4 + local.set $7 + local.get $4 + call $~lib/typedarray/Int64Array#get:length + local.set $8 + i32.const 0 + local.set $9 loop $for-loop|0 - local.get $5 - local.get $6 + local.get $9 + local.get $8 i32.lt_s - local.set $7 - local.get $7 + local.set $10 + local.get $10 if - local.get $4 - local.get $5 + i32.const 0 + drop + i32.const 0 + if (result i32) + i32.const 0 + i32.eqz + else + i32.const 0 + end + drop + i32.const 0 + if (result i32) + i32.const 0 + i32.eqz + else + i32.const 0 + end + drop + local.get $6 + local.get $9 + i32.const 2 + i32.shl + i32.add + local.get $7 + local.get $9 i32.const 3 i32.shl i32.add i64.load - local.get $5 - local.get $3 - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=12 - local.get $8 - i32.const 3 - global.set $~argumentsLength - local.get $2 - i32.load - call_indirect (type $i64_i32_i32_=>_none) - local.get $5 + i64.store32 + local.get $9 i32.const 1 i32.add - local.set $5 + local.set $9 br $for-loop|0 end end - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer ) - (func $std/typedarray/testArrayForEach<~lib/typedarray/Uint64Array,u64> - (local $0 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 - i32.const 0 - global.set $std/typedarray/forEachCallCount - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 3 - call $~lib/typedarray/Uint64Array#constructor - local.tee $0 - i32.store - local.get $0 - global.set $std/typedarray/forEachSelf + (func $~lib/typedarray/Uint32Array#set<~lib/array/Array> (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 f64) local.get $0 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 + local.set $5 local.get $1 + local.set $4 + local.get $2 + local.set $3 i32.const 0 - global.get $std/typedarray/forEachValues - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $1 + drop + local.get $3 i32.const 0 - call $~lib/array/Array#__get - i64.extend_i32_s - call $~lib/typedarray/Uint64Array#__set - local.get $0 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 1 - global.get $std/typedarray/forEachValues - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $1 - i32.const 1 - call $~lib/array/Array#__get - i64.extend_i32_s - call $~lib/typedarray/Uint64Array#__set - local.get $0 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 2 - global.get $std/typedarray/forEachValues - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $1 - i32.const 2 - call $~lib/array/Array#__get - i64.extend_i32_s - call $~lib/typedarray/Uint64Array#__set - local.get $0 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 5728 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $1 - call $~lib/typedarray/Uint64Array#forEach - global.get $std/typedarray/forEachCallCount - i32.const 3 - i32.eq - i32.eqz + i32.lt_s if - i32.const 0 - i32.const 544 - i32.const 518 - i32.const 3 + i32.const 336 + i32.const 608 + i32.const 1864 + i32.const 19 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/testArrayForEach<~lib/typedarray/Float32Array,f32>~anonymous|0 (param $0 f32) (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 - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $std/typedarray/forEachValues - local.set $4 - global.get $~lib/memory/__stack_pointer local.get $4 - i32.store - local.get $4 - local.get $1 - call $~lib/array/Array#__get - local.set $3 - local.get $0 + call $~lib/array/Array#get:length local.get $3 - f32.convert_i32_s - f32.eq - i32.eqz + i32.add + local.get $5 + call $~lib/typedarray/Uint32Array#get:length + i32.gt_s if - i32.const 0 - i32.const 544 - i32.const 513 - i32.const 5 + i32.const 336 + i32.const 608 + i32.const 1865 + i32.const 47 call $~lib/builtins/abort unreachable end - local.get $1 - global.get $std/typedarray/forEachCallCount + i32.const 1 + i32.const 0 i32.eq - i32.eqz - if + if (result i32) + i32.const 2 + i32.const 3 + i32.eq + else i32.const 0 - i32.const 544 - i32.const 514 - i32.const 5 - call $~lib/builtins/abort - unreachable end - global.get $std/typedarray/forEachSelf - local.get $2 - i32.eq - i32.eqz - if + if (result i32) + i32.const 0 + if (result i32) + i32.const 0 + else + i32.const 0 + end + i32.eqz + else i32.const 0 - i32.const 544 - i32.const 515 - 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 + drop + local.get $5 + i32.load offset=4 + local.get $3 + i32.const 2 + i32.shl i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/typedarray/Float32Array#forEach (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 - 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 - global.get $~lib/memory/__stack_pointer - local.get $0 - local.tee $3 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - local.tee $2 - i32.store offset=4 - local.get $3 + local.set $6 + local.get $4 i32.load offset=4 - local.set $4 - i32.const 0 - local.set $5 - local.get $3 + local.set $7 + local.get $4 + call $~lib/array/Array#get:length local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=8 - local.get $8 - call $~lib/typedarray/Float32Array#get:length - local.set $6 + i32.const 0 + local.set $9 loop $for-loop|0 - local.get $5 - local.get $6 + local.get $9 + local.get $8 i32.lt_s - local.set $7 - local.get $7 + local.set $10 + local.get $10 if - local.get $4 - local.get $5 + i32.const 0 + drop + i32.const 1 + if (result i32) + i32.const 0 + i32.eqz + else + i32.const 0 + end + drop + local.get $7 + local.get $9 + i32.const 3 + i32.shl + i32.add + f64.load + local.set $11 + local.get $6 + local.get $9 i32.const 2 i32.shl i32.add - f32.load - local.get $5 - local.get $3 - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=12 - local.get $8 - i32.const 3 - global.set $~argumentsLength - local.get $2 - i32.load - call_indirect (type $f32_i32_i32_=>_none) - local.get $5 + local.get $11 + local.get $11 + f64.sub + f64.const 0 + f64.eq + if (result i32) + local.get $11 + i32.trunc_f64_u + else + i32.const 0 + end + i32.store + local.get $9 i32.const 1 i32.add - local.set $5 + local.set $9 br $for-loop|0 end end - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer ) - (func $std/typedarray/testArrayForEach<~lib/typedarray/Float32Array,f32> - (local $0 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 - i32.const 0 - global.set $std/typedarray/forEachCallCount - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 3 - call $~lib/typedarray/Float32Array#constructor - local.tee $0 - i32.store - local.get $0 - global.set $std/typedarray/forEachSelf + (func $~lib/typedarray/Uint32Array#set<~lib/typedarray/Uint8Array> (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.get $0 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 + local.set $5 local.get $1 + local.set $4 + local.get $2 + local.set $3 i32.const 0 - global.get $std/typedarray/forEachValues - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $1 + drop + local.get $3 i32.const 0 - call $~lib/array/Array#__get - f32.convert_i32_s - call $~lib/typedarray/Float32Array#__set - local.get $0 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 1 - global.get $std/typedarray/forEachValues - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $1 - i32.const 1 - call $~lib/array/Array#__get - f32.convert_i32_s - call $~lib/typedarray/Float32Array#__set - local.get $0 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 2 - global.get $std/typedarray/forEachValues - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $1 - i32.const 2 - call $~lib/array/Array#__get - f32.convert_i32_s - call $~lib/typedarray/Float32Array#__set - local.get $0 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 5760 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $1 - call $~lib/typedarray/Float32Array#forEach - global.get $std/typedarray/forEachCallCount - i32.const 3 - i32.eq - i32.eqz + i32.lt_s if - i32.const 0 - i32.const 544 - i32.const 518 - i32.const 3 + i32.const 336 + i32.const 608 + i32.const 1864 + i32.const 19 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/testArrayForEach<~lib/typedarray/Float64Array,f64>~anonymous|0 (param $0 f64) (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 - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $std/typedarray/forEachValues - local.set $4 - global.get $~lib/memory/__stack_pointer local.get $4 - i32.store - local.get $4 - local.get $1 - call $~lib/array/Array#__get - local.set $3 - local.get $0 + call $~lib/typedarray/Uint8Array#get:length local.get $3 - f64.convert_i32_s - f64.eq - i32.eqz + i32.add + local.get $5 + call $~lib/typedarray/Uint32Array#get:length + i32.gt_s if - i32.const 0 - i32.const 544 - i32.const 513 - i32.const 5 + i32.const 336 + i32.const 608 + i32.const 1865 + i32.const 47 call $~lib/builtins/abort unreachable end - local.get $1 - global.get $std/typedarray/forEachCallCount + i32.const 1 + i32.const 1 i32.eq - i32.eqz - if + if (result i32) + i32.const 2 + i32.const 0 + i32.eq + else i32.const 0 - i32.const 544 - i32.const 514 - i32.const 5 - call $~lib/builtins/abort - unreachable end - global.get $std/typedarray/forEachSelf - local.get $2 - i32.eq - i32.eqz - if + if (result i32) + i32.const 0 + if (result i32) + i32.const 0 + else + i32.const 0 + end + i32.eqz + else i32.const 0 - i32.const 544 - i32.const 515 - 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 + drop + local.get $5 + i32.load offset=4 + local.get $3 + i32.const 2 + i32.shl i32.add - global.set $~lib/memory/__stack_pointer + local.set $6 + local.get $4 + i32.load offset=4 + local.set $7 + local.get $4 + call $~lib/typedarray/Uint8Array#get:length + local.set $8 + i32.const 0 + local.set $9 + loop $for-loop|0 + local.get $9 + local.get $8 + i32.lt_s + local.set $10 + local.get $10 + if + i32.const 0 + drop + i32.const 0 + if (result i32) + i32.const 0 + i32.eqz + else + i32.const 0 + end + drop + i32.const 0 + if (result i32) + i32.const 0 + i32.eqz + else + i32.const 0 + end + drop + local.get $6 + local.get $9 + i32.const 2 + i32.shl + i32.add + local.get $7 + local.get $9 + i32.const 0 + i32.shl + i32.add + i32.load8_u + i32.store + local.get $9 + i32.const 1 + i32.add + local.set $9 + br $for-loop|0 + end + end ) - (func $~lib/typedarray/Float64Array#forEach (param $0 i32) (param $1 i32) - (local $2 i32) + (func $~lib/typedarray/Uint32Array#set<~lib/typedarray/Int16Array> (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) - 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 - global.get $~lib/memory/__stack_pointer + (local $9 i32) + (local $10 i32) local.get $0 - local.tee $3 - i32.store - global.get $~lib/memory/__stack_pointer + local.set $5 local.get $1 - local.tee $2 - i32.store offset=4 - local.get $3 - i32.load offset=4 local.set $4 + local.get $2 + local.set $3 i32.const 0 - local.set $5 + drop local.get $3 - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=8 - local.get $8 - call $~lib/typedarray/Float64Array#get:length + i32.const 0 + i32.lt_s + if + i32.const 336 + i32.const 608 + i32.const 1864 + i32.const 19 + call $~lib/builtins/abort + unreachable + end + local.get $4 + call $~lib/typedarray/Int16Array#get:length + local.get $3 + i32.add + local.get $5 + call $~lib/typedarray/Uint32Array#get:length + i32.gt_s + if + i32.const 336 + i32.const 608 + i32.const 1865 + i32.const 47 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + i32.const 1 + i32.eq + if (result i32) + i32.const 2 + i32.const 1 + i32.eq + else + i32.const 0 + end + if (result i32) + i32.const 0 + if (result i32) + i32.const 1 + else + i32.const 0 + end + i32.eqz + else + i32.const 0 + end + drop + local.get $5 + i32.load offset=4 + local.get $3 + i32.const 2 + i32.shl + i32.add local.set $6 + local.get $4 + i32.load offset=4 + local.set $7 + local.get $4 + call $~lib/typedarray/Int16Array#get:length + local.set $8 + i32.const 0 + local.set $9 loop $for-loop|0 - local.get $5 - local.get $6 + local.get $9 + local.get $8 i32.lt_s - local.set $7 - local.get $7 + local.set $10 + local.get $10 if - local.get $4 - local.get $5 - i32.const 3 + i32.const 0 + drop + i32.const 0 + if (result i32) + i32.const 0 + i32.eqz + else + i32.const 0 + end + drop + i32.const 0 + if (result i32) + i32.const 0 + i32.eqz + else + i32.const 0 + end + drop + local.get $6 + local.get $9 + i32.const 2 i32.shl i32.add - f64.load - local.get $5 - local.get $3 - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=12 - local.get $8 - i32.const 3 - global.set $~argumentsLength - local.get $2 - i32.load - call_indirect (type $f64_i32_i32_=>_none) - local.get $5 + local.get $7 + local.get $9 i32.const 1 + i32.shl i32.add - local.set $5 + i32.load16_s + i32.store + local.get $9 + i32.const 1 + i32.add + local.set $9 br $for-loop|0 end end - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer ) - (func $std/typedarray/testArrayForEach<~lib/typedarray/Float64Array,f64> - (local $0 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 - i32.const 0 - global.set $std/typedarray/forEachCallCount - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 3 - call $~lib/typedarray/Float64Array#constructor - local.tee $0 - i32.store - local.get $0 - global.set $std/typedarray/forEachSelf + (func $~lib/typedarray/Uint32Array#set<~lib/array/Array> (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.get $0 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 + local.set $5 local.get $1 + local.set $4 + local.get $2 + local.set $3 i32.const 0 - global.get $std/typedarray/forEachValues - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $1 + drop + local.get $3 i32.const 0 - call $~lib/array/Array#__get - f64.convert_i32_s - call $~lib/typedarray/Float64Array#__set - local.get $0 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 + i32.lt_s + if + i32.const 336 + i32.const 608 + i32.const 1864 + i32.const 19 + call $~lib/builtins/abort + unreachable + end + local.get $4 + call $~lib/array/Array#get:length + local.get $3 + i32.add + local.get $5 + call $~lib/typedarray/Uint32Array#get:length + i32.gt_s + if + i32.const 336 + i32.const 608 + i32.const 1865 + i32.const 47 + call $~lib/builtins/abort + unreachable + end i32.const 1 - global.get $std/typedarray/forEachValues - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $1 i32.const 1 - call $~lib/array/Array#__get - f64.convert_i32_s - call $~lib/typedarray/Float64Array#__set - local.get $0 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 2 - global.get $std/typedarray/forEachValues - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $1 - i32.const 2 - call $~lib/array/Array#__get - f64.convert_i32_s - call $~lib/typedarray/Float64Array#__set - local.get $0 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 5792 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $1 - call $~lib/typedarray/Float64Array#forEach - global.get $std/typedarray/forEachCallCount - i32.const 3 i32.eq - i32.eqz - if + if (result i32) + i32.const 2 + i32.const 0 + i32.eq + else i32.const 0 - i32.const 544 - i32.const 518 - i32.const 3 - call $~lib/builtins/abort - unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 12 + if (result i32) + i32.const 0 + if (result i32) + i32.const 1 + else + i32.const 0 + end + i32.eqz + else + i32.const 0 + end + drop + local.get $5 + i32.load offset=4 + local.get $3 + i32.const 2 + i32.shl i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/typedarray/Int8Array#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) - (local $8 i32) - (local $9 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 - global.get $~lib/memory/__stack_pointer - local.get $0 - local.tee $1 - i32.store - local.get $1 + local.set $6 + local.get $4 i32.load offset=4 - local.set $2 + local.set $7 + local.get $4 + call $~lib/array/Array#get:length + local.set $8 i32.const 0 - local.set $3 - local.get $1 local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - call $~lib/typedarray/Int8Array#get:length - i32.const 1 - i32.sub - local.set $4 loop $for-loop|0 - local.get $3 - local.get $4 - i32.lt_u - local.set $5 - local.get $5 + local.get $9 + local.get $8 + i32.lt_s + local.set $10 + local.get $10 if - local.get $2 - local.get $3 i32.const 0 + drop + i32.const 0 + if (result i32) + i32.const 0 + i32.eqz + else + i32.const 0 + end + drop + i32.const 0 + if (result i32) + i32.const 0 + i32.eqz + else + i32.const 0 + end + drop + local.get $6 + local.get $9 + i32.const 2 i32.shl i32.add - local.set $6 - local.get $2 - local.get $4 + local.get $7 + local.get $9 i32.const 0 i32.shl i32.add - local.set $7 - local.get $6 - i32.load8_s - local.set $8 - local.get $6 - local.get $7 i32.load8_s - i32.store8 - local.get $7 - local.get $8 - i32.store8 - local.get $3 + i32.store + local.get $9 i32.const 1 i32.add - local.set $3 - local.get $4 - i32.const 1 - i32.sub - local.set $4 + local.set $9 br $for-loop|0 end end - local.get $1 - local.set $9 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $9 ) - (func $std/typedarray/testArrayReverse<~lib/typedarray/Int8Array,i8> - (local $0 i32) - (local $1 i32) - (local $2 i32) + (func $~lib/typedarray/Int64Array#set<~lib/array/Array> (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 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 - i64.const 0 - i64.store offset=8 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=16 - global.get $~lib/memory/__stack_pointer - global.get $std/typedarray/testArrayReverseValues - local.tee $0 - i32.store + (local $8 i32) + (local $9 i32) + (local $10 i32) local.get $0 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - call $~lib/array/Array#get:length - local.set $1 - global.get $~lib/memory/__stack_pointer - i32.const 0 - local.get $1 - call $~lib/typedarray/Int8Array#constructor - local.tee $2 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 0 + local.set $5 local.get $1 - call $~lib/typedarray/Int8Array#constructor - local.tee $3 - i32.store offset=12 - i32.const 0 local.set $4 - loop $for-loop|0 - local.get $4 - local.get $1 - i32.lt_s - local.set $5 - local.get $5 - if - local.get $2 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - local.get $4 - local.get $0 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=16 - local.get $7 - local.get $4 - call $~lib/array/Array#__get - i32.const 24 - i32.shl - i32.const 24 - i32.shr_s - call $~lib/typedarray/Int8Array#__set - local.get $3 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - local.get $4 - local.get $0 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=16 - local.get $7 - local.get $4 - call $~lib/array/Array#__get - i32.const 24 - i32.shl - i32.const 24 - i32.shr_s - call $~lib/typedarray/Int8Array#__set - local.get $4 - i32.const 1 - i32.add - local.set $4 - br $for-loop|0 - end - end local.get $2 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - call $~lib/typedarray/Int8Array#reverse - drop + local.set $3 i32.const 0 - local.set $4 - loop $for-loop|1 - local.get $4 - local.get $1 - i32.lt_s - local.set $5 - local.get $5 - if - local.get $2 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - local.get $4 - call $~lib/typedarray/Int8Array#__get - local.get $0 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - local.get $1 - i32.const 1 - i32.sub - local.get $4 - i32.sub - call $~lib/array/Array#__get - i32.const 24 - i32.shl - i32.const 24 - i32.shr_s - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 547 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $4 - i32.const 1 - i32.add - local.set $4 - br $for-loop|1 - end - end - global.get $~lib/memory/__stack_pointer + drop local.get $3 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=16 - local.get $7 - i32.const 4 - i32.const 8 - call $~lib/typedarray/Int8Array#subarray - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - call $~lib/typedarray/Int8Array#reverse - local.tee $6 - i32.store offset=20 - local.get $6 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 i32.const 0 - call $~lib/typedarray/Int8Array#__get - i32.const 8 - i32.eq - i32.eqz + i32.lt_s if - i32.const 0 - i32.const 544 - i32.const 552 - i32.const 3 + i32.const 336 + i32.const 608 + i32.const 1864 + i32.const 19 call $~lib/builtins/abort unreachable end - local.get $6 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - i32.const 1 - call $~lib/typedarray/Int8Array#__get - i32.const 7 - i32.eq - i32.eqz + local.get $4 + call $~lib/array/Array#get:length + local.get $3 + i32.add + local.get $5 + call $~lib/typedarray/Int64Array#get:length + i32.gt_s if - i32.const 0 - i32.const 544 - i32.const 553 - i32.const 3 + i32.const 336 + i32.const 608 + i32.const 1865 + i32.const 47 call $~lib/builtins/abort unreachable end - local.get $6 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - i32.const 2 - call $~lib/typedarray/Int8Array#__get - i32.const 6 + i32.const 1 + i32.const 1 i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 554 + if (result i32) i32.const 3 - call $~lib/builtins/abort - unreachable + i32.const 2 + i32.eq + else + i32.const 0 end - local.get $6 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - i32.const 3 - call $~lib/typedarray/Int8Array#__get - i32.const 5 - i32.eq - i32.eqz - if + if (result i32) + i32.const 0 + if (result i32) + i32.const 1 + else + i32.const 0 + end + i32.eqz + else i32.const 0 - i32.const 544 - i32.const 555 - i32.const 3 - call $~lib/builtins/abort - unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 24 + drop + local.get $5 + i32.load offset=4 + local.get $3 + i32.const 3 + i32.shl i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/typedarray/Uint8Array#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) - (local $8 i32) - (local $9 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 - global.get $~lib/memory/__stack_pointer - local.get $0 - local.tee $1 - i32.store - local.get $1 + local.set $6 + local.get $4 i32.load offset=4 - local.set $2 + local.set $7 + local.get $4 + call $~lib/array/Array#get:length + local.set $8 i32.const 0 - local.set $3 - local.get $1 local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - call $~lib/typedarray/Uint8Array#get:length - i32.const 1 - i32.sub - local.set $4 loop $for-loop|0 - local.get $3 - local.get $4 - i32.lt_u - local.set $5 - local.get $5 + local.get $9 + local.get $8 + i32.lt_s + local.set $10 + local.get $10 if - local.get $2 - local.get $3 i32.const 0 - i32.shl - i32.add - local.set $6 - local.get $2 - local.get $4 + drop + i32.const 0 + if (result i32) + i32.const 0 + i32.eqz + else + i32.const 0 + end + drop i32.const 0 + if (result i32) + i32.const 0 + i32.eqz + else + i32.const 0 + end + drop + local.get $6 + local.get $9 + i32.const 3 i32.shl i32.add - local.set $7 - local.get $6 - i32.load8_u - local.set $8 - local.get $6 - local.get $7 - i32.load8_u - i32.store8 local.get $7 - local.get $8 - i32.store8 - local.get $3 - i32.const 1 + local.get $9 + i32.const 2 + i32.shl i32.add - local.set $3 - local.get $4 + i64.load32_s + i64.store + local.get $9 i32.const 1 - i32.sub - local.set $4 + i32.add + local.set $9 br $for-loop|0 end end + ) + (func $~lib/array/Array#get:length (param $0 i32) (result i32) + local.get $0 + i32.load offset=12 + ) + (func $~lib/typedarray/Int64Array#__uget (param $0 i32) (param $1 i32) (result i64) + local.get $0 + i32.load offset=4 local.get $1 - local.set $9 - global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 3 + i32.shl i32.add - global.set $~lib/memory/__stack_pointer - local.get $9 + i64.load ) - (func $~lib/typedarray/Uint8Array#subarray (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/array/Array#__uget (param $0 i32) (param $1 i32) (result i64) + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 3 + i32.shl + i32.add + i64.load + ) + (func $~lib/typedarray/Int64Array#set<~lib/array/Array> (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -34059,471 +29405,331 @@ (local $7 i32) (local $8 i32) (local $9 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 - global.get $~lib/memory/__stack_pointer + (local $10 i32) + (local $11 f32) local.get $0 - local.tee $5 - i32.store + local.set $5 local.get $1 local.set $4 local.get $2 local.set $3 - local.get $5 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - call $~lib/typedarray/Uint8Array#get:length - local.set $6 - local.get $4 + i32.const 0 + drop + local.get $3 i32.const 0 i32.lt_s + if + i32.const 336 + i32.const 608 + i32.const 1864 + i32.const 19 + call $~lib/builtins/abort + unreachable + end + local.get $4 + call $~lib/array/Array#get:length + local.get $3 + i32.add + local.get $5 + call $~lib/typedarray/Int64Array#get:length + i32.gt_s + if + i32.const 336 + i32.const 608 + i32.const 1865 + i32.const 47 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + i32.const 0 + i32.eq if (result i32) - local.get $6 - local.get $4 - i32.add - local.tee $7 + i32.const 3 + i32.const 2 + i32.eq + else i32.const 0 - local.tee $8 - local.get $7 - local.get $8 - i32.gt_s - select + end + if (result i32) + i32.const 0 + if (result i32) + i32.const 0 + else + i32.const 0 + end + i32.eqz else - local.get $4 - local.tee $8 - local.get $6 - local.tee $7 + i32.const 0 + end + drop + local.get $5 + i32.load offset=4 + local.get $3 + i32.const 3 + i32.shl + i32.add + local.set $6 + local.get $4 + i32.load offset=4 + local.set $7 + local.get $4 + call $~lib/array/Array#get:length + local.set $8 + i32.const 0 + local.set $9 + loop $for-loop|0 + local.get $9 local.get $8 - local.get $7 i32.lt_s - select + local.set $10 + local.get $10 + if + i32.const 0 + drop + i32.const 1 + if (result i32) + i32.const 0 + i32.eqz + else + i32.const 0 + end + drop + local.get $7 + local.get $9 + i32.const 2 + i32.shl + i32.add + f32.load + local.set $11 + local.get $6 + local.get $9 + i32.const 3 + i32.shl + i32.add + local.get $11 + local.get $11 + f32.sub + f32.const 0 + f32.eq + if (result i64) + local.get $11 + i64.trunc_f32_s + else + i64.const 0 + end + i64.store + local.get $9 + i32.const 1 + i32.add + local.set $9 + br $for-loop|0 + end end + ) + (func $~lib/typedarray/Int64Array#set<~lib/typedarray/Int64Array> (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $0 + local.set $5 + local.get $1 local.set $4 + local.get $2 + local.set $3 + i32.const 0 + drop local.get $3 i32.const 0 i32.lt_s + if + i32.const 336 + i32.const 608 + i32.const 1864 + i32.const 19 + call $~lib/builtins/abort + unreachable + end + local.get $4 + call $~lib/typedarray/Int64Array#get:length + local.get $3 + i32.add + local.get $5 + call $~lib/typedarray/Int64Array#get:length + i32.gt_s + if + i32.const 336 + i32.const 608 + i32.const 1865 + i32.const 47 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + i32.const 1 + i32.eq if (result i32) - local.get $6 - local.get $3 - i32.add - local.tee $7 + i32.const 3 + i32.const 3 + i32.eq + else i32.const 0 - local.tee $8 - local.get $7 - local.get $8 - i32.gt_s - select + end + if (result i32) + i32.const 0 + if (result i32) + i32.const 1 + else + i32.const 0 + end + i32.eqz else - local.get $3 - local.tee $8 - local.get $6 - local.tee $7 - local.get $8 - local.get $7 - i32.lt_s - select + i32.const 0 end - local.set $3 - local.get $3 - local.tee $7 - local.get $4 - local.tee $8 - local.get $7 - local.get $8 - i32.gt_s - select - local.set $3 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.const 4 - call $~lib/rt/itcms/__new - local.tee $7 - i32.store offset=8 - local.get $5 - i32.load - local.set $8 - local.get $7 - local.get $8 - i32.store - local.get $7 - local.get $8 - i32.const 0 - call $~lib/rt/itcms/__link - local.get $7 + drop local.get $5 i32.load offset=4 - local.get $4 - i32.const 0 - i32.shl - i32.add - i32.store offset=4 - local.get $7 local.get $3 - local.get $4 - i32.sub - i32.const 0 + i32.const 3 i32.shl - i32.store offset=8 - local.get $7 - local.set $9 - global.get $~lib/memory/__stack_pointer - i32.const 12 i32.add - global.set $~lib/memory/__stack_pointer - local.get $9 + local.get $4 + i32.load offset=4 + local.get $4 + i32.load offset=8 + call $~lib/memory/memory.copy ) - (func $std/typedarray/testArrayReverse<~lib/typedarray/Uint8Array,u8> - (local $0 i32) - (local $1 i32) - (local $2 i32) + (func $~lib/typedarray/Int64Array#set<~lib/array/Array> (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 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 - i64.const 0 - i64.store offset=8 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=16 - global.get $~lib/memory/__stack_pointer - global.get $std/typedarray/testArrayReverseValues - local.tee $0 - i32.store + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 f64) local.get $0 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - call $~lib/array/Array#get:length - local.set $1 - global.get $~lib/memory/__stack_pointer - i32.const 0 - local.get $1 - call $~lib/typedarray/Uint8Array#constructor - local.tee $2 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 0 + local.set $5 local.get $1 - call $~lib/typedarray/Uint8Array#constructor - local.tee $3 - i32.store offset=12 - i32.const 0 local.set $4 - loop $for-loop|0 - local.get $4 - local.get $1 - i32.lt_s - local.set $5 - local.get $5 - if - local.get $2 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - local.get $4 - local.get $0 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=16 - local.get $7 - local.get $4 - call $~lib/array/Array#__get - i32.const 255 - i32.and - call $~lib/typedarray/Uint8Array#__set - local.get $3 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - local.get $4 - local.get $0 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=16 - local.get $7 - local.get $4 - call $~lib/array/Array#__get - i32.const 255 - i32.and - call $~lib/typedarray/Uint8Array#__set - local.get $4 - i32.const 1 - i32.add - local.set $4 - br $for-loop|0 - end - end local.get $2 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - call $~lib/typedarray/Uint8Array#reverse + local.set $3 + i32.const 0 drop + local.get $3 i32.const 0 - local.set $4 - loop $for-loop|1 - local.get $4 - local.get $1 - i32.lt_s - local.set $5 - local.get $5 - if - local.get $2 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - local.get $4 - call $~lib/typedarray/Uint8Array#__get - local.get $0 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - local.get $1 - i32.const 1 - i32.sub - local.get $4 - i32.sub - call $~lib/array/Array#__get - i32.const 255 - i32.and - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 547 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $4 - i32.const 1 - i32.add - local.set $4 - br $for-loop|1 - end - end - global.get $~lib/memory/__stack_pointer - local.get $3 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=16 - local.get $7 - i32.const 4 - i32.const 8 - call $~lib/typedarray/Uint8Array#subarray - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - call $~lib/typedarray/Uint8Array#reverse - local.tee $6 - i32.store offset=20 - local.get $6 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - i32.const 0 - call $~lib/typedarray/Uint8Array#__get - i32.const 8 - i32.eq - i32.eqz + i32.lt_s if - i32.const 0 - i32.const 544 - i32.const 552 - i32.const 3 + i32.const 336 + i32.const 608 + i32.const 1864 + i32.const 19 call $~lib/builtins/abort unreachable end - local.get $6 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - i32.const 1 - call $~lib/typedarray/Uint8Array#__get - i32.const 7 - i32.eq - i32.eqz + local.get $4 + call $~lib/array/Array#get:length + local.get $3 + i32.add + local.get $5 + call $~lib/typedarray/Int64Array#get:length + i32.gt_s if - i32.const 0 - i32.const 544 - i32.const 553 - i32.const 3 + i32.const 336 + i32.const 608 + i32.const 1865 + i32.const 47 call $~lib/builtins/abort unreachable end - local.get $6 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - i32.const 2 - call $~lib/typedarray/Uint8Array#__get - i32.const 6 + i32.const 1 + i32.const 0 i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 554 + if (result i32) i32.const 3 - call $~lib/builtins/abort - unreachable + i32.const 3 + i32.eq + else + i32.const 0 end - local.get $6 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - i32.const 3 - call $~lib/typedarray/Uint8Array#__get - i32.const 5 - i32.eq - i32.eqz - if + if (result i32) + i32.const 0 + if (result i32) + i32.const 0 + else + i32.const 0 + end + i32.eqz + else i32.const 0 - i32.const 544 - i32.const 555 - i32.const 3 - call $~lib/builtins/abort - unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 24 + drop + local.get $5 + i32.load offset=4 + local.get $3 + i32.const 3 + i32.shl i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/typedarray/Uint8ClampedArray#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) - (local $8 i32) - (local $9 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 - global.get $~lib/memory/__stack_pointer - local.get $0 - local.tee $1 - i32.store - local.get $1 + local.set $6 + local.get $4 i32.load offset=4 - local.set $2 + local.set $7 + local.get $4 + call $~lib/array/Array#get:length + local.set $8 i32.const 0 - local.set $3 - local.get $1 local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - call $~lib/typedarray/Uint8ClampedArray#get:length - i32.const 1 - i32.sub - local.set $4 loop $for-loop|0 - local.get $3 - local.get $4 - i32.lt_u - local.set $5 - local.get $5 + local.get $9 + local.get $8 + i32.lt_s + local.set $10 + local.get $10 if - local.get $2 - local.get $3 i32.const 0 + drop + i32.const 1 + if (result i32) + i32.const 0 + i32.eqz + else + i32.const 0 + end + drop + local.get $7 + local.get $9 + i32.const 3 i32.shl i32.add - local.set $6 - local.get $2 - local.get $4 - i32.const 0 + f64.load + local.set $11 + local.get $6 + local.get $9 + i32.const 3 i32.shl i32.add - local.set $7 - local.get $6 - i32.load8_u - local.set $8 - local.get $6 - local.get $7 - i32.load8_u - i32.store8 - local.get $7 - local.get $8 - i32.store8 - local.get $3 + local.get $11 + local.get $11 + f64.sub + f64.const 0 + f64.eq + if (result i64) + local.get $11 + i64.trunc_f64_s + else + i64.const 0 + end + i64.store + local.get $9 i32.const 1 i32.add - local.set $3 - local.get $4 - i32.const 1 - i32.sub - local.set $4 + local.set $9 br $for-loop|0 end end - local.get $1 - local.set $9 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $9 ) - (func $~lib/typedarray/Uint8ClampedArray#subarray (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/typedarray/Int64Array#set<~lib/typedarray/Uint8Array> (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -34531,471 +29737,249 @@ (local $7 i32) (local $8 i32) (local $9 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 - global.get $~lib/memory/__stack_pointer + (local $10 i32) local.get $0 - local.tee $5 - i32.store + local.set $5 local.get $1 local.set $4 local.get $2 local.set $3 - local.get $5 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - call $~lib/typedarray/Uint8ClampedArray#get:length - local.set $6 - local.get $4 + i32.const 0 + drop + local.get $3 i32.const 0 i32.lt_s + if + i32.const 336 + i32.const 608 + i32.const 1864 + i32.const 19 + call $~lib/builtins/abort + unreachable + end + local.get $4 + call $~lib/typedarray/Uint8Array#get:length + local.get $3 + i32.add + local.get $5 + call $~lib/typedarray/Int64Array#get:length + i32.gt_s + if + i32.const 336 + i32.const 608 + i32.const 1865 + i32.const 47 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + i32.const 1 + i32.eq if (result i32) - local.get $6 - local.get $4 - i32.add - local.tee $7 + i32.const 3 i32.const 0 - local.tee $8 - local.get $7 - local.get $8 - i32.gt_s - select + i32.eq else - local.get $4 - local.tee $8 - local.get $6 - local.tee $7 - local.get $8 - local.get $7 - i32.lt_s - select + i32.const 0 end - local.set $4 - local.get $3 - i32.const 0 - i32.lt_s if (result i32) - local.get $6 - local.get $3 - i32.add - local.tee $7 i32.const 0 - local.tee $8 - local.get $7 - local.get $8 - i32.gt_s - select + if (result i32) + i32.const 0 + else + i32.const 0 + end + i32.eqz else - local.get $3 - local.tee $8 - local.get $6 - local.tee $7 - local.get $8 - local.get $7 - i32.lt_s - select + i32.const 0 end - local.set $3 - local.get $3 - local.tee $7 - local.get $4 - local.tee $8 - local.get $7 - local.get $8 - i32.gt_s - select - local.set $3 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.const 5 - call $~lib/rt/itcms/__new - local.tee $7 - i32.store offset=8 - local.get $5 - i32.load - local.set $8 - local.get $7 - local.get $8 - i32.store - local.get $7 - local.get $8 - i32.const 0 - call $~lib/rt/itcms/__link - local.get $7 + drop local.get $5 i32.load offset=4 - local.get $4 - i32.const 0 + local.get $3 + i32.const 3 i32.shl i32.add - i32.store offset=4 - local.get $7 - local.get $3 + local.set $6 local.get $4 - i32.sub + i32.load offset=4 + local.set $7 + local.get $4 + call $~lib/typedarray/Uint8Array#get:length + local.set $8 i32.const 0 - i32.shl - i32.store offset=8 - local.get $7 local.set $9 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $9 + loop $for-loop|0 + local.get $9 + local.get $8 + i32.lt_s + local.set $10 + local.get $10 + if + i32.const 0 + drop + i32.const 0 + if (result i32) + i32.const 0 + i32.eqz + else + i32.const 0 + end + drop + i32.const 0 + if (result i32) + i32.const 0 + i32.eqz + else + i32.const 0 + end + drop + local.get $6 + local.get $9 + i32.const 3 + i32.shl + i32.add + local.get $7 + local.get $9 + i32.const 0 + i32.shl + i32.add + i64.load8_u + i64.store + local.get $9 + i32.const 1 + i32.add + local.set $9 + br $for-loop|0 + end + end ) - (func $std/typedarray/testArrayReverse<~lib/typedarray/Uint8ClampedArray,u8> - (local $0 i32) - (local $1 i32) - (local $2 i32) + (func $~lib/typedarray/Int64Array#set<~lib/typedarray/Int16Array> (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 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 - i64.const 0 - i64.store offset=8 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=16 - global.get $~lib/memory/__stack_pointer - global.get $std/typedarray/testArrayReverseValues - local.tee $0 - i32.store + (local $8 i32) + (local $9 i32) + (local $10 i32) local.get $0 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - call $~lib/array/Array#get:length - local.set $1 - global.get $~lib/memory/__stack_pointer - i32.const 0 + local.set $5 local.get $1 - call $~lib/typedarray/Uint8ClampedArray#constructor - local.tee $2 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 0 - local.get $1 - call $~lib/typedarray/Uint8ClampedArray#constructor - local.tee $3 - i32.store offset=12 - i32.const 0 local.set $4 - loop $for-loop|0 - local.get $4 - local.get $1 - i32.lt_s - local.set $5 - local.get $5 - if - local.get $2 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - local.get $4 - local.get $0 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=16 - local.get $7 - local.get $4 - call $~lib/array/Array#__get - i32.const 255 - i32.and - call $~lib/typedarray/Uint8ClampedArray#__set - local.get $3 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - local.get $4 - local.get $0 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=16 - local.get $7 - local.get $4 - call $~lib/array/Array#__get - i32.const 255 - i32.and - call $~lib/typedarray/Uint8ClampedArray#__set - local.get $4 - i32.const 1 - i32.add - local.set $4 - br $for-loop|0 - end - end local.get $2 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - call $~lib/typedarray/Uint8ClampedArray#reverse - drop + local.set $3 i32.const 0 - local.set $4 - loop $for-loop|1 - local.get $4 - local.get $1 - i32.lt_s - local.set $5 - local.get $5 - if - local.get $2 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - local.get $4 - call $~lib/typedarray/Uint8ClampedArray#__get - local.get $0 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - local.get $1 - i32.const 1 - i32.sub - local.get $4 - i32.sub - call $~lib/array/Array#__get - i32.const 255 - i32.and - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 547 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $4 - i32.const 1 - i32.add - local.set $4 - br $for-loop|1 - end - end - global.get $~lib/memory/__stack_pointer + drop local.get $3 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=16 - local.get $7 - i32.const 4 - i32.const 8 - call $~lib/typedarray/Uint8ClampedArray#subarray - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - call $~lib/typedarray/Uint8ClampedArray#reverse - local.tee $6 - i32.store offset=20 - local.get $6 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 i32.const 0 - call $~lib/typedarray/Uint8ClampedArray#__get - i32.const 8 - i32.eq - i32.eqz + i32.lt_s if - i32.const 0 - i32.const 544 - i32.const 552 - i32.const 3 + i32.const 336 + i32.const 608 + i32.const 1864 + i32.const 19 call $~lib/builtins/abort unreachable end - local.get $6 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - i32.const 1 - call $~lib/typedarray/Uint8ClampedArray#__get - i32.const 7 - i32.eq - i32.eqz + local.get $4 + call $~lib/typedarray/Int16Array#get:length + local.get $3 + i32.add + local.get $5 + call $~lib/typedarray/Int64Array#get:length + i32.gt_s if - i32.const 0 - i32.const 544 - i32.const 553 - i32.const 3 + i32.const 336 + i32.const 608 + i32.const 1865 + i32.const 47 call $~lib/builtins/abort unreachable end - local.get $6 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - i32.const 2 - call $~lib/typedarray/Uint8ClampedArray#__get - i32.const 6 + i32.const 1 + i32.const 1 i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 554 + if (result i32) i32.const 3 - call $~lib/builtins/abort - unreachable + i32.const 1 + i32.eq + else + i32.const 0 end - local.get $6 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - i32.const 3 - call $~lib/typedarray/Uint8ClampedArray#__get - i32.const 5 - i32.eq - i32.eqz - if + if (result i32) + i32.const 0 + if (result i32) + i32.const 1 + else + i32.const 0 + end + i32.eqz + else i32.const 0 - i32.const 544 - i32.const 555 - i32.const 3 - call $~lib/builtins/abort - unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 24 + drop + local.get $5 + i32.load offset=4 + local.get $3 + i32.const 3 + i32.shl i32.add - global.set $~lib/memory/__stack_pointer - ) - (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) - (local $8 i32) - (local $9 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 - global.get $~lib/memory/__stack_pointer - local.get $0 - local.tee $1 - i32.store - local.get $1 + local.set $6 + local.get $4 i32.load offset=4 - local.set $2 + local.set $7 + local.get $4 + call $~lib/typedarray/Int16Array#get:length + local.set $8 i32.const 0 - local.set $3 - local.get $1 local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - call $~lib/typedarray/Int16Array#get:length - i32.const 1 - i32.sub - local.set $4 loop $for-loop|0 - local.get $3 - local.get $4 - i32.lt_u - local.set $5 - local.get $5 + local.get $9 + local.get $8 + i32.lt_s + local.set $10 + local.get $10 if - local.get $2 - local.get $3 - i32.const 1 + i32.const 0 + drop + i32.const 0 + if (result i32) + i32.const 0 + i32.eqz + else + i32.const 0 + end + drop + i32.const 0 + if (result i32) + i32.const 0 + i32.eqz + else + i32.const 0 + end + drop + local.get $6 + local.get $9 + i32.const 3 i32.shl i32.add - local.set $6 - local.get $2 - local.get $4 + local.get $7 + local.get $9 i32.const 1 i32.shl i32.add - local.set $7 - local.get $6 - i32.load16_s - local.set $8 - local.get $6 - local.get $7 - i32.load16_s - i32.store16 - local.get $7 - local.get $8 - i32.store16 - local.get $3 + i64.load16_s + i64.store + local.get $9 i32.const 1 i32.add - local.set $3 - local.get $4 - i32.const 1 - i32.sub - local.set $4 + local.set $9 br $for-loop|0 end end - local.get $1 - local.set $9 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $9 ) - (func $~lib/typedarray/Int16Array#subarray (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/typedarray/Int64Array#set<~lib/array/Array> (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -35003,477 +29987,271 @@ (local $7 i32) (local $8 i32) (local $9 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 - global.get $~lib/memory/__stack_pointer + (local $10 i32) local.get $0 - local.tee $5 - i32.store + local.set $5 local.get $1 local.set $4 local.get $2 local.set $3 - local.get $5 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - call $~lib/typedarray/Int16Array#get:length - local.set $6 - local.get $4 + i32.const 0 + drop + local.get $3 i32.const 0 i32.lt_s + if + i32.const 336 + i32.const 608 + i32.const 1864 + i32.const 19 + call $~lib/builtins/abort + unreachable + end + local.get $4 + call $~lib/array/Array#get:length + local.get $3 + i32.add + local.get $5 + call $~lib/typedarray/Int64Array#get:length + i32.gt_s + if + i32.const 336 + i32.const 608 + i32.const 1865 + i32.const 47 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + i32.const 1 + i32.eq if (result i32) - local.get $6 - local.get $4 - i32.add - local.tee $7 + i32.const 3 i32.const 0 - local.tee $8 - local.get $7 - local.get $8 - i32.gt_s - select + i32.eq else - local.get $4 - local.tee $8 - local.get $6 - local.tee $7 - local.get $8 - local.get $7 - i32.lt_s - select + i32.const 0 end - local.set $4 - local.get $3 - i32.const 0 - i32.lt_s if (result i32) - local.get $6 - local.get $3 - i32.add - local.tee $7 i32.const 0 - local.tee $8 - local.get $7 - local.get $8 - i32.gt_s - select + if (result i32) + i32.const 1 + else + i32.const 0 + end + i32.eqz else - local.get $3 - local.tee $8 - local.get $6 - local.tee $7 - local.get $8 - local.get $7 - i32.lt_s - select + i32.const 0 end - local.set $3 - local.get $3 - local.tee $7 - local.get $4 - local.tee $8 - local.get $7 - local.get $8 - i32.gt_s - select - local.set $3 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.const 6 - call $~lib/rt/itcms/__new - local.tee $7 - i32.store offset=8 - local.get $5 - i32.load - local.set $8 - local.get $7 - local.get $8 - i32.store - local.get $7 - local.get $8 - i32.const 0 - call $~lib/rt/itcms/__link - local.get $7 + drop local.get $5 i32.load offset=4 - local.get $4 - i32.const 1 + local.get $3 + i32.const 3 i32.shl i32.add - i32.store offset=4 - local.get $7 - local.get $3 + local.set $6 local.get $4 - i32.sub - i32.const 1 - i32.shl - i32.store offset=8 - local.get $7 + i32.load offset=4 + local.set $7 + local.get $4 + call $~lib/array/Array#get:length + local.set $8 + i32.const 0 local.set $9 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $9 - ) - (func $std/typedarray/testArrayReverse<~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) - global.get $~lib/memory/__stack_pointer - 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 - i64.const 0 - i64.store offset=8 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=16 - global.get $~lib/memory/__stack_pointer - global.get $std/typedarray/testArrayReverseValues - local.tee $0 - i32.store - local.get $0 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - call $~lib/array/Array#get:length - local.set $1 - global.get $~lib/memory/__stack_pointer - i32.const 0 - local.get $1 - call $~lib/typedarray/Int16Array#constructor - local.tee $2 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 0 - local.get $1 - call $~lib/typedarray/Int16Array#constructor - local.tee $3 - i32.store offset=12 - i32.const 0 - local.set $4 loop $for-loop|0 - local.get $4 - local.get $1 + local.get $9 + local.get $8 i32.lt_s - local.set $5 - local.get $5 + local.set $10 + local.get $10 if - local.get $2 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - local.get $4 - local.get $0 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=16 - local.get $7 - local.get $4 - call $~lib/array/Array#__get - i32.const 16 + i32.const 0 + drop + i32.const 0 + if (result i32) + i32.const 0 + i32.eqz + else + i32.const 0 + end + drop + i32.const 0 + if (result i32) + i32.const 0 + i32.eqz + else + i32.const 0 + end + drop + local.get $6 + local.get $9 + i32.const 3 i32.shl - i32.const 16 - i32.shr_s - call $~lib/typedarray/Int16Array#__set - local.get $3 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - local.get $4 - local.get $0 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=16 + i32.add local.get $7 - local.get $4 - call $~lib/array/Array#__get - i32.const 16 + local.get $9 + i32.const 0 i32.shl - i32.const 16 - i32.shr_s - call $~lib/typedarray/Int16Array#__set - local.get $4 + i32.add + i64.load8_s + i64.store + local.get $9 i32.const 1 i32.add - local.set $4 + local.set $9 br $for-loop|0 end end + ) + (func $~lib/typedarray/Uint64Array#set<~lib/array/Array> (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.get $0 + local.set $5 + local.get $1 + local.set $4 local.get $2 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - call $~lib/typedarray/Int16Array#reverse - drop + local.set $3 i32.const 0 - local.set $4 - loop $for-loop|1 - local.get $4 - local.get $1 - i32.lt_s - local.set $5 - local.get $5 - if - local.get $2 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - local.get $4 - call $~lib/typedarray/Int16Array#__get - local.get $0 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - local.get $1 - i32.const 1 - i32.sub - local.get $4 - i32.sub - call $~lib/array/Array#__get - i32.const 16 - i32.shl - i32.const 16 - i32.shr_s - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 547 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $4 - i32.const 1 - i32.add - local.set $4 - br $for-loop|1 - end - end - global.get $~lib/memory/__stack_pointer + drop local.get $3 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=16 - local.get $7 - i32.const 4 - i32.const 8 - call $~lib/typedarray/Int16Array#subarray - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - call $~lib/typedarray/Int16Array#reverse - local.tee $6 - i32.store offset=20 - local.get $6 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 i32.const 0 - call $~lib/typedarray/Int16Array#__get - i32.const 8 - i32.eq - i32.eqz + i32.lt_s if - i32.const 0 - i32.const 544 - i32.const 552 - i32.const 3 + i32.const 336 + i32.const 608 + i32.const 1864 + i32.const 19 call $~lib/builtins/abort unreachable end - local.get $6 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - i32.const 1 - call $~lib/typedarray/Int16Array#__get - i32.const 7 - i32.eq - i32.eqz + local.get $4 + call $~lib/array/Array#get:length + local.get $3 + i32.add + local.get $5 + call $~lib/typedarray/Uint64Array#get:length + i32.gt_s if - i32.const 0 - i32.const 544 - i32.const 553 - i32.const 3 + i32.const 336 + i32.const 608 + i32.const 1865 + i32.const 47 call $~lib/builtins/abort unreachable end - local.get $6 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - i32.const 2 - call $~lib/typedarray/Int16Array#__get - i32.const 6 + i32.const 1 + i32.const 1 i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 554 + if (result i32) i32.const 3 - call $~lib/builtins/abort - unreachable + i32.const 2 + i32.eq + else + i32.const 0 end - local.get $6 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - i32.const 3 - call $~lib/typedarray/Int16Array#__get - i32.const 5 - i32.eq - i32.eqz - if + if (result i32) + i32.const 0 + if (result i32) + i32.const 1 + else + i32.const 0 + end + i32.eqz + else i32.const 0 - i32.const 544 - i32.const 555 - i32.const 3 - call $~lib/builtins/abort - unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 24 + drop + local.get $5 + i32.load offset=4 + local.get $3 + i32.const 3 + i32.shl i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/typedarray/Uint16Array#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) - (local $8 i32) - (local $9 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 - global.get $~lib/memory/__stack_pointer - local.get $0 - local.tee $1 - i32.store - local.get $1 + local.set $6 + local.get $4 i32.load offset=4 - local.set $2 + local.set $7 + local.get $4 + call $~lib/array/Array#get:length + local.set $8 i32.const 0 - local.set $3 - local.get $1 local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - call $~lib/typedarray/Uint16Array#get:length - i32.const 1 - i32.sub - local.set $4 loop $for-loop|0 - local.get $3 - local.get $4 - i32.lt_u - local.set $5 - local.get $5 + local.get $9 + local.get $8 + i32.lt_s + local.set $10 + local.get $10 if - local.get $2 - local.get $3 - i32.const 1 + i32.const 0 + drop + i32.const 0 + if (result i32) + i32.const 0 + i32.eqz + else + i32.const 0 + end + drop + i32.const 0 + if (result i32) + i32.const 0 + i32.eqz + else + i32.const 0 + end + drop + local.get $6 + local.get $9 + i32.const 3 i32.shl i32.add - local.set $6 - local.get $2 - local.get $4 - i32.const 1 + local.get $7 + local.get $9 + i32.const 2 i32.shl i32.add - local.set $7 - local.get $6 - i32.load16_u - local.set $8 - local.get $6 - local.get $7 - i32.load16_u - i32.store16 - local.get $7 - local.get $8 - i32.store16 - local.get $3 + i64.load32_s + i64.store + local.get $9 i32.const 1 i32.add - local.set $3 - local.get $4 - i32.const 1 - i32.sub - local.set $4 + local.set $9 br $for-loop|0 end end + ) + (func $~lib/array/Array#get:length (param $0 i32) (result i32) + local.get $0 + i32.load offset=12 + ) + (func $~lib/typedarray/Uint64Array#__uget (param $0 i32) (param $1 i32) (result i64) + local.get $0 + i32.load offset=4 local.get $1 - local.set $9 - global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 3 + i32.shl i32.add - global.set $~lib/memory/__stack_pointer - local.get $9 + i64.load ) - (func $~lib/typedarray/Uint16Array#subarray (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/array/Array#__uget (param $0 i32) (param $1 i32) (result i64) + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 3 + i32.shl + i32.add + i64.load + ) + (func $~lib/typedarray/Uint64Array#set<~lib/array/Array> (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -35481,388 +30259,201 @@ (local $7 i32) (local $8 i32) (local $9 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 - global.get $~lib/memory/__stack_pointer + (local $10 i32) + (local $11 f32) local.get $0 - local.tee $5 - i32.store + local.set $5 local.get $1 local.set $4 local.get $2 local.set $3 - local.get $5 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - call $~lib/typedarray/Uint16Array#get:length - local.set $6 - local.get $4 + i32.const 0 + drop + local.get $3 i32.const 0 i32.lt_s - if (result i32) - local.get $6 - local.get $4 - i32.add - local.tee $7 - i32.const 0 - local.tee $8 - local.get $7 - local.get $8 - i32.gt_s - select - else - local.get $4 - local.tee $8 - local.get $6 - local.tee $7 - local.get $8 - local.get $7 - i32.lt_s - select + if + i32.const 336 + i32.const 608 + i32.const 1864 + i32.const 19 + call $~lib/builtins/abort + unreachable end - local.set $4 + local.get $4 + call $~lib/array/Array#get:length local.get $3 + i32.add + local.get $5 + call $~lib/typedarray/Uint64Array#get:length + i32.gt_s + if + i32.const 336 + i32.const 608 + i32.const 1865 + i32.const 47 + call $~lib/builtins/abort + unreachable + end + i32.const 1 i32.const 0 - i32.lt_s + i32.eq if (result i32) - local.get $6 - local.get $3 - i32.add - local.tee $7 + i32.const 3 + i32.const 2 + i32.eq + else i32.const 0 - local.tee $8 - local.get $7 - local.get $8 - i32.gt_s - select + end + if (result i32) + i32.const 0 + if (result i32) + i32.const 0 + else + i32.const 0 + end + i32.eqz else - local.get $3 - local.tee $8 - local.get $6 - local.tee $7 - local.get $8 - local.get $7 - i32.lt_s - select + i32.const 0 end - local.set $3 - local.get $3 - local.tee $7 - local.get $4 - local.tee $8 - local.get $7 - local.get $8 - i32.gt_s - select - local.set $3 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.const 7 - call $~lib/rt/itcms/__new - local.tee $7 - i32.store offset=8 - local.get $5 - i32.load - local.set $8 - local.get $7 - local.get $8 - i32.store - local.get $7 - local.get $8 - i32.const 0 - call $~lib/rt/itcms/__link - local.get $7 + drop local.get $5 i32.load offset=4 - local.get $4 - i32.const 1 - i32.shl - i32.add - i32.store offset=4 - local.get $7 local.get $3 - local.get $4 - i32.sub - i32.const 1 + i32.const 3 i32.shl - i32.store offset=8 - local.get $7 - local.set $9 - global.get $~lib/memory/__stack_pointer - i32.const 12 i32.add - global.set $~lib/memory/__stack_pointer - local.get $9 - ) - (func $std/typedarray/testArrayReverse<~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) - global.get $~lib/memory/__stack_pointer - 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 - i64.const 0 - i64.store offset=8 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=16 - global.get $~lib/memory/__stack_pointer - global.get $std/typedarray/testArrayReverseValues - local.tee $0 - i32.store - local.get $0 + local.set $6 + local.get $4 + i32.load offset=4 local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - call $~lib/array/Array#get:length - local.set $1 - global.get $~lib/memory/__stack_pointer - i32.const 0 - local.get $1 - call $~lib/typedarray/Uint16Array#constructor - local.tee $2 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 0 - local.get $1 - call $~lib/typedarray/Uint16Array#constructor - local.tee $3 - i32.store offset=12 + local.get $4 + call $~lib/array/Array#get:length + local.set $8 i32.const 0 - local.set $4 + local.set $9 loop $for-loop|0 - local.get $4 - local.get $1 + local.get $9 + local.get $8 i32.lt_s - local.set $5 - local.get $5 + local.set $10 + local.get $10 if - local.get $2 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - local.get $4 - local.get $0 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=16 - local.get $7 - local.get $4 - call $~lib/array/Array#__get - i32.const 65535 - i32.and - call $~lib/typedarray/Uint16Array#__set - local.get $3 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - local.get $4 - local.get $0 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=16 + i32.const 0 + drop + i32.const 1 + if (result i32) + i32.const 0 + i32.eqz + else + i32.const 0 + end + drop local.get $7 - local.get $4 - call $~lib/array/Array#__get - i32.const 65535 - i32.and - call $~lib/typedarray/Uint16Array#__set - local.get $4 + local.get $9 + i32.const 2 + i32.shl + i32.add + f32.load + local.set $11 + local.get $6 + local.get $9 + i32.const 3 + i32.shl + i32.add + local.get $11 + local.get $11 + f32.sub + f32.const 0 + f32.eq + if (result i64) + local.get $11 + i64.trunc_f32_u + else + i64.const 0 + end + i64.store + local.get $9 i32.const 1 i32.add - local.set $4 + local.set $9 br $for-loop|0 end end + ) + (func $~lib/typedarray/Uint64Array#set<~lib/typedarray/Int64Array> (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $0 + local.set $5 + local.get $1 + local.set $4 local.get $2 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - call $~lib/typedarray/Uint16Array#reverse - drop + local.set $3 i32.const 0 - local.set $4 - loop $for-loop|1 - local.get $4 - local.get $1 - i32.lt_s - local.set $5 - local.get $5 - if - local.get $2 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - local.get $4 - call $~lib/typedarray/Uint16Array#__get - local.get $0 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - local.get $1 - i32.const 1 - i32.sub - local.get $4 - i32.sub - call $~lib/array/Array#__get - i32.const 65535 - i32.and - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 547 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $4 - i32.const 1 - i32.add - local.set $4 - br $for-loop|1 - end - end - global.get $~lib/memory/__stack_pointer + drop local.get $3 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=16 - local.get $7 - i32.const 4 - i32.const 8 - call $~lib/typedarray/Uint16Array#subarray - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - call $~lib/typedarray/Uint16Array#reverse - local.tee $6 - i32.store offset=20 - local.get $6 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 i32.const 0 - call $~lib/typedarray/Uint16Array#__get - i32.const 8 - i32.eq - i32.eqz + i32.lt_s if - i32.const 0 - i32.const 544 - i32.const 552 - i32.const 3 + i32.const 336 + i32.const 608 + i32.const 1864 + i32.const 19 call $~lib/builtins/abort unreachable end - local.get $6 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - i32.const 1 - call $~lib/typedarray/Uint16Array#__get - i32.const 7 - i32.eq - i32.eqz + local.get $4 + call $~lib/typedarray/Int64Array#get:length + local.get $3 + i32.add + local.get $5 + call $~lib/typedarray/Uint64Array#get:length + i32.gt_s if - i32.const 0 - i32.const 544 - i32.const 553 - i32.const 3 + i32.const 336 + i32.const 608 + i32.const 1865 + i32.const 47 call $~lib/builtins/abort unreachable end - local.get $6 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - i32.const 2 - call $~lib/typedarray/Uint16Array#__get - i32.const 6 + i32.const 1 + i32.const 1 i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 554 + if (result i32) i32.const 3 - call $~lib/builtins/abort - unreachable + i32.const 3 + i32.eq + else + i32.const 0 end - local.get $6 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - i32.const 3 - call $~lib/typedarray/Uint16Array#__get - i32.const 5 - i32.eq - i32.eqz - if + if (result i32) + i32.const 0 + if (result i32) + i32.const 1 + else + i32.const 0 + end + i32.eqz + else i32.const 0 - i32.const 544 - i32.const 555 - i32.const 3 - call $~lib/builtins/abort - unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 24 + drop + local.get $5 + i32.load offset=4 + local.get $3 + i32.const 3 + i32.shl i32.add - global.set $~lib/memory/__stack_pointer + local.get $4 + i32.load offset=4 + local.get $4 + i32.load offset=8 + call $~lib/memory/memory.copy ) - (func $~lib/typedarray/Int32Array#reverse (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) + (func $~lib/typedarray/Uint64Array#set<~lib/array/Array> (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -35870,415 +30461,254 @@ (local $7 i32) (local $8 i32) (local $9 i32) - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer + (local $10 i32) + (local $11 f64) local.get $0 - local.tee $1 - i32.store + local.set $5 local.get $1 + local.set $4 + local.get $2 + local.set $3 + i32.const 0 + drop + local.get $3 + i32.const 0 + i32.lt_s + if + i32.const 336 + i32.const 608 + i32.const 1864 + i32.const 19 + call $~lib/builtins/abort + unreachable + end + local.get $4 + call $~lib/array/Array#get:length + local.get $3 + i32.add + local.get $5 + call $~lib/typedarray/Uint64Array#get:length + i32.gt_s + if + i32.const 336 + i32.const 608 + i32.const 1865 + i32.const 47 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + i32.const 0 + i32.eq + if (result i32) + i32.const 3 + i32.const 3 + i32.eq + else + i32.const 0 + end + if (result i32) + i32.const 0 + if (result i32) + i32.const 0 + else + i32.const 0 + end + i32.eqz + else + i32.const 0 + end + drop + local.get $5 i32.load offset=4 - local.set $2 + local.get $3 + i32.const 3 + i32.shl + i32.add + local.set $6 + local.get $4 + i32.load offset=4 + local.set $7 + local.get $4 + call $~lib/array/Array#get:length + local.set $8 i32.const 0 - local.set $3 - local.get $1 local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - call $~lib/typedarray/Int32Array#get:length - i32.const 1 - i32.sub - local.set $4 loop $for-loop|0 - local.get $3 - local.get $4 - i32.lt_u - local.set $5 - local.get $5 + local.get $9 + local.get $8 + i32.lt_s + local.set $10 + local.get $10 if - local.get $2 - local.get $3 - i32.const 2 + i32.const 0 + drop + i32.const 1 + if (result i32) + i32.const 0 + i32.eqz + else + i32.const 0 + end + drop + local.get $7 + local.get $9 + i32.const 3 i32.shl i32.add - local.set $6 - local.get $2 - local.get $4 - i32.const 2 + f64.load + local.set $11 + local.get $6 + local.get $9 + i32.const 3 i32.shl i32.add - local.set $7 - local.get $6 - i32.load - local.set $8 - local.get $6 - local.get $7 - i32.load - i32.store - local.get $7 - local.get $8 - i32.store - local.get $3 + local.get $11 + local.get $11 + f64.sub + f64.const 0 + f64.eq + if (result i64) + local.get $11 + i64.trunc_f64_u + else + i64.const 0 + end + i64.store + local.get $9 i32.const 1 i32.add - local.set $3 - local.get $4 - i32.const 1 - i32.sub - local.set $4 + local.set $9 br $for-loop|0 end end - local.get $1 - local.set $9 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $9 ) - (func $std/typedarray/testArrayReverse<~lib/typedarray/Int32Array,i32> - (local $0 i32) - (local $1 i32) - (local $2 i32) + (func $~lib/typedarray/Uint64Array#set<~lib/typedarray/Uint8Array> (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 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 - i64.const 0 - i64.store offset=8 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=16 - global.get $~lib/memory/__stack_pointer - global.get $std/typedarray/testArrayReverseValues - local.tee $0 - i32.store + (local $8 i32) + (local $9 i32) + (local $10 i32) local.get $0 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - call $~lib/array/Array#get:length - local.set $1 - global.get $~lib/memory/__stack_pointer - i32.const 0 - local.get $1 - call $~lib/typedarray/Int32Array#constructor - local.tee $2 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 0 + local.set $5 local.get $1 - call $~lib/typedarray/Int32Array#constructor - local.tee $3 - i32.store offset=12 - i32.const 0 local.set $4 - loop $for-loop|0 - local.get $4 - local.get $1 - i32.lt_s - local.set $5 - local.get $5 - if - local.get $2 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - local.get $4 - local.get $0 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=16 - local.get $7 - local.get $4 - call $~lib/array/Array#__get - call $~lib/typedarray/Int32Array#__set - local.get $3 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - local.get $4 - local.get $0 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=16 - local.get $7 - local.get $4 - call $~lib/array/Array#__get - call $~lib/typedarray/Int32Array#__set - local.get $4 - i32.const 1 - i32.add - local.set $4 - br $for-loop|0 - end - end local.get $2 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - call $~lib/typedarray/Int32Array#reverse - drop + local.set $3 i32.const 0 - local.set $4 - loop $for-loop|1 - local.get $4 - local.get $1 - i32.lt_s - local.set $5 - local.get $5 - if - local.get $2 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - local.get $4 - call $~lib/typedarray/Int32Array#__get - local.get $0 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - local.get $1 - i32.const 1 - i32.sub - local.get $4 - i32.sub - call $~lib/array/Array#__get - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 547 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $4 - i32.const 1 - i32.add - local.set $4 - br $for-loop|1 - end - end - global.get $~lib/memory/__stack_pointer + drop local.get $3 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=16 - local.get $7 - i32.const 4 - i32.const 8 - call $~lib/typedarray/Int32Array#subarray - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - call $~lib/typedarray/Int32Array#reverse - local.tee $6 - i32.store offset=20 - local.get $6 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 i32.const 0 - call $~lib/typedarray/Int32Array#__get - i32.const 8 - i32.eq - i32.eqz + i32.lt_s if - i32.const 0 - i32.const 544 - i32.const 552 - i32.const 3 + i32.const 336 + i32.const 608 + i32.const 1864 + i32.const 19 call $~lib/builtins/abort unreachable end - local.get $6 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - i32.const 1 - call $~lib/typedarray/Int32Array#__get - i32.const 7 - i32.eq - i32.eqz + local.get $4 + call $~lib/typedarray/Uint8Array#get:length + local.get $3 + i32.add + local.get $5 + call $~lib/typedarray/Uint64Array#get:length + i32.gt_s if - i32.const 0 - i32.const 544 - i32.const 553 - i32.const 3 + i32.const 336 + i32.const 608 + i32.const 1865 + i32.const 47 call $~lib/builtins/abort unreachable end - local.get $6 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - i32.const 2 - call $~lib/typedarray/Int32Array#__get - i32.const 6 + i32.const 1 + i32.const 1 i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 554 + if (result i32) i32.const 3 - call $~lib/builtins/abort - unreachable + i32.const 0 + i32.eq + else + i32.const 0 end - local.get $6 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - i32.const 3 - call $~lib/typedarray/Int32Array#__get - i32.const 5 - i32.eq - i32.eqz - if + if (result i32) + i32.const 0 + if (result i32) + i32.const 0 + else + i32.const 0 + end + i32.eqz + else i32.const 0 - i32.const 544 - i32.const 555 - i32.const 3 - call $~lib/builtins/abort - unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 24 + drop + local.get $5 + i32.load offset=4 + local.get $3 + i32.const 3 + i32.shl i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/typedarray/Uint32Array#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) - (local $8 i32) - (local $9 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 - global.get $~lib/memory/__stack_pointer - local.get $0 - local.tee $1 - i32.store - local.get $1 + local.set $6 + local.get $4 i32.load offset=4 - local.set $2 + local.set $7 + local.get $4 + call $~lib/typedarray/Uint8Array#get:length + local.set $8 i32.const 0 - local.set $3 - local.get $1 local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - call $~lib/typedarray/Uint32Array#get:length - i32.const 1 - i32.sub - local.set $4 loop $for-loop|0 - local.get $3 - local.get $4 - i32.lt_u - local.set $5 - local.get $5 + local.get $9 + local.get $8 + i32.lt_s + local.set $10 + local.get $10 if - local.get $2 - local.get $3 - i32.const 2 + i32.const 0 + drop + i32.const 0 + if (result i32) + i32.const 0 + i32.eqz + else + i32.const 0 + end + drop + i32.const 0 + if (result i32) + i32.const 0 + i32.eqz + else + i32.const 0 + end + drop + local.get $6 + local.get $9 + i32.const 3 i32.shl i32.add - local.set $6 - local.get $2 - local.get $4 - i32.const 2 + local.get $7 + local.get $9 + i32.const 0 i32.shl i32.add - local.set $7 - local.get $6 - i32.load - local.set $8 - local.get $6 - local.get $7 - i32.load - i32.store - local.get $7 - local.get $8 - i32.store - local.get $3 + i64.load8_u + i64.store + local.get $9 i32.const 1 i32.add - local.set $3 - local.get $4 - i32.const 1 - i32.sub - local.set $4 + local.set $9 br $for-loop|0 end end - local.get $1 - local.set $9 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $9 ) - (func $~lib/typedarray/Uint32Array#subarray (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/typedarray/Uint64Array#set<~lib/typedarray/Int16Array> (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -36286,465 +30716,249 @@ (local $7 i32) (local $8 i32) (local $9 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 - global.get $~lib/memory/__stack_pointer + (local $10 i32) local.get $0 - local.tee $5 - i32.store + local.set $5 local.get $1 local.set $4 local.get $2 local.set $3 - local.get $5 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - call $~lib/typedarray/Uint32Array#get:length - local.set $6 - local.get $4 i32.const 0 - i32.lt_s - if (result i32) - local.get $6 - local.get $4 - i32.add - local.tee $7 - i32.const 0 - local.tee $8 - local.get $7 - local.get $8 - i32.gt_s - select - else - local.get $4 - local.tee $8 - local.get $6 - local.tee $7 - local.get $8 - local.get $7 - i32.lt_s - select - end - local.set $4 + drop local.get $3 i32.const 0 i32.lt_s - if (result i32) - local.get $6 - local.get $3 - i32.add - local.tee $7 - i32.const 0 - local.tee $8 - local.get $7 - local.get $8 - i32.gt_s - select - else - local.get $3 - local.tee $8 - local.get $6 - local.tee $7 - local.get $8 - local.get $7 - i32.lt_s - select + if + i32.const 336 + i32.const 608 + i32.const 1864 + i32.const 19 + call $~lib/builtins/abort + unreachable end - local.set $3 - local.get $3 - local.tee $7 local.get $4 - local.tee $8 - local.get $7 - local.get $8 + call $~lib/typedarray/Int16Array#get:length + local.get $3 + i32.add + local.get $5 + call $~lib/typedarray/Uint64Array#get:length i32.gt_s - select - local.set $3 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.const 9 - call $~lib/rt/itcms/__new - local.tee $7 - i32.store offset=8 - local.get $5 - i32.load - local.set $8 - local.get $7 - local.get $8 - i32.store - local.get $7 - local.get $8 - i32.const 0 - call $~lib/rt/itcms/__link - local.get $7 + if + i32.const 336 + i32.const 608 + i32.const 1865 + i32.const 47 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + i32.const 1 + i32.eq + if (result i32) + i32.const 3 + i32.const 1 + i32.eq + else + i32.const 0 + end + if (result i32) + i32.const 0 + if (result i32) + i32.const 1 + else + i32.const 0 + end + i32.eqz + else + i32.const 0 + end + drop local.get $5 i32.load offset=4 - local.get $4 - i32.const 2 - i32.shl - i32.add - i32.store offset=4 - local.get $7 local.get $3 - local.get $4 - i32.sub - i32.const 2 + i32.const 3 i32.shl - i32.store offset=8 - local.get $7 - local.set $9 - global.get $~lib/memory/__stack_pointer - i32.const 12 i32.add - global.set $~lib/memory/__stack_pointer - local.get $9 - ) - (func $std/typedarray/testArrayReverse<~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) - global.get $~lib/memory/__stack_pointer - 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 - i64.const 0 - i64.store offset=8 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=16 - global.get $~lib/memory/__stack_pointer - global.get $std/typedarray/testArrayReverseValues - local.tee $0 - i32.store - local.get $0 + local.set $6 + local.get $4 + i32.load offset=4 local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - call $~lib/array/Array#get:length - local.set $1 - global.get $~lib/memory/__stack_pointer - i32.const 0 - local.get $1 - call $~lib/typedarray/Uint32Array#constructor - local.tee $2 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 0 - local.get $1 - call $~lib/typedarray/Uint32Array#constructor - local.tee $3 - i32.store offset=12 + local.get $4 + call $~lib/typedarray/Int16Array#get:length + local.set $8 i32.const 0 - local.set $4 + local.set $9 loop $for-loop|0 - local.get $4 - local.get $1 + local.get $9 + local.get $8 i32.lt_s - local.set $5 - local.get $5 + local.set $10 + local.get $10 if - local.get $2 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - local.get $4 - local.get $0 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=16 - local.get $7 - local.get $4 - call $~lib/array/Array#__get - call $~lib/typedarray/Uint32Array#__set - local.get $3 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - local.get $4 - local.get $0 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=16 + i32.const 0 + drop + i32.const 0 + if (result i32) + i32.const 0 + i32.eqz + else + i32.const 0 + end + drop + i32.const 0 + if (result i32) + i32.const 0 + i32.eqz + else + i32.const 0 + end + drop + local.get $6 + local.get $9 + i32.const 3 + i32.shl + i32.add local.get $7 - local.get $4 - call $~lib/array/Array#__get - call $~lib/typedarray/Uint32Array#__set - local.get $4 + local.get $9 i32.const 1 + i32.shl i32.add - local.set $4 + i64.load16_s + i64.store + local.get $9 + i32.const 1 + i32.add + local.set $9 br $for-loop|0 end end + ) + (func $~lib/typedarray/Uint64Array#set<~lib/array/Array> (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.get $0 + local.set $5 + local.get $1 + local.set $4 local.get $2 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - call $~lib/typedarray/Uint32Array#reverse - drop + local.set $3 i32.const 0 - local.set $4 - loop $for-loop|1 - local.get $4 - local.get $1 - i32.lt_s - local.set $5 - local.get $5 - if - local.get $2 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - local.get $4 - call $~lib/typedarray/Uint32Array#__get - local.get $0 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - local.get $1 - i32.const 1 - i32.sub - local.get $4 - i32.sub - call $~lib/array/Array#__get - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 547 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $4 - i32.const 1 - i32.add - local.set $4 - br $for-loop|1 - end - end - global.get $~lib/memory/__stack_pointer + drop local.get $3 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=16 - local.get $7 - i32.const 4 - i32.const 8 - call $~lib/typedarray/Uint32Array#subarray - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - call $~lib/typedarray/Uint32Array#reverse - local.tee $6 - i32.store offset=20 - local.get $6 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 i32.const 0 - call $~lib/typedarray/Uint32Array#__get - i32.const 8 - i32.eq - i32.eqz + i32.lt_s if - i32.const 0 - i32.const 544 - i32.const 552 - i32.const 3 + i32.const 336 + i32.const 608 + i32.const 1864 + i32.const 19 call $~lib/builtins/abort unreachable end - local.get $6 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - i32.const 1 - call $~lib/typedarray/Uint32Array#__get - i32.const 7 - i32.eq - i32.eqz + local.get $4 + call $~lib/array/Array#get:length + local.get $3 + i32.add + local.get $5 + call $~lib/typedarray/Uint64Array#get:length + i32.gt_s if - i32.const 0 - i32.const 544 - i32.const 553 - i32.const 3 + i32.const 336 + i32.const 608 + i32.const 1865 + i32.const 47 call $~lib/builtins/abort unreachable end - local.get $6 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - i32.const 2 - call $~lib/typedarray/Uint32Array#__get - i32.const 6 + i32.const 1 + i32.const 1 i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 554 + if (result i32) i32.const 3 - call $~lib/builtins/abort - unreachable + i32.const 0 + i32.eq + else + i32.const 0 end - local.get $6 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - i32.const 3 - call $~lib/typedarray/Uint32Array#__get - i32.const 5 - i32.eq - i32.eqz - if + if (result i32) + i32.const 0 + if (result i32) + i32.const 1 + else + i32.const 0 + end + i32.eqz + else i32.const 0 - i32.const 544 - i32.const 555 - i32.const 3 - call $~lib/builtins/abort - unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 24 + drop + local.get $5 + i32.load offset=4 + local.get $3 + i32.const 3 + i32.shl 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 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i64) - (local $9 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 - global.get $~lib/memory/__stack_pointer - local.get $0 - local.tee $1 - i32.store - local.get $1 + local.set $6 + local.get $4 i32.load offset=4 - local.set $2 + local.set $7 + local.get $4 + call $~lib/array/Array#get:length + local.set $8 i32.const 0 - local.set $3 - local.get $1 local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - call $~lib/typedarray/Int64Array#get:length - i32.const 1 - i32.sub - local.set $4 loop $for-loop|0 - local.get $3 - local.get $4 - i32.lt_u - local.set $5 - local.get $5 + local.get $9 + local.get $8 + i32.lt_s + local.set $10 + local.get $10 if - local.get $2 - local.get $3 + i32.const 0 + drop + i32.const 0 + if (result i32) + i32.const 0 + i32.eqz + else + i32.const 0 + end + drop + i32.const 0 + if (result i32) + i32.const 0 + i32.eqz + else + i32.const 0 + end + drop + local.get $6 + local.get $9 i32.const 3 i32.shl i32.add - local.set $6 - local.get $2 - local.get $4 - i32.const 3 + local.get $7 + local.get $9 + i32.const 0 i32.shl i32.add - local.set $7 - local.get $6 - i64.load - local.set $8 - local.get $6 - local.get $7 - i64.load - i64.store - local.get $7 - local.get $8 + i64.load8_s i64.store - local.get $3 + local.get $9 i32.const 1 i32.add - local.set $3 - local.get $4 - i32.const 1 - i32.sub - local.set $4 + local.set $9 br $for-loop|0 end end - local.get $1 - local.set $9 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $9 ) - (func $~lib/typedarray/Int64Array#subarray (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/typedarray/Float32Array#set<~lib/array/Array> (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -36752,468 +30966,341 @@ (local $7 i32) (local $8 i32) (local $9 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 - global.get $~lib/memory/__stack_pointer + (local $10 i32) local.get $0 - local.tee $5 - i32.store + local.set $5 local.get $1 local.set $4 local.get $2 local.set $3 - local.get $5 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - call $~lib/typedarray/Int64Array#get:length - local.set $6 - local.get $4 + i32.const 0 + drop + local.get $3 i32.const 0 i32.lt_s - if (result i32) - local.get $6 - local.get $4 - i32.add - local.tee $7 - i32.const 0 - local.tee $8 - local.get $7 - local.get $8 - i32.gt_s - select - else - local.get $4 - local.tee $8 - local.get $6 - local.tee $7 - local.get $8 - local.get $7 - i32.lt_s - select + if + i32.const 336 + i32.const 608 + i32.const 1864 + i32.const 19 + call $~lib/builtins/abort + unreachable end - local.set $4 + local.get $4 + call $~lib/array/Array#get:length local.get $3 + i32.add + local.get $5 + call $~lib/typedarray/Float32Array#get:length + i32.gt_s + if + i32.const 336 + i32.const 608 + i32.const 1865 + i32.const 47 + call $~lib/builtins/abort + unreachable + end i32.const 0 - i32.lt_s + i32.const 1 + i32.eq if (result i32) - local.get $6 - local.get $3 - i32.add - local.tee $7 + i32.const 2 + i32.const 2 + i32.eq + else i32.const 0 - local.tee $8 - local.get $7 - local.get $8 - i32.gt_s - select + end + if (result i32) + i32.const 0 + if (result i32) + i32.const 1 + else + i32.const 0 + end + i32.eqz else - local.get $3 - local.tee $8 - local.get $6 - local.tee $7 - local.get $8 - local.get $7 - i32.lt_s - select + i32.const 0 end - local.set $3 - local.get $3 - local.tee $7 - local.get $4 - local.tee $8 - local.get $7 - local.get $8 - i32.gt_s - select - local.set $3 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.const 10 - call $~lib/rt/itcms/__new - local.tee $7 - i32.store offset=8 - local.get $5 - i32.load - local.set $8 - local.get $7 - local.get $8 - i32.store - local.get $7 - local.get $8 - i32.const 0 - call $~lib/rt/itcms/__link - local.get $7 + drop local.get $5 i32.load offset=4 - local.get $4 - i32.const 3 - i32.shl - i32.add - i32.store offset=4 - local.get $7 local.get $3 - local.get $4 - i32.sub - i32.const 3 + i32.const 2 i32.shl - i32.store offset=8 - local.get $7 - local.set $9 - global.get $~lib/memory/__stack_pointer - i32.const 12 i32.add - global.set $~lib/memory/__stack_pointer - local.get $9 - ) - (func $std/typedarray/testArrayReverse<~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) - global.get $~lib/memory/__stack_pointer - 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 - i64.const 0 - i64.store offset=8 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=16 - global.get $~lib/memory/__stack_pointer - global.get $std/typedarray/testArrayReverseValues - local.tee $0 - i32.store - local.get $0 + local.set $6 + local.get $4 + i32.load offset=4 local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 + local.get $4 call $~lib/array/Array#get:length - local.set $1 - global.get $~lib/memory/__stack_pointer - i32.const 0 - local.get $1 - call $~lib/typedarray/Int64Array#constructor - local.tee $2 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 0 - local.get $1 - call $~lib/typedarray/Int64Array#constructor - local.tee $3 - i32.store offset=12 + local.set $8 i32.const 0 - local.set $4 + local.set $9 loop $for-loop|0 - local.get $4 - local.get $1 + local.get $9 + local.get $8 i32.lt_s - local.set $5 - local.get $5 + local.set $10 + local.get $10 if - local.get $2 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - local.get $4 - local.get $0 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=16 - local.get $7 - local.get $4 - call $~lib/array/Array#__get - i64.extend_i32_s - call $~lib/typedarray/Int64Array#__set - local.get $3 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - local.get $4 - local.get $0 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=16 + i32.const 0 + drop + i32.const 0 + if (result i32) + i32.const 1 + i32.eqz + else + i32.const 0 + end + drop + i32.const 1 + if (result i32) + i32.const 0 + i32.eqz + else + i32.const 0 + end + drop + local.get $6 + local.get $9 + i32.const 2 + i32.shl + i32.add local.get $7 - local.get $4 - call $~lib/array/Array#__get - i64.extend_i32_s - call $~lib/typedarray/Int64Array#__set - local.get $4 + local.get $9 + i32.const 2 + i32.shl + i32.add + i32.load + f32.convert_i32_s + f32.store + local.get $9 i32.const 1 i32.add - local.set $4 + local.set $9 br $for-loop|0 end end + ) + (func $~lib/typedarray/Float32Array#__uget (param $0 i32) (param $1 i32) (result f32) + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 2 + i32.shl + i32.add + f32.load + ) + (func $~lib/array/Array#__uget (param $0 i32) (param $1 i32) (result f32) + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 2 + i32.shl + i32.add + f32.load + ) + (func $~lib/typedarray/Float32Array#set<~lib/array/Array> (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $0 + local.set $5 + local.get $1 + local.set $4 local.get $2 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - call $~lib/typedarray/Int64Array#reverse - drop + local.set $3 i32.const 0 - local.set $4 - loop $for-loop|1 - local.get $4 - local.get $1 - i32.lt_s - local.set $5 - local.get $5 - if - local.get $2 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - local.get $4 - call $~lib/typedarray/Int64Array#__get - local.get $0 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - local.get $1 - i32.const 1 - i32.sub - local.get $4 - i32.sub - call $~lib/array/Array#__get - i64.extend_i32_s - i64.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 547 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $4 - i32.const 1 - i32.add - local.set $4 - br $for-loop|1 - end - end - global.get $~lib/memory/__stack_pointer + drop local.get $3 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=16 - local.get $7 - i32.const 4 - i32.const 8 - call $~lib/typedarray/Int64Array#subarray - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - call $~lib/typedarray/Int64Array#reverse - local.tee $6 - i32.store offset=20 - local.get $6 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 i32.const 0 - call $~lib/typedarray/Int64Array#__get - i64.const 8 - i64.eq - i32.eqz + i32.lt_s if - i32.const 0 - i32.const 544 - i32.const 552 - i32.const 3 + i32.const 336 + i32.const 608 + i32.const 1864 + i32.const 19 call $~lib/builtins/abort unreachable end - local.get $6 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - i32.const 1 - call $~lib/typedarray/Int64Array#__get - i64.const 7 - i64.eq - i32.eqz + local.get $4 + call $~lib/array/Array#get:length + local.get $3 + i32.add + local.get $5 + call $~lib/typedarray/Float32Array#get:length + i32.gt_s if - i32.const 0 - i32.const 544 - i32.const 553 - i32.const 3 + i32.const 336 + i32.const 608 + i32.const 1865 + i32.const 47 call $~lib/builtins/abort unreachable end - local.get $6 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - i32.const 2 - call $~lib/typedarray/Int64Array#__get - i64.const 6 - i64.eq - i32.eqz - if + i32.const 0 + i32.const 0 + i32.eq + if (result i32) + i32.const 2 + i32.const 2 + i32.eq + else i32.const 0 - i32.const 544 - i32.const 554 - i32.const 3 - call $~lib/builtins/abort - unreachable end - local.get $6 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - i32.const 3 - call $~lib/typedarray/Int64Array#__get - i64.const 5 - i64.eq - i32.eqz - if + if (result i32) + i32.const 0 + if (result i32) + i32.const 0 + else + i32.const 0 + end + i32.eqz + else i32.const 0 - i32.const 544 - i32.const 555 - i32.const 3 - call $~lib/builtins/abort - unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 24 + drop + local.get $5 + i32.load offset=4 + local.get $3 + i32.const 2 + i32.shl i32.add - global.set $~lib/memory/__stack_pointer + local.get $4 + i32.load offset=4 + local.get $4 + i32.load offset=8 + call $~lib/memory/memory.copy ) - (func $~lib/typedarray/Uint64Array#reverse (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) + (func $~lib/typedarray/Float32Array#set<~lib/typedarray/Int64Array> (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 i64) + (local $8 i32) (local $9 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 - global.get $~lib/memory/__stack_pointer + (local $10 i32) local.get $0 - local.tee $1 - i32.store - local.get $1 - i32.load offset=4 - local.set $2 - i32.const 0 - local.set $3 + local.set $5 local.get $1 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - call $~lib/typedarray/Uint64Array#get:length - i32.const 1 - i32.sub local.set $4 - loop $for-loop|0 - local.get $3 - local.get $4 - i32.lt_u - local.set $5 - local.get $5 - if - local.get $2 - local.get $3 - i32.const 3 - i32.shl - i32.add - local.set $6 - local.get $2 - local.get $4 - i32.const 3 - i32.shl - i32.add - local.set $7 - local.get $6 - i64.load - local.set $8 - local.get $6 - local.get $7 - i64.load - i64.store - local.get $7 - local.get $8 - i64.store - local.get $3 + local.get $2 + local.set $3 + i32.const 0 + drop + local.get $3 + i32.const 0 + i32.lt_s + if + i32.const 336 + i32.const 608 + i32.const 1864 + i32.const 19 + call $~lib/builtins/abort + unreachable + end + local.get $4 + call $~lib/typedarray/Int64Array#get:length + local.get $3 + i32.add + local.get $5 + call $~lib/typedarray/Float32Array#get:length + i32.gt_s + if + i32.const 336 + i32.const 608 + i32.const 1865 + i32.const 47 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + i32.const 1 + i32.eq + if (result i32) + i32.const 2 + i32.const 3 + i32.eq + else + i32.const 0 + end + if (result i32) + i32.const 0 + if (result i32) + i32.const 1 + else + i32.const 0 + end + i32.eqz + else + i32.const 0 + end + drop + local.get $5 + i32.load offset=4 + local.get $3 + i32.const 2 + i32.shl + i32.add + local.set $6 + local.get $4 + i32.load offset=4 + local.set $7 + local.get $4 + call $~lib/typedarray/Int64Array#get:length + local.set $8 + i32.const 0 + local.set $9 + loop $for-loop|0 + local.get $9 + local.get $8 + i32.lt_s + local.set $10 + local.get $10 + if + i32.const 0 + drop + i32.const 0 + if (result i32) + i32.const 1 + i32.eqz + else + i32.const 0 + end + drop i32.const 1 + if (result i32) + i32.const 0 + i32.eqz + else + i32.const 0 + end + drop + local.get $6 + local.get $9 + i32.const 2 + i32.shl i32.add - local.set $3 - local.get $4 + local.get $7 + local.get $9 + i32.const 3 + i32.shl + i32.add + i64.load + f32.convert_i64_s + f32.store + local.get $9 i32.const 1 - i32.sub - local.set $4 + i32.add + local.set $9 br $for-loop|0 end end - local.get $1 - local.set $9 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $9 ) - (func $~lib/typedarray/Uint64Array#subarray (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/typedarray/Float32Array#set<~lib/typedarray/Uint8Array> (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -37221,468 +31308,377 @@ (local $7 i32) (local $8 i32) (local $9 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 - global.get $~lib/memory/__stack_pointer + (local $10 i32) local.get $0 - local.tee $5 - i32.store + local.set $5 local.get $1 local.set $4 local.get $2 local.set $3 - local.get $5 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - call $~lib/typedarray/Uint64Array#get:length - local.set $6 - local.get $4 + i32.const 0 + drop + local.get $3 i32.const 0 i32.lt_s + if + i32.const 336 + i32.const 608 + i32.const 1864 + i32.const 19 + call $~lib/builtins/abort + unreachable + end + local.get $4 + call $~lib/typedarray/Uint8Array#get:length + local.get $3 + i32.add + local.get $5 + call $~lib/typedarray/Float32Array#get:length + i32.gt_s + if + i32.const 336 + i32.const 608 + i32.const 1865 + i32.const 47 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + i32.const 1 + i32.eq if (result i32) - local.get $6 - local.get $4 - i32.add - local.tee $7 + i32.const 2 i32.const 0 - local.tee $8 - local.get $7 - local.get $8 - i32.gt_s - select + i32.eq else - local.get $4 - local.tee $8 - local.get $6 - local.tee $7 - local.get $8 - local.get $7 - i32.lt_s - select + i32.const 0 end - local.set $4 - local.get $3 - i32.const 0 - i32.lt_s if (result i32) - local.get $6 - local.get $3 - i32.add - local.tee $7 i32.const 0 - local.tee $8 - local.get $7 - local.get $8 - i32.gt_s - select + if (result i32) + i32.const 0 + else + i32.const 0 + end + i32.eqz else - local.get $3 - local.tee $8 - local.get $6 - local.tee $7 - local.get $8 - local.get $7 - i32.lt_s - select + i32.const 0 end - local.set $3 - local.get $3 - local.tee $7 - local.get $4 - local.tee $8 - local.get $7 - local.get $8 - i32.gt_s - select - local.set $3 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.const 11 - call $~lib/rt/itcms/__new - local.tee $7 - i32.store offset=8 - local.get $5 - i32.load - local.set $8 - local.get $7 - local.get $8 - i32.store - local.get $7 - local.get $8 - i32.const 0 - call $~lib/rt/itcms/__link - local.get $7 + drop local.get $5 i32.load offset=4 - local.get $4 - i32.const 3 + local.get $3 + i32.const 2 i32.shl i32.add - i32.store offset=4 - local.get $7 - local.get $3 + local.set $6 local.get $4 - i32.sub - i32.const 3 - i32.shl - i32.store offset=8 - local.get $7 + i32.load offset=4 + local.set $7 + local.get $4 + call $~lib/typedarray/Uint8Array#get:length + local.set $8 + i32.const 0 local.set $9 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $9 + loop $for-loop|0 + local.get $9 + local.get $8 + i32.lt_s + local.set $10 + local.get $10 + if + i32.const 0 + drop + i32.const 0 + if (result i32) + i32.const 1 + i32.eqz + else + i32.const 0 + end + drop + i32.const 1 + if (result i32) + i32.const 0 + i32.eqz + else + i32.const 0 + end + drop + local.get $6 + local.get $9 + i32.const 2 + i32.shl + i32.add + local.get $7 + local.get $9 + i32.const 0 + i32.shl + i32.add + i32.load8_u + f32.convert_i32_u + f32.store + local.get $9 + i32.const 1 + i32.add + local.set $9 + br $for-loop|0 + end + end ) - (func $std/typedarray/testArrayReverse<~lib/typedarray/Uint64Array,u64> - (local $0 i32) - (local $1 i32) - (local $2 i32) + (func $~lib/typedarray/Float32Array#set<~lib/typedarray/Int16Array> (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 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 - i64.const 0 - i64.store offset=8 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=16 - global.get $~lib/memory/__stack_pointer - global.get $std/typedarray/testArrayReverseValues - local.tee $0 - i32.store + (local $8 i32) + (local $9 i32) + (local $10 i32) local.get $0 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - call $~lib/array/Array#get:length - local.set $1 - global.get $~lib/memory/__stack_pointer - i32.const 0 + local.set $5 local.get $1 - call $~lib/typedarray/Uint64Array#constructor - local.tee $2 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer + local.set $4 + local.get $2 + local.set $3 i32.const 0 - local.get $1 - call $~lib/typedarray/Uint64Array#constructor - local.tee $3 - i32.store offset=12 + drop + local.get $3 i32.const 0 - local.set $4 + i32.lt_s + if + i32.const 336 + i32.const 608 + i32.const 1864 + i32.const 19 + call $~lib/builtins/abort + unreachable + end + local.get $4 + call $~lib/typedarray/Int16Array#get:length + local.get $3 + i32.add + local.get $5 + call $~lib/typedarray/Float32Array#get:length + i32.gt_s + if + i32.const 336 + i32.const 608 + i32.const 1865 + i32.const 47 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + i32.const 1 + i32.eq + if (result i32) + i32.const 2 + i32.const 1 + i32.eq + else + i32.const 0 + end + if (result i32) + i32.const 0 + if (result i32) + i32.const 1 + else + i32.const 0 + end + i32.eqz + else + i32.const 0 + end + drop + local.get $5 + i32.load offset=4 + local.get $3 + i32.const 2 + i32.shl + i32.add + local.set $6 + local.get $4 + i32.load offset=4 + local.set $7 + local.get $4 + call $~lib/typedarray/Int16Array#get:length + local.set $8 + i32.const 0 + local.set $9 loop $for-loop|0 - local.get $4 - local.get $1 + local.get $9 + local.get $8 i32.lt_s - local.set $5 - local.get $5 + local.set $10 + local.get $10 if - local.get $2 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - local.get $4 - local.get $0 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=16 - local.get $7 - local.get $4 - call $~lib/array/Array#__get - i64.extend_i32_s - call $~lib/typedarray/Uint64Array#__set - local.get $3 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - local.get $4 - local.get $0 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=16 + i32.const 0 + drop + i32.const 0 + if (result i32) + i32.const 1 + i32.eqz + else + i32.const 0 + end + drop + i32.const 1 + if (result i32) + i32.const 0 + i32.eqz + else + i32.const 0 + end + drop + local.get $6 + local.get $9 + i32.const 2 + i32.shl + i32.add local.get $7 - local.get $4 - call $~lib/array/Array#__get - i64.extend_i32_s - call $~lib/typedarray/Uint64Array#__set - local.get $4 + local.get $9 i32.const 1 + i32.shl i32.add - local.set $4 + i32.load16_s + f32.convert_i32_s + f32.store + local.get $9 + i32.const 1 + i32.add + local.set $9 br $for-loop|0 end end - local.get $2 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - call $~lib/typedarray/Uint64Array#reverse - drop - i32.const 0 + ) + (func $~lib/typedarray/Float32Array#set<~lib/array/Array> (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.get $0 + local.set $5 + local.get $1 local.set $4 - loop $for-loop|1 - local.get $4 - local.get $1 - i32.lt_s - local.set $5 - local.get $5 - if - local.get $2 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - local.get $4 - call $~lib/typedarray/Uint64Array#__get - local.get $0 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - local.get $1 - i32.const 1 - i32.sub - local.get $4 - i32.sub - call $~lib/array/Array#__get - i64.extend_i32_s - i64.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 547 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $4 - i32.const 1 - i32.add - local.set $4 - br $for-loop|1 - end - end - global.get $~lib/memory/__stack_pointer + local.get $2 + local.set $3 + i32.const 0 + drop local.get $3 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=16 - local.get $7 - i32.const 4 - i32.const 8 - call $~lib/typedarray/Uint64Array#subarray - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - call $~lib/typedarray/Uint64Array#reverse - local.tee $6 - i32.store offset=20 - local.get $6 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 i32.const 0 - call $~lib/typedarray/Uint64Array#__get - i64.const 8 - i64.eq - i32.eqz + i32.lt_s if - i32.const 0 - i32.const 544 - i32.const 552 - i32.const 3 + i32.const 336 + i32.const 608 + i32.const 1864 + i32.const 19 call $~lib/builtins/abort unreachable end - local.get $6 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - i32.const 1 - call $~lib/typedarray/Uint64Array#__get - i64.const 7 - i64.eq - i32.eqz + local.get $4 + call $~lib/array/Array#get:length + local.get $3 + i32.add + local.get $5 + call $~lib/typedarray/Float32Array#get:length + i32.gt_s if - i32.const 0 - i32.const 544 - i32.const 553 - i32.const 3 + i32.const 336 + i32.const 608 + i32.const 1865 + i32.const 47 call $~lib/builtins/abort unreachable end - local.get $6 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - i32.const 2 - call $~lib/typedarray/Uint64Array#__get - i64.const 6 - i64.eq - i32.eqz - if + i32.const 0 + i32.const 1 + i32.eq + if (result i32) + i32.const 2 + i32.const 0 + i32.eq + else i32.const 0 - i32.const 544 - i32.const 554 - i32.const 3 - call $~lib/builtins/abort - unreachable end - local.get $6 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - i32.const 3 - call $~lib/typedarray/Uint64Array#__get - i64.const 5 - i64.eq - i32.eqz - if + if (result i32) + i32.const 0 + if (result i32) + i32.const 1 + else + i32.const 0 + end + i32.eqz + else i32.const 0 - i32.const 544 - i32.const 555 - i32.const 3 - call $~lib/builtins/abort - unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 24 + drop + local.get $5 + i32.load offset=4 + local.get $3 + i32.const 2 + i32.shl 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 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 f32) - (local $9 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 - global.get $~lib/memory/__stack_pointer - local.get $0 - local.tee $1 - i32.store - local.get $1 + local.set $6 + local.get $4 i32.load offset=4 - local.set $2 + local.set $7 + local.get $4 + call $~lib/array/Array#get:length + local.set $8 i32.const 0 - local.set $3 - local.get $1 local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - call $~lib/typedarray/Float32Array#get:length - i32.const 1 - i32.sub - local.set $4 loop $for-loop|0 - local.get $3 - local.get $4 - i32.lt_u - local.set $5 - local.get $5 + local.get $9 + local.get $8 + i32.lt_s + local.set $10 + local.get $10 if - local.get $2 - local.get $3 + i32.const 0 + drop + i32.const 0 + if (result i32) + i32.const 1 + i32.eqz + else + i32.const 0 + end + drop + i32.const 1 + if (result i32) + i32.const 0 + i32.eqz + else + i32.const 0 + end + drop + local.get $6 + local.get $9 i32.const 2 i32.shl i32.add - local.set $6 - local.get $2 - local.get $4 - i32.const 2 + local.get $7 + local.get $9 + i32.const 0 i32.shl i32.add - local.set $7 - local.get $6 - f32.load - local.set $8 - local.get $6 - local.get $7 - f32.load - f32.store - local.get $7 - local.get $8 + i32.load8_s + f32.convert_i32_s f32.store - local.get $3 + local.get $9 i32.const 1 i32.add - local.set $3 - local.get $4 - i32.const 1 - i32.sub - local.set $4 + local.set $9 br $for-loop|0 end end - local.get $1 - local.set $9 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $9 ) - (func $~lib/typedarray/Float32Array#subarray (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/typedarray/Float64Array#set<~lib/array/Array> (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -37690,827 +31686,647 @@ (local $7 i32) (local $8 i32) (local $9 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 - global.get $~lib/memory/__stack_pointer + (local $10 i32) local.get $0 - local.tee $5 - i32.store + local.set $5 local.get $1 local.set $4 local.get $2 local.set $3 - local.get $5 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - call $~lib/typedarray/Float32Array#get:length - local.set $6 - local.get $4 + i32.const 0 + drop + local.get $3 i32.const 0 i32.lt_s - if (result i32) - local.get $6 - local.get $4 - i32.add - local.tee $7 - i32.const 0 - local.tee $8 - local.get $7 - local.get $8 - i32.gt_s - select - else - local.get $4 - local.tee $8 - local.get $6 - local.tee $7 - local.get $8 - local.get $7 - i32.lt_s - select + if + i32.const 336 + i32.const 608 + i32.const 1864 + i32.const 19 + call $~lib/builtins/abort + unreachable end - local.set $4 + local.get $4 + call $~lib/array/Array#get:length local.get $3 + i32.add + local.get $5 + call $~lib/typedarray/Float64Array#get:length + i32.gt_s + if + i32.const 336 + i32.const 608 + i32.const 1865 + i32.const 47 + call $~lib/builtins/abort + unreachable + end i32.const 0 - i32.lt_s + i32.const 1 + i32.eq if (result i32) - local.get $6 - local.get $3 - i32.add - local.tee $7 + i32.const 3 + i32.const 2 + i32.eq + else i32.const 0 - local.tee $8 - local.get $7 - local.get $8 - i32.gt_s - select + end + if (result i32) + i32.const 0 + if (result i32) + i32.const 1 + else + i32.const 0 + end + i32.eqz else - local.get $3 - local.tee $8 - local.get $6 - local.tee $7 - local.get $8 - local.get $7 - i32.lt_s - select + i32.const 0 end - local.set $3 - local.get $3 - local.tee $7 - local.get $4 - local.tee $8 - local.get $7 - local.get $8 - i32.gt_s - select - local.set $3 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.const 12 - call $~lib/rt/itcms/__new - local.tee $7 - i32.store offset=8 - local.get $5 - i32.load - local.set $8 - local.get $7 - local.get $8 - i32.store - local.get $7 - local.get $8 - i32.const 0 - call $~lib/rt/itcms/__link - local.get $7 + drop local.get $5 i32.load offset=4 - local.get $4 - i32.const 2 - i32.shl - i32.add - i32.store offset=4 - local.get $7 local.get $3 - local.get $4 - i32.sub - i32.const 2 + i32.const 3 i32.shl - i32.store offset=8 - local.get $7 - local.set $9 - global.get $~lib/memory/__stack_pointer - i32.const 12 i32.add - global.set $~lib/memory/__stack_pointer - local.get $9 - ) - (func $std/typedarray/testArrayReverse<~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) - global.get $~lib/memory/__stack_pointer - 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 - i64.const 0 - i64.store offset=8 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=16 - global.get $~lib/memory/__stack_pointer - global.get $std/typedarray/testArrayReverseValues - local.tee $0 - i32.store - local.get $0 + local.set $6 + local.get $4 + i32.load offset=4 local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 + local.get $4 call $~lib/array/Array#get:length - local.set $1 - global.get $~lib/memory/__stack_pointer - i32.const 0 - local.get $1 - call $~lib/typedarray/Float32Array#constructor - local.tee $2 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 0 - local.get $1 - call $~lib/typedarray/Float32Array#constructor - local.tee $3 - i32.store offset=12 + local.set $8 i32.const 0 - local.set $4 + local.set $9 loop $for-loop|0 - local.get $4 - local.get $1 + local.get $9 + local.get $8 i32.lt_s - local.set $5 - local.get $5 + local.set $10 + local.get $10 if - local.get $2 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - local.get $4 - local.get $0 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=16 - local.get $7 - local.get $4 - call $~lib/array/Array#__get - f32.convert_i32_s - call $~lib/typedarray/Float32Array#__set - local.get $3 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - local.get $4 - local.get $0 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=16 + i32.const 0 + drop + i32.const 0 + if (result i32) + i32.const 1 + i32.eqz + else + i32.const 0 + end + drop + i32.const 1 + if (result i32) + i32.const 0 + i32.eqz + else + i32.const 0 + end + drop + local.get $6 + local.get $9 + i32.const 3 + i32.shl + i32.add local.get $7 - local.get $4 - call $~lib/array/Array#__get - f32.convert_i32_s - call $~lib/typedarray/Float32Array#__set - local.get $4 + local.get $9 + i32.const 2 + i32.shl + i32.add + i32.load + f64.convert_i32_s + f64.store + local.get $9 i32.const 1 i32.add - local.set $4 + local.set $9 br $for-loop|0 end end + ) + (func $~lib/typedarray/Float64Array#__uget (param $0 i32) (param $1 i32) (result f64) + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 3 + i32.shl + i32.add + f64.load + ) + (func $~lib/array/Array#__uget (param $0 i32) (param $1 i32) (result f64) + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 3 + i32.shl + i32.add + f64.load + ) + (func $~lib/typedarray/Float64Array#set<~lib/array/Array> (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.get $0 + local.set $5 + local.get $1 + local.set $4 local.get $2 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - call $~lib/typedarray/Float32Array#reverse + local.set $3 + i32.const 0 drop + local.get $3 i32.const 0 - local.set $4 - loop $for-loop|1 - local.get $4 - local.get $1 + i32.lt_s + if + i32.const 336 + i32.const 608 + i32.const 1864 + i32.const 19 + call $~lib/builtins/abort + unreachable + end + local.get $4 + call $~lib/array/Array#get:length + local.get $3 + i32.add + local.get $5 + call $~lib/typedarray/Float64Array#get:length + i32.gt_s + if + i32.const 336 + i32.const 608 + i32.const 1865 + i32.const 47 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + i32.const 0 + i32.eq + if (result i32) + i32.const 3 + i32.const 2 + i32.eq + else + i32.const 0 + end + if (result i32) + i32.const 0 + if (result i32) + i32.const 0 + else + i32.const 0 + end + i32.eqz + else + i32.const 0 + end + drop + local.get $5 + i32.load offset=4 + local.get $3 + i32.const 3 + i32.shl + i32.add + local.set $6 + local.get $4 + i32.load offset=4 + local.set $7 + local.get $4 + call $~lib/array/Array#get:length + local.set $8 + i32.const 0 + local.set $9 + loop $for-loop|0 + local.get $9 + local.get $8 i32.lt_s - local.set $5 - local.get $5 + local.set $10 + local.get $10 if - local.get $2 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - local.get $4 - call $~lib/typedarray/Float32Array#__get - local.get $0 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - local.get $1 + i32.const 0 + drop i32.const 1 - i32.sub - local.get $4 - i32.sub - call $~lib/array/Array#__get - f32.convert_i32_s - f32.eq - i32.eqz - if + if (result i32) + i32.const 1 + i32.eqz + else i32.const 0 - i32.const 544 - i32.const 547 - i32.const 5 - call $~lib/builtins/abort - unreachable end - local.get $4 + drop i32.const 1 + if (result i32) + i32.const 1 + i32.eqz + else + i32.const 0 + end + drop + local.get $6 + local.get $9 + i32.const 3 + i32.shl i32.add - local.set $4 - br $for-loop|1 + local.get $7 + local.get $9 + i32.const 2 + i32.shl + i32.add + f32.load + f64.promote_f32 + f64.store + local.get $9 + i32.const 1 + i32.add + local.set $9 + br $for-loop|0 end end - global.get $~lib/memory/__stack_pointer + ) + (func $~lib/typedarray/Float64Array#set<~lib/typedarray/Int64Array> (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.get $0 + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + i32.const 0 + drop local.get $3 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=16 - local.get $7 - i32.const 4 - i32.const 8 - call $~lib/typedarray/Float32Array#subarray - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - call $~lib/typedarray/Float32Array#reverse - local.tee $6 - i32.store offset=20 - local.get $6 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 i32.const 0 - call $~lib/typedarray/Float32Array#__get - f32.const 8 - f32.eq - i32.eqz + i32.lt_s if - i32.const 0 - i32.const 544 - i32.const 552 - i32.const 3 + i32.const 336 + i32.const 608 + i32.const 1864 + i32.const 19 call $~lib/builtins/abort unreachable end - local.get $6 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - i32.const 1 - call $~lib/typedarray/Float32Array#__get - f32.const 7 - f32.eq - i32.eqz + local.get $4 + call $~lib/typedarray/Int64Array#get:length + local.get $3 + i32.add + local.get $5 + call $~lib/typedarray/Float64Array#get:length + i32.gt_s if - i32.const 0 - i32.const 544 - i32.const 553 - i32.const 3 + i32.const 336 + i32.const 608 + i32.const 1865 + i32.const 47 call $~lib/builtins/abort unreachable end - local.get $6 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - i32.const 2 - call $~lib/typedarray/Float32Array#__get - f32.const 6 - f32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 554 + i32.const 0 + i32.const 1 + i32.eq + if (result i32) i32.const 3 - call $~lib/builtins/abort - unreachable + i32.const 3 + i32.eq + else + i32.const 0 end - local.get $6 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - i32.const 3 - call $~lib/typedarray/Float32Array#__get - f32.const 5 - f32.eq - i32.eqz - if + if (result i32) + i32.const 0 + if (result i32) + i32.const 1 + else + i32.const 0 + end + i32.eqz + else i32.const 0 - i32.const 544 - i32.const 555 - i32.const 3 - call $~lib/builtins/abort - unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 24 + drop + local.get $5 + i32.load offset=4 + local.get $3 + i32.const 3 + i32.shl i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/typedarray/Float64Array#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) - (local $8 f64) - (local $9 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 - global.get $~lib/memory/__stack_pointer - local.get $0 - local.tee $1 - i32.store - local.get $1 + local.set $6 + local.get $4 i32.load offset=4 - local.set $2 + local.set $7 + local.get $4 + call $~lib/typedarray/Int64Array#get:length + local.set $8 i32.const 0 - local.set $3 - local.get $1 local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - call $~lib/typedarray/Float64Array#get:length - i32.const 1 - i32.sub - local.set $4 loop $for-loop|0 - local.get $3 - local.get $4 - i32.lt_u - local.set $5 - local.get $5 + local.get $9 + local.get $8 + i32.lt_s + local.set $10 + local.get $10 if - local.get $2 - local.get $3 + i32.const 0 + drop + i32.const 0 + if (result i32) + i32.const 1 + i32.eqz + else + i32.const 0 + end + drop + i32.const 1 + if (result i32) + i32.const 0 + i32.eqz + else + i32.const 0 + end + drop + local.get $6 + local.get $9 i32.const 3 i32.shl i32.add - local.set $6 - local.get $2 - local.get $4 + local.get $7 + local.get $9 i32.const 3 i32.shl i32.add - local.set $7 - local.get $6 - f64.load - local.set $8 - local.get $6 - local.get $7 - f64.load - f64.store - local.get $7 - local.get $8 + i64.load + f64.convert_i64_s f64.store - local.get $3 + local.get $9 i32.const 1 i32.add - local.set $3 - local.get $4 - i32.const 1 - i32.sub - local.set $4 + local.set $9 br $for-loop|0 end end - local.get $1 - local.set $9 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $9 ) - (func $std/typedarray/testArrayReverse<~lib/typedarray/Float64Array,f64> - (local $0 i32) - (local $1 i32) - (local $2 i32) + (func $~lib/typedarray/Float64Array#set<~lib/typedarray/Uint8Array> (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 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 - i64.const 0 - i64.store offset=8 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=16 - global.get $~lib/memory/__stack_pointer - global.get $std/typedarray/testArrayReverseValues - local.tee $0 - i32.store + (local $8 i32) + (local $9 i32) + (local $10 i32) local.get $0 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - call $~lib/array/Array#get:length - local.set $1 - global.get $~lib/memory/__stack_pointer - i32.const 0 + local.set $5 local.get $1 - call $~lib/typedarray/Float64Array#constructor - local.tee $2 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer + local.set $4 + local.get $2 + local.set $3 i32.const 0 - local.get $1 - call $~lib/typedarray/Float64Array#constructor - local.tee $3 - i32.store offset=12 + drop + local.get $3 i32.const 0 - local.set $4 - loop $for-loop|0 - local.get $4 - local.get $1 - i32.lt_s - local.set $5 - local.get $5 - if - local.get $2 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - local.get $4 - local.get $0 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=16 - local.get $7 - local.get $4 - call $~lib/array/Array#__get - f64.convert_i32_s - call $~lib/typedarray/Float64Array#__set - local.get $3 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - local.get $4 - local.get $0 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=16 - local.get $7 - local.get $4 - call $~lib/array/Array#__get - f64.convert_i32_s - call $~lib/typedarray/Float64Array#__set - local.get $4 - i32.const 1 - i32.add - local.set $4 - br $for-loop|0 + i32.lt_s + if + i32.const 336 + i32.const 608 + i32.const 1864 + i32.const 19 + call $~lib/builtins/abort + unreachable + end + local.get $4 + call $~lib/typedarray/Uint8Array#get:length + local.get $3 + i32.add + local.get $5 + call $~lib/typedarray/Float64Array#get:length + i32.gt_s + if + i32.const 336 + i32.const 608 + i32.const 1865 + i32.const 47 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + i32.const 1 + i32.eq + if (result i32) + i32.const 3 + i32.const 0 + i32.eq + else + i32.const 0 + end + if (result i32) + i32.const 0 + if (result i32) + i32.const 0 + else + i32.const 0 end + i32.eqz + else + i32.const 0 end - local.get $2 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - call $~lib/typedarray/Float64Array#reverse drop + local.get $5 + i32.load offset=4 + local.get $3 + i32.const 3 + i32.shl + i32.add + local.set $6 + local.get $4 + i32.load offset=4 + local.set $7 + local.get $4 + call $~lib/typedarray/Uint8Array#get:length + local.set $8 i32.const 0 - local.set $4 - loop $for-loop|1 - local.get $4 - local.get $1 + local.set $9 + loop $for-loop|0 + local.get $9 + local.get $8 i32.lt_s - local.set $5 - local.get $5 + local.set $10 + local.get $10 if - local.get $2 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - local.get $4 - call $~lib/typedarray/Float64Array#__get - local.get $0 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - local.get $1 + i32.const 0 + drop + i32.const 0 + if (result i32) + i32.const 1 + i32.eqz + else + i32.const 0 + end + drop i32.const 1 - i32.sub - local.get $4 - i32.sub - call $~lib/array/Array#__get - f64.convert_i32_s - f64.eq - i32.eqz - if + if (result i32) + i32.const 0 + i32.eqz + else i32.const 0 - i32.const 544 - i32.const 547 - i32.const 5 - call $~lib/builtins/abort - unreachable end - local.get $4 + drop + local.get $6 + local.get $9 + i32.const 3 + i32.shl + i32.add + local.get $7 + local.get $9 + i32.const 0 + i32.shl + i32.add + i32.load8_u + f64.convert_i32_u + f64.store + local.get $9 i32.const 1 i32.add - local.set $4 - br $for-loop|1 + local.set $9 + br $for-loop|0 end end - global.get $~lib/memory/__stack_pointer + ) + (func $~lib/typedarray/Float64Array#set<~lib/typedarray/Int16Array> (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.get $0 + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + i32.const 0 + drop local.get $3 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=16 - local.get $7 - i32.const 4 - i32.const 8 - call $~lib/typedarray/Float64Array#subarray - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - call $~lib/typedarray/Float64Array#reverse - local.tee $6 - i32.store offset=20 - local.get $6 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 i32.const 0 - call $~lib/typedarray/Float64Array#__get - f64.const 8 - f64.eq - i32.eqz + i32.lt_s if - i32.const 0 - i32.const 544 - i32.const 552 - i32.const 3 + i32.const 336 + i32.const 608 + i32.const 1864 + i32.const 19 call $~lib/builtins/abort unreachable end - local.get $6 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - i32.const 1 - call $~lib/typedarray/Float64Array#__get - f64.const 7 - f64.eq - i32.eqz + local.get $4 + call $~lib/typedarray/Int16Array#get:length + local.get $3 + i32.add + local.get $5 + call $~lib/typedarray/Float64Array#get:length + i32.gt_s if - i32.const 0 - i32.const 544 - i32.const 553 - i32.const 3 + i32.const 336 + i32.const 608 + i32.const 1865 + i32.const 47 call $~lib/builtins/abort unreachable end - local.get $6 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - i32.const 2 - call $~lib/typedarray/Float64Array#__get - f64.const 6 - f64.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 554 + i32.const 0 + i32.const 1 + i32.eq + if (result i32) i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $6 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - i32.const 3 - call $~lib/typedarray/Float64Array#__get - f64.const 5 - f64.eq - i32.eqz - if + i32.const 1 + i32.eq + else i32.const 0 - i32.const 544 - i32.const 555 - 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) - (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 - call $~stack_check - 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 - local.tee $5 - i32.store - local.get $1 - local.set $4 - local.get $2 - local.set $3 - local.get $3 - local.set $6 - local.get $5 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=4 - local.get $10 - call $~lib/typedarray/Int8Array#get:length - local.set $7 - local.get $7 + if (result i32) i32.const 0 - i32.eq if (result i32) i32.const 1 else - local.get $6 - local.get $7 - i32.ge_s - end - if - i32.const -1 - br $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.0 + i32.const 0 end - local.get $6 + i32.eqz + else i32.const 0 + end + drop + local.get $5 + i32.load offset=4 + local.get $3 + i32.const 3 + i32.shl + i32.add + local.set $6 + local.get $4 + i32.load offset=4 + local.set $7 + local.get $4 + call $~lib/typedarray/Int16Array#get:length + local.set $8 + i32.const 0 + local.set $9 + loop $for-loop|0 + local.get $9 + local.get $8 i32.lt_s + local.set $10 + local.get $10 if - local.get $7 - local.get $6 - i32.add - local.tee $8 i32.const 0 - local.tee $9 - local.get $8 - local.get $9 - i32.gt_s - select - local.set $6 - end - local.get $5 - i32.load offset=4 - local.set $8 - loop $while-continue|0 + drop + i32.const 0 + if (result i32) + i32.const 1 + i32.eqz + else + i32.const 0 + end + drop + i32.const 1 + if (result i32) + i32.const 0 + i32.eqz + else + i32.const 0 + end + drop local.get $6 + local.get $9 + i32.const 3 + i32.shl + i32.add local.get $7 - i32.lt_s - local.set $9 local.get $9 - if - local.get $8 - local.get $6 - i32.const 0 - i32.shl - i32.add - i32.load8_s - local.get $4 - i32.const 24 - i32.shl - i32.const 24 - i32.shr_s - i32.eq - if - local.get $6 - br $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.0 - end - local.get $6 - i32.const 1 - i32.add - local.set $6 - br $while-continue|0 - end + i32.const 1 + i32.shl + i32.add + i32.load16_s + f64.convert_i32_s + f64.store + local.get $9 + i32.const 1 + i32.add + local.set $9 + br $for-loop|0 end - i32.const -1 end - local.set $10 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $10 ) - (func $~lib/typedarray/Int8Array#lastIndexOf (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/typedarray/Float64Array#set<~lib/array/Array> (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -38519,9702 +32335,2067 @@ (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 - call $~stack_check - 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/memory/__stack_pointer - local.get $0 - local.tee $5 - i32.store - local.get $1 - local.set $4 - local.get $2 - local.set $3 - local.get $3 - local.set $6 - local.get $5 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=4 - local.get $10 - call $~lib/typedarray/Int8Array#get:length - local.set $7 - local.get $7 - i32.const 0 - i32.eq - if - i32.const -1 - br $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.0 + local.get $0 + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + i32.const 0 + drop + local.get $3 + i32.const 0 + i32.lt_s + if + i32.const 336 + i32.const 608 + i32.const 1864 + i32.const 19 + call $~lib/builtins/abort + unreachable + end + local.get $4 + call $~lib/array/Array#get:length + local.get $3 + i32.add + local.get $5 + call $~lib/typedarray/Float64Array#get:length + i32.gt_s + if + i32.const 336 + i32.const 608 + i32.const 1865 + i32.const 47 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + i32.const 1 + i32.eq + if (result i32) + i32.const 3 + i32.const 0 + i32.eq + else + i32.const 0 + end + if (result i32) + i32.const 0 + if (result i32) + i32.const 1 + else + i32.const 0 end - local.get $6 + i32.eqz + else i32.const 0 + end + drop + local.get $5 + i32.load offset=4 + local.get $3 + i32.const 3 + i32.shl + i32.add + local.set $6 + local.get $4 + i32.load offset=4 + local.set $7 + local.get $4 + call $~lib/array/Array#get:length + local.set $8 + i32.const 0 + local.set $9 + loop $for-loop|0 + local.get $9 + local.get $8 i32.lt_s + local.set $10 + local.get $10 if - local.get $7 - local.get $6 - i32.add - local.set $6 - else - local.get $6 - local.get $7 - i32.ge_s - if - local.get $7 + i32.const 0 + drop + i32.const 0 + if (result i32) i32.const 1 - i32.sub - local.set $6 + i32.eqz + else + i32.const 0 end - end - local.get $5 - i32.load offset=4 - local.set $8 - loop $while-continue|0 + drop + i32.const 1 + if (result i32) + i32.const 0 + i32.eqz + else + i32.const 0 + end + drop local.get $6 + local.get $9 + i32.const 3 + i32.shl + i32.add + local.get $7 + local.get $9 i32.const 0 - i32.ge_s - local.set $9 + i32.shl + i32.add + i32.load8_s + f64.convert_i32_s + f64.store local.get $9 - if - local.get $8 - local.get $6 - i32.const 0 - i32.shl - i32.add - i32.load8_s - local.get $4 - i32.const 24 - i32.shl - i32.const 24 - i32.shr_s - i32.eq - if - local.get $6 - br $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.0 - end - local.get $6 - i32.const 1 - i32.sub - local.set $6 - br $while-continue|0 - end + i32.const 1 + i32.add + local.set $9 + br $for-loop|0 end - i32.const -1 end - local.set $10 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $10 ) - (func $~lib/typedarray/Int8Array#lastIndexOf@varargs (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/typedarray/Uint8ClampedArray#set<~lib/typedarray/Float32Array> (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 - call $~stack_check - 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 - local.get $0 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store - local.get $3 - call $~lib/typedarray/Int8Array#get:length - local.set $2 - end + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 f32) local.get $0 + local.set $5 local.get $1 + local.set $4 local.get $2 - call $~lib/typedarray/Int8Array#lastIndexOf local.set $3 - global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 0 + drop + local.get $3 + i32.const 0 + i32.lt_s + if + i32.const 336 + i32.const 608 + i32.const 1864 + i32.const 19 + call $~lib/builtins/abort + unreachable + end + local.get $4 + call $~lib/typedarray/Float32Array#get:length + local.get $3 i32.add - global.set $~lib/memory/__stack_pointer + local.get $5 + call $~lib/typedarray/Uint8ClampedArray#get:length + i32.gt_s + if + i32.const 336 + i32.const 608 + i32.const 1865 + i32.const 47 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + i32.const 0 + i32.eq + if (result i32) + i32.const 0 + i32.const 2 + i32.eq + else + i32.const 0 + end + if (result i32) + i32.const 1 + if (result i32) + i32.const 0 + else + i32.const 0 + end + i32.eqz + else + i32.const 0 + end + drop + local.get $5 + i32.load offset=4 local.get $3 - ) - (func $std/typedarray/testArrayIndexOfAndLastIndexOf<~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) - 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 - 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 0 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - global.get $std/typedarray/testArrayIndexOfAndLastIndexOfValues - local.tee $0 - i32.store - local.get $0 + i32.shl + i32.add local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - call $~lib/array/Array#get:length - local.set $1 - global.get $~lib/memory/__stack_pointer - i32.const 0 - local.get $1 - call $~lib/typedarray/Int8Array#constructor - local.tee $2 - i32.store offset=8 + local.get $4 + i32.load offset=4 + local.set $7 + local.get $4 + call $~lib/typedarray/Float32Array#get:length + local.set $8 i32.const 0 - local.set $3 + local.set $9 loop $for-loop|0 - local.get $3 - local.get $1 + local.get $9 + local.get $8 i32.lt_s - local.set $4 - local.get $4 + local.set $10 + local.get $10 if - local.get $2 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - local.get $3 - local.get $0 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=12 + i32.const 1 + drop + i32.const 1 + drop + local.get $7 + local.get $9 + i32.const 2 + i32.shl + i32.add + f32.load + local.set $11 local.get $6 - local.get $3 - call $~lib/array/Array#__get - i32.const 24 + local.get $9 + i32.const 0 i32.shl - i32.const 24 - i32.shr_s - call $~lib/typedarray/Int8Array#__set - local.get $3 + i32.add + local.get $11 + local.get $11 + f32.sub + f32.const 0 + f32.eq + if (result i32) + f32.const 0 + f32.const 255 + local.get $11 + f32.min + f32.max + i32.trunc_f32_u + else + i32.const 0 + end + i32.store8 + local.get $9 i32.const 1 i32.add - local.set $3 + local.set $9 br $for-loop|0 end end + ) + (func $~lib/typedarray/Uint8ClampedArray#set<~lib/typedarray/Int32Array> (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.get $0 + local.set $5 + local.get $1 + local.set $4 local.get $2 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 + local.set $3 i32.const 0 - call $~lib/typedarray/Int8Array#indexOf + drop + local.get $3 i32.const 0 - i32.eq - i32.eqz + i32.lt_s if - i32.const 0 - i32.const 544 - i32.const 580 - i32.const 3 + i32.const 336 + i32.const 608 + i32.const 1864 + i32.const 19 call $~lib/builtins/abort unreachable end - local.get $2 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 11 - i32.const 0 - call $~lib/typedarray/Int8Array#indexOf - i32.const -1 - i32.eq - i32.eqz + local.get $4 + call $~lib/typedarray/Int32Array#get:length + local.get $3 + i32.add + local.get $5 + call $~lib/typedarray/Uint8ClampedArray#get:length + i32.gt_s if - i32.const 0 - i32.const 544 - i32.const 581 - i32.const 3 + i32.const 336 + i32.const 608 + i32.const 1865 + i32.const 47 call $~lib/builtins/abort unreachable end - local.get $2 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const -1 - i32.const 0 - call $~lib/typedarray/Int8Array#indexOf - i32.const -1 + i32.const 1 + i32.const 1 i32.eq - i32.eqz - if + if (result i32) i32.const 0 - i32.const 544 - i32.const 582 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 3 - i32.const 0 - call $~lib/typedarray/Int8Array#indexOf - i32.const 3 - i32.eq - i32.eqz - if + i32.const 2 + i32.eq + else i32.const 0 - i32.const 544 - i32.const 583 - i32.const 3 - call $~lib/builtins/abort - unreachable end - local.get $2 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 3 - i32.const 2 - call $~lib/typedarray/Int8Array#indexOf - i32.const 3 - i32.eq - i32.eqz - if + if (result i32) + i32.const 1 + if (result i32) + i32.const 1 + else + i32.const 0 + end + i32.eqz + else i32.const 0 - i32.const 544 - i32.const 584 - i32.const 3 - call $~lib/builtins/abort - unreachable end - local.get $2 + drop + local.get $5 + i32.load offset=4 + local.get $3 + i32.const 0 + i32.shl + i32.add local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 3 - i32.const 3 - call $~lib/typedarray/Int8Array#indexOf - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 585 - i32.const 3 - call $~lib/builtins/abort - unreachable + local.get $4 + i32.load offset=4 + local.set $7 + local.get $4 + call $~lib/typedarray/Int32Array#get:length + local.set $8 + i32.const 0 + local.set $9 + loop $for-loop|0 + local.get $9 + local.get $8 + i32.lt_s + local.set $10 + local.get $10 + if + i32.const 1 + drop + i32.const 0 + drop + local.get $7 + local.get $9 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $11 + i32.const 1 + i32.eqz + drop + i32.const 1 + i32.const 4 + i32.le_u + drop + local.get $6 + local.get $9 + i32.const 0 + i32.shl + i32.add + local.get $11 + i32.const 31 + i32.shr_s + i32.const -1 + i32.xor + i32.const 255 + local.get $11 + i32.sub + i32.const 31 + i32.shr_s + local.get $11 + i32.or + i32.and + i32.store8 + local.get $9 + i32.const 1 + i32.add + local.set $9 + br $for-loop|0 + end end + ) + (func $~lib/typedarray/Uint8ClampedArray#set<~lib/typedarray/Uint32Array> (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 i32) + local.get $0 + local.set $5 + local.get $1 + local.set $4 local.get $2 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 3 - i32.const 4 - call $~lib/typedarray/Int8Array#indexOf - i32.const -1 - i32.eq - i32.eqz + local.set $3 + i32.const 0 + drop + local.get $3 + i32.const 0 + i32.lt_s if - i32.const 0 - i32.const 544 - i32.const 586 - i32.const 3 + i32.const 336 + i32.const 608 + i32.const 1864 + i32.const 19 call $~lib/builtins/abort unreachable end - local.get $2 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 1 - i32.const 10 - call $~lib/typedarray/Int8Array#indexOf - i32.const -1 - i32.eq - i32.eqz + local.get $4 + call $~lib/typedarray/Uint32Array#get:length + local.get $3 + i32.add + local.get $5 + call $~lib/typedarray/Uint8ClampedArray#get:length + i32.gt_s if - i32.const 0 - i32.const 544 - i32.const 587 - i32.const 3 + i32.const 336 + i32.const 608 + i32.const 1865 + i32.const 47 call $~lib/builtins/abort unreachable end - local.get $2 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 i32.const 1 - i32.const -100 - call $~lib/typedarray/Int8Array#indexOf i32.const 1 i32.eq - i32.eqz - if + if (result i32) + i32.const 0 + i32.const 2 + i32.eq + else i32.const 0 - i32.const 544 - i32.const 588 - i32.const 3 - call $~lib/builtins/abort - unreachable end - local.get $2 + if (result i32) + i32.const 1 + if (result i32) + i32.const 0 + else + i32.const 0 + end + i32.eqz + else + i32.const 0 + end + drop + local.get $5 + i32.load offset=4 + local.get $3 + i32.const 0 + i32.shl + i32.add local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 + local.get $4 + i32.load offset=4 + local.set $7 + local.get $4 + call $~lib/typedarray/Uint32Array#get:length + local.set $8 i32.const 0 - i32.const 1 - global.set $~argumentsLength + local.set $9 + loop $for-loop|0 + local.get $9 + local.get $8 + i32.lt_s + local.set $10 + local.get $10 + if + i32.const 1 + drop + i32.const 0 + drop + local.get $7 + local.get $9 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $11 + i32.const 0 + i32.eqz + drop + local.get $6 + local.get $9 + i32.const 0 + i32.shl + i32.add + i32.const 255 + local.tee $12 + local.get $11 + local.tee $13 + local.get $12 + local.get $13 + i32.lt_u + select + i32.store8 + local.get $9 + i32.const 1 + i32.add + local.set $9 + br $for-loop|0 + end + end + ) + (func $~lib/rt/itcms/__collect + (local $0 i32) i32.const 0 - call $~lib/typedarray/Int8Array#lastIndexOf@varargs + drop + global.get $~lib/rt/itcms/state i32.const 0 - i32.eq - i32.eqz + i32.gt_s if - i32.const 0 - i32.const 544 - i32.const 590 - i32.const 3 - call $~lib/builtins/abort - unreachable + loop $while-continue|0 + global.get $~lib/rt/itcms/state + i32.const 0 + i32.ne + local.set $0 + local.get $0 + if + call $~lib/rt/itcms/step + drop + br $while-continue|0 + end + end end - local.get $2 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 11 - i32.const 1 - global.set $~argumentsLength - i32.const 0 - call $~lib/typedarray/Int8Array#lastIndexOf@varargs - i32.const -1 - i32.eq - i32.eqz - if + call $~lib/rt/itcms/step + drop + loop $while-continue|1 + global.get $~lib/rt/itcms/state i32.const 0 - i32.const 544 - i32.const 591 - i32.const 3 - call $~lib/builtins/abort - unreachable + i32.ne + local.set $0 + local.get $0 + if + call $~lib/rt/itcms/step + drop + br $while-continue|1 + end end - local.get $2 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const -1 - i32.const 1 - global.set $~argumentsLength + 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.const 0 - call $~lib/typedarray/Int8Array#lastIndexOf@varargs - i32.const -1 - i32.eq - i32.eqz - if + drop + i32.const 0 + if (result i32) + i32.const 1 + else i32.const 0 - i32.const 544 - i32.const 592 - i32.const 3 - call $~lib/builtins/abort - unreachable end - local.get $2 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 3 - i32.const 1 - global.set $~argumentsLength - i32.const 0 - call $~lib/typedarray/Int8Array#lastIndexOf@varargs - i32.const 3 - i32.eq - i32.eqz + drop + ) + (func $~lib/rt/__visit_globals (param $0 i32) + (local $1 i32) + global.get $std/typedarray/forEachValues + local.tee $1 if - i32.const 0 - i32.const 544 - i32.const 593 - i32.const 3 - call $~lib/builtins/abort - unreachable + local.get $1 + local.get $0 + call $~lib/rt/itcms/__visit end - local.get $2 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 3 - i32.const 4 - call $~lib/typedarray/Int8Array#lastIndexOf - i32.const 3 - i32.eq - i32.eqz + global.get $std/typedarray/testArrayReverseValues + local.tee $1 if - i32.const 0 - i32.const 544 - i32.const 594 - i32.const 3 - call $~lib/builtins/abort - unreachable + local.get $1 + local.get $0 + call $~lib/rt/itcms/__visit end - local.get $2 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 3 - i32.const 3 - call $~lib/typedarray/Int8Array#lastIndexOf - i32.const 3 - i32.eq - i32.eqz + global.get $std/typedarray/testArrayIndexOfAndLastIndexOfValues + local.tee $1 if - i32.const 0 - i32.const 544 - i32.const 595 - i32.const 3 - call $~lib/builtins/abort - unreachable + local.get $1 + local.get $0 + call $~lib/rt/itcms/__visit end - local.get $2 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 3 - i32.const 2 - call $~lib/typedarray/Int8Array#lastIndexOf - i32.const -1 - i32.eq - i32.eqz + global.get $std/typedarray/testArrayWrapValues + local.tee $1 if - i32.const 0 - i32.const 544 - i32.const 596 - i32.const 3 - call $~lib/builtins/abort - unreachable + local.get $1 + local.get $0 + call $~lib/rt/itcms/__visit end - local.get $2 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 1 - i32.const 100 - call $~lib/typedarray/Int8Array#lastIndexOf - i32.const 1 - i32.eq - i32.eqz + global.get $std/typedarray/setSource1 + local.tee $1 if - i32.const 0 - i32.const 544 - i32.const 597 - i32.const 3 - call $~lib/builtins/abort - unreachable + local.get $1 + local.get $0 + call $~lib/rt/itcms/__visit end - local.get $2 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 1 - i32.const -10 - call $~lib/typedarray/Int8Array#lastIndexOf - i32.const 1 - i32.eq - i32.eqz + global.get $std/typedarray/setSource2 + local.tee $1 if - i32.const 0 - i32.const 544 - i32.const 598 - i32.const 3 - call $~lib/builtins/abort - unreachable + local.get $1 + local.get $0 + call $~lib/rt/itcms/__visit end - local.get $2 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 1 - i32.const -11 - call $~lib/typedarray/Int8Array#lastIndexOf - i32.const -1 - i32.eq - i32.eqz + global.get $std/typedarray/setSource3 + local.tee $1 if - i32.const 0 - i32.const 544 - i32.const 599 - i32.const 3 - call $~lib/builtins/abort - unreachable + local.get $1 + local.get $0 + call $~lib/rt/itcms/__visit end - global.get $~lib/memory/__stack_pointer - local.get $2 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 4 - i32.const 9 - call $~lib/typedarray/Int8Array#subarray - local.tee $5 - i32.store offset=16 - local.get $5 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 3 - i32.const 0 - call $~lib/typedarray/Int8Array#indexOf - i32.const -1 - i32.eq - i32.eqz + global.get $std/typedarray/setSource7 + local.tee $1 if - i32.const 0 - i32.const 544 - i32.const 603 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $5 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 4 - i32.const 0 - call $~lib/typedarray/Int8Array#indexOf - i32.const 4 - i32.const 4 - i32.sub - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 604 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $5 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 5 - i32.const 0 - call $~lib/typedarray/Int8Array#indexOf - i32.const 5 - i32.const 4 - i32.sub - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 605 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $5 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 9 - i32.const 0 - call $~lib/typedarray/Int8Array#indexOf - i32.const -1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 606 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $5 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 10 - i32.const 0 - call $~lib/typedarray/Int8Array#indexOf - i32.const -1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 607 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $5 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 11 - i32.const 0 - call $~lib/typedarray/Int8Array#indexOf - i32.const -1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 608 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $5 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 5 - i32.const 1 - call $~lib/typedarray/Int8Array#indexOf - i32.const 5 - i32.const 4 - i32.sub - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 609 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $5 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 5 - i32.const 2 - call $~lib/typedarray/Int8Array#indexOf - i32.const -1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 610 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 20 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/typedarray/Uint8Array#indexOf (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.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.0 (result i32) - global.get $~lib/memory/__stack_pointer - local.get $0 - local.tee $5 - i32.store local.get $1 - local.set $4 - local.get $2 - local.set $3 - local.get $3 - local.set $6 - local.get $5 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=4 - local.get $10 - call $~lib/typedarray/Uint8Array#get:length - local.set $7 - local.get $7 - i32.const 0 - i32.eq - if (result i32) - i32.const 1 - else - local.get $6 - local.get $7 - i32.ge_s - end - if - i32.const -1 - br $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.0 - end - local.get $6 - i32.const 0 - i32.lt_s - if - local.get $7 - local.get $6 - i32.add - local.tee $8 - i32.const 0 - local.tee $9 - local.get $8 - local.get $9 - i32.gt_s - select - local.set $6 - end - local.get $5 - i32.load offset=4 - local.set $8 - loop $while-continue|0 - local.get $6 - local.get $7 - i32.lt_s - local.set $9 - local.get $9 - if - local.get $8 - local.get $6 - i32.const 0 - i32.shl - i32.add - i32.load8_u - local.get $4 - i32.const 255 - i32.and - i32.eq - if - local.get $6 - br $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.0 - end - local.get $6 - i32.const 1 - i32.add - local.set $6 - br $while-continue|0 - end - end - i32.const -1 + local.get $0 + call $~lib/rt/itcms/__visit end - local.set $10 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $10 + i32.const 336 + local.get $0 + call $~lib/rt/itcms/__visit + i32.const 32 + local.get $0 + call $~lib/rt/itcms/__visit + i32.const 144 + local.get $0 + call $~lib/rt/itcms/__visit + i32.const 6704 + local.get $0 + call $~lib/rt/itcms/__visit + i32.const 7760 + local.get $0 + call $~lib/rt/itcms/__visit ) - (func $~lib/typedarray/Uint8Array#lastIndexOf (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.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - 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) - global.get $~lib/memory/__stack_pointer - local.get $0 - local.tee $5 - i32.store - local.get $1 - local.set $4 + (func $~lib/arraybuffer/ArrayBufferView~visit (param $0 i32) (param $1 i32) + (local $2 i32) + local.get $0 + i32.load + local.tee $2 + if local.get $2 - local.set $3 - local.get $3 - local.set $6 - local.get $5 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=4 - local.get $10 - call $~lib/typedarray/Uint8Array#get:length - local.set $7 - local.get $7 - i32.const 0 - i32.eq - if - i32.const -1 - br $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.0 - end - local.get $6 - i32.const 0 - i32.lt_s - if - local.get $7 - local.get $6 - i32.add - local.set $6 - else - local.get $6 - local.get $7 - i32.ge_s - if - local.get $7 - i32.const 1 - i32.sub - local.set $6 - end - end - local.get $5 - i32.load offset=4 - local.set $8 - loop $while-continue|0 - local.get $6 - i32.const 0 - i32.ge_s - local.set $9 - local.get $9 - if - local.get $8 - local.get $6 - i32.const 0 - i32.shl - i32.add - i32.load8_u - local.get $4 - i32.const 255 - i32.and - i32.eq - if - local.get $6 - br $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.0 - end - local.get $6 - i32.const 1 - i32.sub - local.set $6 - br $while-continue|0 - end - end - i32.const -1 + local.get $1 + call $~lib/rt/itcms/__visit end - local.set $10 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $10 ) - (func $~lib/typedarray/Uint8Array#lastIndexOf@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 - call $~stack_check - 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 - local.get $0 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store - local.get $3 - call $~lib/typedarray/Uint8Array#get:length - local.set $2 - end + (func $~lib/typedarray/Int8Array~visit (param $0 i32) (param $1 i32) local.get $0 local.get $1 - local.get $2 - call $~lib/typedarray/Uint8Array#lastIndexOf - local.set $3 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $3 + call $~lib/arraybuffer/ArrayBufferView~visit ) - (func $std/typedarray/testArrayIndexOfAndLastIndexOf<~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) - 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 - 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 0 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - global.get $std/typedarray/testArrayIndexOfAndLastIndexOfValues - local.tee $0 - i32.store + (func $~lib/typedarray/Uint8Array~visit (param $0 i32) (param $1 i32) local.get $0 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - call $~lib/array/Array#get:length - local.set $1 - global.get $~lib/memory/__stack_pointer - i32.const 0 local.get $1 - call $~lib/typedarray/Uint8Array#constructor - local.tee $2 - i32.store offset=8 - i32.const 0 - local.set $3 - loop $for-loop|0 - local.get $3 - local.get $1 - i32.lt_s - local.set $4 - local.get $4 - if - local.get $2 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - local.get $3 - local.get $0 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=12 - local.get $6 - local.get $3 - call $~lib/array/Array#__get - i32.const 255 - i32.and - call $~lib/typedarray/Uint8Array#__set - local.get $3 - i32.const 1 - i32.add - local.set $3 - br $for-loop|0 - end - end - local.get $2 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - i32.const 0 - call $~lib/typedarray/Uint8Array#indexOf - i32.const 0 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 580 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 11 - i32.const 0 - call $~lib/typedarray/Uint8Array#indexOf - i32.const -1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 581 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const -1 - i32.const 0 - call $~lib/typedarray/Uint8Array#indexOf - i32.const -1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 582 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 3 - i32.const 0 - call $~lib/typedarray/Uint8Array#indexOf - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 583 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 3 - i32.const 2 - call $~lib/typedarray/Uint8Array#indexOf - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 584 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 3 - i32.const 3 - call $~lib/typedarray/Uint8Array#indexOf - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 585 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 3 - i32.const 4 - call $~lib/typedarray/Uint8Array#indexOf - i32.const -1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 586 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 1 - i32.const 10 - call $~lib/typedarray/Uint8Array#indexOf - i32.const -1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 587 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 1 - i32.const -100 - call $~lib/typedarray/Uint8Array#indexOf - i32.const 1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 588 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - i32.const 1 - global.set $~argumentsLength - i32.const 0 - call $~lib/typedarray/Uint8Array#lastIndexOf@varargs - i32.const 0 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 590 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 11 - i32.const 1 - global.set $~argumentsLength - i32.const 0 - call $~lib/typedarray/Uint8Array#lastIndexOf@varargs - i32.const -1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 591 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const -1 - i32.const 1 - global.set $~argumentsLength - i32.const 0 - call $~lib/typedarray/Uint8Array#lastIndexOf@varargs - i32.const -1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 592 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 3 - i32.const 1 - global.set $~argumentsLength - i32.const 0 - call $~lib/typedarray/Uint8Array#lastIndexOf@varargs - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 593 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 3 - i32.const 4 - call $~lib/typedarray/Uint8Array#lastIndexOf - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 594 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 3 - i32.const 3 - call $~lib/typedarray/Uint8Array#lastIndexOf - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 595 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 3 - i32.const 2 - call $~lib/typedarray/Uint8Array#lastIndexOf - i32.const -1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 596 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 1 - i32.const 100 - call $~lib/typedarray/Uint8Array#lastIndexOf - i32.const 1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 597 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 1 - i32.const -10 - call $~lib/typedarray/Uint8Array#lastIndexOf - i32.const 1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 598 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 1 - i32.const -11 - call $~lib/typedarray/Uint8Array#lastIndexOf - i32.const -1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 599 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $2 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 4 - i32.const 9 - call $~lib/typedarray/Uint8Array#subarray - local.tee $5 - i32.store offset=16 - local.get $5 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 3 - i32.const 0 - call $~lib/typedarray/Uint8Array#indexOf - i32.const -1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 603 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $5 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 4 + call $~lib/arraybuffer/ArrayBufferView~visit + ) + (func $~lib/typedarray/Uint8ClampedArray~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/arraybuffer/ArrayBufferView~visit + ) + (func $~lib/typedarray/Int16Array~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/arraybuffer/ArrayBufferView~visit + ) + (func $~lib/typedarray/Uint16Array~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/arraybuffer/ArrayBufferView~visit + ) + (func $~lib/typedarray/Int32Array~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/arraybuffer/ArrayBufferView~visit + ) + (func $~lib/typedarray/Uint32Array~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/arraybuffer/ArrayBufferView~visit + ) + (func $~lib/typedarray/Int64Array~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/arraybuffer/ArrayBufferView~visit + ) + (func $~lib/typedarray/Uint64Array~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/arraybuffer/ArrayBufferView~visit + ) + (func $~lib/typedarray/Float32Array~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/arraybuffer/ArrayBufferView~visit + ) + (func $~lib/typedarray/Float64Array~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/arraybuffer/ArrayBufferView~visit + ) + (func $~lib/function/Function<%28f64%2Cf64%29=>i32>#__visit (param $0 i32) (param $1 i32) + local.get $0 + i32.load offset=4 + local.get $1 + call $~lib/rt/itcms/__visit + ) + (func $~lib/function/Function<%28f64%2Cf64%29=>i32>~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/function/Function<%28f64%2Cf64%29=>i32>#__visit + ) + (func $~lib/array/Array#__visit (param $0 i32) (param $1 i32) i32.const 0 - call $~lib/typedarray/Uint8Array#indexOf - i32.const 4 - i32.const 4 - i32.sub - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 604 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $5 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 5 + drop + local.get $0 + i32.load + local.get $1 + call $~lib/rt/itcms/__visit + ) + (func $~lib/array/Array~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/array/Array#__visit + ) + (func $~lib/array/Array#__visit (param $0 i32) (param $1 i32) i32.const 0 - call $~lib/typedarray/Uint8Array#indexOf - i32.const 5 - i32.const 4 - i32.sub - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 605 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $5 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 9 - i32.const 0 - call $~lib/typedarray/Uint8Array#indexOf - i32.const -1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 606 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $5 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 10 - i32.const 0 - call $~lib/typedarray/Uint8Array#indexOf - i32.const -1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 607 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $5 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 11 - i32.const 0 - call $~lib/typedarray/Uint8Array#indexOf - i32.const -1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 608 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $5 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 5 - i32.const 1 - call $~lib/typedarray/Uint8Array#indexOf - i32.const 5 - i32.const 4 - i32.sub - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 609 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $5 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 5 - i32.const 2 - call $~lib/typedarray/Uint8Array#indexOf - i32.const -1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 610 - 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 + drop + local.get $0 + i32.load + local.get $1 + call $~lib/rt/itcms/__visit ) - (func $~lib/typedarray/Uint8ClampedArray#indexOf (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.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8ClampedArray,u8>|inlined.0 (result i32) - global.get $~lib/memory/__stack_pointer - local.get $0 - local.tee $5 - i32.store - local.get $1 - local.set $4 - local.get $2 - local.set $3 - local.get $3 - local.set $6 - local.get $5 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=4 - local.get $10 - call $~lib/typedarray/Uint8ClampedArray#get:length - local.set $7 - local.get $7 - i32.const 0 - i32.eq - if (result i32) - i32.const 1 - else - local.get $6 - local.get $7 - i32.ge_s - end - if - i32.const -1 - br $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8ClampedArray,u8>|inlined.0 - end - local.get $6 - i32.const 0 - i32.lt_s - if - local.get $7 - local.get $6 - i32.add - local.tee $8 - i32.const 0 - local.tee $9 - local.get $8 - local.get $9 - i32.gt_s - select - local.set $6 - end - local.get $5 - i32.load offset=4 - local.set $8 - loop $while-continue|0 - local.get $6 - local.get $7 - i32.lt_s - local.set $9 - local.get $9 - if - local.get $8 - local.get $6 - i32.const 0 - i32.shl - i32.add - i32.load8_u - local.get $4 - i32.const 255 - i32.and - i32.eq - if - local.get $6 - br $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8ClampedArray,u8>|inlined.0 - end - local.get $6 - i32.const 1 - i32.add - local.set $6 - br $while-continue|0 - end - end - i32.const -1 - end - local.set $10 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $10 + (func $~lib/array/Array~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/array/Array#__visit ) - (func $~lib/typedarray/Uint8ClampedArray#lastIndexOf (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.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - 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) - global.get $~lib/memory/__stack_pointer - local.get $0 - local.tee $5 - i32.store - local.get $1 - local.set $4 - local.get $2 - local.set $3 - local.get $3 - local.set $6 - local.get $5 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=4 - local.get $10 - call $~lib/typedarray/Uint8ClampedArray#get:length - local.set $7 - local.get $7 - i32.const 0 - i32.eq - if - i32.const -1 - br $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8ClampedArray,u8>|inlined.0 - end - local.get $6 - i32.const 0 - i32.lt_s - if - local.get $7 - local.get $6 - i32.add - local.set $6 - else - local.get $6 - local.get $7 - i32.ge_s - if - local.get $7 - i32.const 1 - i32.sub - local.set $6 - end - end - local.get $5 - i32.load offset=4 - local.set $8 - loop $while-continue|0 - local.get $6 - i32.const 0 - i32.ge_s - local.set $9 - local.get $9 - if - local.get $8 - local.get $6 - i32.const 0 - i32.shl - i32.add - i32.load8_u - local.get $4 - i32.const 255 - i32.and - i32.eq - if - local.get $6 - br $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8ClampedArray,u8>|inlined.0 - end - local.get $6 - i32.const 1 - i32.sub - local.set $6 - br $while-continue|0 - end - end - i32.const -1 - end - local.set $10 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $10 + (func $~lib/function/Function<%28i8%2Ci8%2Ci32%2C~lib/typedarray/Int8Array%29=>i8>#__visit (param $0 i32) (param $1 i32) + local.get $0 + i32.load offset=4 + local.get $1 + call $~lib/rt/itcms/__visit ) - (func $~lib/typedarray/Uint8ClampedArray#lastIndexOf@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 - call $~stack_check - 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 - local.get $0 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store - local.get $3 - call $~lib/typedarray/Uint8ClampedArray#get:length - local.set $2 - end + (func $~lib/function/Function<%28i8%2Ci8%2Ci32%2C~lib/typedarray/Int8Array%29=>i8>~visit (param $0 i32) (param $1 i32) local.get $0 local.get $1 - local.get $2 - call $~lib/typedarray/Uint8ClampedArray#lastIndexOf - local.set $3 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $3 + call $~lib/function/Function<%28i8%2Ci8%2Ci32%2C~lib/typedarray/Int8Array%29=>i8>#__visit ) - (func $std/typedarray/testArrayIndexOfAndLastIndexOf<~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) - 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 - 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 0 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - global.get $std/typedarray/testArrayIndexOfAndLastIndexOfValues - local.tee $0 - i32.store + (func $~lib/function/Function<%28u8%2Cu8%2Ci32%2C~lib/typedarray/Uint8Array%29=>u8>#__visit (param $0 i32) (param $1 i32) local.get $0 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - call $~lib/array/Array#get:length - local.set $1 - global.get $~lib/memory/__stack_pointer - i32.const 0 + i32.load offset=4 local.get $1 - call $~lib/typedarray/Uint8ClampedArray#constructor - local.tee $2 - i32.store offset=8 - i32.const 0 - local.set $3 - loop $for-loop|0 - local.get $3 - local.get $1 - i32.lt_s - local.set $4 - local.get $4 - if - local.get $2 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - local.get $3 - local.get $0 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=12 - local.get $6 - local.get $3 - call $~lib/array/Array#__get - i32.const 255 - i32.and - call $~lib/typedarray/Uint8ClampedArray#__set - local.get $3 - i32.const 1 - i32.add - local.set $3 - br $for-loop|0 - end - end - local.get $2 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - i32.const 0 - call $~lib/typedarray/Uint8ClampedArray#indexOf - i32.const 0 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 580 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 11 - i32.const 0 - call $~lib/typedarray/Uint8ClampedArray#indexOf - i32.const -1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 581 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const -1 - i32.const 0 - call $~lib/typedarray/Uint8ClampedArray#indexOf - i32.const -1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 582 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 3 - i32.const 0 - call $~lib/typedarray/Uint8ClampedArray#indexOf - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 583 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 3 - i32.const 2 - call $~lib/typedarray/Uint8ClampedArray#indexOf - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 584 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 3 - i32.const 3 - call $~lib/typedarray/Uint8ClampedArray#indexOf - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 585 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 3 - i32.const 4 - call $~lib/typedarray/Uint8ClampedArray#indexOf - i32.const -1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 586 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 1 - i32.const 10 - call $~lib/typedarray/Uint8ClampedArray#indexOf - i32.const -1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 587 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 1 - i32.const -100 - call $~lib/typedarray/Uint8ClampedArray#indexOf - i32.const 1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 588 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - i32.const 1 - global.set $~argumentsLength - i32.const 0 - call $~lib/typedarray/Uint8ClampedArray#lastIndexOf@varargs - i32.const 0 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 590 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 11 - i32.const 1 - global.set $~argumentsLength - i32.const 0 - call $~lib/typedarray/Uint8ClampedArray#lastIndexOf@varargs - i32.const -1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 591 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const -1 - i32.const 1 - global.set $~argumentsLength - i32.const 0 - call $~lib/typedarray/Uint8ClampedArray#lastIndexOf@varargs - i32.const -1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 592 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 3 - i32.const 1 - global.set $~argumentsLength - i32.const 0 - call $~lib/typedarray/Uint8ClampedArray#lastIndexOf@varargs - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 593 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 3 - i32.const 4 - call $~lib/typedarray/Uint8ClampedArray#lastIndexOf - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 594 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 3 - i32.const 3 - call $~lib/typedarray/Uint8ClampedArray#lastIndexOf - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 595 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 3 - i32.const 2 - call $~lib/typedarray/Uint8ClampedArray#lastIndexOf - i32.const -1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 596 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 1 - i32.const 100 - call $~lib/typedarray/Uint8ClampedArray#lastIndexOf - i32.const 1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 597 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 1 - i32.const -10 - call $~lib/typedarray/Uint8ClampedArray#lastIndexOf - i32.const 1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 598 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 1 - i32.const -11 - call $~lib/typedarray/Uint8ClampedArray#lastIndexOf - i32.const -1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 599 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $2 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 4 - i32.const 9 - call $~lib/typedarray/Uint8ClampedArray#subarray - local.tee $5 - i32.store offset=16 - local.get $5 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 3 - i32.const 0 - call $~lib/typedarray/Uint8ClampedArray#indexOf - i32.const -1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 603 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $5 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 4 - i32.const 0 - call $~lib/typedarray/Uint8ClampedArray#indexOf - i32.const 4 - i32.const 4 - i32.sub - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 604 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $5 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 5 - i32.const 0 - call $~lib/typedarray/Uint8ClampedArray#indexOf - i32.const 5 - i32.const 4 - i32.sub - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 605 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $5 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 9 - i32.const 0 - call $~lib/typedarray/Uint8ClampedArray#indexOf - i32.const -1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 606 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $5 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 10 - i32.const 0 - call $~lib/typedarray/Uint8ClampedArray#indexOf - i32.const -1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 607 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $5 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 11 - i32.const 0 - call $~lib/typedarray/Uint8ClampedArray#indexOf - i32.const -1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 608 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $5 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 5 - i32.const 1 - call $~lib/typedarray/Uint8ClampedArray#indexOf - i32.const 5 - i32.const 4 - i32.sub - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 609 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $5 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 5 - i32.const 2 - call $~lib/typedarray/Uint8ClampedArray#indexOf - i32.const -1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 610 - 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 + call $~lib/rt/itcms/__visit ) - (func $~lib/typedarray/Int16Array#indexOf (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.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - 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 - local.tee $5 - i32.store - local.get $1 - local.set $4 - local.get $2 - local.set $3 - local.get $3 - local.set $6 - local.get $5 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=4 - local.get $10 - call $~lib/typedarray/Int16Array#get:length - local.set $7 - local.get $7 - i32.const 0 - i32.eq - if (result i32) - i32.const 1 - else - local.get $6 - local.get $7 - i32.ge_s - end - if - i32.const -1 - br $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.0 - end - local.get $6 - i32.const 0 - i32.lt_s - if - local.get $7 - local.get $6 - i32.add - local.tee $8 - i32.const 0 - local.tee $9 - local.get $8 - local.get $9 - i32.gt_s - select - local.set $6 - end - local.get $5 - i32.load offset=4 - local.set $8 - loop $while-continue|0 - local.get $6 - local.get $7 - i32.lt_s - local.set $9 - local.get $9 - if - local.get $8 - local.get $6 - i32.const 1 - i32.shl - i32.add - i32.load16_s - local.get $4 - i32.const 16 - i32.shl - i32.const 16 - i32.shr_s - i32.eq - if - local.get $6 - br $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.0 - end - local.get $6 - i32.const 1 - i32.add - local.set $6 - br $while-continue|0 - end - end - i32.const -1 - end - local.set $10 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $10 + (func $~lib/function/Function<%28u8%2Cu8%2Ci32%2C~lib/typedarray/Uint8Array%29=>u8>~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/function/Function<%28u8%2Cu8%2Ci32%2C~lib/typedarray/Uint8Array%29=>u8>#__visit ) - (func $~lib/typedarray/Int16Array#lastIndexOf (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.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - 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/memory/__stack_pointer - local.get $0 - local.tee $5 - i32.store - local.get $1 - local.set $4 - local.get $2 - local.set $3 - local.get $3 - local.set $6 - local.get $5 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=4 - local.get $10 - call $~lib/typedarray/Int16Array#get:length - local.set $7 - local.get $7 - i32.const 0 - i32.eq - if - i32.const -1 - br $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.0 - end - local.get $6 - i32.const 0 - i32.lt_s - if - local.get $7 - local.get $6 - i32.add - local.set $6 - else - local.get $6 - local.get $7 - i32.ge_s - if - local.get $7 - i32.const 1 - i32.sub - local.set $6 - end - end - local.get $5 - i32.load offset=4 - local.set $8 - loop $while-continue|0 - local.get $6 - i32.const 0 - i32.ge_s - local.set $9 - local.get $9 - if - local.get $8 - local.get $6 - i32.const 1 - i32.shl - i32.add - i32.load16_s - local.get $4 - i32.const 16 - i32.shl - i32.const 16 - i32.shr_s - i32.eq - if - local.get $6 - br $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.0 - end - local.get $6 - i32.const 1 - i32.sub - local.set $6 - br $while-continue|0 - end - end - i32.const -1 - end - local.set $10 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $10 + (func $~lib/function/Function<%28u8%2Cu8%2Ci32%2C~lib/typedarray/Uint8ClampedArray%29=>u8>#__visit (param $0 i32) (param $1 i32) + local.get $0 + i32.load offset=4 + local.get $1 + call $~lib/rt/itcms/__visit ) - (func $~lib/typedarray/Int16Array#lastIndexOf@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 - call $~stack_check - 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 - local.get $0 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store - local.get $3 - call $~lib/typedarray/Int16Array#get:length - local.set $2 - end + (func $~lib/function/Function<%28u8%2Cu8%2Ci32%2C~lib/typedarray/Uint8ClampedArray%29=>u8>~visit (param $0 i32) (param $1 i32) local.get $0 local.get $1 - local.get $2 - call $~lib/typedarray/Int16Array#lastIndexOf - local.set $3 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $3 + call $~lib/function/Function<%28u8%2Cu8%2Ci32%2C~lib/typedarray/Uint8ClampedArray%29=>u8>#__visit ) - (func $std/typedarray/testArrayIndexOfAndLastIndexOf<~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) - 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 - 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 0 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - global.get $std/typedarray/testArrayIndexOfAndLastIndexOfValues - local.tee $0 - i32.store + (func $~lib/function/Function<%28i16%2Ci16%2Ci32%2C~lib/typedarray/Int16Array%29=>i16>#__visit (param $0 i32) (param $1 i32) local.get $0 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - call $~lib/array/Array#get:length - local.set $1 - global.get $~lib/memory/__stack_pointer - i32.const 0 + i32.load offset=4 local.get $1 - call $~lib/typedarray/Int16Array#constructor - local.tee $2 - i32.store offset=8 - i32.const 0 - local.set $3 - loop $for-loop|0 - local.get $3 - local.get $1 - i32.lt_s - local.set $4 - local.get $4 - if - local.get $2 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - local.get $3 - local.get $0 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=12 - local.get $6 - local.get $3 - call $~lib/array/Array#__get - i32.const 16 - i32.shl - i32.const 16 - i32.shr_s - call $~lib/typedarray/Int16Array#__set - local.get $3 - i32.const 1 - i32.add - local.set $3 - br $for-loop|0 - end - end - local.get $2 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - i32.const 0 - call $~lib/typedarray/Int16Array#indexOf - i32.const 0 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 580 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 11 - i32.const 0 - call $~lib/typedarray/Int16Array#indexOf - i32.const -1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 581 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const -1 - i32.const 0 - call $~lib/typedarray/Int16Array#indexOf - i32.const -1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 582 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 3 - i32.const 0 - call $~lib/typedarray/Int16Array#indexOf - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 583 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 3 - i32.const 2 - call $~lib/typedarray/Int16Array#indexOf - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 584 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 3 - i32.const 3 - call $~lib/typedarray/Int16Array#indexOf - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 585 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 3 - i32.const 4 - call $~lib/typedarray/Int16Array#indexOf - i32.const -1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 586 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 1 - i32.const 10 - call $~lib/typedarray/Int16Array#indexOf - i32.const -1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 587 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 1 - i32.const -100 - call $~lib/typedarray/Int16Array#indexOf - i32.const 1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 588 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - i32.const 1 - global.set $~argumentsLength - i32.const 0 - call $~lib/typedarray/Int16Array#lastIndexOf@varargs - i32.const 0 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 590 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 11 - i32.const 1 - global.set $~argumentsLength - i32.const 0 - call $~lib/typedarray/Int16Array#lastIndexOf@varargs - i32.const -1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 591 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const -1 - i32.const 1 - global.set $~argumentsLength - i32.const 0 - call $~lib/typedarray/Int16Array#lastIndexOf@varargs - i32.const -1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 592 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 3 - i32.const 1 - global.set $~argumentsLength - i32.const 0 - call $~lib/typedarray/Int16Array#lastIndexOf@varargs - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 593 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 3 - i32.const 4 - call $~lib/typedarray/Int16Array#lastIndexOf - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 594 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 3 - i32.const 3 - call $~lib/typedarray/Int16Array#lastIndexOf - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 595 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 3 - i32.const 2 - call $~lib/typedarray/Int16Array#lastIndexOf - i32.const -1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 596 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 1 - i32.const 100 - call $~lib/typedarray/Int16Array#lastIndexOf - i32.const 1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 597 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 1 - i32.const -10 - call $~lib/typedarray/Int16Array#lastIndexOf - i32.const 1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 598 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 1 - i32.const -11 - call $~lib/typedarray/Int16Array#lastIndexOf - i32.const -1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 599 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $2 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 4 - i32.const 9 - call $~lib/typedarray/Int16Array#subarray - local.tee $5 - i32.store offset=16 - local.get $5 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 3 - i32.const 0 - call $~lib/typedarray/Int16Array#indexOf - i32.const -1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 603 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $5 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 4 - i32.const 0 - call $~lib/typedarray/Int16Array#indexOf - i32.const 4 - i32.const 4 - i32.sub - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 604 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $5 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 5 - i32.const 0 - call $~lib/typedarray/Int16Array#indexOf - i32.const 5 - i32.const 4 - i32.sub - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 605 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $5 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 9 - i32.const 0 - call $~lib/typedarray/Int16Array#indexOf - i32.const -1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 606 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $5 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 10 - i32.const 0 - call $~lib/typedarray/Int16Array#indexOf - i32.const -1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 607 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $5 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 11 - i32.const 0 - call $~lib/typedarray/Int16Array#indexOf - i32.const -1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 608 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $5 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 5 - i32.const 1 - call $~lib/typedarray/Int16Array#indexOf - i32.const 5 - i32.const 4 - i32.sub - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 609 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $5 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 5 - i32.const 2 - call $~lib/typedarray/Int16Array#indexOf - i32.const -1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 610 - 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 + call $~lib/rt/itcms/__visit ) - (func $~lib/typedarray/Uint16Array#indexOf (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.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.0 (result i32) - global.get $~lib/memory/__stack_pointer - local.get $0 - local.tee $5 - i32.store - local.get $1 - local.set $4 - local.get $2 - local.set $3 - local.get $3 - local.set $6 - local.get $5 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=4 - local.get $10 - call $~lib/typedarray/Uint16Array#get:length - local.set $7 - local.get $7 - i32.const 0 - i32.eq - if (result i32) - i32.const 1 - else - local.get $6 - local.get $7 - i32.ge_s - end - if - i32.const -1 - br $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.0 - end - local.get $6 - i32.const 0 - i32.lt_s - if - local.get $7 - local.get $6 - i32.add - local.tee $8 - i32.const 0 - local.tee $9 - local.get $8 - local.get $9 - i32.gt_s - select - local.set $6 - end - local.get $5 - i32.load offset=4 - local.set $8 - loop $while-continue|0 - local.get $6 - local.get $7 - i32.lt_s - local.set $9 - local.get $9 - if - local.get $8 - local.get $6 - i32.const 1 - i32.shl - i32.add - i32.load16_u - local.get $4 - i32.const 65535 - i32.and - i32.eq - if - local.get $6 - br $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.0 - end - local.get $6 - i32.const 1 - i32.add - local.set $6 - br $while-continue|0 - end - end - i32.const -1 - end - local.set $10 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $10 + (func $~lib/function/Function<%28i16%2Ci16%2Ci32%2C~lib/typedarray/Int16Array%29=>i16>~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/function/Function<%28i16%2Ci16%2Ci32%2C~lib/typedarray/Int16Array%29=>i16>#__visit ) - (func $~lib/typedarray/Uint16Array#lastIndexOf (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.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - 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) - global.get $~lib/memory/__stack_pointer - local.get $0 - local.tee $5 - i32.store - local.get $1 - local.set $4 - local.get $2 - local.set $3 - local.get $3 - local.set $6 - local.get $5 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=4 - local.get $10 - call $~lib/typedarray/Uint16Array#get:length - local.set $7 - local.get $7 - i32.const 0 - i32.eq - if - i32.const -1 - br $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.0 - end - local.get $6 - i32.const 0 - i32.lt_s - if - local.get $7 - local.get $6 - i32.add - local.set $6 - else - local.get $6 - local.get $7 - i32.ge_s - if - local.get $7 - i32.const 1 - i32.sub - local.set $6 - end - end - local.get $5 - i32.load offset=4 - local.set $8 - loop $while-continue|0 - local.get $6 - i32.const 0 - i32.ge_s - local.set $9 - local.get $9 - if - local.get $8 - local.get $6 - i32.const 1 - i32.shl - i32.add - i32.load16_u - local.get $4 - i32.const 65535 - i32.and - i32.eq - if - local.get $6 - br $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.0 - end - local.get $6 - i32.const 1 - i32.sub - local.set $6 - br $while-continue|0 - end - end - i32.const -1 - end - local.set $10 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $10 + (func $~lib/function/Function<%28u16%2Cu16%2Ci32%2C~lib/typedarray/Uint16Array%29=>u16>#__visit (param $0 i32) (param $1 i32) + local.get $0 + i32.load offset=4 + local.get $1 + call $~lib/rt/itcms/__visit ) - (func $~lib/typedarray/Uint16Array#lastIndexOf@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 - call $~stack_check - 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 - local.get $0 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store - local.get $3 - call $~lib/typedarray/Uint16Array#get:length - local.set $2 - end + (func $~lib/function/Function<%28u16%2Cu16%2Ci32%2C~lib/typedarray/Uint16Array%29=>u16>~visit (param $0 i32) (param $1 i32) local.get $0 local.get $1 - local.get $2 - call $~lib/typedarray/Uint16Array#lastIndexOf - local.set $3 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $3 + call $~lib/function/Function<%28u16%2Cu16%2Ci32%2C~lib/typedarray/Uint16Array%29=>u16>#__visit ) - (func $std/typedarray/testArrayIndexOfAndLastIndexOf<~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) - 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 - 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 0 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - global.get $std/typedarray/testArrayIndexOfAndLastIndexOfValues - local.tee $0 - i32.store + (func $~lib/function/Function<%28i32%2Ci32%2Ci32%2C~lib/typedarray/Int32Array%29=>i32>#__visit (param $0 i32) (param $1 i32) local.get $0 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - call $~lib/array/Array#get:length - local.set $1 - global.get $~lib/memory/__stack_pointer - i32.const 0 + i32.load offset=4 local.get $1 - call $~lib/typedarray/Uint16Array#constructor - local.tee $2 - i32.store offset=8 - i32.const 0 - local.set $3 - loop $for-loop|0 - local.get $3 - local.get $1 - i32.lt_s - local.set $4 - local.get $4 - if - local.get $2 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - local.get $3 - local.get $0 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=12 - local.get $6 - local.get $3 - call $~lib/array/Array#__get - i32.const 65535 - i32.and - call $~lib/typedarray/Uint16Array#__set - local.get $3 - i32.const 1 - i32.add - local.set $3 - br $for-loop|0 - end - end - local.get $2 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - i32.const 0 - call $~lib/typedarray/Uint16Array#indexOf - i32.const 0 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 580 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 11 - i32.const 0 - call $~lib/typedarray/Uint16Array#indexOf - i32.const -1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 581 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const -1 - i32.const 0 - call $~lib/typedarray/Uint16Array#indexOf - i32.const -1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 582 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 3 - i32.const 0 - call $~lib/typedarray/Uint16Array#indexOf - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 583 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 3 - i32.const 2 - call $~lib/typedarray/Uint16Array#indexOf - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 584 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 3 - i32.const 3 - call $~lib/typedarray/Uint16Array#indexOf - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 585 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 3 - i32.const 4 - call $~lib/typedarray/Uint16Array#indexOf - i32.const -1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 586 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 1 - i32.const 10 - call $~lib/typedarray/Uint16Array#indexOf - i32.const -1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 587 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 1 - i32.const -100 - call $~lib/typedarray/Uint16Array#indexOf - i32.const 1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 588 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - i32.const 1 - global.set $~argumentsLength - i32.const 0 - call $~lib/typedarray/Uint16Array#lastIndexOf@varargs - i32.const 0 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 590 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 11 - i32.const 1 - global.set $~argumentsLength - i32.const 0 - call $~lib/typedarray/Uint16Array#lastIndexOf@varargs - i32.const -1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 591 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const -1 - i32.const 1 - global.set $~argumentsLength - i32.const 0 - call $~lib/typedarray/Uint16Array#lastIndexOf@varargs - i32.const -1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 592 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 3 - i32.const 1 - global.set $~argumentsLength - i32.const 0 - call $~lib/typedarray/Uint16Array#lastIndexOf@varargs - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 593 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 3 - i32.const 4 - call $~lib/typedarray/Uint16Array#lastIndexOf - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 594 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 3 - i32.const 3 - call $~lib/typedarray/Uint16Array#lastIndexOf - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 595 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 3 - i32.const 2 - call $~lib/typedarray/Uint16Array#lastIndexOf - i32.const -1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 596 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 1 - i32.const 100 - call $~lib/typedarray/Uint16Array#lastIndexOf - i32.const 1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 597 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 1 - i32.const -10 - call $~lib/typedarray/Uint16Array#lastIndexOf - i32.const 1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 598 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 1 - i32.const -11 - call $~lib/typedarray/Uint16Array#lastIndexOf - i32.const -1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 599 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $2 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 4 - i32.const 9 - call $~lib/typedarray/Uint16Array#subarray - local.tee $5 - i32.store offset=16 - local.get $5 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 3 - i32.const 0 - call $~lib/typedarray/Uint16Array#indexOf - i32.const -1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 603 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $5 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 4 - i32.const 0 - call $~lib/typedarray/Uint16Array#indexOf - i32.const 4 - i32.const 4 - i32.sub - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 604 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $5 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 5 - i32.const 0 - call $~lib/typedarray/Uint16Array#indexOf - i32.const 5 - i32.const 4 - i32.sub - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 605 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $5 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 9 - i32.const 0 - call $~lib/typedarray/Uint16Array#indexOf - i32.const -1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 606 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $5 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 10 - i32.const 0 - call $~lib/typedarray/Uint16Array#indexOf - i32.const -1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 607 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $5 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 11 - i32.const 0 - call $~lib/typedarray/Uint16Array#indexOf - i32.const -1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 608 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $5 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 5 - i32.const 1 - call $~lib/typedarray/Uint16Array#indexOf - i32.const 5 - i32.const 4 - i32.sub - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 609 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $5 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 5 - i32.const 2 - call $~lib/typedarray/Uint16Array#indexOf - i32.const -1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 610 - 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 + call $~lib/rt/itcms/__visit ) - (func $~lib/typedarray/Int32Array#indexOf (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.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - 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 - local.tee $5 - i32.store - local.get $1 - local.set $4 - local.get $2 - local.set $3 - local.get $3 - local.set $6 - local.get $5 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=4 - local.get $10 - call $~lib/typedarray/Int32Array#get:length - local.set $7 - local.get $7 - i32.const 0 - i32.eq - if (result i32) - i32.const 1 - else - local.get $6 - local.get $7 - i32.ge_s - end - if - i32.const -1 - br $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.0 - end - local.get $6 - i32.const 0 - i32.lt_s - if - local.get $7 - local.get $6 - i32.add - local.tee $8 - i32.const 0 - local.tee $9 - local.get $8 - local.get $9 - i32.gt_s - select - local.set $6 - end - local.get $5 - i32.load offset=4 - local.set $8 - loop $while-continue|0 - local.get $6 - local.get $7 - i32.lt_s - local.set $9 - local.get $9 - if - local.get $8 - local.get $6 - i32.const 2 - i32.shl - i32.add - i32.load - local.get $4 - i32.eq - if - local.get $6 - br $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.0 - end - local.get $6 - i32.const 1 - i32.add - local.set $6 - br $while-continue|0 - end - end - i32.const -1 - end - local.set $10 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $10 + (func $~lib/function/Function<%28i32%2Ci32%2Ci32%2C~lib/typedarray/Int32Array%29=>i32>~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/function/Function<%28i32%2Ci32%2Ci32%2C~lib/typedarray/Int32Array%29=>i32>#__visit ) - (func $~lib/typedarray/Int32Array#lastIndexOf (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.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - 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 - local.tee $5 - i32.store - local.get $1 - local.set $4 - local.get $2 - local.set $3 - local.get $3 - local.set $6 - local.get $5 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=4 - local.get $10 - call $~lib/typedarray/Int32Array#get:length - local.set $7 - local.get $7 - i32.const 0 - i32.eq - if - i32.const -1 - br $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.0 - end - local.get $6 - i32.const 0 - i32.lt_s - if - local.get $7 - local.get $6 - i32.add - local.set $6 - else - local.get $6 - local.get $7 - i32.ge_s - if - local.get $7 - i32.const 1 - i32.sub - local.set $6 - end - end - local.get $5 - i32.load offset=4 - local.set $8 - loop $while-continue|0 - local.get $6 - i32.const 0 - i32.ge_s - local.set $9 - local.get $9 - if - local.get $8 - local.get $6 - i32.const 2 - i32.shl - i32.add - i32.load - local.get $4 - i32.eq - if - local.get $6 - br $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.0 - end - local.get $6 - i32.const 1 - i32.sub - local.set $6 - br $while-continue|0 - end - end - i32.const -1 - end - local.set $10 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $10 + (func $~lib/function/Function<%28u32%2Cu32%2Ci32%2C~lib/typedarray/Uint32Array%29=>u32>#__visit (param $0 i32) (param $1 i32) + local.get $0 + i32.load offset=4 + local.get $1 + call $~lib/rt/itcms/__visit ) - (func $~lib/typedarray/Int32Array#lastIndexOf@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 - call $~stack_check - 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 - local.get $0 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store - local.get $3 - call $~lib/typedarray/Int32Array#get:length - local.set $2 - end + (func $~lib/function/Function<%28u32%2Cu32%2Ci32%2C~lib/typedarray/Uint32Array%29=>u32>~visit (param $0 i32) (param $1 i32) local.get $0 local.get $1 - local.get $2 - call $~lib/typedarray/Int32Array#lastIndexOf - local.set $3 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $3 + call $~lib/function/Function<%28u32%2Cu32%2Ci32%2C~lib/typedarray/Uint32Array%29=>u32>#__visit ) - (func $std/typedarray/testArrayIndexOfAndLastIndexOf<~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) - 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 - 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 0 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - global.get $std/typedarray/testArrayIndexOfAndLastIndexOfValues - local.tee $0 - i32.store + (func $~lib/function/Function<%28i64%2Ci64%2Ci32%2C~lib/typedarray/Int64Array%29=>i64>#__visit (param $0 i32) (param $1 i32) local.get $0 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - call $~lib/array/Array#get:length - local.set $1 - global.get $~lib/memory/__stack_pointer - i32.const 0 + i32.load offset=4 local.get $1 - call $~lib/typedarray/Int32Array#constructor - local.tee $2 - i32.store offset=8 - i32.const 0 - local.set $3 - loop $for-loop|0 - local.get $3 - local.get $1 - i32.lt_s - local.set $4 - local.get $4 - if - local.get $2 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - local.get $3 - local.get $0 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=12 - local.get $6 - local.get $3 - call $~lib/array/Array#__get - call $~lib/typedarray/Int32Array#__set - local.get $3 - i32.const 1 - i32.add - local.set $3 - br $for-loop|0 - end - end - local.get $2 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - i32.const 0 - call $~lib/typedarray/Int32Array#indexOf - i32.const 0 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 580 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 11 - i32.const 0 - call $~lib/typedarray/Int32Array#indexOf - i32.const -1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 581 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const -1 - i32.const 0 - call $~lib/typedarray/Int32Array#indexOf - i32.const -1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 582 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 3 - i32.const 0 - call $~lib/typedarray/Int32Array#indexOf - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 583 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 3 - i32.const 2 - call $~lib/typedarray/Int32Array#indexOf - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 584 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 3 - i32.const 3 - call $~lib/typedarray/Int32Array#indexOf - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 585 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 3 - i32.const 4 - call $~lib/typedarray/Int32Array#indexOf - i32.const -1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 586 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 1 - i32.const 10 - call $~lib/typedarray/Int32Array#indexOf - i32.const -1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 587 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 1 - i32.const -100 - call $~lib/typedarray/Int32Array#indexOf - i32.const 1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 588 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - i32.const 1 - global.set $~argumentsLength - i32.const 0 - call $~lib/typedarray/Int32Array#lastIndexOf@varargs - i32.const 0 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 590 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 11 - i32.const 1 - global.set $~argumentsLength - i32.const 0 - call $~lib/typedarray/Int32Array#lastIndexOf@varargs - i32.const -1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 591 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const -1 - i32.const 1 - global.set $~argumentsLength - i32.const 0 - call $~lib/typedarray/Int32Array#lastIndexOf@varargs - i32.const -1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 592 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 3 - i32.const 1 - global.set $~argumentsLength - i32.const 0 - call $~lib/typedarray/Int32Array#lastIndexOf@varargs - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 593 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 3 - i32.const 4 - call $~lib/typedarray/Int32Array#lastIndexOf - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 594 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 3 - i32.const 3 - call $~lib/typedarray/Int32Array#lastIndexOf - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 595 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 3 - i32.const 2 - call $~lib/typedarray/Int32Array#lastIndexOf - i32.const -1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 596 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 1 - i32.const 100 - call $~lib/typedarray/Int32Array#lastIndexOf - i32.const 1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 597 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 1 - i32.const -10 - call $~lib/typedarray/Int32Array#lastIndexOf - i32.const 1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 598 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 1 - i32.const -11 - call $~lib/typedarray/Int32Array#lastIndexOf - i32.const -1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 599 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $2 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 4 - i32.const 9 - call $~lib/typedarray/Int32Array#subarray - local.tee $5 - i32.store offset=16 - local.get $5 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 3 - i32.const 0 - call $~lib/typedarray/Int32Array#indexOf - i32.const -1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 603 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $5 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 4 - i32.const 0 - call $~lib/typedarray/Int32Array#indexOf - i32.const 4 - i32.const 4 - i32.sub - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 604 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $5 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 5 - i32.const 0 - call $~lib/typedarray/Int32Array#indexOf - i32.const 5 - i32.const 4 - i32.sub - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 605 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $5 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 9 - i32.const 0 - call $~lib/typedarray/Int32Array#indexOf - i32.const -1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 606 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $5 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 10 - i32.const 0 - call $~lib/typedarray/Int32Array#indexOf - i32.const -1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 607 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $5 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 11 - i32.const 0 - call $~lib/typedarray/Int32Array#indexOf - i32.const -1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 608 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $5 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 5 - i32.const 1 - call $~lib/typedarray/Int32Array#indexOf - i32.const 5 - i32.const 4 - i32.sub - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 609 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $5 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 5 - i32.const 2 - call $~lib/typedarray/Int32Array#indexOf - i32.const -1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 610 - 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 + call $~lib/rt/itcms/__visit ) - (func $~lib/typedarray/Uint32Array#indexOf (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.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - 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 - local.tee $5 - i32.store - local.get $1 - local.set $4 - local.get $2 - local.set $3 - local.get $3 - local.set $6 - local.get $5 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=4 - local.get $10 - call $~lib/typedarray/Uint32Array#get:length - local.set $7 - local.get $7 - i32.const 0 - i32.eq - if (result i32) - i32.const 1 - else - local.get $6 - local.get $7 - i32.ge_s - end - if - i32.const -1 - br $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.0 - end - local.get $6 - i32.const 0 - i32.lt_s - if - local.get $7 - local.get $6 - i32.add - local.tee $8 - i32.const 0 - local.tee $9 - local.get $8 - local.get $9 - i32.gt_s - select - local.set $6 - end - local.get $5 - i32.load offset=4 - local.set $8 - loop $while-continue|0 - local.get $6 - local.get $7 - i32.lt_s - local.set $9 - local.get $9 - if - local.get $8 - local.get $6 - i32.const 2 - i32.shl - i32.add - i32.load - local.get $4 - i32.eq - if - local.get $6 - br $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.0 - end - local.get $6 - i32.const 1 - i32.add - local.set $6 - br $while-continue|0 - end - end - i32.const -1 - end - local.set $10 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $10 + (func $~lib/function/Function<%28i64%2Ci64%2Ci32%2C~lib/typedarray/Int64Array%29=>i64>~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/function/Function<%28i64%2Ci64%2Ci32%2C~lib/typedarray/Int64Array%29=>i64>#__visit ) - (func $~lib/typedarray/Uint32Array#lastIndexOf (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.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - 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 - local.tee $5 - i32.store - local.get $1 - local.set $4 - local.get $2 - local.set $3 - local.get $3 - local.set $6 - local.get $5 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=4 - local.get $10 - call $~lib/typedarray/Uint32Array#get:length - local.set $7 - local.get $7 - i32.const 0 - i32.eq - if - i32.const -1 - br $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.0 - end - local.get $6 - i32.const 0 - i32.lt_s - if - local.get $7 - local.get $6 - i32.add - local.set $6 - else - local.get $6 - local.get $7 - i32.ge_s - if - local.get $7 - i32.const 1 - i32.sub - local.set $6 - end - end - local.get $5 - i32.load offset=4 - local.set $8 - loop $while-continue|0 - local.get $6 - i32.const 0 - i32.ge_s - local.set $9 - local.get $9 - if - local.get $8 - local.get $6 - i32.const 2 - i32.shl - i32.add - i32.load - local.get $4 - i32.eq - if - local.get $6 - br $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.0 - end - local.get $6 - i32.const 1 - i32.sub - local.set $6 - br $while-continue|0 - end - end - i32.const -1 - end - local.set $10 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $10 + (func $~lib/function/Function<%28u64%2Cu64%2Ci32%2C~lib/typedarray/Uint64Array%29=>u64>#__visit (param $0 i32) (param $1 i32) + local.get $0 + i32.load offset=4 + local.get $1 + call $~lib/rt/itcms/__visit ) - (func $~lib/typedarray/Uint32Array#lastIndexOf@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 - call $~stack_check - 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 - local.get $0 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store - local.get $3 - call $~lib/typedarray/Uint32Array#get:length - local.set $2 - end + (func $~lib/function/Function<%28u64%2Cu64%2Ci32%2C~lib/typedarray/Uint64Array%29=>u64>~visit (param $0 i32) (param $1 i32) local.get $0 local.get $1 - local.get $2 - call $~lib/typedarray/Uint32Array#lastIndexOf - local.set $3 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $3 + call $~lib/function/Function<%28u64%2Cu64%2Ci32%2C~lib/typedarray/Uint64Array%29=>u64>#__visit ) - (func $std/typedarray/testArrayIndexOfAndLastIndexOf<~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) - 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 - 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 0 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - global.get $std/typedarray/testArrayIndexOfAndLastIndexOfValues - local.tee $0 - i32.store + (func $~lib/function/Function<%28f32%2Cf32%2Ci32%2C~lib/typedarray/Float32Array%29=>f32>#__visit (param $0 i32) (param $1 i32) local.get $0 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - call $~lib/array/Array#get:length - local.set $1 - global.get $~lib/memory/__stack_pointer - i32.const 0 + i32.load offset=4 local.get $1 - call $~lib/typedarray/Uint32Array#constructor - local.tee $2 - i32.store offset=8 - i32.const 0 - local.set $3 - loop $for-loop|0 - local.get $3 - local.get $1 - i32.lt_s - local.set $4 - local.get $4 - if - local.get $2 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - local.get $3 - local.get $0 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=12 - local.get $6 - local.get $3 - call $~lib/array/Array#__get - call $~lib/typedarray/Uint32Array#__set - local.get $3 - i32.const 1 - i32.add - local.set $3 - br $for-loop|0 - end - end - local.get $2 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - i32.const 0 - call $~lib/typedarray/Uint32Array#indexOf - i32.const 0 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 580 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 11 - i32.const 0 - call $~lib/typedarray/Uint32Array#indexOf - i32.const -1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 581 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const -1 - i32.const 0 - call $~lib/typedarray/Uint32Array#indexOf - i32.const -1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 582 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 3 - i32.const 0 - call $~lib/typedarray/Uint32Array#indexOf - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 583 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 3 - i32.const 2 - call $~lib/typedarray/Uint32Array#indexOf - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 584 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 3 - i32.const 3 - call $~lib/typedarray/Uint32Array#indexOf - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 585 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 3 - i32.const 4 - call $~lib/typedarray/Uint32Array#indexOf - i32.const -1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 586 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 1 - i32.const 10 - call $~lib/typedarray/Uint32Array#indexOf - i32.const -1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 587 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 1 - i32.const -100 - call $~lib/typedarray/Uint32Array#indexOf - i32.const 1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 588 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - i32.const 1 - global.set $~argumentsLength - i32.const 0 - call $~lib/typedarray/Uint32Array#lastIndexOf@varargs - i32.const 0 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 590 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 11 - i32.const 1 - global.set $~argumentsLength - i32.const 0 - call $~lib/typedarray/Uint32Array#lastIndexOf@varargs - i32.const -1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 591 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const -1 - i32.const 1 - global.set $~argumentsLength - i32.const 0 - call $~lib/typedarray/Uint32Array#lastIndexOf@varargs - i32.const -1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 592 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 3 - i32.const 1 - global.set $~argumentsLength - i32.const 0 - call $~lib/typedarray/Uint32Array#lastIndexOf@varargs - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 593 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 3 - i32.const 4 - call $~lib/typedarray/Uint32Array#lastIndexOf - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 594 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 3 - i32.const 3 - call $~lib/typedarray/Uint32Array#lastIndexOf - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 595 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 3 - i32.const 2 - call $~lib/typedarray/Uint32Array#lastIndexOf - i32.const -1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 596 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 1 - i32.const 100 - call $~lib/typedarray/Uint32Array#lastIndexOf - i32.const 1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 597 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 1 - i32.const -10 - call $~lib/typedarray/Uint32Array#lastIndexOf - i32.const 1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 598 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 1 - i32.const -11 - call $~lib/typedarray/Uint32Array#lastIndexOf - i32.const -1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 599 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $2 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 4 - i32.const 9 - call $~lib/typedarray/Uint32Array#subarray - local.tee $5 - i32.store offset=16 - local.get $5 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 3 - i32.const 0 - call $~lib/typedarray/Uint32Array#indexOf - i32.const -1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 603 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $5 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 4 - i32.const 0 - call $~lib/typedarray/Uint32Array#indexOf - i32.const 4 - i32.const 4 - i32.sub - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 604 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $5 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 5 - i32.const 0 - call $~lib/typedarray/Uint32Array#indexOf - i32.const 5 - i32.const 4 - i32.sub - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 605 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $5 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 9 - i32.const 0 - call $~lib/typedarray/Uint32Array#indexOf - i32.const -1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 606 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $5 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 10 - i32.const 0 - call $~lib/typedarray/Uint32Array#indexOf - i32.const -1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 607 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $5 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 11 - i32.const 0 - call $~lib/typedarray/Uint32Array#indexOf - i32.const -1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 608 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $5 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 5 - i32.const 1 - call $~lib/typedarray/Uint32Array#indexOf - i32.const 5 - i32.const 4 - i32.sub - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 609 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $5 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 5 - i32.const 2 - call $~lib/typedarray/Uint32Array#indexOf - i32.const -1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 610 - 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 + call $~lib/rt/itcms/__visit ) - (func $~lib/typedarray/Int64Array#indexOf (param $0 i32) (param $1 i64) (param $2 i32) (result i32) - (local $3 i32) - (local $4 i64) - (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 - call $~stack_check - 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 - local.tee $5 - i32.store - local.get $1 - local.set $4 - local.get $2 - local.set $3 - local.get $3 - local.set $6 - local.get $5 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=4 - local.get $10 - call $~lib/typedarray/Int64Array#get:length - local.set $7 - local.get $7 - i32.const 0 - i32.eq - if (result i32) - i32.const 1 - else - local.get $6 - local.get $7 - i32.ge_s - end - if - i32.const -1 - br $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.0 - end - local.get $6 - i32.const 0 - i32.lt_s - if - local.get $7 - local.get $6 - i32.add - local.tee $8 - i32.const 0 - local.tee $9 - local.get $8 - local.get $9 - i32.gt_s - select - local.set $6 - end - local.get $5 - i32.load offset=4 - local.set $8 - loop $while-continue|0 - local.get $6 - local.get $7 - i32.lt_s - local.set $9 - local.get $9 - if - local.get $8 - local.get $6 - i32.const 3 - i32.shl - i32.add - i64.load - local.get $4 - i64.eq - if - local.get $6 - br $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.0 - end - local.get $6 - i32.const 1 - i32.add - local.set $6 - br $while-continue|0 - end - end - i32.const -1 - end - local.set $10 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $10 + (func $~lib/function/Function<%28f32%2Cf32%2Ci32%2C~lib/typedarray/Float32Array%29=>f32>~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/function/Function<%28f32%2Cf32%2Ci32%2C~lib/typedarray/Float32Array%29=>f32>#__visit ) - (func $~lib/typedarray/Int64Array#lastIndexOf (param $0 i32) (param $1 i64) (param $2 i32) (result i32) - (local $3 i32) - (local $4 i64) - (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 - call $~stack_check - 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 - local.tee $5 - i32.store - local.get $1 - local.set $4 - local.get $2 - local.set $3 - local.get $3 - local.set $6 - local.get $5 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=4 - local.get $10 - call $~lib/typedarray/Int64Array#get:length - local.set $7 - local.get $7 - i32.const 0 - i32.eq - if - i32.const -1 - br $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.0 - end - local.get $6 - i32.const 0 - i32.lt_s - if - local.get $7 - local.get $6 - i32.add - local.set $6 - else - local.get $6 - local.get $7 - i32.ge_s - if - local.get $7 - i32.const 1 - i32.sub - local.set $6 - end - end - local.get $5 - i32.load offset=4 - local.set $8 - loop $while-continue|0 - local.get $6 - i32.const 0 - i32.ge_s - local.set $9 - local.get $9 - if - local.get $8 - local.get $6 - i32.const 3 - i32.shl - i32.add - i64.load - local.get $4 - i64.eq - if - local.get $6 - br $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.0 - end - local.get $6 - i32.const 1 - i32.sub - local.set $6 - br $while-continue|0 - end - end - i32.const -1 - end - local.set $10 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $10 + (func $~lib/function/Function<%28f64%2Cf64%2Ci32%2C~lib/typedarray/Float64Array%29=>f64>#__visit (param $0 i32) (param $1 i32) + local.get $0 + i32.load offset=4 + local.get $1 + call $~lib/rt/itcms/__visit ) - (func $~lib/typedarray/Int64Array#lastIndexOf@varargs (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 - call $~stack_check - 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 - local.get $0 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store - local.get $3 - call $~lib/typedarray/Int64Array#get:length - local.set $2 - end + (func $~lib/function/Function<%28f64%2Cf64%2Ci32%2C~lib/typedarray/Float64Array%29=>f64>~visit (param $0 i32) (param $1 i32) local.get $0 local.get $1 - local.get $2 - call $~lib/typedarray/Int64Array#lastIndexOf - local.set $3 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $3 + call $~lib/function/Function<%28f64%2Cf64%2Ci32%2C~lib/typedarray/Float64Array%29=>f64>#__visit ) - (func $std/typedarray/testArrayIndexOfAndLastIndexOf<~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) - 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 - 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 0 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - global.get $std/typedarray/testArrayIndexOfAndLastIndexOfValues - local.tee $0 - i32.store + (func $~lib/function/Function<%28i8%2Ci32%2C~lib/typedarray/Int8Array%29=>i8>#__visit (param $0 i32) (param $1 i32) local.get $0 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - call $~lib/array/Array#get:length - local.set $1 - global.get $~lib/memory/__stack_pointer - i32.const 0 + i32.load offset=4 local.get $1 - call $~lib/typedarray/Int64Array#constructor - local.tee $2 - i32.store offset=8 - i32.const 0 - local.set $3 - loop $for-loop|0 - local.get $3 - local.get $1 - i32.lt_s - local.set $4 - local.get $4 - if - local.get $2 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - local.get $3 - local.get $0 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=12 - local.get $6 - local.get $3 - call $~lib/array/Array#__get - i64.extend_i32_s - call $~lib/typedarray/Int64Array#__set - local.get $3 - i32.const 1 - i32.add - local.set $3 - br $for-loop|0 - end - end - local.get $2 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i64.const 0 - i32.const 0 - call $~lib/typedarray/Int64Array#indexOf - i32.const 0 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 580 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i64.const 11 - i32.const 0 - call $~lib/typedarray/Int64Array#indexOf - i32.const -1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 581 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i64.const -1 - i32.const 0 - call $~lib/typedarray/Int64Array#indexOf - i32.const -1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 582 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i64.const 3 - i32.const 0 - call $~lib/typedarray/Int64Array#indexOf - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 583 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i64.const 3 - i32.const 2 - call $~lib/typedarray/Int64Array#indexOf - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 584 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i64.const 3 - i32.const 3 - call $~lib/typedarray/Int64Array#indexOf - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 585 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i64.const 3 - i32.const 4 - call $~lib/typedarray/Int64Array#indexOf - i32.const -1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 586 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i64.const 1 - i32.const 10 - call $~lib/typedarray/Int64Array#indexOf - i32.const -1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 587 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i64.const 1 - i32.const -100 - call $~lib/typedarray/Int64Array#indexOf - i32.const 1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 588 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i64.const 0 - i32.const 1 - global.set $~argumentsLength - i32.const 0 - call $~lib/typedarray/Int64Array#lastIndexOf@varargs - i32.const 0 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 590 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i64.const 11 - i32.const 1 - global.set $~argumentsLength - i32.const 0 - call $~lib/typedarray/Int64Array#lastIndexOf@varargs - i32.const -1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 591 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i64.const -1 - i32.const 1 - global.set $~argumentsLength - i32.const 0 - call $~lib/typedarray/Int64Array#lastIndexOf@varargs - i32.const -1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 592 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i64.const 3 - i32.const 1 - global.set $~argumentsLength - i32.const 0 - call $~lib/typedarray/Int64Array#lastIndexOf@varargs - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 593 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i64.const 3 - i32.const 4 - call $~lib/typedarray/Int64Array#lastIndexOf - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 594 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i64.const 3 - i32.const 3 - call $~lib/typedarray/Int64Array#lastIndexOf - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 595 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i64.const 3 - i32.const 2 - call $~lib/typedarray/Int64Array#lastIndexOf - i32.const -1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 596 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i64.const 1 - i32.const 100 - call $~lib/typedarray/Int64Array#lastIndexOf - i32.const 1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 597 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i64.const 1 - i32.const -10 - call $~lib/typedarray/Int64Array#lastIndexOf - i32.const 1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 598 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i64.const 1 - i32.const -11 - call $~lib/typedarray/Int64Array#lastIndexOf - i32.const -1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 599 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $2 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 4 - i32.const 9 - call $~lib/typedarray/Int64Array#subarray - local.tee $5 - i32.store offset=16 - local.get $5 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i64.const 3 - i32.const 0 - call $~lib/typedarray/Int64Array#indexOf - i32.const -1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 603 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $5 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i64.const 4 - i32.const 0 - call $~lib/typedarray/Int64Array#indexOf - i32.const 4 - i32.const 4 - i32.sub - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 604 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $5 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i64.const 5 - i32.const 0 - call $~lib/typedarray/Int64Array#indexOf - i32.const 5 - i32.const 4 - i32.sub - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 605 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $5 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i64.const 9 - i32.const 0 - call $~lib/typedarray/Int64Array#indexOf - i32.const -1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 606 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $5 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i64.const 10 - i32.const 0 - call $~lib/typedarray/Int64Array#indexOf - i32.const -1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 607 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $5 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i64.const 11 - i32.const 0 - call $~lib/typedarray/Int64Array#indexOf - i32.const -1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 608 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $5 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i64.const 5 - i32.const 1 - call $~lib/typedarray/Int64Array#indexOf - i32.const 5 - i32.const 4 - i32.sub - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 609 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $5 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i64.const 5 - i32.const 2 - call $~lib/typedarray/Int64Array#indexOf - i32.const -1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 610 - 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 + call $~lib/rt/itcms/__visit ) - (func $~lib/typedarray/Uint64Array#indexOf (param $0 i32) (param $1 i64) (param $2 i32) (result i32) - (local $3 i32) - (local $4 i64) - (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 - call $~stack_check - 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 - local.tee $5 - i32.store - local.get $1 - local.set $4 - local.get $2 - local.set $3 - local.get $3 - local.set $6 - local.get $5 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=4 - local.get $10 - call $~lib/typedarray/Uint64Array#get:length - local.set $7 - local.get $7 - i32.const 0 - i32.eq - if (result i32) - i32.const 1 - else - local.get $6 - local.get $7 - i32.ge_s - end - if - i32.const -1 - br $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.0 - end - local.get $6 - i32.const 0 - i32.lt_s - if - local.get $7 - local.get $6 - i32.add - local.tee $8 - i32.const 0 - local.tee $9 - local.get $8 - local.get $9 - i32.gt_s - select - local.set $6 - end - local.get $5 - i32.load offset=4 - local.set $8 - loop $while-continue|0 - local.get $6 - local.get $7 - i32.lt_s - local.set $9 - local.get $9 - if - local.get $8 - local.get $6 - i32.const 3 - i32.shl - i32.add - i64.load - local.get $4 - i64.eq - if - local.get $6 - br $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.0 - end - local.get $6 - i32.const 1 - i32.add - local.set $6 - br $while-continue|0 - end - end - i32.const -1 - end - local.set $10 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $10 + (func $~lib/function/Function<%28i8%2Ci32%2C~lib/typedarray/Int8Array%29=>i8>~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/function/Function<%28i8%2Ci32%2C~lib/typedarray/Int8Array%29=>i8>#__visit ) - (func $~lib/typedarray/Uint64Array#lastIndexOf (param $0 i32) (param $1 i64) (param $2 i32) (result i32) - (local $3 i32) - (local $4 i64) - (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 - call $~stack_check - 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 - local.tee $5 - i32.store - local.get $1 - local.set $4 - local.get $2 - local.set $3 - local.get $3 - local.set $6 - local.get $5 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=4 - local.get $10 - call $~lib/typedarray/Uint64Array#get:length - local.set $7 - local.get $7 - i32.const 0 - i32.eq - if - i32.const -1 - br $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.0 - end - local.get $6 - i32.const 0 - i32.lt_s - if - local.get $7 - local.get $6 - i32.add - local.set $6 - else - local.get $6 - local.get $7 - i32.ge_s - if - local.get $7 - i32.const 1 - i32.sub - local.set $6 - end - end - local.get $5 - i32.load offset=4 - local.set $8 - loop $while-continue|0 - local.get $6 - i32.const 0 - i32.ge_s - local.set $9 - local.get $9 - if - local.get $8 - local.get $6 - i32.const 3 - i32.shl - i32.add - i64.load - local.get $4 - i64.eq - if - local.get $6 - br $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.0 - end - local.get $6 - i32.const 1 - i32.sub - local.set $6 - br $while-continue|0 - end - end - i32.const -1 - end - local.set $10 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $10 + (func $~lib/function/Function<%28u8%2Ci32%2C~lib/typedarray/Uint8Array%29=>u8>#__visit (param $0 i32) (param $1 i32) + local.get $0 + i32.load offset=4 + local.get $1 + call $~lib/rt/itcms/__visit ) - (func $~lib/typedarray/Uint64Array#lastIndexOf@varargs (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 - call $~stack_check - 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 - local.get $0 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store - local.get $3 - call $~lib/typedarray/Uint64Array#get:length - local.set $2 - end + (func $~lib/function/Function<%28u8%2Ci32%2C~lib/typedarray/Uint8Array%29=>u8>~visit (param $0 i32) (param $1 i32) local.get $0 local.get $1 - local.get $2 - call $~lib/typedarray/Uint64Array#lastIndexOf - local.set $3 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $3 + call $~lib/function/Function<%28u8%2Ci32%2C~lib/typedarray/Uint8Array%29=>u8>#__visit ) - (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) - (local $6 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 - 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 0 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - global.get $std/typedarray/testArrayIndexOfAndLastIndexOfValues - local.tee $0 - i32.store + (func $~lib/function/Function<%28u8%2Ci32%2C~lib/typedarray/Uint8ClampedArray%29=>u8>#__visit (param $0 i32) (param $1 i32) local.get $0 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - call $~lib/array/Array#get:length - local.set $1 - global.get $~lib/memory/__stack_pointer - i32.const 0 + i32.load offset=4 local.get $1 - call $~lib/typedarray/Uint64Array#constructor - local.tee $2 - i32.store offset=8 - i32.const 0 - local.set $3 - loop $for-loop|0 - local.get $3 - local.get $1 - i32.lt_s - local.set $4 - local.get $4 - if - local.get $2 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - local.get $3 - local.get $0 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=12 - local.get $6 - local.get $3 - call $~lib/array/Array#__get - 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 - local.get $2 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i64.const 0 - i32.const 0 - call $~lib/typedarray/Uint64Array#indexOf - i32.const 0 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 580 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i64.const 11 - i32.const 0 - call $~lib/typedarray/Uint64Array#indexOf - i32.const -1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 581 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i64.const -1 - i32.const 0 - call $~lib/typedarray/Uint64Array#indexOf - i32.const -1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 582 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i64.const 3 - i32.const 0 - call $~lib/typedarray/Uint64Array#indexOf - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 583 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i64.const 3 - i32.const 2 - call $~lib/typedarray/Uint64Array#indexOf - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 584 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i64.const 3 - i32.const 3 - call $~lib/typedarray/Uint64Array#indexOf - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 585 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i64.const 3 - i32.const 4 - call $~lib/typedarray/Uint64Array#indexOf - i32.const -1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 586 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i64.const 1 - i32.const 10 - call $~lib/typedarray/Uint64Array#indexOf - i32.const -1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 587 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i64.const 1 - i32.const -100 - call $~lib/typedarray/Uint64Array#indexOf - i32.const 1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 588 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i64.const 0 - i32.const 1 - global.set $~argumentsLength - i32.const 0 - call $~lib/typedarray/Uint64Array#lastIndexOf@varargs - i32.const 0 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 590 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i64.const 11 - i32.const 1 - global.set $~argumentsLength - i32.const 0 - call $~lib/typedarray/Uint64Array#lastIndexOf@varargs - i32.const -1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 591 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i64.const -1 - i32.const 1 - global.set $~argumentsLength - i32.const 0 - call $~lib/typedarray/Uint64Array#lastIndexOf@varargs - i32.const -1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 592 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i64.const 3 - i32.const 1 - global.set $~argumentsLength - i32.const 0 - call $~lib/typedarray/Uint64Array#lastIndexOf@varargs - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 593 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i64.const 3 - i32.const 4 - call $~lib/typedarray/Uint64Array#lastIndexOf - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 594 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i64.const 3 - i32.const 3 - call $~lib/typedarray/Uint64Array#lastIndexOf - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 595 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i64.const 3 - i32.const 2 - call $~lib/typedarray/Uint64Array#lastIndexOf - i32.const -1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 596 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i64.const 1 - i32.const 100 - call $~lib/typedarray/Uint64Array#lastIndexOf - i32.const 1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 597 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i64.const 1 - i32.const -10 - call $~lib/typedarray/Uint64Array#lastIndexOf - i32.const 1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 598 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i64.const 1 - i32.const -11 - call $~lib/typedarray/Uint64Array#lastIndexOf - i32.const -1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 599 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $2 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 4 - i32.const 9 - call $~lib/typedarray/Uint64Array#subarray - local.tee $5 - i32.store offset=16 - local.get $5 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i64.const 3 - i32.const 0 - call $~lib/typedarray/Uint64Array#indexOf - i32.const -1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 603 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $5 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i64.const 4 - i32.const 0 - call $~lib/typedarray/Uint64Array#indexOf - i32.const 4 - i32.const 4 - i32.sub - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 604 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $5 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i64.const 5 - i32.const 0 - call $~lib/typedarray/Uint64Array#indexOf - i32.const 5 - i32.const 4 - i32.sub - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 605 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $5 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i64.const 9 - i32.const 0 - call $~lib/typedarray/Uint64Array#indexOf - i32.const -1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 606 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $5 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i64.const 10 - i32.const 0 - call $~lib/typedarray/Uint64Array#indexOf - i32.const -1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 607 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $5 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i64.const 11 - i32.const 0 - call $~lib/typedarray/Uint64Array#indexOf - i32.const -1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 608 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $5 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i64.const 5 - i32.const 1 - call $~lib/typedarray/Uint64Array#indexOf - i32.const 5 - i32.const 4 - i32.sub - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 609 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $5 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i64.const 5 - i32.const 2 - call $~lib/typedarray/Uint64Array#indexOf - i32.const -1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 610 - 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 + call $~lib/rt/itcms/__visit ) - (func $~lib/typedarray/Float32Array#indexOf (param $0 i32) (param $1 f32) (param $2 i32) (result i32) - (local $3 i32) - (local $4 f32) - (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 - call $~stack_check - 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 - local.tee $5 - i32.store - local.get $1 - local.set $4 - local.get $2 - local.set $3 - local.get $3 - local.set $6 - local.get $5 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=4 - local.get $10 - call $~lib/typedarray/Float32Array#get:length - local.set $7 - local.get $7 - i32.const 0 - i32.eq - if (result i32) - i32.const 1 - else - local.get $6 - local.get $7 - i32.ge_s - end - if - i32.const -1 - br $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.0 - end - local.get $6 - i32.const 0 - i32.lt_s - if - local.get $7 - local.get $6 - i32.add - local.tee $8 - i32.const 0 - local.tee $9 - local.get $8 - local.get $9 - i32.gt_s - select - local.set $6 - end - local.get $5 - i32.load offset=4 - local.set $8 - loop $while-continue|0 - local.get $6 - local.get $7 - i32.lt_s - local.set $9 - local.get $9 - if - local.get $8 - local.get $6 - i32.const 2 - i32.shl - i32.add - f32.load - local.get $4 - f32.eq - if - local.get $6 - br $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.0 - end - local.get $6 - i32.const 1 - i32.add - local.set $6 - br $while-continue|0 - end - end - i32.const -1 - end - local.set $10 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $10 + (func $~lib/function/Function<%28u8%2Ci32%2C~lib/typedarray/Uint8ClampedArray%29=>u8>~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/function/Function<%28u8%2Ci32%2C~lib/typedarray/Uint8ClampedArray%29=>u8>#__visit ) - (func $~lib/typedarray/Float32Array#lastIndexOf (param $0 i32) (param $1 f32) (param $2 i32) (result i32) - (local $3 i32) - (local $4 f32) - (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 - call $~stack_check - 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 - local.tee $5 - i32.store - local.get $1 - local.set $4 - local.get $2 - local.set $3 - local.get $3 - local.set $6 - local.get $5 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=4 - local.get $10 - call $~lib/typedarray/Float32Array#get:length - local.set $7 - local.get $7 - i32.const 0 - i32.eq - if - i32.const -1 - br $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.0 - end - local.get $6 - i32.const 0 - i32.lt_s - if - local.get $7 - local.get $6 - i32.add - local.set $6 - else - local.get $6 - local.get $7 - i32.ge_s - if - local.get $7 - i32.const 1 - i32.sub - local.set $6 - end - end - local.get $5 - i32.load offset=4 - local.set $8 - loop $while-continue|0 - local.get $6 - i32.const 0 - i32.ge_s - local.set $9 - local.get $9 - if - local.get $8 - local.get $6 - i32.const 2 - i32.shl - i32.add - f32.load - local.get $4 - f32.eq - if - local.get $6 - br $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.0 - end - local.get $6 - i32.const 1 - i32.sub - local.set $6 - br $while-continue|0 - end - end - i32.const -1 - end - local.set $10 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $10 + (func $~lib/function/Function<%28i16%2Ci32%2C~lib/typedarray/Int16Array%29=>i16>#__visit (param $0 i32) (param $1 i32) + local.get $0 + i32.load offset=4 + local.get $1 + call $~lib/rt/itcms/__visit ) - (func $~lib/typedarray/Float32Array#lastIndexOf@varargs (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 - call $~stack_check - 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 - local.get $0 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store - local.get $3 - call $~lib/typedarray/Float32Array#get:length - local.set $2 - end + (func $~lib/function/Function<%28i16%2Ci32%2C~lib/typedarray/Int16Array%29=>i16>~visit (param $0 i32) (param $1 i32) local.get $0 local.get $1 - local.get $2 - call $~lib/typedarray/Float32Array#lastIndexOf - local.set $3 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $3 + call $~lib/function/Function<%28i16%2Ci32%2C~lib/typedarray/Int16Array%29=>i16>#__visit ) - (func $std/typedarray/testArrayIndexOfAndLastIndexOf<~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) - 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 - 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 0 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - global.get $std/typedarray/testArrayIndexOfAndLastIndexOfValues - local.tee $0 - i32.store + (func $~lib/function/Function<%28u16%2Ci32%2C~lib/typedarray/Uint16Array%29=>u16>#__visit (param $0 i32) (param $1 i32) local.get $0 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - call $~lib/array/Array#get:length - local.set $1 - global.get $~lib/memory/__stack_pointer - i32.const 0 + i32.load offset=4 local.get $1 - call $~lib/typedarray/Float32Array#constructor - local.tee $2 - i32.store offset=8 - i32.const 0 - local.set $3 - loop $for-loop|0 - local.get $3 - local.get $1 - i32.lt_s - local.set $4 - local.get $4 - if - local.get $2 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - local.get $3 - local.get $0 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=12 - local.get $6 - local.get $3 - call $~lib/array/Array#__get - f32.convert_i32_s - call $~lib/typedarray/Float32Array#__set - local.get $3 - i32.const 1 - i32.add - local.set $3 - br $for-loop|0 - end - end - local.get $2 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - f32.const 0 - i32.const 0 - call $~lib/typedarray/Float32Array#indexOf - i32.const 0 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 580 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - f32.const 11 - i32.const 0 - call $~lib/typedarray/Float32Array#indexOf - i32.const -1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 581 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - f32.const -1 - i32.const 0 - call $~lib/typedarray/Float32Array#indexOf - i32.const -1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 582 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - f32.const 3 - i32.const 0 - call $~lib/typedarray/Float32Array#indexOf - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 583 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - f32.const 3 - i32.const 2 - call $~lib/typedarray/Float32Array#indexOf - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 584 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - f32.const 3 - i32.const 3 - call $~lib/typedarray/Float32Array#indexOf - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 585 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - f32.const 3 - i32.const 4 - call $~lib/typedarray/Float32Array#indexOf - i32.const -1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 586 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - f32.const 1 - i32.const 10 - call $~lib/typedarray/Float32Array#indexOf - i32.const -1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 587 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - f32.const 1 - i32.const -100 - call $~lib/typedarray/Float32Array#indexOf - i32.const 1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 588 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - f32.const 0 - i32.const 1 - global.set $~argumentsLength - i32.const 0 - call $~lib/typedarray/Float32Array#lastIndexOf@varargs - i32.const 0 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 590 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - f32.const 11 - i32.const 1 - global.set $~argumentsLength - i32.const 0 - call $~lib/typedarray/Float32Array#lastIndexOf@varargs - i32.const -1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 591 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - f32.const -1 - i32.const 1 - global.set $~argumentsLength - i32.const 0 - call $~lib/typedarray/Float32Array#lastIndexOf@varargs - i32.const -1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 592 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - f32.const 3 - i32.const 1 - global.set $~argumentsLength - i32.const 0 - call $~lib/typedarray/Float32Array#lastIndexOf@varargs - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 593 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - f32.const 3 - i32.const 4 - call $~lib/typedarray/Float32Array#lastIndexOf - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 594 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - f32.const 3 - i32.const 3 - call $~lib/typedarray/Float32Array#lastIndexOf - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 595 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - f32.const 3 - i32.const 2 - call $~lib/typedarray/Float32Array#lastIndexOf - i32.const -1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 596 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - f32.const 1 - i32.const 100 - call $~lib/typedarray/Float32Array#lastIndexOf - i32.const 1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 597 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - f32.const 1 - i32.const -10 - call $~lib/typedarray/Float32Array#lastIndexOf - i32.const 1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 598 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - f32.const 1 - i32.const -11 - call $~lib/typedarray/Float32Array#lastIndexOf - i32.const -1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 599 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $2 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 4 - i32.const 9 - call $~lib/typedarray/Float32Array#subarray - local.tee $5 - i32.store offset=16 - local.get $5 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - f32.const 3 - i32.const 0 - call $~lib/typedarray/Float32Array#indexOf - i32.const -1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 603 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $5 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - f32.const 4 - i32.const 0 - call $~lib/typedarray/Float32Array#indexOf - i32.const 4 - i32.const 4 - i32.sub - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 604 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $5 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - f32.const 5 - i32.const 0 - call $~lib/typedarray/Float32Array#indexOf - i32.const 5 - i32.const 4 - i32.sub - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 605 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $5 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - f32.const 9 - i32.const 0 - call $~lib/typedarray/Float32Array#indexOf - i32.const -1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 606 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $5 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - f32.const 10 + call $~lib/rt/itcms/__visit + ) + (func $~lib/function/Function<%28u16%2Ci32%2C~lib/typedarray/Uint16Array%29=>u16>~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/function/Function<%28u16%2Ci32%2C~lib/typedarray/Uint16Array%29=>u16>#__visit + ) + (func $~lib/function/Function<%28i32%2Ci32%2C~lib/typedarray/Int32Array%29=>i32>#__visit (param $0 i32) (param $1 i32) + local.get $0 + i32.load offset=4 + local.get $1 + call $~lib/rt/itcms/__visit + ) + (func $~lib/function/Function<%28i32%2Ci32%2C~lib/typedarray/Int32Array%29=>i32>~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/function/Function<%28i32%2Ci32%2C~lib/typedarray/Int32Array%29=>i32>#__visit + ) + (func $~lib/function/Function<%28u32%2Ci32%2C~lib/typedarray/Uint32Array%29=>u32>#__visit (param $0 i32) (param $1 i32) + local.get $0 + i32.load offset=4 + local.get $1 + call $~lib/rt/itcms/__visit + ) + (func $~lib/function/Function<%28u32%2Ci32%2C~lib/typedarray/Uint32Array%29=>u32>~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/function/Function<%28u32%2Ci32%2C~lib/typedarray/Uint32Array%29=>u32>#__visit + ) + (func $~lib/function/Function<%28i64%2Ci32%2C~lib/typedarray/Int64Array%29=>i64>#__visit (param $0 i32) (param $1 i32) + local.get $0 + i32.load offset=4 + local.get $1 + call $~lib/rt/itcms/__visit + ) + (func $~lib/function/Function<%28i64%2Ci32%2C~lib/typedarray/Int64Array%29=>i64>~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/function/Function<%28i64%2Ci32%2C~lib/typedarray/Int64Array%29=>i64>#__visit + ) + (func $~lib/function/Function<%28u64%2Ci32%2C~lib/typedarray/Uint64Array%29=>u64>#__visit (param $0 i32) (param $1 i32) + local.get $0 + i32.load offset=4 + local.get $1 + call $~lib/rt/itcms/__visit + ) + (func $~lib/function/Function<%28u64%2Ci32%2C~lib/typedarray/Uint64Array%29=>u64>~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/function/Function<%28u64%2Ci32%2C~lib/typedarray/Uint64Array%29=>u64>#__visit + ) + (func $~lib/function/Function<%28f32%2Ci32%2C~lib/typedarray/Float32Array%29=>f32>#__visit (param $0 i32) (param $1 i32) + local.get $0 + i32.load offset=4 + local.get $1 + call $~lib/rt/itcms/__visit + ) + (func $~lib/function/Function<%28f32%2Ci32%2C~lib/typedarray/Float32Array%29=>f32>~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/function/Function<%28f32%2Ci32%2C~lib/typedarray/Float32Array%29=>f32>#__visit + ) + (func $~lib/function/Function<%28f64%2Ci32%2C~lib/typedarray/Float64Array%29=>f64>#__visit (param $0 i32) (param $1 i32) + local.get $0 + i32.load offset=4 + local.get $1 + call $~lib/rt/itcms/__visit + ) + (func $~lib/function/Function<%28f64%2Ci32%2C~lib/typedarray/Float64Array%29=>f64>~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/function/Function<%28f64%2Ci32%2C~lib/typedarray/Float64Array%29=>f64>#__visit + ) + (func $~lib/function/Function<%28i8%2Ci32%2C~lib/typedarray/Int8Array%29=>bool>#__visit (param $0 i32) (param $1 i32) + local.get $0 + i32.load offset=4 + local.get $1 + call $~lib/rt/itcms/__visit + ) + (func $~lib/function/Function<%28i8%2Ci32%2C~lib/typedarray/Int8Array%29=>bool>~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/function/Function<%28i8%2Ci32%2C~lib/typedarray/Int8Array%29=>bool>#__visit + ) + (func $~lib/function/Function<%28u8%2Ci32%2C~lib/typedarray/Uint8Array%29=>bool>#__visit (param $0 i32) (param $1 i32) + local.get $0 + i32.load offset=4 + local.get $1 + call $~lib/rt/itcms/__visit + ) + (func $~lib/function/Function<%28u8%2Ci32%2C~lib/typedarray/Uint8Array%29=>bool>~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/function/Function<%28u8%2Ci32%2C~lib/typedarray/Uint8Array%29=>bool>#__visit + ) + (func $~lib/function/Function<%28u8%2Ci32%2C~lib/typedarray/Uint8ClampedArray%29=>bool>#__visit (param $0 i32) (param $1 i32) + local.get $0 + i32.load offset=4 + local.get $1 + call $~lib/rt/itcms/__visit + ) + (func $~lib/function/Function<%28u8%2Ci32%2C~lib/typedarray/Uint8ClampedArray%29=>bool>~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/function/Function<%28u8%2Ci32%2C~lib/typedarray/Uint8ClampedArray%29=>bool>#__visit + ) + (func $~lib/function/Function<%28i16%2Ci32%2C~lib/typedarray/Int16Array%29=>bool>#__visit (param $0 i32) (param $1 i32) + local.get $0 + i32.load offset=4 + local.get $1 + call $~lib/rt/itcms/__visit + ) + (func $~lib/function/Function<%28i16%2Ci32%2C~lib/typedarray/Int16Array%29=>bool>~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/function/Function<%28i16%2Ci32%2C~lib/typedarray/Int16Array%29=>bool>#__visit + ) + (func $~lib/function/Function<%28u16%2Ci32%2C~lib/typedarray/Uint16Array%29=>bool>#__visit (param $0 i32) (param $1 i32) + local.get $0 + i32.load offset=4 + local.get $1 + call $~lib/rt/itcms/__visit + ) + (func $~lib/function/Function<%28u16%2Ci32%2C~lib/typedarray/Uint16Array%29=>bool>~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/function/Function<%28u16%2Ci32%2C~lib/typedarray/Uint16Array%29=>bool>#__visit + ) + (func $~lib/function/Function<%28i32%2Ci32%2C~lib/typedarray/Int32Array%29=>bool>#__visit (param $0 i32) (param $1 i32) + local.get $0 + i32.load offset=4 + local.get $1 + call $~lib/rt/itcms/__visit + ) + (func $~lib/function/Function<%28i32%2Ci32%2C~lib/typedarray/Int32Array%29=>bool>~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/function/Function<%28i32%2Ci32%2C~lib/typedarray/Int32Array%29=>bool>#__visit + ) + (func $~lib/function/Function<%28u32%2Ci32%2C~lib/typedarray/Uint32Array%29=>bool>#__visit (param $0 i32) (param $1 i32) + local.get $0 + i32.load offset=4 + local.get $1 + call $~lib/rt/itcms/__visit + ) + (func $~lib/function/Function<%28u32%2Ci32%2C~lib/typedarray/Uint32Array%29=>bool>~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/function/Function<%28u32%2Ci32%2C~lib/typedarray/Uint32Array%29=>bool>#__visit + ) + (func $~lib/function/Function<%28i64%2Ci32%2C~lib/typedarray/Int64Array%29=>bool>#__visit (param $0 i32) (param $1 i32) + local.get $0 + i32.load offset=4 + local.get $1 + call $~lib/rt/itcms/__visit + ) + (func $~lib/function/Function<%28i64%2Ci32%2C~lib/typedarray/Int64Array%29=>bool>~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/function/Function<%28i64%2Ci32%2C~lib/typedarray/Int64Array%29=>bool>#__visit + ) + (func $~lib/function/Function<%28u64%2Ci32%2C~lib/typedarray/Uint64Array%29=>bool>#__visit (param $0 i32) (param $1 i32) + local.get $0 + i32.load offset=4 + local.get $1 + call $~lib/rt/itcms/__visit + ) + (func $~lib/function/Function<%28u64%2Ci32%2C~lib/typedarray/Uint64Array%29=>bool>~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/function/Function<%28u64%2Ci32%2C~lib/typedarray/Uint64Array%29=>bool>#__visit + ) + (func $~lib/function/Function<%28f32%2Ci32%2C~lib/typedarray/Float32Array%29=>bool>#__visit (param $0 i32) (param $1 i32) + local.get $0 + i32.load offset=4 + local.get $1 + call $~lib/rt/itcms/__visit + ) + (func $~lib/function/Function<%28f32%2Ci32%2C~lib/typedarray/Float32Array%29=>bool>~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/function/Function<%28f32%2Ci32%2C~lib/typedarray/Float32Array%29=>bool>#__visit + ) + (func $~lib/function/Function<%28f64%2Ci32%2C~lib/typedarray/Float64Array%29=>bool>#__visit (param $0 i32) (param $1 i32) + local.get $0 + i32.load offset=4 + local.get $1 + call $~lib/rt/itcms/__visit + ) + (func $~lib/function/Function<%28f64%2Ci32%2C~lib/typedarray/Float64Array%29=>bool>~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/function/Function<%28f64%2Ci32%2C~lib/typedarray/Float64Array%29=>bool>#__visit + ) + (func $~lib/function/Function<%28i8%2Ci32%2C~lib/typedarray/Int8Array%29=>void>#__visit (param $0 i32) (param $1 i32) + local.get $0 + i32.load offset=4 + local.get $1 + call $~lib/rt/itcms/__visit + ) + (func $~lib/function/Function<%28i8%2Ci32%2C~lib/typedarray/Int8Array%29=>void>~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/function/Function<%28i8%2Ci32%2C~lib/typedarray/Int8Array%29=>void>#__visit + ) + (func $~lib/function/Function<%28u8%2Ci32%2C~lib/typedarray/Uint8Array%29=>void>#__visit (param $0 i32) (param $1 i32) + local.get $0 + i32.load offset=4 + local.get $1 + call $~lib/rt/itcms/__visit + ) + (func $~lib/function/Function<%28u8%2Ci32%2C~lib/typedarray/Uint8Array%29=>void>~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/function/Function<%28u8%2Ci32%2C~lib/typedarray/Uint8Array%29=>void>#__visit + ) + (func $~lib/function/Function<%28u8%2Ci32%2C~lib/typedarray/Uint8ClampedArray%29=>void>#__visit (param $0 i32) (param $1 i32) + local.get $0 + i32.load offset=4 + local.get $1 + call $~lib/rt/itcms/__visit + ) + (func $~lib/function/Function<%28u8%2Ci32%2C~lib/typedarray/Uint8ClampedArray%29=>void>~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/function/Function<%28u8%2Ci32%2C~lib/typedarray/Uint8ClampedArray%29=>void>#__visit + ) + (func $~lib/function/Function<%28i16%2Ci32%2C~lib/typedarray/Int16Array%29=>void>#__visit (param $0 i32) (param $1 i32) + local.get $0 + i32.load offset=4 + local.get $1 + call $~lib/rt/itcms/__visit + ) + (func $~lib/function/Function<%28i16%2Ci32%2C~lib/typedarray/Int16Array%29=>void>~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/function/Function<%28i16%2Ci32%2C~lib/typedarray/Int16Array%29=>void>#__visit + ) + (func $~lib/function/Function<%28u16%2Ci32%2C~lib/typedarray/Uint16Array%29=>void>#__visit (param $0 i32) (param $1 i32) + local.get $0 + i32.load offset=4 + local.get $1 + call $~lib/rt/itcms/__visit + ) + (func $~lib/function/Function<%28u16%2Ci32%2C~lib/typedarray/Uint16Array%29=>void>~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/function/Function<%28u16%2Ci32%2C~lib/typedarray/Uint16Array%29=>void>#__visit + ) + (func $~lib/function/Function<%28i32%2Ci32%2C~lib/typedarray/Int32Array%29=>void>#__visit (param $0 i32) (param $1 i32) + local.get $0 + i32.load offset=4 + local.get $1 + call $~lib/rt/itcms/__visit + ) + (func $~lib/function/Function<%28i32%2Ci32%2C~lib/typedarray/Int32Array%29=>void>~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/function/Function<%28i32%2Ci32%2C~lib/typedarray/Int32Array%29=>void>#__visit + ) + (func $~lib/function/Function<%28u32%2Ci32%2C~lib/typedarray/Uint32Array%29=>void>#__visit (param $0 i32) (param $1 i32) + local.get $0 + i32.load offset=4 + local.get $1 + call $~lib/rt/itcms/__visit + ) + (func $~lib/function/Function<%28u32%2Ci32%2C~lib/typedarray/Uint32Array%29=>void>~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/function/Function<%28u32%2Ci32%2C~lib/typedarray/Uint32Array%29=>void>#__visit + ) + (func $~lib/function/Function<%28i64%2Ci32%2C~lib/typedarray/Int64Array%29=>void>#__visit (param $0 i32) (param $1 i32) + local.get $0 + i32.load offset=4 + local.get $1 + call $~lib/rt/itcms/__visit + ) + (func $~lib/function/Function<%28i64%2Ci32%2C~lib/typedarray/Int64Array%29=>void>~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/function/Function<%28i64%2Ci32%2C~lib/typedarray/Int64Array%29=>void>#__visit + ) + (func $~lib/function/Function<%28u64%2Ci32%2C~lib/typedarray/Uint64Array%29=>void>#__visit (param $0 i32) (param $1 i32) + local.get $0 + i32.load offset=4 + local.get $1 + call $~lib/rt/itcms/__visit + ) + (func $~lib/function/Function<%28u64%2Ci32%2C~lib/typedarray/Uint64Array%29=>void>~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/function/Function<%28u64%2Ci32%2C~lib/typedarray/Uint64Array%29=>void>#__visit + ) + (func $~lib/function/Function<%28f32%2Ci32%2C~lib/typedarray/Float32Array%29=>void>#__visit (param $0 i32) (param $1 i32) + local.get $0 + i32.load offset=4 + local.get $1 + call $~lib/rt/itcms/__visit + ) + (func $~lib/function/Function<%28f32%2Ci32%2C~lib/typedarray/Float32Array%29=>void>~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/function/Function<%28f32%2Ci32%2C~lib/typedarray/Float32Array%29=>void>#__visit + ) + (func $~lib/function/Function<%28f64%2Ci32%2C~lib/typedarray/Float64Array%29=>void>#__visit (param $0 i32) (param $1 i32) + local.get $0 + i32.load offset=4 + local.get $1 + call $~lib/rt/itcms/__visit + ) + (func $~lib/function/Function<%28f64%2Ci32%2C~lib/typedarray/Float64Array%29=>void>~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/function/Function<%28f64%2Ci32%2C~lib/typedarray/Float64Array%29=>void>#__visit + ) + (func $~lib/array/Array#__visit (param $0 i32) (param $1 i32) i32.const 0 - call $~lib/typedarray/Float32Array#indexOf - i32.const -1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 607 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $5 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - f32.const 11 + drop + local.get $0 + i32.load + local.get $1 + call $~lib/rt/itcms/__visit + ) + (func $~lib/array/Array~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/array/Array#__visit + ) + (func $~lib/array/Array#__visit (param $0 i32) (param $1 i32) i32.const 0 - call $~lib/typedarray/Float32Array#indexOf - i32.const -1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 608 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $5 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - f32.const 5 - i32.const 1 - call $~lib/typedarray/Float32Array#indexOf - i32.const 5 - i32.const 4 - i32.sub - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 609 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $5 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - f32.const 5 - i32.const 2 - call $~lib/typedarray/Float32Array#indexOf - i32.const -1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 610 - 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 + drop + local.get $0 + i32.load + local.get $1 + call $~lib/rt/itcms/__visit ) - (func $~lib/typedarray/Float64Array#indexOf (param $0 i32) (param $1 f64) (param $2 i32) (result i32) - (local $3 i32) - (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 8 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - 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 - local.tee $5 - i32.store - local.get $1 - local.set $4 - local.get $2 - local.set $3 - local.get $3 - local.set $6 - local.get $5 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=4 - local.get $10 - call $~lib/typedarray/Float64Array#get:length - local.set $7 - local.get $7 - i32.const 0 - i32.eq - if (result i32) - i32.const 1 - else - local.get $6 - local.get $7 - i32.ge_s - end - if - i32.const -1 - br $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.0 - end - local.get $6 - i32.const 0 - i32.lt_s - if - local.get $7 - local.get $6 - i32.add - local.tee $8 - i32.const 0 - local.tee $9 - local.get $8 - local.get $9 - i32.gt_s - select - local.set $6 - end - local.get $5 - i32.load offset=4 - local.set $8 - loop $while-continue|0 - local.get $6 - local.get $7 - i32.lt_s - local.set $9 - local.get $9 - if - local.get $8 - local.get $6 - i32.const 3 - i32.shl - i32.add - f64.load - local.get $4 - f64.eq - if - local.get $6 - br $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.0 - end - local.get $6 - i32.const 1 - i32.add - local.set $6 - br $while-continue|0 - end - end - i32.const -1 - end - local.set $10 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $10 + (func $~lib/array/Array~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/array/Array#__visit ) - (func $~lib/typedarray/Float64Array#lastIndexOf (param $0 i32) (param $1 f64) (param $2 i32) (result i32) - (local $3 i32) - (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 8 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - 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 - local.tee $5 - i32.store - local.get $1 - local.set $4 - local.get $2 - local.set $3 - local.get $3 - local.set $6 - local.get $5 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=4 - local.get $10 - call $~lib/typedarray/Float64Array#get:length - local.set $7 - local.get $7 - i32.const 0 - i32.eq - if - i32.const -1 - br $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.0 - end - local.get $6 - i32.const 0 - i32.lt_s - if - local.get $7 - local.get $6 - i32.add - local.set $6 - else - local.get $6 - local.get $7 - i32.ge_s - if - local.get $7 - i32.const 1 - i32.sub - local.set $6 - end - end - local.get $5 - i32.load offset=4 - local.set $8 - loop $while-continue|0 - local.get $6 - i32.const 0 - i32.ge_s - local.set $9 - local.get $9 - if - local.get $8 - local.get $6 - i32.const 3 - i32.shl - i32.add - f64.load - local.get $4 - f64.eq - if - local.get $6 - br $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.0 + (func $~lib/array/Array#__visit (param $0 i32) (param $1 i32) + i32.const 0 + drop + local.get $0 + i32.load + local.get $1 + call $~lib/rt/itcms/__visit + ) + (func $~lib/array/Array~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/array/Array#__visit + ) + (func $~lib/array/Array#__visit (param $0 i32) (param $1 i32) + i32.const 0 + drop + local.get $0 + i32.load + local.get $1 + call $~lib/rt/itcms/__visit + ) + (func $~lib/array/Array~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/array/Array#__visit + ) + (func $~lib/array/Array#__visit (param $0 i32) (param $1 i32) + i32.const 0 + drop + local.get $0 + i32.load + local.get $1 + call $~lib/rt/itcms/__visit + ) + (func $~lib/array/Array~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/array/Array#__visit + ) + (func $~lib/array/Array#__visit (param $0 i32) (param $1 i32) + i32.const 0 + drop + local.get $0 + i32.load + local.get $1 + call $~lib/rt/itcms/__visit + ) + (func $~lib/array/Array~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/array/Array#__visit + ) + (func $~lib/array/Array#__visit (param $0 i32) (param $1 i32) + i32.const 0 + drop + local.get $0 + i32.load + local.get $1 + call $~lib/rt/itcms/__visit + ) + (func $~lib/array/Array~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/array/Array#__visit + ) + (func $~lib/array/Array#__visit (param $0 i32) (param $1 i32) + i32.const 0 + drop + local.get $0 + i32.load + local.get $1 + call $~lib/rt/itcms/__visit + ) + (func $~lib/array/Array~visit (param $0 i32) (param $1 i32) + 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/array/Array + block $~lib/array/Array + block $~lib/array/Array + block $~lib/array/Array + block $~lib/array/Array + block $~lib/array/Array + block $~lib/function/Function<%28f64%2Ci32%2C~lib/typedarray/Float64Array%29=>void> + block $~lib/function/Function<%28f32%2Ci32%2C~lib/typedarray/Float32Array%29=>void> + block $~lib/function/Function<%28u64%2Ci32%2C~lib/typedarray/Uint64Array%29=>void> + block $~lib/function/Function<%28i64%2Ci32%2C~lib/typedarray/Int64Array%29=>void> + block $~lib/function/Function<%28u32%2Ci32%2C~lib/typedarray/Uint32Array%29=>void> + block $~lib/function/Function<%28i32%2Ci32%2C~lib/typedarray/Int32Array%29=>void> + block $~lib/function/Function<%28u16%2Ci32%2C~lib/typedarray/Uint16Array%29=>void> + block $~lib/function/Function<%28i16%2Ci32%2C~lib/typedarray/Int16Array%29=>void> + block $~lib/function/Function<%28u8%2Ci32%2C~lib/typedarray/Uint8ClampedArray%29=>void> + block $~lib/function/Function<%28u8%2Ci32%2C~lib/typedarray/Uint8Array%29=>void> + block $~lib/function/Function<%28i8%2Ci32%2C~lib/typedarray/Int8Array%29=>void> + block $~lib/function/Function<%28f64%2Ci32%2C~lib/typedarray/Float64Array%29=>bool> + block $~lib/function/Function<%28f32%2Ci32%2C~lib/typedarray/Float32Array%29=>bool> + block $~lib/function/Function<%28u64%2Ci32%2C~lib/typedarray/Uint64Array%29=>bool> + block $~lib/function/Function<%28i64%2Ci32%2C~lib/typedarray/Int64Array%29=>bool> + block $~lib/function/Function<%28u32%2Ci32%2C~lib/typedarray/Uint32Array%29=>bool> + block $~lib/function/Function<%28i32%2Ci32%2C~lib/typedarray/Int32Array%29=>bool> + block $~lib/function/Function<%28u16%2Ci32%2C~lib/typedarray/Uint16Array%29=>bool> + block $~lib/function/Function<%28i16%2Ci32%2C~lib/typedarray/Int16Array%29=>bool> + block $~lib/function/Function<%28u8%2Ci32%2C~lib/typedarray/Uint8ClampedArray%29=>bool> + block $~lib/function/Function<%28u8%2Ci32%2C~lib/typedarray/Uint8Array%29=>bool> + block $~lib/function/Function<%28i8%2Ci32%2C~lib/typedarray/Int8Array%29=>bool> + block $~lib/function/Function<%28f64%2Ci32%2C~lib/typedarray/Float64Array%29=>f64> + block $~lib/function/Function<%28f32%2Ci32%2C~lib/typedarray/Float32Array%29=>f32> + block $~lib/function/Function<%28u64%2Ci32%2C~lib/typedarray/Uint64Array%29=>u64> + block $~lib/function/Function<%28i64%2Ci32%2C~lib/typedarray/Int64Array%29=>i64> + block $~lib/function/Function<%28u32%2Ci32%2C~lib/typedarray/Uint32Array%29=>u32> + block $~lib/function/Function<%28i32%2Ci32%2C~lib/typedarray/Int32Array%29=>i32> + block $~lib/function/Function<%28u16%2Ci32%2C~lib/typedarray/Uint16Array%29=>u16> + block $~lib/function/Function<%28i16%2Ci32%2C~lib/typedarray/Int16Array%29=>i16> + block $~lib/function/Function<%28u8%2Ci32%2C~lib/typedarray/Uint8ClampedArray%29=>u8> + block $~lib/function/Function<%28u8%2Ci32%2C~lib/typedarray/Uint8Array%29=>u8> + block $~lib/function/Function<%28i8%2Ci32%2C~lib/typedarray/Int8Array%29=>i8> + block $~lib/function/Function<%28f64%2Cf64%2Ci32%2C~lib/typedarray/Float64Array%29=>f64> + block $~lib/function/Function<%28f32%2Cf32%2Ci32%2C~lib/typedarray/Float32Array%29=>f32> + block $~lib/function/Function<%28u64%2Cu64%2Ci32%2C~lib/typedarray/Uint64Array%29=>u64> + block $~lib/function/Function<%28i64%2Ci64%2Ci32%2C~lib/typedarray/Int64Array%29=>i64> + block $~lib/function/Function<%28u32%2Cu32%2Ci32%2C~lib/typedarray/Uint32Array%29=>u32> + block $~lib/function/Function<%28i32%2Ci32%2Ci32%2C~lib/typedarray/Int32Array%29=>i32> + block $~lib/function/Function<%28u16%2Cu16%2Ci32%2C~lib/typedarray/Uint16Array%29=>u16> + block $~lib/function/Function<%28i16%2Ci16%2Ci32%2C~lib/typedarray/Int16Array%29=>i16> + block $~lib/function/Function<%28u8%2Cu8%2Ci32%2C~lib/typedarray/Uint8ClampedArray%29=>u8> + block $~lib/function/Function<%28u8%2Cu8%2Ci32%2C~lib/typedarray/Uint8Array%29=>u8> + block $~lib/function/Function<%28i8%2Ci8%2Ci32%2C~lib/typedarray/Int8Array%29=>i8> + block $~lib/array/Array + block $~lib/array/Array + block $~lib/function/Function<%28f64%2Cf64%29=>i32> + block $~lib/typedarray/Float64Array + block $~lib/typedarray/Float32Array + block $~lib/typedarray/Uint64Array + block $~lib/typedarray/Int64Array + block $~lib/typedarray/Uint32Array + block $~lib/typedarray/Int32Array + block $~lib/typedarray/Uint16Array + block $~lib/typedarray/Int16Array + block $~lib/typedarray/Uint8ClampedArray + block $~lib/typedarray/Uint8Array + block $~lib/typedarray/Int8Array + block $~lib/arraybuffer/ArrayBufferView + block $~lib/string/String + block $~lib/arraybuffer/ArrayBuffer + local.get $0 + i32.const 8 + i32.sub + i32.load + br_table $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $~lib/typedarray/Int8Array $~lib/typedarray/Uint8Array $~lib/typedarray/Uint8ClampedArray $~lib/typedarray/Int16Array $~lib/typedarray/Uint16Array $~lib/typedarray/Int32Array $~lib/typedarray/Uint32Array $~lib/typedarray/Int64Array $~lib/typedarray/Uint64Array $~lib/typedarray/Float32Array $~lib/typedarray/Float64Array $~lib/function/Function<%28f64%2Cf64%29=>i32> $~lib/array/Array $~lib/array/Array $~lib/function/Function<%28i8%2Ci8%2Ci32%2C~lib/typedarray/Int8Array%29=>i8> $~lib/function/Function<%28u8%2Cu8%2Ci32%2C~lib/typedarray/Uint8Array%29=>u8> $~lib/function/Function<%28u8%2Cu8%2Ci32%2C~lib/typedarray/Uint8ClampedArray%29=>u8> $~lib/function/Function<%28i16%2Ci16%2Ci32%2C~lib/typedarray/Int16Array%29=>i16> $~lib/function/Function<%28u16%2Cu16%2Ci32%2C~lib/typedarray/Uint16Array%29=>u16> $~lib/function/Function<%28i32%2Ci32%2Ci32%2C~lib/typedarray/Int32Array%29=>i32> $~lib/function/Function<%28u32%2Cu32%2Ci32%2C~lib/typedarray/Uint32Array%29=>u32> $~lib/function/Function<%28i64%2Ci64%2Ci32%2C~lib/typedarray/Int64Array%29=>i64> $~lib/function/Function<%28u64%2Cu64%2Ci32%2C~lib/typedarray/Uint64Array%29=>u64> $~lib/function/Function<%28f32%2Cf32%2Ci32%2C~lib/typedarray/Float32Array%29=>f32> $~lib/function/Function<%28f64%2Cf64%2Ci32%2C~lib/typedarray/Float64Array%29=>f64> $~lib/function/Function<%28i8%2Ci32%2C~lib/typedarray/Int8Array%29=>i8> $~lib/function/Function<%28u8%2Ci32%2C~lib/typedarray/Uint8Array%29=>u8> $~lib/function/Function<%28u8%2Ci32%2C~lib/typedarray/Uint8ClampedArray%29=>u8> $~lib/function/Function<%28i16%2Ci32%2C~lib/typedarray/Int16Array%29=>i16> $~lib/function/Function<%28u16%2Ci32%2C~lib/typedarray/Uint16Array%29=>u16> $~lib/function/Function<%28i32%2Ci32%2C~lib/typedarray/Int32Array%29=>i32> $~lib/function/Function<%28u32%2Ci32%2C~lib/typedarray/Uint32Array%29=>u32> $~lib/function/Function<%28i64%2Ci32%2C~lib/typedarray/Int64Array%29=>i64> $~lib/function/Function<%28u64%2Ci32%2C~lib/typedarray/Uint64Array%29=>u64> $~lib/function/Function<%28f32%2Ci32%2C~lib/typedarray/Float32Array%29=>f32> $~lib/function/Function<%28f64%2Ci32%2C~lib/typedarray/Float64Array%29=>f64> $~lib/function/Function<%28i8%2Ci32%2C~lib/typedarray/Int8Array%29=>bool> $~lib/function/Function<%28u8%2Ci32%2C~lib/typedarray/Uint8Array%29=>bool> $~lib/function/Function<%28u8%2Ci32%2C~lib/typedarray/Uint8ClampedArray%29=>bool> $~lib/function/Function<%28i16%2Ci32%2C~lib/typedarray/Int16Array%29=>bool> $~lib/function/Function<%28u16%2Ci32%2C~lib/typedarray/Uint16Array%29=>bool> $~lib/function/Function<%28i32%2Ci32%2C~lib/typedarray/Int32Array%29=>bool> $~lib/function/Function<%28u32%2Ci32%2C~lib/typedarray/Uint32Array%29=>bool> $~lib/function/Function<%28i64%2Ci32%2C~lib/typedarray/Int64Array%29=>bool> $~lib/function/Function<%28u64%2Ci32%2C~lib/typedarray/Uint64Array%29=>bool> $~lib/function/Function<%28f32%2Ci32%2C~lib/typedarray/Float32Array%29=>bool> $~lib/function/Function<%28f64%2Ci32%2C~lib/typedarray/Float64Array%29=>bool> $~lib/function/Function<%28i8%2Ci32%2C~lib/typedarray/Int8Array%29=>void> $~lib/function/Function<%28u8%2Ci32%2C~lib/typedarray/Uint8Array%29=>void> $~lib/function/Function<%28u8%2Ci32%2C~lib/typedarray/Uint8ClampedArray%29=>void> $~lib/function/Function<%28i16%2Ci32%2C~lib/typedarray/Int16Array%29=>void> $~lib/function/Function<%28u16%2Ci32%2C~lib/typedarray/Uint16Array%29=>void> $~lib/function/Function<%28i32%2Ci32%2C~lib/typedarray/Int32Array%29=>void> $~lib/function/Function<%28u32%2Ci32%2C~lib/typedarray/Uint32Array%29=>void> $~lib/function/Function<%28i64%2Ci32%2C~lib/typedarray/Int64Array%29=>void> $~lib/function/Function<%28u64%2Ci32%2C~lib/typedarray/Uint64Array%29=>void> $~lib/function/Function<%28f32%2Ci32%2C~lib/typedarray/Float32Array%29=>void> $~lib/function/Function<%28f64%2Ci32%2C~lib/typedarray/Float64Array%29=>void> $~lib/array/Array $~lib/array/Array $~lib/array/Array $~lib/array/Array $~lib/array/Array $~lib/array/Array $~lib/array/Array $~lib/array/Array $invalid + 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/typedarray/Int8Array~visit + return + end + local.get $0 + local.get $1 + call $~lib/typedarray/Uint8Array~visit + return + end + local.get $0 + local.get $1 + call $~lib/typedarray/Uint8ClampedArray~visit + return + end + local.get $0 + local.get $1 + call $~lib/typedarray/Int16Array~visit + return + end + local.get $0 + local.get $1 + call $~lib/typedarray/Uint16Array~visit + return + end + local.get $0 + local.get $1 + call $~lib/typedarray/Int32Array~visit + return + end + local.get $0 + local.get $1 + call $~lib/typedarray/Uint32Array~visit + return + end + local.get $0 + local.get $1 + call $~lib/typedarray/Int64Array~visit + return + end + local.get $0 + local.get $1 + call $~lib/typedarray/Uint64Array~visit + return + end + local.get $0 + local.get $1 + call $~lib/typedarray/Float32Array~visit + return + end + local.get $0 + local.get $1 + call $~lib/typedarray/Float64Array~visit + return + end + local.get $0 + local.get $1 + call $~lib/function/Function<%28f64%2Cf64%29=>i32>~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<%28i8%2Ci8%2Ci32%2C~lib/typedarray/Int8Array%29=>i8>~visit + return + end + local.get $0 + local.get $1 + call $~lib/function/Function<%28u8%2Cu8%2Ci32%2C~lib/typedarray/Uint8Array%29=>u8>~visit + return + end + local.get $0 + local.get $1 + call $~lib/function/Function<%28u8%2Cu8%2Ci32%2C~lib/typedarray/Uint8ClampedArray%29=>u8>~visit + return + end + local.get $0 + local.get $1 + call $~lib/function/Function<%28i16%2Ci16%2Ci32%2C~lib/typedarray/Int16Array%29=>i16>~visit + return + end + local.get $0 + local.get $1 + call $~lib/function/Function<%28u16%2Cu16%2Ci32%2C~lib/typedarray/Uint16Array%29=>u16>~visit + return + end + local.get $0 + local.get $1 + call $~lib/function/Function<%28i32%2Ci32%2Ci32%2C~lib/typedarray/Int32Array%29=>i32>~visit + return + end + local.get $0 + local.get $1 + call $~lib/function/Function<%28u32%2Cu32%2Ci32%2C~lib/typedarray/Uint32Array%29=>u32>~visit + return + end + local.get $0 + local.get $1 + call $~lib/function/Function<%28i64%2Ci64%2Ci32%2C~lib/typedarray/Int64Array%29=>i64>~visit + return + end + local.get $0 + local.get $1 + call $~lib/function/Function<%28u64%2Cu64%2Ci32%2C~lib/typedarray/Uint64Array%29=>u64>~visit + return + end + local.get $0 + local.get $1 + call $~lib/function/Function<%28f32%2Cf32%2Ci32%2C~lib/typedarray/Float32Array%29=>f32>~visit + return + end + local.get $0 + local.get $1 + call $~lib/function/Function<%28f64%2Cf64%2Ci32%2C~lib/typedarray/Float64Array%29=>f64>~visit + return + end + local.get $0 + local.get $1 + call $~lib/function/Function<%28i8%2Ci32%2C~lib/typedarray/Int8Array%29=>i8>~visit + return + end + local.get $0 + local.get $1 + call $~lib/function/Function<%28u8%2Ci32%2C~lib/typedarray/Uint8Array%29=>u8>~visit + return + end + local.get $0 + local.get $1 + call $~lib/function/Function<%28u8%2Ci32%2C~lib/typedarray/Uint8ClampedArray%29=>u8>~visit + return + end + local.get $0 + local.get $1 + call $~lib/function/Function<%28i16%2Ci32%2C~lib/typedarray/Int16Array%29=>i16>~visit + return + end + local.get $0 + local.get $1 + call $~lib/function/Function<%28u16%2Ci32%2C~lib/typedarray/Uint16Array%29=>u16>~visit + return + end + local.get $0 + local.get $1 + call $~lib/function/Function<%28i32%2Ci32%2C~lib/typedarray/Int32Array%29=>i32>~visit + return + end + local.get $0 + local.get $1 + call $~lib/function/Function<%28u32%2Ci32%2C~lib/typedarray/Uint32Array%29=>u32>~visit + return + end + local.get $0 + local.get $1 + call $~lib/function/Function<%28i64%2Ci32%2C~lib/typedarray/Int64Array%29=>i64>~visit + return + end + local.get $0 + local.get $1 + call $~lib/function/Function<%28u64%2Ci32%2C~lib/typedarray/Uint64Array%29=>u64>~visit + return + end + local.get $0 + local.get $1 + call $~lib/function/Function<%28f32%2Ci32%2C~lib/typedarray/Float32Array%29=>f32>~visit + return + end + local.get $0 + local.get $1 + call $~lib/function/Function<%28f64%2Ci32%2C~lib/typedarray/Float64Array%29=>f64>~visit + return + end + local.get $0 + local.get $1 + call $~lib/function/Function<%28i8%2Ci32%2C~lib/typedarray/Int8Array%29=>bool>~visit + return + end + local.get $0 + local.get $1 + call $~lib/function/Function<%28u8%2Ci32%2C~lib/typedarray/Uint8Array%29=>bool>~visit + return + end + local.get $0 + local.get $1 + call $~lib/function/Function<%28u8%2Ci32%2C~lib/typedarray/Uint8ClampedArray%29=>bool>~visit + return + end + local.get $0 + local.get $1 + call $~lib/function/Function<%28i16%2Ci32%2C~lib/typedarray/Int16Array%29=>bool>~visit + return + end + local.get $0 + local.get $1 + call $~lib/function/Function<%28u16%2Ci32%2C~lib/typedarray/Uint16Array%29=>bool>~visit + return + end + local.get $0 + local.get $1 + call $~lib/function/Function<%28i32%2Ci32%2C~lib/typedarray/Int32Array%29=>bool>~visit + return + end + local.get $0 + local.get $1 + call $~lib/function/Function<%28u32%2Ci32%2C~lib/typedarray/Uint32Array%29=>bool>~visit + return + end + local.get $0 + local.get $1 + call $~lib/function/Function<%28i64%2Ci32%2C~lib/typedarray/Int64Array%29=>bool>~visit + return + end + local.get $0 + local.get $1 + call $~lib/function/Function<%28u64%2Ci32%2C~lib/typedarray/Uint64Array%29=>bool>~visit + return + end + local.get $0 + local.get $1 + call $~lib/function/Function<%28f32%2Ci32%2C~lib/typedarray/Float32Array%29=>bool>~visit + return + end + local.get $0 + local.get $1 + call $~lib/function/Function<%28f64%2Ci32%2C~lib/typedarray/Float64Array%29=>bool>~visit + return + end + local.get $0 + local.get $1 + call $~lib/function/Function<%28i8%2Ci32%2C~lib/typedarray/Int8Array%29=>void>~visit + return + end + local.get $0 + local.get $1 + call $~lib/function/Function<%28u8%2Ci32%2C~lib/typedarray/Uint8Array%29=>void>~visit + return + end + local.get $0 + local.get $1 + call $~lib/function/Function<%28u8%2Ci32%2C~lib/typedarray/Uint8ClampedArray%29=>void>~visit + return + end + local.get $0 + local.get $1 + call $~lib/function/Function<%28i16%2Ci32%2C~lib/typedarray/Int16Array%29=>void>~visit + return + end + local.get $0 + local.get $1 + call $~lib/function/Function<%28u16%2Ci32%2C~lib/typedarray/Uint16Array%29=>void>~visit + return + end + local.get $0 + local.get $1 + call $~lib/function/Function<%28i32%2Ci32%2C~lib/typedarray/Int32Array%29=>void>~visit + return + end + local.get $0 + local.get $1 + call $~lib/function/Function<%28u32%2Ci32%2C~lib/typedarray/Uint32Array%29=>void>~visit + return + end + local.get $0 + local.get $1 + call $~lib/function/Function<%28i64%2Ci32%2C~lib/typedarray/Int64Array%29=>void>~visit + return + end + local.get $0 + local.get $1 + call $~lib/function/Function<%28u64%2Ci32%2C~lib/typedarray/Uint64Array%29=>void>~visit + return + end + local.get $0 + local.get $1 + call $~lib/function/Function<%28f32%2Ci32%2C~lib/typedarray/Float32Array%29=>void>~visit + return + end + local.get $0 + local.get $1 + call $~lib/function/Function<%28f64%2Ci32%2C~lib/typedarray/Float64Array%29=>void>~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/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/array/Array~visit + return end - local.get $6 - i32.const 1 - i32.sub - local.set $6 - br $while-continue|0 - end - end - i32.const -1 - end - local.set $10 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $10 - ) - (func $~lib/typedarray/Float64Array#lastIndexOf@varargs (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 - call $~stack_check - 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 + local.get $0 + local.get $1 + call $~lib/array/Array~visit + return end - unreachable + local.get $0 + local.get $1 + call $~lib/array/Array~visit + return end local.get $0 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store - local.get $3 - call $~lib/typedarray/Float64Array#get:length - local.set $2 - end - local.get $0 - local.get $1 - local.get $2 - call $~lib/typedarray/Float64Array#lastIndexOf - local.set $3 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $3 - ) - (func $std/typedarray/testArrayIndexOfAndLastIndexOf<~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) - 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 - 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 0 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - global.get $std/typedarray/testArrayIndexOfAndLastIndexOfValues - local.tee $0 - i32.store - local.get $0 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - call $~lib/array/Array#get:length - local.set $1 - global.get $~lib/memory/__stack_pointer - i32.const 0 - local.get $1 - call $~lib/typedarray/Float64Array#constructor - local.tee $2 - i32.store offset=8 - i32.const 0 - local.set $3 - loop $for-loop|0 - local.get $3 local.get $1 - i32.lt_s - local.set $4 - local.get $4 - if - local.get $2 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - local.get $3 - local.get $0 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=12 - local.get $6 - local.get $3 - call $~lib/array/Array#__get - f64.convert_i32_s - call $~lib/typedarray/Float64Array#__set - local.get $3 - i32.const 1 - i32.add - local.set $3 - br $for-loop|0 - end - end - local.get $2 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - f64.const 0 - i32.const 0 - call $~lib/typedarray/Float64Array#indexOf - i32.const 0 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 580 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - f64.const 11 - i32.const 0 - call $~lib/typedarray/Float64Array#indexOf - i32.const -1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 581 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - f64.const -1 - i32.const 0 - call $~lib/typedarray/Float64Array#indexOf - i32.const -1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 582 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - f64.const 3 - i32.const 0 - call $~lib/typedarray/Float64Array#indexOf - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 583 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - f64.const 3 - i32.const 2 - call $~lib/typedarray/Float64Array#indexOf - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 584 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - f64.const 3 - i32.const 3 - call $~lib/typedarray/Float64Array#indexOf - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 585 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - f64.const 3 - i32.const 4 - call $~lib/typedarray/Float64Array#indexOf - i32.const -1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 586 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - f64.const 1 - i32.const 10 - call $~lib/typedarray/Float64Array#indexOf - i32.const -1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 587 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - f64.const 1 - i32.const -100 - call $~lib/typedarray/Float64Array#indexOf - i32.const 1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 588 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - f64.const 0 - i32.const 1 - global.set $~argumentsLength - i32.const 0 - call $~lib/typedarray/Float64Array#lastIndexOf@varargs - i32.const 0 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 590 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - f64.const 11 - i32.const 1 - global.set $~argumentsLength - i32.const 0 - call $~lib/typedarray/Float64Array#lastIndexOf@varargs - i32.const -1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 591 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - f64.const -1 - i32.const 1 - global.set $~argumentsLength - i32.const 0 - call $~lib/typedarray/Float64Array#lastIndexOf@varargs - i32.const -1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 592 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - f64.const 3 - i32.const 1 - global.set $~argumentsLength - i32.const 0 - call $~lib/typedarray/Float64Array#lastIndexOf@varargs - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 593 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - f64.const 3 - i32.const 4 - call $~lib/typedarray/Float64Array#lastIndexOf - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 594 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - f64.const 3 - i32.const 3 - call $~lib/typedarray/Float64Array#lastIndexOf - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 595 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - f64.const 3 - i32.const 2 - call $~lib/typedarray/Float64Array#lastIndexOf - i32.const -1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 596 - i32.const 3 - call $~lib/builtins/abort - unreachable + call $~lib/array/Array~visit + return end - local.get $2 - local.set $6 + unreachable + ) + (func $~start + call $start:std/typedarray + ) + (func $~stack_check global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - f64.const 1 - i32.const 100 - call $~lib/typedarray/Float64Array#lastIndexOf - i32.const 1 - i32.eq - i32.eqz + global.get $~lib/memory/__data_end + i32.lt_s if - i32.const 0 - i32.const 544 - i32.const 597 - i32.const 3 + i32.const 30560 + i32.const 30608 + i32.const 1 + i32.const 1 call $~lib/builtins/abort unreachable end - local.get $2 - local.set $6 + ) + (func $std/typedarray/testReduce<~lib/typedarray/Int8Array,i8> + (local $0 i32) + (local $1 i32) + (local $2 i32) global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - f64.const 1 - i32.const -10 - call $~lib/typedarray/Float64Array#lastIndexOf + 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.const 3 + call $~lib/typedarray/Int8Array#constructor + local.tee $0 + i32.store + local.get $0 + i32.const 0 i32.const 1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 598 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.set $6 + call $~lib/typedarray/Int8Array#__set + local.get $0 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Int8Array#__set + local.get $0 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Int8Array#__set + local.get $0 + i32.const 1872 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $2 i32.store offset=4 - local.get $6 - f64.const 1 - i32.const -11 - call $~lib/typedarray/Float64Array#lastIndexOf - i32.const -1 + local.get $2 + i32.const 0 + call $~lib/typedarray/Int8Array#reduce + local.set $1 + local.get $1 + i32.const 24 + i32.shl + i32.const 24 + i32.shr_s + i32.const 6 i32.eq i32.eqz if i32.const 0 i32.const 544 - i32.const 599 + i32.const 323 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $2 - local.set $6 + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $std/typedarray/testReduce<~lib/typedarray/Uint8Array,u8> + (local $0 i32) + (local $1 i32) + (local $2 i32) global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 4 - i32.const 9 - call $~lib/typedarray/Float64Array#subarray - local.tee $5 - i32.store offset=16 - local.get $5 - local.set $6 + 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 - local.get $6 - i32.store offset=4 - local.get $6 - f64.const 3 i32.const 0 - call $~lib/typedarray/Float64Array#indexOf - i32.const -1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 603 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $5 - local.set $6 + i32.const 3 + call $~lib/typedarray/Uint8Array#constructor + local.tee $0 + i32.store + local.get $0 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Uint8Array#__set + local.get $0 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Uint8Array#__set + local.get $0 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Uint8Array#__set + local.get $0 + i32.const 1904 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $2 i32.store offset=4 - local.get $6 - f64.const 4 + local.get $2 i32.const 0 - call $~lib/typedarray/Float64Array#indexOf - i32.const 4 - i32.const 4 - i32.sub + call $~lib/typedarray/Uint8Array#reduce + local.set $1 + local.get $1 + i32.const 255 + i32.and + i32.const 6 i32.eq i32.eqz if i32.const 0 i32.const 544 - i32.const 604 + i32.const 323 i32.const 3 call $~lib/builtins/abort unreachable end - local.get $5 - local.set $6 global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - f64.const 5 - i32.const 0 - call $~lib/typedarray/Float64Array#indexOf - i32.const 5 - i32.const 4 + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $std/typedarray/testReduce<~lib/typedarray/Uint8ClampedArray,u8> + (local $0 i32) + (local $1 i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 i32.sub - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 605 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $5 - local.set $6 + 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 - local.get $6 - i32.store offset=4 - local.get $6 - f64.const 9 i32.const 0 - call $~lib/typedarray/Float64Array#indexOf - i32.const -1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 606 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $5 - local.set $6 + i32.const 3 + call $~lib/typedarray/Uint8ClampedArray#constructor + local.tee $0 + i32.store + local.get $0 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Uint8ClampedArray#__set + local.get $0 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Uint8ClampedArray#__set + local.get $0 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Uint8ClampedArray#__set + local.get $0 + i32.const 1936 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $2 i32.store offset=4 - local.get $6 - f64.const 10 + local.get $2 i32.const 0 - call $~lib/typedarray/Float64Array#indexOf - i32.const -1 + call $~lib/typedarray/Uint8ClampedArray#reduce + local.set $1 + local.get $1 + i32.const 255 + i32.and + i32.const 6 i32.eq i32.eqz if i32.const 0 i32.const 544 - i32.const 607 + i32.const 323 i32.const 3 call $~lib/builtins/abort unreachable end - local.get $5 - local.set $6 global.get $~lib/memory/__stack_pointer - local.get $6 + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $std/typedarray/testReduce<~lib/typedarray/Int16Array,i16> + (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 + 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 3 + call $~lib/typedarray/Int16Array#constructor + local.tee $0 + i32.store + local.get $0 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Int16Array#__set + local.get $0 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Int16Array#__set + local.get $0 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Int16Array#__set + local.get $0 + i32.const 1968 + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 i32.store offset=4 - local.get $6 - f64.const 11 + local.get $2 i32.const 0 - call $~lib/typedarray/Float64Array#indexOf - i32.const -1 + call $~lib/typedarray/Int16Array#reduce + local.set $1 + local.get $1 + i32.const 16 + i32.shl + i32.const 16 + i32.shr_s + i32.const 6 i32.eq i32.eqz if i32.const 0 i32.const 544 - i32.const 608 + i32.const 323 i32.const 3 call $~lib/builtins/abort unreachable end - local.get $5 - local.set $6 global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - f64.const 5 - i32.const 1 - call $~lib/typedarray/Float64Array#indexOf - i32.const 5 - i32.const 4 + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $std/typedarray/testReduce<~lib/typedarray/Uint16Array,u16> + (local $0 i32) + (local $1 i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 i32.sub - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 609 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $5 - local.set $6 + global.set $~lib/memory/__stack_pointer + call $~stack_check global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - f64.const 5 + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 3 + call $~lib/typedarray/Uint16Array#constructor + local.tee $0 + i32.store + local.get $0 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Uint16Array#__set + local.get $0 + i32.const 1 i32.const 2 - call $~lib/typedarray/Float64Array#indexOf - i32.const -1 + call $~lib/typedarray/Uint16Array#__set + local.get $0 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Uint16Array#__set + local.get $0 + i32.const 2000 + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 0 + call $~lib/typedarray/Uint16Array#reduce + local.set $1 + local.get $1 + i32.const 65535 + i32.and + i32.const 6 i32.eq i32.eqz if i32.const 0 i32.const 544 - i32.const 610 + i32.const 323 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 ) - (func $~lib/typedarray/Float64Array#includes (param $0 i32) (param $1 f64) (param $2 i32) (result i32) - (local $3 i32) - (local $4 f64) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - (local $10 f64) - (local $11 i32) + (func $std/typedarray/testReduce<~lib/typedarray/Int32Array,i32> + (local $0 i32) + (local $1 i32) + (local $2 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -48223,119 +34404,55 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - block $~lib/typedarray/INCLUDES<~lib/typedarray/Float64Array,f64>|inlined.0 (result i32) - global.get $~lib/memory/__stack_pointer - local.get $0 - local.tee $5 - i32.store - local.get $1 - local.set $4 - local.get $2 - local.set $3 - i32.const 1 - drop - local.get $3 - local.set $6 - local.get $5 - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=4 - local.get $11 - call $~lib/typedarray/Float64Array#get:length - local.set $7 - local.get $7 - i32.const 0 - i32.eq - if (result i32) - i32.const 1 - else - local.get $6 - local.get $7 - i32.ge_s - end - if - i32.const 0 - br $~lib/typedarray/INCLUDES<~lib/typedarray/Float64Array,f64>|inlined.0 - end - local.get $6 - i32.const 0 - i32.lt_s - if - local.get $7 - local.get $6 - i32.add - local.tee $8 - i32.const 0 - local.tee $9 - local.get $8 - local.get $9 - i32.gt_s - select - local.set $6 - end - local.get $5 - i32.load offset=4 - local.set $8 - loop $while-continue|0 - local.get $6 - local.get $7 - i32.lt_s - local.set $9 - local.get $9 - if - local.get $8 - local.get $6 - i32.const 3 - i32.shl - i32.add - f64.load - local.set $10 - local.get $10 - local.get $4 - f64.eq - if (result i32) - i32.const 1 - else - local.get $10 - local.get $10 - f64.ne - local.get $4 - local.get $4 - f64.ne - i32.and - end - if - i32.const 1 - br $~lib/typedarray/INCLUDES<~lib/typedarray/Float64Array,f64>|inlined.0 - end - local.get $6 - i32.const 1 - i32.add - local.set $6 - br $while-continue|0 - end - end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 3 + call $~lib/typedarray/Int32Array#constructor + local.tee $0 + i32.store + local.get $0 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Int32Array#__set + local.get $0 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Int32Array#__set + local.get $0 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Int32Array#__set + local.get $0 + i32.const 2032 + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 0 + call $~lib/typedarray/Int32Array#reduce + local.set $1 + local.get $1 + i32.const 6 + i32.eq + i32.eqz + if i32.const 0 - br $~lib/typedarray/INCLUDES<~lib/typedarray/Float64Array,f64>|inlined.0 + i32.const 544 + i32.const 323 + i32.const 3 + call $~lib/builtins/abort + unreachable end - local.set $11 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $11 ) - (func $~lib/typedarray/Float32Array#includes (param $0 i32) (param $1 f32) (param $2 i32) (result i32) - (local $3 i32) - (local $4 f32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - (local $10 f32) - (local $11 i32) + (func $std/typedarray/testReduce<~lib/typedarray/Uint32Array,u32> + (local $0 i32) + (local $1 i32) + (local $2 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -48344,120 +34461,55 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - block $~lib/typedarray/INCLUDES<~lib/typedarray/Float32Array,f32>|inlined.0 (result i32) - global.get $~lib/memory/__stack_pointer - local.get $0 - local.tee $5 - i32.store - local.get $1 - local.set $4 - local.get $2 - local.set $3 - i32.const 1 - drop - local.get $3 - local.set $6 - local.get $5 - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=4 - local.get $11 - call $~lib/typedarray/Float32Array#get:length - local.set $7 - local.get $7 - i32.const 0 - i32.eq - if (result i32) - i32.const 1 - else - local.get $6 - local.get $7 - i32.ge_s - end - if - i32.const 0 - br $~lib/typedarray/INCLUDES<~lib/typedarray/Float32Array,f32>|inlined.0 - end - local.get $6 - i32.const 0 - i32.lt_s - if - local.get $7 - local.get $6 - i32.add - local.tee $8 - i32.const 0 - local.tee $9 - local.get $8 - local.get $9 - i32.gt_s - select - local.set $6 - end - local.get $5 - i32.load offset=4 - local.set $8 - loop $while-continue|0 - local.get $6 - local.get $7 - i32.lt_s - local.set $9 - local.get $9 - if - local.get $8 - local.get $6 - i32.const 2 - i32.shl - i32.add - f32.load - local.set $10 - local.get $10 - local.get $4 - f32.eq - if (result i32) - i32.const 1 - else - local.get $10 - local.get $10 - f32.ne - local.get $4 - local.get $4 - f32.ne - i32.and - end - if - i32.const 1 - br $~lib/typedarray/INCLUDES<~lib/typedarray/Float32Array,f32>|inlined.0 - end - local.get $6 - i32.const 1 - i32.add - local.set $6 - br $while-continue|0 - end - end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 3 + call $~lib/typedarray/Uint32Array#constructor + local.tee $0 + i32.store + local.get $0 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Uint32Array#__set + local.get $0 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Uint32Array#__set + local.get $0 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Uint32Array#__set + local.get $0 + i32.const 2064 + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 0 + call $~lib/typedarray/Uint32Array#reduce + local.set $1 + local.get $1 + i32.const 6 + i32.eq + i32.eqz + if i32.const 0 - br $~lib/typedarray/INCLUDES<~lib/typedarray/Float32Array,f32>|inlined.0 + i32.const 544 + i32.const 323 + i32.const 3 + call $~lib/builtins/abort + unreachable end - local.set $11 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $11 ) - (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) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - (local $10 i32) - (local $11 i32) - (local $12 i32) + (func $std/typedarray/testReduce<~lib/typedarray/Int64Array,i64> + (local $0 i32) + (local $1 i64) + (local $2 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -48466,135 +34518,55 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - local.get $0 - local.set $12 global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store - local.get $12 - call $~lib/string/String#get:length - local.set $3 - local.get $1 - local.tee $4 i32.const 0 - local.tee $5 - local.get $4 - local.get $5 - i32.gt_s - select - local.tee $5 - local.get $3 - local.tee $4 - local.get $5 - local.get $4 - i32.lt_s - select - local.set $6 - local.get $2 - local.tee $4 + i32.const 3 + call $~lib/typedarray/Int64Array#constructor + local.tee $0 + i32.store + local.get $0 i32.const 0 - local.tee $5 - local.get $4 - local.get $5 - i32.gt_s - select - local.tee $5 - local.get $3 - local.tee $4 - local.get $5 - local.get $4 - i32.lt_s - select - local.set $7 - local.get $6 - local.tee $4 - local.get $7 - local.tee $5 - local.get $4 - local.get $5 - i32.lt_s - select - i32.const 1 - i32.shl - local.set $8 - local.get $6 - local.tee $5 - local.get $7 - local.tee $4 - local.get $5 - local.get $4 - i32.gt_s - select + i64.const 1 + call $~lib/typedarray/Int64Array#__set + local.get $0 i32.const 1 - i32.shl - local.set $9 - local.get $9 - local.get $8 - i32.sub - local.set $10 - local.get $10 + i64.const 2 + call $~lib/typedarray/Int64Array#__set + local.get $0 + i32.const 2 + i64.const 3 + call $~lib/typedarray/Int64Array#__set + local.get $0 + i32.const 2096 + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i64.const 0 + call $~lib/typedarray/Int64Array#reduce + local.set $1 + local.get $1 + i64.const 6 + i64.eq i32.eqz if - i32.const 6048 - local.set $12 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $12 - return - end - local.get $8 - i32.eqz - if (result i32) - local.get $9 - local.get $3 - i32.const 1 - i32.shl - i32.eq - else i32.const 0 + i32.const 544 + i32.const 323 + i32.const 3 + call $~lib/builtins/abort + unreachable end - if - local.get $0 - local.set $12 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $12 - return - end - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $11 - i32.store offset=4 - local.get $11 - local.get $0 - local.get $8 - i32.add - local.get $10 - call $~lib/memory/memory.copy - local.get $11 - local.set $12 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $12 ) - (func $~lib/util/string/joinIntegerArray (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) - (local $11 i32) + (func $std/typedarray/testReduce<~lib/typedarray/Uint64Array,u64> + (local $0 i32) + (local $1 i64) + (local $2 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -48603,169 +34575,111 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - local.get $1 - i32.const 1 - i32.sub - local.set $3 - local.get $3 + global.get $~lib/memory/__stack_pointer i32.const 0 - i32.lt_s - if - i32.const 6048 - 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 $3 + i32.const 3 + call $~lib/typedarray/Uint64Array#constructor + local.tee $0 + i32.store + local.get $0 + i32.const 0 + i64.const 1 + call $~lib/typedarray/Uint64Array#__set + local.get $0 + i32.const 1 + i64.const 2 + call $~lib/typedarray/Uint64Array#__set + local.get $0 + i32.const 2 + i64.const 3 + call $~lib/typedarray/Uint64Array#__set + local.get $0 + i32.const 2128 + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i64.const 0 + call $~lib/typedarray/Uint64Array#reduce + local.set $1 + local.get $1 + i64.const 6 + i64.eq i32.eqz if - local.get $0 - i32.load8_s - local.set $4 - i32.const 1 - drop - i32.const 1 - i32.const 4 - i32.le_u - drop - local.get $4 - i32.const 10 - call $~lib/util/number/itoa32 - local.set $11 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $11 - return + i32.const 0 + i32.const 544 + i32.const 323 + i32.const 3 + call $~lib/builtins/abort + unreachable end - local.get $2 - local.set $11 global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store - local.get $11 - call $~lib/string/String#get:length - local.set $5 - i32.const 11 - local.get $5 - i32.add - local.get $3 - i32.mul - i32.const 11 + i32.const 8 i32.add - local.set $6 + global.set $~lib/memory/__stack_pointer + ) + (func $std/typedarray/testReduce<~lib/typedarray/Float32Array,f32> + (local $0 i32) + (local $1 f32) + (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 global.get $~lib/memory/__stack_pointer - local.get $6 - i32.const 1 - i32.shl - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $7 - i32.store offset=4 - i32.const 0 - local.set $8 i32.const 0 - local.set $4 - loop $for-loop|0 - local.get $4 - local.get $3 - i32.lt_s - local.set $10 - local.get $10 - if - local.get $0 - local.get $4 - i32.const 0 - i32.shl - i32.add - i32.load8_s - local.set $9 - local.get $8 - local.get $7 - local.get $8 - i32.const 1 - i32.shl - i32.add - local.get $9 - call $~lib/util/number/itoa_buffered - i32.add - local.set $8 - local.get $5 - if - local.get $7 - local.get $8 - i32.const 1 - i32.shl - i32.add - local.get $2 - local.get $5 - i32.const 1 - i32.shl - call $~lib/memory/memory.copy - local.get $8 - local.get $5 - i32.add - local.set $8 - end - local.get $4 - i32.const 1 - i32.add - local.set $4 - br $for-loop|0 - end - end + i32.const 3 + call $~lib/typedarray/Float32Array#constructor + local.tee $0 + i32.store local.get $0 - local.get $3 i32.const 0 - i32.shl - i32.add - i32.load8_s - local.set $9 - local.get $8 - local.get $7 - local.get $8 + f32.const 1 + call $~lib/typedarray/Float32Array#__set + local.get $0 i32.const 1 - i32.shl - i32.add - local.get $9 - call $~lib/util/number/itoa_buffered - i32.add - local.set $8 - local.get $6 - local.get $8 - i32.gt_s + f32.const 2 + call $~lib/typedarray/Float32Array#__set + local.get $0 + i32.const 2 + f32.const 3 + call $~lib/typedarray/Float32Array#__set + local.get $0 + i32.const 2160 + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + f32.const 0 + call $~lib/typedarray/Float32Array#reduce + local.set $1 + local.get $1 + f32.const 6 + f32.eq + i32.eqz if - local.get $7 - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store - local.get $11 i32.const 0 - local.get $8 - call $~lib/string/String#substring - local.set $11 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $11 - return + i32.const 544 + i32.const 323 + i32.const 3 + call $~lib/builtins/abort + unreachable end - local.get $7 - local.set $11 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $11 ) - (func $~lib/typedarray/Int8Array#join (param $0 i32) (param $1 i32) (result i32) + (func $std/typedarray/testReduce<~lib/typedarray/Float64Array,f64> + (local $0 i32) + (local $1 f64) (local $2 i32) global.get $~lib/memory/__stack_pointer i32.const 8 @@ -48775,32 +34689,55 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 3 + call $~lib/typedarray/Float64Array#constructor + local.tee $0 + i32.store local.get $0 - i32.load offset=4 + i32.const 0 + f64.const 1 + call $~lib/typedarray/Float64Array#__set + local.get $0 + i32.const 1 + f64.const 2 + call $~lib/typedarray/Float64Array#__set + local.get $0 + i32.const 2 + f64.const 3 + call $~lib/typedarray/Float64Array#__set local.get $0 + i32.const 2192 local.set $2 global.get $~lib/memory/__stack_pointer local.get $2 i32.store offset=4 local.get $2 - call $~lib/typedarray/Int8Array#get:length + f64.const 0 + call $~lib/typedarray/Float64Array#reduce + local.set $1 local.get $1 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $2 - call $~lib/util/string/joinIntegerArray - local.set $2 + f64.const 6 + f64.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 323 + 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 $2 ) - (func $~lib/string/String.__eq (param $0 i32) (param $1 i32) (result i32) + (func $std/typedarray/testReduceRight<~lib/typedarray/Int8Array,i8> + (local $0 i32) + (local $1 i32) (local $2 i32) - (local $3 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -48809,92 +34746,238 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 3 + call $~lib/typedarray/Int8Array#constructor + local.tee $0 + i32.store + local.get $0 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Int8Array#__set + local.get $0 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Int8Array#__set + local.get $0 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Int8Array#__set local.get $0 + i32.const 2224 + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 0 + call $~lib/typedarray/Int8Array#reduceRight + local.set $1 local.get $1 + i32.const 24 + i32.shl + i32.const 24 + i32.shr_s + i32.const 6 i32.eq + i32.eqz 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 + i32.const 0 + i32.const 544 + i32.const 367 + 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 + ) + (func $std/typedarray/testReduceRight<~lib/typedarray/Uint8Array,u8> + (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 + 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 3 + call $~lib/typedarray/Uint8Array#constructor + local.tee $0 + i32.store + local.get $0 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Uint8Array#__set + local.get $0 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Uint8Array#__set + local.get $0 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Uint8Array#__set local.get $0 + i32.const 2256 + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 i32.const 0 + call $~lib/typedarray/Uint8Array#reduceRight + local.set $1 + local.get $1 + i32.const 255 + i32.and + i32.const 6 i32.eq - if (result i32) - i32.const 1 - else - local.get $1 - i32.const 0 - i32.eq - end + i32.eqz 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 + i32.const 544 + i32.const 367 + i32.const 3 + call $~lib/builtins/abort + unreachable end - local.get $0 - local.set $3 global.get $~lib/memory/__stack_pointer - local.get $3 + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $std/typedarray/testReduceRight<~lib/typedarray/Uint8ClampedArray,u8> + (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 + 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 3 + call $~lib/typedarray/Uint8ClampedArray#constructor + local.tee $0 i32.store - local.get $3 - call $~lib/string/String#get:length + local.get $0 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Uint8ClampedArray#__set + local.get $0 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Uint8ClampedArray#__set + local.get $0 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Uint8ClampedArray#__set + local.get $0 + i32.const 2288 local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 local.get $2 + i32.const 0 + call $~lib/typedarray/Uint8ClampedArray#reduceRight + local.set $1 local.get $1 - 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 + i32.const 255 + i32.and + i32.const 6 + i32.eq + i32.eqz 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 + i32.const 544 + i32.const 367 + i32.const 3 + call $~lib/builtins/abort + unreachable end - local.get $0 - local.set $3 global.get $~lib/memory/__stack_pointer - local.get $3 + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $std/typedarray/testReduceRight<~lib/typedarray/Int16Array,i16> + (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 + 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 3 + call $~lib/typedarray/Int16Array#constructor + local.tee $0 i32.store - local.get $3 + local.get $0 i32.const 0 - local.get $1 - local.set $3 + i32.const 1 + call $~lib/typedarray/Int16Array#__set + local.get $0 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Int16Array#__set + local.get $0 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Int16Array#__set + local.get $0 + i32.const 2320 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $2 i32.store offset=4 - local.get $3 - i32.const 0 local.get $2 - call $~lib/util/string/compareImpl + i32.const 0 + call $~lib/typedarray/Int16Array#reduceRight + local.set $1 + local.get $1 + i32.const 16 + i32.shl + i32.const 16 + i32.shr_s + i32.const 6 + i32.eq i32.eqz - local.set $3 + if + i32.const 0 + i32.const 544 + i32.const 367 + 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 $3 ) - (func $~lib/typedarray/Int8Array#toString (param $0 i32) (result i32) + (func $std/typedarray/testReduceRight<~lib/typedarray/Uint16Array,u16> + (local $0 i32) (local $1 i32) + (local $2 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -48903,31 +34986,59 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - local.get $0 - local.set $1 global.get $~lib/memory/__stack_pointer - local.get $1 + i32.const 0 + i32.const 3 + call $~lib/typedarray/Uint16Array#constructor + local.tee $0 i32.store - local.get $1 - i32.const 7856 - local.set $1 + local.get $0 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Uint16Array#__set + local.get $0 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Uint16Array#__set + local.get $0 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Uint16Array#__set + local.get $0 + i32.const 2352 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=4 - local.get $1 - call $~lib/typedarray/Int8Array#join + local.get $2 + i32.const 0 + call $~lib/typedarray/Uint16Array#reduceRight local.set $1 + local.get $1 + i32.const 65535 + i32.and + i32.const 6 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 367 + 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 $1 ) - (func $std/typedarray/testArrayJoinAndToString<~lib/typedarray/Int8Array,i8> + (func $std/typedarray/testReduceRight<~lib/typedarray/Int32Array,i32> (local $0 i32) (local $1 i32) + (local $2 i32) global.get $~lib/memory/__stack_pointer - i32.const 20 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check @@ -48935,141 +35046,168 @@ 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 0 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 5 - call $~lib/typedarray/Int8Array#constructor + i32.const 3 + call $~lib/typedarray/Int32Array#constructor local.tee $0 i32.store local.get $0 - 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/typedarray/Int8Array#__set + call $~lib/typedarray/Int32Array#__set local.get $0 - local.set $1 - 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 + call $~lib/typedarray/Int32Array#__set local.get $0 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 i32.const 2 i32.const 3 - call $~lib/typedarray/Int8Array#__set + call $~lib/typedarray/Int32Array#__set local.get $0 - local.set $1 + i32.const 2384 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=4 + local.get $2 + i32.const 0 + call $~lib/typedarray/Int32Array#reduceRight + local.set $1 local.get $1 + i32.const 6 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 367 + 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 + ) + (func $std/typedarray/testReduceRight<~lib/typedarray/Uint32Array,u32> + (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 + 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 3 - i32.const 4 - call $~lib/typedarray/Int8Array#__set + call $~lib/typedarray/Uint32Array#constructor + local.tee $0 + i32.store local.get $0 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 4 - i32.const 5 - call $~lib/typedarray/Int8Array#__set i32.const 0 - drop + i32.const 1 + call $~lib/typedarray/Uint32Array#__set + local.get $0 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Uint32Array#__set local.get $0 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=12 - local.get $1 - i32.const 7856 - 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 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Uint32Array#__set + local.get $0 + i32.const 2416 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=4 - local.get $1 - i32.const 7888 + local.get $2 + i32.const 0 + call $~lib/typedarray/Uint32Array#reduceRight 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.const 6 + i32.eq i32.eqz if i32.const 0 i32.const 544 - i32.const 652 - i32.const 5 + i32.const 367 + i32.const 3 call $~lib/builtins/abort unreachable end - local.get $0 - local.set $1 global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=12 - local.get $1 - call $~lib/typedarray/Int8Array#toString - local.set $1 + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $std/typedarray/testReduceRight<~lib/typedarray/Int64Array,i64> + (local $0 i32) + (local $1 i64) + (local $2 i32) global.get $~lib/memory/__stack_pointer - local.get $1 + 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.const 3 + call $~lib/typedarray/Int64Array#constructor + local.tee $0 + i32.store + local.get $0 + i32.const 0 + i64.const 1 + call $~lib/typedarray/Int64Array#__set + local.get $0 + i32.const 1 + i64.const 2 + call $~lib/typedarray/Int64Array#__set + local.get $0 + i32.const 2 + i64.const 3 + call $~lib/typedarray/Int64Array#__set + local.get $0 + i32.const 2448 + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 i32.store offset=4 - local.get $1 - i32.const 7888 + local.get $2 + i64.const 0 + call $~lib/typedarray/Int64Array#reduceRight local.set $1 - global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=8 - local.get $1 - call $~lib/string/String.__eq + i64.const 6 + i64.eq i32.eqz if i32.const 0 i32.const 544 - i32.const 653 - i32.const 5 + i32.const 367 + 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 ) - (func $~lib/util/string/joinIntegerArray (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) - (local $11 i32) + (func $std/typedarray/testReduceRight<~lib/typedarray/Uint64Array,u64> + (local $0 i32) + (local $1 i64) + (local $2 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -49078,169 +35216,54 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - local.get $1 - i32.const 1 - i32.sub - local.set $3 - local.get $3 - i32.const 0 - i32.lt_s - if - i32.const 6048 - 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 $3 - i32.eqz - if - local.get $0 - i32.load8_u - local.set $4 - i32.const 0 - drop - i32.const 1 - i32.const 4 - i32.le_u - drop - local.get $4 - i32.const 10 - call $~lib/util/number/utoa32 - 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 $2 - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store - local.get $11 - call $~lib/string/String#get:length - local.set $5 - i32.const 10 - local.get $5 - i32.add - local.get $3 - i32.mul - i32.const 10 - i32.add - local.set $6 global.get $~lib/memory/__stack_pointer - local.get $6 - i32.const 1 - i32.shl - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $7 - i32.store offset=4 i32.const 0 - local.set $8 - i32.const 0 - local.set $4 - loop $for-loop|0 - local.get $4 - local.get $3 - i32.lt_s - local.set $10 - local.get $10 - if - local.get $0 - local.get $4 - i32.const 0 - i32.shl - i32.add - i32.load8_u - local.set $9 - local.get $8 - local.get $7 - local.get $8 - i32.const 1 - i32.shl - i32.add - local.get $9 - call $~lib/util/number/itoa_buffered - i32.add - local.set $8 - local.get $5 - if - local.get $7 - local.get $8 - i32.const 1 - i32.shl - i32.add - local.get $2 - local.get $5 - i32.const 1 - i32.shl - call $~lib/memory/memory.copy - local.get $8 - local.get $5 - i32.add - local.set $8 - end - local.get $4 - i32.const 1 - i32.add - local.set $4 - br $for-loop|0 - end - end + i32.const 3 + call $~lib/typedarray/Uint64Array#constructor + local.tee $0 + i32.store local.get $0 - local.get $3 i32.const 0 - i32.shl - i32.add - i32.load8_u - local.set $9 - local.get $8 - local.get $7 - local.get $8 + i64.const 1 + call $~lib/typedarray/Uint64Array#__set + local.get $0 i32.const 1 - i32.shl - i32.add - local.get $9 - call $~lib/util/number/itoa_buffered - i32.add - local.set $8 - local.get $6 - local.get $8 - i32.gt_s + i64.const 2 + call $~lib/typedarray/Uint64Array#__set + local.get $0 + i32.const 2 + i64.const 3 + call $~lib/typedarray/Uint64Array#__set + local.get $0 + i32.const 2480 + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i64.const 0 + call $~lib/typedarray/Uint64Array#reduceRight + local.set $1 + local.get $1 + i64.const 6 + i64.eq + i32.eqz if - local.get $7 - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store - local.get $11 i32.const 0 - local.get $8 - call $~lib/string/String#substring - local.set $11 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $11 - return + i32.const 544 + i32.const 367 + i32.const 3 + call $~lib/builtins/abort + unreachable end - local.get $7 - local.set $11 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $11 ) - (func $~lib/typedarray/Uint8Array#join (param $0 i32) (param $1 i32) (result i32) + (func $std/typedarray/testReduceRight<~lib/typedarray/Float32Array,f32> + (local $0 i32) + (local $1 f32) (local $2 i32) global.get $~lib/memory/__stack_pointer i32.const 8 @@ -49250,31 +35273,55 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 3 + call $~lib/typedarray/Float32Array#constructor + local.tee $0 + i32.store local.get $0 - i32.load offset=4 + i32.const 0 + f32.const 1 + call $~lib/typedarray/Float32Array#__set + local.get $0 + i32.const 1 + f32.const 2 + call $~lib/typedarray/Float32Array#__set local.get $0 + i32.const 2 + f32.const 3 + call $~lib/typedarray/Float32Array#__set + local.get $0 + i32.const 2512 local.set $2 global.get $~lib/memory/__stack_pointer local.get $2 i32.store offset=4 local.get $2 - call $~lib/typedarray/Uint8Array#get:length + f32.const 0 + call $~lib/typedarray/Float32Array#reduceRight + local.set $1 local.get $1 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $2 - call $~lib/util/string/joinIntegerArray - local.set $2 + f32.const 6 + f32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 367 + 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 $2 ) - (func $~lib/typedarray/Uint8Array#toString (param $0 i32) (result i32) - (local $1 i32) + (func $std/typedarray/testReduceRight<~lib/typedarray/Float64Array,f64> + (local $0 i32) + (local $1 f64) + (local $2 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -49283,31 +35330,57 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - local.get $0 - local.set $1 global.get $~lib/memory/__stack_pointer - local.get $1 + i32.const 0 + i32.const 3 + call $~lib/typedarray/Float64Array#constructor + local.tee $0 i32.store - local.get $1 - i32.const 7856 - local.set $1 + local.get $0 + i32.const 0 + f64.const 1 + call $~lib/typedarray/Float64Array#__set + local.get $0 + i32.const 1 + f64.const 2 + call $~lib/typedarray/Float64Array#__set + local.get $0 + i32.const 2 + f64.const 3 + call $~lib/typedarray/Float64Array#__set + local.get $0 + i32.const 2544 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=4 - local.get $1 - call $~lib/typedarray/Uint8Array#join + local.get $2 + f64.const 0 + call $~lib/typedarray/Float64Array#reduceRight local.set $1 + local.get $1 + f64.const 6 + f64.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 367 + 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 $1 ) - (func $std/typedarray/testArrayJoinAndToString<~lib/typedarray/Uint8Array,u8> + (func $std/typedarray/testArrayMap<~lib/typedarray/Int8Array,i8> (local $0 i32) (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 call $~stack_check @@ -49315,199 +35388,181 @@ 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 0 - i32.store offset=16 + i32.store offset=8 global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 5 - call $~lib/typedarray/Uint8Array#constructor + i32.const 3 + call $~lib/typedarray/Int8Array#constructor local.tee $0 i32.store local.get $0 - 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/typedarray/Uint8Array#__set + call $~lib/typedarray/Int8Array#__set local.get $0 - local.set $1 - 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 + call $~lib/typedarray/Int8Array#__set local.get $0 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 i32.const 2 i32.const 3 - call $~lib/typedarray/Uint8Array#__set - local.get $0 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 3 - i32.const 4 - call $~lib/typedarray/Uint8Array#__set - local.get $0 - local.set $1 + call $~lib/typedarray/Int8Array#__set global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 4 - i32.const 5 - call $~lib/typedarray/Uint8Array#__set - i32.const 0 - drop local.get $0 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=12 - local.get $1 - i32.const 7856 - 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 + i32.const 2576 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=4 - local.get $1 - i32.const 7888 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 + call $~lib/typedarray/Int8Array#map + local.tee $1 i32.store offset=8 local.get $1 - call $~lib/string/String.__eq + i32.const 0 + call $~lib/typedarray/Int8Array#__get + i32.const 1 + i32.eq i32.eqz if i32.const 0 i32.const 544 - i32.const 652 - i32.const 5 + i32.const 388 + i32.const 3 call $~lib/builtins/abort unreachable end - local.get $0 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=12 - local.get $1 - call $~lib/typedarray/Uint8Array#toString - local.set $1 - global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=4 - local.get $1 - i32.const 7888 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 + i32.const 1 + call $~lib/typedarray/Int8Array#__get + i32.const 4 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 389 + i32.const 3 + call $~lib/builtins/abort + unreachable + end local.get $1 - call $~lib/string/String.__eq + i32.const 2 + call $~lib/typedarray/Int8Array#__get + i32.const 9 + i32.eq i32.eqz if i32.const 0 i32.const 544 - i32.const 653 - i32.const 5 + i32.const 390 + i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 20 + i32.const 12 i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/typedarray/Uint8ClampedArray#join (param $0 i32) (param $1 i32) (result i32) + (func $std/typedarray/testArrayMap<~lib/typedarray/Uint8Array,u8> + (local $0 i32) + (local $1 i32) (local $2 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 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 3 + call $~lib/typedarray/Uint8Array#constructor + local.tee $0 + i32.store local.get $0 - i32.load offset=4 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Uint8Array#__set local.get $0 - local.set $2 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Uint8Array#__set + local.get $0 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Uint8Array#__set global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - call $~lib/typedarray/Uint8ClampedArray#get:length - local.get $1 + local.get $0 + i32.const 2608 local.set $2 global.get $~lib/memory/__stack_pointer local.get $2 - i32.store - local.get $2 - call $~lib/util/string/joinIntegerArray - local.set $2 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer + i32.store offset=4 local.get $2 - ) - (func $~lib/typedarray/Uint8ClampedArray#toString (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 - call $~stack_check - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - local.get $0 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store + call $~lib/typedarray/Uint8Array#map + local.tee $1 + i32.store offset=8 local.get $1 - i32.const 7856 - local.set $1 - global.get $~lib/memory/__stack_pointer + i32.const 0 + call $~lib/typedarray/Uint8Array#__get + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 388 + i32.const 3 + call $~lib/builtins/abort + unreachable + end local.get $1 - i32.store offset=4 + i32.const 1 + call $~lib/typedarray/Uint8Array#__get + i32.const 4 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 389 + i32.const 3 + call $~lib/builtins/abort + unreachable + end local.get $1 - call $~lib/typedarray/Uint8ClampedArray#join - local.set $1 + i32.const 2 + call $~lib/typedarray/Uint8Array#__get + i32.const 9 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 390 + i32.const 3 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 ) - (func $std/typedarray/testArrayJoinAndToString<~lib/typedarray/Uint8ClampedArray,u8> + (func $std/typedarray/testArrayMap<~lib/typedarray/Uint8ClampedArray,u8> (local $0 i32) (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 call $~stack_check @@ -49515,379 +35570,181 @@ 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 0 - i32.store offset=16 + i32.store offset=8 global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 5 + i32.const 3 call $~lib/typedarray/Uint8ClampedArray#constructor local.tee $0 i32.store local.get $0 - 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/typedarray/Uint8ClampedArray#__set local.get $0 - local.set $1 - 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 local.get $0 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 i32.const 2 i32.const 3 call $~lib/typedarray/Uint8ClampedArray#__set - local.get $0 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 3 - i32.const 4 - call $~lib/typedarray/Uint8ClampedArray#__set - local.get $0 - local.set $1 global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 4 - i32.const 5 - call $~lib/typedarray/Uint8ClampedArray#__set - i32.const 0 - drop local.get $0 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=12 - local.get $1 - i32.const 7856 - 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 + i32.const 2640 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=4 - local.get $1 - i32.const 7888 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 + call $~lib/typedarray/Uint8ClampedArray#map + local.tee $1 i32.store offset=8 local.get $1 - call $~lib/string/String.__eq + i32.const 0 + call $~lib/typedarray/Uint8ClampedArray#__get + i32.const 1 + i32.eq i32.eqz if i32.const 0 i32.const 544 - i32.const 652 - i32.const 5 + i32.const 388 + i32.const 3 call $~lib/builtins/abort unreachable end - local.get $0 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=12 - local.get $1 - call $~lib/typedarray/Uint8ClampedArray#toString - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 local.get $1 - i32.const 7888 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 + i32.const 1 + call $~lib/typedarray/Uint8ClampedArray#__get + i32.const 4 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 389 + i32.const 3 + call $~lib/builtins/abort + unreachable + end local.get $1 - call $~lib/string/String.__eq + i32.const 2 + call $~lib/typedarray/Uint8ClampedArray#__get + i32.const 9 + i32.eq i32.eqz if i32.const 0 i32.const 544 - i32.const 653 - i32.const 5 + i32.const 390 + i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 20 + i32.const 12 i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/util/string/joinIntegerArray (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) - (local $11 i32) + (func $std/typedarray/testArrayMap<~lib/typedarray/Int16Array,i16> + (local $0 i32) + (local $1 i32) + (local $2 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 - local.get $1 - i32.const 1 - i32.sub - local.set $3 - local.get $3 - i32.const 0 - i32.lt_s - if - i32.const 6048 - 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 $3 - i32.eqz - if - local.get $0 - i32.load16_s - local.set $4 - i32.const 1 - drop - i32.const 2 - i32.const 4 - i32.le_u - drop - local.get $4 - i32.const 10 - call $~lib/util/number/itoa32 - 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 $2 - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store - local.get $11 - call $~lib/string/String#get:length - local.set $5 - i32.const 11 - local.get $5 - i32.add - local.get $3 - i32.mul - i32.const 11 - i32.add - local.set $6 global.get $~lib/memory/__stack_pointer - local.get $6 - i32.const 1 - i32.shl - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $7 - i32.store offset=4 i32.const 0 - local.set $8 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer i32.const 0 - local.set $4 - loop $for-loop|0 - local.get $4 - local.get $3 - i32.lt_s - local.set $10 - local.get $10 - if - local.get $0 - local.get $4 - i32.const 1 - i32.shl - i32.add - i32.load16_s - local.set $9 - local.get $8 - local.get $7 - local.get $8 - i32.const 1 - i32.shl - i32.add - local.get $9 - call $~lib/util/number/itoa_buffered - i32.add - local.set $8 - local.get $5 - if - local.get $7 - local.get $8 - i32.const 1 - i32.shl - i32.add - local.get $2 - local.get $5 - i32.const 1 - i32.shl - call $~lib/memory/memory.copy - local.get $8 - local.get $5 - i32.add - local.set $8 - end - local.get $4 - i32.const 1 - i32.add - local.set $4 - br $for-loop|0 - end - end + i32.const 3 + call $~lib/typedarray/Int16Array#constructor + local.tee $0 + i32.store local.get $0 - local.get $3 + i32.const 0 i32.const 1 - i32.shl - i32.add - i32.load16_s - local.set $9 - local.get $8 - local.get $7 - local.get $8 + call $~lib/typedarray/Int16Array#__set + local.get $0 i32.const 1 - i32.shl - i32.add - local.get $9 - call $~lib/util/number/itoa_buffered - i32.add - local.set $8 - local.get $6 - local.get $8 - i32.gt_s - if - local.get $7 - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store - local.get $11 - i32.const 0 - local.get $8 - call $~lib/string/String#substring - 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 $7 - local.set $11 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $11 - ) - (func $~lib/typedarray/Int16Array#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 - call $~stack_check - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store + i32.const 2 + call $~lib/typedarray/Int16Array#__set local.get $0 - i32.load offset=4 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Int16Array#__set + global.get $~lib/memory/__stack_pointer local.get $0 + i32.const 2672 local.set $2 global.get $~lib/memory/__stack_pointer local.get $2 i32.store offset=4 local.get $2 - call $~lib/typedarray/Int16Array#get:length - local.get $1 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $2 - call $~lib/util/string/joinIntegerArray - local.set $2 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $2 - ) - (func $~lib/typedarray/Int16Array#toString (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 - call $~stack_check - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - local.get $0 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store + call $~lib/typedarray/Int16Array#map + local.tee $1 + i32.store offset=8 local.get $1 - i32.const 7856 - local.set $1 - global.get $~lib/memory/__stack_pointer + i32.const 0 + call $~lib/typedarray/Int16Array#__get + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 388 + i32.const 3 + call $~lib/builtins/abort + unreachable + end local.get $1 - i32.store offset=4 + i32.const 1 + call $~lib/typedarray/Int16Array#__get + i32.const 4 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 389 + i32.const 3 + call $~lib/builtins/abort + unreachable + end local.get $1 - call $~lib/typedarray/Int16Array#join - local.set $1 + i32.const 2 + call $~lib/typedarray/Int16Array#__get + i32.const 9 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 390 + i32.const 3 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 ) - (func $std/typedarray/testArrayJoinAndToString<~lib/typedarray/Int16Array,i16> + (func $std/typedarray/testArrayMap<~lib/typedarray/Uint16Array,u16> (local $0 i32) (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 call $~stack_check @@ -49895,379 +35752,454 @@ 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 0 - i32.store offset=16 + i32.store offset=8 global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 5 - call $~lib/typedarray/Int16Array#constructor + i32.const 3 + call $~lib/typedarray/Uint16Array#constructor local.tee $0 i32.store local.get $0 - 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/typedarray/Int16Array#__set + call $~lib/typedarray/Uint16Array#__set local.get $0 - local.set $1 - 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 + call $~lib/typedarray/Uint16Array#__set local.get $0 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 i32.const 2 i32.const 3 - call $~lib/typedarray/Int16Array#__set - local.get $0 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 3 - i32.const 4 - call $~lib/typedarray/Int16Array#__set - local.get $0 - local.set $1 + call $~lib/typedarray/Uint16Array#__set global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 4 - i32.const 5 - call $~lib/typedarray/Int16Array#__set - i32.const 0 - drop local.get $0 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=12 - local.get $1 - i32.const 7856 - 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 + i32.const 2704 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=4 - local.get $1 - i32.const 7888 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 + call $~lib/typedarray/Uint16Array#map + local.tee $1 i32.store offset=8 local.get $1 - call $~lib/string/String.__eq + i32.const 0 + call $~lib/typedarray/Uint16Array#__get + i32.const 1 + i32.eq i32.eqz if i32.const 0 i32.const 544 - i32.const 652 - i32.const 5 + i32.const 388 + i32.const 3 call $~lib/builtins/abort unreachable end - local.get $0 - local.set $1 - global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=12 - local.get $1 - call $~lib/typedarray/Int16Array#toString - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 7888 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 + i32.const 1 + call $~lib/typedarray/Uint16Array#__get + i32.const 4 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 389 + i32.const 3 + call $~lib/builtins/abort + unreachable + end local.get $1 - call $~lib/string/String.__eq + i32.const 2 + call $~lib/typedarray/Uint16Array#__get + i32.const 9 + i32.eq i32.eqz if i32.const 0 i32.const 544 - i32.const 653 - i32.const 5 + i32.const 390 + i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 20 + i32.const 12 i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/util/string/joinIntegerArray (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) - (local $11 i32) + (func $std/typedarray/testArrayMap<~lib/typedarray/Int32Array,i32> + (local $0 i32) + (local $1 i32) + (local $2 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 - local.get $1 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 3 + call $~lib/typedarray/Int32Array#constructor + local.tee $0 + i32.store + local.get $0 + i32.const 0 i32.const 1 - i32.sub - local.set $3 - local.get $3 + call $~lib/typedarray/Int32Array#__set + local.get $0 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Int32Array#__set + local.get $0 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Int32Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.const 2736 + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + call $~lib/typedarray/Int32Array#map + local.tee $1 + i32.store offset=8 + local.get $1 i32.const 0 - i32.lt_s + call $~lib/typedarray/Int32Array#__get + i32.const 1 + i32.eq + i32.eqz if - i32.const 6048 - local.set $11 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $11 - return + i32.const 0 + i32.const 544 + i32.const 388 + i32.const 3 + call $~lib/builtins/abort + unreachable end - local.get $3 + local.get $1 + i32.const 1 + call $~lib/typedarray/Int32Array#__get + i32.const 4 + i32.eq i32.eqz if - local.get $0 - i32.load16_u - local.set $4 i32.const 0 - drop - i32.const 2 - i32.const 4 - i32.le_u - drop - local.get $4 - i32.const 10 - call $~lib/util/number/utoa32 - local.set $11 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $11 - return + i32.const 544 + i32.const 389 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 2 + call $~lib/typedarray/Int32Array#__get + i32.const 9 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 390 + i32.const 3 + call $~lib/builtins/abort + unreachable end - local.get $2 - local.set $11 global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store - local.get $11 - call $~lib/string/String#get:length - local.set $5 - i32.const 10 - local.get $5 - i32.add - local.get $3 - i32.mul - i32.const 10 + i32.const 12 i32.add - local.set $6 + global.set $~lib/memory/__stack_pointer + ) + (func $std/typedarray/testArrayMap<~lib/typedarray/Uint32Array,u32> + (local $0 i32) + (local $1 i32) + (local $2 i32) global.get $~lib/memory/__stack_pointer - local.get $6 + 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 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 3 + call $~lib/typedarray/Uint32Array#constructor + local.tee $0 + i32.store + local.get $0 + i32.const 0 i32.const 1 - i32.shl + call $~lib/typedarray/Uint32Array#__set + local.get $0 i32.const 1 - call $~lib/rt/itcms/__new - local.tee $7 + i32.const 2 + call $~lib/typedarray/Uint32Array#__set + local.get $0 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Uint32Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.const 2768 + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 i32.store offset=4 + local.get $2 + call $~lib/typedarray/Uint32Array#map + local.tee $1 + i32.store offset=8 + local.get $1 i32.const 0 - local.set $8 - i32.const 0 - local.set $4 - loop $for-loop|0 - local.get $4 - local.get $3 - i32.lt_s - local.set $10 - local.get $10 - if - local.get $0 - local.get $4 - i32.const 1 - i32.shl - i32.add - i32.load16_u - local.set $9 - local.get $8 - local.get $7 - local.get $8 - i32.const 1 - i32.shl - i32.add - local.get $9 - call $~lib/util/number/itoa_buffered - i32.add - local.set $8 - local.get $5 - if - local.get $7 - local.get $8 - i32.const 1 - i32.shl - i32.add - local.get $2 - local.get $5 - i32.const 1 - i32.shl - call $~lib/memory/memory.copy - local.get $8 - local.get $5 - i32.add - local.set $8 - end - local.get $4 - i32.const 1 - i32.add - local.set $4 - br $for-loop|0 - end - end - local.get $0 - local.get $3 + call $~lib/typedarray/Uint32Array#__get i32.const 1 - i32.shl - i32.add - i32.load16_u - local.set $9 - local.get $8 - local.get $7 - local.get $8 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 388 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 i32.const 1 - i32.shl - i32.add - local.get $9 - call $~lib/util/number/itoa_buffered - i32.add - local.set $8 - local.get $6 - local.get $8 - i32.gt_s + call $~lib/typedarray/Uint32Array#__get + i32.const 4 + i32.eq + i32.eqz if - local.get $7 - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store - local.get $11 i32.const 0 - local.get $8 - call $~lib/string/String#substring - local.set $11 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $11 - return + i32.const 544 + i32.const 389 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 2 + call $~lib/typedarray/Uint32Array#__get + i32.const 9 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 390 + i32.const 3 + call $~lib/builtins/abort + unreachable end - local.get $7 - local.set $11 global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $11 ) - (func $~lib/typedarray/Uint16Array#join (param $0 i32) (param $1 i32) (result i32) + (func $std/typedarray/testArrayMap<~lib/typedarray/Int64Array,i64> + (local $0 i32) + (local $1 i32) (local $2 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 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 3 + call $~lib/typedarray/Int64Array#constructor + local.tee $0 + i32.store local.get $0 - i32.load offset=4 + i32.const 0 + i64.const 1 + call $~lib/typedarray/Int64Array#__set + local.get $0 + i32.const 1 + i64.const 2 + call $~lib/typedarray/Int64Array#__set local.get $0 + i32.const 2 + i64.const 3 + call $~lib/typedarray/Int64Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.const 2800 local.set $2 global.get $~lib/memory/__stack_pointer local.get $2 i32.store offset=4 local.get $2 - call $~lib/typedarray/Uint16Array#get:length + call $~lib/typedarray/Int64Array#map + local.tee $1 + i32.store offset=8 local.get $1 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $2 - call $~lib/util/string/joinIntegerArray - local.set $2 + i32.const 0 + call $~lib/typedarray/Int64Array#__get + i64.const 1 + i64.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 388 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 1 + call $~lib/typedarray/Int64Array#__get + i64.const 4 + i64.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 389 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 2 + call $~lib/typedarray/Int64Array#__get + i64.const 9 + i64.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 390 + i32.const 3 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 ) - (func $~lib/typedarray/Uint16Array#toString (param $0 i32) (result i32) + (func $std/typedarray/testArrayMap<~lib/typedarray/Uint64Array,u64> + (local $0 i32) (local $1 i32) + (local $2 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 - local.get $0 - local.set $1 global.get $~lib/memory/__stack_pointer - local.get $1 + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 3 + call $~lib/typedarray/Uint64Array#constructor + local.tee $0 i32.store - local.get $1 - i32.const 7856 - local.set $1 + local.get $0 + i32.const 0 + i64.const 1 + call $~lib/typedarray/Uint64Array#__set + local.get $0 + i32.const 1 + i64.const 2 + call $~lib/typedarray/Uint64Array#__set + local.get $0 + i32.const 2 + i64.const 3 + call $~lib/typedarray/Uint64Array#__set global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 + i32.const 2832 + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 i32.store offset=4 + local.get $2 + call $~lib/typedarray/Uint64Array#map + local.tee $1 + i32.store offset=8 local.get $1 - call $~lib/typedarray/Uint16Array#join - local.set $1 + i32.const 0 + call $~lib/typedarray/Uint64Array#__get + i64.const 1 + i64.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 388 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 1 + call $~lib/typedarray/Uint64Array#__get + i64.const 4 + i64.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 389 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 2 + call $~lib/typedarray/Uint64Array#__get + i64.const 9 + i64.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 390 + i32.const 3 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 ) - (func $std/typedarray/testArrayJoinAndToString<~lib/typedarray/Uint16Array,u16> + (func $std/typedarray/testArrayMap<~lib/typedarray/Float32Array,f32> (local $0 i32) (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 call $~stack_check @@ -50275,379 +36207,306 @@ 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 0 - i32.store offset=16 + i32.store offset=8 global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 5 - call $~lib/typedarray/Uint16Array#constructor + i32.const 3 + call $~lib/typedarray/Float32Array#constructor local.tee $0 i32.store local.get $0 - 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/typedarray/Uint16Array#__set + f32.const 1 + call $~lib/typedarray/Float32Array#__set local.get $0 - local.set $1 - 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 + f32.const 2 + call $~lib/typedarray/Float32Array#__set local.get $0 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 i32.const 2 - i32.const 3 - call $~lib/typedarray/Uint16Array#__set - local.get $0 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 3 - i32.const 4 - call $~lib/typedarray/Uint16Array#__set - local.get $0 - local.set $1 + f32.const 3 + call $~lib/typedarray/Float32Array#__set global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 4 - i32.const 5 - call $~lib/typedarray/Uint16Array#__set - i32.const 0 - drop local.get $0 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=12 - local.get $1 - i32.const 7856 - 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 + i32.const 2864 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=4 - local.get $1 - i32.const 7888 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 + call $~lib/typedarray/Float32Array#map + local.tee $1 i32.store offset=8 local.get $1 - call $~lib/string/String.__eq + i32.const 0 + call $~lib/typedarray/Float32Array#__get + f32.const 1 + f32.eq i32.eqz if i32.const 0 i32.const 544 - i32.const 652 - i32.const 5 + i32.const 388 + i32.const 3 call $~lib/builtins/abort unreachable end - local.get $0 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=12 - local.get $1 - call $~lib/typedarray/Uint16Array#toString - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 7888 - local.set $1 - global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=8 + i32.const 1 + call $~lib/typedarray/Float32Array#__get + f32.const 4 + f32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 389 + i32.const 3 + call $~lib/builtins/abort + unreachable + end local.get $1 - call $~lib/string/String.__eq + i32.const 2 + call $~lib/typedarray/Float32Array#__get + f32.const 9 + f32.eq i32.eqz if i32.const 0 i32.const 544 - i32.const 653 - i32.const 5 + i32.const 390 + i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 20 + i32.const 12 i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/util/string/joinIntegerArray (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) - (local $11 i32) + (func $std/typedarray/testArrayMap<~lib/typedarray/Float64Array,f64> + (local $0 i32) + (local $1 i32) + (local $2 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 - local.get $1 - i32.const 1 - i32.sub - local.set $3 - local.get $3 + global.get $~lib/memory/__stack_pointer i32.const 0 - i32.lt_s - if - i32.const 6048 - 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 $3 - i32.eqz - if - local.get $0 - i32.load - local.set $4 - i32.const 1 - drop - i32.const 4 - i32.const 4 - i32.le_u - drop - local.get $4 - i32.const 10 - call $~lib/util/number/itoa32 - 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 $2 - local.set $11 + i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $11 + i32.const 0 + i32.const 3 + call $~lib/typedarray/Float64Array#constructor + local.tee $0 i32.store - local.get $11 - call $~lib/string/String#get:length - local.set $5 - i32.const 11 - local.get $5 - i32.add - local.get $3 - i32.mul - i32.const 11 - i32.add - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.const 1 - i32.shl + local.get $0 + i32.const 0 + f64.const 1 + call $~lib/typedarray/Float64Array#__set + local.get $0 i32.const 1 - call $~lib/rt/itcms/__new - local.tee $7 + f64.const 2 + call $~lib/typedarray/Float64Array#__set + local.get $0 + i32.const 2 + f64.const 3 + call $~lib/typedarray/Float64Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.const 2896 + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 i32.store offset=4 + local.get $2 + call $~lib/typedarray/Float64Array#map + local.tee $1 + i32.store offset=8 + local.get $1 i32.const 0 - local.set $8 - i32.const 0 - local.set $4 - loop $for-loop|0 - local.get $4 - local.get $3 - i32.lt_s - local.set $10 - local.get $10 - if - local.get $0 - local.get $4 - i32.const 2 - i32.shl - i32.add - i32.load - local.set $9 - local.get $8 - local.get $7 - local.get $8 - i32.const 1 - i32.shl - i32.add - local.get $9 - call $~lib/util/number/itoa_buffered - i32.add - local.set $8 - local.get $5 - if - local.get $7 - local.get $8 - i32.const 1 - i32.shl - i32.add - local.get $2 - local.get $5 - i32.const 1 - i32.shl - call $~lib/memory/memory.copy - local.get $8 - local.get $5 - i32.add - local.set $8 - end - local.get $4 - i32.const 1 - i32.add - local.set $4 - br $for-loop|0 - end + call $~lib/typedarray/Float64Array#__get + f64.const 1 + f64.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 388 + i32.const 3 + call $~lib/builtins/abort + unreachable end - local.get $0 - local.get $3 - i32.const 2 - i32.shl - i32.add - i32.load - local.set $9 - local.get $8 - local.get $7 - local.get $8 + local.get $1 i32.const 1 - i32.shl - i32.add - local.get $9 - call $~lib/util/number/itoa_buffered - i32.add - local.set $8 - local.get $6 - local.get $8 - i32.gt_s + call $~lib/typedarray/Float64Array#__get + f64.const 4 + f64.eq + i32.eqz if - local.get $7 - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store - local.get $11 i32.const 0 - local.get $8 - call $~lib/string/String#substring - local.set $11 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $11 - return + i32.const 544 + i32.const 389 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 2 + call $~lib/typedarray/Float64Array#__get + f64.const 9 + f64.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 390 + i32.const 3 + call $~lib/builtins/abort + unreachable end - local.get $7 - local.set $11 global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $11 ) - (func $~lib/typedarray/Int32Array#join (param $0 i32) (param $1 i32) (result i32) + (func $std/typedarray/testArrayFilter<~lib/typedarray/Int8Array,i8> + (local $0 i32) + (local $1 i32) (local $2 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 - local.get $0 - i32.load offset=4 - local.get $0 - local.set $2 global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - call $~lib/typedarray/Int32Array#get:length - local.get $1 - local.set $2 + i32.const 0 + i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $2 + i32.const 0 + i32.const 6 + call $~lib/typedarray/Int8Array#constructor + local.tee $0 i32.store - local.get $2 - call $~lib/util/string/joinIntegerArray - local.set $2 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $2 - ) - (func $~lib/typedarray/Int32Array#toString (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 - call $~stack_check + local.get $0 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Int8Array#__set + local.get $0 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Int8Array#__set + local.get $0 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Int8Array#__set + local.get $0 + i32.const 3 + i32.const 4 + call $~lib/typedarray/Int8Array#__set + local.get $0 + i32.const 5 + i32.const 5 + call $~lib/typedarray/Int8Array#__set global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store local.get $0 - local.set $1 + i32.const 2928 + local.set $2 global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + call $~lib/typedarray/Int8Array#filter + local.tee $1 + i32.store offset=8 local.get $1 - i32.store + call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 413 + i32.const 3 + call $~lib/builtins/abort + unreachable + end local.get $1 - i32.const 7856 - local.set $1 - global.get $~lib/memory/__stack_pointer + call $~lib/typedarray/Int8Array#get:length + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 414 + i32.const 3 + call $~lib/builtins/abort + unreachable + end local.get $1 - i32.store offset=4 + i32.const 0 + call $~lib/typedarray/Int8Array#__get + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 415 + i32.const 3 + call $~lib/builtins/abort + unreachable + end local.get $1 - call $~lib/typedarray/Int32Array#join - local.set $1 + i32.const 1 + call $~lib/typedarray/Int8Array#__get + i32.const 4 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 416 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 2 + call $~lib/typedarray/Int8Array#__get + i32.const 5 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 417 + i32.const 3 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 ) - (func $std/typedarray/testArrayJoinAndToString<~lib/typedarray/Int32Array,i32> + (func $std/typedarray/testArrayFilter<~lib/typedarray/Uint8Array,u8> (local $0 i32) (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 call $~stack_check @@ -50655,379 +36514,374 @@ 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 0 - i32.store offset=16 + i32.store offset=8 global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 5 - call $~lib/typedarray/Int32Array#constructor + i32.const 6 + call $~lib/typedarray/Uint8Array#constructor local.tee $0 i32.store local.get $0 - 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/typedarray/Int32Array#__set + call $~lib/typedarray/Uint8Array#__set local.get $0 - local.set $1 - 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 + call $~lib/typedarray/Uint8Array#__set local.get $0 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 i32.const 2 i32.const 3 - call $~lib/typedarray/Int32Array#__set + call $~lib/typedarray/Uint8Array#__set local.get $0 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 i32.const 3 i32.const 4 - call $~lib/typedarray/Int32Array#__set + call $~lib/typedarray/Uint8Array#__set local.get $0 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 4 i32.const 5 - call $~lib/typedarray/Int32Array#__set - i32.const 0 - drop - local.get $0 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=12 - local.get $1 - i32.const 7856 - local.set $1 + i32.const 5 + call $~lib/typedarray/Uint8Array#__set global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=16 - local.get $1 - call $~lib/typedarray/Int32Array#join - local.set $1 + local.get $0 + i32.const 2960 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=4 - local.get $1 - i32.const 7888 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 + call $~lib/typedarray/Uint8Array#filter + local.tee $1 i32.store offset=8 local.get $1 - call $~lib/string/String.__eq + call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + i32.const 0 + i32.eq i32.eqz if i32.const 0 i32.const 544 - i32.const 652 - i32.const 5 + i32.const 413 + i32.const 3 call $~lib/builtins/abort unreachable end - local.get $0 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=12 - local.get $1 - call $~lib/typedarray/Int32Array#toString - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 7888 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 local.get $1 - call $~lib/string/String.__eq + call $~lib/typedarray/Uint8Array#get:length + i32.const 3 + i32.eq i32.eqz if i32.const 0 i32.const 544 - i32.const 653 - i32.const 5 + i32.const 414 + 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/util/string/joinIntegerArray (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) - (local $11 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 $1 - i32.const 1 - i32.sub - local.set $3 - local.get $3 i32.const 0 - i32.lt_s - if - i32.const 6048 - 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 $3 + call $~lib/typedarray/Uint8Array#__get + i32.const 3 + i32.eq i32.eqz if - local.get $0 - i32.load - local.set $4 i32.const 0 - drop - i32.const 4 - i32.const 4 - i32.le_u - drop - local.get $4 - i32.const 10 - call $~lib/util/number/utoa32 - local.set $11 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $11 - return + i32.const 544 + i32.const 415 + i32.const 3 + call $~lib/builtins/abort + unreachable end - local.get $2 - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store - local.get $11 - call $~lib/string/String#get:length - local.set $5 - i32.const 10 - local.get $5 - i32.add - local.get $3 - i32.mul - i32.const 10 - i32.add - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.const 1 - i32.shl + local.get $1 i32.const 1 - call $~lib/rt/itcms/__new - local.tee $7 - i32.store offset=4 - i32.const 0 - local.set $8 - i32.const 0 - local.set $4 - loop $for-loop|0 - local.get $4 - local.get $3 - i32.lt_s - local.set $10 - local.get $10 - if - local.get $0 - local.get $4 - i32.const 2 - i32.shl - i32.add - i32.load - local.set $9 - local.get $8 - local.get $7 - local.get $8 - i32.const 1 - i32.shl - i32.add - local.get $9 - call $~lib/util/number/itoa_buffered - i32.add - local.set $8 - local.get $5 - if - local.get $7 - local.get $8 - i32.const 1 - i32.shl - i32.add - local.get $2 - local.get $5 - i32.const 1 - i32.shl - call $~lib/memory/memory.copy - local.get $8 - local.get $5 - i32.add - local.set $8 - end - local.get $4 - i32.const 1 - i32.add - local.set $4 - br $for-loop|0 - end + call $~lib/typedarray/Uint8Array#__get + i32.const 4 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 416 + i32.const 3 + call $~lib/builtins/abort + unreachable end - local.get $0 - local.get $3 + local.get $1 i32.const 2 - i32.shl - i32.add - i32.load - local.set $9 - local.get $8 - local.get $7 - local.get $8 - i32.const 1 - i32.shl - i32.add - local.get $9 - call $~lib/util/number/itoa_buffered - i32.add - local.set $8 - local.get $6 - local.get $8 - i32.gt_s + call $~lib/typedarray/Uint8Array#__get + i32.const 5 + i32.eq + i32.eqz if - local.get $7 - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store - local.get $11 i32.const 0 - local.get $8 - call $~lib/string/String#substring - local.set $11 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $11 - return + i32.const 544 + i32.const 417 + i32.const 3 + call $~lib/builtins/abort + unreachable end - local.get $7 - local.set $11 global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $11 ) - (func $~lib/typedarray/Uint32Array#join (param $0 i32) (param $1 i32) (result i32) + (func $std/typedarray/testArrayFilter<~lib/typedarray/Uint8ClampedArray,u8> + (local $0 i32) + (local $1 i32) (local $2 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 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 6 + call $~lib/typedarray/Uint8ClampedArray#constructor + local.tee $0 + i32.store local.get $0 - i32.load offset=4 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Uint8ClampedArray#__set local.get $0 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Uint8ClampedArray#__set + local.get $0 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Uint8ClampedArray#__set + local.get $0 + i32.const 3 + i32.const 4 + call $~lib/typedarray/Uint8ClampedArray#__set + local.get $0 + i32.const 5 + i32.const 5 + call $~lib/typedarray/Uint8ClampedArray#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.const 2992 local.set $2 global.get $~lib/memory/__stack_pointer local.get $2 i32.store offset=4 local.get $2 - call $~lib/typedarray/Uint32Array#get:length + call $~lib/typedarray/Uint8ClampedArray#filter + local.tee $1 + i32.store offset=8 local.get $1 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $2 - call $~lib/util/string/joinIntegerArray - local.set $2 + call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 413 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + call $~lib/typedarray/Uint8ClampedArray#get:length + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 414 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 0 + call $~lib/typedarray/Uint8ClampedArray#__get + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 415 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 1 + call $~lib/typedarray/Uint8ClampedArray#__get + i32.const 4 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 416 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 2 + call $~lib/typedarray/Uint8ClampedArray#__get + i32.const 5 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 417 + i32.const 3 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 ) - (func $~lib/typedarray/Uint32Array#toString (param $0 i32) (result i32) + (func $std/typedarray/testArrayFilter<~lib/typedarray/Int16Array,i16> + (local $0 i32) (local $1 i32) + (local $2 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 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 6 + call $~lib/typedarray/Int16Array#constructor + local.tee $0 + i32.store local.get $0 - local.set $1 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Int16Array#__set + local.get $0 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Int16Array#__set + local.get $0 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Int16Array#__set + local.get $0 + i32.const 3 + i32.const 4 + call $~lib/typedarray/Int16Array#__set + local.get $0 + i32.const 5 + i32.const 5 + call $~lib/typedarray/Int16Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.const 3024 + local.set $2 global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + call $~lib/typedarray/Int16Array#filter + local.tee $1 + i32.store offset=8 local.get $1 - i32.store + call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 413 + i32.const 3 + call $~lib/builtins/abort + unreachable + end local.get $1 - i32.const 7856 - local.set $1 - global.get $~lib/memory/__stack_pointer + call $~lib/typedarray/Int16Array#get:length + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 414 + i32.const 3 + call $~lib/builtins/abort + unreachable + end local.get $1 - i32.store offset=4 + i32.const 0 + call $~lib/typedarray/Int16Array#__get + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 415 + i32.const 3 + call $~lib/builtins/abort + unreachable + end local.get $1 - call $~lib/typedarray/Uint32Array#join - local.set $1 + i32.const 1 + call $~lib/typedarray/Int16Array#__get + i32.const 4 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 416 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 2 + call $~lib/typedarray/Int16Array#__get + i32.const 5 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 417 + i32.const 3 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 ) - (func $std/typedarray/testArrayJoinAndToString<~lib/typedarray/Uint32Array,u32> + (func $std/typedarray/testArrayFilter<~lib/typedarray/Uint16Array,u16> (local $0 i32) (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 call $~stack_check @@ -51035,382 +36889,374 @@ 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 0 - i32.store offset=16 + i32.store offset=8 global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 5 - call $~lib/typedarray/Uint32Array#constructor + i32.const 6 + call $~lib/typedarray/Uint16Array#constructor local.tee $0 i32.store local.get $0 - 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/typedarray/Uint32Array#__set + call $~lib/typedarray/Uint16Array#__set local.get $0 - local.set $1 - 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 + call $~lib/typedarray/Uint16Array#__set local.get $0 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 i32.const 2 i32.const 3 - call $~lib/typedarray/Uint32Array#__set + call $~lib/typedarray/Uint16Array#__set local.get $0 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 i32.const 3 i32.const 4 - call $~lib/typedarray/Uint32Array#__set + call $~lib/typedarray/Uint16Array#__set local.get $0 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 4 i32.const 5 - call $~lib/typedarray/Uint32Array#__set - i32.const 0 - drop - local.get $0 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=12 - local.get $1 - i32.const 7856 - local.set $1 + i32.const 5 + call $~lib/typedarray/Uint16Array#__set global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=16 - local.get $1 - call $~lib/typedarray/Uint32Array#join - local.set $1 + local.get $0 + i32.const 3056 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=4 - local.get $1 - i32.const 7888 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 + call $~lib/typedarray/Uint16Array#filter + local.tee $1 i32.store offset=8 local.get $1 - call $~lib/string/String.__eq + call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + i32.const 0 + i32.eq i32.eqz if i32.const 0 i32.const 544 - i32.const 652 - i32.const 5 + i32.const 413 + i32.const 3 call $~lib/builtins/abort unreachable end - local.get $0 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=12 - local.get $1 - call $~lib/typedarray/Uint32Array#toString - local.set $1 - global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=4 + call $~lib/typedarray/Uint16Array#get:length + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 414 + i32.const 3 + call $~lib/builtins/abort + unreachable + end local.get $1 - i32.const 7888 - local.set $1 - global.get $~lib/memory/__stack_pointer + i32.const 0 + call $~lib/typedarray/Uint16Array#__get + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 415 + i32.const 3 + call $~lib/builtins/abort + unreachable + end local.get $1 - i32.store offset=8 + i32.const 1 + call $~lib/typedarray/Uint16Array#__get + i32.const 4 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 416 + i32.const 3 + call $~lib/builtins/abort + unreachable + end local.get $1 - call $~lib/string/String.__eq + i32.const 2 + call $~lib/typedarray/Uint16Array#__get + i32.const 5 + i32.eq i32.eqz if i32.const 0 i32.const 544 - i32.const 653 - i32.const 5 + i32.const 417 + i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 20 + i32.const 12 i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/util/string/joinIntegerArray (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (local $3 i32) - (local $4 i64) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i64) - (local $10 i32) - (local $11 i32) - (local $12 i32) + (func $std/typedarray/testArrayFilter<~lib/typedarray/Int32Array,i32> + (local $0 i32) + (local $1 i32) + (local $2 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 - local.get $1 - i32.const 1 - i32.sub - local.set $3 - local.get $3 + global.get $~lib/memory/__stack_pointer i32.const 0 - i32.lt_s - if - i32.const 6048 - local.set $12 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $12 - return - end - local.get $3 - i32.eqz - if - local.get $0 - i64.load - local.set $4 - i32.const 1 - drop - i32.const 8 - i32.const 4 - i32.le_u - drop - local.get $4 - i32.wrap_i64 - i64.extend_i32_s - i32.const 10 - call $~lib/util/number/itoa64 - local.set $12 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $12 - return - end - local.get $2 - local.set $12 + i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $12 + i32.const 0 + i32.const 6 + call $~lib/typedarray/Int32Array#constructor + local.tee $0 i32.store - local.get $12 - call $~lib/string/String#get:length - local.set $5 - i32.const 21 - local.get $5 - i32.add - local.get $3 - i32.mul - i32.const 21 - i32.add - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $0 + i32.const 0 i32.const 1 - i32.shl + call $~lib/typedarray/Int32Array#__set + local.get $0 i32.const 1 - call $~lib/rt/itcms/__new - local.tee $7 + i32.const 2 + call $~lib/typedarray/Int32Array#__set + local.get $0 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Int32Array#__set + local.get $0 + i32.const 3 + i32.const 4 + call $~lib/typedarray/Int32Array#__set + local.get $0 + i32.const 5 + i32.const 5 + call $~lib/typedarray/Int32Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.const 3088 + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 i32.store offset=4 + local.get $2 + call $~lib/typedarray/Int32Array#filter + local.tee $1 + i32.store offset=8 + local.get $1 + call $~lib/arraybuffer/ArrayBufferView#get:byteOffset i32.const 0 - local.set $8 - i32.const 0 - local.set $10 - loop $for-loop|0 - local.get $10 - local.get $3 - i32.lt_s - local.set $11 - local.get $11 - if - local.get $0 - local.get $10 - i32.const 3 - i32.shl - i32.add - i64.load - local.set $9 - local.get $8 - local.get $7 - local.get $8 - i32.const 1 - i32.shl - i32.add - local.get $9 - call $~lib/util/number/itoa_buffered - i32.add - local.set $8 - local.get $5 - if - local.get $7 - local.get $8 - i32.const 1 - i32.shl - i32.add - local.get $2 - local.get $5 - i32.const 1 - i32.shl - call $~lib/memory/memory.copy - local.get $8 - local.get $5 - i32.add - local.set $8 - end - local.get $10 - i32.const 1 - i32.add - local.set $10 - br $for-loop|0 - end + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 413 + i32.const 3 + call $~lib/builtins/abort + unreachable end - local.get $0 - local.get $3 + local.get $1 + call $~lib/typedarray/Int32Array#get:length i32.const 3 - i32.shl - i32.add - i64.load - local.set $9 - local.get $8 - local.get $7 - local.get $8 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 414 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 0 + call $~lib/typedarray/Int32Array#__get + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 415 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 i32.const 1 - i32.shl - i32.add - local.get $9 - call $~lib/util/number/itoa_buffered - i32.add - local.set $8 - local.get $6 - local.get $8 - i32.gt_s + call $~lib/typedarray/Int32Array#__get + i32.const 4 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 416 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 2 + call $~lib/typedarray/Int32Array#__get + i32.const 5 + i32.eq + i32.eqz if - local.get $7 - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store - local.get $12 i32.const 0 - local.get $8 - call $~lib/string/String#substring - local.set $12 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $12 - return + i32.const 544 + i32.const 417 + i32.const 3 + call $~lib/builtins/abort + unreachable end - local.get $7 - local.set $12 global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $12 ) - (func $~lib/typedarray/Int64Array#join (param $0 i32) (param $1 i32) (result i32) + (func $std/typedarray/testArrayFilter<~lib/typedarray/Uint32Array,u32> + (local $0 i32) + (local $1 i32) (local $2 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 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 6 + call $~lib/typedarray/Uint32Array#constructor + local.tee $0 + i32.store local.get $0 - i32.load offset=4 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Uint32Array#__set + local.get $0 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Uint32Array#__set + local.get $0 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Uint32Array#__set + local.get $0 + i32.const 3 + i32.const 4 + call $~lib/typedarray/Uint32Array#__set + local.get $0 + i32.const 5 + i32.const 5 + call $~lib/typedarray/Uint32Array#__set + global.get $~lib/memory/__stack_pointer local.get $0 + i32.const 3120 local.set $2 global.get $~lib/memory/__stack_pointer local.get $2 i32.store offset=4 local.get $2 - call $~lib/typedarray/Int64Array#get:length + call $~lib/typedarray/Uint32Array#filter + local.tee $1 + i32.store offset=8 local.get $1 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $2 - call $~lib/util/string/joinIntegerArray - local.set $2 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $2 - ) - (func $~lib/typedarray/Int64Array#toString (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 - call $~stack_check - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - local.get $0 - local.set $1 - global.get $~lib/memory/__stack_pointer + call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 413 + i32.const 3 + call $~lib/builtins/abort + unreachable + end local.get $1 - i32.store + call $~lib/typedarray/Uint32Array#get:length + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 414 + i32.const 3 + call $~lib/builtins/abort + unreachable + end local.get $1 - i32.const 7856 - local.set $1 - global.get $~lib/memory/__stack_pointer + i32.const 0 + call $~lib/typedarray/Uint32Array#__get + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 415 + i32.const 3 + call $~lib/builtins/abort + unreachable + end local.get $1 - i32.store offset=4 + i32.const 1 + call $~lib/typedarray/Uint32Array#__get + i32.const 4 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 416 + i32.const 3 + call $~lib/builtins/abort + unreachable + end local.get $1 - call $~lib/typedarray/Int64Array#join - local.set $1 + i32.const 2 + call $~lib/typedarray/Uint32Array#__get + i32.const 5 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 417 + i32.const 3 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 ) - (func $std/typedarray/testArrayJoinAndToString<~lib/typedarray/Int64Array,i64> + (func $std/typedarray/testArrayFilter<~lib/typedarray/Int64Array,i64> (local $0 i32) (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 call $~stack_check @@ -51418,380 +37264,374 @@ 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 0 - i32.store offset=16 + i32.store offset=8 global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 5 + i32.const 6 call $~lib/typedarray/Int64Array#constructor local.tee $0 i32.store local.get $0 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 i32.const 0 i64.const 1 call $~lib/typedarray/Int64Array#__set local.get $0 - local.set $1 - 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 local.get $0 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 i32.const 2 i64.const 3 call $~lib/typedarray/Int64Array#__set local.get $0 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 i32.const 3 i64.const 4 call $~lib/typedarray/Int64Array#__set local.get $0 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 4 + i32.const 5 i64.const 5 call $~lib/typedarray/Int64Array#__set - i32.const 0 - drop - local.get $0 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=12 - local.get $1 - i32.const 7856 - 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 + local.get $0 + i32.const 3152 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=4 - local.get $1 - i32.const 7888 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 + call $~lib/typedarray/Int64Array#filter + local.tee $1 i32.store offset=8 local.get $1 - call $~lib/string/String.__eq + call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + i32.const 0 + i32.eq i32.eqz if i32.const 0 i32.const 544 - i32.const 652 - i32.const 5 + i32.const 413 + i32.const 3 call $~lib/builtins/abort unreachable end - local.get $0 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=12 local.get $1 - call $~lib/typedarray/Int64Array#toString - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 + call $~lib/typedarray/Int64Array#get:length + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 414 + i32.const 3 + call $~lib/builtins/abort + unreachable + end local.get $1 - i32.const 7888 - local.set $1 - global.get $~lib/memory/__stack_pointer + i32.const 0 + call $~lib/typedarray/Int64Array#__get + i64.const 3 + i64.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 415 + i32.const 3 + call $~lib/builtins/abort + unreachable + end local.get $1 - i32.store offset=8 + i32.const 1 + call $~lib/typedarray/Int64Array#__get + i64.const 4 + i64.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 416 + i32.const 3 + call $~lib/builtins/abort + unreachable + end local.get $1 - call $~lib/string/String.__eq + i32.const 2 + call $~lib/typedarray/Int64Array#__get + i64.const 5 + i64.eq i32.eqz if i32.const 0 i32.const 544 - i32.const 653 - i32.const 5 + i32.const 417 + i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 20 + i32.const 12 i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/util/string/joinIntegerArray (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (local $3 i32) - (local $4 i64) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i64) - (local $10 i32) - (local $11 i32) - (local $12 i32) + (func $std/typedarray/testArrayFilter<~lib/typedarray/Uint64Array,u64> + (local $0 i32) + (local $1 i32) + (local $2 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 - local.get $1 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 6 + call $~lib/typedarray/Uint64Array#constructor + local.tee $0 + i32.store + local.get $0 + i32.const 0 + i64.const 1 + call $~lib/typedarray/Uint64Array#__set + local.get $0 i32.const 1 - i32.sub - local.set $3 - local.get $3 + i64.const 2 + call $~lib/typedarray/Uint64Array#__set + local.get $0 + i32.const 2 + i64.const 3 + call $~lib/typedarray/Uint64Array#__set + local.get $0 + i32.const 3 + i64.const 4 + call $~lib/typedarray/Uint64Array#__set + local.get $0 + i32.const 5 + i64.const 5 + call $~lib/typedarray/Uint64Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.const 3184 + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + call $~lib/typedarray/Uint64Array#filter + local.tee $1 + i32.store offset=8 + local.get $1 + call $~lib/arraybuffer/ArrayBufferView#get:byteOffset i32.const 0 - i32.lt_s + i32.eq + i32.eqz if - i32.const 6048 - local.set $12 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $12 - return + i32.const 0 + i32.const 544 + i32.const 413 + i32.const 3 + call $~lib/builtins/abort + unreachable end - local.get $3 + local.get $1 + call $~lib/typedarray/Uint64Array#get:length + i32.const 3 + i32.eq i32.eqz if - local.get $0 - i64.load - local.set $4 i32.const 0 - drop - i32.const 8 - i32.const 4 - i32.le_u - drop - local.get $4 - i32.const 10 - call $~lib/util/number/utoa64 - local.set $12 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $12 - return + i32.const 544 + i32.const 414 + i32.const 3 + call $~lib/builtins/abort + unreachable end - local.get $2 - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store - local.get $12 - call $~lib/string/String#get:length - local.set $5 - i32.const 20 - local.get $5 - i32.add - local.get $3 - i32.mul - i32.const 20 - i32.add - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.const 1 - i32.shl - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $7 - i32.store offset=4 - i32.const 0 - local.set $8 + local.get $1 i32.const 0 - local.set $10 - loop $for-loop|0 - local.get $10 - local.get $3 - i32.lt_s - local.set $11 - local.get $11 - if - local.get $0 - local.get $10 - i32.const 3 - i32.shl - i32.add - i64.load - local.set $9 - local.get $8 - local.get $7 - local.get $8 - i32.const 1 - i32.shl - i32.add - local.get $9 - call $~lib/util/number/itoa_buffered - i32.add - local.set $8 - local.get $5 - if - local.get $7 - local.get $8 - i32.const 1 - i32.shl - i32.add - local.get $2 - local.get $5 - i32.const 1 - i32.shl - call $~lib/memory/memory.copy - local.get $8 - local.get $5 - i32.add - local.set $8 - end - local.get $10 - i32.const 1 - i32.add - local.set $10 - br $for-loop|0 - end - end - local.get $0 - local.get $3 - i32.const 3 - i32.shl - i32.add - i64.load - local.set $9 - local.get $8 - local.get $7 - local.get $8 - i32.const 1 - i32.shl - i32.add - local.get $9 - call $~lib/util/number/itoa_buffered - i32.add - local.set $8 - local.get $6 - local.get $8 - i32.gt_s + call $~lib/typedarray/Uint64Array#__get + i64.const 3 + i64.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 415 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 1 + call $~lib/typedarray/Uint64Array#__get + i64.const 4 + i64.eq + i32.eqz if - local.get $7 - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store - local.get $12 i32.const 0 - local.get $8 - call $~lib/string/String#substring - local.set $12 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $12 - return + i32.const 544 + i32.const 416 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 2 + call $~lib/typedarray/Uint64Array#__get + i64.const 5 + i64.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 417 + i32.const 3 + call $~lib/builtins/abort + unreachable end - local.get $7 - local.set $12 global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $12 ) - (func $~lib/typedarray/Uint64Array#join (param $0 i32) (param $1 i32) (result i32) + (func $std/typedarray/testArrayFilter<~lib/typedarray/Float32Array,f32> + (local $0 i32) + (local $1 i32) (local $2 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 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 6 + call $~lib/typedarray/Float32Array#constructor + local.tee $0 + i32.store local.get $0 - i32.load offset=4 + i32.const 0 + f32.const 1 + call $~lib/typedarray/Float32Array#__set + local.get $0 + i32.const 1 + f32.const 2 + call $~lib/typedarray/Float32Array#__set + local.get $0 + i32.const 2 + f32.const 3 + call $~lib/typedarray/Float32Array#__set + local.get $0 + i32.const 3 + f32.const 4 + call $~lib/typedarray/Float32Array#__set + local.get $0 + i32.const 5 + f32.const 5 + call $~lib/typedarray/Float32Array#__set + global.get $~lib/memory/__stack_pointer local.get $0 + i32.const 3216 local.set $2 global.get $~lib/memory/__stack_pointer local.get $2 i32.store offset=4 local.get $2 - call $~lib/typedarray/Uint64Array#get:length + call $~lib/typedarray/Float32Array#filter + local.tee $1 + i32.store offset=8 local.get $1 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $2 - call $~lib/util/string/joinIntegerArray - local.set $2 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $2 - ) - (func $~lib/typedarray/Uint64Array#toString (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 - call $~stack_check - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - local.get $0 - local.set $1 - global.get $~lib/memory/__stack_pointer + call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 413 + i32.const 3 + call $~lib/builtins/abort + unreachable + end local.get $1 - i32.store + call $~lib/typedarray/Float32Array#get:length + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 414 + i32.const 3 + call $~lib/builtins/abort + unreachable + end local.get $1 - i32.const 7856 - local.set $1 - global.get $~lib/memory/__stack_pointer + i32.const 0 + call $~lib/typedarray/Float32Array#__get + f32.const 3 + f32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 415 + i32.const 3 + call $~lib/builtins/abort + unreachable + end local.get $1 - i32.store offset=4 + i32.const 1 + call $~lib/typedarray/Float32Array#__get + f32.const 4 + f32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 416 + i32.const 3 + call $~lib/builtins/abort + unreachable + end local.get $1 - call $~lib/typedarray/Uint64Array#join - local.set $1 + i32.const 2 + call $~lib/typedarray/Float32Array#__get + f32.const 5 + f32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 417 + i32.const 3 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 ) - (func $std/typedarray/testArrayJoinAndToString<~lib/typedarray/Uint64Array,u64> + (func $std/typedarray/testArrayFilter<~lib/typedarray/Float64Array,f64> (local $0 i32) (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 call $~stack_check @@ -51799,141 +37639,123 @@ 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 0 - i32.store offset=16 + i32.store offset=8 global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 5 - call $~lib/typedarray/Uint64Array#constructor + i32.const 6 + call $~lib/typedarray/Float64Array#constructor local.tee $0 i32.store local.get $0 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 i32.const 0 - i64.const 1 - call $~lib/typedarray/Uint64Array#__set + f64.const 1 + call $~lib/typedarray/Float64Array#__set local.get $0 - local.set $1 - 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 + f64.const 2 + call $~lib/typedarray/Float64Array#__set local.get $0 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 i32.const 2 - i64.const 3 - call $~lib/typedarray/Uint64Array#__set + f64.const 3 + call $~lib/typedarray/Float64Array#__set local.get $0 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 i32.const 3 - i64.const 4 - call $~lib/typedarray/Uint64Array#__set + f64.const 4 + call $~lib/typedarray/Float64Array#__set local.get $0 - local.set $1 + i32.const 5 + f64.const 5 + call $~lib/typedarray/Float64Array#__set global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 4 - i64.const 5 - call $~lib/typedarray/Uint64Array#__set - i32.const 0 - drop local.get $0 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=12 - local.get $1 - i32.const 7856 - 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 + i32.const 3248 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=4 - local.get $1 - i32.const 7888 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 + call $~lib/typedarray/Float64Array#filter + local.tee $1 i32.store offset=8 local.get $1 - call $~lib/string/String.__eq + call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + i32.const 0 + i32.eq i32.eqz if i32.const 0 i32.const 544 - i32.const 652 - i32.const 5 + i32.const 413 + i32.const 3 call $~lib/builtins/abort unreachable end - local.get $0 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=12 - local.get $1 - call $~lib/typedarray/Uint64Array#toString - local.set $1 - global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=4 + call $~lib/typedarray/Float64Array#get:length + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 414 + i32.const 3 + call $~lib/builtins/abort + unreachable + end local.get $1 - i32.const 7888 - local.set $1 - global.get $~lib/memory/__stack_pointer + i32.const 0 + call $~lib/typedarray/Float64Array#__get + f64.const 3 + f64.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 415 + i32.const 3 + call $~lib/builtins/abort + unreachable + end local.get $1 - i32.store offset=8 + i32.const 1 + call $~lib/typedarray/Float64Array#__get + f64.const 4 + f64.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 416 + i32.const 3 + call $~lib/builtins/abort + unreachable + end local.get $1 - call $~lib/string/String.__eq + i32.const 2 + call $~lib/typedarray/Float64Array#__get + f64.const 5 + f64.eq i32.eqz if i32.const 0 i32.const 544 - i32.const 653 - i32.const 5 + i32.const 417 + i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 20 + i32.const 12 i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/util/string/joinFloatArray (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArraySome<~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 f32) - (local $9 i32) - (local $10 i32) - (local $11 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -51942,164 +37764,75 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - local.get $1 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 3 + call $~lib/typedarray/Int8Array#constructor + local.tee $0 + i32.store + local.get $0 + i32.const 0 + i32.const 2 + call $~lib/typedarray/Int8Array#__set + local.get $0 i32.const 1 - i32.sub + i32.const 4 + call $~lib/typedarray/Int8Array#__set + local.get $0 + i32.const 2 + i32.const 6 + call $~lib/typedarray/Int8Array#__set + local.get $0 + i32.const 3280 local.set $3 - local.get $3 - i32.const 0 - i32.lt_s - if - i32.const 6048 - 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 $3 - i32.eqz - if - local.get $0 - f32.load - f64.promote_f32 - call $~lib/util/number/dtoa - 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 $2 - local.set $11 global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store - local.get $11 - call $~lib/string/String#get:length - local.set $4 - i32.const 28 - local.get $4 - i32.add local.get $3 - i32.mul - i32.const 28 - i32.add - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.const 1 - i32.shl - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $6 i32.store offset=4 - i32.const 0 - local.set $7 - i32.const 0 - local.set $9 - loop $for-loop|0 - local.get $9 - local.get $3 - i32.lt_s - local.set $10 - local.get $10 - if - local.get $0 - local.get $9 - i32.const 2 - i32.shl - i32.add - f32.load - local.set $8 - local.get $7 - local.get $6 - local.get $7 - i32.const 1 - i32.shl - i32.add - local.get $8 - f64.promote_f32 - call $~lib/util/number/dtoa_buffered - i32.add - local.set $7 - local.get $4 - if - local.get $6 - local.get $7 - i32.const 1 - i32.shl - i32.add - local.get $2 - local.get $4 - i32.const 1 - i32.shl - call $~lib/memory/memory.copy - local.get $7 - local.get $4 - i32.add - local.set $7 - end - local.get $9 - i32.const 1 - i32.add - local.set $9 - br $for-loop|0 - end - end - local.get $0 local.get $3 - i32.const 2 - i32.shl - i32.add - f32.load - local.set $8 - local.get $7 - local.get $6 - local.get $7 - i32.const 1 - i32.shl - i32.add - local.get $8 - f64.promote_f32 - call $~lib/util/number/dtoa_buffered - i32.add - local.set $7 - local.get $5 - local.get $7 - i32.gt_s + call $~lib/typedarray/Int8Array#some + local.set $1 + local.get $1 + i32.const 0 + i32.ne + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 438 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 3312 + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + call $~lib/typedarray/Int8Array#some + local.set $2 + local.get $2 + i32.eqz + i32.eqz if - local.get $6 - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store - local.get $11 i32.const 0 - local.get $7 - call $~lib/string/String#substring - local.set $11 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $11 - return + i32.const 544 + i32.const 440 + i32.const 3 + call $~lib/builtins/abort + unreachable end - local.get $6 - local.set $11 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $11 ) - (func $~lib/typedarray/Float32Array#join (param $0 i32) (param $1 i32) (result i32) + (func $std/typedarray/testArraySome<~lib/typedarray/Uint8Array,u8> + (local $0 i32) + (local $1 i32) (local $2 i32) + (local $3 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -52108,31 +37841,75 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 3 + call $~lib/typedarray/Uint8Array#constructor + local.tee $0 + i32.store local.get $0 - i32.load offset=4 + i32.const 0 + i32.const 2 + call $~lib/typedarray/Uint8Array#__set local.get $0 - local.set $2 + i32.const 1 + i32.const 4 + call $~lib/typedarray/Uint8Array#__set + local.get $0 + i32.const 2 + i32.const 6 + call $~lib/typedarray/Uint8Array#__set + local.get $0 + i32.const 3344 + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $3 i32.store offset=4 - local.get $2 - call $~lib/typedarray/Float32Array#get:length + local.get $3 + call $~lib/typedarray/Uint8Array#some + local.set $1 local.get $1 - local.set $2 + i32.const 0 + i32.ne + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 438 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 3376 + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $2 - call $~lib/util/string/joinFloatArray + local.get $3 + i32.store offset=4 + local.get $3 + call $~lib/typedarray/Uint8Array#some local.set $2 + local.get $2 + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 440 + 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 $2 ) - (func $~lib/typedarray/Float32Array#toString (param $0 i32) (result i32) + (func $std/typedarray/testArraySome<~lib/typedarray/Uint8ClampedArray,u8> + (local $0 i32) (local $1 i32) + (local $2 i32) + (local $3 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -52141,31 +37918,77 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - local.get $0 - local.set $1 global.get $~lib/memory/__stack_pointer - local.get $1 + i32.const 0 + i32.const 3 + call $~lib/typedarray/Uint8ClampedArray#constructor + local.tee $0 i32.store - local.get $1 - i32.const 7856 - local.set $1 + local.get $0 + i32.const 0 + i32.const 2 + call $~lib/typedarray/Uint8ClampedArray#__set + local.get $0 + i32.const 1 + i32.const 4 + call $~lib/typedarray/Uint8ClampedArray#__set + local.get $0 + i32.const 2 + i32.const 6 + call $~lib/typedarray/Uint8ClampedArray#__set + local.get $0 + i32.const 3408 + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $3 i32.store offset=4 - local.get $1 - call $~lib/typedarray/Float32Array#join + local.get $3 + call $~lib/typedarray/Uint8ClampedArray#some local.set $1 + local.get $1 + i32.const 0 + i32.ne + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 438 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 3440 + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + call $~lib/typedarray/Uint8ClampedArray#some + local.set $2 + local.get $2 + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 440 + 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 $1 ) - (func $std/typedarray/testArrayJoinAndToString<~lib/typedarray/Float32Array,f32> + (func $std/typedarray/testArraySome<~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.const 8 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check @@ -52173,141 +37996,74 @@ 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 0 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 5 - call $~lib/typedarray/Float32Array#constructor + i32.const 3 + call $~lib/typedarray/Int16Array#constructor local.tee $0 i32.store local.get $0 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 i32.const 0 - f32.const 1 - call $~lib/typedarray/Float32Array#__set + i32.const 2 + call $~lib/typedarray/Int16Array#__set local.get $0 - local.set $1 - 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 + i32.const 4 + call $~lib/typedarray/Int16Array#__set local.get $0 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 i32.const 2 - f32.const 3 - call $~lib/typedarray/Float32Array#__set - local.get $0 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 3 - f32.const 4 - call $~lib/typedarray/Float32Array#__set - local.get $0 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 4 - f32.const 5 - call $~lib/typedarray/Float32Array#__set - i32.const 1 - drop + i32.const 6 + call $~lib/typedarray/Int16Array#__set local.get $0 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=12 - local.get $1 - i32.const 7856 - 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 + i32.const 3472 + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $3 i32.store offset=4 - local.get $1 - i32.const 9072 + local.get $3 + call $~lib/typedarray/Int16Array#some 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.const 0 + i32.ne i32.eqz if i32.const 0 i32.const 544 - i32.const 649 - i32.const 5 + i32.const 438 + i32.const 3 call $~lib/builtins/abort unreachable end local.get $0 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=12 - local.get $1 - call $~lib/typedarray/Float32Array#toString - local.set $1 + i32.const 3504 + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $3 i32.store offset=4 - local.get $1 - i32.const 9072 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $1 - call $~lib/string/String.__eq + local.get $3 + call $~lib/typedarray/Int16Array#some + local.set $2 + local.get $2 + i32.eqz i32.eqz if i32.const 0 i32.const 544 - i32.const 650 - i32.const 5 + i32.const 440 + 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 ) - (func $~lib/util/string/joinFloatArray (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArraySome<~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 f64) - (local $9 i32) - (local $10 i32) - (local $11 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -52316,161 +38072,152 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - local.get $1 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 3 + call $~lib/typedarray/Uint16Array#constructor + local.tee $0 + i32.store + local.get $0 + i32.const 0 + i32.const 2 + call $~lib/typedarray/Uint16Array#__set + local.get $0 i32.const 1 - i32.sub + i32.const 4 + call $~lib/typedarray/Uint16Array#__set + local.get $0 + i32.const 2 + i32.const 6 + call $~lib/typedarray/Uint16Array#__set + local.get $0 + i32.const 3536 local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 local.get $3 + call $~lib/typedarray/Uint16Array#some + local.set $1 + local.get $1 i32.const 0 - i32.lt_s + i32.ne + i32.eqz if - i32.const 6048 - local.set $11 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $11 - return + i32.const 0 + i32.const 544 + i32.const 438 + i32.const 3 + call $~lib/builtins/abort + unreachable end + local.get $0 + i32.const 3568 + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 local.get $3 + call $~lib/typedarray/Uint16Array#some + local.set $2 + local.get $2 + i32.eqz i32.eqz if - local.get $0 - f64.load - call $~lib/util/number/dtoa - local.set $11 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $11 - return + i32.const 0 + i32.const 544 + i32.const 440 + i32.const 3 + call $~lib/builtins/abort + unreachable end - local.get $2 - local.set $11 global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store - local.get $11 - call $~lib/string/String#get:length - local.set $4 - i32.const 28 - local.get $4 - i32.add - local.get $3 - i32.mul - i32.const 28 + i32.const 8 i32.add - local.set $5 + global.set $~lib/memory/__stack_pointer + ) + (func $std/typedarray/testArraySome<~lib/typedarray/Int32Array,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 + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store global.get $~lib/memory/__stack_pointer - local.get $5 - i32.const 1 - i32.shl - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $6 - i32.store offset=4 i32.const 0 - local.set $7 + i32.const 3 + call $~lib/typedarray/Int32Array#constructor + local.tee $0 + i32.store + local.get $0 i32.const 0 - local.set $9 - loop $for-loop|0 - local.get $9 - local.get $3 - i32.lt_s - local.set $10 - local.get $10 - if - local.get $0 - local.get $9 - i32.const 3 - i32.shl - i32.add - f64.load - local.set $8 - local.get $7 - local.get $6 - local.get $7 - i32.const 1 - i32.shl - i32.add - local.get $8 - call $~lib/util/number/dtoa_buffered - i32.add - local.set $7 - local.get $4 - if - local.get $6 - local.get $7 - i32.const 1 - i32.shl - i32.add - local.get $2 - local.get $4 - i32.const 1 - i32.shl - call $~lib/memory/memory.copy - local.get $7 - local.get $4 - i32.add - local.set $7 - end - local.get $9 - i32.const 1 - i32.add - local.set $9 - br $for-loop|0 - end - end + i32.const 2 + call $~lib/typedarray/Int32Array#__set local.get $0 - local.get $3 - i32.const 3 - i32.shl - i32.add - f64.load - local.set $8 - local.get $7 - local.get $6 - local.get $7 i32.const 1 - i32.shl - i32.add - local.get $8 - call $~lib/util/number/dtoa_buffered - i32.add - local.set $7 - local.get $5 - local.get $7 - i32.gt_s + i32.const 4 + call $~lib/typedarray/Int32Array#__set + local.get $0 + i32.const 2 + i32.const 6 + call $~lib/typedarray/Int32Array#__set + local.get $0 + i32.const 3600 + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + call $~lib/typedarray/Int32Array#some + local.set $1 + local.get $1 + i32.const 0 + i32.ne + i32.eqz if - local.get $6 - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store - local.get $11 i32.const 0 - local.get $7 - call $~lib/string/String#substring - local.set $11 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $11 - return + i32.const 544 + i32.const 438 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 3632 + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + call $~lib/typedarray/Int32Array#some + local.set $2 + local.get $2 + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 440 + i32.const 3 + call $~lib/builtins/abort + unreachable end - local.get $6 - local.set $11 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $11 ) - (func $~lib/typedarray/Float64Array#join (param $0 i32) (param $1 i32) (result i32) + (func $std/typedarray/testArraySome<~lib/typedarray/Uint32Array,u32> + (local $0 i32) + (local $1 i32) (local $2 i32) + (local $3 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -52479,31 +38226,75 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 3 + call $~lib/typedarray/Uint32Array#constructor + local.tee $0 + i32.store local.get $0 - i32.load offset=4 + i32.const 0 + i32.const 2 + call $~lib/typedarray/Uint32Array#__set local.get $0 - local.set $2 + i32.const 1 + i32.const 4 + call $~lib/typedarray/Uint32Array#__set + local.get $0 + i32.const 2 + i32.const 6 + call $~lib/typedarray/Uint32Array#__set + local.get $0 + i32.const 3664 + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $3 i32.store offset=4 - local.get $2 - call $~lib/typedarray/Float64Array#get:length + local.get $3 + call $~lib/typedarray/Uint32Array#some + local.set $1 local.get $1 - local.set $2 + i32.const 0 + i32.ne + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 438 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 3696 + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $2 - call $~lib/util/string/joinFloatArray + local.get $3 + i32.store offset=4 + local.get $3 + call $~lib/typedarray/Uint32Array#some local.set $2 + local.get $2 + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 440 + 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 $2 ) - (func $~lib/typedarray/Float64Array#toString (param $0 i32) (result i32) + (func $std/typedarray/testArraySome<~lib/typedarray/Int64Array,i64> + (local $0 i32) (local $1 i32) + (local $2 i32) + (local $3 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -52512,31 +38303,77 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - local.get $0 - local.set $1 global.get $~lib/memory/__stack_pointer - local.get $1 + i32.const 0 + i32.const 3 + call $~lib/typedarray/Int64Array#constructor + local.tee $0 i32.store - local.get $1 - i32.const 7856 - local.set $1 + local.get $0 + i32.const 0 + i64.const 2 + call $~lib/typedarray/Int64Array#__set + local.get $0 + i32.const 1 + i64.const 4 + call $~lib/typedarray/Int64Array#__set + local.get $0 + i32.const 2 + i64.const 6 + call $~lib/typedarray/Int64Array#__set + local.get $0 + i32.const 3728 + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $3 i32.store offset=4 - local.get $1 - call $~lib/typedarray/Float64Array#join + local.get $3 + call $~lib/typedarray/Int64Array#some local.set $1 + local.get $1 + i32.const 0 + i32.ne + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 438 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 3760 + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + call $~lib/typedarray/Int64Array#some + local.set $2 + local.get $2 + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 440 + 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 $1 ) - (func $std/typedarray/testArrayJoinAndToString<~lib/typedarray/Float64Array,f64> + (func $std/typedarray/testArraySome<~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.const 8 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check @@ -52544,141 +38381,153 @@ 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 0 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 5 - call $~lib/typedarray/Float64Array#constructor + i32.const 3 + call $~lib/typedarray/Uint64Array#constructor local.tee $0 i32.store local.get $0 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 i32.const 0 - f64.const 1 - call $~lib/typedarray/Float64Array#__set + i64.const 2 + call $~lib/typedarray/Uint64Array#__set local.get $0 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 i32.const 1 - f64.const 2 - call $~lib/typedarray/Float64Array#__set + i64.const 4 + call $~lib/typedarray/Uint64Array#__set local.get $0 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 i32.const 2 - f64.const 3 - call $~lib/typedarray/Float64Array#__set + i64.const 6 + call $~lib/typedarray/Uint64Array#__set local.get $0 - local.set $1 + i32.const 3792 + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $3 i32.store offset=4 + local.get $3 + call $~lib/typedarray/Uint64Array#some + local.set $1 local.get $1 - i32.const 3 - f64.const 4 - call $~lib/typedarray/Float64Array#__set + i32.const 0 + i32.ne + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 438 + i32.const 3 + call $~lib/builtins/abort + unreachable + end local.get $0 - local.set $1 + i32.const 3824 + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $3 i32.store offset=4 - local.get $1 - i32.const 4 - f64.const 5 - call $~lib/typedarray/Float64Array#__set - i32.const 1 - drop - local.get $0 - local.set $1 + local.get $3 + call $~lib/typedarray/Uint64Array#some + local.set $2 + local.get $2 + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 440 + i32.const 3 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=12 - local.get $1 - i32.const 7856 - local.set $1 + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $std/typedarray/testArraySome<~lib/typedarray/Float32Array,f32> + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=16 - local.get $1 - call $~lib/typedarray/Float64Array#join - local.set $1 + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check global.get $~lib/memory/__stack_pointer - local.get $1 + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 3 + call $~lib/typedarray/Float32Array#constructor + local.tee $0 + i32.store + local.get $0 + i32.const 0 + f32.const 2 + call $~lib/typedarray/Float32Array#__set + local.get $0 + i32.const 1 + f32.const 4 + call $~lib/typedarray/Float32Array#__set + local.get $0 + i32.const 2 + f32.const 6 + call $~lib/typedarray/Float32Array#__set + local.get $0 + i32.const 3856 + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 i32.store offset=4 - local.get $1 - i32.const 9072 + local.get $3 + call $~lib/typedarray/Float32Array#some 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.const 0 + i32.ne i32.eqz if i32.const 0 i32.const 544 - i32.const 649 - i32.const 5 + i32.const 438 + i32.const 3 call $~lib/builtins/abort unreachable end local.get $0 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=12 - local.get $1 - call $~lib/typedarray/Float64Array#toString - local.set $1 + i32.const 3888 + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $3 i32.store offset=4 - local.get $1 - i32.const 9072 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $1 - call $~lib/string/String.__eq + local.get $3 + call $~lib/typedarray/Float32Array#some + local.set $2 + local.get $2 + i32.eqz i32.eqz if i32.const 0 i32.const 544 - i32.const 650 - i32.const 5 + i32.const 440 + 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 ) - (func $~lib/typedarray/Uint8Array.wrap (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArraySome<~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 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check @@ -52687,124 +38536,73 @@ i64.store global.get $~lib/memory/__stack_pointer i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - local.tee $5 + i32.const 3 + call $~lib/typedarray/Float64Array#constructor + local.tee $0 i32.store - local.get $1 - local.set $4 - local.get $2 + local.get $0 + i32.const 0 + f64.const 2 + call $~lib/typedarray/Float64Array#__set + local.get $0 + i32.const 1 + f64.const 4 + call $~lib/typedarray/Float64Array#__set + local.get $0 + i32.const 2 + f64.const 6 + call $~lib/typedarray/Float64Array#__set + local.get $0 + i32.const 3920 local.set $3 - local.get $5 - local.set $9 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $3 i32.store offset=4 - local.get $9 - call $~lib/arraybuffer/ArrayBuffer#get:byteLength - local.set $7 - local.get $4 - local.get $7 - i32.gt_u - local.get $4 + local.get $3 + call $~lib/typedarray/Float64Array#some + local.set $1 + local.get $1 i32.const 0 - i32.and - i32.or + i32.ne + i32.eqz if - i32.const 336 - i32.const 608 - i32.const 1826 - i32.const 5 + i32.const 0 + i32.const 544 + i32.const 438 + i32.const 3 call $~lib/builtins/abort unreachable end + local.get $0 + i32.const 3952 + local.set $3 + global.get $~lib/memory/__stack_pointer local.get $3 - i32.const 0 - i32.lt_s + i32.store offset=4 + local.get $3 + call $~lib/typedarray/Float64Array#some + local.set $2 + local.get $2 + i32.eqz + i32.eqz if - local.get $3 - i32.const -1 - i32.eq - if - local.get $7 - i32.const 0 - i32.and - if - i32.const 32 - i32.const 608 - i32.const 1831 - i32.const 9 - call $~lib/builtins/abort - unreachable - end - local.get $7 - local.get $4 - i32.sub - local.set $6 - else - i32.const 32 - i32.const 608 - i32.const 1835 - i32.const 7 - call $~lib/builtins/abort - unreachable - end - else - local.get $3 i32.const 0 - i32.shl - local.set $6 - local.get $4 - local.get $6 - i32.add - local.get $7 - i32.gt_s - if - i32.const 32 - i32.const 608 - i32.const 1840 - i32.const 7 - call $~lib/builtins/abort - unreachable - end - end - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.const 4 - call $~lib/rt/itcms/__new - local.tee $8 - i32.store offset=8 - local.get $8 - local.get $5 - i32.store - local.get $8 - local.get $5 - i32.const 0 - call $~lib/rt/itcms/__link - local.get $8 - local.get $6 - i32.store offset=8 - local.get $8 - local.get $5 - local.get $4 - i32.add - i32.store offset=4 - local.get $8 - local.set $9 + i32.const 544 + i32.const 440 + i32.const 3 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $9 ) - (func $~lib/arraybuffer/ArrayBuffer#slice (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArrayFindIndex<~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) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -52813,105 +38611,78 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - local.get $0 - local.set $8 global.get $~lib/memory/__stack_pointer - local.get $8 + i32.const 0 + i32.const 3 + call $~lib/typedarray/Int8Array#constructor + local.tee $0 i32.store - local.get $8 - call $~lib/arraybuffer/ArrayBuffer#get:byteLength + local.get $0 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Int8Array#__set + local.get $0 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Int8Array#__set + local.get $0 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Int8Array#__set + local.get $0 + i32.const 3984 local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + call $~lib/typedarray/Int8Array#findIndex + local.set $1 local.get $1 - i32.const 0 - i32.lt_s - if (result i32) - local.get $3 - local.get $1 - i32.add - local.tee $4 + i32.const 1 + i32.eq + i32.eqz + if i32.const 0 - local.tee $5 - local.get $4 - local.get $5 - i32.gt_s - select - else - local.get $1 - local.tee $5 - local.get $3 - local.tee $4 - local.get $5 - local.get $4 - i32.lt_s - select + i32.const 544 + i32.const 461 + i32.const 3 + call $~lib/builtins/abort + unreachable end - local.set $1 + local.get $0 + i32.const 4016 + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + call $~lib/typedarray/Int8Array#findIndex + local.set $2 local.get $2 - i32.const 0 - i32.lt_s - if (result i32) - local.get $3 - local.get $2 - i32.add - local.tee $4 + i32.const -1 + i32.eq + i32.eqz + if i32.const 0 - local.tee $5 - local.get $4 - local.get $5 - i32.gt_s - select - else - local.get $2 - local.tee $5 - local.get $3 - local.tee $4 - local.get $5 - local.get $4 - i32.lt_s - select + i32.const 544 + i32.const 463 + i32.const 3 + call $~lib/builtins/abort + unreachable end - local.set $2 - local.get $2 - local.get $1 - i32.sub - local.tee $4 - i32.const 0 - local.tee $5 - local.get $4 - local.get $5 - i32.gt_s - select - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.const 0 - call $~lib/rt/itcms/__new - local.tee $7 - i32.store offset=4 - local.get $7 - local.get $0 - local.get $1 - i32.add - local.get $6 - call $~lib/memory/memory.copy - local.get $7 - local.set $8 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $8 ) - (func $~lib/typedarray/Int8Array.wrap (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArrayFindIndex<~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) - (local $9 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check @@ -52920,128 +38691,154 @@ i64.store global.get $~lib/memory/__stack_pointer i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - local.tee $5 + i32.const 3 + call $~lib/typedarray/Uint8Array#constructor + local.tee $0 i32.store - local.get $1 - local.set $4 - local.get $2 + local.get $0 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Uint8Array#__set + local.get $0 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Uint8Array#__set + local.get $0 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Uint8Array#__set + local.get $0 + i32.const 4048 local.set $3 - local.get $5 - local.set $9 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $3 i32.store offset=4 - local.get $9 - call $~lib/arraybuffer/ArrayBuffer#get:byteLength - local.set $7 - local.get $4 - local.get $7 - i32.gt_u - local.get $4 - i32.const 0 - i32.and - i32.or + local.get $3 + call $~lib/typedarray/Uint8Array#findIndex + local.set $1 + local.get $1 + i32.const 1 + i32.eq + i32.eqz if - i32.const 336 - i32.const 608 - i32.const 1826 - i32.const 5 + i32.const 0 + i32.const 544 + i32.const 461 + i32.const 3 call $~lib/builtins/abort unreachable end + local.get $0 + i32.const 4080 + local.set $3 + global.get $~lib/memory/__stack_pointer local.get $3 - i32.const 0 - i32.lt_s + i32.store offset=4 + local.get $3 + call $~lib/typedarray/Uint8Array#findIndex + local.set $2 + local.get $2 + i32.const -1 + i32.eq + i32.eqz if - local.get $3 - i32.const -1 - i32.eq - if - local.get $7 - i32.const 0 - i32.and - if - i32.const 32 - i32.const 608 - i32.const 1831 - i32.const 9 - call $~lib/builtins/abort - unreachable - end - local.get $7 - local.get $4 - i32.sub - local.set $6 - else - i32.const 32 - i32.const 608 - i32.const 1835 - i32.const 7 - call $~lib/builtins/abort - unreachable - end - else - local.get $3 i32.const 0 - i32.shl - local.set $6 - local.get $4 - local.get $6 - i32.add - local.get $7 - i32.gt_s - if - i32.const 32 - i32.const 608 - i32.const 1840 - i32.const 7 - call $~lib/builtins/abort - unreachable - end + i32.const 544 + i32.const 463 + i32.const 3 + call $~lib/builtins/abort + unreachable end global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Uint8ClampedArray,u8> + (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 + 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 3 - call $~lib/rt/itcms/__new - local.tee $8 - i32.store offset=8 - local.get $8 - local.get $5 + call $~lib/typedarray/Uint8ClampedArray#constructor + local.tee $0 i32.store - local.get $8 - local.get $5 + local.get $0 i32.const 0 - call $~lib/rt/itcms/__link - local.get $8 - local.get $6 - i32.store offset=8 - local.get $8 - local.get $5 - local.get $4 - i32.add + i32.const 1 + call $~lib/typedarray/Uint8ClampedArray#__set + local.get $0 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Uint8ClampedArray#__set + local.get $0 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Uint8ClampedArray#__set + local.get $0 + i32.const 4112 + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 i32.store offset=4 - local.get $8 - local.set $9 + local.get $3 + call $~lib/typedarray/Uint8ClampedArray#findIndex + local.set $1 + local.get $1 + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 461 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 4144 + local.set $3 global.get $~lib/memory/__stack_pointer - i32.const 12 + local.get $3 + i32.store offset=4 + local.get $3 + call $~lib/typedarray/Uint8ClampedArray#findIndex + local.set $2 + local.get $2 + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 463 + 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 $9 ) - (func $std/typedarray/testArrayWrap<~lib/typedarray/Int8Array,i8> + (func $std/typedarray/testArrayFindIndex<~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) global.get $~lib/memory/__stack_pointer - i32.const 24 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check @@ -53049,167 +38846,155 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=8 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=16 - global.get $~lib/memory/__stack_pointer - global.get $std/typedarray/testArrayWrapValues + i32.const 0 + i32.const 3 + call $~lib/typedarray/Int16Array#constructor local.tee $0 i32.store local.get $0 - local.set $7 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Int16Array#__set + local.get $0 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Int16Array#__set + local.get $0 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Int16Array#__set + local.get $0 + i32.const 4176 + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $3 i32.store offset=4 - local.get $7 - call $~lib/array/Array#get:length + local.get $3 + call $~lib/typedarray/Int16Array#findIndex local.set $1 - global.get $~lib/memory/__stack_pointer - i32.const 0 local.get $1 - call $~lib/typedarray/Int8Array#constructor - local.tee $2 - i32.store offset=8 - i32.const 0 - local.set $3 - loop $for-loop|0 - local.get $3 - local.get $1 - i32.lt_s - local.set $4 - local.get $4 - if - local.get $2 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - local.get $3 - local.get $0 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=12 - local.get $7 - local.get $3 - call $~lib/array/Array#__get - i32.const 24 - i32.shl - i32.const 24 - i32.shr_s - call $~lib/typedarray/Int8Array#__set - local.get $3 - i32.const 1 - i32.add - local.set $3 - br $for-loop|0 - end + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 461 + i32.const 3 + call $~lib/builtins/abort + unreachable end + local.get $0 + i32.const 4208 + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $2 - i32.load - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $3 i32.store offset=4 - local.get $7 - local.get $2 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=12 - local.get $7 - call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + local.get $3 + call $~lib/typedarray/Int16Array#findIndex + local.set $2 local.get $2 - local.set $7 + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 463 + i32.const 3 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=12 - local.get $7 - call $~lib/arraybuffer/ArrayBufferView#get:byteOffset - local.get $2 - i32.load offset=8 + i32.const 8 i32.add - call $~lib/arraybuffer/ArrayBuffer#slice - local.tee $5 - i32.store offset=16 - i32.const 1 - drop + global.set $~lib/memory/__stack_pointer + ) + (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Uint16Array,u16> + (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 + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store global.get $~lib/memory/__stack_pointer - local.get $5 - local.set $7 + i32.const 0 + i32.const 3 + call $~lib/typedarray/Uint16Array#constructor + local.tee $0 + i32.store + local.get $0 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Uint16Array#__set + local.get $0 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Uint16Array#__set + local.get $0 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Uint16Array#__set + local.get $0 + i32.const 4240 + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $3 i32.store offset=4 - local.get $7 - i32.const 0 + local.get $3 + call $~lib/typedarray/Uint16Array#findIndex + local.set $1 + local.get $1 i32.const 1 - global.set $~argumentsLength - i32.const 0 - call $~lib/typedarray/Int8Array.wrap@varargs - local.tee $6 - i32.store offset=20 - i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 461 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 4272 local.set $3 - loop $for-loop|1 - local.get $3 - local.get $1 - i32.lt_s - local.set $4 - local.get $4 - if - local.get $2 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - local.get $3 - call $~lib/typedarray/Int8Array#__get - local.get $6 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - local.get $3 - call $~lib/typedarray/Int8Array#__get - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 707 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $3 - i32.const 1 - i32.add - local.set $3 - br $for-loop|1 - end + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + call $~lib/typedarray/Uint16Array#findIndex + local.set $2 + local.get $2 + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 463 + 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 ) - (func $std/typedarray/testArrayWrap<~lib/typedarray/Uint8Array,u8> + (func $std/typedarray/testArrayFindIndex<~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) global.get $~lib/memory/__stack_pointer - i32.const 24 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check @@ -53217,166 +39002,155 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=8 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=16 - global.get $~lib/memory/__stack_pointer - global.get $std/typedarray/testArrayWrapValues + i32.const 0 + i32.const 3 + call $~lib/typedarray/Int32Array#constructor local.tee $0 i32.store local.get $0 - local.set $7 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Int32Array#__set + local.get $0 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Int32Array#__set + local.get $0 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Int32Array#__set + local.get $0 + i32.const 4304 + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $3 i32.store offset=4 - local.get $7 - call $~lib/array/Array#get:length + local.get $3 + call $~lib/typedarray/Int32Array#findIndex local.set $1 - global.get $~lib/memory/__stack_pointer - i32.const 0 local.get $1 - call $~lib/typedarray/Uint8Array#constructor - local.tee $2 - i32.store offset=8 - i32.const 0 - local.set $3 - loop $for-loop|0 - local.get $3 - local.get $1 - i32.lt_s - local.set $4 - local.get $4 - if - local.get $2 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - local.get $3 - local.get $0 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=12 - local.get $7 - local.get $3 - call $~lib/array/Array#__get - i32.const 255 - i32.and - call $~lib/typedarray/Uint8Array#__set - local.get $3 - i32.const 1 - i32.add - local.set $3 - br $for-loop|0 - end + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 461 + i32.const 3 + call $~lib/builtins/abort + unreachable end + local.get $0 + i32.const 4336 + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $2 - i32.load - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $3 i32.store offset=4 - local.get $7 - local.get $2 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=12 - local.get $7 - call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + local.get $3 + call $~lib/typedarray/Int32Array#findIndex + local.set $2 local.get $2 - local.set $7 + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 463 + i32.const 3 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=12 - local.get $7 - call $~lib/arraybuffer/ArrayBufferView#get:byteOffset - local.get $2 - i32.load offset=8 + i32.const 8 i32.add - call $~lib/arraybuffer/ArrayBuffer#slice - local.tee $5 - i32.store offset=16 + global.set $~lib/memory/__stack_pointer + ) + (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Uint32Array,u32> + (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 + 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 3 + call $~lib/typedarray/Uint32Array#constructor + local.tee $0 + i32.store + local.get $0 i32.const 0 - drop i32.const 1 - drop - global.get $~lib/memory/__stack_pointer - local.get $5 - local.set $7 + call $~lib/typedarray/Uint32Array#__set + local.get $0 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Uint32Array#__set + local.get $0 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Uint32Array#__set + local.get $0 + i32.const 4368 + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $3 i32.store offset=4 - local.get $7 - i32.const 0 + local.get $3 + call $~lib/typedarray/Uint32Array#findIndex + local.set $1 + local.get $1 i32.const 1 - global.set $~argumentsLength - i32.const 0 - call $~lib/typedarray/Uint8Array.wrap@varargs - local.tee $6 - i32.store offset=20 - i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 461 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 4400 local.set $3 - loop $for-loop|1 - local.get $3 - local.get $1 - i32.lt_s - local.set $4 - local.get $4 - if - local.get $2 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - local.get $3 - call $~lib/typedarray/Uint8Array#__get - local.get $6 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - local.get $3 - call $~lib/typedarray/Uint8Array#__get - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 707 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $3 - i32.const 1 - i32.add - local.set $3 - br $for-loop|1 - end + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + call $~lib/typedarray/Uint32Array#findIndex + local.set $2 + local.get $2 + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 463 + 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 ) - (func $~lib/typedarray/Uint8ClampedArray.wrap (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArrayFindIndex<~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 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check @@ -53385,128 +39159,76 @@ i64.store global.get $~lib/memory/__stack_pointer i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - local.tee $5 + i32.const 3 + call $~lib/typedarray/Int64Array#constructor + local.tee $0 i32.store - local.get $1 - local.set $4 - local.get $2 + local.get $0 + i32.const 0 + i64.const 1 + call $~lib/typedarray/Int64Array#__set + local.get $0 + i32.const 1 + i64.const 2 + call $~lib/typedarray/Int64Array#__set + local.get $0 + i32.const 2 + i64.const 3 + call $~lib/typedarray/Int64Array#__set + local.get $0 + i32.const 4432 local.set $3 - local.get $5 - local.set $9 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $3 i32.store offset=4 - local.get $9 - call $~lib/arraybuffer/ArrayBuffer#get:byteLength - local.set $7 - local.get $4 - local.get $7 - i32.gt_u - local.get $4 - i32.const 0 - i32.and - i32.or + local.get $3 + call $~lib/typedarray/Int64Array#findIndex + local.set $1 + local.get $1 + i32.const 1 + i32.eq + i32.eqz if - i32.const 336 - i32.const 608 - i32.const 1826 - i32.const 5 + i32.const 0 + i32.const 544 + i32.const 461 + i32.const 3 call $~lib/builtins/abort unreachable end + local.get $0 + i32.const 4464 + local.set $3 + global.get $~lib/memory/__stack_pointer local.get $3 - i32.const 0 - i32.lt_s + i32.store offset=4 + local.get $3 + call $~lib/typedarray/Int64Array#findIndex + local.set $2 + local.get $2 + i32.const -1 + i32.eq + i32.eqz if - local.get $3 - i32.const -1 - i32.eq - if - local.get $7 - i32.const 0 - i32.and - if - i32.const 32 - i32.const 608 - i32.const 1831 - i32.const 9 - call $~lib/builtins/abort - unreachable - end - local.get $7 - local.get $4 - i32.sub - local.set $6 - else - i32.const 32 - i32.const 608 - i32.const 1835 - i32.const 7 - call $~lib/builtins/abort - unreachable - end - else - local.get $3 i32.const 0 - i32.shl - local.set $6 - local.get $4 - local.get $6 - i32.add - local.get $7 - i32.gt_s - if - i32.const 32 - i32.const 608 - i32.const 1840 - i32.const 7 - call $~lib/builtins/abort - unreachable - end + i32.const 544 + i32.const 463 + i32.const 3 + call $~lib/builtins/abort + unreachable end global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.const 5 - call $~lib/rt/itcms/__new - local.tee $8 - i32.store offset=8 - local.get $8 - local.get $5 - i32.store - local.get $8 - local.get $5 - i32.const 0 - call $~lib/rt/itcms/__link - local.get $8 - local.get $6 - i32.store offset=8 - local.get $8 - local.get $5 - local.get $4 - i32.add - i32.store offset=4 - local.get $8 - local.set $9 - global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $9 ) - (func $std/typedarray/testArrayWrap<~lib/typedarray/Uint8ClampedArray,u8> + (func $std/typedarray/testArrayFindIndex<~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) global.get $~lib/memory/__stack_pointer - i32.const 24 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check @@ -53514,168 +39236,77 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=8 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=16 - global.get $~lib/memory/__stack_pointer - global.get $std/typedarray/testArrayWrapValues + i32.const 0 + i32.const 3 + call $~lib/typedarray/Uint64Array#constructor local.tee $0 i32.store local.get $0 - local.set $7 + i32.const 0 + i64.const 1 + call $~lib/typedarray/Uint64Array#__set + local.get $0 + i32.const 1 + i64.const 2 + call $~lib/typedarray/Uint64Array#__set + local.get $0 + i32.const 2 + i64.const 3 + call $~lib/typedarray/Uint64Array#__set + local.get $0 + i32.const 4496 + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $3 i32.store offset=4 - local.get $7 - call $~lib/array/Array#get:length + local.get $3 + call $~lib/typedarray/Uint64Array#findIndex local.set $1 - global.get $~lib/memory/__stack_pointer - i32.const 0 local.get $1 - call $~lib/typedarray/Uint8ClampedArray#constructor - local.tee $2 - i32.store offset=8 - i32.const 0 - local.set $3 - loop $for-loop|0 - local.get $3 - local.get $1 - i32.lt_s - local.set $4 - local.get $4 - if - local.get $2 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - local.get $3 - local.get $0 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=12 - local.get $7 - local.get $3 - call $~lib/array/Array#__get - i32.const 255 - i32.and - call $~lib/typedarray/Uint8ClampedArray#__set - local.get $3 - i32.const 1 - i32.add - local.set $3 - br $for-loop|0 - end + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 461 + i32.const 3 + call $~lib/builtins/abort + unreachable end + local.get $0 + i32.const 4528 + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $2 - i32.load - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $3 i32.store offset=4 - local.get $7 - local.get $2 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=12 - local.get $7 - call $~lib/arraybuffer/ArrayBufferView#get:byteOffset - local.get $2 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=12 - local.get $7 - call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + local.get $3 + call $~lib/typedarray/Uint64Array#findIndex + local.set $2 local.get $2 - i32.load offset=8 - i32.add - call $~lib/arraybuffer/ArrayBuffer#slice - local.tee $5 - i32.store offset=16 - i32.const 0 - drop - i32.const 0 - drop - i32.const 1 - drop - global.get $~lib/memory/__stack_pointer - local.get $5 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - i32.const 0 - i32.const 1 - global.set $~argumentsLength - i32.const 0 - call $~lib/typedarray/Uint8ClampedArray.wrap@varargs - local.tee $6 - i32.store offset=20 - i32.const 0 - local.set $3 - loop $for-loop|1 - local.get $3 - local.get $1 - i32.lt_s - local.set $4 - local.get $4 - if - local.get $2 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - local.get $3 - call $~lib/typedarray/Uint8ClampedArray#__get - local.get $6 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - local.get $3 - call $~lib/typedarray/Uint8ClampedArray#__get - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 707 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $3 - i32.const 1 - i32.add - local.set $3 - br $for-loop|1 - end + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 463 + 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 ) - (func $~lib/typedarray/Int16Array.wrap (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArrayFindIndex<~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 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check @@ -53684,128 +39315,76 @@ i64.store global.get $~lib/memory/__stack_pointer i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - local.tee $5 + i32.const 3 + call $~lib/typedarray/Float32Array#constructor + local.tee $0 i32.store - local.get $1 - local.set $4 - local.get $2 + local.get $0 + i32.const 0 + f32.const 1 + call $~lib/typedarray/Float32Array#__set + local.get $0 + i32.const 1 + f32.const 2 + call $~lib/typedarray/Float32Array#__set + local.get $0 + i32.const 2 + f32.const 3 + call $~lib/typedarray/Float32Array#__set + local.get $0 + i32.const 4560 local.set $3 - local.get $5 - local.set $9 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $3 i32.store offset=4 - local.get $9 - call $~lib/arraybuffer/ArrayBuffer#get:byteLength - local.set $7 - local.get $4 - local.get $7 - i32.gt_u - local.get $4 + local.get $3 + call $~lib/typedarray/Float32Array#findIndex + local.set $1 + local.get $1 i32.const 1 - i32.and - i32.or + i32.eq + i32.eqz if - i32.const 336 - i32.const 608 - i32.const 1826 - i32.const 5 + i32.const 0 + i32.const 544 + i32.const 461 + i32.const 3 call $~lib/builtins/abort unreachable end + local.get $0 + i32.const 4592 + local.set $3 + global.get $~lib/memory/__stack_pointer local.get $3 - i32.const 0 - i32.lt_s + i32.store offset=4 + local.get $3 + call $~lib/typedarray/Float32Array#findIndex + local.set $2 + local.get $2 + i32.const -1 + i32.eq + i32.eqz if - local.get $3 - i32.const -1 - i32.eq - if - local.get $7 - i32.const 1 - i32.and - if - i32.const 32 - i32.const 608 - i32.const 1831 - i32.const 9 - call $~lib/builtins/abort - unreachable - end - local.get $7 - local.get $4 - i32.sub - local.set $6 - else - i32.const 32 - i32.const 608 - i32.const 1835 - i32.const 7 - call $~lib/builtins/abort - unreachable - end - else - local.get $3 - i32.const 1 - i32.shl - local.set $6 - local.get $4 - local.get $6 - i32.add - local.get $7 - i32.gt_s - if - i32.const 32 - i32.const 608 - i32.const 1840 - i32.const 7 - call $~lib/builtins/abort - unreachable - end + i32.const 0 + i32.const 544 + i32.const 463 + i32.const 3 + call $~lib/builtins/abort + unreachable end global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.const 6 - call $~lib/rt/itcms/__new - local.tee $8 - i32.store offset=8 - local.get $8 - local.get $5 - i32.store - local.get $8 - local.get $5 - i32.const 0 - call $~lib/rt/itcms/__link - local.get $8 - local.get $6 - i32.store offset=8 - local.get $8 - local.get $5 - local.get $4 - i32.add - i32.store offset=4 - local.get $8 - local.set $9 - global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $9 ) - (func $std/typedarray/testArrayWrap<~lib/typedarray/Int16Array,i16> + (func $std/typedarray/testArrayFindIndex<~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) global.get $~lib/memory/__stack_pointer - i32.const 24 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check @@ -53813,172 +39392,77 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=8 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=16 - global.get $~lib/memory/__stack_pointer - global.get $std/typedarray/testArrayWrapValues + i32.const 0 + i32.const 3 + call $~lib/typedarray/Float64Array#constructor local.tee $0 i32.store local.get $0 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - call $~lib/array/Array#get:length - local.set $1 - global.get $~lib/memory/__stack_pointer - i32.const 0 - local.get $1 - call $~lib/typedarray/Int16Array#constructor - local.tee $2 - i32.store offset=8 - i32.const 0 - local.set $3 - loop $for-loop|0 - local.get $3 - local.get $1 - i32.lt_s - local.set $4 - local.get $4 - if - local.get $2 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - local.get $3 - local.get $0 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=12 - local.get $7 - local.get $3 - call $~lib/array/Array#__get - i32.const 16 - i32.shl - i32.const 16 - i32.shr_s - call $~lib/typedarray/Int16Array#__set - local.get $3 - i32.const 1 - i32.add - local.set $3 - br $for-loop|0 - end - end - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.load - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - local.get $2 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=12 - local.get $7 - call $~lib/arraybuffer/ArrayBufferView#get:byteOffset - local.get $2 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=12 - local.get $7 - call $~lib/arraybuffer/ArrayBufferView#get:byteOffset - local.get $2 - i32.load offset=8 - i32.add - call $~lib/arraybuffer/ArrayBuffer#slice - local.tee $5 - i32.store offset=16 - i32.const 0 - drop - i32.const 0 - drop - i32.const 0 - drop - i32.const 1 - drop - global.get $~lib/memory/__stack_pointer - local.get $5 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 i32.const 0 + f64.const 1 + call $~lib/typedarray/Float64Array#__set + local.get $0 i32.const 1 - global.set $~argumentsLength - i32.const 0 - call $~lib/typedarray/Int16Array.wrap@varargs - local.tee $6 - i32.store offset=20 - i32.const 0 + f64.const 2 + call $~lib/typedarray/Float64Array#__set + local.get $0 + i32.const 2 + f64.const 3 + call $~lib/typedarray/Float64Array#__set + local.get $0 + i32.const 4624 local.set $3 - loop $for-loop|1 - local.get $3 - local.get $1 - i32.lt_s - local.set $4 - local.get $4 - if - local.get $2 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - local.get $3 - call $~lib/typedarray/Int16Array#__get - local.get $6 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - local.get $3 - call $~lib/typedarray/Int16Array#__get - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 707 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $3 - i32.const 1 - i32.add - local.set $3 - br $for-loop|1 - end + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + call $~lib/typedarray/Float64Array#findIndex + local.set $1 + local.get $1 + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 461 + i32.const 3 + call $~lib/builtins/abort + unreachable end + local.get $0 + i32.const 4656 + local.set $3 global.get $~lib/memory/__stack_pointer - i32.const 24 + local.get $3 + i32.store offset=4 + local.get $3 + call $~lib/typedarray/Float64Array#findIndex + local.set $2 + local.get $2 + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 463 + 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 ) - (func $~lib/typedarray/Uint16Array.wrap (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArrayEvery<~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) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check @@ -53987,128 +39471,75 @@ i64.store global.get $~lib/memory/__stack_pointer i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - local.tee $5 + i32.const 3 + call $~lib/typedarray/Int8Array#constructor + local.tee $0 i32.store - local.get $1 - local.set $4 - local.get $2 + local.get $0 + i32.const 0 + i32.const 2 + call $~lib/typedarray/Int8Array#__set + local.get $0 + i32.const 1 + i32.const 4 + call $~lib/typedarray/Int8Array#__set + local.get $0 + i32.const 2 + i32.const 6 + call $~lib/typedarray/Int8Array#__set + local.get $0 + i32.const 4688 local.set $3 - local.get $5 - local.set $9 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $3 i32.store offset=4 - local.get $9 - call $~lib/arraybuffer/ArrayBuffer#get:byteLength - local.set $7 - local.get $4 - local.get $7 - i32.gt_u - local.get $4 - i32.const 1 - i32.and - i32.or + local.get $3 + call $~lib/typedarray/Int8Array#every + local.set $1 + local.get $1 + i32.const 0 + i32.ne + i32.eqz if - i32.const 336 - i32.const 608 - i32.const 1826 - i32.const 5 + i32.const 0 + i32.const 544 + i32.const 484 + i32.const 3 call $~lib/builtins/abort unreachable end + local.get $0 + i32.const 4720 + local.set $3 + global.get $~lib/memory/__stack_pointer local.get $3 - i32.const 0 - i32.lt_s + i32.store offset=4 + local.get $3 + call $~lib/typedarray/Int8Array#every + local.set $2 + local.get $2 + i32.eqz + i32.eqz if - local.get $3 - i32.const -1 - i32.eq - if - local.get $7 - i32.const 1 - i32.and - if - i32.const 32 - i32.const 608 - i32.const 1831 - i32.const 9 - call $~lib/builtins/abort - unreachable - end - local.get $7 - local.get $4 - i32.sub - local.set $6 - else - i32.const 32 - i32.const 608 - i32.const 1835 - i32.const 7 - call $~lib/builtins/abort - unreachable - end - else - local.get $3 - i32.const 1 - i32.shl - local.set $6 - local.get $4 - local.get $6 - i32.add - local.get $7 - i32.gt_s - if - i32.const 32 - i32.const 608 - i32.const 1840 - i32.const 7 - call $~lib/builtins/abort - unreachable - end + i32.const 0 + i32.const 544 + i32.const 486 + i32.const 3 + call $~lib/builtins/abort + unreachable end global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.const 7 - call $~lib/rt/itcms/__new - local.tee $8 - i32.store offset=8 - local.get $8 - local.get $5 - i32.store - local.get $8 - local.get $5 - i32.const 0 - call $~lib/rt/itcms/__link - local.get $8 - local.get $6 - i32.store offset=8 - local.get $8 - local.get $5 - local.get $4 - i32.add - i32.store offset=4 - local.get $8 - local.set $9 - global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $9 ) - (func $std/typedarray/testArrayWrap<~lib/typedarray/Uint16Array,u16> + (func $std/typedarray/testArrayEvery<~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 24 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check @@ -54116,172 +39547,76 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=8 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=16 - global.get $~lib/memory/__stack_pointer - global.get $std/typedarray/testArrayWrapValues + i32.const 0 + i32.const 3 + call $~lib/typedarray/Uint8Array#constructor local.tee $0 i32.store local.get $0 - local.set $7 + i32.const 0 + i32.const 2 + call $~lib/typedarray/Uint8Array#__set + local.get $0 + i32.const 1 + i32.const 4 + call $~lib/typedarray/Uint8Array#__set + local.get $0 + i32.const 2 + i32.const 6 + call $~lib/typedarray/Uint8Array#__set + local.get $0 + i32.const 4752 + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $3 i32.store offset=4 - local.get $7 - call $~lib/array/Array#get:length + local.get $3 + call $~lib/typedarray/Uint8Array#every local.set $1 - global.get $~lib/memory/__stack_pointer - i32.const 0 local.get $1 - call $~lib/typedarray/Uint16Array#constructor - local.tee $2 - i32.store offset=8 i32.const 0 - local.set $3 - loop $for-loop|0 - local.get $3 - local.get $1 - i32.lt_s - local.set $4 - local.get $4 - if - local.get $2 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - local.get $3 - local.get $0 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=12 - local.get $7 - local.get $3 - call $~lib/array/Array#__get - i32.const 65535 - i32.and - call $~lib/typedarray/Uint16Array#__set - local.get $3 - i32.const 1 - i32.add - local.set $3 - br $for-loop|0 - end + i32.ne + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 484 + i32.const 3 + call $~lib/builtins/abort + unreachable end + local.get $0 + i32.const 4784 + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $2 - i32.load - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $3 i32.store offset=4 - local.get $7 - local.get $2 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=12 - local.get $7 - call $~lib/arraybuffer/ArrayBufferView#get:byteOffset - local.get $2 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=12 - local.get $7 - call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + local.get $3 + call $~lib/typedarray/Uint8Array#every + local.set $2 local.get $2 - i32.load offset=8 - i32.add - call $~lib/arraybuffer/ArrayBuffer#slice - local.tee $5 - i32.store offset=16 - i32.const 0 - drop - i32.const 0 - drop - i32.const 0 - drop - i32.const 0 - drop - i32.const 1 - drop - global.get $~lib/memory/__stack_pointer - local.get $5 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - i32.const 0 - i32.const 1 - global.set $~argumentsLength - i32.const 0 - call $~lib/typedarray/Uint16Array.wrap@varargs - local.tee $6 - i32.store offset=20 - i32.const 0 - local.set $3 - loop $for-loop|1 - local.get $3 - local.get $1 - i32.lt_s - local.set $4 - local.get $4 - if - local.get $2 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - local.get $3 - call $~lib/typedarray/Uint16Array#__get - local.get $6 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - local.get $3 - call $~lib/typedarray/Uint16Array#__get - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 707 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $3 - i32.const 1 - i32.add - local.set $3 - br $for-loop|1 - end + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 486 + 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 ) - (func $~lib/typedarray/Int32Array.wrap (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArrayEvery<~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) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check @@ -54290,128 +39625,75 @@ i64.store global.get $~lib/memory/__stack_pointer i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - local.tee $5 + i32.const 3 + call $~lib/typedarray/Uint8ClampedArray#constructor + local.tee $0 i32.store - local.get $1 - local.set $4 - local.get $2 + local.get $0 + i32.const 0 + i32.const 2 + call $~lib/typedarray/Uint8ClampedArray#__set + local.get $0 + i32.const 1 + i32.const 4 + call $~lib/typedarray/Uint8ClampedArray#__set + local.get $0 + i32.const 2 + i32.const 6 + call $~lib/typedarray/Uint8ClampedArray#__set + local.get $0 + i32.const 4816 local.set $3 - local.get $5 - local.set $9 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $3 i32.store offset=4 - local.get $9 - call $~lib/arraybuffer/ArrayBuffer#get:byteLength - local.set $7 - local.get $4 - local.get $7 - i32.gt_u - local.get $4 - i32.const 3 - i32.and - i32.or + local.get $3 + call $~lib/typedarray/Uint8ClampedArray#every + local.set $1 + local.get $1 + i32.const 0 + i32.ne + i32.eqz if - i32.const 336 - i32.const 608 - i32.const 1826 - i32.const 5 + i32.const 0 + i32.const 544 + i32.const 484 + i32.const 3 call $~lib/builtins/abort unreachable end + local.get $0 + i32.const 4848 + local.set $3 + global.get $~lib/memory/__stack_pointer local.get $3 - i32.const 0 - i32.lt_s + i32.store offset=4 + local.get $3 + call $~lib/typedarray/Uint8ClampedArray#every + local.set $2 + local.get $2 + i32.eqz + i32.eqz if - local.get $3 - i32.const -1 - i32.eq - if - local.get $7 - i32.const 3 - i32.and - if - i32.const 32 - i32.const 608 - i32.const 1831 - i32.const 9 - call $~lib/builtins/abort - unreachable - end - local.get $7 - local.get $4 - i32.sub - local.set $6 - else - i32.const 32 - i32.const 608 - i32.const 1835 - i32.const 7 - call $~lib/builtins/abort - unreachable - end - else - local.get $3 - i32.const 2 - i32.shl - local.set $6 - local.get $4 - local.get $6 - i32.add - local.get $7 - i32.gt_s - if - i32.const 32 - i32.const 608 - i32.const 1840 - i32.const 7 - call $~lib/builtins/abort - unreachable - end + i32.const 0 + i32.const 544 + i32.const 486 + i32.const 3 + call $~lib/builtins/abort + unreachable end global.get $~lib/memory/__stack_pointer - i32.const 12 i32.const 8 - call $~lib/rt/itcms/__new - local.tee $8 - i32.store offset=8 - local.get $8 - local.get $5 - i32.store - local.get $8 - local.get $5 - i32.const 0 - call $~lib/rt/itcms/__link - local.get $8 - local.get $6 - i32.store offset=8 - local.get $8 - local.get $5 - local.get $4 - i32.add - i32.store offset=4 - local.get $8 - local.set $9 - global.get $~lib/memory/__stack_pointer - i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $9 ) - (func $std/typedarray/testArrayWrap<~lib/typedarray/Int32Array,i32> + (func $std/typedarray/testArrayEvery<~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) global.get $~lib/memory/__stack_pointer - i32.const 24 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check @@ -54419,172 +39701,76 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=8 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=16 - global.get $~lib/memory/__stack_pointer - global.get $std/typedarray/testArrayWrapValues + i32.const 0 + i32.const 3 + call $~lib/typedarray/Int16Array#constructor local.tee $0 i32.store local.get $0 - local.set $7 + i32.const 0 + i32.const 2 + call $~lib/typedarray/Int16Array#__set + local.get $0 + i32.const 1 + i32.const 4 + call $~lib/typedarray/Int16Array#__set + local.get $0 + i32.const 2 + i32.const 6 + call $~lib/typedarray/Int16Array#__set + local.get $0 + i32.const 4880 + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $3 i32.store offset=4 - local.get $7 - call $~lib/array/Array#get:length + local.get $3 + call $~lib/typedarray/Int16Array#every local.set $1 - global.get $~lib/memory/__stack_pointer - i32.const 0 local.get $1 - call $~lib/typedarray/Int32Array#constructor - local.tee $2 - i32.store offset=8 i32.const 0 - local.set $3 - loop $for-loop|0 - local.get $3 - local.get $1 - i32.lt_s - local.set $4 - local.get $4 - if - local.get $2 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - local.get $3 - local.get $0 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=12 - local.get $7 - local.get $3 - call $~lib/array/Array#__get - call $~lib/typedarray/Int32Array#__set - local.get $3 - i32.const 1 - i32.add - local.set $3 - br $for-loop|0 - end + i32.ne + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 484 + i32.const 3 + call $~lib/builtins/abort + unreachable end + local.get $0 + i32.const 4912 + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $2 - i32.load - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $3 i32.store offset=4 - local.get $7 - local.get $2 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=12 - local.get $7 - call $~lib/arraybuffer/ArrayBufferView#get:byteOffset - local.get $2 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=12 - local.get $7 - call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + local.get $3 + call $~lib/typedarray/Int16Array#every + local.set $2 local.get $2 - i32.load offset=8 - i32.add - call $~lib/arraybuffer/ArrayBuffer#slice - local.tee $5 - i32.store offset=16 - i32.const 0 - drop - i32.const 0 - drop - i32.const 0 - drop - i32.const 0 - drop - i32.const 0 - drop - i32.const 1 - drop - global.get $~lib/memory/__stack_pointer - local.get $5 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - i32.const 0 - i32.const 1 - global.set $~argumentsLength - i32.const 0 - call $~lib/typedarray/Int32Array.wrap@varargs - local.tee $6 - i32.store offset=20 - i32.const 0 - local.set $3 - loop $for-loop|1 - local.get $3 - local.get $1 - i32.lt_s - local.set $4 - local.get $4 - if - local.get $2 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - local.get $3 - call $~lib/typedarray/Int32Array#__get - local.get $6 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - local.get $3 - call $~lib/typedarray/Int32Array#__get - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 707 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $3 - i32.const 1 - i32.add - local.set $3 - br $for-loop|1 - end + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 486 + 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 ) - (func $~lib/typedarray/Uint32Array.wrap (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArrayEvery<~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) - (local $9 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check @@ -54593,128 +39779,75 @@ i64.store global.get $~lib/memory/__stack_pointer i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - local.tee $5 + i32.const 3 + call $~lib/typedarray/Uint16Array#constructor + local.tee $0 i32.store - local.get $1 - local.set $4 - local.get $2 + local.get $0 + i32.const 0 + i32.const 2 + call $~lib/typedarray/Uint16Array#__set + local.get $0 + i32.const 1 + i32.const 4 + call $~lib/typedarray/Uint16Array#__set + local.get $0 + i32.const 2 + i32.const 6 + call $~lib/typedarray/Uint16Array#__set + local.get $0 + i32.const 4944 local.set $3 - local.get $5 - local.set $9 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $3 i32.store offset=4 - local.get $9 - call $~lib/arraybuffer/ArrayBuffer#get:byteLength - local.set $7 - local.get $4 - local.get $7 - i32.gt_u - local.get $4 - i32.const 3 - i32.and - i32.or + local.get $3 + call $~lib/typedarray/Uint16Array#every + local.set $1 + local.get $1 + i32.const 0 + i32.ne + i32.eqz if - i32.const 336 - i32.const 608 - i32.const 1826 - i32.const 5 + i32.const 0 + i32.const 544 + i32.const 484 + i32.const 3 call $~lib/builtins/abort unreachable end + local.get $0 + i32.const 4976 + local.set $3 + global.get $~lib/memory/__stack_pointer local.get $3 - i32.const 0 - i32.lt_s + i32.store offset=4 + local.get $3 + call $~lib/typedarray/Uint16Array#every + local.set $2 + local.get $2 + i32.eqz + i32.eqz if - local.get $3 - i32.const -1 - i32.eq - if - local.get $7 - i32.const 3 - i32.and - if - i32.const 32 - i32.const 608 - i32.const 1831 - i32.const 9 - call $~lib/builtins/abort - unreachable - end - local.get $7 - local.get $4 - i32.sub - local.set $6 - else - i32.const 32 - i32.const 608 - i32.const 1835 - i32.const 7 - call $~lib/builtins/abort - unreachable - end - else - local.get $3 - i32.const 2 - i32.shl - local.set $6 - local.get $4 - local.get $6 - i32.add - local.get $7 - i32.gt_s - if - i32.const 32 - i32.const 608 - i32.const 1840 - i32.const 7 - call $~lib/builtins/abort - unreachable - end + i32.const 0 + i32.const 544 + i32.const 486 + i32.const 3 + call $~lib/builtins/abort + unreachable end global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.const 9 - call $~lib/rt/itcms/__new - local.tee $8 - i32.store offset=8 - local.get $8 - local.get $5 - i32.store - local.get $8 - local.get $5 - i32.const 0 - call $~lib/rt/itcms/__link - local.get $8 - local.get $6 - i32.store offset=8 - local.get $8 - local.get $5 - local.get $4 - i32.add - i32.store offset=4 - local.get $8 - local.set $9 - global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $9 ) - (func $std/typedarray/testArrayWrap<~lib/typedarray/Uint32Array,u32> + (func $std/typedarray/testArrayEvery<~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) global.get $~lib/memory/__stack_pointer - i32.const 24 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check @@ -54722,174 +39855,153 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=8 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=16 - global.get $~lib/memory/__stack_pointer - global.get $std/typedarray/testArrayWrapValues + i32.const 0 + i32.const 3 + call $~lib/typedarray/Int32Array#constructor local.tee $0 i32.store local.get $0 - local.set $7 + i32.const 0 + i32.const 2 + call $~lib/typedarray/Int32Array#__set + local.get $0 + i32.const 1 + i32.const 4 + call $~lib/typedarray/Int32Array#__set + local.get $0 + i32.const 2 + i32.const 6 + call $~lib/typedarray/Int32Array#__set + local.get $0 + i32.const 5008 + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $3 i32.store offset=4 - local.get $7 - call $~lib/array/Array#get:length + local.get $3 + call $~lib/typedarray/Int32Array#every local.set $1 - global.get $~lib/memory/__stack_pointer - i32.const 0 local.get $1 - call $~lib/typedarray/Uint32Array#constructor - local.tee $2 - i32.store offset=8 i32.const 0 - local.set $3 - loop $for-loop|0 - local.get $3 - local.get $1 - i32.lt_s - local.set $4 - local.get $4 - if - local.get $2 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - local.get $3 - local.get $0 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=12 - local.get $7 - local.get $3 - call $~lib/array/Array#__get - call $~lib/typedarray/Uint32Array#__set - local.get $3 - i32.const 1 - i32.add - local.set $3 - br $for-loop|0 - end + i32.ne + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 484 + i32.const 3 + call $~lib/builtins/abort + unreachable end + local.get $0 + i32.const 5040 + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $2 - i32.load - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $3 i32.store offset=4 - local.get $7 - local.get $2 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=12 - local.get $7 - call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + local.get $3 + call $~lib/typedarray/Int32Array#every + local.set $2 local.get $2 - local.set $7 + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 486 + i32.const 3 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=12 - local.get $7 - call $~lib/arraybuffer/ArrayBufferView#get:byteOffset - local.get $2 - i32.load offset=8 + i32.const 8 i32.add - call $~lib/arraybuffer/ArrayBuffer#slice - local.tee $5 - i32.store offset=16 - i32.const 0 - drop - i32.const 0 - drop - i32.const 0 - drop - i32.const 0 - drop + global.set $~lib/memory/__stack_pointer + ) + (func $std/typedarray/testArrayEvery<~lib/typedarray/Uint32Array,u32> + (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 + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer i32.const 0 - drop + i32.const 3 + call $~lib/typedarray/Uint32Array#constructor + local.tee $0 + i32.store + local.get $0 i32.const 0 - drop + i32.const 2 + call $~lib/typedarray/Uint32Array#__set + local.get $0 i32.const 1 - drop - global.get $~lib/memory/__stack_pointer - local.get $5 - local.set $7 + i32.const 4 + call $~lib/typedarray/Uint32Array#__set + local.get $0 + i32.const 2 + i32.const 6 + call $~lib/typedarray/Uint32Array#__set + local.get $0 + i32.const 5072 + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $3 i32.store offset=4 - local.get $7 - i32.const 0 - i32.const 1 - global.set $~argumentsLength - i32.const 0 - call $~lib/typedarray/Uint32Array.wrap@varargs - local.tee $6 - i32.store offset=20 + local.get $3 + call $~lib/typedarray/Uint32Array#every + local.set $1 + local.get $1 i32.const 0 + i32.ne + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 484 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 5104 local.set $3 - loop $for-loop|1 - local.get $3 - local.get $1 - i32.lt_s - local.set $4 - local.get $4 - if - local.get $2 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - local.get $3 - call $~lib/typedarray/Uint32Array#__get - local.get $6 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - local.get $3 - call $~lib/typedarray/Uint32Array#__get - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 707 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $3 - i32.const 1 - i32.add - local.set $3 - br $for-loop|1 - end + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + call $~lib/typedarray/Uint32Array#every + local.set $2 + local.get $2 + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 486 + 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 ) - (func $~lib/typedarray/Int64Array.wrap (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArrayEvery<~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 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check @@ -54898,128 +40010,75 @@ i64.store global.get $~lib/memory/__stack_pointer i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - local.tee $5 + i32.const 3 + call $~lib/typedarray/Int64Array#constructor + local.tee $0 i32.store - local.get $1 - local.set $4 - local.get $2 + local.get $0 + i32.const 0 + i64.const 2 + call $~lib/typedarray/Int64Array#__set + local.get $0 + i32.const 1 + i64.const 4 + call $~lib/typedarray/Int64Array#__set + local.get $0 + i32.const 2 + i64.const 6 + call $~lib/typedarray/Int64Array#__set + local.get $0 + i32.const 5136 local.set $3 - local.get $5 - local.set $9 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $3 i32.store offset=4 - local.get $9 - call $~lib/arraybuffer/ArrayBuffer#get:byteLength - local.set $7 - local.get $4 - local.get $7 - i32.gt_u - local.get $4 - i32.const 7 - i32.and - i32.or + local.get $3 + call $~lib/typedarray/Int64Array#every + local.set $1 + local.get $1 + i32.const 0 + i32.ne + i32.eqz if - i32.const 336 - i32.const 608 - i32.const 1826 - i32.const 5 + i32.const 0 + i32.const 544 + i32.const 484 + i32.const 3 call $~lib/builtins/abort unreachable end + local.get $0 + i32.const 5168 + local.set $3 + global.get $~lib/memory/__stack_pointer local.get $3 - i32.const 0 - i32.lt_s + i32.store offset=4 + local.get $3 + call $~lib/typedarray/Int64Array#every + local.set $2 + local.get $2 + i32.eqz + i32.eqz if - local.get $3 - i32.const -1 - i32.eq - if - local.get $7 - i32.const 7 - i32.and - if - i32.const 32 - i32.const 608 - i32.const 1831 - i32.const 9 - call $~lib/builtins/abort - unreachable - end - local.get $7 - local.get $4 - i32.sub - local.set $6 - else - i32.const 32 - i32.const 608 - i32.const 1835 - i32.const 7 - call $~lib/builtins/abort - unreachable - end - else - local.get $3 + i32.const 0 + i32.const 544 + i32.const 486 i32.const 3 - i32.shl - local.set $6 - local.get $4 - local.get $6 - i32.add - local.get $7 - i32.gt_s - if - i32.const 32 - i32.const 608 - i32.const 1840 - i32.const 7 - call $~lib/builtins/abort - unreachable - end + call $~lib/builtins/abort + unreachable end global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.const 10 - call $~lib/rt/itcms/__new - local.tee $8 - i32.store offset=8 - local.get $8 - local.get $5 - i32.store - local.get $8 - local.get $5 - i32.const 0 - call $~lib/rt/itcms/__link - local.get $8 - local.get $6 - i32.store offset=8 - local.get $8 - local.get $5 - local.get $4 - i32.add - i32.store offset=4 - local.get $8 - local.set $9 - global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $9 ) - (func $std/typedarray/testArrayWrap<~lib/typedarray/Int64Array,i64> + (func $std/typedarray/testArrayEvery<~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) global.get $~lib/memory/__stack_pointer - i32.const 24 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check @@ -55027,177 +40086,153 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=8 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=16 - global.get $~lib/memory/__stack_pointer - global.get $std/typedarray/testArrayWrapValues + i32.const 0 + i32.const 3 + call $~lib/typedarray/Uint64Array#constructor local.tee $0 i32.store local.get $0 - local.set $7 + i32.const 0 + i64.const 2 + call $~lib/typedarray/Uint64Array#__set + local.get $0 + i32.const 1 + i64.const 4 + call $~lib/typedarray/Uint64Array#__set + local.get $0 + i32.const 2 + i64.const 6 + call $~lib/typedarray/Uint64Array#__set + local.get $0 + i32.const 5200 + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $3 i32.store offset=4 - local.get $7 - call $~lib/array/Array#get:length + local.get $3 + call $~lib/typedarray/Uint64Array#every local.set $1 - global.get $~lib/memory/__stack_pointer - i32.const 0 local.get $1 - call $~lib/typedarray/Int64Array#constructor - local.tee $2 - i32.store offset=8 i32.const 0 - local.set $3 - loop $for-loop|0 - local.get $3 - local.get $1 - i32.lt_s - local.set $4 - local.get $4 - if - local.get $2 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - local.get $3 - local.get $0 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=12 - local.get $7 - local.get $3 - call $~lib/array/Array#__get - i64.extend_i32_s - call $~lib/typedarray/Int64Array#__set - local.get $3 - i32.const 1 - i32.add - local.set $3 - br $for-loop|0 - end + i32.ne + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 484 + i32.const 3 + call $~lib/builtins/abort + unreachable end + local.get $0 + i32.const 5232 + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $2 - i32.load - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $3 i32.store offset=4 - local.get $7 - local.get $2 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=12 - local.get $7 - call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + local.get $3 + call $~lib/typedarray/Uint64Array#every + local.set $2 local.get $2 - local.set $7 + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 486 + i32.const 3 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=12 - local.get $7 - call $~lib/arraybuffer/ArrayBufferView#get:byteOffset - local.get $2 - i32.load offset=8 + i32.const 8 i32.add - call $~lib/arraybuffer/ArrayBuffer#slice - local.tee $5 - i32.store offset=16 - i32.const 0 - drop - i32.const 0 - drop - i32.const 0 - drop - i32.const 0 - drop - i32.const 0 - drop + global.set $~lib/memory/__stack_pointer + ) + (func $std/typedarray/testArrayEvery<~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.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 - drop + i32.const 3 + call $~lib/typedarray/Float32Array#constructor + local.tee $0 + i32.store + local.get $0 i32.const 0 - drop + f32.const 2 + call $~lib/typedarray/Float32Array#__set + local.get $0 i32.const 1 - drop - global.get $~lib/memory/__stack_pointer - local.get $5 - local.set $7 + f32.const 4 + call $~lib/typedarray/Float32Array#__set + local.get $0 + i32.const 2 + f32.const 6 + call $~lib/typedarray/Float32Array#__set + local.get $0 + i32.const 5264 + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $3 i32.store offset=4 - local.get $7 - i32.const 0 - i32.const 1 - global.set $~argumentsLength - i32.const 0 - call $~lib/typedarray/Int64Array.wrap@varargs - local.tee $6 - i32.store offset=20 + local.get $3 + call $~lib/typedarray/Float32Array#every + local.set $1 + local.get $1 i32.const 0 - local.set $3 - loop $for-loop|1 - local.get $3 - local.get $1 - i32.lt_s - local.set $4 - local.get $4 - if - local.get $2 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - local.get $3 - call $~lib/typedarray/Int64Array#__get - local.get $6 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - local.get $3 - call $~lib/typedarray/Int64Array#__get - i64.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 707 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $3 - i32.const 1 - i32.add - local.set $3 - br $for-loop|1 - end + i32.ne + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 484 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 5296 + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + call $~lib/typedarray/Float32Array#every + local.set $2 + local.get $2 + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 486 + 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 ) - (func $~lib/typedarray/Uint64Array.wrap (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArrayEvery<~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 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check @@ -55206,128 +40241,146 @@ i64.store global.get $~lib/memory/__stack_pointer i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - local.tee $5 + i32.const 3 + call $~lib/typedarray/Float64Array#constructor + local.tee $0 i32.store - local.get $1 - local.set $4 - local.get $2 + local.get $0 + i32.const 0 + f64.const 2 + call $~lib/typedarray/Float64Array#__set + local.get $0 + i32.const 1 + f64.const 4 + call $~lib/typedarray/Float64Array#__set + local.get $0 + i32.const 2 + f64.const 6 + call $~lib/typedarray/Float64Array#__set + local.get $0 + i32.const 5328 local.set $3 - local.get $5 - local.set $9 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $3 i32.store offset=4 - local.get $9 - call $~lib/arraybuffer/ArrayBuffer#get:byteLength - local.set $7 - local.get $4 - local.get $7 - i32.gt_u - local.get $4 - i32.const 7 - i32.and - i32.or + local.get $3 + call $~lib/typedarray/Float64Array#every + local.set $1 + local.get $1 + i32.const 0 + i32.ne + i32.eqz if - i32.const 336 - i32.const 608 - i32.const 1826 - i32.const 5 + i32.const 0 + i32.const 544 + i32.const 484 + i32.const 3 call $~lib/builtins/abort unreachable end + local.get $0 + i32.const 5360 + local.set $3 + global.get $~lib/memory/__stack_pointer local.get $3 - i32.const 0 - i32.lt_s + i32.store offset=4 + local.get $3 + call $~lib/typedarray/Float64Array#every + local.set $2 + local.get $2 + i32.eqz + i32.eqz if - local.get $3 - i32.const -1 - i32.eq - if - local.get $7 - i32.const 7 - i32.and - if - i32.const 32 - i32.const 608 - i32.const 1831 - i32.const 9 - call $~lib/builtins/abort - unreachable - end - local.get $7 - local.get $4 - i32.sub - local.set $6 - else - i32.const 32 - i32.const 608 - i32.const 1835 - i32.const 7 - call $~lib/builtins/abort - unreachable - end - else - local.get $3 + i32.const 0 + i32.const 544 + i32.const 486 i32.const 3 - i32.shl - local.set $6 - local.get $4 - local.get $6 - i32.add - local.get $7 - i32.gt_s - if - i32.const 32 - i32.const 608 - i32.const 1840 - i32.const 7 - call $~lib/builtins/abort - unreachable - end + call $~lib/builtins/abort + unreachable end global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.const 11 - call $~lib/rt/itcms/__new - local.tee $8 - i32.store offset=8 - local.get $8 - local.get $5 - i32.store - local.get $8 - local.get $5 + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $std/typedarray/testArrayForEach<~lib/typedarray/Int8Array,i8>~anonymous|0 (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 + call $~stack_check + global.get $~lib/memory/__stack_pointer i32.const 0 - call $~lib/rt/itcms/__link - local.get $8 - local.get $6 - i32.store offset=8 - local.get $8 - local.get $5 + i32.store + global.get $std/typedarray/forEachValues + local.set $4 + global.get $~lib/memory/__stack_pointer local.get $4 + i32.store + local.get $4 + local.get $1 + call $~lib/array/Array#__get + local.set $3 + local.get $0 + i32.const 24 + i32.shl + i32.const 24 + i32.shr_s + local.get $3 + i32.const 24 + i32.shl + i32.const 24 + i32.shr_s + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 513 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $1 + global.get $std/typedarray/forEachCallCount + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 514 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $std/typedarray/forEachSelf + local.get $2 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 515 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $std/typedarray/forEachCallCount + i32.const 1 i32.add - i32.store offset=4 - local.get $8 - local.set $9 + 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 $9 ) - (func $std/typedarray/testArrayWrap<~lib/typedarray/Uint64Array,u64> + (func $std/typedarray/testArrayForEach<~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 24 + i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check @@ -55335,177 +40388,160 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=8 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=16 + i32.const 0 + i32.store offset=8 + i32.const 0 + global.set $std/typedarray/forEachCallCount global.get $~lib/memory/__stack_pointer - global.get $std/typedarray/testArrayWrapValues + i32.const 0 + i32.const 3 + call $~lib/typedarray/Int8Array#constructor local.tee $0 i32.store local.get $0 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - call $~lib/array/Array#get:length + global.set $std/typedarray/forEachSelf + local.get $0 + i32.const 0 + global.get $std/typedarray/forEachValues local.set $1 global.get $~lib/memory/__stack_pointer - i32.const 0 local.get $1 - call $~lib/typedarray/Uint64Array#constructor - local.tee $2 - i32.store offset=8 + i32.store offset=4 + local.get $1 i32.const 0 - local.set $3 - loop $for-loop|0 - local.get $3 - local.get $1 - i32.lt_s - local.set $4 - local.get $4 - if - local.get $2 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - local.get $3 - local.get $0 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=12 - local.get $7 - local.get $3 - call $~lib/array/Array#__get - 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 + call $~lib/array/Array#__get + i32.const 24 + i32.shl + i32.const 24 + i32.shr_s + call $~lib/typedarray/Int8Array#__set + local.get $0 + i32.const 1 + global.get $std/typedarray/forEachValues + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $2 - i32.load - local.set $7 + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 1 + call $~lib/array/Array#__get + i32.const 24 + i32.shl + i32.const 24 + i32.shr_s + call $~lib/typedarray/Int8Array#__set + local.get $0 + i32.const 2 + global.get $std/typedarray/forEachValues + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $1 i32.store offset=4 - local.get $7 - local.get $2 - local.set $7 + local.get $1 + i32.const 2 + call $~lib/array/Array#__get + i32.const 24 + i32.shl + i32.const 24 + i32.shr_s + call $~lib/typedarray/Int8Array#__set + local.get $0 + i32.const 5472 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=12 - local.get $7 - call $~lib/arraybuffer/ArrayBufferView#get:byteOffset - local.get $2 - local.set $7 + local.get $1 + i32.store offset=8 + local.get $1 + call $~lib/typedarray/Int8Array#forEach + global.get $std/typedarray/forEachCallCount + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 518 + i32.const 3 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=12 - local.get $7 - call $~lib/arraybuffer/ArrayBufferView#get:byteOffset - local.get $2 - i32.load offset=8 + i32.const 12 i32.add - call $~lib/arraybuffer/ArrayBuffer#slice - local.tee $5 - i32.store offset=16 - i32.const 0 - drop - i32.const 0 - drop - i32.const 0 - drop - i32.const 0 - drop - i32.const 0 - drop - i32.const 0 - drop - i32.const 0 - drop - i32.const 0 - drop - i32.const 1 - drop + global.set $~lib/memory/__stack_pointer + ) + (func $std/typedarray/testArrayForEach<~lib/typedarray/Uint8Array,u8>~anonymous|0 (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) global.get $~lib/memory/__stack_pointer - local.get $5 - local.set $7 + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - i32.const 0 - i32.const 1 - global.set $~argumentsLength - i32.const 0 - call $~lib/typedarray/Uint64Array.wrap@varargs - local.tee $6 - i32.store offset=20 i32.const 0 + i32.store + global.get $std/typedarray/forEachValues + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store + local.get $4 + local.get $1 + call $~lib/array/Array#__get local.set $3 - loop $for-loop|1 - local.get $3 - local.get $1 - i32.lt_s - local.set $4 - local.get $4 - if - local.get $2 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - local.get $3 - call $~lib/typedarray/Uint64Array#__get - local.get $6 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - local.get $3 - call $~lib/typedarray/Uint64Array#__get - i64.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 707 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $3 - i32.const 1 - i32.add - local.set $3 - br $for-loop|1 - end + local.get $0 + i32.const 255 + i32.and + local.get $3 + i32.const 255 + i32.and + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 513 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $1 + global.get $std/typedarray/forEachCallCount + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 514 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $std/typedarray/forEachSelf + local.get $2 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 515 + 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/Float32Array.wrap (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) + (func $std/typedarray/testArrayForEach<~lib/typedarray/Uint8Array,u8> + (local $0 i32) + (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -55517,127 +40553,154 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 + i32.const 0 + global.set $std/typedarray/forEachCallCount global.get $~lib/memory/__stack_pointer - local.get $0 - local.tee $5 + i32.const 0 + i32.const 3 + call $~lib/typedarray/Uint8Array#constructor + local.tee $0 i32.store + local.get $0 + global.set $std/typedarray/forEachSelf + local.get $0 + i32.const 0 + global.get $std/typedarray/forEachValues + local.set $1 + global.get $~lib/memory/__stack_pointer local.get $1 - local.set $4 - local.get $2 - local.set $3 - local.get $5 - local.set $9 + i32.store offset=4 + local.get $1 + i32.const 0 + call $~lib/array/Array#__get + i32.const 255 + i32.and + call $~lib/typedarray/Uint8Array#__set + local.get $0 + i32.const 1 + global.get $std/typedarray/forEachValues + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $1 i32.store offset=4 - local.get $9 - call $~lib/arraybuffer/ArrayBuffer#get:byteLength - local.set $7 + local.get $1 + i32.const 1 + call $~lib/array/Array#__get + i32.const 255 + i32.and + call $~lib/typedarray/Uint8Array#__set + local.get $0 + i32.const 2 + global.get $std/typedarray/forEachValues + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 2 + call $~lib/array/Array#__get + i32.const 255 + i32.and + call $~lib/typedarray/Uint8Array#__set + local.get $0 + i32.const 5504 + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $1 + call $~lib/typedarray/Uint8Array#forEach + global.get $std/typedarray/forEachCallCount + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 518 + 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/testArrayForEach<~lib/typedarray/Uint8ClampedArray,u8>~anonymous|0 (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 + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $std/typedarray/forEachValues + local.set $4 + global.get $~lib/memory/__stack_pointer local.get $4 - local.get $7 - i32.gt_u + i32.store local.get $4 - i32.const 3 + local.get $1 + call $~lib/array/Array#__get + local.set $3 + local.get $0 + i32.const 255 i32.and - i32.or + local.get $3 + i32.const 255 + i32.and + i32.eq + i32.eqz if - i32.const 336 - i32.const 608 - i32.const 1826 + i32.const 0 + i32.const 544 + i32.const 513 i32.const 5 call $~lib/builtins/abort unreachable end - local.get $3 - i32.const 0 - i32.lt_s + local.get $1 + global.get $std/typedarray/forEachCallCount + i32.eq + i32.eqz if - local.get $3 - i32.const -1 - i32.eq - if - local.get $7 - i32.const 3 - i32.and - if - i32.const 32 - i32.const 608 - i32.const 1831 - i32.const 9 - call $~lib/builtins/abort - unreachable - end - local.get $7 - local.get $4 - i32.sub - local.set $6 - else - i32.const 32 - i32.const 608 - i32.const 1835 - i32.const 7 - call $~lib/builtins/abort - unreachable - end - else - local.get $3 - i32.const 2 - i32.shl - local.set $6 - local.get $4 - local.get $6 - i32.add - local.get $7 - i32.gt_s - if - i32.const 32 - i32.const 608 - i32.const 1840 - i32.const 7 - call $~lib/builtins/abort - unreachable - end + i32.const 0 + i32.const 544 + i32.const 514 + i32.const 5 + call $~lib/builtins/abort + unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.const 12 - call $~lib/rt/itcms/__new - local.tee $8 - i32.store offset=8 - local.get $8 - local.get $5 - i32.store - local.get $8 - local.get $5 - i32.const 0 - call $~lib/rt/itcms/__link - local.get $8 - local.get $6 - i32.store offset=8 - local.get $8 - local.get $5 - local.get $4 + global.get $std/typedarray/forEachSelf + local.get $2 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 515 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $std/typedarray/forEachCallCount + i32.const 1 i32.add - i32.store offset=4 - local.get $8 - local.set $9 + 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 $9 ) - (func $std/typedarray/testArrayWrap<~lib/typedarray/Float32Array,f32> + (func $std/typedarray/testArrayForEach<~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 24 + i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check @@ -55645,311 +40708,160 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=8 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=16 + i32.const 0 + i32.store offset=8 + i32.const 0 + global.set $std/typedarray/forEachCallCount global.get $~lib/memory/__stack_pointer - global.get $std/typedarray/testArrayWrapValues + i32.const 0 + i32.const 3 + call $~lib/typedarray/Uint8ClampedArray#constructor local.tee $0 i32.store local.get $0 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - call $~lib/array/Array#get:length + global.set $std/typedarray/forEachSelf + local.get $0 + i32.const 0 + global.get $std/typedarray/forEachValues local.set $1 global.get $~lib/memory/__stack_pointer - i32.const 0 local.get $1 - call $~lib/typedarray/Float32Array#constructor - local.tee $2 - i32.store offset=8 - i32.const 0 - local.set $3 - loop $for-loop|0 - local.get $3 - local.get $1 - i32.lt_s - local.set $4 - local.get $4 - if - local.get $2 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - local.get $3 - local.get $0 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=12 - local.get $7 - local.get $3 - call $~lib/array/Array#__get - f32.convert_i32_s - call $~lib/typedarray/Float32Array#__set - local.get $3 - i32.const 1 - i32.add - local.set $3 - br $for-loop|0 - end - end - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.load - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 i32.store offset=4 - local.get $7 - local.get $2 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=12 - local.get $7 - call $~lib/arraybuffer/ArrayBufferView#get:byteOffset - local.get $2 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=12 - local.get $7 - call $~lib/arraybuffer/ArrayBufferView#get:byteOffset - local.get $2 - i32.load offset=8 - i32.add - call $~lib/arraybuffer/ArrayBuffer#slice - local.tee $5 - i32.store offset=16 - i32.const 0 - drop - i32.const 0 - drop - i32.const 0 - drop - i32.const 0 - drop - i32.const 0 - drop - i32.const 0 - drop - i32.const 0 - drop - i32.const 0 - drop + local.get $1 i32.const 0 - drop + call $~lib/array/Array#__get + i32.const 255 + i32.and + call $~lib/typedarray/Uint8ClampedArray#__set + local.get $0 i32.const 1 - drop - global.get $~lib/memory/__stack_pointer - local.get $5 - local.set $7 + global.get $std/typedarray/forEachValues + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $1 i32.store offset=4 - local.get $7 - i32.const 0 + local.get $1 i32.const 1 - global.set $~argumentsLength - i32.const 0 - call $~lib/typedarray/Float32Array.wrap@varargs - local.tee $6 - i32.store offset=20 - i32.const 0 - local.set $3 - loop $for-loop|1 - local.get $3 - local.get $1 - i32.lt_s - local.set $4 - local.get $4 - if - local.get $2 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - local.get $3 - call $~lib/typedarray/Float32Array#__get - local.get $6 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - local.get $3 - call $~lib/typedarray/Float32Array#__get - f32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 707 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $3 - i32.const 1 - i32.add - local.set $3 - br $for-loop|1 - end + call $~lib/array/Array#__get + i32.const 255 + i32.and + call $~lib/typedarray/Uint8ClampedArray#__set + local.get $0 + i32.const 2 + global.get $std/typedarray/forEachValues + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 2 + call $~lib/array/Array#__get + i32.const 255 + i32.and + call $~lib/typedarray/Uint8ClampedArray#__set + local.get $0 + i32.const 5536 + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $1 + call $~lib/typedarray/Uint8ClampedArray#forEach + global.get $std/typedarray/forEachCallCount + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 518 + 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/Float64Array.wrap (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArrayForEach<~lib/typedarray/Int16Array,i16>~anonymous|0 (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) 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 - global.get $~lib/memory/__stack_pointer - local.get $0 - local.tee $5 i32.store - local.get $1 + global.get $std/typedarray/forEachValues local.set $4 - local.get $2 - local.set $3 - local.get $5 - local.set $9 global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - call $~lib/arraybuffer/ArrayBuffer#get:byteLength - local.set $7 local.get $4 - local.get $7 - i32.gt_u + i32.store local.get $4 - i32.const 7 - i32.and - i32.or + local.get $1 + call $~lib/array/Array#__get + local.set $3 + local.get $0 + i32.const 16 + i32.shl + i32.const 16 + i32.shr_s + local.get $3 + i32.const 16 + i32.shl + i32.const 16 + i32.shr_s + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 513 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $1 + global.get $std/typedarray/forEachCallCount + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 514 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $std/typedarray/forEachSelf + local.get $2 + i32.eq + i32.eqz if - i32.const 336 - i32.const 608 - i32.const 1826 + i32.const 0 + i32.const 544 + i32.const 515 i32.const 5 call $~lib/builtins/abort unreachable end - local.get $3 - i32.const 0 - i32.lt_s - if - local.get $3 - i32.const -1 - i32.eq - if - local.get $7 - i32.const 7 - i32.and - if - i32.const 32 - i32.const 608 - i32.const 1831 - i32.const 9 - call $~lib/builtins/abort - unreachable - end - local.get $7 - local.get $4 - i32.sub - local.set $6 - else - i32.const 32 - i32.const 608 - i32.const 1835 - i32.const 7 - call $~lib/builtins/abort - unreachable - end - else - local.get $3 - i32.const 3 - i32.shl - local.set $6 - local.get $4 - local.get $6 - i32.add - local.get $7 - i32.gt_s - if - i32.const 32 - i32.const 608 - i32.const 1840 - i32.const 7 - call $~lib/builtins/abort - unreachable - end - end - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.const 13 - call $~lib/rt/itcms/__new - local.tee $8 - i32.store offset=8 - local.get $8 - local.get $5 - i32.store - local.get $8 - local.get $5 - i32.const 0 - call $~lib/rt/itcms/__link - local.get $8 - local.get $6 - i32.store offset=8 - local.get $8 - local.get $5 - local.get $4 + global.get $std/typedarray/forEachCallCount + i32.const 1 i32.add - i32.store offset=4 - local.get $8 - local.set $9 + 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 $9 ) - (func $std/typedarray/testArrayWrap<~lib/typedarray/Float64Array,f64> + (func $std/typedarray/testArrayForEach<~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) global.get $~lib/memory/__stack_pointer - i32.const 24 + i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check @@ -55957,340 +40869,248 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=8 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=16 + i32.const 0 + i32.store offset=8 + i32.const 0 + global.set $std/typedarray/forEachCallCount global.get $~lib/memory/__stack_pointer - global.get $std/typedarray/testArrayWrapValues + i32.const 0 + i32.const 3 + call $~lib/typedarray/Int16Array#constructor local.tee $0 i32.store local.get $0 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - call $~lib/array/Array#get:length + global.set $std/typedarray/forEachSelf + local.get $0 + i32.const 0 + global.get $std/typedarray/forEachValues local.set $1 global.get $~lib/memory/__stack_pointer - i32.const 0 local.get $1 - call $~lib/typedarray/Float64Array#constructor - local.tee $2 - i32.store offset=8 - i32.const 0 - local.set $3 - loop $for-loop|0 - local.get $3 - local.get $1 - i32.lt_s - local.set $4 - local.get $4 - if - local.get $2 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - local.get $3 - local.get $0 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=12 - local.get $7 - local.get $3 - call $~lib/array/Array#__get - f64.convert_i32_s - call $~lib/typedarray/Float64Array#__set - local.get $3 - i32.const 1 - i32.add - local.set $3 - br $for-loop|0 - end - end - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.load - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 i32.store offset=4 - local.get $7 - local.get $2 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=12 - local.get $7 - call $~lib/arraybuffer/ArrayBufferView#get:byteOffset - local.get $2 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=12 - local.get $7 - call $~lib/arraybuffer/ArrayBufferView#get:byteOffset - local.get $2 - i32.load offset=8 - i32.add - call $~lib/arraybuffer/ArrayBuffer#slice - local.tee $5 - i32.store offset=16 - i32.const 0 - drop - i32.const 0 - drop - i32.const 0 - drop - i32.const 0 - drop - i32.const 0 - drop - i32.const 0 - drop - i32.const 0 - drop - i32.const 0 - drop - i32.const 0 - drop + local.get $1 i32.const 0 - drop + call $~lib/array/Array#__get + i32.const 16 + i32.shl + i32.const 16 + i32.shr_s + call $~lib/typedarray/Int16Array#__set + local.get $0 i32.const 1 - drop - global.get $~lib/memory/__stack_pointer - local.get $5 - local.set $7 + global.get $std/typedarray/forEachValues + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $1 i32.store offset=4 - local.get $7 - i32.const 0 + local.get $1 i32.const 1 - global.set $~argumentsLength - i32.const 0 - call $~lib/typedarray/Float64Array.wrap@varargs - local.tee $6 - i32.store offset=20 - i32.const 0 - local.set $3 - loop $for-loop|1 - local.get $3 - local.get $1 - i32.lt_s - local.set $4 - local.get $4 - if - local.get $2 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - local.get $3 - call $~lib/typedarray/Float64Array#__get - local.get $6 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - local.get $3 - call $~lib/typedarray/Float64Array#__get - f64.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 707 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $3 - i32.const 1 - i32.add - local.set $3 - br $for-loop|1 - end + call $~lib/array/Array#__get + i32.const 16 + i32.shl + i32.const 16 + i32.shr_s + call $~lib/typedarray/Int16Array#__set + local.get $0 + i32.const 2 + global.get $std/typedarray/forEachValues + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 2 + call $~lib/array/Array#__get + i32.const 16 + i32.shl + i32.const 16 + i32.shr_s + call $~lib/typedarray/Int16Array#__set + local.get $0 + i32.const 5568 + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $1 + call $~lib/typedarray/Int16Array#forEach + global.get $std/typedarray/forEachCallCount + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 518 + 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/Int8Array#set<~lib/array/Array> (param $0 i32) (param $1 i32) (param $2 i32) + (func $std/typedarray/testArrayForEach<~lib/typedarray/Uint16Array,u16>~anonymous|0 (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.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 - global.get $~lib/memory/__stack_pointer - local.get $0 - local.tee $5 i32.store + global.get $std/typedarray/forEachValues + local.set $4 global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store + local.get $4 local.get $1 - local.tee $4 - i32.store offset=4 - local.get $2 + call $~lib/array/Array#__get local.set $3 - i32.const 0 - drop + local.get $0 + i32.const 65535 + i32.and local.get $3 - i32.const 0 - i32.lt_s + i32.const 65535 + i32.and + i32.eq + i32.eqz if - i32.const 336 - i32.const 608 - i32.const 1864 - i32.const 19 + i32.const 0 + i32.const 544 + i32.const 513 + i32.const 5 call $~lib/builtins/abort unreachable end - local.get $4 - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=8 - local.get $11 - call $~lib/array/Array#get:length - local.get $3 - i32.add - local.get $5 - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=8 - local.get $11 - call $~lib/typedarray/Int8Array#get:length - i32.gt_s + local.get $1 + global.get $std/typedarray/forEachCallCount + i32.eq + i32.eqz if - i32.const 336 - i32.const 608 - i32.const 1865 - i32.const 47 + i32.const 0 + i32.const 544 + i32.const 514 + i32.const 5 call $~lib/builtins/abort unreachable end - i32.const 1 - i32.const 1 + global.get $std/typedarray/forEachSelf + local.get $2 i32.eq - if (result i32) - i32.const 0 - i32.const 2 - i32.eq - else - i32.const 0 - end - if (result i32) - i32.const 0 - if (result i32) - i32.const 1 - else - i32.const 0 - end - i32.eqz - else + i32.eqz + if i32.const 0 + i32.const 544 + i32.const 515 + i32.const 5 + call $~lib/builtins/abort + unreachable end - drop - local.get $5 - i32.load offset=4 - local.get $3 - i32.const 0 - i32.shl + global.get $std/typedarray/forEachCallCount + i32.const 1 i32.add - local.set $6 - local.get $4 - i32.load offset=4 - local.set $7 - local.get $4 - local.set $11 + global.set $std/typedarray/forEachCallCount global.get $~lib/memory/__stack_pointer - local.get $11 + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $std/typedarray/testArrayForEach<~lib/typedarray/Uint16Array,u16> + (local $0 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 $11 - call $~lib/array/Array#get:length - local.set $8 i32.const 0 - local.set $9 - loop $for-loop|0 - local.get $9 - local.get $8 - i32.lt_s - local.set $10 - local.get $10 - if - i32.const 0 - drop - i32.const 0 - if (result i32) - i32.const 0 - i32.eqz - else - i32.const 0 - end - drop - i32.const 0 - if (result i32) - i32.const 0 - i32.eqz - else - i32.const 0 - end - drop - local.get $6 - local.get $9 - i32.const 0 - i32.shl - i32.add - local.get $7 - local.get $9 - i32.const 2 - i32.shl - i32.add - i32.load - i32.store8 - local.get $9 - i32.const 1 - i32.add - local.set $9 - br $for-loop|0 - end + global.set $std/typedarray/forEachCallCount + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 3 + call $~lib/typedarray/Uint16Array#constructor + local.tee $0 + i32.store + local.get $0 + global.set $std/typedarray/forEachSelf + local.get $0 + i32.const 0 + global.get $std/typedarray/forEachValues + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + call $~lib/array/Array#__get + i32.const 65535 + i32.and + call $~lib/typedarray/Uint16Array#__set + local.get $0 + i32.const 1 + global.get $std/typedarray/forEachValues + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 1 + call $~lib/array/Array#__get + i32.const 65535 + i32.and + call $~lib/typedarray/Uint16Array#__set + local.get $0 + i32.const 2 + global.get $std/typedarray/forEachValues + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 2 + call $~lib/array/Array#__get + i32.const 65535 + i32.and + call $~lib/typedarray/Uint16Array#__set + local.get $0 + i32.const 5600 + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $1 + call $~lib/typedarray/Uint16Array#forEach + global.get $std/typedarray/forEachCallCount + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 518 + 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/valuesEqual<~lib/typedarray/Int8Array> (param $0 i32) (param $1 i32) - (local $2 i32) + (func $std/typedarray/testArrayForEach<~lib/typedarray/Int32Array,i32>~anonymous|0 (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 @@ -56299,113 +41119,63 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - local.get $0 - local.set $7 + global.get $std/typedarray/forEachValues + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $4 i32.store - local.get $7 - call $~lib/typedarray/Int8Array#get:length - local.set $2 - local.get $2 + local.get $4 local.get $1 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store - local.get $7 - call $~lib/array/Array#get:length + call $~lib/array/Array#__get + local.set $3 + local.get $0 + local.get $3 i32.eq i32.eqz if i32.const 0 i32.const 544 - i32.const 735 - i32.const 3 + i32.const 513 + i32.const 5 call $~lib/builtins/abort unreachable end - i32.const 0 - local.set $3 - loop $for-loop|0 - local.get $3 - local.get $2 - i32.lt_s - local.set $4 - local.get $4 - if - local.get $0 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store - local.get $7 - local.get $3 - call $~lib/typedarray/Int8Array#__uget - local.set $5 - local.get $1 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store - local.get $7 - local.get $3 - call $~lib/array/Array#__uget - local.set $6 - local.get $5 - local.get $6 - i32.ne - if - i32.const 9616 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store - local.get $7 - i32.const 3 - local.get $3 - f64.convert_i32_s - local.get $5 - f64.convert_i32_s - local.get $6 - f64.convert_i32_s - f64.const 0 - f64.const 0 - call $~lib/builtins/trace - i32.const 0 - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 741 - i32.const 7 - call $~lib/builtins/abort - unreachable - end - end - local.get $3 - i32.const 1 - i32.add - local.set $3 - br $for-loop|0 - end + local.get $1 + global.get $std/typedarray/forEachCallCount + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 514 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $std/typedarray/forEachSelf + local.get $2 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 515 + 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/Int8Array#set<~lib/array/Array> (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 f32) - (local $12 i32) + (func $std/typedarray/testArrayForEach<~lib/typedarray/Int32Array,i32> + (local $0 i32) + (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -56417,320 +41187,142 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 + i32.const 0 + global.set $std/typedarray/forEachCallCount global.get $~lib/memory/__stack_pointer - local.get $0 - local.tee $5 + i32.const 0 + i32.const 3 + call $~lib/typedarray/Int32Array#constructor + local.tee $0 i32.store + local.get $0 + global.set $std/typedarray/forEachSelf + local.get $0 + i32.const 0 + global.get $std/typedarray/forEachValues + local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - local.tee $4 i32.store offset=4 - local.get $2 - local.set $3 - i32.const 0 - drop - local.get $3 + local.get $1 i32.const 0 - i32.lt_s - if - i32.const 336 - i32.const 608 - i32.const 1864 - i32.const 19 - call $~lib/builtins/abort - unreachable - end - local.get $4 - local.set $12 + call $~lib/array/Array#__get + call $~lib/typedarray/Int32Array#__set + local.get $0 + i32.const 1 + global.get $std/typedarray/forEachValues + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/array/Array#get:length - local.get $3 - i32.add - local.get $5 - local.set $12 + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 1 + call $~lib/array/Array#__get + call $~lib/typedarray/Int32Array#__set + local.get $0 + i32.const 2 + global.get $std/typedarray/forEachValues + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 2 + call $~lib/array/Array#__get + call $~lib/typedarray/Int32Array#__set + local.get $0 + i32.const 5632 + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 i32.store offset=8 - local.get $12 - call $~lib/typedarray/Int8Array#get:length - i32.gt_s + local.get $1 + call $~lib/typedarray/Int32Array#forEach + global.get $std/typedarray/forEachCallCount + i32.const 3 + i32.eq + i32.eqz if - i32.const 336 - i32.const 608 - i32.const 1865 - i32.const 47 + i32.const 0 + i32.const 544 + i32.const 518 + i32.const 3 call $~lib/builtins/abort unreachable end - i32.const 1 - i32.const 0 - i32.eq - if (result i32) - i32.const 0 - i32.const 2 - i32.eq - else - i32.const 0 - end - if (result i32) - i32.const 0 - if (result i32) - i32.const 0 - else - i32.const 0 - end - i32.eqz - else - i32.const 0 - end - drop - local.get $5 - i32.load offset=4 - local.get $3 - i32.const 0 - i32.shl - i32.add - local.set $6 - local.get $4 - i32.load offset=4 - local.set $7 - local.get $4 - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/array/Array#get:length - local.set $8 - i32.const 0 - local.set $9 - loop $for-loop|0 - local.get $9 - local.get $8 - i32.lt_s - local.set $10 - local.get $10 - if - i32.const 0 - drop - i32.const 1 - if (result i32) - i32.const 0 - i32.eqz - else - i32.const 0 - end - drop - local.get $7 - local.get $9 - i32.const 2 - i32.shl - i32.add - f32.load - local.set $11 - local.get $6 - local.get $9 - i32.const 0 - i32.shl - i32.add - local.get $11 - local.get $11 - f32.sub - f32.const 0 - f32.eq - if (result i32) - local.get $11 - i32.trunc_f32_s - else - i32.const 0 - end - i32.store8 - local.get $9 - i32.const 1 - i32.add - local.set $9 - 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/Int64Array> (param $0 i32) (param $1 i32) (param $2 i32) + (func $std/typedarray/testArrayForEach<~lib/typedarray/Uint32Array,u32>~anonymous|0 (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.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 - global.get $~lib/memory/__stack_pointer - local.get $0 - local.tee $5 i32.store + global.get $std/typedarray/forEachValues + local.set $4 global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store + local.get $4 local.get $1 - local.tee $4 - i32.store offset=4 - local.get $2 + call $~lib/array/Array#__get local.set $3 - i32.const 0 - drop + local.get $0 local.get $3 - i32.const 0 - i32.lt_s + i32.eq + i32.eqz if - i32.const 336 - i32.const 608 - i32.const 1864 - i32.const 19 + i32.const 0 + i32.const 544 + i32.const 513 + i32.const 5 call $~lib/builtins/abort unreachable end - local.get $4 - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=8 - local.get $11 - call $~lib/typedarray/Int64Array#get:length - local.get $3 - i32.add - local.get $5 - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=8 - local.get $11 - call $~lib/typedarray/Int8Array#get:length - i32.gt_s + local.get $1 + global.get $std/typedarray/forEachCallCount + i32.eq + i32.eqz if - i32.const 336 - i32.const 608 - i32.const 1865 - i32.const 47 + i32.const 0 + i32.const 544 + i32.const 514 + i32.const 5 call $~lib/builtins/abort unreachable end - i32.const 1 - i32.const 1 - i32.eq - if (result i32) - i32.const 0 - i32.const 3 - i32.eq - else - i32.const 0 - end - if (result i32) - i32.const 0 - if (result i32) - i32.const 1 - else - i32.const 0 - end - i32.eqz - else - i32.const 0 - end - drop - local.get $5 - i32.load offset=4 - local.get $3 - i32.const 0 - i32.shl - i32.add - local.set $6 - local.get $4 - i32.load offset=4 - local.set $7 - local.get $4 - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=8 - local.get $11 - call $~lib/typedarray/Int64Array#get:length - local.set $8 - i32.const 0 - local.set $9 - loop $for-loop|0 - local.get $9 - local.get $8 - i32.lt_s - local.set $10 - local.get $10 - if - i32.const 0 - drop - i32.const 0 - if (result i32) - i32.const 0 - i32.eqz - else - i32.const 0 - end - drop - i32.const 0 - if (result i32) - i32.const 0 - i32.eqz - else - i32.const 0 - end - drop - local.get $6 - local.get $9 - i32.const 0 - i32.shl - i32.add - local.get $7 - local.get $9 - i32.const 3 - i32.shl - i32.add - i64.load - i64.store8 - local.get $9 - i32.const 1 - i32.add - local.set $9 - br $for-loop|0 - end + global.get $std/typedarray/forEachSelf + local.get $2 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 515 + 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 12 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/typedarray/Int8Array#set<~lib/array/Array> (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 f64) - (local $12 i32) + (func $std/typedarray/testArrayForEach<~lib/typedarray/Uint32Array,u32> + (local $0 i32) + (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -56742,261 +41334,143 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 + i32.const 0 + global.set $std/typedarray/forEachCallCount global.get $~lib/memory/__stack_pointer - local.get $0 - local.tee $5 + i32.const 0 + i32.const 3 + call $~lib/typedarray/Uint32Array#constructor + local.tee $0 i32.store + local.get $0 + global.set $std/typedarray/forEachSelf + local.get $0 + i32.const 0 + global.get $std/typedarray/forEachValues + local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - local.tee $4 i32.store offset=4 - local.get $2 - local.set $3 - i32.const 0 - drop - local.get $3 + local.get $1 i32.const 0 - i32.lt_s - if - i32.const 336 - i32.const 608 - i32.const 1864 - i32.const 19 - call $~lib/builtins/abort - unreachable - end - local.get $4 - local.set $12 + call $~lib/array/Array#__get + call $~lib/typedarray/Uint32Array#__set + local.get $0 + i32.const 1 + global.get $std/typedarray/forEachValues + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/array/Array#get:length - local.get $3 - i32.add - local.get $5 - local.set $12 + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 1 + call $~lib/array/Array#__get + call $~lib/typedarray/Uint32Array#__set + local.get $0 + i32.const 2 + global.get $std/typedarray/forEachValues + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 2 + call $~lib/array/Array#__get + call $~lib/typedarray/Uint32Array#__set + local.get $0 + i32.const 5664 + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 i32.store offset=8 - local.get $12 - call $~lib/typedarray/Int8Array#get:length - i32.gt_s - if - i32.const 336 - i32.const 608 - i32.const 1865 - i32.const 47 - call $~lib/builtins/abort - unreachable - end - i32.const 1 - i32.const 0 + local.get $1 + call $~lib/typedarray/Uint32Array#forEach + global.get $std/typedarray/forEachCallCount + i32.const 3 i32.eq - if (result i32) + i32.eqz + if i32.const 0 + i32.const 544 + i32.const 518 i32.const 3 - i32.eq - else - i32.const 0 - end - if (result i32) - i32.const 0 - if (result i32) - i32.const 0 - else - i32.const 0 - end - i32.eqz - else - i32.const 0 - end - drop - local.get $5 - i32.load offset=4 - local.get $3 - i32.const 0 - i32.shl - i32.add - local.set $6 - local.get $4 - i32.load offset=4 - local.set $7 - local.get $4 - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/array/Array#get:length - local.set $8 - i32.const 0 - local.set $9 - loop $for-loop|0 - local.get $9 - local.get $8 - i32.lt_s - local.set $10 - local.get $10 - if - i32.const 0 - drop - i32.const 1 - if (result i32) - i32.const 0 - i32.eqz - else - i32.const 0 - end - drop - local.get $7 - local.get $9 - i32.const 3 - i32.shl - i32.add - f64.load - local.set $11 - local.get $6 - local.get $9 - i32.const 0 - i32.shl - i32.add - local.get $11 - local.get $11 - f64.sub - f64.const 0 - f64.eq - if (result i32) - local.get $11 - i32.trunc_f64_s - else - i32.const 0 - end - i32.store8 - local.get $9 - i32.const 1 - i32.add - local.set $9 - br $for-loop|0 - end + 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/Int8Array#set<~lib/typedarray/Uint8Array> (param $0 i32) (param $1 i32) (param $2 i32) + (func $std/typedarray/testArrayForEach<~lib/typedarray/Int64Array,i64>~anonymous|0 (param $0 i64) (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.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 - global.get $~lib/memory/__stack_pointer - local.get $0 - local.tee $5 i32.store + global.get $std/typedarray/forEachValues + local.set $4 global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store + local.get $4 local.get $1 - local.tee $4 - i32.store offset=4 - local.get $2 + call $~lib/array/Array#__get local.set $3 - i32.const 0 - drop + local.get $0 local.get $3 - i32.const 0 - i32.lt_s + i64.extend_i32_s + i64.eq + i32.eqz if - i32.const 336 - i32.const 608 - i32.const 1864 - i32.const 19 + i32.const 0 + i32.const 544 + i32.const 513 + i32.const 5 call $~lib/builtins/abort unreachable end - local.get $4 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=8 - local.get $6 - call $~lib/typedarray/Uint8Array#get:length - local.get $3 - i32.add - local.get $5 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=8 - local.get $6 - call $~lib/typedarray/Int8Array#get:length - i32.gt_s + local.get $1 + global.get $std/typedarray/forEachCallCount + i32.eq + i32.eqz if - i32.const 336 - i32.const 608 - i32.const 1865 - i32.const 47 + i32.const 0 + i32.const 544 + i32.const 514 + i32.const 5 call $~lib/builtins/abort unreachable end - i32.const 1 - i32.const 1 + global.get $std/typedarray/forEachSelf + local.get $2 i32.eq - if (result i32) - i32.const 0 - i32.const 0 - i32.eq - else - i32.const 0 - end - if (result i32) - i32.const 0 - if (result i32) - i32.const 0 - else - i32.const 0 - end - i32.eqz - else + i32.eqz + if i32.const 0 + i32.const 544 + i32.const 515 + i32.const 5 + call $~lib/builtins/abort + unreachable end - drop - local.get $5 - i32.load offset=4 - local.get $3 - i32.const 0 - i32.shl + global.get $std/typedarray/forEachCallCount + i32.const 1 i32.add - local.get $4 - i32.load offset=4 - local.get $4 - i32.load offset=8 - call $~lib/memory/memory.copy + 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 ) - (func $~lib/typedarray/Int8Array#set<~lib/typedarray/Int16Array> (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) + (func $std/typedarray/testArrayForEach<~lib/typedarray/Int64Array,i64> + (local $0 i32) + (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -57008,257 +41482,148 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 + i32.const 0 + global.set $std/typedarray/forEachCallCount global.get $~lib/memory/__stack_pointer - local.get $0 - local.tee $5 + i32.const 0 + i32.const 3 + call $~lib/typedarray/Int64Array#constructor + local.tee $0 i32.store + local.get $0 + global.set $std/typedarray/forEachSelf + local.get $0 + i32.const 0 + global.get $std/typedarray/forEachValues + local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - local.tee $4 i32.store offset=4 - local.get $2 - local.set $3 - i32.const 0 - drop - local.get $3 + local.get $1 i32.const 0 - i32.lt_s - if - i32.const 336 - i32.const 608 - i32.const 1864 - i32.const 19 - call $~lib/builtins/abort - unreachable - end - local.get $4 - local.set $11 + call $~lib/array/Array#__get + i64.extend_i32_s + call $~lib/typedarray/Int64Array#__set + local.get $0 + i32.const 1 + global.get $std/typedarray/forEachValues + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=8 - local.get $11 - call $~lib/typedarray/Int16Array#get:length - local.get $3 - i32.add - local.get $5 - local.set $11 + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 1 + call $~lib/array/Array#__get + i64.extend_i32_s + call $~lib/typedarray/Int64Array#__set + local.get $0 + i32.const 2 + global.get $std/typedarray/forEachValues + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 2 + call $~lib/array/Array#__get + i64.extend_i32_s + call $~lib/typedarray/Int64Array#__set + local.get $0 + i32.const 5696 + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 i32.store offset=8 - local.get $11 - call $~lib/typedarray/Int8Array#get:length - i32.gt_s + local.get $1 + call $~lib/typedarray/Int64Array#forEach + global.get $std/typedarray/forEachCallCount + i32.const 3 + i32.eq + i32.eqz if - i32.const 336 - i32.const 608 - i32.const 1865 - i32.const 47 + i32.const 0 + i32.const 544 + i32.const 518 + i32.const 3 call $~lib/builtins/abort unreachable end - i32.const 1 - i32.const 1 - i32.eq - if (result i32) - i32.const 0 - i32.const 1 - i32.eq - else - i32.const 0 - end - if (result i32) - i32.const 0 - if (result i32) - i32.const 1 - else - i32.const 0 - end - i32.eqz - else - i32.const 0 - end - drop - local.get $5 - i32.load offset=4 - local.get $3 - i32.const 0 - i32.shl - i32.add - local.set $6 - local.get $4 - i32.load offset=4 - local.set $7 - local.get $4 - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=8 - local.get $11 - call $~lib/typedarray/Int16Array#get:length - local.set $8 - i32.const 0 - local.set $9 - loop $for-loop|0 - local.get $9 - local.get $8 - i32.lt_s - local.set $10 - local.get $10 - if - i32.const 0 - drop - i32.const 0 - if (result i32) - i32.const 0 - i32.eqz - else - i32.const 0 - end - drop - i32.const 0 - if (result i32) - i32.const 0 - i32.eqz - else - i32.const 0 - end - drop - local.get $6 - local.get $9 - i32.const 0 - i32.shl - i32.add - local.get $7 - local.get $9 - i32.const 1 - i32.shl - i32.add - i32.load16_s - i32.store8 - local.get $9 - i32.const 1 - i32.add - local.set $9 - 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) (param $1 i32) (param $2 i32) + (func $std/typedarray/testArrayForEach<~lib/typedarray/Uint64Array,u64>~anonymous|0 (param $0 i64) (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.const 4 i32.sub global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store + call $~stack_check global.get $~lib/memory/__stack_pointer i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - local.tee $5 i32.store + global.get $std/typedarray/forEachValues + local.set $4 global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store + local.get $4 local.get $1 - local.tee $4 - i32.store offset=4 - local.get $2 + call $~lib/array/Array#__get local.set $3 - i32.const 0 - drop + local.get $0 local.get $3 - i32.const 0 - i32.lt_s + i64.extend_i32_s + i64.eq + i32.eqz if - i32.const 336 - i32.const 608 - i32.const 1864 - i32.const 19 + i32.const 0 + i32.const 544 + i32.const 513 + i32.const 5 call $~lib/builtins/abort unreachable end - local.get $4 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=8 - local.get $6 - call $~lib/array/Array#get:length - local.get $3 - i32.add - local.get $5 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=8 - local.get $6 - call $~lib/typedarray/Int8Array#get:length - i32.gt_s + local.get $1 + global.get $std/typedarray/forEachCallCount + i32.eq + i32.eqz if - i32.const 336 - i32.const 608 - i32.const 1865 - i32.const 47 + i32.const 0 + i32.const 544 + i32.const 514 + i32.const 5 call $~lib/builtins/abort unreachable end - i32.const 1 - i32.const 1 + global.get $std/typedarray/forEachSelf + local.get $2 i32.eq - if (result i32) - i32.const 0 - i32.const 0 - i32.eq - else - i32.const 0 - end - if (result i32) - i32.const 0 - if (result i32) - i32.const 1 - else - i32.const 0 - end - i32.eqz - else + i32.eqz + if i32.const 0 + i32.const 544 + i32.const 515 + i32.const 5 + call $~lib/builtins/abort + unreachable end - drop - local.get $5 - i32.load offset=4 - local.get $3 - i32.const 0 - i32.shl + global.get $std/typedarray/forEachCallCount + i32.const 1 i32.add - local.get $4 - i32.load offset=4 - local.get $4 - i32.load offset=8 - call $~lib/memory/memory.copy + 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 ) - (func $std/typedarray/testTypedArraySet<~lib/typedarray/Int8Array> + (func $std/typedarray/testArrayForEach<~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) global.get $~lib/memory/__stack_pointer - i32.const 24 + i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check @@ -57266,601 +41631,392 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=8 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=16 + i32.const 0 + i32.store offset=8 + i32.const 0 + global.set $std/typedarray/forEachCallCount global.get $~lib/memory/__stack_pointer i32.const 0 i32.const 3 - call $~lib/typedarray/Int64Array#constructor + call $~lib/typedarray/Uint64Array#constructor local.tee $0 i32.store local.get $0 - local.set $6 + global.set $std/typedarray/forEachSelf + local.get $0 + i32.const 0 + global.get $std/typedarray/forEachValues + local.set $1 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 - i64.const 7 - call $~lib/typedarray/Int64Array#__set + call $~lib/array/Array#__get + i64.extend_i32_s + call $~lib/typedarray/Uint64Array#__set local.get $0 - local.set $6 + i32.const 1 + global.get $std/typedarray/forEachValues + local.set $1 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 - i64.const 8 - call $~lib/typedarray/Int64Array#__set + call $~lib/array/Array#__get + i64.extend_i32_s + call $~lib/typedarray/Uint64Array#__set local.get $0 - local.set $6 - 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 $std/typedarray/forEachValues + local.set $1 global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 4 - call $~lib/typedarray/Uint8Array#constructor - local.tee $1 - i32.store offset=8 local.get $1 - local.set $6 - 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 local.get $1 - local.set $6 + i32.const 2 + call $~lib/array/Array#__get + i64.extend_i32_s + call $~lib/typedarray/Uint64Array#__set + local.get $0 + i32.const 5728 + local.set $1 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 local.get $1 - local.set $6 - 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 + i32.store offset=8 local.get $1 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 + call $~lib/typedarray/Uint64Array#forEach + global.get $std/typedarray/forEachCallCount i32.const 3 - i32.const 103 - call $~lib/typedarray/Uint8Array#__set + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 518 + i32.const 3 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 3 - call $~lib/typedarray/Int16Array#constructor - local.tee $2 - i32.store offset=12 - local.get $2 - local.set $6 + i32.const 12 + 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) + (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 - local.get $6 - i32.store offset=4 - local.get $6 i32.const 0 - i32.const 1000 - call $~lib/typedarray/Int16Array#__set - local.get $2 - local.set $6 + i32.store + global.get $std/typedarray/forEachValues + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 1 - i32.const 1001 - call $~lib/typedarray/Int16Array#__set + local.get $4 + i32.store + local.get $4 + local.get $1 + call $~lib/array/Array#__get + local.set $3 + local.get $0 + local.get $3 + f32.convert_i32_s + f32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 513 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $1 + global.get $std/typedarray/forEachCallCount + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 514 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $std/typedarray/forEachSelf local.get $2 - local.set $6 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 515 + 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 - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 2 - i32.const 1002 - call $~lib/typedarray/Int16Array#__set + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $std/typedarray/testArrayForEach<~lib/typedarray/Float32Array,f32> + (local $0 i32) + (local $1 i32) global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 10 - call $~lib/typedarray/Int8Array#constructor - local.tee $3 - i32.store offset=16 - local.get $3 - local.set $6 + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - global.get $std/typedarray/setSource1 - local.set $6 + i64.const 0 + i64.store global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=20 - local.get $6 i32.const 0 - call $~lib/typedarray/Int8Array#set<~lib/array/Array> - local.get $3 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 10 + i32.store offset=8 i32.const 0 - i32.const 15 - i32.const 9584 - call $~lib/rt/__newArray - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=20 - local.get $6 - call $std/typedarray/valuesEqual<~lib/typedarray/Int8Array> - local.get $3 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - global.get $std/typedarray/setSource2 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=20 - local.get $6 - i32.const 3 - call $~lib/typedarray/Int8Array#set<~lib/array/Array> - local.get $3 - local.set $6 + global.set $std/typedarray/forEachCallCount global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 10 i32.const 0 - i32.const 15 - i32.const 9664 - call $~lib/rt/__newArray - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=20 - local.get $6 - call $std/typedarray/valuesEqual<~lib/typedarray/Int8Array> - local.get $3 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 + i32.const 3 + call $~lib/typedarray/Float32Array#constructor + local.tee $0 + i32.store local.get $0 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=20 - local.get $6 - i32.const 6 - call $~lib/typedarray/Int8Array#set<~lib/typedarray/Int64Array> - local.get $3 - local.set $6 + global.set $std/typedarray/forEachSelf + local.get $0 + i32.const 0 + global.get $std/typedarray/forEachValues + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $1 i32.store offset=4 - local.get $6 - i32.const 10 + local.get $1 i32.const 0 - i32.const 15 - i32.const 9696 - call $~lib/rt/__newArray - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=20 - local.get $6 - call $std/typedarray/valuesEqual<~lib/typedarray/Int8Array> + call $~lib/array/Array#__get + f32.convert_i32_s + call $~lib/typedarray/Float32Array#__set + local.get $0 i32.const 1 - drop - local.get $3 - local.set $6 + global.get $std/typedarray/forEachValues + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $1 i32.store offset=4 - local.get $6 - global.get $std/typedarray/setSource3 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=20 - local.get $6 + local.get $1 + i32.const 1 + call $~lib/array/Array#__get + f32.convert_i32_s + call $~lib/typedarray/Float32Array#__set + local.get $0 i32.const 2 - call $~lib/typedarray/Int8Array#set<~lib/array/Array> - local.get $3 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 10 - i32.const 0 - i32.const 15 - i32.const 9728 - call $~lib/rt/__newArray - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=20 - local.get $6 - call $std/typedarray/valuesEqual<~lib/typedarray/Int8Array> - local.get $3 - local.set $6 + global.get $std/typedarray/forEachValues + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 local.get $1 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=20 - local.get $6 - i32.const 0 - call $~lib/typedarray/Int8Array#set<~lib/typedarray/Uint8Array> - local.get $3 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - local.get $2 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=20 - local.get $6 - i32.const 4 - call $~lib/typedarray/Int8Array#set<~lib/typedarray/Int16Array> - local.get $3 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - global.get $std/typedarray/setSource7 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=20 - local.get $6 - i32.const 7 - call $~lib/typedarray/Int8Array#set<~lib/array/Array> - i32.const 0 - drop - local.get $3 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 i32.store offset=4 - local.get $6 - i32.const 10 - i32.const 0 - i32.const 15 - i32.const 9760 - call $~lib/rt/__newArray - local.set $6 + local.get $1 + i32.const 2 + call $~lib/array/Array#__get + f32.convert_i32_s + call $~lib/typedarray/Float32Array#__set + local.get $0 + i32.const 5760 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=20 - local.get $6 - call $std/typedarray/valuesEqual<~lib/typedarray/Int8Array> + local.get $1 + i32.store offset=8 + local.get $1 + call $~lib/typedarray/Float32Array#forEach + global.get $std/typedarray/forEachCallCount + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 518 + 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/Uint8Array#set<~lib/array/Array> (param $0 i32) (param $1 i32) (param $2 i32) + (func $std/typedarray/testArrayForEach<~lib/typedarray/Float64Array,f64>~anonymous|0 (param $0 f64) (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.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 - global.get $~lib/memory/__stack_pointer - local.get $0 - local.tee $5 i32.store + global.get $std/typedarray/forEachValues + local.set $4 global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store + local.get $4 local.get $1 - local.tee $4 - i32.store offset=4 - local.get $2 + call $~lib/array/Array#__get local.set $3 - i32.const 0 - drop + local.get $0 local.get $3 - i32.const 0 - i32.lt_s + f64.convert_i32_s + f64.eq + i32.eqz if - i32.const 336 - i32.const 608 - i32.const 1864 - i32.const 19 + i32.const 0 + i32.const 544 + i32.const 513 + i32.const 5 call $~lib/builtins/abort unreachable end - local.get $4 - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=8 - local.get $11 - call $~lib/array/Array#get:length - local.get $3 - i32.add - local.get $5 - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=8 - local.get $11 - call $~lib/typedarray/Uint8Array#get:length - i32.gt_s + local.get $1 + global.get $std/typedarray/forEachCallCount + i32.eq + i32.eqz if - i32.const 336 - i32.const 608 - i32.const 1865 - i32.const 47 + i32.const 0 + i32.const 544 + i32.const 514 + i32.const 5 call $~lib/builtins/abort unreachable end - i32.const 1 - i32.const 1 + global.get $std/typedarray/forEachSelf + local.get $2 i32.eq - if (result i32) - i32.const 0 - i32.const 2 - i32.eq - else - i32.const 0 - end - if (result i32) - i32.const 0 - if (result i32) - i32.const 1 - else - i32.const 0 - end - i32.eqz - else + i32.eqz + if i32.const 0 + i32.const 544 + i32.const 515 + i32.const 5 + call $~lib/builtins/abort + unreachable end - drop - local.get $5 - i32.load offset=4 - local.get $3 - i32.const 0 - i32.shl + global.get $std/typedarray/forEachCallCount + i32.const 1 i32.add - local.set $6 - local.get $4 - i32.load offset=4 - local.set $7 - local.get $4 - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=8 - local.get $11 - call $~lib/array/Array#get:length - local.set $8 - i32.const 0 - local.set $9 - loop $for-loop|0 - local.get $9 - local.get $8 - i32.lt_s - local.set $10 - local.get $10 - if - i32.const 0 - drop - i32.const 0 - if (result i32) - i32.const 0 - i32.eqz - else - i32.const 0 - end - drop - i32.const 0 - if (result i32) - i32.const 0 - i32.eqz - else - i32.const 0 - end - drop - local.get $6 - local.get $9 - i32.const 0 - i32.shl - i32.add - local.get $7 - local.get $9 - i32.const 2 - i32.shl - i32.add - i32.load - i32.store8 - local.get $9 - i32.const 1 - i32.add - local.set $9 - br $for-loop|0 - end - end + 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 ) - (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) + (func $std/typedarray/testArrayForEach<~lib/typedarray/Float64Array,f64> + (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 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 + global.set $std/typedarray/forEachCallCount + global.get $~lib/memory/__stack_pointer i32.const 0 + i32.const 3 + call $~lib/typedarray/Float64Array#constructor + local.tee $0 i32.store local.get $0 - local.set $7 + global.set $std/typedarray/forEachSelf + local.get $0 + i32.const 0 + global.get $std/typedarray/forEachValues + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store - local.get $7 - call $~lib/typedarray/Uint8Array#get:length - local.set $2 - local.get $2 local.get $1 - local.set $7 + i32.store offset=4 + local.get $1 + i32.const 0 + call $~lib/array/Array#__get + f64.convert_i32_s + call $~lib/typedarray/Float64Array#__set + local.get $0 + i32.const 1 + global.get $std/typedarray/forEachValues + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store - local.get $7 - call $~lib/array/Array#get:length + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 1 + call $~lib/array/Array#__get + f64.convert_i32_s + call $~lib/typedarray/Float64Array#__set + local.get $0 + i32.const 2 + global.get $std/typedarray/forEachValues + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 2 + call $~lib/array/Array#__get + f64.convert_i32_s + call $~lib/typedarray/Float64Array#__set + local.get $0 + i32.const 5792 + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $1 + call $~lib/typedarray/Float64Array#forEach + global.get $std/typedarray/forEachCallCount + i32.const 3 i32.eq i32.eqz if i32.const 0 i32.const 544 - i32.const 735 + i32.const 518 i32.const 3 call $~lib/builtins/abort unreachable end - i32.const 0 - local.set $3 - loop $for-loop|0 - local.get $3 - local.get $2 - i32.lt_s - local.set $4 - local.get $4 - if - local.get $0 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store - local.get $7 - local.get $3 - call $~lib/typedarray/Uint8Array#__uget - local.set $5 - local.get $1 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store - local.get $7 - local.get $3 - call $~lib/array/Array#__uget - local.set $6 - local.get $5 - local.get $6 - i32.ne - if - i32.const 9824 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store - local.get $7 - i32.const 3 - local.get $3 - f64.convert_i32_s - local.get $5 - f64.convert_i32_u - local.get $6 - f64.convert_i32_u - f64.const 0 - f64.const 0 - call $~lib/builtins/trace - i32.const 0 - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 741 - i32.const 7 - call $~lib/builtins/abort - unreachable - end - end - local.get $3 - i32.const 1 - i32.add - local.set $3 - br $for-loop|0 - end - end global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 12 i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/typedarray/Uint8Array#set<~lib/array/Array> (param $0 i32) (param $1 i32) (param $2 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) (local $6 i32) (local $7 i32) - (local $8 i32) - (local $9 i32) - (local $10 i32) - (local $11 f32) - (local $12 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 20 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check @@ -57868,324 +42024,194 @@ 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 0 - i32.store offset=8 + i32.store offset=16 global.get $~lib/memory/__stack_pointer - local.get $0 - local.tee $5 + global.get $std/typedarray/testArrayReverseValues + local.tee $0 i32.store + local.get $0 + call $~lib/array/Array#get:length + local.set $1 global.get $~lib/memory/__stack_pointer + i32.const 0 local.get $1 - local.tee $4 + call $~lib/typedarray/Int8Array#constructor + local.tee $2 i32.store offset=4 - local.get $2 - local.set $3 - i32.const 0 - drop - local.get $3 - i32.const 0 - i32.lt_s - if - i32.const 336 - i32.const 608 - i32.const 1864 - i32.const 19 - call $~lib/builtins/abort - unreachable - end - local.get $4 - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/array/Array#get:length - local.get $3 - i32.add - local.get $5 - local.set $12 global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/typedarray/Uint8Array#get:length - i32.gt_s - if - i32.const 336 - i32.const 608 - i32.const 1865 - i32.const 47 - call $~lib/builtins/abort - unreachable - end - i32.const 1 - i32.const 0 - i32.eq - if (result i32) - i32.const 0 - i32.const 2 - i32.eq - else - i32.const 0 - end - if (result i32) - i32.const 0 - if (result i32) - i32.const 0 - else - i32.const 0 - end - i32.eqz - else - i32.const 0 - end - drop - local.get $5 - i32.load offset=4 - local.get $3 i32.const 0 - i32.shl - i32.add - local.set $6 - local.get $4 - i32.load offset=4 - local.set $7 - local.get $4 - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $1 + call $~lib/typedarray/Int8Array#constructor + local.tee $3 i32.store offset=8 - local.get $12 - call $~lib/array/Array#get:length - local.set $8 i32.const 0 - local.set $9 + local.set $4 loop $for-loop|0 - local.get $9 - local.get $8 + local.get $4 + local.get $1 i32.lt_s - local.set $10 - local.get $10 + local.set $5 + local.get $5 if - i32.const 0 - drop - i32.const 1 - if (result i32) - i32.const 0 - i32.eqz - else - i32.const 0 - end - drop - local.get $7 - local.get $9 - i32.const 2 + local.get $2 + local.get $4 + local.get $0 + local.get $4 + call $~lib/array/Array#__get + i32.const 24 i32.shl - i32.add - f32.load - local.set $11 - local.get $6 - local.get $9 - i32.const 0 + i32.const 24 + i32.shr_s + call $~lib/typedarray/Int8Array#__set + local.get $3 + local.get $4 + local.get $0 + local.get $4 + call $~lib/array/Array#__get + i32.const 24 i32.shl - i32.add - local.get $11 - local.get $11 - f32.sub - f32.const 0 - f32.eq - if (result i32) - local.get $11 - i32.trunc_f32_u - else - i32.const 0 - end - i32.store8 - local.get $9 + i32.const 24 + i32.shr_s + call $~lib/typedarray/Int8Array#__set + local.get $4 i32.const 1 i32.add - local.set $9 + local.set $4 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#set<~lib/typedarray/Int64Array> (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 - 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 - global.get $~lib/memory/__stack_pointer - local.get $0 - local.tee $5 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - local.tee $4 - i32.store offset=4 local.get $2 - local.set $3 - i32.const 0 + call $~lib/typedarray/Int8Array#reverse drop - local.get $3 i32.const 0 - i32.lt_s - if - i32.const 336 - i32.const 608 - i32.const 1864 - i32.const 19 - call $~lib/builtins/abort - unreachable + local.set $4 + loop $for-loop|1 + local.get $4 + local.get $1 + i32.lt_s + local.set $5 + local.get $5 + if + local.get $2 + local.get $4 + call $~lib/typedarray/Int8Array#__get + local.get $0 + local.get $1 + i32.const 1 + i32.sub + local.get $4 + i32.sub + call $~lib/array/Array#__get + i32.const 24 + i32.shl + i32.const 24 + i32.shr_s + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 547 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $for-loop|1 + end end - local.get $4 - local.set $11 global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=8 - local.get $11 - call $~lib/typedarray/Int64Array#get:length local.get $3 - i32.add - local.get $5 - local.set $11 + i32.const 4 + i32.const 8 + call $~lib/typedarray/Int8Array#subarray + local.set $7 global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=8 - local.get $11 - call $~lib/typedarray/Uint8Array#get:length - i32.gt_s + local.get $7 + i32.store offset=12 + local.get $7 + call $~lib/typedarray/Int8Array#reverse + local.tee $6 + i32.store offset=16 + local.get $6 + i32.const 0 + call $~lib/typedarray/Int8Array#__get + i32.const 8 + i32.eq + i32.eqz if - i32.const 336 - i32.const 608 - i32.const 1865 - i32.const 47 + i32.const 0 + i32.const 544 + i32.const 552 + i32.const 3 call $~lib/builtins/abort unreachable end + local.get $6 i32.const 1 - i32.const 1 + call $~lib/typedarray/Int8Array#__get + i32.const 7 i32.eq - if (result i32) + i32.eqz + if i32.const 0 + i32.const 544 + i32.const 553 i32.const 3 - i32.eq - else - i32.const 0 + call $~lib/builtins/abort + unreachable end - if (result i32) - i32.const 0 - if (result i32) - i32.const 1 - else - i32.const 0 - end - i32.eqz - else + local.get $6 + i32.const 2 + call $~lib/typedarray/Int8Array#__get + i32.const 6 + i32.eq + i32.eqz + if i32.const 0 + i32.const 544 + i32.const 554 + i32.const 3 + call $~lib/builtins/abort + unreachable end - drop - local.get $5 - i32.load offset=4 - local.get $3 - i32.const 0 - i32.shl - i32.add - local.set $6 - local.get $4 - i32.load offset=4 - local.set $7 - local.get $4 - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=8 - local.get $11 - call $~lib/typedarray/Int64Array#get:length - local.set $8 - i32.const 0 - local.set $9 - loop $for-loop|0 - local.get $9 - local.get $8 - i32.lt_s - local.set $10 - local.get $10 - if - i32.const 0 - drop - i32.const 0 - if (result i32) - i32.const 0 - i32.eqz - else - i32.const 0 - end - drop - i32.const 0 - if (result i32) - i32.const 0 - i32.eqz - else - i32.const 0 - end - drop - local.get $6 - local.get $9 - i32.const 0 - i32.shl - i32.add - local.get $7 - local.get $9 - i32.const 3 - i32.shl - i32.add - i64.load - i64.store8 - local.get $9 - i32.const 1 - i32.add - local.set $9 - br $for-loop|0 - end + local.get $6 + i32.const 3 + call $~lib/typedarray/Int8Array#__get + i32.const 5 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 555 + i32.const 3 + call $~lib/builtins/abort + unreachable end global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 20 i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/typedarray/Uint8Array#set<~lib/array/Array> (param $0 i32) (param $1 i32) (param $2 i32) + (func $std/typedarray/testArrayReverse<~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) - (local $9 i32) - (local $10 i32) - (local $11 f64) - (local $12 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 20 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check @@ -58193,158 +42219,188 @@ 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 0 - i32.store offset=8 + i32.store offset=16 global.get $~lib/memory/__stack_pointer - local.get $0 - local.tee $5 + global.get $std/typedarray/testArrayReverseValues + local.tee $0 i32.store + local.get $0 + call $~lib/array/Array#get:length + local.set $1 global.get $~lib/memory/__stack_pointer + i32.const 0 local.get $1 - local.tee $4 + call $~lib/typedarray/Uint8Array#constructor + local.tee $2 i32.store offset=4 - local.get $2 - local.set $3 + global.get $~lib/memory/__stack_pointer + i32.const 0 + local.get $1 + call $~lib/typedarray/Uint8Array#constructor + local.tee $3 + i32.store offset=8 i32.const 0 + local.set $4 + loop $for-loop|0 + local.get $4 + local.get $1 + i32.lt_s + local.set $5 + local.get $5 + if + local.get $2 + local.get $4 + local.get $0 + local.get $4 + call $~lib/array/Array#__get + i32.const 255 + i32.and + call $~lib/typedarray/Uint8Array#__set + local.get $3 + local.get $4 + local.get $0 + local.get $4 + call $~lib/array/Array#__get + i32.const 255 + i32.and + call $~lib/typedarray/Uint8Array#__set + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $for-loop|0 + end + end + local.get $2 + call $~lib/typedarray/Uint8Array#reverse drop - local.get $3 i32.const 0 - i32.lt_s - if - i32.const 336 - i32.const 608 - i32.const 1864 - i32.const 19 - call $~lib/builtins/abort - unreachable + local.set $4 + loop $for-loop|1 + local.get $4 + local.get $1 + i32.lt_s + local.set $5 + local.get $5 + if + local.get $2 + local.get $4 + call $~lib/typedarray/Uint8Array#__get + local.get $0 + local.get $1 + i32.const 1 + i32.sub + local.get $4 + i32.sub + call $~lib/array/Array#__get + i32.const 255 + i32.and + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 547 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $for-loop|1 + end end - local.get $4 - local.set $12 global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/array/Array#get:length local.get $3 - i32.add - local.get $5 - local.set $12 + i32.const 4 + i32.const 8 + call $~lib/typedarray/Uint8Array#subarray + local.set $7 global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/typedarray/Uint8Array#get:length - i32.gt_s + local.get $7 + i32.store offset=12 + local.get $7 + call $~lib/typedarray/Uint8Array#reverse + local.tee $6 + i32.store offset=16 + local.get $6 + i32.const 0 + call $~lib/typedarray/Uint8Array#__get + i32.const 8 + i32.eq + i32.eqz if - i32.const 336 - i32.const 608 - i32.const 1865 - i32.const 47 + i32.const 0 + i32.const 544 + i32.const 552 + i32.const 3 call $~lib/builtins/abort unreachable end + local.get $6 i32.const 1 - i32.const 0 + call $~lib/typedarray/Uint8Array#__get + i32.const 7 i32.eq - if (result i32) + i32.eqz + if i32.const 0 + i32.const 544 + i32.const 553 i32.const 3 - i32.eq - else - i32.const 0 + call $~lib/builtins/abort + unreachable end - if (result i32) - i32.const 0 - if (result i32) - i32.const 0 - else - i32.const 0 - end - i32.eqz - else + local.get $6 + i32.const 2 + call $~lib/typedarray/Uint8Array#__get + i32.const 6 + i32.eq + i32.eqz + if i32.const 0 + i32.const 544 + i32.const 554 + i32.const 3 + call $~lib/builtins/abort + unreachable end - drop - local.get $5 - i32.load offset=4 - local.get $3 - i32.const 0 - i32.shl - i32.add - local.set $6 - local.get $4 - i32.load offset=4 - local.set $7 - local.get $4 - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/array/Array#get:length - local.set $8 - i32.const 0 - local.set $9 - loop $for-loop|0 - local.get $9 - local.get $8 - i32.lt_s - local.set $10 - local.get $10 - if - i32.const 0 - drop - i32.const 1 - if (result i32) - i32.const 0 - i32.eqz - else - i32.const 0 - end - drop - local.get $7 - local.get $9 - i32.const 3 - i32.shl - i32.add - f64.load - local.set $11 - local.get $6 - local.get $9 - i32.const 0 - i32.shl - i32.add - local.get $11 - local.get $11 - f64.sub - f64.const 0 - f64.eq - if (result i32) - local.get $11 - i32.trunc_f64_u - else - i32.const 0 - end - i32.store8 - local.get $9 - i32.const 1 - i32.add - local.set $9 - br $for-loop|0 - end + local.get $6 + i32.const 3 + call $~lib/typedarray/Uint8Array#__get + i32.const 5 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 555 + i32.const 3 + call $~lib/builtins/abort + unreachable end global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 20 i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/typedarray/Uint8Array#set<~lib/typedarray/Uint8Array> (param $0 i32) (param $1 i32) (param $2 i32) + (func $std/typedarray/testArrayReverse<~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 12 + i32.const 20 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check @@ -58352,106 +42408,188 @@ 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 0 - i32.store offset=8 + i32.store offset=16 global.get $~lib/memory/__stack_pointer - local.get $0 - local.tee $5 + global.get $std/typedarray/testArrayReverseValues + local.tee $0 i32.store + local.get $0 + call $~lib/array/Array#get:length + local.set $1 global.get $~lib/memory/__stack_pointer + i32.const 0 local.get $1 - local.tee $4 + call $~lib/typedarray/Uint8ClampedArray#constructor + local.tee $2 i32.store offset=4 - local.get $2 - local.set $3 + global.get $~lib/memory/__stack_pointer + i32.const 0 + local.get $1 + call $~lib/typedarray/Uint8ClampedArray#constructor + local.tee $3 + i32.store offset=8 i32.const 0 + local.set $4 + loop $for-loop|0 + local.get $4 + local.get $1 + i32.lt_s + local.set $5 + local.get $5 + if + local.get $2 + local.get $4 + local.get $0 + local.get $4 + call $~lib/array/Array#__get + i32.const 255 + i32.and + call $~lib/typedarray/Uint8ClampedArray#__set + local.get $3 + local.get $4 + local.get $0 + local.get $4 + call $~lib/array/Array#__get + i32.const 255 + i32.and + call $~lib/typedarray/Uint8ClampedArray#__set + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $for-loop|0 + end + end + local.get $2 + call $~lib/typedarray/Uint8ClampedArray#reverse drop - local.get $3 i32.const 0 - i32.lt_s - if - i32.const 336 - i32.const 608 - i32.const 1864 - i32.const 19 - call $~lib/builtins/abort - unreachable + local.set $4 + loop $for-loop|1 + local.get $4 + local.get $1 + i32.lt_s + local.set $5 + local.get $5 + if + local.get $2 + local.get $4 + call $~lib/typedarray/Uint8ClampedArray#__get + local.get $0 + local.get $1 + i32.const 1 + i32.sub + local.get $4 + i32.sub + call $~lib/array/Array#__get + i32.const 255 + i32.and + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 547 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $for-loop|1 + end end - local.get $4 - local.set $6 global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=8 - local.get $6 - call $~lib/typedarray/Uint8Array#get:length local.get $3 - i32.add - local.get $5 - local.set $6 + i32.const 4 + i32.const 8 + call $~lib/typedarray/Uint8ClampedArray#subarray + local.set $7 global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=12 + local.get $7 + call $~lib/typedarray/Uint8ClampedArray#reverse + local.tee $6 + i32.store offset=16 local.get $6 - i32.store offset=8 - local.get $6 - call $~lib/typedarray/Uint8Array#get:length - i32.gt_s + i32.const 0 + call $~lib/typedarray/Uint8ClampedArray#__get + i32.const 8 + i32.eq + i32.eqz if - i32.const 336 - i32.const 608 - i32.const 1865 - i32.const 47 + i32.const 0 + i32.const 544 + i32.const 552 + i32.const 3 call $~lib/builtins/abort unreachable end + local.get $6 i32.const 1 - i32.const 1 + call $~lib/typedarray/Uint8ClampedArray#__get + i32.const 7 i32.eq - if (result i32) - i32.const 0 - i32.const 0 - i32.eq - else + i32.eqz + if i32.const 0 + i32.const 544 + i32.const 553 + i32.const 3 + call $~lib/builtins/abort + unreachable end - if (result i32) + local.get $6 + i32.const 2 + call $~lib/typedarray/Uint8ClampedArray#__get + i32.const 6 + i32.eq + i32.eqz + if i32.const 0 - if (result i32) - i32.const 0 - else - i32.const 0 - end - i32.eqz - else + i32.const 544 + i32.const 554 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $6 + i32.const 3 + call $~lib/typedarray/Uint8ClampedArray#__get + i32.const 5 + i32.eq + i32.eqz + if i32.const 0 + i32.const 544 + i32.const 555 + i32.const 3 + call $~lib/builtins/abort + unreachable end - drop - local.get $5 - i32.load offset=4 - local.get $3 - i32.const 0 - i32.shl - i32.add - local.get $4 - i32.load offset=4 - local.get $4 - i32.load offset=8 - call $~lib/memory/memory.copy global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 20 i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/typedarray/Uint8Array#set<~lib/typedarray/Int16Array> (param $0 i32) (param $1 i32) (param $2 i32) + (func $std/typedarray/testArrayReverse<~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) - (local $10 i32) - (local $11 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 20 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check @@ -58459,250 +42597,184 @@ 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 0 - i32.store offset=8 + i32.store offset=16 global.get $~lib/memory/__stack_pointer - local.get $0 - local.tee $5 + global.get $std/typedarray/testArrayReverseValues + local.tee $0 i32.store + local.get $0 + call $~lib/array/Array#get:length + local.set $1 global.get $~lib/memory/__stack_pointer + i32.const 0 local.get $1 - local.tee $4 + call $~lib/typedarray/Int16Array#constructor + local.tee $2 i32.store offset=4 - local.get $2 - local.set $3 - i32.const 0 - drop - local.get $3 - i32.const 0 - i32.lt_s - if - i32.const 336 - i32.const 608 - i32.const 1864 - i32.const 19 - call $~lib/builtins/abort - unreachable - end - local.get $4 - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=8 - local.get $11 - call $~lib/typedarray/Int16Array#get:length - local.get $3 - i32.add - local.get $5 - local.set $11 global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=8 - local.get $11 - call $~lib/typedarray/Uint8Array#get:length - i32.gt_s - if - i32.const 336 - i32.const 608 - i32.const 1865 - i32.const 47 - call $~lib/builtins/abort - unreachable - end - i32.const 1 - i32.const 1 - i32.eq - if (result i32) - i32.const 0 - i32.const 1 - i32.eq - else - i32.const 0 - end - if (result i32) - i32.const 0 - if (result i32) - i32.const 1 - else - i32.const 0 - end - i32.eqz - else - i32.const 0 - end - drop - local.get $5 - i32.load offset=4 - local.get $3 i32.const 0 - i32.shl - i32.add - local.set $6 - local.get $4 - i32.load offset=4 - local.set $7 - local.get $4 - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $1 + call $~lib/typedarray/Int16Array#constructor + local.tee $3 i32.store offset=8 - local.get $11 - call $~lib/typedarray/Int16Array#get:length - local.set $8 i32.const 0 - local.set $9 + local.set $4 loop $for-loop|0 - local.get $9 - local.get $8 + local.get $4 + local.get $1 i32.lt_s - local.set $10 - local.get $10 + local.set $5 + local.get $5 if - i32.const 0 - drop - i32.const 0 - if (result i32) - i32.const 0 - i32.eqz - else - i32.const 0 - end - drop - i32.const 0 - if (result i32) - i32.const 0 - i32.eqz - else - i32.const 0 - end - drop - local.get $6 - local.get $9 - i32.const 0 + local.get $2 + local.get $4 + local.get $0 + local.get $4 + call $~lib/array/Array#__get + i32.const 16 i32.shl - i32.add - local.get $7 - local.get $9 - i32.const 1 + i32.const 16 + i32.shr_s + call $~lib/typedarray/Int16Array#__set + local.get $3 + local.get $4 + local.get $0 + local.get $4 + call $~lib/array/Array#__get + i32.const 16 i32.shl - i32.add - i32.load16_s - i32.store8 - local.get $9 + i32.const 16 + i32.shr_s + call $~lib/typedarray/Int16Array#__set + local.get $4 i32.const 1 i32.add - local.set $9 + local.set $4 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#set<~lib/array/Array> (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 - 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 - global.get $~lib/memory/__stack_pointer - local.get $0 - local.tee $5 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - local.tee $4 - i32.store offset=4 local.get $2 - local.set $3 - i32.const 0 + call $~lib/typedarray/Int16Array#reverse drop - local.get $3 i32.const 0 - i32.lt_s - if - i32.const 336 - i32.const 608 - i32.const 1864 - i32.const 19 - call $~lib/builtins/abort - unreachable + local.set $4 + loop $for-loop|1 + local.get $4 + local.get $1 + i32.lt_s + local.set $5 + local.get $5 + if + local.get $2 + local.get $4 + call $~lib/typedarray/Int16Array#__get + local.get $0 + local.get $1 + i32.const 1 + i32.sub + local.get $4 + i32.sub + call $~lib/array/Array#__get + i32.const 16 + i32.shl + i32.const 16 + i32.shr_s + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 547 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $for-loop|1 + end end - local.get $4 - local.set $6 global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=8 - local.get $6 - call $~lib/array/Array#get:length local.get $3 - i32.add - local.get $5 - local.set $6 + i32.const 4 + i32.const 8 + call $~lib/typedarray/Int16Array#subarray + local.set $7 global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=12 + local.get $7 + call $~lib/typedarray/Int16Array#reverse + local.tee $6 + i32.store offset=16 local.get $6 - i32.store offset=8 - local.get $6 - call $~lib/typedarray/Uint8Array#get:length - i32.gt_s + i32.const 0 + call $~lib/typedarray/Int16Array#__get + i32.const 8 + i32.eq + i32.eqz if - i32.const 336 - i32.const 608 - i32.const 1865 - i32.const 47 + i32.const 0 + i32.const 544 + i32.const 552 + i32.const 3 call $~lib/builtins/abort unreachable end + local.get $6 i32.const 1 - i32.const 1 + call $~lib/typedarray/Int16Array#__get + i32.const 7 i32.eq - if (result i32) - i32.const 0 + i32.eqz + if i32.const 0 - i32.eq - else + i32.const 544 + i32.const 553 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $6 + i32.const 2 + call $~lib/typedarray/Int16Array#__get + i32.const 6 + i32.eq + i32.eqz + if i32.const 0 + i32.const 544 + i32.const 554 + i32.const 3 + call $~lib/builtins/abort + unreachable end - if (result i32) - i32.const 0 - if (result i32) - i32.const 1 - else - i32.const 0 - end - i32.eqz - else + local.get $6 + i32.const 3 + call $~lib/typedarray/Int16Array#__get + i32.const 5 + i32.eq + i32.eqz + if i32.const 0 + i32.const 544 + i32.const 555 + i32.const 3 + call $~lib/builtins/abort + unreachable end - drop - local.get $5 - i32.load offset=4 - local.get $3 - i32.const 0 - i32.shl - i32.add - local.get $4 - i32.load offset=4 - local.get $4 - i32.load offset=8 - call $~lib/memory/memory.copy global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 20 i32.add global.set $~lib/memory/__stack_pointer ) - (func $std/typedarray/testTypedArraySet<~lib/typedarray/Uint8Array> + (func $std/typedarray/testArrayReverse<~lib/typedarray/Uint16Array,u16> (local $0 i32) (local $1 i32) (local $2 i32) @@ -58710,8 +42782,9 @@ (local $4 i32) (local $5 i32) (local $6 i32) + (local $7 i32) global.get $~lib/memory/__stack_pointer - i32.const 24 + i32.const 20 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check @@ -58722,327 +42795,368 @@ i64.const 0 i64.store offset=8 global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=16 - global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 3 - call $~lib/typedarray/Int64Array#constructor + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + global.get $std/typedarray/testArrayReverseValues local.tee $0 i32.store local.get $0 - local.set $6 + call $~lib/array/Array#get:length + local.set $1 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 - local.get $0 - local.set $6 - 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 - local.get $0 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $1 + call $~lib/typedarray/Uint16Array#constructor + local.tee $2 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 0 - i32.const 4 - call $~lib/typedarray/Uint8Array#constructor - local.tee $1 - i32.store offset=8 local.get $1 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 + call $~lib/typedarray/Uint16Array#constructor + local.tee $3 + i32.store offset=8 i32.const 0 - i32.const 100 - call $~lib/typedarray/Uint8Array#__set - local.get $1 - local.set $6 - 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 - local.get $1 - local.set $6 - 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 - local.get $1 - local.set $6 + local.set $4 + loop $for-loop|0 + local.get $4 + local.get $1 + i32.lt_s + local.set $5 + local.get $5 + if + local.get $2 + local.get $4 + local.get $0 + local.get $4 + call $~lib/array/Array#__get + i32.const 65535 + i32.and + call $~lib/typedarray/Uint16Array#__set + local.get $3 + local.get $4 + local.get $0 + local.get $4 + call $~lib/array/Array#__get + i32.const 65535 + i32.and + call $~lib/typedarray/Uint16Array#__set + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $for-loop|0 + end + end + local.get $2 + call $~lib/typedarray/Uint16Array#reverse + drop + i32.const 0 + local.set $4 + loop $for-loop|1 + local.get $4 + local.get $1 + i32.lt_s + local.set $5 + local.get $5 + if + local.get $2 + local.get $4 + call $~lib/typedarray/Uint16Array#__get + local.get $0 + local.get $1 + i32.const 1 + i32.sub + local.get $4 + i32.sub + call $~lib/array/Array#__get + i32.const 65535 + i32.and + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 547 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $for-loop|1 + end + end 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 + local.get $3 + i32.const 4 + i32.const 8 + call $~lib/typedarray/Uint16Array#subarray + local.set $7 global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 3 - call $~lib/typedarray/Int16Array#constructor - local.tee $2 + local.get $7 i32.store offset=12 - local.get $2 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 + local.get $7 + call $~lib/typedarray/Uint16Array#reverse + local.tee $6 + i32.store offset=16 local.get $6 i32.const 0 - i32.const 1000 - call $~lib/typedarray/Int16Array#__set - local.get $2 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 + call $~lib/typedarray/Uint16Array#__get + i32.const 8 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 552 + i32.const 3 + call $~lib/builtins/abort + unreachable + end local.get $6 i32.const 1 - i32.const 1001 - call $~lib/typedarray/Int16Array#__set - local.get $2 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 + call $~lib/typedarray/Uint16Array#__get + i32.const 7 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 553 + i32.const 3 + call $~lib/builtins/abort + unreachable + end local.get $6 i32.const 2 - i32.const 1002 - call $~lib/typedarray/Int16Array#__set - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 10 - call $~lib/typedarray/Uint8Array#constructor - local.tee $3 - i32.store offset=16 - local.get $3 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - global.get $std/typedarray/setSource1 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=20 + call $~lib/typedarray/Uint16Array#__get + i32.const 6 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 554 + i32.const 3 + call $~lib/builtins/abort + unreachable + end local.get $6 - i32.const 0 - call $~lib/typedarray/Uint8Array#set<~lib/array/Array> - local.get $3 - local.set $6 + i32.const 3 + call $~lib/typedarray/Uint16Array#__get + i32.const 5 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 555 + i32.const 3 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 10 - i32.const 0 - i32.const 63 - i32.const 9792 - call $~lib/rt/__newArray - local.set $6 + i32.const 20 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $std/typedarray/testArrayReverse<~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) global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=20 - local.get $6 - call $std/typedarray/valuesEqual<~lib/typedarray/Uint8Array> - local.get $3 - local.set $6 + i32.const 20 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - global.get $std/typedarray/setSource2 - local.set $6 + i64.const 0 + i64.store global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=20 - local.get $6 - i32.const 3 - call $~lib/typedarray/Uint8Array#set<~lib/array/Array> - local.get $3 - local.set $6 + i64.const 0 + i64.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 10 i32.const 0 - i32.const 63 - i32.const 9872 - call $~lib/rt/__newArray - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=20 - local.get $6 - call $std/typedarray/valuesEqual<~lib/typedarray/Uint8Array> - local.get $3 - local.set $6 + i32.store offset=16 global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 + global.get $std/typedarray/testArrayReverseValues + local.tee $0 + i32.store local.get $0 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=20 - local.get $6 - i32.const 6 - call $~lib/typedarray/Uint8Array#set<~lib/typedarray/Int64Array> - local.get $3 - local.set $6 + call $~lib/array/Array#get:length + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 10 i32.const 0 - i32.const 63 - i32.const 9904 - call $~lib/rt/__newArray - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=20 - local.get $6 - call $std/typedarray/valuesEqual<~lib/typedarray/Uint8Array> - i32.const 1 - drop - local.get $3 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $1 + call $~lib/typedarray/Int32Array#constructor + local.tee $2 i32.store offset=4 - local.get $6 - global.get $std/typedarray/setSource3 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=20 - local.get $6 - i32.const 2 - call $~lib/typedarray/Uint8Array#set<~lib/array/Array> - local.get $3 - local.set $6 global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 10 i32.const 0 - i32.const 63 - i32.const 9936 - call $~lib/rt/__newArray - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=20 - local.get $6 - call $std/typedarray/valuesEqual<~lib/typedarray/Uint8Array> - local.get $3 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 local.get $1 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=20 - local.get $6 + call $~lib/typedarray/Int32Array#constructor + local.tee $3 + i32.store offset=8 i32.const 0 - call $~lib/typedarray/Uint8Array#set<~lib/typedarray/Uint8Array> - local.get $3 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 + local.set $4 + loop $for-loop|0 + local.get $4 + local.get $1 + i32.lt_s + local.set $5 + local.get $5 + if + local.get $2 + local.get $4 + local.get $0 + local.get $4 + call $~lib/array/Array#__get + call $~lib/typedarray/Int32Array#__set + local.get $3 + local.get $4 + local.get $0 + local.get $4 + call $~lib/array/Array#__get + call $~lib/typedarray/Int32Array#__set + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $for-loop|0 + end + end local.get $2 - local.set $6 + call $~lib/typedarray/Int32Array#reverse + drop + i32.const 0 + local.set $4 + loop $for-loop|1 + local.get $4 + local.get $1 + i32.lt_s + local.set $5 + local.get $5 + if + local.get $2 + local.get $4 + call $~lib/typedarray/Int32Array#__get + local.get $0 + local.get $1 + i32.const 1 + i32.sub + local.get $4 + i32.sub + call $~lib/array/Array#__get + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 547 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $for-loop|1 + end + end global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=20 - local.get $6 - i32.const 4 - call $~lib/typedarray/Uint8Array#set<~lib/typedarray/Int16Array> local.get $3 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - global.get $std/typedarray/setSource7 - local.set $6 + i32.const 4 + i32.const 8 + call $~lib/typedarray/Int32Array#subarray + local.set $7 global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=12 + local.get $7 + call $~lib/typedarray/Int32Array#reverse + local.tee $6 + i32.store offset=16 local.get $6 - i32.store offset=20 - local.get $6 - i32.const 7 - call $~lib/typedarray/Uint8Array#set<~lib/array/Array> i32.const 0 - drop - local.get $3 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 + call $~lib/typedarray/Int32Array#__get + i32.const 8 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 552 + i32.const 3 + call $~lib/builtins/abort + unreachable + end local.get $6 - i32.const 10 - i32.const 0 - i32.const 63 - i32.const 9968 - call $~lib/rt/__newArray - local.set $6 - global.get $~lib/memory/__stack_pointer + i32.const 1 + call $~lib/typedarray/Int32Array#__get + i32.const 7 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 553 + i32.const 3 + call $~lib/builtins/abort + unreachable + end local.get $6 - i32.store offset=20 + i32.const 2 + call $~lib/typedarray/Int32Array#__get + i32.const 6 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 554 + i32.const 3 + call $~lib/builtins/abort + unreachable + end local.get $6 - call $std/typedarray/valuesEqual<~lib/typedarray/Uint8Array> + i32.const 3 + call $~lib/typedarray/Int32Array#__get + i32.const 5 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 555 + i32.const 3 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer - i32.const 24 + i32.const 20 i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/typedarray/Uint8ClampedArray#set<~lib/array/Array> (param $0 i32) (param $1 i32) (param $2 i32) + (func $std/typedarray/testArrayReverse<~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) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 20 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check @@ -59050,155 +43164,174 @@ 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 0 - i32.store offset=8 + i32.store offset=16 global.get $~lib/memory/__stack_pointer - local.get $0 - local.tee $5 + global.get $std/typedarray/testArrayReverseValues + local.tee $0 i32.store + local.get $0 + call $~lib/array/Array#get:length + local.set $1 global.get $~lib/memory/__stack_pointer + i32.const 0 local.get $1 - local.tee $4 + call $~lib/typedarray/Uint32Array#constructor + local.tee $2 i32.store offset=4 - local.get $2 - local.set $3 + global.get $~lib/memory/__stack_pointer + i32.const 0 + local.get $1 + call $~lib/typedarray/Uint32Array#constructor + local.tee $3 + i32.store offset=8 i32.const 0 + local.set $4 + loop $for-loop|0 + local.get $4 + local.get $1 + i32.lt_s + local.set $5 + local.get $5 + if + local.get $2 + local.get $4 + local.get $0 + local.get $4 + call $~lib/array/Array#__get + call $~lib/typedarray/Uint32Array#__set + local.get $3 + local.get $4 + local.get $0 + local.get $4 + call $~lib/array/Array#__get + call $~lib/typedarray/Uint32Array#__set + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $for-loop|0 + end + end + local.get $2 + call $~lib/typedarray/Uint32Array#reverse drop - local.get $3 i32.const 0 - i32.lt_s - if - i32.const 336 - i32.const 608 - i32.const 1864 - i32.const 19 - call $~lib/builtins/abort - unreachable + local.set $4 + loop $for-loop|1 + local.get $4 + local.get $1 + i32.lt_s + local.set $5 + local.get $5 + if + local.get $2 + local.get $4 + call $~lib/typedarray/Uint32Array#__get + local.get $0 + local.get $1 + i32.const 1 + i32.sub + local.get $4 + i32.sub + call $~lib/array/Array#__get + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 547 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $for-loop|1 + end end - local.get $4 - local.set $12 global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/array/Array#get:length local.get $3 - i32.add - local.get $5 - local.set $12 + i32.const 4 + i32.const 8 + call $~lib/typedarray/Uint32Array#subarray + local.set $7 global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/typedarray/Uint8ClampedArray#get:length - i32.gt_s + local.get $7 + i32.store offset=12 + local.get $7 + call $~lib/typedarray/Uint32Array#reverse + local.tee $6 + i32.store offset=16 + local.get $6 + i32.const 0 + call $~lib/typedarray/Uint32Array#__get + i32.const 8 + i32.eq + i32.eqz if - i32.const 336 - i32.const 608 - i32.const 1865 - i32.const 47 + i32.const 0 + i32.const 544 + i32.const 552 + i32.const 3 call $~lib/builtins/abort unreachable end + local.get $6 i32.const 1 - i32.const 1 + call $~lib/typedarray/Uint32Array#__get + i32.const 7 i32.eq - if (result i32) - i32.const 0 - i32.const 2 - i32.eq - else + i32.eqz + if i32.const 0 + i32.const 544 + i32.const 553 + i32.const 3 + call $~lib/builtins/abort + unreachable end - if (result i32) - i32.const 1 - if (result i32) - i32.const 1 - else - i32.const 0 - end - i32.eqz - else + local.get $6 + i32.const 2 + call $~lib/typedarray/Uint32Array#__get + i32.const 6 + i32.eq + i32.eqz + if i32.const 0 + i32.const 544 + i32.const 554 + i32.const 3 + call $~lib/builtins/abort + unreachable end - drop - local.get $5 - i32.load offset=4 - local.get $3 - i32.const 0 - i32.shl - i32.add - local.set $6 - local.get $4 - i32.load offset=4 - local.set $7 - local.get $4 - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/array/Array#get:length - local.set $8 - i32.const 0 - local.set $9 - loop $for-loop|0 - local.get $9 - local.get $8 - i32.lt_s - local.set $10 - local.get $10 - if - i32.const 1 - drop - i32.const 0 - drop - local.get $7 - local.get $9 - i32.const 2 - i32.shl - i32.add - i32.load - local.set $11 - i32.const 1 - i32.eqz - drop - i32.const 1 - i32.const 4 - i32.le_u - drop - local.get $6 - local.get $9 - i32.const 0 - i32.shl - i32.add - local.get $11 - i32.const 31 - i32.shr_s - i32.const -1 - i32.xor - i32.const 255 - local.get $11 - i32.sub - i32.const 31 - i32.shr_s - local.get $11 - i32.or - i32.and - i32.store8 - local.get $9 - i32.const 1 - i32.add - local.set $9 - br $for-loop|0 - end + local.get $6 + i32.const 3 + call $~lib/typedarray/Uint32Array#__get + i32.const 5 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 555 + i32.const 3 + call $~lib/builtins/abort + unreachable end global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 20 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/Int64Array,i64> + (local $0 i32) + (local $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -59206,122 +43339,193 @@ (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 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 + global.get $~lib/memory/__stack_pointer i32.const 0 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + global.get $std/typedarray/testArrayReverseValues + local.tee $0 i32.store local.get $0 - local.set $7 + call $~lib/array/Array#get:length + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store - local.get $7 - call $~lib/typedarray/Uint8ClampedArray#get:length - local.set $2 - local.get $2 + i32.const 0 + local.get $1 + call $~lib/typedarray/Int64Array#constructor + local.tee $2 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 0 local.get $1 + call $~lib/typedarray/Int64Array#constructor + local.tee $3 + i32.store offset=8 + i32.const 0 + local.set $4 + loop $for-loop|0 + local.get $4 + local.get $1 + i32.lt_s + local.set $5 + local.get $5 + if + local.get $2 + local.get $4 + local.get $0 + local.get $4 + call $~lib/array/Array#__get + i64.extend_i32_s + call $~lib/typedarray/Int64Array#__set + local.get $3 + local.get $4 + local.get $0 + local.get $4 + call $~lib/array/Array#__get + i64.extend_i32_s + call $~lib/typedarray/Int64Array#__set + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $for-loop|0 + end + end + local.get $2 + call $~lib/typedarray/Int64Array#reverse + drop + i32.const 0 + local.set $4 + loop $for-loop|1 + local.get $4 + local.get $1 + i32.lt_s + local.set $5 + local.get $5 + if + local.get $2 + local.get $4 + call $~lib/typedarray/Int64Array#__get + local.get $0 + local.get $1 + i32.const 1 + i32.sub + local.get $4 + i32.sub + call $~lib/array/Array#__get + i64.extend_i32_s + i64.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 547 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $for-loop|1 + end + end + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.const 4 + i32.const 8 + call $~lib/typedarray/Int64Array#subarray local.set $7 global.get $~lib/memory/__stack_pointer local.get $7 - i32.store + i32.store offset=12 local.get $7 - call $~lib/array/Array#get:length - i32.eq + call $~lib/typedarray/Int64Array#reverse + local.tee $6 + i32.store offset=16 + local.get $6 + i32.const 0 + call $~lib/typedarray/Int64Array#__get + i64.const 8 + i64.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 552 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $6 + i32.const 1 + call $~lib/typedarray/Int64Array#__get + i64.const 7 + i64.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 553 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $6 + i32.const 2 + call $~lib/typedarray/Int64Array#__get + i64.const 6 + i64.eq i32.eqz if i32.const 0 i32.const 544 - i32.const 735 + i32.const 554 i32.const 3 call $~lib/builtins/abort unreachable end - i32.const 0 - local.set $3 - loop $for-loop|0 - local.get $3 - local.get $2 - i32.lt_s - local.set $4 - local.get $4 - if - local.get $0 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store - local.get $7 - local.get $3 - call $~lib/typedarray/Uint8ClampedArray#__uget - local.set $5 - local.get $1 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store - local.get $7 - local.get $3 - call $~lib/array/Array#__uget - local.set $6 - local.get $5 - local.get $6 - i32.ne - if - i32.const 10032 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store - local.get $7 - i32.const 3 - local.get $3 - f64.convert_i32_s - local.get $5 - f64.convert_i32_u - local.get $6 - f64.convert_i32_u - f64.const 0 - f64.const 0 - call $~lib/builtins/trace - i32.const 0 - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 741 - i32.const 7 - call $~lib/builtins/abort - unreachable - end - end - local.get $3 - i32.const 1 - i32.add - local.set $3 - br $for-loop|0 - end + local.get $6 + i32.const 3 + call $~lib/typedarray/Int64Array#__get + i64.const 5 + i64.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 555 + 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/Uint8ClampedArray#set<~lib/array/Array> (param $0 i32) (param $1 i32) (param $2 i32) + (func $std/typedarray/testArrayReverse<~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 i32) - (local $10 i32) - (local $11 f32) - (local $12 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 20 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check @@ -59329,162 +43533,185 @@ 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 0 - i32.store offset=8 + i32.store offset=16 global.get $~lib/memory/__stack_pointer - local.get $0 - local.tee $5 + global.get $std/typedarray/testArrayReverseValues + local.tee $0 i32.store + local.get $0 + call $~lib/array/Array#get:length + local.set $1 global.get $~lib/memory/__stack_pointer + i32.const 0 local.get $1 - local.tee $4 + call $~lib/typedarray/Uint64Array#constructor + local.tee $2 i32.store offset=4 - local.get $2 - local.set $3 + global.get $~lib/memory/__stack_pointer + i32.const 0 + local.get $1 + call $~lib/typedarray/Uint64Array#constructor + local.tee $3 + i32.store offset=8 i32.const 0 + local.set $4 + loop $for-loop|0 + local.get $4 + local.get $1 + i32.lt_s + local.set $5 + local.get $5 + if + local.get $2 + local.get $4 + local.get $0 + local.get $4 + call $~lib/array/Array#__get + i64.extend_i32_s + call $~lib/typedarray/Uint64Array#__set + local.get $3 + local.get $4 + local.get $0 + local.get $4 + call $~lib/array/Array#__get + i64.extend_i32_s + call $~lib/typedarray/Uint64Array#__set + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $for-loop|0 + end + end + local.get $2 + call $~lib/typedarray/Uint64Array#reverse drop - local.get $3 i32.const 0 - i32.lt_s - if - i32.const 336 - i32.const 608 - i32.const 1864 - i32.const 19 - call $~lib/builtins/abort - unreachable + local.set $4 + loop $for-loop|1 + local.get $4 + local.get $1 + i32.lt_s + local.set $5 + local.get $5 + if + local.get $2 + local.get $4 + call $~lib/typedarray/Uint64Array#__get + local.get $0 + local.get $1 + i32.const 1 + i32.sub + local.get $4 + i32.sub + call $~lib/array/Array#__get + i64.extend_i32_s + i64.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 547 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $for-loop|1 + end end - local.get $4 - local.set $12 global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/array/Array#get:length local.get $3 - i32.add - local.get $5 - local.set $12 + i32.const 4 + i32.const 8 + call $~lib/typedarray/Uint64Array#subarray + local.set $7 global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/typedarray/Uint8ClampedArray#get:length - i32.gt_s + local.get $7 + i32.store offset=12 + local.get $7 + call $~lib/typedarray/Uint64Array#reverse + local.tee $6 + i32.store offset=16 + local.get $6 + i32.const 0 + call $~lib/typedarray/Uint64Array#__get + i64.const 8 + i64.eq + i32.eqz if - i32.const 336 - i32.const 608 - i32.const 1865 - i32.const 47 + i32.const 0 + i32.const 544 + i32.const 552 + i32.const 3 call $~lib/builtins/abort unreachable end + local.get $6 i32.const 1 - i32.const 0 - i32.eq - if (result i32) - i32.const 0 - i32.const 2 - i32.eq - else + call $~lib/typedarray/Uint64Array#__get + i64.const 7 + i64.eq + i32.eqz + if i32.const 0 + i32.const 544 + i32.const 553 + i32.const 3 + call $~lib/builtins/abort + unreachable end - if (result i32) - i32.const 1 - if (result i32) - i32.const 0 - else - i32.const 0 - end - i32.eqz - else + local.get $6 + i32.const 2 + call $~lib/typedarray/Uint64Array#__get + i64.const 6 + i64.eq + i32.eqz + if i32.const 0 + i32.const 544 + i32.const 554 + i32.const 3 + call $~lib/builtins/abort + unreachable end - drop - local.get $5 - i32.load offset=4 - local.get $3 - i32.const 0 - i32.shl - i32.add - local.set $6 - local.get $4 - i32.load offset=4 - local.set $7 - local.get $4 - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/array/Array#get:length - local.set $8 - i32.const 0 - local.set $9 - loop $for-loop|0 - local.get $9 - local.get $8 - i32.lt_s - local.set $10 - local.get $10 - if - i32.const 1 - drop - i32.const 1 - drop - local.get $7 - local.get $9 - i32.const 2 - i32.shl - i32.add - f32.load - local.set $11 - local.get $6 - local.get $9 - i32.const 0 - i32.shl - i32.add - local.get $11 - local.get $11 - f32.sub - f32.const 0 - f32.eq - if (result i32) - f32.const 0 - f32.const 255 - local.get $11 - f32.min - f32.max - i32.trunc_f32_u - else - i32.const 0 - end - i32.store8 - local.get $9 - i32.const 1 - i32.add - local.set $9 - br $for-loop|0 - end + local.get $6 + i32.const 3 + call $~lib/typedarray/Uint64Array#__get + i64.const 5 + i64.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 555 + i32.const 3 + call $~lib/builtins/abort + unreachable end global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 20 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) + (func $std/typedarray/testArrayReverse<~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 i32) - (local $10 i32) - (local $11 i64) - (local $12 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 20 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check @@ -59492,171 +43719,185 @@ 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 0 - i32.store offset=8 + i32.store offset=16 global.get $~lib/memory/__stack_pointer - local.get $0 - local.tee $5 + global.get $std/typedarray/testArrayReverseValues + local.tee $0 i32.store + local.get $0 + call $~lib/array/Array#get:length + local.set $1 global.get $~lib/memory/__stack_pointer + i32.const 0 local.get $1 - local.tee $4 + call $~lib/typedarray/Float32Array#constructor + local.tee $2 i32.store offset=4 - local.get $2 - local.set $3 + global.get $~lib/memory/__stack_pointer i32.const 0 + local.get $1 + call $~lib/typedarray/Float32Array#constructor + local.tee $3 + i32.store offset=8 + i32.const 0 + local.set $4 + loop $for-loop|0 + local.get $4 + local.get $1 + i32.lt_s + local.set $5 + local.get $5 + if + local.get $2 + local.get $4 + local.get $0 + local.get $4 + call $~lib/array/Array#__get + f32.convert_i32_s + call $~lib/typedarray/Float32Array#__set + local.get $3 + local.get $4 + local.get $0 + local.get $4 + call $~lib/array/Array#__get + f32.convert_i32_s + call $~lib/typedarray/Float32Array#__set + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $for-loop|0 + end + end + local.get $2 + call $~lib/typedarray/Float32Array#reverse drop + i32.const 0 + local.set $4 + loop $for-loop|1 + local.get $4 + local.get $1 + i32.lt_s + local.set $5 + local.get $5 + if + local.get $2 + local.get $4 + call $~lib/typedarray/Float32Array#__get + local.get $0 + local.get $1 + i32.const 1 + i32.sub + local.get $4 + i32.sub + call $~lib/array/Array#__get + f32.convert_i32_s + f32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 547 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $for-loop|1 + end + end + global.get $~lib/memory/__stack_pointer local.get $3 + i32.const 4 + i32.const 8 + call $~lib/typedarray/Float32Array#subarray + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=12 + local.get $7 + call $~lib/typedarray/Float32Array#reverse + local.tee $6 + i32.store offset=16 + local.get $6 i32.const 0 - i32.lt_s + call $~lib/typedarray/Float32Array#__get + f32.const 8 + f32.eq + i32.eqz if - i32.const 336 - i32.const 608 - i32.const 1864 - i32.const 19 + i32.const 0 + i32.const 544 + i32.const 552 + i32.const 3 call $~lib/builtins/abort unreachable end - local.get $4 - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/typedarray/Int64Array#get:length - local.get $3 - i32.add - local.get $5 - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/typedarray/Uint8ClampedArray#get:length - i32.gt_s + local.get $6 + i32.const 1 + call $~lib/typedarray/Float32Array#__get + f32.const 7 + f32.eq + i32.eqz if - i32.const 336 - i32.const 608 - i32.const 1865 - i32.const 47 + i32.const 0 + i32.const 544 + i32.const 553 + i32.const 3 call $~lib/builtins/abort unreachable end - i32.const 1 - i32.const 1 - i32.eq - if (result i32) + local.get $6 + i32.const 2 + call $~lib/typedarray/Float32Array#__get + f32.const 6 + f32.eq + i32.eqz + if i32.const 0 + i32.const 544 + i32.const 554 i32.const 3 - i32.eq - else - i32.const 0 + call $~lib/builtins/abort + unreachable end - if (result i32) - i32.const 1 - if (result i32) - i32.const 1 - else - i32.const 0 - end - i32.eqz - else + local.get $6 + i32.const 3 + call $~lib/typedarray/Float32Array#__get + f32.const 5 + f32.eq + i32.eqz + if i32.const 0 - end - drop - local.get $5 - i32.load offset=4 - local.get $3 - i32.const 0 - i32.shl - i32.add - local.set $6 - local.get $4 - i32.load offset=4 - local.set $7 - local.get $4 - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/typedarray/Int64Array#get:length - local.set $8 - i32.const 0 - local.set $9 - loop $for-loop|0 - local.get $9 - local.get $8 - i32.lt_s - local.set $10 - local.get $10 - if - i32.const 1 - drop - i32.const 0 - drop - local.get $7 - local.get $9 - i32.const 3 - i32.shl - i32.add - i64.load - local.set $11 - i32.const 1 - i32.eqz - drop - i32.const 1 - i32.const 4 - i32.le_u - drop - local.get $6 - local.get $9 - i32.const 0 - i32.shl - i32.add - local.get $11 - i32.wrap_i64 - i32.const 31 - i32.shr_s - i32.const -1 - i32.xor - i64.extend_i32_s - i32.const 255 - local.get $11 - i32.wrap_i64 - i32.sub - i32.const 31 - i32.shr_s - i64.extend_i32_s - local.get $11 - i64.or - i64.and - i64.store8 - local.get $9 - i32.const 1 - i32.add - local.set $9 - br $for-loop|0 - end + i32.const 544 + i32.const 555 + i32.const 3 + call $~lib/builtins/abort + unreachable end global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 20 i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/typedarray/Uint8ClampedArray#set<~lib/array/Array> (param $0 i32) (param $1 i32) (param $2 i32) + (func $std/typedarray/testArrayReverse<~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 i32) - (local $10 i32) - (local $11 f64) - (local $12 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 20 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check @@ -59664,156 +43905,204 @@ 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 0 - i32.store offset=8 + i32.store offset=16 global.get $~lib/memory/__stack_pointer - local.get $0 - local.tee $5 + global.get $std/typedarray/testArrayReverseValues + local.tee $0 i32.store + local.get $0 + call $~lib/array/Array#get:length + local.set $1 global.get $~lib/memory/__stack_pointer + i32.const 0 local.get $1 - local.tee $4 + call $~lib/typedarray/Float64Array#constructor + local.tee $2 i32.store offset=4 - local.get $2 - local.set $3 + global.get $~lib/memory/__stack_pointer + i32.const 0 + local.get $1 + call $~lib/typedarray/Float64Array#constructor + local.tee $3 + i32.store offset=8 i32.const 0 + local.set $4 + loop $for-loop|0 + local.get $4 + local.get $1 + i32.lt_s + local.set $5 + local.get $5 + if + local.get $2 + local.get $4 + local.get $0 + local.get $4 + call $~lib/array/Array#__get + f64.convert_i32_s + call $~lib/typedarray/Float64Array#__set + local.get $3 + local.get $4 + local.get $0 + local.get $4 + call $~lib/array/Array#__get + f64.convert_i32_s + call $~lib/typedarray/Float64Array#__set + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $for-loop|0 + end + end + local.get $2 + call $~lib/typedarray/Float64Array#reverse drop - local.get $3 i32.const 0 - i32.lt_s - if - i32.const 336 - i32.const 608 - i32.const 1864 - i32.const 19 - call $~lib/builtins/abort - unreachable + local.set $4 + loop $for-loop|1 + local.get $4 + local.get $1 + i32.lt_s + local.set $5 + local.get $5 + if + local.get $2 + local.get $4 + call $~lib/typedarray/Float64Array#__get + local.get $0 + local.get $1 + i32.const 1 + i32.sub + local.get $4 + i32.sub + call $~lib/array/Array#__get + f64.convert_i32_s + f64.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 547 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $for-loop|1 + end end - local.get $4 - local.set $12 global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/array/Array#get:length local.get $3 - i32.add - local.get $5 - local.set $12 + i32.const 4 + i32.const 8 + call $~lib/typedarray/Float64Array#subarray + local.set $7 global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/typedarray/Uint8ClampedArray#get:length - i32.gt_s + local.get $7 + i32.store offset=12 + local.get $7 + call $~lib/typedarray/Float64Array#reverse + local.tee $6 + i32.store offset=16 + local.get $6 + i32.const 0 + call $~lib/typedarray/Float64Array#__get + f64.const 8 + f64.eq + i32.eqz if - i32.const 336 - i32.const 608 - i32.const 1865 - i32.const 47 + i32.const 0 + i32.const 544 + i32.const 552 + i32.const 3 call $~lib/builtins/abort unreachable end + local.get $6 i32.const 1 - i32.const 0 - i32.eq - if (result i32) + call $~lib/typedarray/Float64Array#__get + f64.const 7 + f64.eq + i32.eqz + if i32.const 0 + i32.const 544 + i32.const 553 i32.const 3 - i32.eq - else + call $~lib/builtins/abort + unreachable + end + local.get $6 + i32.const 2 + call $~lib/typedarray/Float64Array#__get + f64.const 6 + f64.eq + i32.eqz + if i32.const 0 + i32.const 544 + i32.const 554 + i32.const 3 + call $~lib/builtins/abort + unreachable end - if (result i32) - i32.const 1 - if (result i32) - i32.const 0 - else - i32.const 0 - end - i32.eqz - else + local.get $6 + i32.const 3 + call $~lib/typedarray/Float64Array#__get + f64.const 5 + f64.eq + i32.eqz + if i32.const 0 + i32.const 544 + i32.const 555 + i32.const 3 + call $~lib/builtins/abort + unreachable end - drop - local.get $5 - i32.load offset=4 - local.get $3 - i32.const 0 - i32.shl + global.get $~lib/memory/__stack_pointer + i32.const 20 i32.add - local.set $6 - local.get $4 - i32.load offset=4 - local.set $7 - local.get $4 - local.set $12 + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/typedarray/Int8Array#toString (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 + call $~stack_check global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/array/Array#get:length - local.set $8 i32.const 0 - local.set $9 - loop $for-loop|0 - local.get $9 - local.get $8 - i32.lt_s - local.set $10 - local.get $10 - if - i32.const 1 - drop - i32.const 1 - drop - local.get $7 - local.get $9 - i32.const 3 - i32.shl - i32.add - f64.load - local.set $11 - local.get $6 - local.get $9 - i32.const 0 - i32.shl - i32.add - local.get $11 - local.get $11 - f64.sub - f64.const 0 - f64.eq - if (result i32) - f64.const 0 - f64.const 255 - local.get $11 - f64.min - f64.max - i32.trunc_f64_u - else - i32.const 0 - end - i32.store8 - local.get $9 - i32.const 1 - i32.add - local.set $9 - br $for-loop|0 - end - end + i32.store + local.get $0 + i32.const 7856 + local.set $1 global.get $~lib/memory/__stack_pointer - i32.const 12 + local.get $1 + i32.store + local.get $1 + call $~lib/typedarray/Int8Array#join + 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/typedarray/Uint8ClampedArray#set<~lib/typedarray/Uint8Array> (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) + (func $std/typedarray/testArrayJoinAndToString<~lib/typedarray/Int8Array,i8> + (local $0 i32) + (local $1 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check @@ -59821,107 +44110,123 @@ 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 - local.tee $5 + i32.const 0 + i32.const 5 + call $~lib/typedarray/Int8Array#constructor + local.tee $0 i32.store + local.get $0 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Int8Array#__set + local.get $0 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Int8Array#__set + local.get $0 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Int8Array#__set + local.get $0 + i32.const 3 + i32.const 4 + call $~lib/typedarray/Int8Array#__set + local.get $0 + i32.const 4 + i32.const 5 + call $~lib/typedarray/Int8Array#__set + i32.const 0 + drop + local.get $0 + i32.const 7856 + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=12 + local.get $1 + call $~lib/typedarray/Int8Array#join + local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - local.tee $4 i32.store offset=4 - local.get $2 - local.set $3 - i32.const 0 - drop - local.get $3 - i32.const 0 - i32.lt_s + local.get $1 + i32.const 7888 + 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 336 - i32.const 608 - i32.const 1864 - i32.const 19 + i32.const 0 + i32.const 544 + i32.const 652 + i32.const 5 call $~lib/builtins/abort unreachable end - local.get $4 - local.set $6 + local.get $0 + call $~lib/typedarray/Int8Array#toString + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=8 - local.get $6 - call $~lib/typedarray/Uint8Array#get:length - local.get $3 - i32.add - local.get $5 - local.set $6 + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 7888 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $1 i32.store offset=8 - local.get $6 - call $~lib/typedarray/Uint8ClampedArray#get:length - i32.gt_s + local.get $1 + call $~lib/string/String.__eq + i32.eqz if - i32.const 336 - i32.const 608 - i32.const 1865 - i32.const 47 + i32.const 0 + i32.const 544 + i32.const 653 + i32.const 5 call $~lib/builtins/abort unreachable end - i32.const 1 - i32.const 1 - i32.eq - if (result i32) - i32.const 0 - i32.const 0 - i32.eq - else - i32.const 0 - end - if (result i32) - i32.const 1 - if (result i32) - i32.const 0 - else - i32.const 0 - end - i32.eqz - else - i32.const 0 - end - drop - local.get $5 - i32.load offset=4 - local.get $3 - i32.const 0 - i32.shl + global.get $~lib/memory/__stack_pointer + i32.const 16 i32.add - local.get $4 - i32.load offset=4 - local.get $4 - i32.load offset=8 - call $~lib/memory/memory.copy + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/typedarray/Uint8Array#toString (param $0 i32) (result i32) + (local $1 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 + i32.const 0 + i32.store + local.get $0 + i32.const 7856 + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + call $~lib/typedarray/Uint8Array#join + 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/typedarray/Uint8ClampedArray#set<~lib/typedarray/Int16Array> (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) + (func $std/typedarray/testArrayJoinAndToString<~lib/typedarray/Uint8Array,u8> + (local $0 i32) + (local $1 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check @@ -59929,167 +44234,123 @@ 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 - local.tee $5 + i32.const 0 + i32.const 5 + call $~lib/typedarray/Uint8Array#constructor + local.tee $0 i32.store + local.get $0 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Uint8Array#__set + local.get $0 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Uint8Array#__set + local.get $0 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Uint8Array#__set + local.get $0 + i32.const 3 + i32.const 4 + call $~lib/typedarray/Uint8Array#__set + local.get $0 + i32.const 4 + i32.const 5 + call $~lib/typedarray/Uint8Array#__set + i32.const 0 + drop + local.get $0 + i32.const 7856 + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=12 + local.get $1 + call $~lib/typedarray/Uint8Array#join + local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - local.tee $4 i32.store offset=4 - local.get $2 - local.set $3 - i32.const 0 - drop - local.get $3 - i32.const 0 - i32.lt_s + local.get $1 + i32.const 7888 + 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 336 - i32.const 608 - i32.const 1864 - i32.const 19 + i32.const 0 + i32.const 544 + i32.const 652 + i32.const 5 call $~lib/builtins/abort unreachable end - local.get $4 - local.set $12 + local.get $0 + call $~lib/typedarray/Uint8Array#toString + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/typedarray/Int16Array#get:length - local.get $3 - i32.add - local.get $5 - local.set $12 + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 7888 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $1 i32.store offset=8 - local.get $12 - call $~lib/typedarray/Uint8ClampedArray#get:length - i32.gt_s + local.get $1 + call $~lib/string/String.__eq + i32.eqz if - i32.const 336 - i32.const 608 - i32.const 1865 - i32.const 47 + i32.const 0 + i32.const 544 + i32.const 653 + i32.const 5 call $~lib/builtins/abort unreachable end - i32.const 1 - i32.const 1 - i32.eq - if (result i32) - i32.const 0 - i32.const 1 - i32.eq - else - i32.const 0 - end - if (result i32) - i32.const 1 - if (result i32) - i32.const 1 - else - i32.const 0 - end - i32.eqz - else - i32.const 0 - end - drop - local.get $5 - i32.load offset=4 - local.get $3 - i32.const 0 - i32.shl + global.get $~lib/memory/__stack_pointer + i32.const 16 i32.add - local.set $6 - local.get $4 - i32.load offset=4 - local.set $7 - local.get $4 - local.set $12 + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/typedarray/Uint8ClampedArray#toString (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 + call $~stack_check global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/typedarray/Int16Array#get:length - local.set $8 i32.const 0 - local.set $9 - loop $for-loop|0 - local.get $9 - local.get $8 - i32.lt_s - local.set $10 - local.get $10 - if - i32.const 1 - drop - i32.const 0 - drop - local.get $7 - local.get $9 - i32.const 1 - i32.shl - i32.add - i32.load16_s - local.set $11 - i32.const 1 - i32.eqz - drop - i32.const 1 - i32.const 4 - i32.le_u - drop - local.get $6 - local.get $9 - i32.const 0 - i32.shl - i32.add - local.get $11 - i32.const 31 - i32.shr_s - i32.const -1 - i32.xor - i32.const 255 - local.get $11 - i32.sub - i32.const 31 - i32.shr_s - local.get $11 - i32.or - i32.and - i32.store8 - local.get $9 - i32.const 1 - i32.add - local.set $9 - br $for-loop|0 - end - end + i32.store + local.get $0 + i32.const 7856 + local.set $1 global.get $~lib/memory/__stack_pointer - i32.const 12 + local.get $1 + i32.store + local.get $1 + call $~lib/typedarray/Uint8ClampedArray#join + 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/typedarray/Uint8ClampedArray#set<~lib/array/Array> (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) + (func $std/typedarray/testArrayJoinAndToString<~lib/typedarray/Uint8ClampedArray,u8> + (local $0 i32) + (local $1 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check @@ -60097,164 +44358,123 @@ 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 - local.tee $5 + i32.const 0 + i32.const 5 + call $~lib/typedarray/Uint8ClampedArray#constructor + local.tee $0 i32.store + local.get $0 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Uint8ClampedArray#__set + local.get $0 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Uint8ClampedArray#__set + local.get $0 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Uint8ClampedArray#__set + local.get $0 + i32.const 3 + i32.const 4 + call $~lib/typedarray/Uint8ClampedArray#__set + local.get $0 + i32.const 4 + i32.const 5 + call $~lib/typedarray/Uint8ClampedArray#__set + i32.const 0 + drop + local.get $0 + i32.const 7856 + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=12 + local.get $1 + call $~lib/typedarray/Uint8ClampedArray#join + local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - local.tee $4 i32.store offset=4 - local.get $2 - local.set $3 - i32.const 0 - drop - local.get $3 - i32.const 0 - i32.lt_s + local.get $1 + i32.const 7888 + 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 336 - i32.const 608 - i32.const 1864 - i32.const 19 + i32.const 0 + i32.const 544 + i32.const 652 + i32.const 5 call $~lib/builtins/abort unreachable end - local.get $4 - local.set $12 + local.get $0 + call $~lib/typedarray/Uint8ClampedArray#toString + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/array/Array#get:length - local.get $3 - i32.add - local.get $5 - local.set $12 + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 7888 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $1 i32.store offset=8 - local.get $12 - call $~lib/typedarray/Uint8ClampedArray#get:length - i32.gt_s + local.get $1 + call $~lib/string/String.__eq + i32.eqz if - i32.const 336 - i32.const 608 - i32.const 1865 - i32.const 47 + i32.const 0 + i32.const 544 + i32.const 653 + i32.const 5 call $~lib/builtins/abort unreachable end - i32.const 1 - i32.const 1 - i32.eq - if (result i32) - i32.const 0 - i32.const 0 - i32.eq - else - i32.const 0 - end - if (result i32) - i32.const 1 - if (result i32) - i32.const 1 - else - i32.const 0 - end - i32.eqz - else - i32.const 0 - end - drop - local.get $5 - i32.load offset=4 - local.get $3 - i32.const 0 - i32.shl + global.get $~lib/memory/__stack_pointer + i32.const 16 i32.add - local.set $6 - local.get $4 - i32.load offset=4 - local.set $7 - local.get $4 - local.set $12 + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/typedarray/Int16Array#toString (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 + call $~stack_check global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/array/Array#get:length - local.set $8 i32.const 0 - local.set $9 - loop $for-loop|0 - local.get $9 - local.get $8 - i32.lt_s - local.set $10 - local.get $10 - if - i32.const 1 - drop - i32.const 0 - drop - local.get $7 - local.get $9 - i32.const 0 - i32.shl - i32.add - i32.load8_s - local.set $11 - i32.const 1 - i32.eqz - drop - i32.const 1 - i32.const 4 - i32.le_u - drop - local.get $6 - local.get $9 - i32.const 0 - i32.shl - i32.add - local.get $11 - i32.const 31 - i32.shr_s - i32.const -1 - i32.xor - i32.const 255 - local.get $11 - i32.sub - i32.const 31 - i32.shr_s - local.get $11 - i32.or - i32.and - i32.store8 - local.get $9 - i32.const 1 - i32.add - local.set $9 - br $for-loop|0 - end - end + i32.store + local.get $0 + i32.const 7856 + local.set $1 global.get $~lib/memory/__stack_pointer - i32.const 12 + local.get $1 + i32.store + local.get $1 + call $~lib/typedarray/Int16Array#join + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer + local.get $1 ) - (func $std/typedarray/testTypedArraySet<~lib/typedarray/Uint8ClampedArray> + (func $std/typedarray/testArrayJoinAndToString<~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) global.get $~lib/memory/__stack_pointer - i32.const 24 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check @@ -60265,326 +44485,368 @@ i64.const 0 i64.store offset=8 global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=16 - global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 3 - call $~lib/typedarray/Int64Array#constructor + i32.const 5 + call $~lib/typedarray/Int16Array#constructor local.tee $0 i32.store local.get $0 - local.set $6 - 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 + i32.const 1 + call $~lib/typedarray/Int16Array#__set local.get $0 - local.set $6 - 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 + i32.const 2 + call $~lib/typedarray/Int16Array#__set local.get $0 - local.set $6 - 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 0 + i32.const 3 + call $~lib/typedarray/Int16Array#__set + local.get $0 + i32.const 3 i32.const 4 - call $~lib/typedarray/Uint8Array#constructor - local.tee $1 - i32.store offset=8 + call $~lib/typedarray/Int16Array#__set + local.get $0 + i32.const 4 + i32.const 5 + call $~lib/typedarray/Int16Array#__set + i32.const 0 + drop + local.get $0 + i32.const 7856 + local.set $1 + global.get $~lib/memory/__stack_pointer local.get $1 - local.set $6 + i32.store offset=12 + local.get $1 + call $~lib/typedarray/Int16Array#join + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $1 i32.store offset=4 - local.get $6 - i32.const 0 - i32.const 100 - call $~lib/typedarray/Uint8Array#__set local.get $1 - local.set $6 + i32.const 7888 + local.set $1 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 local.get $1 - local.set $6 + i32.store offset=8 + local.get $1 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 652 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + call $~lib/typedarray/Int16Array#toString + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $1 i32.store offset=4 - local.get $6 - i32.const 2 - i32.const 102 - call $~lib/typedarray/Uint8Array#__set local.get $1 - local.set $6 + i32.const 7888 + local.set $1 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 + local.get $1 + i32.store offset=8 + local.get $1 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 653 + i32.const 5 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 3 - call $~lib/typedarray/Int16Array#constructor - local.tee $2 - i32.store offset=12 - local.get $2 - local.set $6 + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/typedarray/Uint16Array#toString (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 + call $~stack_check global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 i32.const 0 - i32.const 1000 - call $~lib/typedarray/Int16Array#__set - local.get $2 - local.set $6 + i32.store + local.get $0 + i32.const 7856 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 1 - i32.const 1001 - call $~lib/typedarray/Int16Array#__set - local.get $2 - local.set $6 + local.get $1 + i32.store + local.get $1 + call $~lib/typedarray/Uint16Array#join + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 2 - i32.const 1002 - call $~lib/typedarray/Int16Array#__set + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $std/typedarray/testArrayJoinAndToString<~lib/typedarray/Uint16Array,u16> + (local $0 i32) + (local $1 i32) global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 10 - call $~lib/typedarray/Uint8ClampedArray#constructor - local.tee $3 - i32.store offset=16 - local.get $3 - local.set $6 + i32.const 16 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - global.get $std/typedarray/setSource1 - local.set $6 + i64.const 0 + i64.store global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=20 - local.get $6 - i32.const 0 - call $~lib/typedarray/Uint8ClampedArray#set<~lib/array/Array> - local.get $3 - local.set $6 + i64.const 0 + i64.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 10 i32.const 0 - i32.const 63 - i32.const 10000 - call $~lib/rt/__newArray - local.set $6 + i32.const 5 + call $~lib/typedarray/Uint16Array#constructor + local.tee $0 + i32.store + local.get $0 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Uint16Array#__set + local.get $0 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Uint16Array#__set + local.get $0 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Uint16Array#__set + local.get $0 + i32.const 3 + i32.const 4 + call $~lib/typedarray/Uint16Array#__set + local.get $0 + i32.const 4 + i32.const 5 + call $~lib/typedarray/Uint16Array#__set + i32.const 0 + drop + local.get $0 + i32.const 7856 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=20 - local.get $6 - call $std/typedarray/valuesEqual<~lib/typedarray/Uint8ClampedArray> - local.get $3 - local.set $6 + local.get $1 + i32.store offset=12 + local.get $1 + call $~lib/typedarray/Uint16Array#join + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $1 i32.store offset=4 - local.get $6 - global.get $std/typedarray/setSource2 - local.set $6 + local.get $1 + i32.const 7888 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=20 - local.get $6 - i32.const 3 - call $~lib/typedarray/Uint8ClampedArray#set<~lib/array/Array> - local.get $3 - local.set $6 + local.get $1 + i32.store offset=8 + local.get $1 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 652 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + call $~lib/typedarray/Uint16Array#toString + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $1 i32.store offset=4 - local.get $6 - i32.const 10 - i32.const 0 - i32.const 63 - i32.const 10096 - call $~lib/rt/__newArray - local.set $6 + local.get $1 + i32.const 7888 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=20 - local.get $6 - call $std/typedarray/valuesEqual<~lib/typedarray/Uint8ClampedArray> - local.get $3 - local.set $6 + local.get $1 + i32.store offset=8 + local.get $1 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 653 + 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 $0 - local.set $6 + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/typedarray/Int32Array#toString (param $0 i32) (result i32) + (local $1 i32) global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=20 - local.get $6 - i32.const 6 - call $~lib/typedarray/Uint8ClampedArray#set<~lib/typedarray/Int64Array> - local.get $3 - local.set $6 + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 10 i32.const 0 - i32.const 63 - i32.const 10128 - call $~lib/rt/__newArray - local.set $6 + i32.store + local.get $0 + i32.const 7856 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=20 - local.get $6 - call $std/typedarray/valuesEqual<~lib/typedarray/Uint8ClampedArray> - i32.const 1 - drop - local.get $3 - local.set $6 + local.get $1 + i32.store + local.get $1 + call $~lib/typedarray/Int32Array#join + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - global.get $std/typedarray/setSource3 - local.set $6 + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $std/typedarray/testArrayJoinAndToString<~lib/typedarray/Int32Array,i32> + (local $0 i32) + (local $1 i32) global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=20 - local.get $6 - i32.const 2 - call $~lib/typedarray/Uint8ClampedArray#set<~lib/array/Array> - local.get $3 - local.set $6 + 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 global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 10 i32.const 0 - i32.const 63 - i32.const 10160 - call $~lib/rt/__newArray - local.set $6 + i32.const 5 + call $~lib/typedarray/Int32Array#constructor + local.tee $0 + i32.store + local.get $0 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Int32Array#__set + local.get $0 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Int32Array#__set + local.get $0 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Int32Array#__set + local.get $0 + i32.const 3 + i32.const 4 + call $~lib/typedarray/Int32Array#__set + local.get $0 + i32.const 4 + i32.const 5 + call $~lib/typedarray/Int32Array#__set + i32.const 0 + drop + local.get $0 + i32.const 7856 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=20 - local.get $6 - call $std/typedarray/valuesEqual<~lib/typedarray/Uint8ClampedArray> - local.get $3 - local.set $6 + local.get $1 + i32.store offset=12 + local.get $1 + call $~lib/typedarray/Int32Array#join + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $1 i32.store offset=4 - local.get $6 local.get $1 - local.set $6 + i32.const 7888 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=20 - local.get $6 - i32.const 0 - call $~lib/typedarray/Uint8ClampedArray#set<~lib/typedarray/Uint8Array> - local.get $3 - local.set $6 + local.get $1 + i32.store offset=8 + local.get $1 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 652 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + call $~lib/typedarray/Int32Array#toString + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $1 i32.store offset=4 - local.get $6 - local.get $2 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=20 - local.get $6 - i32.const 4 - call $~lib/typedarray/Uint8ClampedArray#set<~lib/typedarray/Int16Array> - local.get $3 - local.set $6 + local.get $1 + i32.const 7888 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - global.get $std/typedarray/setSource7 - local.set $6 + local.get $1 + i32.store offset=8 + local.get $1 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 653 + i32.const 5 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=20 - local.get $6 - i32.const 7 - call $~lib/typedarray/Uint8ClampedArray#set<~lib/array/Array> - i32.const 1 - drop - local.get $3 - local.set $6 + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/typedarray/Uint32Array#toString (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 + call $~stack_check global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 10 i32.const 0 - i32.const 63 - i32.const 10192 - call $~lib/rt/__newArray - local.set $6 + i32.store + local.get $0 + i32.const 7856 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=20 - local.get $6 - call $std/typedarray/valuesEqual<~lib/typedarray/Uint8ClampedArray> + local.get $1 + i32.store + local.get $1 + call $~lib/typedarray/Uint32Array#join + local.set $1 global.get $~lib/memory/__stack_pointer - i32.const 24 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer + local.get $1 ) - (func $~lib/typedarray/Int16Array#set<~lib/array/Array> (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) + (func $std/typedarray/testArrayJoinAndToString<~lib/typedarray/Uint32Array,u32> + (local $0 i32) + (local $1 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check @@ -60592,154 +44854,95 @@ 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 - local.tee $5 + i32.const 0 + i32.const 5 + call $~lib/typedarray/Uint32Array#constructor + local.tee $0 i32.store + local.get $0 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Uint32Array#__set + local.get $0 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Uint32Array#__set + local.get $0 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Uint32Array#__set + local.get $0 + i32.const 3 + i32.const 4 + call $~lib/typedarray/Uint32Array#__set + local.get $0 + i32.const 4 + i32.const 5 + call $~lib/typedarray/Uint32Array#__set + i32.const 0 + drop + local.get $0 + i32.const 7856 + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=12 + local.get $1 + call $~lib/typedarray/Uint32Array#join + local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - local.tee $4 i32.store offset=4 - local.get $2 - local.set $3 - i32.const 0 - drop - local.get $3 - i32.const 0 - i32.lt_s + local.get $1 + i32.const 7888 + 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 336 - i32.const 608 - i32.const 1864 - i32.const 19 + i32.const 0 + i32.const 544 + i32.const 652 + i32.const 5 call $~lib/builtins/abort unreachable end - local.get $4 - local.set $11 + local.get $0 + call $~lib/typedarray/Uint32Array#toString + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=8 - local.get $11 - call $~lib/array/Array#get:length - local.get $3 - i32.add - local.get $5 - local.set $11 + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 7888 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $1 i32.store offset=8 - local.get $11 - call $~lib/typedarray/Int16Array#get:length - i32.gt_s + local.get $1 + call $~lib/string/String.__eq + i32.eqz if - i32.const 336 - i32.const 608 - i32.const 1865 - i32.const 47 + i32.const 0 + i32.const 544 + i32.const 653 + i32.const 5 call $~lib/builtins/abort unreachable end - i32.const 1 - i32.const 1 - i32.eq - if (result i32) - i32.const 1 - i32.const 2 - i32.eq - else - i32.const 0 - end - if (result i32) - i32.const 0 - if (result i32) - i32.const 1 - else - i32.const 0 - end - i32.eqz - else - i32.const 0 - end - drop - local.get $5 - i32.load offset=4 - local.get $3 - i32.const 1 - i32.shl - i32.add - local.set $6 - local.get $4 - i32.load offset=4 - local.set $7 - local.get $4 - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=8 - local.get $11 - call $~lib/array/Array#get:length - local.set $8 - i32.const 0 - local.set $9 - loop $for-loop|0 - local.get $9 - local.get $8 - i32.lt_s - local.set $10 - local.get $10 - if - i32.const 0 - drop - i32.const 0 - if (result i32) - i32.const 0 - i32.eqz - else - i32.const 0 - end - drop - i32.const 0 - if (result i32) - i32.const 0 - i32.eqz - else - i32.const 0 - end - drop - local.get $6 - local.get $9 - i32.const 1 - i32.shl - i32.add - local.get $7 - local.get $9 - i32.const 2 - i32.shl - i32.add - i32.load - i32.store16 - local.get $9 - i32.const 1 - i32.add - local.set $9 - br $for-loop|0 - end - end global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer ) - (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 $7 i32) + (func $~lib/typedarray/Int64Array#toString (param $0 i32) (result i32) + (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -60749,114 +44952,25 @@ i32.const 0 i32.store local.get $0 - local.set $7 + i32.const 7856 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store - local.get $7 - call $~lib/typedarray/Int16Array#get:length - local.set $2 - local.get $2 local.get $1 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 i32.store - local.get $7 - call $~lib/array/Array#get:length - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 735 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 0 - local.set $3 - loop $for-loop|0 - local.get $3 - local.get $2 - i32.lt_s - local.set $4 - local.get $4 - if - local.get $0 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store - local.get $7 - local.get $3 - call $~lib/typedarray/Int16Array#__uget - local.set $5 - local.get $1 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store - local.get $7 - local.get $3 - call $~lib/array/Array#__uget - local.set $6 - local.get $5 - local.get $6 - i32.ne - if - i32.const 10272 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store - local.get $7 - i32.const 3 - local.get $3 - f64.convert_i32_s - local.get $5 - f64.convert_i32_s - local.get $6 - f64.convert_i32_s - f64.const 0 - f64.const 0 - call $~lib/builtins/trace - i32.const 0 - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 741 - i32.const 7 - call $~lib/builtins/abort - unreachable - end - end - local.get $3 - i32.const 1 - i32.add - local.set $3 - br $for-loop|0 - end - end + local.get $1 + call $~lib/typedarray/Int64Array#join + 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/typedarray/Int16Array#set<~lib/array/Array> (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 f32) - (local $12 i32) + (func $std/typedarray/testArrayJoinAndToString<~lib/typedarray/Int64Array,i64> + (local $0 i32) + (local $1 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check @@ -60864,163 +44978,123 @@ 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 - local.tee $5 + i32.const 0 + i32.const 5 + call $~lib/typedarray/Int64Array#constructor + local.tee $0 i32.store + local.get $0 + i32.const 0 + i64.const 1 + call $~lib/typedarray/Int64Array#__set + local.get $0 + i32.const 1 + i64.const 2 + call $~lib/typedarray/Int64Array#__set + local.get $0 + i32.const 2 + i64.const 3 + call $~lib/typedarray/Int64Array#__set + local.get $0 + i32.const 3 + i64.const 4 + call $~lib/typedarray/Int64Array#__set + local.get $0 + i32.const 4 + i64.const 5 + call $~lib/typedarray/Int64Array#__set + i32.const 0 + drop + local.get $0 + i32.const 7856 + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=12 + local.get $1 + call $~lib/typedarray/Int64Array#join + local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - local.tee $4 i32.store offset=4 - local.get $2 - local.set $3 - i32.const 0 - drop - local.get $3 - i32.const 0 - i32.lt_s + local.get $1 + i32.const 7888 + 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 336 - i32.const 608 - i32.const 1864 - i32.const 19 + i32.const 0 + i32.const 544 + i32.const 652 + i32.const 5 call $~lib/builtins/abort unreachable end - local.get $4 - local.set $12 + local.get $0 + call $~lib/typedarray/Int64Array#toString + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/array/Array#get:length - local.get $3 - i32.add - local.get $5 - local.set $12 + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 7888 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $1 i32.store offset=8 - local.get $12 - call $~lib/typedarray/Int16Array#get:length - i32.gt_s + local.get $1 + call $~lib/string/String.__eq + i32.eqz if - i32.const 336 - i32.const 608 - i32.const 1865 - i32.const 47 + i32.const 0 + i32.const 544 + i32.const 653 + i32.const 5 call $~lib/builtins/abort unreachable end - i32.const 1 - i32.const 0 - i32.eq - if (result i32) - i32.const 1 - i32.const 2 - i32.eq - else - i32.const 0 - end - if (result i32) - i32.const 0 - if (result i32) - i32.const 0 - else - i32.const 0 - end - i32.eqz - else - i32.const 0 - end - drop - local.get $5 - i32.load offset=4 - local.get $3 - i32.const 1 - i32.shl + global.get $~lib/memory/__stack_pointer + i32.const 16 i32.add - local.set $6 - local.get $4 - i32.load offset=4 - local.set $7 - local.get $4 - local.set $12 + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/typedarray/Uint64Array#toString (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 + call $~stack_check global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/array/Array#get:length - local.set $8 i32.const 0 - local.set $9 - loop $for-loop|0 - local.get $9 - local.get $8 - i32.lt_s - local.set $10 - local.get $10 - if - i32.const 0 - drop - i32.const 1 - if (result i32) - i32.const 0 - i32.eqz - else - i32.const 0 - end - drop - local.get $7 - local.get $9 - i32.const 2 - i32.shl - i32.add - f32.load - local.set $11 - local.get $6 - local.get $9 - i32.const 1 - i32.shl - i32.add - local.get $11 - local.get $11 - f32.sub - f32.const 0 - f32.eq - if (result i32) - local.get $11 - i32.trunc_f32_s - else - i32.const 0 - end - i32.store16 - local.get $9 - i32.const 1 - i32.add - local.set $9 - br $for-loop|0 - end - end + i32.store + local.get $0 + i32.const 7856 + local.set $1 global.get $~lib/memory/__stack_pointer - i32.const 12 + local.get $1 + i32.store + local.get $1 + call $~lib/typedarray/Uint64Array#join + 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/typedarray/Int16Array#set<~lib/typedarray/Int64Array> (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) + (func $std/typedarray/testArrayJoinAndToString<~lib/typedarray/Uint64Array,u64> + (local $0 i32) + (local $1 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check @@ -61028,160 +45102,123 @@ 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 - local.tee $5 + i32.const 0 + i32.const 5 + call $~lib/typedarray/Uint64Array#constructor + local.tee $0 i32.store + local.get $0 + i32.const 0 + i64.const 1 + call $~lib/typedarray/Uint64Array#__set + local.get $0 + i32.const 1 + i64.const 2 + call $~lib/typedarray/Uint64Array#__set + local.get $0 + i32.const 2 + i64.const 3 + call $~lib/typedarray/Uint64Array#__set + local.get $0 + i32.const 3 + i64.const 4 + call $~lib/typedarray/Uint64Array#__set + local.get $0 + i32.const 4 + i64.const 5 + call $~lib/typedarray/Uint64Array#__set + i32.const 0 + drop + local.get $0 + i32.const 7856 + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=12 + local.get $1 + call $~lib/typedarray/Uint64Array#join + local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - local.tee $4 i32.store offset=4 - local.get $2 - local.set $3 - i32.const 0 - drop - local.get $3 - i32.const 0 - i32.lt_s + local.get $1 + i32.const 7888 + 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 336 - i32.const 608 - i32.const 1864 - i32.const 19 + i32.const 0 + i32.const 544 + i32.const 652 + i32.const 5 call $~lib/builtins/abort unreachable end - local.get $4 - local.set $11 + local.get $0 + call $~lib/typedarray/Uint64Array#toString + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=8 - local.get $11 - call $~lib/typedarray/Int64Array#get:length - local.get $3 - i32.add - local.get $5 - local.set $11 + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 7888 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $1 i32.store offset=8 - local.get $11 - call $~lib/typedarray/Int16Array#get:length - i32.gt_s + local.get $1 + call $~lib/string/String.__eq + i32.eqz if - i32.const 336 - i32.const 608 - i32.const 1865 - i32.const 47 + i32.const 0 + i32.const 544 + i32.const 653 + i32.const 5 call $~lib/builtins/abort unreachable end - i32.const 1 - i32.const 1 - i32.eq - if (result i32) - i32.const 1 - i32.const 3 - i32.eq - else - i32.const 0 - end - if (result i32) - i32.const 0 - if (result i32) - i32.const 1 - else - i32.const 0 - end - i32.eqz - else - i32.const 0 - end - drop - local.get $5 - i32.load offset=4 - local.get $3 - i32.const 1 - i32.shl + global.get $~lib/memory/__stack_pointer + i32.const 16 i32.add - local.set $6 - local.get $4 - i32.load offset=4 - local.set $7 - local.get $4 - local.set $11 + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/typedarray/Float32Array#toString (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 + call $~stack_check global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=8 - local.get $11 - call $~lib/typedarray/Int64Array#get:length - local.set $8 i32.const 0 - local.set $9 - loop $for-loop|0 - local.get $9 - local.get $8 - i32.lt_s - local.set $10 - local.get $10 - if - i32.const 0 - drop - i32.const 0 - if (result i32) - i32.const 0 - i32.eqz - else - i32.const 0 - end - drop - i32.const 0 - if (result i32) - i32.const 0 - i32.eqz - else - i32.const 0 - end - drop - local.get $6 - local.get $9 - i32.const 1 - i32.shl - i32.add - local.get $7 - local.get $9 - i32.const 3 - i32.shl - i32.add - i64.load - i64.store16 - local.get $9 - i32.const 1 - i32.add - local.set $9 - br $for-loop|0 - end - end + i32.store + local.get $0 + i32.const 7856 + local.set $1 global.get $~lib/memory/__stack_pointer - i32.const 12 + local.get $1 + i32.store + local.get $1 + call $~lib/typedarray/Float32Array#join + 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/typedarray/Int16Array#set<~lib/array/Array> (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 f64) - (local $12 i32) + (func $std/typedarray/testArrayJoinAndToString<~lib/typedarray/Float32Array,f32> + (local $0 i32) + (local $1 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check @@ -61189,163 +45226,123 @@ 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 - local.tee $5 + i32.const 0 + i32.const 5 + call $~lib/typedarray/Float32Array#constructor + local.tee $0 i32.store + local.get $0 + i32.const 0 + f32.const 1 + call $~lib/typedarray/Float32Array#__set + local.get $0 + i32.const 1 + f32.const 2 + call $~lib/typedarray/Float32Array#__set + local.get $0 + i32.const 2 + f32.const 3 + call $~lib/typedarray/Float32Array#__set + local.get $0 + i32.const 3 + f32.const 4 + call $~lib/typedarray/Float32Array#__set + local.get $0 + i32.const 4 + f32.const 5 + call $~lib/typedarray/Float32Array#__set + i32.const 1 + drop + local.get $0 + i32.const 7856 + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=12 + local.get $1 + call $~lib/typedarray/Float32Array#join + local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - local.tee $4 i32.store offset=4 - local.get $2 - local.set $3 - i32.const 0 - drop - local.get $3 - i32.const 0 - i32.lt_s + local.get $1 + i32.const 9072 + 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 336 - i32.const 608 - i32.const 1864 - i32.const 19 + i32.const 0 + i32.const 544 + i32.const 649 + i32.const 5 call $~lib/builtins/abort unreachable end - local.get $4 - local.set $12 + local.get $0 + call $~lib/typedarray/Float32Array#toString + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/array/Array#get:length - local.get $3 - i32.add - local.get $5 - local.set $12 + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 9072 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $1 i32.store offset=8 - local.get $12 - call $~lib/typedarray/Int16Array#get:length - i32.gt_s + local.get $1 + call $~lib/string/String.__eq + i32.eqz if - i32.const 336 - i32.const 608 - i32.const 1865 - i32.const 47 + i32.const 0 + i32.const 544 + i32.const 650 + i32.const 5 call $~lib/builtins/abort unreachable end - i32.const 1 - i32.const 0 - i32.eq - if (result i32) - i32.const 1 - i32.const 3 - i32.eq - else - i32.const 0 - end - if (result i32) - i32.const 0 - if (result i32) - i32.const 0 - else - i32.const 0 - end - i32.eqz - else - i32.const 0 - end - drop - local.get $5 - i32.load offset=4 - local.get $3 - i32.const 1 - i32.shl + global.get $~lib/memory/__stack_pointer + i32.const 16 i32.add - local.set $6 - local.get $4 - i32.load offset=4 - local.set $7 - local.get $4 - local.set $12 + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/typedarray/Float64Array#toString (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 + call $~stack_check global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/array/Array#get:length - local.set $8 i32.const 0 - local.set $9 - loop $for-loop|0 - local.get $9 - local.get $8 - i32.lt_s - local.set $10 - local.get $10 - if - i32.const 0 - drop - i32.const 1 - if (result i32) - i32.const 0 - i32.eqz - else - i32.const 0 - end - drop - local.get $7 - local.get $9 - i32.const 3 - i32.shl - i32.add - f64.load - local.set $11 - local.get $6 - local.get $9 - i32.const 1 - i32.shl - i32.add - local.get $11 - local.get $11 - f64.sub - f64.const 0 - f64.eq - if (result i32) - local.get $11 - i32.trunc_f64_s - else - i32.const 0 - end - i32.store16 - local.get $9 - i32.const 1 - i32.add - local.set $9 - br $for-loop|0 - end - end + i32.store + local.get $0 + i32.const 7856 + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + call $~lib/typedarray/Float64Array#join + local.set $1 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer + local.get $1 ) - (func $~lib/typedarray/Int16Array#set<~lib/typedarray/Uint8Array> (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) + (func $std/typedarray/testArrayJoinAndToString<~lib/typedarray/Float64Array,f64> + (local $0 i32) + (local $1 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check @@ -61353,154 +45350,104 @@ 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 - local.tee $5 + i32.const 0 + i32.const 5 + call $~lib/typedarray/Float64Array#constructor + local.tee $0 i32.store + local.get $0 + i32.const 0 + f64.const 1 + call $~lib/typedarray/Float64Array#__set + local.get $0 + i32.const 1 + f64.const 2 + call $~lib/typedarray/Float64Array#__set + local.get $0 + i32.const 2 + f64.const 3 + call $~lib/typedarray/Float64Array#__set + local.get $0 + i32.const 3 + f64.const 4 + call $~lib/typedarray/Float64Array#__set + local.get $0 + i32.const 4 + f64.const 5 + call $~lib/typedarray/Float64Array#__set + i32.const 1 + drop + local.get $0 + i32.const 7856 + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=12 + local.get $1 + call $~lib/typedarray/Float64Array#join + local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - local.tee $4 i32.store offset=4 - local.get $2 - local.set $3 - i32.const 0 - drop - local.get $3 - i32.const 0 - i32.lt_s + local.get $1 + i32.const 9072 + 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 336 - i32.const 608 - i32.const 1864 - i32.const 19 + i32.const 0 + i32.const 544 + i32.const 649 + i32.const 5 call $~lib/builtins/abort unreachable end - local.get $4 - local.set $11 + local.get $0 + call $~lib/typedarray/Float64Array#toString + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=8 - local.get $11 - call $~lib/typedarray/Uint8Array#get:length - local.get $3 - i32.add - local.get $5 - local.set $11 + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 9072 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $1 i32.store offset=8 - local.get $11 - call $~lib/typedarray/Int16Array#get:length - i32.gt_s + local.get $1 + call $~lib/string/String.__eq + i32.eqz if - i32.const 336 - i32.const 608 - i32.const 1865 - i32.const 47 + i32.const 0 + i32.const 544 + i32.const 650 + i32.const 5 call $~lib/builtins/abort unreachable end - i32.const 1 - i32.const 1 - i32.eq - if (result i32) - i32.const 1 - i32.const 0 - i32.eq - else - i32.const 0 - end - if (result i32) - i32.const 0 - if (result i32) - i32.const 0 - else - i32.const 0 - end - i32.eqz - else - i32.const 0 - end - drop - local.get $5 - i32.load offset=4 - local.get $3 - i32.const 1 - i32.shl - i32.add - local.set $6 - local.get $4 - i32.load offset=4 - local.set $7 - local.get $4 - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=8 - local.get $11 - call $~lib/typedarray/Uint8Array#get:length - local.set $8 - i32.const 0 - local.set $9 - loop $for-loop|0 - local.get $9 - local.get $8 - i32.lt_s - local.set $10 - local.get $10 - if - i32.const 0 - drop - i32.const 0 - if (result i32) - i32.const 0 - i32.eqz - else - i32.const 0 - end - drop - i32.const 0 - if (result i32) - i32.const 0 - i32.eqz - else - i32.const 0 - end - drop - local.get $6 - local.get $9 - i32.const 1 - i32.shl - i32.add - local.get $7 - local.get $9 - i32.const 0 - i32.shl - i32.add - i32.load8_u - i32.store16 - local.get $9 - i32.const 1 - i32.add - local.set $9 - br $for-loop|0 - end - end global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/typedarray/Int16Array#set<~lib/typedarray/Int16Array> (param $0 i32) (param $1 i32) (param $2 i32) + (func $std/typedarray/testArrayWrap<~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 12 + i32.const 20 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check @@ -61508,106 +45455,127 @@ 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 0 - i32.store offset=8 + i32.store offset=16 global.get $~lib/memory/__stack_pointer - local.get $0 - local.tee $5 + global.get $std/typedarray/testArrayWrapValues + local.tee $0 i32.store + local.get $0 + call $~lib/array/Array#get:length + local.set $1 global.get $~lib/memory/__stack_pointer + i32.const 0 local.get $1 - local.tee $4 + call $~lib/typedarray/Int8Array#constructor + local.tee $2 i32.store offset=4 - local.get $2 - local.set $3 - i32.const 0 - drop - local.get $3 i32.const 0 - i32.lt_s - if - i32.const 336 - i32.const 608 - i32.const 1864 - i32.const 19 - call $~lib/builtins/abort - unreachable + local.set $3 + loop $for-loop|0 + local.get $3 + local.get $1 + i32.lt_s + local.set $4 + local.get $4 + if + local.get $2 + local.get $3 + local.get $0 + local.get $3 + call $~lib/array/Array#__get + i32.const 24 + i32.shl + i32.const 24 + i32.shr_s + call $~lib/typedarray/Int8Array#__set + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $for-loop|0 + end end - local.get $4 - local.set $6 global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=8 - local.get $6 - call $~lib/typedarray/Int16Array#get:length - local.get $3 - i32.add - local.get $5 - local.set $6 + local.get $2 + i32.load + local.set $7 global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $7 i32.store offset=8 - local.get $6 - call $~lib/typedarray/Int16Array#get:length - i32.gt_s - if - i32.const 336 - i32.const 608 - i32.const 1865 - i32.const 47 - call $~lib/builtins/abort - unreachable - end + local.get $7 + local.get $2 + call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + local.get $2 + call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + local.get $2 + i32.load offset=8 + i32.add + call $~lib/arraybuffer/ArrayBuffer#slice + local.tee $5 + i32.store offset=12 i32.const 1 + drop + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.const 0 i32.const 1 - i32.eq - if (result i32) - i32.const 1 - i32.const 1 - i32.eq - else - i32.const 0 - end - if (result i32) - i32.const 0 - if (result i32) + global.set $~argumentsLength + i32.const 0 + call $~lib/typedarray/Int8Array.wrap@varargs + local.tee $6 + i32.store offset=16 + i32.const 0 + local.set $3 + loop $for-loop|1 + local.get $3 + local.get $1 + i32.lt_s + local.set $4 + local.get $4 + if + local.get $2 + local.get $3 + call $~lib/typedarray/Int8Array#__get + local.get $6 + local.get $3 + call $~lib/typedarray/Int8Array#__get + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 707 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $3 i32.const 1 - else - i32.const 0 + i32.add + local.set $3 + br $for-loop|1 end - i32.eqz - else - i32.const 0 end - drop - local.get $5 - i32.load offset=4 - local.get $3 - i32.const 1 - i32.shl - i32.add - local.get $4 - i32.load offset=4 - local.get $4 - i32.load offset=8 - call $~lib/memory/memory.copy global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 20 i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/typedarray/Int16Array#set<~lib/array/Array> (param $0 i32) (param $1 i32) (param $2 i32) + (func $std/typedarray/testArrayWrap<~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) - (local $9 i32) - (local $10 i32) - (local $11 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 20 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check @@ -61615,148 +45583,117 @@ 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 0 - i32.store offset=8 + i32.store offset=16 global.get $~lib/memory/__stack_pointer - local.get $0 - local.tee $5 + global.get $std/typedarray/testArrayWrapValues + local.tee $0 i32.store + local.get $0 + call $~lib/array/Array#get:length + local.set $1 global.get $~lib/memory/__stack_pointer + i32.const 0 local.get $1 - local.tee $4 + call $~lib/typedarray/Uint8Array#constructor + local.tee $2 i32.store offset=4 - local.get $2 - local.set $3 - i32.const 0 - drop - local.get $3 i32.const 0 - i32.lt_s - if - i32.const 336 - i32.const 608 - i32.const 1864 - i32.const 19 - call $~lib/builtins/abort - unreachable - end - local.get $4 - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=8 - local.get $11 - call $~lib/array/Array#get:length - local.get $3 - i32.add - local.get $5 - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=8 - local.get $11 - call $~lib/typedarray/Int16Array#get:length - i32.gt_s - if - i32.const 336 - i32.const 608 - i32.const 1865 - i32.const 47 - call $~lib/builtins/abort - unreachable - end - i32.const 1 - i32.const 1 - i32.eq - if (result i32) - i32.const 1 - i32.const 0 - i32.eq - else - i32.const 0 - end - if (result i32) - i32.const 0 - if (result i32) + local.set $3 + loop $for-loop|0 + local.get $3 + local.get $1 + i32.lt_s + local.set $4 + local.get $4 + if + local.get $2 + local.get $3 + local.get $0 + local.get $3 + call $~lib/array/Array#__get + i32.const 255 + i32.and + call $~lib/typedarray/Uint8Array#__set + local.get $3 i32.const 1 - else - i32.const 0 + i32.add + local.set $3 + br $for-loop|0 end - i32.eqz - else - i32.const 0 end - drop - local.get $5 - i32.load offset=4 - local.get $3 - i32.const 1 - i32.shl - i32.add - local.set $6 - local.get $4 - i32.load offset=4 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.load local.set $7 - local.get $4 - local.set $11 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $7 i32.store offset=8 - local.get $11 - call $~lib/array/Array#get:length - local.set $8 + local.get $7 + local.get $2 + call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + local.get $2 + call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + local.get $2 + i32.load offset=8 + i32.add + call $~lib/arraybuffer/ArrayBuffer#slice + local.tee $5 + i32.store offset=12 + i32.const 0 + drop + i32.const 1 + drop + global.get $~lib/memory/__stack_pointer + local.get $5 i32.const 0 - local.set $9 - loop $for-loop|0 - local.get $9 - local.get $8 + i32.const 1 + global.set $~argumentsLength + i32.const 0 + call $~lib/typedarray/Uint8Array.wrap@varargs + local.tee $6 + i32.store offset=16 + i32.const 0 + local.set $3 + loop $for-loop|1 + local.get $3 + local.get $1 i32.lt_s - local.set $10 - local.get $10 + local.set $4 + local.get $4 if - i32.const 0 - drop - i32.const 0 - if (result i32) - i32.const 0 - i32.eqz - else - i32.const 0 - end - drop - i32.const 0 - if (result i32) - i32.const 0 - i32.eqz - else + local.get $2 + local.get $3 + call $~lib/typedarray/Uint8Array#__get + local.get $6 + local.get $3 + call $~lib/typedarray/Uint8Array#__get + i32.eq + i32.eqz + if i32.const 0 + i32.const 544 + i32.const 707 + i32.const 5 + call $~lib/builtins/abort + unreachable end - drop - local.get $6 - local.get $9 - i32.const 1 - i32.shl - i32.add - local.get $7 - local.get $9 - i32.const 0 - i32.shl - i32.add - i32.load8_s - i32.store16 - local.get $9 + local.get $3 i32.const 1 i32.add - local.set $9 - br $for-loop|0 + local.set $3 + br $for-loop|1 end end global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 20 i32.add global.set $~lib/memory/__stack_pointer ) - (func $std/typedarray/testTypedArraySet<~lib/typedarray/Int16Array> + (func $std/typedarray/testArrayWrap<~lib/typedarray/Uint8ClampedArray,u8> (local $0 i32) (local $1 i32) (local $2 i32) @@ -61764,8 +45701,9 @@ (local $4 i32) (local $5 i32) (local $6 i32) + (local $7 i32) global.get $~lib/memory/__stack_pointer - i32.const 24 + i32.const 20 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check @@ -61776,326 +45714,260 @@ i64.const 0 i64.store offset=8 global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=16 - global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 3 - call $~lib/typedarray/Int64Array#constructor + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + global.get $std/typedarray/testArrayWrapValues local.tee $0 i32.store local.get $0 - local.set $6 - 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 - local.get $0 - local.set $6 - 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 - local.get $0 - local.set $6 - 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 + call $~lib/array/Array#get:length + local.set $1 global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 4 - call $~lib/typedarray/Uint8Array#constructor - local.tee $1 - i32.store offset=8 local.get $1 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 + call $~lib/typedarray/Uint8ClampedArray#constructor + local.tee $2 i32.store offset=4 - local.get $6 i32.const 0 - i32.const 100 - call $~lib/typedarray/Uint8Array#__set - local.get $1 - local.set $6 - 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 - local.get $1 - local.set $6 - 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 - local.get $1 - local.set $6 - 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 + local.set $3 + loop $for-loop|0 + local.get $3 + local.get $1 + i32.lt_s + local.set $4 + local.get $4 + if + local.get $2 + local.get $3 + local.get $0 + local.get $3 + call $~lib/array/Array#__get + i32.const 255 + i32.and + call $~lib/typedarray/Uint8ClampedArray#__set + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $for-loop|0 + end + end global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 3 - call $~lib/typedarray/Int16Array#constructor - local.tee $2 - i32.store offset=12 local.get $2 - local.set $6 + i32.load + local.set $7 global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - i32.const 1000 - call $~lib/typedarray/Int16Array#__set + local.get $7 + i32.store offset=8 + local.get $7 local.get $2 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 1 - i32.const 1001 - call $~lib/typedarray/Int16Array#__set + call $~lib/arraybuffer/ArrayBufferView#get:byteOffset local.get $2 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 2 - i32.const 1002 - call $~lib/typedarray/Int16Array#__set - global.get $~lib/memory/__stack_pointer + call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + local.get $2 + i32.load offset=8 + i32.add + call $~lib/arraybuffer/ArrayBuffer#slice + local.tee $5 + i32.store offset=12 i32.const 0 - i32.const 10 - call $~lib/typedarray/Int16Array#constructor - local.tee $3 - i32.store offset=16 - local.get $3 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - global.get $std/typedarray/setSource1 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=20 - local.get $6 + drop i32.const 0 - call $~lib/typedarray/Int16Array#set<~lib/array/Array> - local.get $3 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 10 + drop i32.const 1 - i32.const 64 - i32.const 10224 - call $~lib/rt/__newArray - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=20 - local.get $6 - call $std/typedarray/valuesEqual<~lib/typedarray/Int16Array> - local.get $3 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - global.get $std/typedarray/setSource2 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=20 - local.get $6 - i32.const 3 - call $~lib/typedarray/Int16Array#set<~lib/array/Array> - local.get $3 - local.set $6 + drop global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 10 + local.get $5 + i32.const 0 i32.const 1 - i32.const 64 - i32.const 10320 - call $~lib/rt/__newArray - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=20 - local.get $6 - call $std/typedarray/valuesEqual<~lib/typedarray/Int16Array> - local.get $3 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - local.get $0 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=20 - local.get $6 - i32.const 6 - call $~lib/typedarray/Int16Array#set<~lib/typedarray/Int64Array> - local.get $3 - local.set $6 + global.set $~argumentsLength + i32.const 0 + call $~lib/typedarray/Uint8ClampedArray.wrap@varargs + local.tee $6 + i32.store offset=16 + i32.const 0 + local.set $3 + loop $for-loop|1 + local.get $3 + local.get $1 + i32.lt_s + local.set $4 + local.get $4 + if + local.get $2 + local.get $3 + call $~lib/typedarray/Uint8ClampedArray#__get + local.get $6 + local.get $3 + call $~lib/typedarray/Uint8ClampedArray#__get + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 707 + i32.const 5 + call $~lib/builtins/abort + unreachable + 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 $6 - i32.store offset=4 - local.get $6 - i32.const 10 - i32.const 1 - i32.const 64 - i32.const 10368 - call $~lib/rt/__newArray - local.set $6 + i32.const 20 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $std/typedarray/testArrayWrap<~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) global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=20 - local.get $6 - call $std/typedarray/valuesEqual<~lib/typedarray/Int16Array> - i32.const 1 - drop - local.get $3 - local.set $6 + i32.const 20 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - global.get $std/typedarray/setSource3 - local.set $6 + i64.const 0 + i64.store global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=20 - local.get $6 - i32.const 2 - call $~lib/typedarray/Int16Array#set<~lib/array/Array> - local.get $3 - local.set $6 + i64.const 0 + i64.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 10 - i32.const 1 - i32.const 64 - i32.const 10416 - call $~lib/rt/__newArray - local.set $6 + i32.const 0 + i32.store offset=16 global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=20 - local.get $6 - call $std/typedarray/valuesEqual<~lib/typedarray/Int16Array> - local.get $3 - local.set $6 + global.get $std/typedarray/testArrayWrapValues + local.tee $0 + i32.store + local.get $0 + call $~lib/array/Array#get:length + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 + i32.const 0 local.get $1 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=20 - local.get $6 + call $~lib/typedarray/Int16Array#constructor + local.tee $2 + i32.store offset=4 i32.const 0 - call $~lib/typedarray/Int16Array#set<~lib/typedarray/Uint8Array> - local.get $3 - local.set $6 + local.set $3 + loop $for-loop|0 + local.get $3 + local.get $1 + i32.lt_s + local.set $4 + local.get $4 + if + local.get $2 + local.get $3 + local.get $0 + local.get $3 + call $~lib/array/Array#__get + i32.const 16 + i32.shl + i32.const 16 + i32.shr_s + call $~lib/typedarray/Int16Array#__set + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $for-loop|0 + end + end global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 local.get $2 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=20 - local.get $6 - i32.const 4 - call $~lib/typedarray/Int16Array#set<~lib/typedarray/Int16Array> - local.get $3 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - global.get $std/typedarray/setSource7 - local.set $6 + i32.load + local.set $7 global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=20 - local.get $6 - i32.const 7 - call $~lib/typedarray/Int16Array#set<~lib/array/Array> + local.get $7 + i32.store offset=8 + local.get $7 + local.get $2 + call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + local.get $2 + call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + local.get $2 + i32.load offset=8 + i32.add + call $~lib/arraybuffer/ArrayBuffer#slice + local.tee $5 + i32.store offset=12 + i32.const 0 + drop + i32.const 0 + drop i32.const 0 drop - local.get $3 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 10 i32.const 1 - i32.const 64 - i32.const 10464 - call $~lib/rt/__newArray - local.set $6 + drop global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=20 - local.get $6 - call $std/typedarray/valuesEqual<~lib/typedarray/Int16Array> + local.get $5 + i32.const 0 + i32.const 1 + global.set $~argumentsLength + i32.const 0 + call $~lib/typedarray/Int16Array.wrap@varargs + local.tee $6 + i32.store offset=16 + i32.const 0 + local.set $3 + loop $for-loop|1 + local.get $3 + local.get $1 + i32.lt_s + local.set $4 + local.get $4 + if + local.get $2 + local.get $3 + call $~lib/typedarray/Int16Array#__get + local.get $6 + local.get $3 + call $~lib/typedarray/Int16Array#__get + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 707 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + 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 24 + i32.const 20 i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/typedarray/Uint16Array#set<~lib/array/Array> (param $0 i32) (param $1 i32) (param $2 i32) + (func $std/typedarray/testArrayWrap<~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) - (local $9 i32) - (local $10 i32) - (local $11 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 20 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check @@ -62103,148 +45975,125 @@ 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 0 - i32.store offset=8 + i32.store offset=16 global.get $~lib/memory/__stack_pointer - local.get $0 - local.tee $5 + global.get $std/typedarray/testArrayWrapValues + local.tee $0 i32.store + local.get $0 + call $~lib/array/Array#get:length + local.set $1 global.get $~lib/memory/__stack_pointer + i32.const 0 local.get $1 - local.tee $4 + call $~lib/typedarray/Uint16Array#constructor + local.tee $2 i32.store offset=4 - local.get $2 - local.set $3 - i32.const 0 - drop - local.get $3 i32.const 0 - i32.lt_s - if - i32.const 336 - i32.const 608 - i32.const 1864 - i32.const 19 - call $~lib/builtins/abort - unreachable + local.set $3 + loop $for-loop|0 + local.get $3 + local.get $1 + i32.lt_s + local.set $4 + local.get $4 + if + local.get $2 + local.get $3 + local.get $0 + local.get $3 + call $~lib/array/Array#__get + i32.const 65535 + i32.and + call $~lib/typedarray/Uint16Array#__set + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $for-loop|0 + end end - local.get $4 - local.set $11 global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=8 - local.get $11 - call $~lib/array/Array#get:length - local.get $3 - i32.add - local.get $5 - local.set $11 + local.get $2 + i32.load + local.set $7 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $7 i32.store offset=8 - local.get $11 - call $~lib/typedarray/Uint16Array#get:length - i32.gt_s - if - i32.const 336 - i32.const 608 - i32.const 1865 - i32.const 47 - call $~lib/builtins/abort - unreachable - end - i32.const 1 + local.get $7 + local.get $2 + call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + local.get $2 + call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + local.get $2 + i32.load offset=8 + i32.add + call $~lib/arraybuffer/ArrayBuffer#slice + local.tee $5 + i32.store offset=12 + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop i32.const 1 - i32.eq - if (result i32) - i32.const 1 - i32.const 2 - i32.eq - else - i32.const 0 - end - if (result i32) - i32.const 0 - if (result i32) - i32.const 1 - else - i32.const 0 - end - i32.eqz - else - i32.const 0 - end drop + global.get $~lib/memory/__stack_pointer local.get $5 - i32.load offset=4 - local.get $3 + i32.const 0 i32.const 1 - i32.shl - i32.add - local.set $6 - local.get $4 - i32.load offset=4 - local.set $7 - local.get $4 - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=8 - local.get $11 - call $~lib/array/Array#get:length - local.set $8 + global.set $~argumentsLength i32.const 0 - local.set $9 - loop $for-loop|0 - local.get $9 - local.get $8 + call $~lib/typedarray/Uint16Array.wrap@varargs + local.tee $6 + i32.store offset=16 + i32.const 0 + local.set $3 + loop $for-loop|1 + local.get $3 + local.get $1 i32.lt_s - local.set $10 - local.get $10 + local.set $4 + local.get $4 if - i32.const 0 - drop - i32.const 0 - if (result i32) - i32.const 0 - i32.eqz - else - i32.const 0 - end - drop - i32.const 0 - if (result i32) - i32.const 0 - i32.eqz - else + local.get $2 + local.get $3 + call $~lib/typedarray/Uint16Array#__get + local.get $6 + local.get $3 + call $~lib/typedarray/Uint16Array#__get + i32.eq + i32.eqz + if i32.const 0 + i32.const 544 + i32.const 707 + i32.const 5 + call $~lib/builtins/abort + unreachable end - drop - local.get $6 - local.get $9 - i32.const 1 - i32.shl - i32.add - local.get $7 - local.get $9 - i32.const 2 - i32.shl - i32.add - i32.load - i32.store16 - local.get $9 + local.get $3 i32.const 1 i32.add - local.set $9 - br $for-loop|0 + local.set $3 + br $for-loop|1 end end global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 20 i32.add global.set $~lib/memory/__stack_pointer ) - (func $std/typedarray/valuesEqual<~lib/typedarray/Uint16Array> (param $0 i32) (param $1 i32) + (func $std/typedarray/testArrayWrap<~lib/typedarray/Int32Array,i32> + (local $0 i32) + (local $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -62252,122 +46101,141 @@ (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 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 + global.get $~lib/memory/__stack_pointer i32.const 0 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + global.get $std/typedarray/testArrayWrapValues + local.tee $0 i32.store local.get $0 - local.set $7 + call $~lib/array/Array#get:length + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store - local.get $7 - call $~lib/typedarray/Uint16Array#get:length - local.set $2 - local.get $2 + i32.const 0 local.get $1 + call $~lib/typedarray/Int32Array#constructor + local.tee $2 + i32.store offset=4 + i32.const 0 + local.set $3 + loop $for-loop|0 + local.get $3 + local.get $1 + i32.lt_s + local.set $4 + local.get $4 + if + local.get $2 + local.get $3 + local.get $0 + local.get $3 + call $~lib/array/Array#__get + call $~lib/typedarray/Int32Array#__set + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $for-loop|0 + end + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.load local.set $7 global.get $~lib/memory/__stack_pointer local.get $7 - i32.store + i32.store offset=8 local.get $7 - call $~lib/array/Array#get:length - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 735 - i32.const 3 - call $~lib/builtins/abort - unreachable - end + local.get $2 + call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + local.get $2 + call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + local.get $2 + i32.load offset=8 + i32.add + call $~lib/arraybuffer/ArrayBuffer#slice + local.tee $5 + i32.store offset=12 + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 1 + drop + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.const 0 + i32.const 1 + global.set $~argumentsLength + i32.const 0 + call $~lib/typedarray/Int32Array.wrap@varargs + local.tee $6 + i32.store offset=16 i32.const 0 local.set $3 - loop $for-loop|0 + loop $for-loop|1 local.get $3 - local.get $2 + local.get $1 i32.lt_s local.set $4 local.get $4 if - local.get $0 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store - local.get $7 - local.get $3 - call $~lib/typedarray/Uint16Array#__uget - local.set $5 - local.get $1 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store - local.get $7 + local.get $2 local.get $3 - call $~lib/array/Array#__uget - local.set $6 - local.get $5 + call $~lib/typedarray/Int32Array#__get local.get $6 - i32.ne + local.get $3 + call $~lib/typedarray/Int32Array#__get + i32.eq + i32.eqz if - i32.const 10560 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store - local.get $7 - i32.const 3 - local.get $3 - f64.convert_i32_s - local.get $5 - f64.convert_i32_u - local.get $6 - f64.convert_i32_u - f64.const 0 - f64.const 0 - call $~lib/builtins/trace i32.const 0 - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 741 - i32.const 7 - call $~lib/builtins/abort - unreachable - end + i32.const 544 + i32.const 707 + i32.const 5 + call $~lib/builtins/abort + unreachable end local.get $3 i32.const 1 i32.add local.set $3 - br $for-loop|0 + br $for-loop|1 end end global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 20 i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/typedarray/Uint16Array#set<~lib/array/Array> (param $0 i32) (param $1 i32) (param $2 i32) + (func $std/typedarray/testArrayWrap<~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 f32) - (local $12 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 20 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check @@ -62375,163 +46243,135 @@ 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 0 - i32.store offset=8 + i32.store offset=16 global.get $~lib/memory/__stack_pointer - local.get $0 - local.tee $5 + global.get $std/typedarray/testArrayWrapValues + local.tee $0 i32.store + local.get $0 + call $~lib/array/Array#get:length + local.set $1 global.get $~lib/memory/__stack_pointer + i32.const 0 local.get $1 - local.tee $4 + call $~lib/typedarray/Uint32Array#constructor + local.tee $2 i32.store offset=4 - local.get $2 - local.set $3 i32.const 0 - drop - local.get $3 - i32.const 0 - i32.lt_s - if - i32.const 336 - i32.const 608 - i32.const 1864 - i32.const 19 - call $~lib/builtins/abort - unreachable + local.set $3 + loop $for-loop|0 + local.get $3 + local.get $1 + i32.lt_s + local.set $4 + local.get $4 + if + local.get $2 + local.get $3 + local.get $0 + local.get $3 + call $~lib/array/Array#__get + call $~lib/typedarray/Uint32Array#__set + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $for-loop|0 + end end - local.get $4 - local.set $12 global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/array/Array#get:length - local.get $3 - i32.add - local.get $5 - local.set $12 + local.get $2 + i32.load + local.set $7 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $7 i32.store offset=8 - local.get $12 - call $~lib/typedarray/Uint16Array#get:length - i32.gt_s - if - i32.const 336 - i32.const 608 - i32.const 1865 - i32.const 47 - call $~lib/builtins/abort - unreachable - end - i32.const 1 + local.get $7 + local.get $2 + call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + local.get $2 + call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + local.get $2 + i32.load offset=8 + i32.add + call $~lib/arraybuffer/ArrayBuffer#slice + local.tee $5 + i32.store offset=12 + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop i32.const 0 - i32.eq - if (result i32) - i32.const 1 - i32.const 2 - i32.eq - else - i32.const 0 - end - if (result i32) - i32.const 0 - if (result i32) - i32.const 0 - else - i32.const 0 - end - i32.eqz - else - i32.const 0 - end drop - local.get $5 - i32.load offset=4 - local.get $3 i32.const 1 - i32.shl - i32.add - local.set $6 - local.get $4 - i32.load offset=4 - local.set $7 - local.get $4 - local.set $12 + drop global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/array/Array#get:length - local.set $8 + local.get $5 i32.const 0 - local.set $9 - loop $for-loop|0 - local.get $9 - local.get $8 + i32.const 1 + global.set $~argumentsLength + i32.const 0 + call $~lib/typedarray/Uint32Array.wrap@varargs + local.tee $6 + i32.store offset=16 + i32.const 0 + local.set $3 + loop $for-loop|1 + local.get $3 + local.get $1 i32.lt_s - local.set $10 - local.get $10 + local.set $4 + local.get $4 if - i32.const 0 - drop - i32.const 1 - if (result i32) - i32.const 0 - i32.eqz - else - i32.const 0 - end - drop - local.get $7 - local.get $9 - i32.const 2 - i32.shl - i32.add - f32.load - local.set $11 + local.get $2 + local.get $3 + call $~lib/typedarray/Uint32Array#__get local.get $6 - local.get $9 - i32.const 1 - i32.shl - i32.add - local.get $11 - local.get $11 - f32.sub - f32.const 0 - f32.eq - if (result i32) - local.get $11 - i32.trunc_f32_u - else + local.get $3 + call $~lib/typedarray/Uint32Array#__get + i32.eq + i32.eqz + if i32.const 0 + i32.const 544 + i32.const 707 + i32.const 5 + call $~lib/builtins/abort + unreachable end - i32.store16 - local.get $9 + local.get $3 i32.const 1 i32.add - local.set $9 - br $for-loop|0 + local.set $3 + br $for-loop|1 end end global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 20 i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/typedarray/Uint16Array#set<~lib/typedarray/Int64Array> (param $0 i32) (param $1 i32) (param $2 i32) + (func $std/typedarray/testArrayWrap<~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 i32) - (local $10 i32) - (local $11 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 20 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check @@ -62539,160 +46379,138 @@ 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 0 - i32.store offset=8 + i32.store offset=16 global.get $~lib/memory/__stack_pointer - local.get $0 - local.tee $5 + global.get $std/typedarray/testArrayWrapValues + local.tee $0 i32.store + local.get $0 + call $~lib/array/Array#get:length + local.set $1 global.get $~lib/memory/__stack_pointer + i32.const 0 local.get $1 - local.tee $4 + call $~lib/typedarray/Int64Array#constructor + local.tee $2 i32.store offset=4 - local.get $2 - local.set $3 i32.const 0 - drop - local.get $3 - i32.const 0 - i32.lt_s - if - i32.const 336 - i32.const 608 - i32.const 1864 - i32.const 19 - call $~lib/builtins/abort - unreachable + local.set $3 + loop $for-loop|0 + local.get $3 + local.get $1 + i32.lt_s + local.set $4 + local.get $4 + if + local.get $2 + local.get $3 + local.get $0 + local.get $3 + call $~lib/array/Array#__get + i64.extend_i32_s + call $~lib/typedarray/Int64Array#__set + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $for-loop|0 + end end - local.get $4 - local.set $11 global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=8 - local.get $11 - call $~lib/typedarray/Int64Array#get:length - local.get $3 - i32.add - local.get $5 - local.set $11 + local.get $2 + i32.load + local.set $7 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $7 i32.store offset=8 - local.get $11 - call $~lib/typedarray/Uint16Array#get:length - i32.gt_s - if - i32.const 336 - i32.const 608 - i32.const 1865 - i32.const 47 - call $~lib/builtins/abort - unreachable - end - i32.const 1 + local.get $7 + local.get $2 + call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + local.get $2 + call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + local.get $2 + i32.load offset=8 + i32.add + call $~lib/arraybuffer/ArrayBuffer#slice + local.tee $5 + i32.store offset=12 + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop i32.const 1 - i32.eq - if (result i32) - i32.const 1 - i32.const 3 - i32.eq - else - i32.const 0 - end - if (result i32) - i32.const 0 - if (result i32) - i32.const 1 - else - i32.const 0 - end - i32.eqz - else - i32.const 0 - end drop + global.get $~lib/memory/__stack_pointer local.get $5 - i32.load offset=4 - local.get $3 + i32.const 0 i32.const 1 - i32.shl - i32.add - local.set $6 - local.get $4 - i32.load offset=4 - local.set $7 - local.get $4 - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=8 - local.get $11 - call $~lib/typedarray/Int64Array#get:length - local.set $8 + global.set $~argumentsLength i32.const 0 - local.set $9 - loop $for-loop|0 - local.get $9 - local.get $8 + call $~lib/typedarray/Int64Array.wrap@varargs + local.tee $6 + i32.store offset=16 + i32.const 0 + local.set $3 + loop $for-loop|1 + local.get $3 + local.get $1 i32.lt_s - local.set $10 - local.get $10 + local.set $4 + local.get $4 if - i32.const 0 - drop - i32.const 0 - if (result i32) - i32.const 0 - i32.eqz - else - i32.const 0 - end - drop - i32.const 0 - if (result i32) - i32.const 0 - i32.eqz - else + local.get $2 + local.get $3 + call $~lib/typedarray/Int64Array#__get + local.get $6 + local.get $3 + call $~lib/typedarray/Int64Array#__get + i64.eq + i32.eqz + if i32.const 0 + i32.const 544 + i32.const 707 + i32.const 5 + call $~lib/builtins/abort + unreachable end - drop - local.get $6 - local.get $9 - i32.const 1 - i32.shl - i32.add - local.get $7 - local.get $9 - i32.const 3 - i32.shl - i32.add - i64.load - i64.store16 - local.get $9 + local.get $3 i32.const 1 i32.add - local.set $9 - br $for-loop|0 + local.set $3 + br $for-loop|1 end end global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 20 i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/typedarray/Uint16Array#set<~lib/array/Array> (param $0 i32) (param $1 i32) (param $2 i32) + (func $std/typedarray/testArrayWrap<~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 i32) - (local $10 i32) - (local $11 f64) - (local $12 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 20 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check @@ -62700,163 +46518,140 @@ 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 0 - i32.store offset=8 + i32.store offset=16 global.get $~lib/memory/__stack_pointer - local.get $0 - local.tee $5 + global.get $std/typedarray/testArrayWrapValues + local.tee $0 i32.store + local.get $0 + call $~lib/array/Array#get:length + local.set $1 global.get $~lib/memory/__stack_pointer + i32.const 0 local.get $1 - local.tee $4 + call $~lib/typedarray/Uint64Array#constructor + local.tee $2 i32.store offset=4 - local.get $2 - local.set $3 - i32.const 0 - drop - local.get $3 i32.const 0 - i32.lt_s - if - i32.const 336 - i32.const 608 - i32.const 1864 - i32.const 19 - call $~lib/builtins/abort - unreachable + local.set $3 + loop $for-loop|0 + local.get $3 + local.get $1 + i32.lt_s + local.set $4 + local.get $4 + if + local.get $2 + local.get $3 + local.get $0 + local.get $3 + call $~lib/array/Array#__get + 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 - local.get $4 - local.set $12 global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/array/Array#get:length - local.get $3 - i32.add - local.get $5 - local.set $12 + local.get $2 + i32.load + local.set $7 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $7 i32.store offset=8 - local.get $12 - call $~lib/typedarray/Uint16Array#get:length - i32.gt_s - if - i32.const 336 - i32.const 608 - i32.const 1865 - i32.const 47 - call $~lib/builtins/abort - unreachable - end - i32.const 1 + local.get $7 + local.get $2 + call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + local.get $2 + call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + local.get $2 + i32.load offset=8 + i32.add + call $~lib/arraybuffer/ArrayBuffer#slice + local.tee $5 + i32.store offset=12 + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop i32.const 0 - i32.eq - if (result i32) - i32.const 1 - i32.const 3 - i32.eq - else - i32.const 0 - end - if (result i32) - i32.const 0 - if (result i32) - i32.const 0 - else - i32.const 0 - end - i32.eqz - else - i32.const 0 - end drop - local.get $5 - i32.load offset=4 - local.get $3 i32.const 1 - i32.shl - i32.add - local.set $6 - local.get $4 - i32.load offset=4 - local.set $7 - local.get $4 - local.set $12 + drop global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/array/Array#get:length - local.set $8 + local.get $5 i32.const 0 - local.set $9 - loop $for-loop|0 - local.get $9 - local.get $8 - i32.lt_s - local.set $10 - local.get $10 - if - i32.const 0 - drop - i32.const 1 - if (result i32) - i32.const 0 - i32.eqz - else - i32.const 0 - end - drop - local.get $7 - local.get $9 - i32.const 3 - i32.shl - i32.add - f64.load - local.set $11 + i32.const 1 + global.set $~argumentsLength + i32.const 0 + call $~lib/typedarray/Uint64Array.wrap@varargs + local.tee $6 + i32.store offset=16 + i32.const 0 + local.set $3 + loop $for-loop|1 + local.get $3 + local.get $1 + i32.lt_s + local.set $4 + local.get $4 + if + local.get $2 + local.get $3 + call $~lib/typedarray/Uint64Array#__get local.get $6 - local.get $9 - i32.const 1 - i32.shl - i32.add - local.get $11 - local.get $11 - f64.sub - f64.const 0 - f64.eq - if (result i32) - local.get $11 - i32.trunc_f64_u - else + local.get $3 + call $~lib/typedarray/Uint64Array#__get + i64.eq + i32.eqz + if i32.const 0 + i32.const 544 + i32.const 707 + i32.const 5 + call $~lib/builtins/abort + unreachable end - i32.store16 - local.get $9 + local.get $3 i32.const 1 i32.add - local.set $9 - br $for-loop|0 + local.set $3 + br $for-loop|1 end end global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 20 i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/typedarray/Uint16Array#set<~lib/typedarray/Uint8Array> (param $0 i32) (param $1 i32) (param $2 i32) + (func $std/typedarray/testArrayWrap<~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 i32) - (local $10 i32) - (local $11 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 20 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check @@ -62864,154 +46659,142 @@ 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 0 - i32.store offset=8 + i32.store offset=16 global.get $~lib/memory/__stack_pointer - local.get $0 - local.tee $5 + global.get $std/typedarray/testArrayWrapValues + local.tee $0 i32.store + local.get $0 + call $~lib/array/Array#get:length + local.set $1 global.get $~lib/memory/__stack_pointer + i32.const 0 local.get $1 - local.tee $4 + call $~lib/typedarray/Float32Array#constructor + local.tee $2 i32.store offset=4 - local.get $2 - local.set $3 - i32.const 0 - drop - local.get $3 i32.const 0 - i32.lt_s - if - i32.const 336 - i32.const 608 - i32.const 1864 - i32.const 19 - call $~lib/builtins/abort - unreachable + local.set $3 + loop $for-loop|0 + local.get $3 + local.get $1 + i32.lt_s + local.set $4 + local.get $4 + if + local.get $2 + local.get $3 + local.get $0 + local.get $3 + call $~lib/array/Array#__get + f32.convert_i32_s + call $~lib/typedarray/Float32Array#__set + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $for-loop|0 + end end - local.get $4 - local.set $11 global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=8 - local.get $11 - call $~lib/typedarray/Uint8Array#get:length - local.get $3 - i32.add - local.get $5 - local.set $11 + local.get $2 + i32.load + local.set $7 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $7 i32.store offset=8 - local.get $11 - call $~lib/typedarray/Uint16Array#get:length - i32.gt_s - if - i32.const 336 - i32.const 608 - i32.const 1865 - i32.const 47 - call $~lib/builtins/abort - unreachable - end - i32.const 1 + local.get $7 + local.get $2 + call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + local.get $2 + call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + local.get $2 + i32.load offset=8 + i32.add + call $~lib/arraybuffer/ArrayBuffer#slice + local.tee $5 + i32.store offset=12 + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop i32.const 1 - i32.eq - if (result i32) - i32.const 1 - i32.const 0 - i32.eq - else - i32.const 0 - end - if (result i32) - i32.const 0 - if (result i32) - i32.const 0 - else - i32.const 0 - end - i32.eqz - else - i32.const 0 - end drop + global.get $~lib/memory/__stack_pointer local.get $5 - i32.load offset=4 - local.get $3 + i32.const 0 i32.const 1 - i32.shl - i32.add - local.set $6 - local.get $4 - i32.load offset=4 - local.set $7 - local.get $4 - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=8 - local.get $11 - call $~lib/typedarray/Uint8Array#get:length - local.set $8 + global.set $~argumentsLength i32.const 0 - local.set $9 - loop $for-loop|0 - local.get $9 - local.get $8 + call $~lib/typedarray/Float32Array.wrap@varargs + local.tee $6 + i32.store offset=16 + i32.const 0 + local.set $3 + loop $for-loop|1 + local.get $3 + local.get $1 i32.lt_s - local.set $10 - local.get $10 + local.set $4 + local.get $4 if - i32.const 0 - drop - i32.const 0 - if (result i32) - i32.const 0 - i32.eqz - else - i32.const 0 - end - drop - i32.const 0 - if (result i32) - i32.const 0 - i32.eqz - else + local.get $2 + local.get $3 + call $~lib/typedarray/Float32Array#__get + local.get $6 + local.get $3 + call $~lib/typedarray/Float32Array#__get + f32.eq + i32.eqz + if i32.const 0 + i32.const 544 + i32.const 707 + i32.const 5 + call $~lib/builtins/abort + unreachable end - drop - local.get $6 - local.get $9 - i32.const 1 - i32.shl - i32.add - local.get $7 - local.get $9 - i32.const 0 - i32.shl - i32.add - i32.load8_u - i32.store16 - local.get $9 + local.get $3 i32.const 1 i32.add - local.set $9 - br $for-loop|0 + local.set $3 + br $for-loop|1 end end global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 20 i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/typedarray/Uint16Array#set<~lib/typedarray/Int16Array> (param $0 i32) (param $1 i32) (param $2 i32) + (func $std/typedarray/testArrayWrap<~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) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 20 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check @@ -63019,255 +46802,225 @@ 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 0 - i32.store offset=8 + i32.store offset=16 global.get $~lib/memory/__stack_pointer - local.get $0 - local.tee $5 + global.get $std/typedarray/testArrayWrapValues + local.tee $0 i32.store + local.get $0 + call $~lib/array/Array#get:length + local.set $1 global.get $~lib/memory/__stack_pointer + i32.const 0 local.get $1 - local.tee $4 + call $~lib/typedarray/Float64Array#constructor + local.tee $2 i32.store offset=4 - local.get $2 - local.set $3 - i32.const 0 - drop - local.get $3 i32.const 0 - i32.lt_s - if - i32.const 336 - i32.const 608 - i32.const 1864 - i32.const 19 - call $~lib/builtins/abort - unreachable - end - local.get $4 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=8 - local.get $6 - call $~lib/typedarray/Int16Array#get:length - local.get $3 - i32.add - local.get $5 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=8 - local.get $6 - call $~lib/typedarray/Uint16Array#get:length - i32.gt_s - if - i32.const 336 - i32.const 608 - i32.const 1865 - i32.const 47 - call $~lib/builtins/abort - unreachable - end - i32.const 1 - i32.const 1 - i32.eq - if (result i32) - i32.const 1 - i32.const 1 - i32.eq - else - i32.const 0 - end - if (result i32) - i32.const 0 - if (result i32) + local.set $3 + loop $for-loop|0 + local.get $3 + local.get $1 + i32.lt_s + local.set $4 + local.get $4 + if + local.get $2 + local.get $3 + local.get $0 + local.get $3 + call $~lib/array/Array#__get + f64.convert_i32_s + call $~lib/typedarray/Float64Array#__set + local.get $3 i32.const 1 - else - i32.const 0 + i32.add + local.set $3 + br $for-loop|0 end - i32.eqz - else - i32.const 0 end - drop - local.get $5 - i32.load offset=4 - local.get $3 - i32.const 1 - i32.shl - i32.add - local.get $4 - i32.load offset=4 - local.get $4 - i32.load offset=8 - call $~lib/memory/memory.copy - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/typedarray/Uint16Array#set<~lib/array/Array> (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 - call $~stack_check global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store + local.get $2 + i32.load + local.set $7 global.get $~lib/memory/__stack_pointer - i32.const 0 + local.get $7 i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - local.tee $5 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - local.tee $4 - i32.store offset=4 + local.get $7 local.get $2 - local.set $3 + call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + local.get $2 + call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + local.get $2 + i32.load offset=8 + i32.add + call $~lib/arraybuffer/ArrayBuffer#slice + local.tee $5 + i32.store offset=12 i32.const 0 drop - local.get $3 i32.const 0 - i32.lt_s - if - i32.const 336 - i32.const 608 - i32.const 1864 - i32.const 19 - call $~lib/builtins/abort - unreachable - end - local.get $4 - local.set $11 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 1 + drop global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=8 - local.get $11 - call $~lib/array/Array#get:length - local.get $3 - i32.add local.get $5 - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=8 - local.get $11 - call $~lib/typedarray/Uint16Array#get:length - i32.gt_s - if - i32.const 336 - i32.const 608 - i32.const 1865 - i32.const 47 - call $~lib/builtins/abort - unreachable - end - i32.const 1 + i32.const 0 i32.const 1 - i32.eq - if (result i32) - i32.const 1 - i32.const 0 - i32.eq - else - i32.const 0 - end - if (result i32) - i32.const 0 - if (result i32) + global.set $~argumentsLength + i32.const 0 + call $~lib/typedarray/Float64Array.wrap@varargs + local.tee $6 + i32.store offset=16 + i32.const 0 + local.set $3 + loop $for-loop|1 + local.get $3 + local.get $1 + i32.lt_s + local.set $4 + local.get $4 + if + local.get $2 + local.get $3 + call $~lib/typedarray/Float64Array#__get + local.get $6 + local.get $3 + call $~lib/typedarray/Float64Array#__get + f64.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 707 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $3 i32.const 1 - else - i32.const 0 + i32.add + local.set $3 + br $for-loop|1 end - i32.eqz - else - i32.const 0 end - drop - local.get $5 - i32.load offset=4 - local.get $3 - i32.const 1 - i32.shl + global.get $~lib/memory/__stack_pointer + i32.const 20 i32.add - local.set $6 - local.get $4 - i32.load offset=4 - local.set $7 - local.get $4 - local.set $11 + 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) + (local $6 i32) + (local $7 i32) global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=8 - local.get $11 + 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 $0 + call $~lib/typedarray/Int8Array#get:length + local.set $2 + local.get $2 + local.get $1 call $~lib/array/Array#get:length - local.set $8 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 735 + i32.const 3 + call $~lib/builtins/abort + unreachable + end i32.const 0 - local.set $9 + local.set $3 loop $for-loop|0 - local.get $9 - local.get $8 + local.get $3 + local.get $2 i32.lt_s - local.set $10 - local.get $10 + local.set $4 + local.get $4 if - i32.const 0 - drop - i32.const 0 - if (result i32) - i32.const 0 - i32.eqz - else - i32.const 0 - end - drop - i32.const 0 - if (result i32) + local.get $0 + local.get $3 + call $~lib/typedarray/Int8Array#__uget + local.set $5 + local.get $1 + local.get $3 + call $~lib/array/Array#__uget + local.set $6 + local.get $5 + local.get $6 + i32.ne + if + i32.const 9616 + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store + local.get $7 + i32.const 3 + local.get $3 + f64.convert_i32_s + local.get $5 + f64.convert_i32_s + local.get $6 + f64.convert_i32_s + f64.const 0 + f64.const 0 + call $~lib/builtins/trace i32.const 0 i32.eqz - else - i32.const 0 + if + i32.const 0 + i32.const 544 + i32.const 741 + i32.const 7 + call $~lib/builtins/abort + unreachable + end end - drop - local.get $6 - local.get $9 - i32.const 1 - i32.shl - i32.add - local.get $7 - local.get $9 - i32.const 0 - i32.shl - i32.add - i32.load8_s - i32.store16 - local.get $9 + local.get $3 i32.const 1 i32.add - local.set $9 + local.set $3 br $for-loop|0 end end global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer ) - (func $std/typedarray/testTypedArraySet<~lib/typedarray/Uint16Array> + (func $std/typedarray/testTypedArraySet<~lib/typedarray/Int8Array> (local $0 i32) (local $1 i32) (local $2 i32) @@ -63276,7 +47029,7 @@ (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 @@ -63287,8 +47040,8 @@ i64.const 0 i64.store offset=8 global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=16 + i32.const 0 + i32.store offset=16 global.get $~lib/memory/__stack_pointer i32.const 0 i32.const 3 @@ -63296,29 +47049,14 @@ local.tee $0 i32.store local.get $0 - local.set $6 - 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 local.get $0 - local.set $6 - 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 local.get $0 - local.set $6 - 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 @@ -63327,40 +47065,20 @@ i32.const 4 call $~lib/typedarray/Uint8Array#constructor local.tee $1 - i32.store offset=8 - local.get $1 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 i32.store offset=4 - local.get $6 + local.get $1 i32.const 0 i32.const 100 call $~lib/typedarray/Uint8Array#__set local.get $1 - local.set $6 - 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 local.get $1 - local.set $6 - 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 local.get $1 - local.set $6 - 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 @@ -63369,335 +47087,437 @@ i32.const 3 call $~lib/typedarray/Int16Array#constructor local.tee $2 - i32.store offset=12 + i32.store offset=8 local.get $2 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 i32.const 0 i32.const 1000 call $~lib/typedarray/Int16Array#__set local.get $2 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 i32.const 1 i32.const 1001 call $~lib/typedarray/Int16Array#__set local.get $2 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 i32.const 2 i32.const 1002 call $~lib/typedarray/Int16Array#__set global.get $~lib/memory/__stack_pointer i32.const 0 i32.const 10 - call $~lib/typedarray/Uint16Array#constructor + call $~lib/typedarray/Int8Array#constructor local.tee $3 - i32.store offset=16 + i32.store offset=12 local.get $3 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 global.get $std/typedarray/setSource1 local.set $6 global.get $~lib/memory/__stack_pointer local.get $6 - i32.store offset=20 + i32.store offset=16 local.get $6 i32.const 0 - call $~lib/typedarray/Uint16Array#set<~lib/array/Array> + call $~lib/typedarray/Int8Array#set<~lib/array/Array> local.get $3 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 i32.const 10 - i32.const 1 - i32.const 65 - i32.const 10512 + i32.const 0 + i32.const 15 + i32.const 9584 call $~lib/rt/__newArray local.set $6 global.get $~lib/memory/__stack_pointer local.get $6 - i32.store offset=20 + i32.store offset=16 local.get $6 - call $std/typedarray/valuesEqual<~lib/typedarray/Uint16Array> + call $std/typedarray/valuesEqual<~lib/typedarray/Int8Array> local.get $3 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 global.get $std/typedarray/setSource2 local.set $6 global.get $~lib/memory/__stack_pointer local.get $6 - i32.store offset=20 + i32.store offset=16 local.get $6 i32.const 3 - call $~lib/typedarray/Uint16Array#set<~lib/array/Array> + call $~lib/typedarray/Int8Array#set<~lib/array/Array> local.get $3 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 i32.const 10 - i32.const 1 - i32.const 65 - i32.const 10608 + i32.const 0 + i32.const 15 + i32.const 9664 call $~lib/rt/__newArray local.set $6 global.get $~lib/memory/__stack_pointer local.get $6 - i32.store offset=20 + i32.store offset=16 local.get $6 - call $std/typedarray/valuesEqual<~lib/typedarray/Uint16Array> + call $std/typedarray/valuesEqual<~lib/typedarray/Int8Array> local.get $3 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 local.get $0 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=20 - local.get $6 i32.const 6 - call $~lib/typedarray/Uint16Array#set<~lib/typedarray/Int64Array> + call $~lib/typedarray/Int8Array#set<~lib/typedarray/Int64Array> local.get $3 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 i32.const 10 - i32.const 1 - i32.const 65 - i32.const 10656 + i32.const 0 + i32.const 15 + i32.const 9696 call $~lib/rt/__newArray local.set $6 global.get $~lib/memory/__stack_pointer local.get $6 - i32.store offset=20 + i32.store offset=16 local.get $6 - call $std/typedarray/valuesEqual<~lib/typedarray/Uint16Array> + call $std/typedarray/valuesEqual<~lib/typedarray/Int8Array> i32.const 1 drop local.get $3 + global.get $std/typedarray/setSource3 local.set $6 global.get $~lib/memory/__stack_pointer local.get $6 - i32.store offset=4 + i32.store offset=16 local.get $6 - global.get $std/typedarray/setSource3 + i32.const 2 + call $~lib/typedarray/Int8Array#set<~lib/array/Array> + local.get $3 + i32.const 10 + i32.const 0 + i32.const 15 + i32.const 9728 + call $~lib/rt/__newArray local.set $6 global.get $~lib/memory/__stack_pointer local.get $6 - i32.store offset=20 + i32.store offset=16 local.get $6 - i32.const 2 - call $~lib/typedarray/Uint16Array#set<~lib/array/Array> + call $std/typedarray/valuesEqual<~lib/typedarray/Int8Array> + local.get $3 + local.get $1 + i32.const 0 + call $~lib/typedarray/Int8Array#set<~lib/typedarray/Uint8Array> + local.get $3 + local.get $2 + i32.const 4 + call $~lib/typedarray/Int8Array#set<~lib/typedarray/Int16Array> local.get $3 + global.get $std/typedarray/setSource7 local.set $6 global.get $~lib/memory/__stack_pointer local.get $6 - i32.store offset=4 + i32.store offset=16 local.get $6 + i32.const 7 + call $~lib/typedarray/Int8Array#set<~lib/array/Array> + i32.const 0 + drop + local.get $3 i32.const 10 - i32.const 1 - i32.const 65 - i32.const 10704 + i32.const 0 + i32.const 15 + i32.const 9760 call $~lib/rt/__newArray local.set $6 global.get $~lib/memory/__stack_pointer local.get $6 - i32.store offset=20 + i32.store offset=16 local.get $6 - call $std/typedarray/valuesEqual<~lib/typedarray/Uint16Array> - local.get $3 - local.set $6 + call $std/typedarray/valuesEqual<~lib/typedarray/Int8Array> global.get $~lib/memory/__stack_pointer - local.get $6 + i32.const 20 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (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) + 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 $0 + call $~lib/typedarray/Uint8Array#get:length + local.set $2 + local.get $2 + local.get $1 + call $~lib/array/Array#get:length + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 735 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $3 + loop $for-loop|0 + local.get $3 + local.get $2 + i32.lt_s + local.set $4 + local.get $4 + if + local.get $0 + local.get $3 + call $~lib/typedarray/Uint8Array#__uget + local.set $5 + local.get $1 + local.get $3 + call $~lib/array/Array#__uget + local.set $6 + local.get $5 + local.get $6 + i32.ne + if + i32.const 9824 + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store + local.get $7 + i32.const 3 + local.get $3 + f64.convert_i32_s + local.get $5 + f64.convert_i32_u + local.get $6 + f64.convert_i32_u + f64.const 0 + f64.const 0 + call $~lib/builtins/trace + i32.const 0 + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 741 + i32.const 7 + call $~lib/builtins/abort + unreachable + end + end + local.get $3 + i32.const 1 + i32.add + local.set $3 + 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/Uint8Array> + (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 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 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 3 + call $~lib/typedarray/Int64Array#constructor + local.tee $0 + i32.store + local.get $0 + i32.const 0 + i64.const 7 + call $~lib/typedarray/Int64Array#__set + local.get $0 + i32.const 1 + i64.const 8 + call $~lib/typedarray/Int64Array#__set + local.get $0 + i32.const 2 + i64.const 9 + call $~lib/typedarray/Int64Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 4 + call $~lib/typedarray/Uint8Array#constructor + local.tee $1 i32.store offset=4 - local.get $6 local.get $1 + i32.const 0 + i32.const 100 + call $~lib/typedarray/Uint8Array#__set + local.get $1 + i32.const 1 + i32.const 101 + call $~lib/typedarray/Uint8Array#__set + local.get $1 + i32.const 2 + i32.const 102 + call $~lib/typedarray/Uint8Array#__set + local.get $1 + i32.const 3 + i32.const 103 + call $~lib/typedarray/Uint8Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 3 + call $~lib/typedarray/Int16Array#constructor + local.tee $2 + i32.store offset=8 + local.get $2 + i32.const 0 + i32.const 1000 + call $~lib/typedarray/Int16Array#__set + local.get $2 + i32.const 1 + i32.const 1001 + call $~lib/typedarray/Int16Array#__set + local.get $2 + i32.const 2 + i32.const 1002 + call $~lib/typedarray/Int16Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 10 + call $~lib/typedarray/Uint8Array#constructor + local.tee $3 + i32.store offset=12 + local.get $3 + global.get $std/typedarray/setSource1 local.set $6 global.get $~lib/memory/__stack_pointer local.get $6 - i32.store offset=20 + i32.store offset=16 local.get $6 i32.const 0 - call $~lib/typedarray/Uint16Array#set<~lib/typedarray/Uint8Array> + call $~lib/typedarray/Uint8Array#set<~lib/array/Array> local.get $3 + i32.const 10 + i32.const 0 + i32.const 63 + i32.const 9792 + call $~lib/rt/__newArray local.set $6 global.get $~lib/memory/__stack_pointer local.get $6 - i32.store offset=4 + i32.store offset=16 local.get $6 - local.get $2 + call $std/typedarray/valuesEqual<~lib/typedarray/Uint8Array> + local.get $3 + global.get $std/typedarray/setSource2 local.set $6 global.get $~lib/memory/__stack_pointer local.get $6 - i32.store offset=20 + i32.store offset=16 local.get $6 - i32.const 4 - call $~lib/typedarray/Uint16Array#set<~lib/typedarray/Int16Array> + i32.const 3 + call $~lib/typedarray/Uint8Array#set<~lib/array/Array> local.get $3 + i32.const 10 + i32.const 0 + i32.const 63 + i32.const 9872 + call $~lib/rt/__newArray local.set $6 global.get $~lib/memory/__stack_pointer local.get $6 - i32.store offset=4 + i32.store offset=16 local.get $6 - global.get $std/typedarray/setSource7 + call $std/typedarray/valuesEqual<~lib/typedarray/Uint8Array> + local.get $3 + local.get $0 + i32.const 6 + call $~lib/typedarray/Uint8Array#set<~lib/typedarray/Int64Array> + local.get $3 + i32.const 10 + i32.const 0 + i32.const 63 + i32.const 9904 + call $~lib/rt/__newArray local.set $6 global.get $~lib/memory/__stack_pointer local.get $6 - i32.store offset=20 + i32.store offset=16 local.get $6 - i32.const 7 - call $~lib/typedarray/Uint16Array#set<~lib/array/Array> - i32.const 0 + call $std/typedarray/valuesEqual<~lib/typedarray/Uint8Array> + i32.const 1 drop local.get $3 + global.get $std/typedarray/setSource3 local.set $6 global.get $~lib/memory/__stack_pointer local.get $6 - i32.store offset=4 + i32.store offset=16 local.get $6 + i32.const 2 + call $~lib/typedarray/Uint8Array#set<~lib/array/Array> + local.get $3 i32.const 10 - i32.const 1 - i32.const 65 - i32.const 10752 + i32.const 0 + i32.const 63 + i32.const 9936 call $~lib/rt/__newArray local.set $6 global.get $~lib/memory/__stack_pointer local.get $6 - i32.store offset=20 + i32.store offset=16 local.get $6 - call $std/typedarray/valuesEqual<~lib/typedarray/Uint16Array> - global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/typedarray/Int32Array#set<~lib/array/Array> (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 - 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 - global.get $~lib/memory/__stack_pointer - local.get $0 - local.tee $5 - i32.store - global.get $~lib/memory/__stack_pointer + call $std/typedarray/valuesEqual<~lib/typedarray/Uint8Array> + local.get $3 local.get $1 - local.tee $4 - i32.store offset=4 - local.get $2 - local.set $3 i32.const 0 - drop + call $~lib/typedarray/Uint8Array#set<~lib/typedarray/Uint8Array> local.get $3 - i32.const 0 - i32.lt_s - if - i32.const 336 - i32.const 608 - i32.const 1864 - i32.const 19 - call $~lib/builtins/abort - unreachable - end - local.get $4 + local.get $2 + i32.const 4 + call $~lib/typedarray/Uint8Array#set<~lib/typedarray/Int16Array> + local.get $3 + global.get $std/typedarray/setSource7 local.set $6 global.get $~lib/memory/__stack_pointer local.get $6 - i32.store offset=8 + i32.store offset=16 local.get $6 - call $~lib/array/Array#get:length + i32.const 7 + call $~lib/typedarray/Uint8Array#set<~lib/array/Array> + i32.const 0 + drop local.get $3 - i32.add - local.get $5 + i32.const 10 + i32.const 0 + i32.const 63 + i32.const 9968 + call $~lib/rt/__newArray local.set $6 global.get $~lib/memory/__stack_pointer local.get $6 - i32.store offset=8 + i32.store offset=16 local.get $6 - call $~lib/typedarray/Int32Array#get:length - i32.gt_s - if - i32.const 336 - i32.const 608 - i32.const 1865 - i32.const 47 - call $~lib/builtins/abort - unreachable - end - i32.const 1 - i32.const 1 - i32.eq - if (result i32) - i32.const 2 - i32.const 2 - i32.eq - else - i32.const 0 - end - if (result i32) - i32.const 0 - if (result i32) - i32.const 1 - else - i32.const 0 - end - i32.eqz - else - i32.const 0 - end - drop - local.get $5 - i32.load offset=4 - local.get $3 - i32.const 2 - i32.shl - i32.add - local.get $4 - i32.load offset=4 - local.get $4 - i32.load offset=8 - call $~lib/memory/memory.copy + call $std/typedarray/valuesEqual<~lib/typedarray/Uint8Array> global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 20 i32.add global.set $~lib/memory/__stack_pointer ) - (func $std/typedarray/valuesEqual<~lib/typedarray/Int32Array> (param $0 i32) (param $1 i32) + (func $std/typedarray/valuesEqual<~lib/typedarray/Uint8ClampedArray> (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -63713,21 +47533,11 @@ i32.const 0 i32.store local.get $0 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store - local.get $7 - call $~lib/typedarray/Int32Array#get:length + call $~lib/typedarray/Uint8ClampedArray#get:length local.set $2 local.get $2 local.get $1 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store - local.get $7 - call $~lib/array/Array#get:length + call $~lib/array/Array#get:length i32.eq i32.eqz if @@ -63748,28 +47558,18 @@ local.get $4 if local.get $0 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store - local.get $7 local.get $3 - call $~lib/typedarray/Int32Array#__uget + call $~lib/typedarray/Uint8ClampedArray#__uget local.set $5 local.get $1 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store - local.get $7 local.get $3 - call $~lib/array/Array#__uget + call $~lib/array/Array#__uget local.set $6 local.get $5 local.get $6 i32.ne if - i32.const 10864 + i32.const 10032 local.set $7 global.get $~lib/memory/__stack_pointer local.get $7 @@ -63779,9 +47579,9 @@ local.get $3 f64.convert_i32_s local.get $5 - f64.convert_i32_s + f64.convert_i32_u local.get $6 - f64.convert_i32_s + f64.convert_i32_u f64.const 0 f64.const 0 call $~lib/builtins/trace @@ -63808,19 +47608,16 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/typedarray/Int32Array#set<~lib/array/Array> (param $0 i32) (param $1 i32) (param $2 i32) + (func $std/typedarray/testTypedArraySet<~lib/typedarray/Uint8ClampedArray> + (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 f32) - (local $12 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 20 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check @@ -63828,324 +47625,293 @@ 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 0 - i32.store offset=8 + i32.store offset=16 global.get $~lib/memory/__stack_pointer - local.get $0 - local.tee $5 + i32.const 0 + i32.const 3 + call $~lib/typedarray/Int64Array#constructor + local.tee $0 i32.store + local.get $0 + i32.const 0 + i64.const 7 + call $~lib/typedarray/Int64Array#__set + local.get $0 + i32.const 1 + i64.const 8 + call $~lib/typedarray/Int64Array#__set + local.get $0 + i32.const 2 + i64.const 9 + call $~lib/typedarray/Int64Array#__set global.get $~lib/memory/__stack_pointer - local.get $1 - local.tee $4 + i32.const 0 + i32.const 4 + call $~lib/typedarray/Uint8Array#constructor + local.tee $1 i32.store offset=4 + local.get $1 + i32.const 0 + i32.const 100 + call $~lib/typedarray/Uint8Array#__set + local.get $1 + i32.const 1 + i32.const 101 + call $~lib/typedarray/Uint8Array#__set + local.get $1 + i32.const 2 + i32.const 102 + call $~lib/typedarray/Uint8Array#__set + local.get $1 + i32.const 3 + i32.const 103 + call $~lib/typedarray/Uint8Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 3 + call $~lib/typedarray/Int16Array#constructor + local.tee $2 + i32.store offset=8 local.get $2 - local.set $3 i32.const 0 - drop + i32.const 1000 + call $~lib/typedarray/Int16Array#__set + local.get $2 + i32.const 1 + i32.const 1001 + call $~lib/typedarray/Int16Array#__set + local.get $2 + i32.const 2 + i32.const 1002 + call $~lib/typedarray/Int16Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 10 + call $~lib/typedarray/Uint8ClampedArray#constructor + local.tee $3 + i32.store offset=12 local.get $3 + global.get $std/typedarray/setSource1 + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=16 + local.get $6 i32.const 0 - i32.lt_s - if - i32.const 336 - i32.const 608 - i32.const 1864 - i32.const 19 - call $~lib/builtins/abort - unreachable - end - local.get $4 - local.set $12 + call $~lib/typedarray/Uint8ClampedArray#set<~lib/array/Array> + local.get $3 + i32.const 10 + i32.const 0 + i32.const 63 + i32.const 10000 + call $~lib/rt/__newArray + local.set $6 global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/array/Array#get:length + local.get $6 + i32.store offset=16 + local.get $6 + call $std/typedarray/valuesEqual<~lib/typedarray/Uint8ClampedArray> local.get $3 - i32.add - local.get $5 - local.set $12 + global.get $std/typedarray/setSource2 + local.set $6 global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/typedarray/Int32Array#get:length - i32.gt_s - if - i32.const 336 - i32.const 608 - i32.const 1865 - i32.const 47 - call $~lib/builtins/abort - unreachable - end - i32.const 1 + local.get $6 + i32.store offset=16 + local.get $6 + i32.const 3 + call $~lib/typedarray/Uint8ClampedArray#set<~lib/array/Array> + local.get $3 + i32.const 10 i32.const 0 - i32.eq - if (result i32) - i32.const 2 - i32.const 2 - i32.eq - else - i32.const 0 - end - if (result i32) - i32.const 0 - if (result i32) - i32.const 0 - else - i32.const 0 - end - i32.eqz - else - i32.const 0 - end + i32.const 63 + i32.const 10096 + call $~lib/rt/__newArray + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=16 + local.get $6 + call $std/typedarray/valuesEqual<~lib/typedarray/Uint8ClampedArray> + local.get $3 + local.get $0 + i32.const 6 + call $~lib/typedarray/Uint8ClampedArray#set<~lib/typedarray/Int64Array> + local.get $3 + i32.const 10 + i32.const 0 + i32.const 63 + i32.const 10128 + call $~lib/rt/__newArray + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=16 + local.get $6 + call $std/typedarray/valuesEqual<~lib/typedarray/Uint8ClampedArray> + i32.const 1 drop - local.get $5 - i32.load offset=4 local.get $3 + global.get $std/typedarray/setSource3 + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=16 + local.get $6 i32.const 2 - i32.shl - i32.add + call $~lib/typedarray/Uint8ClampedArray#set<~lib/array/Array> + local.get $3 + i32.const 10 + i32.const 0 + i32.const 63 + i32.const 10160 + call $~lib/rt/__newArray local.set $6 - local.get $4 - i32.load offset=4 - local.set $7 - local.get $4 - local.set $12 global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/array/Array#get:length - local.set $8 + local.get $6 + i32.store offset=16 + local.get $6 + call $std/typedarray/valuesEqual<~lib/typedarray/Uint8ClampedArray> + local.get $3 + local.get $1 i32.const 0 - local.set $9 - loop $for-loop|0 - local.get $9 - local.get $8 - i32.lt_s - local.set $10 - local.get $10 - if - i32.const 0 - drop - i32.const 1 - if (result i32) - i32.const 0 - i32.eqz - else - i32.const 0 - end - drop - local.get $7 - local.get $9 - i32.const 2 - i32.shl - i32.add - f32.load - local.set $11 - local.get $6 - local.get $9 - i32.const 2 - i32.shl - i32.add - local.get $11 - local.get $11 - f32.sub - f32.const 0 - f32.eq - if (result i32) - local.get $11 - i32.trunc_f32_s - else - i32.const 0 - end - i32.store - local.get $9 - i32.const 1 - i32.add - local.set $9 - br $for-loop|0 - end - end + call $~lib/typedarray/Uint8ClampedArray#set<~lib/typedarray/Uint8Array> + local.get $3 + local.get $2 + i32.const 4 + call $~lib/typedarray/Uint8ClampedArray#set<~lib/typedarray/Int16Array> + local.get $3 + global.get $std/typedarray/setSource7 + local.set $6 global.get $~lib/memory/__stack_pointer - i32.const 12 + local.get $6 + i32.store offset=16 + local.get $6 + i32.const 7 + call $~lib/typedarray/Uint8ClampedArray#set<~lib/array/Array> + i32.const 1 + drop + local.get $3 + i32.const 10 + i32.const 0 + i32.const 63 + i32.const 10192 + call $~lib/rt/__newArray + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=16 + local.get $6 + call $std/typedarray/valuesEqual<~lib/typedarray/Uint8ClampedArray> + global.get $~lib/memory/__stack_pointer + i32.const 20 i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/typedarray/Int32Array#set<~lib/typedarray/Int64Array> (param $0 i32) (param $1 i32) (param $2 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 $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 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 - global.get $~lib/memory/__stack_pointer - local.get $0 - local.tee $5 i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - local.tee $4 - i32.store offset=4 + local.get $0 + call $~lib/typedarray/Int16Array#get:length + local.set $2 local.get $2 - local.set $3 - i32.const 0 - drop - local.get $3 - i32.const 0 - i32.lt_s - if - i32.const 336 - i32.const 608 - i32.const 1864 - i32.const 19 - call $~lib/builtins/abort - unreachable - end - local.get $4 - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=8 - local.get $11 - call $~lib/typedarray/Int64Array#get:length - local.get $3 - i32.add - local.get $5 - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=8 - local.get $11 - call $~lib/typedarray/Int32Array#get:length - i32.gt_s + local.get $1 + call $~lib/array/Array#get:length + i32.eq + i32.eqz if - i32.const 336 - i32.const 608 - i32.const 1865 - i32.const 47 + i32.const 0 + i32.const 544 + i32.const 735 + i32.const 3 call $~lib/builtins/abort unreachable end - i32.const 1 - i32.const 1 - i32.eq - if (result i32) - i32.const 2 - i32.const 3 - i32.eq - else - i32.const 0 - end - if (result i32) - i32.const 0 - if (result i32) - i32.const 1 - else - i32.const 0 - end - i32.eqz - else - i32.const 0 - end - drop - local.get $5 - i32.load offset=4 - local.get $3 - i32.const 2 - i32.shl - i32.add - local.set $6 - local.get $4 - i32.load offset=4 - local.set $7 - local.get $4 - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=8 - local.get $11 - call $~lib/typedarray/Int64Array#get:length - local.set $8 i32.const 0 - local.set $9 + local.set $3 loop $for-loop|0 - local.get $9 - local.get $8 + local.get $3 + local.get $2 i32.lt_s - local.set $10 - local.get $10 + local.set $4 + local.get $4 if - i32.const 0 - drop - i32.const 0 - if (result i32) - i32.const 0 - i32.eqz - else - i32.const 0 - end - drop - i32.const 0 - if (result i32) + local.get $0 + local.get $3 + call $~lib/typedarray/Int16Array#__uget + local.set $5 + local.get $1 + local.get $3 + call $~lib/array/Array#__uget + local.set $6 + local.get $5 + local.get $6 + i32.ne + if + i32.const 10272 + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store + local.get $7 + i32.const 3 + local.get $3 + f64.convert_i32_s + local.get $5 + f64.convert_i32_s + local.get $6 + f64.convert_i32_s + f64.const 0 + f64.const 0 + call $~lib/builtins/trace i32.const 0 i32.eqz - else - i32.const 0 + if + i32.const 0 + i32.const 544 + i32.const 741 + i32.const 7 + call $~lib/builtins/abort + unreachable + end end - drop - local.get $6 - local.get $9 - i32.const 2 - i32.shl - i32.add - local.get $7 - local.get $9 - i32.const 3 - i32.shl - i32.add - i64.load - i64.store32 - local.get $9 + local.get $3 i32.const 1 i32.add - local.set $9 + local.set $3 br $for-loop|0 end end global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/typedarray/Int32Array#set<~lib/array/Array> (param $0 i32) (param $1 i32) (param $2 i32) + (func $std/typedarray/testTypedArraySet<~lib/typedarray/Int16Array> + (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 f64) - (local $12 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 20 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check @@ -64153,323 +47919,293 @@ 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 0 - i32.store offset=8 + i32.store offset=16 global.get $~lib/memory/__stack_pointer - local.get $0 - local.tee $5 + i32.const 0 + i32.const 3 + call $~lib/typedarray/Int64Array#constructor + local.tee $0 i32.store + local.get $0 + i32.const 0 + i64.const 7 + call $~lib/typedarray/Int64Array#__set + local.get $0 + i32.const 1 + i64.const 8 + call $~lib/typedarray/Int64Array#__set + local.get $0 + i32.const 2 + i64.const 9 + call $~lib/typedarray/Int64Array#__set global.get $~lib/memory/__stack_pointer - local.get $1 - local.tee $4 - i32.store offset=4 - local.get $2 - local.set $3 i32.const 0 - drop - local.get $3 + i32.const 4 + call $~lib/typedarray/Uint8Array#constructor + local.tee $1 + i32.store offset=4 + local.get $1 i32.const 0 - i32.lt_s - if - i32.const 336 - i32.const 608 - i32.const 1864 - i32.const 19 - call $~lib/builtins/abort - unreachable - end - local.get $4 - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/array/Array#get:length - local.get $3 - i32.add - local.get $5 - local.set $12 + i32.const 100 + call $~lib/typedarray/Uint8Array#__set + local.get $1 + i32.const 1 + i32.const 101 + call $~lib/typedarray/Uint8Array#__set + local.get $1 + i32.const 2 + i32.const 102 + call $~lib/typedarray/Uint8Array#__set + local.get $1 + i32.const 3 + i32.const 103 + call $~lib/typedarray/Uint8Array#__set global.get $~lib/memory/__stack_pointer - local.get $12 + i32.const 0 + i32.const 3 + call $~lib/typedarray/Int16Array#constructor + local.tee $2 i32.store offset=8 - local.get $12 - call $~lib/typedarray/Int32Array#get:length - i32.gt_s - if - i32.const 336 - i32.const 608 - i32.const 1865 - i32.const 47 - call $~lib/builtins/abort - unreachable - end + local.get $2 + i32.const 0 + i32.const 1000 + call $~lib/typedarray/Int16Array#__set + local.get $2 i32.const 1 + i32.const 1001 + call $~lib/typedarray/Int16Array#__set + local.get $2 + i32.const 2 + i32.const 1002 + call $~lib/typedarray/Int16Array#__set + global.get $~lib/memory/__stack_pointer i32.const 0 - i32.eq - if (result i32) - i32.const 2 - i32.const 3 - i32.eq - else - i32.const 0 - end - if (result i32) - i32.const 0 - if (result i32) - i32.const 0 - else - i32.const 0 - end - i32.eqz - else - i32.const 0 - end - drop - local.get $5 - i32.load offset=4 + i32.const 10 + call $~lib/typedarray/Int16Array#constructor + local.tee $3 + i32.store offset=12 local.get $3 - i32.const 2 - i32.shl - i32.add + global.get $std/typedarray/setSource1 local.set $6 - local.get $4 - i32.load offset=4 - local.set $7 - local.get $4 - local.set $12 global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/array/Array#get:length - local.set $8 + local.get $6 + i32.store offset=16 + local.get $6 i32.const 0 - local.set $9 - loop $for-loop|0 - local.get $9 - local.get $8 - i32.lt_s - local.set $10 - local.get $10 - if - i32.const 0 - drop - i32.const 1 - if (result i32) - i32.const 0 - i32.eqz - else - i32.const 0 - end - drop - local.get $7 - local.get $9 - i32.const 3 - i32.shl - i32.add - f64.load - local.set $11 - local.get $6 - local.get $9 - i32.const 2 - i32.shl - i32.add - local.get $11 - local.get $11 - f64.sub - f64.const 0 - f64.eq - if (result i32) - local.get $11 - i32.trunc_f64_s - else - i32.const 0 - end - i32.store - local.get $9 - i32.const 1 - i32.add - local.set $9 - br $for-loop|0 - end - end + call $~lib/typedarray/Int16Array#set<~lib/array/Array> + local.get $3 + i32.const 10 + i32.const 1 + i32.const 64 + i32.const 10224 + call $~lib/rt/__newArray + local.set $6 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) (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.get $6 + i32.store offset=16 + local.get $6 + call $std/typedarray/valuesEqual<~lib/typedarray/Int16Array> + local.get $3 + global.get $std/typedarray/setSource2 + local.set $6 global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check + local.get $6 + i32.store offset=16 + local.get $6 + i32.const 3 + call $~lib/typedarray/Int16Array#set<~lib/array/Array> + local.get $3 + i32.const 10 + i32.const 1 + i32.const 64 + i32.const 10320 + call $~lib/rt/__newArray + local.set $6 global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store + local.get $6 + i32.store offset=16 + local.get $6 + call $std/typedarray/valuesEqual<~lib/typedarray/Int16Array> + local.get $3 + local.get $0 + i32.const 6 + call $~lib/typedarray/Int16Array#set<~lib/typedarray/Int64Array> + local.get $3 + i32.const 10 + i32.const 1 + i32.const 64 + i32.const 10368 + call $~lib/rt/__newArray + local.set $6 global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 + local.get $6 + i32.store offset=16 + local.get $6 + call $std/typedarray/valuesEqual<~lib/typedarray/Int16Array> + i32.const 1 + drop + local.get $3 + global.get $std/typedarray/setSource3 + local.set $6 global.get $~lib/memory/__stack_pointer - local.get $0 - local.tee $5 - i32.store + local.get $6 + i32.store offset=16 + local.get $6 + i32.const 2 + call $~lib/typedarray/Int16Array#set<~lib/array/Array> + local.get $3 + i32.const 10 + i32.const 1 + i32.const 64 + i32.const 10416 + call $~lib/rt/__newArray + local.set $6 global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=16 + local.get $6 + call $std/typedarray/valuesEqual<~lib/typedarray/Int16Array> + local.get $3 local.get $1 - local.tee $4 - i32.store offset=4 + i32.const 0 + call $~lib/typedarray/Int16Array#set<~lib/typedarray/Uint8Array> + local.get $3 local.get $2 - local.set $3 + i32.const 4 + call $~lib/typedarray/Int16Array#set<~lib/typedarray/Int16Array> + local.get $3 + global.get $std/typedarray/setSource7 + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=16 + local.get $6 + i32.const 7 + call $~lib/typedarray/Int16Array#set<~lib/array/Array> i32.const 0 drop local.get $3 - i32.const 0 - i32.lt_s - if - i32.const 336 - i32.const 608 - i32.const 1864 - i32.const 19 - call $~lib/builtins/abort - unreachable - end - local.get $4 - local.set $11 + i32.const 10 + i32.const 1 + i32.const 64 + i32.const 10464 + call $~lib/rt/__newArray + local.set $6 global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=8 - local.get $11 - call $~lib/typedarray/Uint8Array#get:length - local.get $3 + local.get $6 + i32.store offset=16 + local.get $6 + call $std/typedarray/valuesEqual<~lib/typedarray/Int16Array> + global.get $~lib/memory/__stack_pointer + i32.const 20 i32.add - local.get $5 - local.set $11 + global.set $~lib/memory/__stack_pointer + ) + (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) + (local $6 i32) + (local $7 i32) global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=8 - local.get $11 - call $~lib/typedarray/Int32Array#get:length - i32.gt_s + 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 $0 + call $~lib/typedarray/Uint16Array#get:length + local.set $2 + local.get $2 + local.get $1 + call $~lib/array/Array#get:length + i32.eq + i32.eqz if - i32.const 336 - i32.const 608 - i32.const 1865 - i32.const 47 + i32.const 0 + i32.const 544 + i32.const 735 + i32.const 3 call $~lib/builtins/abort unreachable end - i32.const 1 - i32.const 1 - i32.eq - if (result i32) - i32.const 2 - i32.const 0 - i32.eq - else - i32.const 0 - end - if (result i32) - i32.const 0 - if (result i32) - i32.const 0 - else - i32.const 0 - end - i32.eqz - else - i32.const 0 - end - drop - local.get $5 - i32.load offset=4 - local.get $3 - i32.const 2 - i32.shl - i32.add - local.set $6 - local.get $4 - i32.load offset=4 - local.set $7 - local.get $4 - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=8 - local.get $11 - call $~lib/typedarray/Uint8Array#get:length - local.set $8 i32.const 0 - local.set $9 + local.set $3 loop $for-loop|0 - local.get $9 - local.get $8 + local.get $3 + local.get $2 i32.lt_s - local.set $10 - local.get $10 + local.set $4 + local.get $4 if - i32.const 0 - drop - i32.const 0 - if (result i32) - i32.const 0 - i32.eqz - else - i32.const 0 - end - drop - i32.const 0 - if (result i32) + local.get $0 + local.get $3 + call $~lib/typedarray/Uint16Array#__uget + local.set $5 + local.get $1 + local.get $3 + call $~lib/array/Array#__uget + local.set $6 + local.get $5 + local.get $6 + i32.ne + if + i32.const 10560 + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store + local.get $7 + i32.const 3 + local.get $3 + f64.convert_i32_s + local.get $5 + f64.convert_i32_u + local.get $6 + f64.convert_i32_u + f64.const 0 + f64.const 0 + call $~lib/builtins/trace i32.const 0 i32.eqz - else - i32.const 0 + if + i32.const 0 + i32.const 544 + i32.const 741 + i32.const 7 + call $~lib/builtins/abort + unreachable + end end - drop - local.get $6 - local.get $9 - i32.const 2 - i32.shl - i32.add - local.get $7 - local.get $9 - i32.const 0 - i32.shl - i32.add - i32.load8_u - i32.store - local.get $9 + local.get $3 i32.const 1 i32.add - local.set $9 + local.set $3 br $for-loop|0 end end global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/typedarray/Int32Array#set<~lib/typedarray/Int16Array> (param $0 i32) (param $1 i32) (param $2 i32) + (func $std/typedarray/testTypedArraySet<~lib/typedarray/Uint16Array> + (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) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 20 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check @@ -64477,304 +48213,280 @@ 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 0 - i32.store offset=8 + i32.store offset=16 global.get $~lib/memory/__stack_pointer - local.get $0 - local.tee $5 + i32.const 0 + i32.const 3 + call $~lib/typedarray/Int64Array#constructor + local.tee $0 i32.store + local.get $0 + i32.const 0 + i64.const 7 + call $~lib/typedarray/Int64Array#__set + local.get $0 + i32.const 1 + i64.const 8 + call $~lib/typedarray/Int64Array#__set + local.get $0 + i32.const 2 + i64.const 9 + call $~lib/typedarray/Int64Array#__set global.get $~lib/memory/__stack_pointer - local.get $1 - local.tee $4 + i32.const 0 + i32.const 4 + call $~lib/typedarray/Uint8Array#constructor + local.tee $1 i32.store offset=4 + local.get $1 + i32.const 0 + i32.const 100 + call $~lib/typedarray/Uint8Array#__set + local.get $1 + i32.const 1 + i32.const 101 + call $~lib/typedarray/Uint8Array#__set + local.get $1 + i32.const 2 + i32.const 102 + call $~lib/typedarray/Uint8Array#__set + local.get $1 + i32.const 3 + i32.const 103 + call $~lib/typedarray/Uint8Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 3 + call $~lib/typedarray/Int16Array#constructor + local.tee $2 + i32.store offset=8 local.get $2 - local.set $3 i32.const 0 - drop + i32.const 1000 + call $~lib/typedarray/Int16Array#__set + local.get $2 + i32.const 1 + i32.const 1001 + call $~lib/typedarray/Int16Array#__set + local.get $2 + i32.const 2 + i32.const 1002 + call $~lib/typedarray/Int16Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 10 + call $~lib/typedarray/Uint16Array#constructor + local.tee $3 + i32.store offset=12 local.get $3 + global.get $std/typedarray/setSource1 + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=16 + local.get $6 i32.const 0 - i32.lt_s - if - i32.const 336 - i32.const 608 - i32.const 1864 - i32.const 19 - call $~lib/builtins/abort - unreachable - end - local.get $4 - local.set $11 + call $~lib/typedarray/Uint16Array#set<~lib/array/Array> + local.get $3 + i32.const 10 + i32.const 1 + i32.const 65 + i32.const 10512 + call $~lib/rt/__newArray + local.set $6 global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=8 - local.get $11 - call $~lib/typedarray/Int16Array#get:length + local.get $6 + i32.store offset=16 + local.get $6 + call $std/typedarray/valuesEqual<~lib/typedarray/Uint16Array> local.get $3 - i32.add - local.get $5 - local.set $11 + global.get $std/typedarray/setSource2 + local.set $6 global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=8 - local.get $11 - call $~lib/typedarray/Int32Array#get:length - i32.gt_s - if - i32.const 336 - i32.const 608 - i32.const 1865 - i32.const 47 - call $~lib/builtins/abort - unreachable - end + local.get $6 + i32.store offset=16 + local.get $6 + i32.const 3 + call $~lib/typedarray/Uint16Array#set<~lib/array/Array> + local.get $3 + i32.const 10 + i32.const 1 + i32.const 65 + i32.const 10608 + call $~lib/rt/__newArray + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=16 + local.get $6 + call $std/typedarray/valuesEqual<~lib/typedarray/Uint16Array> + local.get $3 + local.get $0 + i32.const 6 + call $~lib/typedarray/Uint16Array#set<~lib/typedarray/Int64Array> + local.get $3 + i32.const 10 i32.const 1 + i32.const 65 + i32.const 10656 + call $~lib/rt/__newArray + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=16 + local.get $6 + call $std/typedarray/valuesEqual<~lib/typedarray/Uint16Array> i32.const 1 - i32.eq - if (result i32) - i32.const 2 - i32.const 1 - i32.eq - else - i32.const 0 - end - if (result i32) - i32.const 0 - if (result i32) - i32.const 1 - else - i32.const 0 - end - i32.eqz - else - i32.const 0 - end drop - local.get $5 - i32.load offset=4 local.get $3 + global.get $std/typedarray/setSource3 + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=16 + local.get $6 i32.const 2 - i32.shl - i32.add + call $~lib/typedarray/Uint16Array#set<~lib/array/Array> + local.get $3 + i32.const 10 + i32.const 1 + i32.const 65 + i32.const 10704 + call $~lib/rt/__newArray local.set $6 - local.get $4 - i32.load offset=4 - local.set $7 - local.get $4 - local.set $11 global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=8 - local.get $11 - call $~lib/typedarray/Int16Array#get:length - local.set $8 + local.get $6 + i32.store offset=16 + local.get $6 + call $std/typedarray/valuesEqual<~lib/typedarray/Uint16Array> + local.get $3 + local.get $1 i32.const 0 - local.set $9 - loop $for-loop|0 - local.get $9 - local.get $8 - i32.lt_s - local.set $10 - local.get $10 - if - i32.const 0 - drop - i32.const 0 - if (result i32) - i32.const 0 - i32.eqz - else - i32.const 0 - end - drop - i32.const 0 - if (result i32) - i32.const 0 - i32.eqz - else - i32.const 0 - end - drop - local.get $6 - local.get $9 - i32.const 2 - i32.shl - i32.add - local.get $7 - local.get $9 - i32.const 1 - i32.shl - i32.add - i32.load16_s - i32.store - local.get $9 - i32.const 1 - i32.add - local.set $9 - br $for-loop|0 - end - end + call $~lib/typedarray/Uint16Array#set<~lib/typedarray/Uint8Array> + local.get $3 + local.get $2 + i32.const 4 + call $~lib/typedarray/Uint16Array#set<~lib/typedarray/Int16Array> + local.get $3 + global.get $std/typedarray/setSource7 + local.set $6 global.get $~lib/memory/__stack_pointer - i32.const 12 + local.get $6 + i32.store offset=16 + local.get $6 + i32.const 7 + call $~lib/typedarray/Uint16Array#set<~lib/array/Array> + i32.const 0 + drop + local.get $3 + i32.const 10 + i32.const 1 + i32.const 65 + i32.const 10752 + call $~lib/rt/__newArray + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=16 + local.get $6 + call $std/typedarray/valuesEqual<~lib/typedarray/Uint16Array> + global.get $~lib/memory/__stack_pointer + i32.const 20 i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/typedarray/Int32Array#set<~lib/array/Array> (param $0 i32) (param $1 i32) (param $2 i32) + (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) (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 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 - global.get $~lib/memory/__stack_pointer - local.get $0 - local.tee $5 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - local.tee $4 - i32.store offset=4 - local.get $2 - local.set $3 - i32.const 0 - drop - local.get $3 i32.const 0 - i32.lt_s - if - i32.const 336 - i32.const 608 - i32.const 1864 - i32.const 19 - call $~lib/builtins/abort - unreachable - end - local.get $4 - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=8 - local.get $11 - call $~lib/array/Array#get:length - local.get $3 - i32.add - local.get $5 - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=8 - local.get $11 + i32.store + local.get $0 call $~lib/typedarray/Int32Array#get:length - i32.gt_s + local.set $2 + local.get $2 + local.get $1 + call $~lib/array/Array#get:length + i32.eq + i32.eqz if - i32.const 336 - i32.const 608 - i32.const 1865 - i32.const 47 + i32.const 0 + i32.const 544 + i32.const 735 + i32.const 3 call $~lib/builtins/abort unreachable end - i32.const 1 - i32.const 1 - i32.eq - if (result i32) - i32.const 2 - i32.const 0 - i32.eq - else - i32.const 0 - end - if (result i32) - i32.const 0 - if (result i32) - i32.const 1 - else - i32.const 0 - end - i32.eqz - else - i32.const 0 - end - drop - local.get $5 - i32.load offset=4 - local.get $3 - i32.const 2 - i32.shl - i32.add - local.set $6 - local.get $4 - i32.load offset=4 - local.set $7 - local.get $4 - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=8 - local.get $11 - call $~lib/array/Array#get:length - local.set $8 i32.const 0 - local.set $9 + local.set $3 loop $for-loop|0 - local.get $9 - local.get $8 + local.get $3 + local.get $2 i32.lt_s - local.set $10 - local.get $10 + local.set $4 + local.get $4 if - i32.const 0 - drop - i32.const 0 - if (result i32) - i32.const 0 - i32.eqz - else - i32.const 0 - end - drop - i32.const 0 - if (result i32) + local.get $0 + local.get $3 + call $~lib/typedarray/Int32Array#__uget + local.set $5 + local.get $1 + local.get $3 + call $~lib/array/Array#__uget + local.set $6 + local.get $5 + local.get $6 + i32.ne + if + i32.const 10864 + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store + local.get $7 + i32.const 3 + local.get $3 + f64.convert_i32_s + local.get $5 + f64.convert_i32_s + local.get $6 + f64.convert_i32_s + f64.const 0 + f64.const 0 + call $~lib/builtins/trace i32.const 0 i32.eqz - else - i32.const 0 + if + i32.const 0 + i32.const 544 + i32.const 741 + i32.const 7 + call $~lib/builtins/abort + unreachable + end end - drop - local.get $6 - local.get $9 - i32.const 2 - i32.shl - i32.add - local.get $7 - local.get $9 - i32.const 0 - i32.shl - i32.add - i32.load8_s - i32.store - local.get $9 + local.get $3 i32.const 1 i32.add - local.set $9 + local.set $3 br $for-loop|0 end end global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer ) @@ -64787,7 +48499,7 @@ (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 @@ -64798,8 +48510,8 @@ i64.const 0 i64.store offset=8 global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=16 + i32.const 0 + i32.store offset=16 global.get $~lib/memory/__stack_pointer i32.const 0 i32.const 3 @@ -64807,29 +48519,14 @@ local.tee $0 i32.store local.get $0 - local.set $6 - 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 local.get $0 - local.set $6 - 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 local.get $0 - local.set $6 - 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 @@ -64838,40 +48535,20 @@ i32.const 4 call $~lib/typedarray/Uint8Array#constructor local.tee $1 - i32.store offset=8 - local.get $1 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 i32.store offset=4 - local.get $6 + local.get $1 i32.const 0 i32.const 100 call $~lib/typedarray/Uint8Array#__set local.get $1 - local.set $6 - 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 local.get $1 - local.set $6 - 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 local.get $1 - local.set $6 - 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 @@ -64880,31 +48557,16 @@ i32.const 3 call $~lib/typedarray/Int16Array#constructor local.tee $2 - i32.store offset=12 + i32.store offset=8 local.get $2 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 i32.const 0 i32.const 1000 call $~lib/typedarray/Int16Array#__set local.get $2 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 i32.const 1 i32.const 1001 call $~lib/typedarray/Int16Array#__set local.get $2 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 i32.const 2 i32.const 1002 call $~lib/typedarray/Int16Array#__set @@ -64913,27 +48575,17 @@ i32.const 10 call $~lib/typedarray/Int32Array#constructor local.tee $3 - i32.store offset=16 + i32.store offset=12 local.get $3 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 global.get $std/typedarray/setSource1 local.set $6 global.get $~lib/memory/__stack_pointer local.get $6 - i32.store offset=20 + i32.store offset=16 local.get $6 i32.const 0 call $~lib/typedarray/Int32Array#set<~lib/array/Array> local.get $3 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 i32.const 10 i32.const 2 i32.const 16 @@ -64942,29 +48594,19 @@ local.set $6 global.get $~lib/memory/__stack_pointer local.get $6 - i32.store offset=20 + i32.store offset=16 local.get $6 call $std/typedarray/valuesEqual<~lib/typedarray/Int32Array> local.get $3 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 global.get $std/typedarray/setSource2 local.set $6 global.get $~lib/memory/__stack_pointer local.get $6 - i32.store offset=20 + i32.store offset=16 local.get $6 i32.const 3 call $~lib/typedarray/Int32Array#set<~lib/array/Array> local.get $3 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 i32.const 10 i32.const 2 i32.const 16 @@ -64973,29 +48615,14 @@ local.set $6 global.get $~lib/memory/__stack_pointer local.get $6 - i32.store offset=20 + i32.store offset=16 local.get $6 call $std/typedarray/valuesEqual<~lib/typedarray/Int32Array> local.get $3 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 local.get $0 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=20 - local.get $6 i32.const 6 call $~lib/typedarray/Int32Array#set<~lib/typedarray/Int64Array> local.get $3 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 i32.const 10 i32.const 2 i32.const 16 @@ -65004,216 +48631,368 @@ local.set $6 global.get $~lib/memory/__stack_pointer local.get $6 - i32.store offset=20 + i32.store offset=16 local.get $6 call $std/typedarray/valuesEqual<~lib/typedarray/Int32Array> i32.const 1 drop local.get $3 + global.get $std/typedarray/setSource3 local.set $6 global.get $~lib/memory/__stack_pointer local.get $6 - i32.store offset=4 + i32.store offset=16 local.get $6 - global.get $std/typedarray/setSource3 + i32.const 2 + call $~lib/typedarray/Int32Array#set<~lib/array/Array> + local.get $3 + i32.const 10 + i32.const 2 + i32.const 16 + i32.const 11040 + call $~lib/rt/__newArray local.set $6 global.get $~lib/memory/__stack_pointer local.get $6 - i32.store offset=20 + i32.store offset=16 local.get $6 - i32.const 2 - call $~lib/typedarray/Int32Array#set<~lib/array/Array> + call $std/typedarray/valuesEqual<~lib/typedarray/Int32Array> + local.get $3 + local.get $1 + i32.const 0 + call $~lib/typedarray/Int32Array#set<~lib/typedarray/Uint8Array> local.get $3 + local.get $2 + i32.const 4 + call $~lib/typedarray/Int32Array#set<~lib/typedarray/Int16Array> + local.get $3 + global.get $std/typedarray/setSource7 local.set $6 global.get $~lib/memory/__stack_pointer local.get $6 - i32.store offset=4 + i32.store offset=16 local.get $6 + i32.const 7 + call $~lib/typedarray/Int32Array#set<~lib/array/Array> + i32.const 0 + drop + local.get $3 i32.const 10 i32.const 2 i32.const 16 - i32.const 11040 + i32.const 11104 call $~lib/rt/__newArray local.set $6 global.get $~lib/memory/__stack_pointer local.get $6 - i32.store offset=20 + i32.store offset=16 local.get $6 call $std/typedarray/valuesEqual<~lib/typedarray/Int32Array> - local.get $3 - local.set $6 global.get $~lib/memory/__stack_pointer - local.get $6 + i32.const 20 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (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) + (local $6 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 $0 + call $~lib/typedarray/Uint32Array#get:length + local.set $2 + local.get $2 + local.get $1 + call $~lib/array/Array#get:length + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 735 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $3 + loop $for-loop|0 + local.get $3 + local.get $2 + i32.lt_s + local.set $4 + local.get $4 + if + local.get $0 + local.get $3 + call $~lib/typedarray/Uint32Array#__uget + local.set $5 + local.get $1 + local.get $3 + call $~lib/array/Array#__uget + local.set $6 + local.get $5 + local.get $6 + i32.ne + if + i32.const 11232 + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store + local.get $7 + i32.const 3 + local.get $3 + f64.convert_i32_s + local.get $5 + f64.convert_i32_u + local.get $6 + f64.convert_i32_u + f64.const 0 + f64.const 0 + call $~lib/builtins/trace + i32.const 0 + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 741 + i32.const 7 + call $~lib/builtins/abort + unreachable + end + end + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $for-loop|0 + end + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $std/typedarray/testTypedArraySet<~lib/typedarray/Uint32Array> + (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 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 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 3 + call $~lib/typedarray/Int64Array#constructor + local.tee $0 + i32.store + local.get $0 + i32.const 0 + i64.const 7 + call $~lib/typedarray/Int64Array#__set + local.get $0 + i32.const 1 + i64.const 8 + call $~lib/typedarray/Int64Array#__set + local.get $0 + i32.const 2 + i64.const 9 + call $~lib/typedarray/Int64Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 4 + call $~lib/typedarray/Uint8Array#constructor + local.tee $1 i32.store offset=4 - local.get $6 local.get $1 + i32.const 0 + i32.const 100 + call $~lib/typedarray/Uint8Array#__set + local.get $1 + i32.const 1 + i32.const 101 + call $~lib/typedarray/Uint8Array#__set + local.get $1 + i32.const 2 + i32.const 102 + call $~lib/typedarray/Uint8Array#__set + local.get $1 + i32.const 3 + i32.const 103 + call $~lib/typedarray/Uint8Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 3 + call $~lib/typedarray/Int16Array#constructor + local.tee $2 + i32.store offset=8 + local.get $2 + i32.const 0 + i32.const 1000 + call $~lib/typedarray/Int16Array#__set + local.get $2 + i32.const 1 + i32.const 1001 + call $~lib/typedarray/Int16Array#__set + local.get $2 + i32.const 2 + i32.const 1002 + call $~lib/typedarray/Int16Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 10 + call $~lib/typedarray/Uint32Array#constructor + local.tee $3 + i32.store offset=12 + local.get $3 + global.get $std/typedarray/setSource1 local.set $6 global.get $~lib/memory/__stack_pointer local.get $6 - i32.store offset=20 + i32.store offset=16 local.get $6 i32.const 0 - call $~lib/typedarray/Int32Array#set<~lib/typedarray/Uint8Array> + call $~lib/typedarray/Uint32Array#set<~lib/array/Array> local.get $3 + i32.const 10 + i32.const 2 + i32.const 66 + i32.const 11168 + call $~lib/rt/__newArray local.set $6 global.get $~lib/memory/__stack_pointer local.get $6 - i32.store offset=4 + i32.store offset=16 local.get $6 - local.get $2 + call $std/typedarray/valuesEqual<~lib/typedarray/Uint32Array> + local.get $3 + global.get $std/typedarray/setSource2 local.set $6 global.get $~lib/memory/__stack_pointer local.get $6 - i32.store offset=20 + i32.store offset=16 local.get $6 - i32.const 4 - call $~lib/typedarray/Int32Array#set<~lib/typedarray/Int16Array> + i32.const 3 + call $~lib/typedarray/Uint32Array#set<~lib/array/Array> local.get $3 + i32.const 10 + i32.const 2 + i32.const 66 + i32.const 11280 + call $~lib/rt/__newArray local.set $6 global.get $~lib/memory/__stack_pointer local.get $6 - i32.store offset=4 + i32.store offset=16 local.get $6 - global.get $std/typedarray/setSource7 + call $std/typedarray/valuesEqual<~lib/typedarray/Uint32Array> + local.get $3 + local.get $0 + i32.const 6 + call $~lib/typedarray/Uint32Array#set<~lib/typedarray/Int64Array> + local.get $3 + i32.const 10 + i32.const 2 + i32.const 66 + i32.const 11344 + call $~lib/rt/__newArray local.set $6 global.get $~lib/memory/__stack_pointer local.get $6 - i32.store offset=20 + i32.store offset=16 local.get $6 - i32.const 7 - call $~lib/typedarray/Int32Array#set<~lib/array/Array> - i32.const 0 + call $std/typedarray/valuesEqual<~lib/typedarray/Uint32Array> + i32.const 1 drop local.get $3 + global.get $std/typedarray/setSource3 local.set $6 global.get $~lib/memory/__stack_pointer local.get $6 - i32.store offset=4 + i32.store offset=16 local.get $6 + i32.const 2 + call $~lib/typedarray/Uint32Array#set<~lib/array/Array> + local.get $3 i32.const 10 i32.const 2 - i32.const 16 - i32.const 11104 + i32.const 66 + i32.const 11408 call $~lib/rt/__newArray local.set $6 global.get $~lib/memory/__stack_pointer local.get $6 - i32.store offset=20 + i32.store offset=16 local.get $6 - call $std/typedarray/valuesEqual<~lib/typedarray/Int32Array> - global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/typedarray/Uint32Array#set<~lib/array/Array> (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 - 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 - global.get $~lib/memory/__stack_pointer - local.get $0 - local.tee $5 - i32.store - global.get $~lib/memory/__stack_pointer + call $std/typedarray/valuesEqual<~lib/typedarray/Uint32Array> + local.get $3 local.get $1 - local.tee $4 - i32.store offset=4 - local.get $2 - local.set $3 i32.const 0 - drop + call $~lib/typedarray/Uint32Array#set<~lib/typedarray/Uint8Array> local.get $3 - i32.const 0 - i32.lt_s - if - i32.const 336 - i32.const 608 - i32.const 1864 - i32.const 19 - call $~lib/builtins/abort - unreachable - end - local.get $4 + local.get $2 + i32.const 4 + call $~lib/typedarray/Uint32Array#set<~lib/typedarray/Int16Array> + local.get $3 + global.get $std/typedarray/setSource7 local.set $6 global.get $~lib/memory/__stack_pointer local.get $6 - i32.store offset=8 + i32.store offset=16 local.get $6 - call $~lib/array/Array#get:length + i32.const 7 + call $~lib/typedarray/Uint32Array#set<~lib/array/Array> + i32.const 0 + drop local.get $3 - i32.add - local.get $5 + i32.const 10 + i32.const 2 + i32.const 66 + i32.const 11472 + call $~lib/rt/__newArray local.set $6 global.get $~lib/memory/__stack_pointer local.get $6 - i32.store offset=8 + i32.store offset=16 local.get $6 - call $~lib/typedarray/Uint32Array#get:length - i32.gt_s - if - i32.const 336 - i32.const 608 - i32.const 1865 - i32.const 47 - call $~lib/builtins/abort - unreachable - end - i32.const 1 - i32.const 1 - i32.eq - if (result i32) - i32.const 2 - i32.const 2 - i32.eq - else - i32.const 0 - end - if (result i32) - i32.const 0 - if (result i32) - i32.const 1 - else - i32.const 0 - end - i32.eqz - else - i32.const 0 - end - drop - local.get $5 - i32.load offset=4 - local.get $3 - i32.const 2 - i32.shl - i32.add - local.get $4 - i32.load offset=4 - local.get $4 - i32.load offset=8 - call $~lib/memory/memory.copy + call $std/typedarray/valuesEqual<~lib/typedarray/Uint32Array> global.get $~lib/memory/__stack_pointer - i32.const 12 + 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/valuesEqual<~lib/typedarray/Int64Array> (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) - (local $5 i32) - (local $6 i32) + (local $5 i64) + (local $6 i64) (local $7 i32) global.get $~lib/memory/__stack_pointer i32.const 4 @@ -65224,21 +49003,11 @@ i32.const 0 i32.store local.get $0 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store - local.get $7 - call $~lib/typedarray/Uint32Array#get:length + call $~lib/typedarray/Int64Array#get:length local.set $2 local.get $2 local.get $1 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store - local.get $7 - call $~lib/array/Array#get:length + call $~lib/array/Array#get:length i32.eq i32.eqz if @@ -65259,28 +49028,18 @@ local.get $4 if local.get $0 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store - local.get $7 local.get $3 - call $~lib/typedarray/Uint32Array#__uget + call $~lib/typedarray/Int64Array#__uget local.set $5 local.get $1 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store - local.get $7 local.get $3 - call $~lib/array/Array#__uget + call $~lib/array/Array#__uget local.set $6 local.get $5 local.get $6 - i32.ne + i64.ne if - i32.const 11232 + i32.const 11648 local.set $7 global.get $~lib/memory/__stack_pointer local.get $7 @@ -65290,9 +49049,9 @@ local.get $3 f64.convert_i32_s local.get $5 - f64.convert_i32_u + f64.convert_i64_s local.get $6 - f64.convert_i32_u + f64.convert_i64_s f64.const 0 f64.const 0 call $~lib/builtins/trace @@ -65319,19 +49078,16 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/typedarray/Uint32Array#set<~lib/array/Array> (param $0 i32) (param $1 i32) (param $2 i32) + (func $std/typedarray/testTypedArraySet<~lib/typedarray/Int64Array> + (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 f32) - (local $12 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 20 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check @@ -65339,488 +49095,293 @@ 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 0 - i32.store offset=8 + i32.store offset=16 global.get $~lib/memory/__stack_pointer - local.get $0 - local.tee $5 + i32.const 0 + i32.const 3 + call $~lib/typedarray/Int64Array#constructor + local.tee $0 i32.store + local.get $0 + i32.const 0 + i64.const 7 + call $~lib/typedarray/Int64Array#__set + local.get $0 + i32.const 1 + i64.const 8 + call $~lib/typedarray/Int64Array#__set + local.get $0 + i32.const 2 + i64.const 9 + call $~lib/typedarray/Int64Array#__set global.get $~lib/memory/__stack_pointer - local.get $1 - local.tee $4 - i32.store offset=4 - local.get $2 - local.set $3 i32.const 0 - drop - local.get $3 + i32.const 4 + call $~lib/typedarray/Uint8Array#constructor + local.tee $1 + i32.store offset=4 + local.get $1 i32.const 0 - i32.lt_s - if - i32.const 336 - i32.const 608 - i32.const 1864 - i32.const 19 - call $~lib/builtins/abort - unreachable - end - local.get $4 - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/array/Array#get:length - local.get $3 - i32.add - local.get $5 - local.set $12 + i32.const 100 + call $~lib/typedarray/Uint8Array#__set + local.get $1 + i32.const 1 + i32.const 101 + call $~lib/typedarray/Uint8Array#__set + local.get $1 + i32.const 2 + i32.const 102 + call $~lib/typedarray/Uint8Array#__set + local.get $1 + i32.const 3 + i32.const 103 + call $~lib/typedarray/Uint8Array#__set global.get $~lib/memory/__stack_pointer - local.get $12 + i32.const 0 + i32.const 3 + call $~lib/typedarray/Int16Array#constructor + local.tee $2 i32.store offset=8 - local.get $12 - call $~lib/typedarray/Uint32Array#get:length - i32.gt_s - if - i32.const 336 - i32.const 608 - i32.const 1865 - i32.const 47 - call $~lib/builtins/abort - unreachable - end + local.get $2 + i32.const 0 + i32.const 1000 + call $~lib/typedarray/Int16Array#__set + local.get $2 i32.const 1 + i32.const 1001 + call $~lib/typedarray/Int16Array#__set + local.get $2 + i32.const 2 + i32.const 1002 + call $~lib/typedarray/Int16Array#__set + global.get $~lib/memory/__stack_pointer i32.const 0 - i32.eq - if (result i32) - i32.const 2 - i32.const 2 - i32.eq - else - i32.const 0 - end - if (result i32) - i32.const 0 - if (result i32) - i32.const 0 - else - i32.const 0 - end - i32.eqz - else - i32.const 0 - end - drop - local.get $5 - i32.load offset=4 + i32.const 10 + call $~lib/typedarray/Int64Array#constructor + local.tee $3 + i32.store offset=12 local.get $3 - i32.const 2 - i32.shl - i32.add + global.get $std/typedarray/setSource1 local.set $6 - local.get $4 - i32.load offset=4 - local.set $7 - local.get $4 - local.set $12 global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/array/Array#get:length - local.set $8 + local.get $6 + i32.store offset=16 + local.get $6 i32.const 0 - local.set $9 - loop $for-loop|0 - local.get $9 - local.get $8 - i32.lt_s - local.set $10 - local.get $10 - if - i32.const 0 - drop - i32.const 1 - if (result i32) - i32.const 0 - i32.eqz - else - i32.const 0 - end - drop - local.get $7 - local.get $9 - i32.const 2 - i32.shl - i32.add - f32.load - local.set $11 - local.get $6 - local.get $9 - i32.const 2 - i32.shl - i32.add - local.get $11 - local.get $11 - f32.sub - f32.const 0 - f32.eq - if (result i32) - local.get $11 - i32.trunc_f32_u - else - i32.const 0 - end - i32.store - local.get $9 - i32.const 1 - i32.add - local.set $9 - 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/Uint32Array#set<~lib/typedarray/Int64Array> (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 - call $~stack_check + call $~lib/typedarray/Int64Array#set<~lib/array/Array> + local.get $3 + i32.const 10 + i32.const 3 + i32.const 67 + i32.const 11536 + call $~lib/rt/__newArray + local.set $6 global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store + local.get $6 + i32.store offset=16 + local.get $6 + call $std/typedarray/valuesEqual<~lib/typedarray/Int64Array> + local.get $3 + global.get $std/typedarray/setSource2 + local.set $6 global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 + local.get $6 + i32.store offset=16 + local.get $6 + i32.const 3 + call $~lib/typedarray/Int64Array#set<~lib/array/Array> + local.get $3 + i32.const 10 + i32.const 3 + i32.const 67 + i32.const 11696 + call $~lib/rt/__newArray + local.set $6 global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=16 + local.get $6 + call $std/typedarray/valuesEqual<~lib/typedarray/Int64Array> + local.get $3 local.get $0 - local.tee $5 - i32.store + i32.const 6 + call $~lib/typedarray/Int64Array#set<~lib/typedarray/Int64Array> + local.get $3 + i32.const 10 + i32.const 3 + i32.const 67 + i32.const 11808 + call $~lib/rt/__newArray + local.set $6 global.get $~lib/memory/__stack_pointer - local.get $1 - local.tee $4 - i32.store offset=4 - local.get $2 - local.set $3 - i32.const 0 + local.get $6 + i32.store offset=16 + local.get $6 + call $std/typedarray/valuesEqual<~lib/typedarray/Int64Array> + i32.const 1 drop local.get $3 - i32.const 0 - i32.lt_s - if - i32.const 336 - i32.const 608 - i32.const 1864 - i32.const 19 - call $~lib/builtins/abort - unreachable - end - local.get $4 - local.set $11 + global.get $std/typedarray/setSource3 + local.set $6 global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=8 - local.get $11 - call $~lib/typedarray/Int64Array#get:length + local.get $6 + i32.store offset=16 + local.get $6 + i32.const 2 + call $~lib/typedarray/Int64Array#set<~lib/array/Array> local.get $3 - i32.add - local.get $5 - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=8 - local.get $11 - call $~lib/typedarray/Uint32Array#get:length - i32.gt_s - if - i32.const 336 - i32.const 608 - i32.const 1865 - i32.const 47 - call $~lib/builtins/abort - unreachable - end - i32.const 1 - i32.const 1 - i32.eq - if (result i32) - i32.const 2 - i32.const 3 - i32.eq - else - i32.const 0 - end - if (result i32) - i32.const 0 - if (result i32) - i32.const 1 - else - i32.const 0 - end - i32.eqz - else - i32.const 0 - end - drop - local.get $5 - i32.load offset=4 + i32.const 10 + i32.const 3 + i32.const 67 + i32.const 11920 + call $~lib/rt/__newArray + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=16 + local.get $6 + call $std/typedarray/valuesEqual<~lib/typedarray/Int64Array> local.get $3 - i32.const 2 - i32.shl - i32.add + local.get $1 + i32.const 0 + call $~lib/typedarray/Int64Array#set<~lib/typedarray/Uint8Array> + local.get $3 + local.get $2 + i32.const 4 + call $~lib/typedarray/Int64Array#set<~lib/typedarray/Int16Array> + local.get $3 + global.get $std/typedarray/setSource7 local.set $6 - local.get $4 - i32.load offset=4 - local.set $7 - local.get $4 - local.set $11 global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=8 - local.get $11 - call $~lib/typedarray/Int64Array#get:length - local.set $8 + local.get $6 + i32.store offset=16 + local.get $6 + i32.const 7 + call $~lib/typedarray/Int64Array#set<~lib/array/Array> i32.const 0 - local.set $9 - loop $for-loop|0 - local.get $9 - local.get $8 - i32.lt_s - local.set $10 - local.get $10 - if - i32.const 0 - drop - i32.const 0 - if (result i32) - i32.const 0 - i32.eqz - else - i32.const 0 - end - drop - i32.const 0 - if (result i32) - i32.const 0 - i32.eqz - else - i32.const 0 - end - drop - local.get $6 - local.get $9 - i32.const 2 - i32.shl - i32.add - local.get $7 - local.get $9 - i32.const 3 - i32.shl - i32.add - i64.load - i64.store32 - local.get $9 - i32.const 1 - i32.add - local.set $9 - br $for-loop|0 - end - end + drop + local.get $3 + i32.const 10 + i32.const 3 + i32.const 67 + i32.const 12032 + call $~lib/rt/__newArray + local.set $6 global.get $~lib/memory/__stack_pointer - i32.const 12 + local.get $6 + i32.store offset=16 + local.get $6 + call $std/typedarray/valuesEqual<~lib/typedarray/Int64Array> + global.get $~lib/memory/__stack_pointer + i32.const 20 i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/typedarray/Uint32Array#set<~lib/array/Array> (param $0 i32) (param $1 i32) (param $2 i32) + (func $std/typedarray/valuesEqual<~lib/typedarray/Uint64Array> (param $0 i32) (param $1 i32) + (local $2 i32) (local $3 i32) (local $4 i32) - (local $5 i32) - (local $6 i32) + (local $5 i64) + (local $6 i64) (local $7 i32) - (local $8 i32) - (local $9 i32) - (local $10 i32) - (local $11 f64) - (local $12 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 - global.get $~lib/memory/__stack_pointer - local.get $0 - local.tee $5 i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - local.tee $4 - i32.store offset=4 + local.get $0 + call $~lib/typedarray/Uint64Array#get:length + local.set $2 local.get $2 - local.set $3 - i32.const 0 - drop - local.get $3 - i32.const 0 - i32.lt_s - if - i32.const 336 - i32.const 608 - i32.const 1864 - i32.const 19 - call $~lib/builtins/abort - unreachable - end - local.get $4 - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/array/Array#get:length - local.get $3 - i32.add - local.get $5 - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/typedarray/Uint32Array#get:length - i32.gt_s + local.get $1 + call $~lib/array/Array#get:length + i32.eq + i32.eqz if - i32.const 336 - i32.const 608 - i32.const 1865 - i32.const 47 + i32.const 0 + i32.const 544 + i32.const 735 + i32.const 3 call $~lib/builtins/abort unreachable end - i32.const 1 - i32.const 0 - i32.eq - if (result i32) - i32.const 2 - i32.const 3 - i32.eq - else - i32.const 0 - end - if (result i32) - i32.const 0 - if (result i32) - i32.const 0 - else - i32.const 0 - end - i32.eqz - else - i32.const 0 - end - drop - local.get $5 - i32.load offset=4 - local.get $3 - i32.const 2 - i32.shl - i32.add - local.set $6 - local.get $4 - i32.load offset=4 - local.set $7 - local.get $4 - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/array/Array#get:length - local.set $8 i32.const 0 - local.set $9 + local.set $3 loop $for-loop|0 - local.get $9 - local.get $8 + local.get $3 + local.get $2 i32.lt_s - local.set $10 - local.get $10 + local.set $4 + local.get $4 if - i32.const 0 - drop - i32.const 1 - if (result i32) - i32.const 0 - i32.eqz - else - i32.const 0 - end - drop - local.get $7 - local.get $9 - i32.const 3 - i32.shl - i32.add - f64.load - local.set $11 + local.get $0 + local.get $3 + call $~lib/typedarray/Uint64Array#__uget + local.set $5 + local.get $1 + local.get $3 + call $~lib/array/Array#__uget + local.set $6 + local.get $5 local.get $6 - local.get $9 - i32.const 2 - i32.shl - i32.add - local.get $11 - local.get $11 - f64.sub - f64.const 0 - f64.eq - if (result i32) - local.get $11 - i32.trunc_f64_u - else + i64.ne + if + i32.const 12256 + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store + local.get $7 + i32.const 3 + local.get $3 + f64.convert_i32_s + local.get $5 + f64.convert_i64_u + local.get $6 + f64.convert_i64_u + f64.const 0 + f64.const 0 + call $~lib/builtins/trace i32.const 0 + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 741 + i32.const 7 + call $~lib/builtins/abort + unreachable + end end - i32.store - local.get $9 + local.get $3 i32.const 1 i32.add - local.set $9 + local.set $3 br $for-loop|0 end end global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/typedarray/Uint32Array#set<~lib/typedarray/Uint8Array> (param $0 i32) (param $1 i32) (param $2 i32) + (func $std/typedarray/testTypedArraySet<~lib/typedarray/Uint64Array> + (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) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 20 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check @@ -65828,319 +49389,293 @@ 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 0 - i32.store offset=8 + i32.store offset=16 global.get $~lib/memory/__stack_pointer - local.get $0 - local.tee $5 + i32.const 0 + i32.const 3 + call $~lib/typedarray/Int64Array#constructor + local.tee $0 i32.store + local.get $0 + i32.const 0 + i64.const 7 + call $~lib/typedarray/Int64Array#__set + local.get $0 + i32.const 1 + i64.const 8 + call $~lib/typedarray/Int64Array#__set + local.get $0 + i32.const 2 + i64.const 9 + call $~lib/typedarray/Int64Array#__set global.get $~lib/memory/__stack_pointer - local.get $1 - local.tee $4 + i32.const 0 + i32.const 4 + call $~lib/typedarray/Uint8Array#constructor + local.tee $1 i32.store offset=4 + local.get $1 + i32.const 0 + i32.const 100 + call $~lib/typedarray/Uint8Array#__set + local.get $1 + i32.const 1 + i32.const 101 + call $~lib/typedarray/Uint8Array#__set + local.get $1 + i32.const 2 + i32.const 102 + call $~lib/typedarray/Uint8Array#__set + local.get $1 + i32.const 3 + i32.const 103 + call $~lib/typedarray/Uint8Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 3 + call $~lib/typedarray/Int16Array#constructor + local.tee $2 + i32.store offset=8 local.get $2 - local.set $3 i32.const 0 - drop + i32.const 1000 + call $~lib/typedarray/Int16Array#__set + local.get $2 + i32.const 1 + i32.const 1001 + call $~lib/typedarray/Int16Array#__set + local.get $2 + i32.const 2 + i32.const 1002 + call $~lib/typedarray/Int16Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 10 + call $~lib/typedarray/Uint64Array#constructor + local.tee $3 + i32.store offset=12 local.get $3 + global.get $std/typedarray/setSource1 + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=16 + local.get $6 i32.const 0 - i32.lt_s - if - i32.const 336 - i32.const 608 - i32.const 1864 - i32.const 19 - call $~lib/builtins/abort - unreachable - end - local.get $4 - local.set $11 + call $~lib/typedarray/Uint64Array#set<~lib/array/Array> + local.get $3 + i32.const 10 + i32.const 3 + i32.const 68 + i32.const 12144 + call $~lib/rt/__newArray + local.set $6 global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=8 - local.get $11 - call $~lib/typedarray/Uint8Array#get:length + local.get $6 + i32.store offset=16 + local.get $6 + call $std/typedarray/valuesEqual<~lib/typedarray/Uint64Array> local.get $3 - i32.add - local.get $5 - local.set $11 + global.get $std/typedarray/setSource2 + local.set $6 global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=8 - local.get $11 - call $~lib/typedarray/Uint32Array#get:length - i32.gt_s - if - i32.const 336 - i32.const 608 - i32.const 1865 - i32.const 47 - call $~lib/builtins/abort - unreachable - end - i32.const 1 + local.get $6 + i32.store offset=16 + local.get $6 + i32.const 3 + call $~lib/typedarray/Uint64Array#set<~lib/array/Array> + local.get $3 + i32.const 10 + i32.const 3 + i32.const 68 + i32.const 12304 + call $~lib/rt/__newArray + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=16 + local.get $6 + call $std/typedarray/valuesEqual<~lib/typedarray/Uint64Array> + local.get $3 + local.get $0 + i32.const 6 + call $~lib/typedarray/Uint64Array#set<~lib/typedarray/Int64Array> + local.get $3 + i32.const 10 + i32.const 3 + i32.const 68 + i32.const 12416 + call $~lib/rt/__newArray + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=16 + local.get $6 + call $std/typedarray/valuesEqual<~lib/typedarray/Uint64Array> i32.const 1 - i32.eq - if (result i32) - i32.const 2 - i32.const 0 - i32.eq - else - i32.const 0 - end - if (result i32) - i32.const 0 - if (result i32) - i32.const 0 - else - i32.const 0 - end - i32.eqz - else - i32.const 0 - end drop - local.get $5 - i32.load offset=4 local.get $3 - i32.const 2 - i32.shl - i32.add + global.get $std/typedarray/setSource3 + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=16 + local.get $6 + i32.const 2 + call $~lib/typedarray/Uint64Array#set<~lib/array/Array> + local.get $3 + i32.const 10 + i32.const 3 + i32.const 68 + i32.const 12528 + call $~lib/rt/__newArray + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=16 + local.get $6 + call $std/typedarray/valuesEqual<~lib/typedarray/Uint64Array> + local.get $3 + local.get $1 + i32.const 0 + call $~lib/typedarray/Uint64Array#set<~lib/typedarray/Uint8Array> + local.get $3 + local.get $2 + i32.const 4 + call $~lib/typedarray/Uint64Array#set<~lib/typedarray/Int16Array> + local.get $3 + global.get $std/typedarray/setSource7 + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=16 + local.get $6 + i32.const 7 + call $~lib/typedarray/Uint64Array#set<~lib/array/Array> + i32.const 0 + drop + local.get $3 + i32.const 10 + i32.const 3 + i32.const 68 + i32.const 12640 + call $~lib/rt/__newArray local.set $6 - local.get $4 - i32.load offset=4 - local.set $7 - local.get $4 - local.set $11 global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=8 - local.get $11 - call $~lib/typedarray/Uint8Array#get:length - local.set $8 - i32.const 0 - local.set $9 - loop $for-loop|0 - local.get $9 - local.get $8 - i32.lt_s - local.set $10 - local.get $10 - if - i32.const 0 - drop - i32.const 0 - if (result i32) - i32.const 0 - i32.eqz - else - i32.const 0 - end - drop - i32.const 0 - if (result i32) - i32.const 0 - i32.eqz - else - i32.const 0 - end - drop - local.get $6 - local.get $9 - i32.const 2 - i32.shl - i32.add - local.get $7 - local.get $9 - i32.const 0 - i32.shl - i32.add - i32.load8_u - i32.store - local.get $9 - i32.const 1 - i32.add - local.set $9 - br $for-loop|0 - end - end + local.get $6 + i32.store offset=16 + local.get $6 + call $std/typedarray/valuesEqual<~lib/typedarray/Uint64Array> global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 20 i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/typedarray/Uint32Array#set<~lib/typedarray/Int16Array> (param $0 i32) (param $1 i32) (param $2 i32) + (func $std/typedarray/valuesEqual<~lib/typedarray/Float32Array> (param $0 i32) (param $1 i32) + (local $2 i32) (local $3 i32) (local $4 i32) - (local $5 i32) - (local $6 i32) + (local $5 f32) + (local $6 f32) (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 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 - global.get $~lib/memory/__stack_pointer - local.get $0 - local.tee $5 i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - local.tee $4 - i32.store offset=4 + local.get $0 + call $~lib/typedarray/Float32Array#get:length + local.set $2 local.get $2 - local.set $3 - i32.const 0 - drop - local.get $3 - i32.const 0 - i32.lt_s - if - i32.const 336 - i32.const 608 - i32.const 1864 - i32.const 19 - call $~lib/builtins/abort - unreachable - end - local.get $4 - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=8 - local.get $11 - call $~lib/typedarray/Int16Array#get:length - local.get $3 - i32.add - local.get $5 - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=8 - local.get $11 - call $~lib/typedarray/Uint32Array#get:length - i32.gt_s + local.get $1 + call $~lib/array/Array#get:length + i32.eq + i32.eqz if - i32.const 336 - i32.const 608 - i32.const 1865 - i32.const 47 + i32.const 0 + i32.const 544 + i32.const 735 + i32.const 3 call $~lib/builtins/abort unreachable end - i32.const 1 - i32.const 1 - i32.eq - if (result i32) - i32.const 2 - i32.const 1 - i32.eq - else - i32.const 0 - end - if (result i32) - i32.const 0 - if (result i32) - i32.const 1 - else - i32.const 0 - end - i32.eqz - else - i32.const 0 - end - drop - local.get $5 - i32.load offset=4 - local.get $3 - i32.const 2 - i32.shl - i32.add - local.set $6 - local.get $4 - i32.load offset=4 - local.set $7 - local.get $4 - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=8 - local.get $11 - call $~lib/typedarray/Int16Array#get:length - local.set $8 i32.const 0 - local.set $9 + local.set $3 loop $for-loop|0 - local.get $9 - local.get $8 + local.get $3 + local.get $2 i32.lt_s - local.set $10 - local.get $10 + local.set $4 + local.get $4 if - i32.const 0 - drop - i32.const 0 - if (result i32) - i32.const 0 - i32.eqz - else - i32.const 0 - end - drop - i32.const 0 - if (result i32) + local.get $0 + local.get $3 + call $~lib/typedarray/Float32Array#__uget + local.set $5 + local.get $1 + local.get $3 + call $~lib/array/Array#__uget + local.set $6 + local.get $5 + local.get $6 + f32.ne + if + i32.const 12816 + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store + local.get $7 + i32.const 3 + local.get $3 + f64.convert_i32_s + local.get $5 + f64.promote_f32 + local.get $6 + f64.promote_f32 + f64.const 0 + f64.const 0 + call $~lib/builtins/trace i32.const 0 i32.eqz - else - i32.const 0 + if + i32.const 0 + i32.const 544 + i32.const 741 + i32.const 7 + call $~lib/builtins/abort + unreachable + end end - drop - local.get $6 - local.get $9 - i32.const 2 - i32.shl - i32.add - local.get $7 - local.get $9 - i32.const 1 - i32.shl - i32.add - i32.load16_s - i32.store - local.get $9 + local.get $3 i32.const 1 i32.add - local.set $9 + local.set $3 br $for-loop|0 end end global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/typedarray/Uint32Array#set<~lib/array/Array> (param $0 i32) (param $1 i32) (param $2 i32) + (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) - (local $9 i32) - (local $10 i32) - (local $11 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 20 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check @@ -66148,148 +49683,261 @@ 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 0 - i32.store offset=8 + i32.store offset=16 global.get $~lib/memory/__stack_pointer - local.get $0 - local.tee $5 + i32.const 0 + i32.const 3 + call $~lib/typedarray/Int64Array#constructor + local.tee $0 i32.store + local.get $0 + i32.const 0 + i64.const 7 + call $~lib/typedarray/Int64Array#__set + local.get $0 + i32.const 1 + i64.const 8 + call $~lib/typedarray/Int64Array#__set + local.get $0 + i32.const 2 + i64.const 9 + call $~lib/typedarray/Int64Array#__set global.get $~lib/memory/__stack_pointer - local.get $1 - local.tee $4 + i32.const 0 + i32.const 4 + call $~lib/typedarray/Uint8Array#constructor + local.tee $1 i32.store offset=4 + local.get $1 + i32.const 0 + i32.const 100 + call $~lib/typedarray/Uint8Array#__set + local.get $1 + i32.const 1 + i32.const 101 + call $~lib/typedarray/Uint8Array#__set + local.get $1 + i32.const 2 + i32.const 102 + call $~lib/typedarray/Uint8Array#__set + local.get $1 + i32.const 3 + i32.const 103 + call $~lib/typedarray/Uint8Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 3 + call $~lib/typedarray/Int16Array#constructor + local.tee $2 + i32.store offset=8 local.get $2 - local.set $3 i32.const 0 - drop + i32.const 1000 + call $~lib/typedarray/Int16Array#__set + local.get $2 + i32.const 1 + i32.const 1001 + call $~lib/typedarray/Int16Array#__set + local.get $2 + i32.const 2 + i32.const 1002 + call $~lib/typedarray/Int16Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 10 + call $~lib/typedarray/Float32Array#constructor + local.tee $3 + i32.store offset=12 local.get $3 + global.get $std/typedarray/setSource1 + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=16 + local.get $6 i32.const 0 - i32.lt_s - if - i32.const 336 - i32.const 608 - i32.const 1864 - i32.const 19 - call $~lib/builtins/abort - unreachable - end - local.get $4 - local.set $11 + call $~lib/typedarray/Float32Array#set<~lib/array/Array> + local.get $3 + i32.const 10 + i32.const 2 + i32.const 61 + i32.const 12752 + call $~lib/rt/__newArray + local.set $6 global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=8 - local.get $11 - call $~lib/array/Array#get:length + local.get $6 + i32.store offset=16 + local.get $6 + call $std/typedarray/valuesEqual<~lib/typedarray/Float32Array> local.get $3 - i32.add - local.get $5 - local.set $11 + global.get $std/typedarray/setSource2 + local.set $6 global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=8 - local.get $11 - call $~lib/typedarray/Uint32Array#get:length - i32.gt_s - if - i32.const 336 - i32.const 608 - i32.const 1865 - i32.const 47 - call $~lib/builtins/abort - unreachable - end - i32.const 1 - i32.const 1 - i32.eq - if (result i32) - i32.const 2 - i32.const 0 - i32.eq - else - i32.const 0 - end - if (result i32) - i32.const 0 - if (result i32) - i32.const 1 - else - i32.const 0 - end - i32.eqz - else - i32.const 0 - end + local.get $6 + i32.store offset=16 + local.get $6 + i32.const 3 + call $~lib/typedarray/Float32Array#set<~lib/array/Array> + local.get $3 + i32.const 10 + i32.const 2 + i32.const 61 + i32.const 12864 + call $~lib/rt/__newArray + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=16 + local.get $6 + call $std/typedarray/valuesEqual<~lib/typedarray/Float32Array> + local.get $3 + local.get $0 + i32.const 6 + call $~lib/typedarray/Float32Array#set<~lib/typedarray/Int64Array> + local.get $3 + i32.const 10 + i32.const 2 + i32.const 61 + i32.const 12928 + call $~lib/rt/__newArray + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=16 + local.get $6 + call $std/typedarray/valuesEqual<~lib/typedarray/Float32Array> + i32.const 0 + drop + local.get $3 + local.get $1 + i32.const 0 + call $~lib/typedarray/Float32Array#set<~lib/typedarray/Uint8Array> + local.get $3 + local.get $2 + i32.const 4 + call $~lib/typedarray/Float32Array#set<~lib/typedarray/Int16Array> + local.get $3 + global.get $std/typedarray/setSource7 + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=16 + local.get $6 + i32.const 7 + call $~lib/typedarray/Float32Array#set<~lib/array/Array> + i32.const 0 drop - local.get $5 - i32.load offset=4 local.get $3 + i32.const 10 i32.const 2 - i32.shl - i32.add + i32.const 61 + i32.const 12992 + call $~lib/rt/__newArray local.set $6 - local.get $4 - i32.load offset=4 - local.set $7 - local.get $4 - local.set $11 global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=8 - local.get $11 - call $~lib/array/Array#get:length - local.set $8 + local.get $6 + i32.store offset=16 + local.get $6 + call $std/typedarray/valuesEqual<~lib/typedarray/Float32Array> + 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) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 f64) + (local $6 f64) + (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 $0 + call $~lib/typedarray/Float64Array#get:length + local.set $2 + local.get $2 + local.get $1 + call $~lib/array/Array#get:length + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 735 + i32.const 3 + call $~lib/builtins/abort + unreachable + end i32.const 0 - local.set $9 + local.set $3 loop $for-loop|0 - local.get $9 - local.get $8 + local.get $3 + local.get $2 i32.lt_s - local.set $10 - local.get $10 + local.set $4 + local.get $4 if - i32.const 0 - drop - i32.const 0 - if (result i32) - i32.const 0 - i32.eqz - else - i32.const 0 - end - drop - i32.const 0 - if (result i32) + local.get $0 + local.get $3 + call $~lib/typedarray/Float64Array#__uget + local.set $5 + local.get $1 + local.get $3 + call $~lib/array/Array#__uget + local.set $6 + local.get $5 + local.get $6 + f64.ne + if + i32.const 13168 + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store + local.get $7 + i32.const 3 + local.get $3 + f64.convert_i32_s + local.get $5 + local.get $6 + f64.const 0 + f64.const 0 + call $~lib/builtins/trace i32.const 0 i32.eqz - else - i32.const 0 + if + i32.const 0 + i32.const 544 + i32.const 741 + i32.const 7 + call $~lib/builtins/abort + unreachable + end end - drop - local.get $6 - local.get $9 - i32.const 2 - i32.shl - i32.add - local.get $7 - local.get $9 - i32.const 0 - i32.shl - i32.add - i32.load8_s - i32.store - local.get $9 + local.get $3 i32.const 1 i32.add - local.set $9 + local.set $3 br $for-loop|0 end end global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer ) - (func $std/typedarray/testTypedArraySet<~lib/typedarray/Uint32Array> + (func $std/typedarray/testTypedArraySet<~lib/typedarray/Float64Array> (local $0 i32) (local $1 i32) (local $2 i32) @@ -66298,7 +49946,7 @@ (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 @@ -66309,8 +49957,8 @@ i64.const 0 i64.store offset=8 global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=16 + i32.const 0 + i32.store offset=16 global.get $~lib/memory/__stack_pointer i32.const 0 i32.const 3 @@ -66318,29 +49966,14 @@ local.tee $0 i32.store local.get $0 - local.set $6 - 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 local.get $0 - local.set $6 - 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 local.get $0 - local.set $6 - 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 @@ -66349,40 +49982,20 @@ i32.const 4 call $~lib/typedarray/Uint8Array#constructor local.tee $1 - i32.store offset=8 - local.get $1 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 i32.store offset=4 - local.get $6 + local.get $1 i32.const 0 i32.const 100 call $~lib/typedarray/Uint8Array#__set local.get $1 - local.set $6 - 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 local.get $1 - local.set $6 - 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 local.get $1 - local.set $6 - 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 @@ -66391,2607 +50004,2935 @@ i32.const 3 call $~lib/typedarray/Int16Array#constructor local.tee $2 - i32.store offset=12 + i32.store offset=8 local.get $2 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 i32.const 0 i32.const 1000 call $~lib/typedarray/Int16Array#__set local.get $2 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 i32.const 1 i32.const 1001 call $~lib/typedarray/Int16Array#__set local.get $2 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 i32.const 2 i32.const 1002 call $~lib/typedarray/Int16Array#__set global.get $~lib/memory/__stack_pointer i32.const 0 i32.const 10 - call $~lib/typedarray/Uint32Array#constructor + call $~lib/typedarray/Float64Array#constructor local.tee $3 - i32.store offset=16 + i32.store offset=12 local.get $3 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 global.get $std/typedarray/setSource1 local.set $6 global.get $~lib/memory/__stack_pointer local.get $6 - i32.store offset=20 + i32.store offset=16 local.get $6 i32.const 0 - call $~lib/typedarray/Uint32Array#set<~lib/array/Array> + call $~lib/typedarray/Float64Array#set<~lib/array/Array> local.get $3 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 i32.const 10 - i32.const 2 - i32.const 66 - i32.const 11168 + i32.const 3 + i32.const 62 + i32.const 13056 call $~lib/rt/__newArray local.set $6 global.get $~lib/memory/__stack_pointer local.get $6 - i32.store offset=20 + i32.store offset=16 local.get $6 - call $std/typedarray/valuesEqual<~lib/typedarray/Uint32Array> + call $std/typedarray/valuesEqual<~lib/typedarray/Float64Array> local.get $3 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 global.get $std/typedarray/setSource2 local.set $6 global.get $~lib/memory/__stack_pointer local.get $6 - i32.store offset=20 + i32.store offset=16 local.get $6 i32.const 3 - call $~lib/typedarray/Uint32Array#set<~lib/array/Array> + call $~lib/typedarray/Float64Array#set<~lib/array/Array> local.get $3 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 i32.const 10 - i32.const 2 - i32.const 66 - i32.const 11280 + i32.const 3 + i32.const 62 + i32.const 13216 call $~lib/rt/__newArray local.set $6 global.get $~lib/memory/__stack_pointer local.get $6 - i32.store offset=20 + i32.store offset=16 local.get $6 - call $std/typedarray/valuesEqual<~lib/typedarray/Uint32Array> + call $std/typedarray/valuesEqual<~lib/typedarray/Float64Array> local.get $3 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 local.get $0 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=20 - local.get $6 i32.const 6 - call $~lib/typedarray/Uint32Array#set<~lib/typedarray/Int64Array> + call $~lib/typedarray/Float64Array#set<~lib/typedarray/Int64Array> local.get $3 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 i32.const 10 - i32.const 2 - i32.const 66 - i32.const 11344 + i32.const 3 + i32.const 62 + i32.const 13328 call $~lib/rt/__newArray local.set $6 global.get $~lib/memory/__stack_pointer local.get $6 - i32.store offset=20 + i32.store offset=16 local.get $6 - call $std/typedarray/valuesEqual<~lib/typedarray/Uint32Array> - i32.const 1 + call $std/typedarray/valuesEqual<~lib/typedarray/Float64Array> + i32.const 0 drop local.get $3 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - global.get $std/typedarray/setSource3 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=20 - local.get $6 - i32.const 2 - call $~lib/typedarray/Uint32Array#set<~lib/array/Array> + local.get $1 + i32.const 0 + call $~lib/typedarray/Float64Array#set<~lib/typedarray/Uint8Array> + local.get $3 + local.get $2 + i32.const 4 + call $~lib/typedarray/Float64Array#set<~lib/typedarray/Int16Array> local.get $3 + global.get $std/typedarray/setSource7 local.set $6 global.get $~lib/memory/__stack_pointer local.get $6 - i32.store offset=4 + i32.store offset=16 local.get $6 + i32.const 7 + call $~lib/typedarray/Float64Array#set<~lib/array/Array> + i32.const 0 + drop + local.get $3 i32.const 10 - i32.const 2 - i32.const 66 - i32.const 11408 + i32.const 3 + i32.const 62 + i32.const 13440 call $~lib/rt/__newArray local.set $6 global.get $~lib/memory/__stack_pointer local.get $6 - i32.store offset=20 + i32.store offset=16 local.get $6 - call $std/typedarray/valuesEqual<~lib/typedarray/Uint32Array> - local.get $3 - local.set $6 + call $std/typedarray/valuesEqual<~lib/typedarray/Float64Array> global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - local.get $1 - local.set $6 + i32.const 20 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $start:std/typedarray + (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 - local.get $6 - i32.store offset=20 - local.get $6 + i32.const 32 + 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 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=16 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=24 + global.get $~lib/typedarray/Int8Array.BYTES_PER_ELEMENT + i32.const 1 + i32.eq + drop + global.get $~lib/typedarray/Uint8Array.BYTES_PER_ELEMENT + i32.const 1 + i32.eq + drop + global.get $~lib/typedarray/Uint8ClampedArray.BYTES_PER_ELEMENT + i32.const 1 + i32.eq + drop + global.get $~lib/typedarray/Int16Array.BYTES_PER_ELEMENT + i32.const 2 + i32.eq + drop + global.get $~lib/typedarray/Uint16Array.BYTES_PER_ELEMENT + i32.const 2 + i32.eq + drop + global.get $~lib/typedarray/Int32Array.BYTES_PER_ELEMENT + i32.const 4 + i32.eq + drop + global.get $~lib/typedarray/Uint32Array.BYTES_PER_ELEMENT + i32.const 4 + i32.eq + drop + global.get $~lib/typedarray/Int64Array.BYTES_PER_ELEMENT + i32.const 8 + i32.eq + drop + global.get $~lib/typedarray/Uint64Array.BYTES_PER_ELEMENT + i32.const 8 + i32.eq + drop + global.get $~lib/typedarray/Float32Array.BYTES_PER_ELEMENT + i32.const 4 + i32.eq + drop + global.get $~lib/typedarray/Float64Array.BYTES_PER_ELEMENT + i32.const 8 + i32.eq + drop + i32.const 256 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/pinSpace + i32.const 288 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/toSpace + i32.const 432 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/fromSpace i32.const 0 - call $~lib/typedarray/Uint32Array#set<~lib/typedarray/Uint8Array> - local.get $3 - local.set $6 + call $std/typedarray/testInstantiate + i32.const 5 + call $std/typedarray/testInstantiate global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - local.get $2 - local.set $6 + i32.const 0 + i32.const 3 + call $~lib/typedarray/Int32Array#constructor + local.tee $0 + i32.store + local.get $0 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Int32Array#__set + local.get $0 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Int32Array#__set + local.get $0 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Int32Array#__set + local.get $0 + call $~lib/typedarray/Int32Array#get:length + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 95 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 96 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=8 + i32.const 3 + i32.const 4 + i32.mul + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 97 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 0 + call $~lib/typedarray/Int32Array#__get + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 98 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 1 + call $~lib/typedarray/Int32Array#__get + i32.const 2 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 99 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 2 + call $~lib/typedarray/Int32Array#__get + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 100 + i32.const 3 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=20 - local.get $6 + local.get $0 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Int32Array#subarray + local.tee $0 + i32.store + local.get $0 + call $~lib/typedarray/Int32Array#get:length + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 103 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + i32.const 1 + i32.const 4 + i32.mul + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 104 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=8 + i32.const 1 i32.const 4 - call $~lib/typedarray/Uint32Array#set<~lib/typedarray/Int16Array> - local.get $3 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - global.get $std/typedarray/setSource7 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=20 - local.get $6 - i32.const 7 - call $~lib/typedarray/Uint32Array#set<~lib/array/Array> + i32.mul + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 105 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 i32.const 0 - drop - local.get $3 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 10 + call $~lib/typedarray/Int32Array#__get i32.const 2 - i32.const 66 - i32.const 11472 - call $~lib/rt/__newArray - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=20 - local.get $6 - call $std/typedarray/valuesEqual<~lib/typedarray/Uint32Array> - global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/typedarray/Int64Array#set<~lib/array/Array> (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 - call $~stack_check - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 106 + i32.const 3 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer i32.const 0 - i32.store offset=8 + i32.const 8 + call $~lib/typedarray/Float64Array#constructor + local.tee $0 + i32.store + local.get $0 + i32.const 0 + f64.const 1 + call $~lib/typedarray/Float64Array#__set + local.get $0 + i32.const 1 + f64.const 2 + call $~lib/typedarray/Float64Array#__set + local.get $0 + i32.const 2 + f64.const 7 + call $~lib/typedarray/Float64Array#__set + local.get $0 + i32.const 3 + f64.const 6 + call $~lib/typedarray/Float64Array#__set + local.get $0 + i32.const 4 + f64.const 5 + call $~lib/typedarray/Float64Array#__set + local.get $0 + i32.const 5 + f64.const 4 + call $~lib/typedarray/Float64Array#__set + local.get $0 + i32.const 6 + f64.const 3 + call $~lib/typedarray/Float64Array#__set + local.get $0 + i32.const 7 + f64.const 8 + call $~lib/typedarray/Float64Array#__set global.get $~lib/memory/__stack_pointer local.get $0 - local.tee $5 + i32.const 2 + i32.const 6 + call $~lib/typedarray/Float64Array#subarray + local.tee $0 i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - local.tee $4 - i32.store offset=4 - local.get $2 - local.set $3 - i32.const 0 - drop - local.get $3 - i32.const 0 - i32.lt_s + local.get $0 + call $~lib/typedarray/Float64Array#get:length + i32.const 4 + i32.eq + i32.eqz if - i32.const 336 - i32.const 608 - i32.const 1864 - i32.const 19 + i32.const 0 + i32.const 544 + i32.const 122 + i32.const 3 call $~lib/builtins/abort unreachable end - local.get $4 - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=8 - local.get $11 - call $~lib/array/Array#get:length - local.get $3 - i32.add - local.get $5 - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=8 - local.get $11 - call $~lib/typedarray/Int64Array#get:length - i32.gt_s + local.get $0 + call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + i32.const 2 + i32.const 8 + i32.mul + i32.eq + i32.eqz if - i32.const 336 - i32.const 608 - i32.const 1865 - i32.const 47 + i32.const 0 + i32.const 544 + i32.const 123 + i32.const 3 call $~lib/builtins/abort unreachable end - i32.const 1 - i32.const 1 + local.get $0 + i32.load offset=8 + i32.const 4 + i32.const 8 + i32.mul i32.eq - if (result i32) + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 124 i32.const 3 - i32.const 2 - i32.eq + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 0 + global.set $~argumentsLength + i32.const 0 + call $~lib/typedarray/Float64Array#sort@varargs + drop + local.get $0 + i32.const 0 + call $~lib/typedarray/Float64Array#__get + f64.const 4 + f64.eq + if (result i32) + local.get $0 + i32.const 1 + call $~lib/typedarray/Float64Array#__get + f64.const 5 + f64.eq else i32.const 0 end if (result i32) + local.get $0 + i32.const 2 + call $~lib/typedarray/Float64Array#__get + f64.const 6 + f64.eq + else i32.const 0 - if (result i32) - i32.const 1 - else - i32.const 0 - end - i32.eqz + end + if (result i32) + local.get $0 + i32.const 3 + call $~lib/typedarray/Float64Array#__get + f64.const 7 + f64.eq else i32.const 0 end - drop - local.get $5 - i32.load offset=4 - local.get $3 - i32.const 3 - i32.shl - i32.add - local.set $6 - local.get $4 - i32.load offset=4 - local.set $7 - local.get $4 - local.set $11 + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 126 + i32.const 3 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=8 - local.get $11 - call $~lib/array/Array#get:length - local.set $8 i32.const 0 - local.set $9 - loop $for-loop|0 - local.get $9 - local.get $8 - i32.lt_s - local.set $10 - local.get $10 - if - i32.const 0 - drop - i32.const 0 - if (result i32) - i32.const 0 - i32.eqz - else - i32.const 0 - end - drop - i32.const 0 - if (result i32) - i32.const 0 - i32.eqz - else - i32.const 0 - end - drop - local.get $6 - local.get $9 - i32.const 3 - i32.shl - i32.add - local.get $7 - local.get $9 - i32.const 2 - i32.shl - i32.add - i64.load32_s - i64.store - local.get $9 - i32.const 1 - i32.add - local.set $9 - br $for-loop|0 - end + i32.const 3 + call $~lib/typedarray/Uint8ClampedArray#constructor + local.tee $0 + i32.store + local.get $0 + i32.const 0 + i32.const -32 + call $~lib/typedarray/Uint8ClampedArray#__set + local.get $0 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Uint8ClampedArray#__set + local.get $0 + i32.const 2 + i32.const 256 + call $~lib/typedarray/Uint8ClampedArray#__set + local.get $0 + i32.const 0 + call $~lib/typedarray/Uint8ClampedArray#__get + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 135 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 1 + call $~lib/typedarray/Uint8ClampedArray#__get + i32.const 2 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 136 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 2 + call $~lib/typedarray/Uint8ClampedArray#__get + i32.const 255 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 137 + 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/valuesEqual<~lib/typedarray/Int64Array> (param $0 i32) (param $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i64) - (local $6 i64) - (local $7 i32) - global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 5 + call $~lib/typedarray/Int8Array#constructor + local.tee $0 + i32.store + local.get $0 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Int8Array#__set + local.get $0 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Int8Array#__set + local.get $0 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Int8Array#__set + local.get $0 + i32.const 3 i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check + call $~lib/typedarray/Int8Array#__set + local.get $0 + i32.const 4 + i32.const 5 + call $~lib/typedarray/Int8Array#__set + local.get $0 + i32.const 1 + i32.const 1 + i32.const 3 + call $~lib/typedarray/Int8Array#fill + drop + local.get $0 + i32.const 5 + i32.const 0 + i32.const 15 + i32.const 704 + call $~lib/rt/__newArray + local.set $8 global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + call $std/typedarray/isInt8ArrayEqual + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 149 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 i32.const 0 - i32.store + i32.const 0 + global.get $~lib/builtins/i32.MAX_VALUE + call $~lib/typedarray/Int8Array#fill + drop local.get $0 - local.set $7 + i32.const 5 + i32.const 0 + i32.const 15 + i32.const 784 + call $~lib/rt/__newArray + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store - local.get $7 - call $~lib/typedarray/Int64Array#get:length - local.set $2 - local.get $2 - local.get $1 - local.set $7 + local.get $8 + i32.store offset=4 + local.get $8 + call $std/typedarray/isInt8ArrayEqual + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 152 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 1 + i32.const 0 + i32.const -3 + call $~lib/typedarray/Int8Array#fill + drop + local.get $0 + i32.const 5 + i32.const 0 + i32.const 15 + i32.const 816 + call $~lib/rt/__newArray + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store - local.get $7 - call $~lib/array/Array#get:length - i32.eq + local.get $8 + i32.store offset=4 + local.get $8 + call $std/typedarray/isInt8ArrayEqual + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 155 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 2 + i32.const -2 + global.get $~lib/builtins/i32.MAX_VALUE + call $~lib/typedarray/Int8Array#fill + drop + local.get $0 + i32.const 5 + i32.const 0 + i32.const 15 + i32.const 848 + call $~lib/rt/__newArray + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + call $std/typedarray/isInt8ArrayEqual i32.eqz if i32.const 0 i32.const 544 - i32.const 735 + i32.const 158 i32.const 3 call $~lib/builtins/abort unreachable end + local.get $0 i32.const 0 - local.set $3 - loop $for-loop|0 - local.get $3 - local.get $2 - i32.lt_s - local.set $4 - local.get $4 - if - local.get $0 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store - local.get $7 - local.get $3 - call $~lib/typedarray/Int64Array#__uget - local.set $5 - local.get $1 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store - local.get $7 - local.get $3 - call $~lib/array/Array#__uget - local.set $6 - local.get $5 - local.get $6 - i64.ne - if - i32.const 11648 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store - local.get $7 - i32.const 3 - local.get $3 - f64.convert_i32_s - local.get $5 - f64.convert_i64_s - local.get $6 - f64.convert_i64_s - f64.const 0 - f64.const 0 - call $~lib/builtins/trace - i32.const 0 - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 741 - i32.const 7 - call $~lib/builtins/abort - unreachable - end - end - local.get $3 - i32.const 1 - i32.add - local.set $3 - 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/Int64Array#set<~lib/array/Array> (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 f32) - (local $12 i32) - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer + i32.const 1 i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer + call $~lib/typedarray/Int8Array#fill + drop local.get $0 - local.tee $5 - i32.store + i32.const 5 + i32.const 0 + i32.const 15 + i32.const 880 + call $~lib/rt/__newArray + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $1 - local.tee $4 + local.get $8 i32.store offset=4 - local.get $2 - local.set $3 - i32.const 0 - drop - local.get $3 - i32.const 0 - i32.lt_s + local.get $8 + call $std/typedarray/isInt8ArrayEqual + i32.eqz if - i32.const 336 - i32.const 608 - i32.const 1864 - i32.const 19 + i32.const 0 + i32.const 544 + i32.const 161 + i32.const 3 call $~lib/builtins/abort unreachable end - local.get $4 - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/array/Array#get:length - local.get $3 - i32.add - local.get $5 - local.set $12 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $0 + i32.const 1 + i32.const 4 + call $~lib/typedarray/Int8Array#subarray + local.tee $2 i32.store offset=8 - local.get $12 - call $~lib/typedarray/Int64Array#get:length - i32.gt_s + local.get $2 + i32.const 0 + i32.const 0 + global.get $~lib/builtins/i32.MAX_VALUE + call $~lib/typedarray/Int8Array#fill + drop + local.get $2 + call $~lib/typedarray/Int8Array#get:length + i32.const 3 + i32.eq + i32.eqz if - i32.const 336 - i32.const 608 - i32.const 1865 - i32.const 47 + i32.const 0 + i32.const 544 + i32.const 165 + i32.const 3 call $~lib/builtins/abort unreachable end + local.get $2 + call $~lib/arraybuffer/ArrayBufferView#get:byteOffset i32.const 1 - i32.const 0 i32.eq - if (result i32) - i32.const 3 - i32.const 2 - i32.eq - else + i32.eqz + if i32.const 0 + i32.const 544 + i32.const 166 + i32.const 3 + call $~lib/builtins/abort + unreachable end - if (result i32) - i32.const 0 - if (result i32) - i32.const 0 - else - i32.const 0 - end - i32.eqz - else + local.get $2 + i32.load offset=8 + i32.const 3 + i32.eq + i32.eqz + if i32.const 0 + i32.const 544 + i32.const 167 + i32.const 3 + call $~lib/builtins/abort + unreachable end - drop - local.get $5 - i32.load offset=4 - local.get $3 + local.get $2 i32.const 3 - i32.shl - i32.add - local.set $6 - local.get $4 - i32.load offset=4 - local.set $7 - local.get $4 - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/array/Array#get:length - local.set $8 i32.const 0 - local.set $9 - loop $for-loop|0 - local.get $9 - local.get $8 - i32.lt_s - local.set $10 - local.get $10 - if - i32.const 0 - drop - i32.const 1 - if (result i32) - i32.const 0 - i32.eqz - else - i32.const 0 - end - drop - local.get $7 - local.get $9 - i32.const 2 - i32.shl - i32.add - f32.load - local.set $11 - local.get $6 - local.get $9 - i32.const 3 - i32.shl - i32.add - local.get $11 - local.get $11 - f32.sub - f32.const 0 - f32.eq - if (result i64) - local.get $11 - i64.trunc_f32_s - else - i64.const 0 - end - i64.store - local.get $9 - i32.const 1 - i32.add - local.set $9 - 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/typedarray/Int64Array> (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) + i32.const 15 + i32.const 912 + call $~lib/rt/__newArray + local.set $8 global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check + local.get $8 + i32.store offset=4 + local.get $8 + call $std/typedarray/isInt8ArrayEqual + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 168 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 5 + i32.const 0 + i32.const 15 + i32.const 944 + call $~lib/rt/__newArray + local.set $8 global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store + local.get $8 + i32.store offset=4 + local.get $8 + call $std/typedarray/isInt8ArrayEqual + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 169 + i32.const 3 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer i32.const 0 + i32.const 5 + call $~lib/typedarray/Int32Array#constructor + local.tee $2 i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - local.tee $5 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - local.tee $4 - i32.store offset=4 local.get $2 - local.set $3 i32.const 0 + i32.const 1 + call $~lib/typedarray/Int32Array#__set + local.get $2 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Int32Array#__set + local.get $2 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Int32Array#__set + local.get $2 + i32.const 3 + i32.const 4 + call $~lib/typedarray/Int32Array#__set + local.get $2 + i32.const 4 + i32.const 5 + call $~lib/typedarray/Int32Array#__set + local.get $2 + i32.const 1 + i32.const 1 + i32.const 3 + call $~lib/typedarray/Int32Array#fill drop - local.get $3 - i32.const 0 - i32.lt_s + local.get $2 + i32.const 5 + i32.const 2 + i32.const 16 + i32.const 976 + call $~lib/rt/__newArray + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + call $std/typedarray/isInt32ArrayEqual + i32.eqz if - i32.const 336 - i32.const 608 - i32.const 1864 - i32.const 19 + i32.const 0 + i32.const 544 + i32.const 181 + i32.const 3 call $~lib/builtins/abort unreachable end - local.get $4 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=8 - local.get $6 - call $~lib/typedarray/Int64Array#get:length - local.get $3 - i32.add - local.get $5 - local.set $6 + local.get $2 + i32.const 0 + i32.const 0 + global.get $~lib/builtins/i32.MAX_VALUE + call $~lib/typedarray/Int32Array#fill + drop + local.get $2 + i32.const 5 + i32.const 2 + i32.const 16 + i32.const 1024 + call $~lib/rt/__newArray + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=8 - local.get $6 - call $~lib/typedarray/Int64Array#get:length - i32.gt_s + local.get $8 + i32.store offset=4 + local.get $8 + call $std/typedarray/isInt32ArrayEqual + i32.eqz if - i32.const 336 - i32.const 608 - i32.const 1865 - i32.const 47 + i32.const 0 + i32.const 544 + i32.const 184 + i32.const 3 call $~lib/builtins/abort unreachable end + local.get $2 i32.const 1 - i32.const 1 - i32.eq - if (result i32) - i32.const 3 - i32.const 3 - i32.eq - else - i32.const 0 - end - if (result i32) - i32.const 0 - if (result i32) - i32.const 1 - else - i32.const 0 - end - i32.eqz - else + i32.const 0 + i32.const -3 + call $~lib/typedarray/Int32Array#fill + drop + local.get $2 + i32.const 5 + i32.const 2 + i32.const 16 + i32.const 1072 + call $~lib/rt/__newArray + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + call $std/typedarray/isInt32ArrayEqual + i32.eqz + if i32.const 0 + i32.const 544 + i32.const 187 + i32.const 3 + call $~lib/builtins/abort + unreachable end + local.get $2 + i32.const 2 + i32.const -2 + global.get $~lib/builtins/i32.MAX_VALUE + call $~lib/typedarray/Int32Array#fill drop - local.get $5 - i32.load offset=4 - local.get $3 - i32.const 3 - i32.shl - i32.add - local.get $4 - i32.load offset=4 - local.get $4 - i32.load offset=8 - call $~lib/memory/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/array/Array> (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 f64) - (local $12 i32) - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - local.tee $5 - i32.store + local.get $2 + i32.const 5 + i32.const 2 + i32.const 16 + i32.const 1120 + call $~lib/rt/__newArray + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $1 - local.tee $4 + local.get $8 i32.store offset=4 + local.get $8 + call $std/typedarray/isInt32ArrayEqual + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 190 + i32.const 3 + call $~lib/builtins/abort + unreachable + end local.get $2 - local.set $3 i32.const 0 - drop - local.get $3 + i32.const 1 i32.const 0 - i32.lt_s + call $~lib/typedarray/Int32Array#fill + drop + local.get $2 + i32.const 5 + i32.const 2 + i32.const 16 + i32.const 1168 + call $~lib/rt/__newArray + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + call $std/typedarray/isInt32ArrayEqual + i32.eqz if - i32.const 336 - i32.const 608 - i32.const 1864 - i32.const 19 + i32.const 0 + i32.const 544 + i32.const 193 + i32.const 3 call $~lib/builtins/abort unreachable end - local.get $4 - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/array/Array#get:length - local.get $3 - i32.add - local.get $5 - local.set $12 global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/typedarray/Int64Array#get:length - i32.gt_s + local.get $2 + i32.const 1 + i32.const 4 + call $~lib/typedarray/Int32Array#subarray + local.tee $1 + i32.store offset=12 + local.get $1 + i32.const 0 + i32.const 0 + global.get $~lib/builtins/i32.MAX_VALUE + call $~lib/typedarray/Int32Array#fill + drop + local.get $1 + call $~lib/typedarray/Int32Array#get:length + i32.const 3 + i32.eq + i32.eqz if - i32.const 336 - i32.const 608 - i32.const 1865 - i32.const 47 + i32.const 0 + i32.const 544 + i32.const 197 + i32.const 3 call $~lib/builtins/abort unreachable end + local.get $1 + call $~lib/arraybuffer/ArrayBufferView#get:byteOffset i32.const 1 - i32.const 0 + i32.const 4 + i32.mul i32.eq - if (result i32) - i32.const 3 - i32.const 3 - i32.eq - else + i32.eqz + if i32.const 0 + i32.const 544 + i32.const 198 + i32.const 3 + call $~lib/builtins/abort + unreachable end - if (result i32) - i32.const 0 - if (result i32) - i32.const 0 - else - i32.const 0 - end - i32.eqz - else + local.get $1 + i32.load offset=8 + i32.const 3 + i32.const 4 + i32.mul + i32.eq + i32.eqz + if i32.const 0 + i32.const 544 + i32.const 199 + i32.const 3 + call $~lib/builtins/abort + unreachable end - drop - local.get $5 - i32.load offset=4 - local.get $3 + local.get $1 i32.const 3 - i32.shl - i32.add - local.set $6 - local.get $4 - i32.load offset=4 - local.set $7 - local.get $4 - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/array/Array#get:length + i32.const 2 + i32.const 16 + i32.const 1216 + call $~lib/rt/__newArray local.set $8 - i32.const 0 - local.set $9 - loop $for-loop|0 - local.get $9 - local.get $8 - i32.lt_s - local.set $10 - local.get $10 - if - i32.const 0 - drop - i32.const 1 - if (result i32) - i32.const 0 - i32.eqz - else - i32.const 0 - end - drop - local.get $7 - local.get $9 - i32.const 3 - i32.shl - i32.add - f64.load - local.set $11 - local.get $6 - local.get $9 - i32.const 3 - i32.shl - i32.add - local.get $11 - local.get $11 - f64.sub - f64.const 0 - f64.eq - if (result i64) - local.get $11 - i64.trunc_f64_s - else - i64.const 0 - end - i64.store - local.get $9 - i32.const 1 - i32.add - local.set $9 - 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/typedarray/Uint8Array> (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 - call $~stack_check + local.get $8 + i32.store offset=4 + local.get $8 + call $std/typedarray/isInt32ArrayEqual + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 200 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 5 + i32.const 2 + i32.const 16 + i32.const 1248 + call $~lib/rt/__newArray + local.set $8 global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store + local.get $8 + i32.store offset=4 + local.get $8 + call $std/typedarray/isInt32ArrayEqual + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 201 + i32.const 3 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - local.tee $5 - i32.store + i32.const 6 + call $~lib/typedarray/Int8Array#constructor + local.tee $1 + i32.store offset=12 + local.get $1 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Int8Array#__set + local.get $1 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Int8Array#__set + local.get $1 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Int8Array#__set + local.get $1 + i32.const 3 + i32.const 4 + call $~lib/typedarray/Int8Array#__set + local.get $1 + i32.const 4 + i32.const 5 + call $~lib/typedarray/Int8Array#__set + local.get $1 + i32.const 5 + i32.const 6 + call $~lib/typedarray/Int8Array#__set global.get $~lib/memory/__stack_pointer local.get $1 - local.tee $4 - i32.store offset=4 + i32.const 1 + i32.const 6 + call $~lib/typedarray/Int8Array#subarray + local.tee $2 + i32.store offset=8 local.get $2 - local.set $3 i32.const 0 - drop - local.get $3 - i32.const 0 - i32.lt_s + call $~lib/typedarray/Int8Array#__get + i32.const 2 + i32.eq + i32.eqz if - i32.const 336 - i32.const 608 - i32.const 1864 - i32.const 19 + i32.const 0 + i32.const 544 + i32.const 222 + i32.const 3 call $~lib/builtins/abort unreachable end - local.get $4 - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=8 - local.get $11 - call $~lib/typedarray/Uint8Array#get:length - local.get $3 - i32.add - local.get $5 - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=8 - local.get $11 - call $~lib/typedarray/Int64Array#get:length - i32.gt_s + local.get $2 + call $~lib/typedarray/Int8Array#get:length + i32.const 5 + i32.eq + i32.eqz if - i32.const 336 - i32.const 608 - i32.const 1865 - i32.const 47 + i32.const 0 + i32.const 544 + i32.const 223 + i32.const 3 call $~lib/builtins/abort unreachable end - i32.const 1 + local.get $2 + call $~lib/arraybuffer/ArrayBufferView#get:byteOffset i32.const 1 i32.eq - if (result i32) - i32.const 3 - i32.const 0 - i32.eq - else + i32.eqz + if i32.const 0 + i32.const 544 + i32.const 224 + i32.const 3 + call $~lib/builtins/abort + unreachable end - if (result i32) - i32.const 0 - if (result i32) - i32.const 0 - else - i32.const 0 - end - i32.eqz - else + local.get $2 + i32.load offset=8 + i32.const 5 + i32.eq + i32.eqz + if i32.const 0 + i32.const 544 + i32.const 225 + i32.const 3 + call $~lib/builtins/abort + unreachable end - drop - local.get $5 - i32.load offset=4 - local.get $3 - i32.const 3 - i32.shl - i32.add - local.set $6 - local.get $4 - i32.load offset=4 - local.set $7 - local.get $4 - local.set $11 global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=8 - local.get $11 - call $~lib/typedarray/Uint8Array#get:length - local.set $8 + local.get $2 + i32.const 1 + i32.const 5 + call $~lib/typedarray/Int8Array#subarray + local.tee $0 + i32.store + local.get $0 i32.const 0 - local.set $9 - loop $for-loop|0 - local.get $9 - local.get $8 - i32.lt_s - local.set $10 - local.get $10 - if - i32.const 0 - drop - i32.const 0 - if (result i32) - i32.const 0 - i32.eqz - else - i32.const 0 - end - drop - i32.const 0 - if (result i32) - i32.const 0 - i32.eqz - else - i32.const 0 - end - drop - local.get $6 - local.get $9 - i32.const 3 - i32.shl - i32.add - local.get $7 - local.get $9 - i32.const 0 - i32.shl - i32.add - i64.load8_u - i64.store - local.get $9 - i32.const 1 - i32.add - local.set $9 - br $for-loop|0 - end + call $~lib/typedarray/Int8Array#__get + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 228 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + call $~lib/typedarray/Int8Array#get:length + i32.const 4 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 229 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + i32.const 2 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 230 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=8 + i32.const 4 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 231 + 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) (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 - 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 global.get $~lib/memory/__stack_pointer local.get $0 - local.tee $5 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - local.tee $4 - i32.store offset=4 - local.get $2 - local.set $3 - i32.const 0 - drop + i32.const 1 + i32.const 4 + call $~lib/typedarray/Int8Array#subarray + local.tee $3 + i32.store offset=16 local.get $3 i32.const 0 - i32.lt_s + call $~lib/typedarray/Int8Array#__get + i32.const 4 + i32.eq + i32.eqz if - i32.const 336 - i32.const 608 - i32.const 1864 - i32.const 19 + i32.const 0 + i32.const 544 + i32.const 234 + i32.const 3 call $~lib/builtins/abort unreachable end - local.get $4 - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=8 - local.get $11 - call $~lib/typedarray/Int16Array#get:length local.get $3 - i32.add - local.get $5 - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=8 - local.get $11 - call $~lib/typedarray/Int64Array#get:length - i32.gt_s + call $~lib/typedarray/Int8Array#get:length + i32.const 3 + i32.eq + i32.eqz if - i32.const 336 - i32.const 608 - i32.const 1865 - i32.const 47 + i32.const 0 + i32.const 544 + i32.const 235 + i32.const 3 call $~lib/builtins/abort unreachable end - i32.const 1 - i32.const 1 + local.get $3 + call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + i32.const 3 i32.eq - if (result i32) - i32.const 3 - i32.const 1 - i32.eq - else + i32.eqz + if i32.const 0 + i32.const 544 + i32.const 236 + i32.const 3 + call $~lib/builtins/abort + unreachable end - if (result i32) - i32.const 0 - if (result i32) - i32.const 1 - else - i32.const 0 - end - i32.eqz - else + local.get $3 + i32.load offset=8 + i32.const 3 + i32.eq + i32.eqz + if i32.const 0 + i32.const 544 + i32.const 237 + i32.const 3 + call $~lib/builtins/abort + unreachable end - drop - local.get $5 - i32.load offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 5 + call $~lib/typedarray/Int32Array#constructor + local.tee $3 + i32.store offset=16 local.get $3 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Int32Array#__set + local.get $3 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Int32Array#__set + local.get $3 + i32.const 2 i32.const 3 - i32.shl - i32.add - local.set $6 - local.get $4 - i32.load offset=4 - local.set $7 - local.get $4 - local.set $11 + call $~lib/typedarray/Int32Array#__set + local.get $3 + i32.const 3 + i32.const 4 + call $~lib/typedarray/Int32Array#__set + local.get $3 + i32.const 4 + i32.const 5 + call $~lib/typedarray/Int32Array#__set global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=8 - local.get $11 - call $~lib/typedarray/Int16Array#get:length - local.set $8 + local.get $3 i32.const 0 - local.set $9 - loop $for-loop|0 - local.get $9 - local.get $8 - i32.lt_s - local.set $10 - local.get $10 - if - i32.const 0 - drop - i32.const 0 - if (result i32) - i32.const 0 - i32.eqz - else - i32.const 0 - end - drop - i32.const 0 - if (result i32) - i32.const 0 - i32.eqz - else - i32.const 0 - end - drop - local.get $6 - local.get $9 - i32.const 3 - i32.shl - i32.add - local.get $7 - local.get $9 - i32.const 1 - i32.shl - i32.add - i64.load16_s - i64.store - local.get $9 - i32.const 1 - i32.add - local.set $9 - 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) (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 - call $~stack_check - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer + global.get $~lib/builtins/i32.MAX_VALUE + call $~lib/typedarray/Int32Array#slice + local.tee $0 + i32.store + local.get $3 i32.const 0 - i32.store offset=8 + i32.const 3 + global.get $~lib/builtins/i32.MAX_VALUE + call $~lib/typedarray/Int32Array#copyWithin + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $0 - local.tee $5 - i32.store + local.get $8 + i32.store offset=20 + local.get $8 + i32.const 5 + i32.const 2 + i32.const 16 + i32.const 1296 + call $~lib/rt/__newArray + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $1 - local.tee $4 + local.get $8 i32.store offset=4 - local.get $2 - local.set $3 - i32.const 0 - drop - local.get $3 - i32.const 0 - i32.lt_s + local.get $8 + call $std/typedarray/isInt32ArrayEqual + i32.eqz if - i32.const 336 - i32.const 608 - i32.const 1864 - i32.const 19 + i32.const 0 + i32.const 544 + i32.const 248 + i32.const 3 call $~lib/builtins/abort unreachable end - local.get $4 - local.set $11 global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=8 - local.get $11 - call $~lib/array/Array#get:length + local.get $0 + i32.const 0 + global.get $~lib/builtins/i32.MAX_VALUE + call $~lib/typedarray/Int32Array#slice + local.tee $3 + i32.store offset=16 local.get $3 - i32.add - local.get $5 - local.set $11 + i32.const 1 + i32.const 3 + global.get $~lib/builtins/i32.MAX_VALUE + call $~lib/typedarray/Int32Array#copyWithin + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=8 - local.get $11 - call $~lib/typedarray/Int64Array#get:length - i32.gt_s + local.get $8 + i32.store offset=20 + local.get $8 + i32.const 5 + i32.const 2 + i32.const 16 + i32.const 1344 + call $~lib/rt/__newArray + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + call $std/typedarray/isInt32ArrayEqual + i32.eqz if - i32.const 336 - i32.const 608 - i32.const 1865 - i32.const 47 + i32.const 0 + i32.const 544 + i32.const 250 + i32.const 3 call $~lib/builtins/abort unreachable end - i32.const 1 - i32.const 1 - i32.eq - if (result i32) - i32.const 3 - i32.const 0 - i32.eq - else - i32.const 0 - end - if (result i32) - i32.const 0 - if (result i32) - i32.const 1 - else - i32.const 0 - end - i32.eqz - else - i32.const 0 - end - drop - local.get $5 - i32.load offset=4 - local.get $3 - i32.const 3 - i32.shl - i32.add - local.set $6 - local.get $4 - i32.load offset=4 - local.set $7 - local.get $4 - local.set $11 global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=8 - local.get $11 - call $~lib/array/Array#get:length - local.set $8 + local.get $0 i32.const 0 - local.set $9 - loop $for-loop|0 - local.get $9 - local.get $8 - i32.lt_s - local.set $10 - local.get $10 - if - i32.const 0 - drop - i32.const 0 - if (result i32) - i32.const 0 - i32.eqz - else - i32.const 0 - end - drop - i32.const 0 - if (result i32) - i32.const 0 - i32.eqz - else - i32.const 0 - end - drop - local.get $6 - local.get $9 - i32.const 3 - i32.shl - i32.add - local.get $7 - local.get $9 - i32.const 0 - i32.shl - i32.add - i64.load8_s - i64.store - local.get $9 - i32.const 1 - i32.add - local.set $9 - 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/testTypedArraySet<~lib/typedarray/Int64Array> - (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 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 - i64.const 0 - i64.store offset=8 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=16 + global.get $~lib/builtins/i32.MAX_VALUE + call $~lib/typedarray/Int32Array#slice + local.tee $3 + i32.store offset=16 + local.get $3 + i32.const 1 + i32.const 2 + global.get $~lib/builtins/i32.MAX_VALUE + call $~lib/typedarray/Int32Array#copyWithin + local.set $8 global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 3 - call $~lib/typedarray/Int64Array#constructor - local.tee $0 - i32.store - local.get $0 - local.set $6 + local.get $8 + i32.store offset=20 + local.get $8 + i32.const 5 + i32.const 2 + i32.const 16 + i32.const 1392 + call $~lib/rt/__newArray + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $8 i32.store offset=4 - local.get $6 - i32.const 0 - i64.const 7 - call $~lib/typedarray/Int64Array#__set - local.get $0 - local.set $6 + local.get $8 + call $std/typedarray/isInt32ArrayEqual + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 252 + i32.const 3 + call $~lib/builtins/abort + unreachable + end 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 local.get $0 - local.set $6 + i32.const 0 + global.get $~lib/builtins/i32.MAX_VALUE + call $~lib/typedarray/Int32Array#slice + local.tee $3 + i32.store offset=16 + local.get $3 + i32.const 2 + i32.const 2 + global.get $~lib/builtins/i32.MAX_VALUE + call $~lib/typedarray/Int32Array#copyWithin + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 + local.get $8 + i32.store offset=20 + local.get $8 + i32.const 5 i32.const 2 - i64.const 9 - call $~lib/typedarray/Int64Array#__set + i32.const 16 + i32.const 1440 + call $~lib/rt/__newArray + local.set $8 global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 4 - call $~lib/typedarray/Uint8Array#constructor - local.tee $1 - i32.store offset=8 - local.get $1 - local.set $6 + local.get $8 + i32.store offset=4 + local.get $8 + call $std/typedarray/isInt32ArrayEqual + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 254 + i32.const 3 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 + local.get $0 i32.const 0 - i32.const 100 - call $~lib/typedarray/Uint8Array#__set - local.get $1 - local.set $6 - 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 - local.get $1 - local.set $6 + global.get $~lib/builtins/i32.MAX_VALUE + call $~lib/typedarray/Int32Array#slice + local.tee $3 + i32.store offset=16 + local.get $3 + i32.const 0 + i32.const 3 + i32.const 4 + call $~lib/typedarray/Int32Array#copyWithin + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 + local.get $8 + i32.store offset=20 + local.get $8 + i32.const 5 i32.const 2 - i32.const 102 - call $~lib/typedarray/Uint8Array#__set - local.get $1 - local.set $6 + i32.const 16 + i32.const 1488 + call $~lib/rt/__newArray + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $8 i32.store offset=4 - local.get $6 - i32.const 3 - i32.const 103 - call $~lib/typedarray/Uint8Array#__set + local.get $8 + call $std/typedarray/isInt32ArrayEqual + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 256 + i32.const 3 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer + local.get $0 i32.const 0 + global.get $~lib/builtins/i32.MAX_VALUE + call $~lib/typedarray/Int32Array#slice + local.tee $3 + i32.store offset=16 + local.get $3 + i32.const 1 i32.const 3 - call $~lib/typedarray/Int16Array#constructor - local.tee $2 - i32.store offset=12 - local.get $2 - local.set $6 + i32.const 4 + call $~lib/typedarray/Int32Array#copyWithin + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - i32.const 1000 - call $~lib/typedarray/Int16Array#__set - local.get $2 - local.set $6 + local.get $8 + i32.store offset=20 + local.get $8 + i32.const 5 + i32.const 2 + i32.const 16 + i32.const 1536 + call $~lib/rt/__newArray + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $8 i32.store offset=4 - local.get $6 + local.get $8 + call $std/typedarray/isInt32ArrayEqual + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 258 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.const 0 + global.get $~lib/builtins/i32.MAX_VALUE + call $~lib/typedarray/Int32Array#slice + local.tee $3 + i32.store offset=16 + local.get $3 i32.const 1 - i32.const 1001 - call $~lib/typedarray/Int16Array#__set - local.get $2 - local.set $6 + i32.const 2 + i32.const 4 + call $~lib/typedarray/Int32Array#copyWithin + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 + local.get $8 + i32.store offset=20 + local.get $8 + i32.const 5 i32.const 2 - i32.const 1002 - call $~lib/typedarray/Int16Array#__set + i32.const 16 + i32.const 1584 + call $~lib/rt/__newArray + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + call $std/typedarray/isInt32ArrayEqual + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 260 + i32.const 3 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer + local.get $0 i32.const 0 - i32.const 10 - call $~lib/typedarray/Int64Array#constructor + global.get $~lib/builtins/i32.MAX_VALUE + call $~lib/typedarray/Int32Array#slice local.tee $3 i32.store offset=16 local.get $3 - local.set $6 + i32.const 0 + i32.const -2 + global.get $~lib/builtins/i32.MAX_VALUE + call $~lib/typedarray/Int32Array#copyWithin + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $8 + i32.store offset=20 + local.get $8 + i32.const 5 + i32.const 2 + i32.const 16 + i32.const 1632 + call $~lib/rt/__newArray + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 i32.store offset=4 - local.get $6 - global.get $std/typedarray/setSource1 - local.set $6 + local.get $8 + call $std/typedarray/isInt32ArrayEqual + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 262 + i32.const 3 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=20 - local.get $6 + local.get $0 i32.const 0 - call $~lib/typedarray/Int64Array#set<~lib/array/Array> + global.get $~lib/builtins/i32.MAX_VALUE + call $~lib/typedarray/Int32Array#slice + local.tee $3 + i32.store offset=16 local.get $3 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 10 - i32.const 3 - i32.const 67 - i32.const 11536 - call $~lib/rt/__newArray - local.set $6 + i32.const 0 + i32.const -2 + i32.const -1 + call $~lib/typedarray/Int32Array#copyWithin + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $8 i32.store offset=20 - local.get $6 - call $std/typedarray/valuesEqual<~lib/typedarray/Int64Array> - local.get $3 - local.set $6 + local.get $8 + i32.const 5 + i32.const 2 + i32.const 16 + i32.const 1680 + call $~lib/rt/__newArray + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $8 i32.store offset=4 - local.get $6 - global.get $std/typedarray/setSource2 - local.set $6 + local.get $8 + call $std/typedarray/isInt32ArrayEqual + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 264 + i32.const 3 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=20 - local.get $6 - i32.const 3 - call $~lib/typedarray/Int64Array#set<~lib/array/Array> + local.get $0 + i32.const 0 + global.get $~lib/builtins/i32.MAX_VALUE + call $~lib/typedarray/Int32Array#slice + local.tee $3 + i32.store offset=16 local.get $3 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 10 - i32.const 3 - i32.const 67 - i32.const 11696 - call $~lib/rt/__newArray - local.set $6 + i32.const -4 + i32.const -3 + i32.const -2 + call $~lib/typedarray/Int32Array#copyWithin + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $8 i32.store offset=20 - local.get $6 - call $std/typedarray/valuesEqual<~lib/typedarray/Int64Array> - local.get $3 - local.set $6 + local.get $8 + i32.const 5 + i32.const 2 + i32.const 16 + i32.const 1728 + call $~lib/rt/__newArray + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $8 i32.store offset=4 - local.get $6 + local.get $8 + call $std/typedarray/isInt32ArrayEqual + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 266 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer local.get $0 - local.set $6 + i32.const 0 + global.get $~lib/builtins/i32.MAX_VALUE + call $~lib/typedarray/Int32Array#slice + local.tee $3 + i32.store offset=16 + local.get $3 + i32.const -4 + i32.const -3 + i32.const -1 + call $~lib/typedarray/Int32Array#copyWithin + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $8 i32.store offset=20 - local.get $6 - i32.const 6 - call $~lib/typedarray/Int64Array#set<~lib/typedarray/Int64Array> - local.get $3 - local.set $6 + local.get $8 + i32.const 5 + i32.const 2 + i32.const 16 + i32.const 1776 + call $~lib/rt/__newArray + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $8 i32.store offset=4 - local.get $6 - i32.const 10 - i32.const 3 - i32.const 67 - i32.const 11808 - call $~lib/rt/__newArray - local.set $6 + local.get $8 + call $std/typedarray/isInt32ArrayEqual + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 268 + i32.const 3 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=20 - local.get $6 - call $std/typedarray/valuesEqual<~lib/typedarray/Int64Array> - i32.const 1 - drop + local.get $0 + i32.const 0 + global.get $~lib/builtins/i32.MAX_VALUE + call $~lib/typedarray/Int32Array#slice + local.tee $3 + i32.store offset=16 local.get $3 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - global.get $std/typedarray/setSource3 - local.set $6 + i32.const -4 + i32.const -3 + global.get $~lib/builtins/i32.MAX_VALUE + call $~lib/typedarray/Int32Array#copyWithin + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $8 i32.store offset=20 - local.get $6 + local.get $8 + i32.const 5 i32.const 2 - call $~lib/typedarray/Int64Array#set<~lib/array/Array> - local.get $3 - local.set $6 + i32.const 16 + i32.const 1824 + call $~lib/rt/__newArray + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $8 i32.store offset=4 - local.get $6 - i32.const 10 + local.get $8 + call $std/typedarray/isInt32ArrayEqual + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 270 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 5 + call $~lib/typedarray/Int32Array#constructor + local.tee $0 + i32.store + local.get $0 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Int32Array#__set + local.get $0 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Int32Array#__set + local.get $0 + i32.const 2 i32.const 3 - i32.const 67 - i32.const 11920 - call $~lib/rt/__newArray - local.set $6 + call $~lib/typedarray/Int32Array#__set + local.get $0 + i32.const 3 + i32.const 4 + call $~lib/typedarray/Int32Array#__set + local.get $0 + i32.const 4 + i32.const 5 + call $~lib/typedarray/Int32Array#__set global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=20 - local.get $6 - call $std/typedarray/valuesEqual<~lib/typedarray/Int64Array> + local.get $0 + i32.const 1 + i32.const 4 + call $~lib/typedarray/Int32Array#subarray + local.tee $3 + i32.store offset=16 local.get $3 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - local.get $1 - local.set $6 + call $~lib/typedarray/Int32Array#get:length + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 282 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $3 + call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + i32.const 4 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 283 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.load offset=8 + i32.const 12 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 284 + i32.const 3 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=20 - local.get $6 + local.get $0 + i32.const 1 + i32.const 3 + call $~lib/typedarray/Int32Array#slice + local.tee $2 + i32.store offset=8 + local.get $2 + i32.const 0 + call $~lib/typedarray/Int32Array#__get + i32.const 2 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 287 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 1 + call $~lib/typedarray/Int32Array#__get + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 288 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + call $~lib/typedarray/Int32Array#get:length + i32.const 2 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 289 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + call $~lib/arraybuffer/ArrayBufferView#get:byteOffset i32.const 0 - call $~lib/typedarray/Int64Array#set<~lib/typedarray/Uint8Array> - local.get $3 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 290 + i32.const 3 + call $~lib/builtins/abort + unreachable + end local.get $2 - local.set $6 + i32.load offset=8 + i32.const 8 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 291 + i32.const 3 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=20 - local.get $6 - i32.const 4 - call $~lib/typedarray/Int64Array#set<~lib/typedarray/Int16Array> local.get $3 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - global.get $std/typedarray/setSource7 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=20 - local.get $6 - i32.const 7 - call $~lib/typedarray/Int64Array#set<~lib/array/Array> + i32.const 1 + i32.const 2 + call $~lib/typedarray/Int32Array#slice + local.tee $1 + i32.store offset=12 + local.get $1 i32.const 0 - drop - local.get $3 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 10 + call $~lib/typedarray/Int32Array#__get i32.const 3 - i32.const 67 - i32.const 12032 - call $~lib/rt/__newArray - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=20 - local.get $6 - call $std/typedarray/valuesEqual<~lib/typedarray/Int64Array> - global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/typedarray/Uint64Array#set<~lib/array/Array> (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 - call $~stack_check - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 294 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + call $~lib/typedarray/Int32Array#get:length + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 295 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + call $~lib/arraybuffer/ArrayBufferView#get:byteOffset i32.const 0 - i32.store offset=8 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 296 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.load offset=8 + i32.const 4 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 297 + i32.const 3 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer local.get $0 - local.tee $5 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - local.tee $4 - i32.store offset=4 - local.get $2 - local.set $3 i32.const 0 - drop - local.get $3 - i32.const 0 - i32.lt_s + global.get $~lib/builtins/i32.MAX_VALUE + call $~lib/typedarray/Int32Array#slice + local.tee $4 + i32.store offset=24 + local.get $4 + local.get $0 + i32.ne + i32.eqz if - i32.const 336 - i32.const 608 - i32.const 1864 - i32.const 19 + i32.const 0 + i32.const 544 + i32.const 300 + i32.const 3 call $~lib/builtins/abort unreachable end local.get $4 - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=8 - local.get $11 - call $~lib/array/Array#get:length - local.get $3 - i32.add - local.get $5 - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=8 - local.get $11 - call $~lib/typedarray/Uint64Array#get:length - i32.gt_s + call $~lib/typedarray/Int32Array#get:length + local.get $0 + call $~lib/typedarray/Int32Array#get:length + i32.eq + i32.eqz if - i32.const 336 - i32.const 608 - i32.const 1865 - i32.const 47 + i32.const 0 + i32.const 544 + i32.const 301 + i32.const 3 call $~lib/builtins/abort unreachable end - i32.const 1 - i32.const 1 + local.get $4 + call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + local.get $0 + call $~lib/arraybuffer/ArrayBufferView#get:byteOffset i32.eq - if (result i32) + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 302 i32.const 3 - i32.const 2 - i32.eq - else + call $~lib/builtins/abort + unreachable + end + local.get $4 + i32.load offset=8 + local.get $0 + i32.load offset=8 + i32.eq + i32.eqz + if i32.const 0 + i32.const 544 + i32.const 303 + i32.const 3 + call $~lib/builtins/abort + unreachable end - if (result i32) + 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/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 + call $~lib/typedarray/Float64Array#constructor + local.tee $1 + i32.store offset=12 + local.get $1 + i32.const 0 + f64.const nan:0x8000000000000 + call $~lib/typedarray/Float64Array#__set + local.get $1 + f64.const nan:0x8000000000000 + i32.const 0 + call $~lib/typedarray/Float64Array#indexOf + i32.const -1 + i32.eq + i32.eqz + if i32.const 0 - if (result i32) - i32.const 1 - else - i32.const 0 - end - i32.eqz - else + i32.const 544 + i32.const 630 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + f64.const nan:0x8000000000000 + i32.const 0 + call $~lib/typedarray/Float64Array#includes + i32.const 0 + i32.ne + i32.const 1 + i32.eq + i32.eqz + if i32.const 0 + i32.const 544 + i32.const 631 + i32.const 3 + call $~lib/builtins/abort + unreachable end - drop - local.get $5 - i32.load offset=4 - local.get $3 - i32.const 3 - i32.shl - i32.add - local.set $6 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 1 + call $~lib/typedarray/Float32Array#constructor + local.tee $4 + i32.store offset=24 local.get $4 - i32.load offset=4 - local.set $7 + i32.const 0 + f32.const nan:0x400000 + call $~lib/typedarray/Float32Array#__set local.get $4 - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=8 - local.get $11 - call $~lib/array/Array#get:length - local.set $8 + f32.const nan:0x400000 i32.const 0 - local.set $9 - loop $for-loop|0 - local.get $9 - local.get $8 - i32.lt_s - local.set $10 - local.get $10 - if - i32.const 0 - drop - i32.const 0 - if (result i32) - i32.const 0 - i32.eqz - else - i32.const 0 - end - drop - i32.const 0 - if (result i32) - i32.const 0 - i32.eqz - else - i32.const 0 - end - drop - local.get $6 - local.get $9 - i32.const 3 - i32.shl - i32.add - local.get $7 - local.get $9 - i32.const 2 - i32.shl - i32.add - i64.load32_s - i64.store - local.get $9 - i32.const 1 - i32.add - local.set $9 - br $for-loop|0 - end + call $~lib/typedarray/Float32Array#indexOf + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 636 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $4 + f32.const nan:0x400000 + i32.const 0 + call $~lib/typedarray/Float32Array#includes + i32.const 0 + i32.ne + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 637 + i32.const 3 + 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> global.get $~lib/memory/__stack_pointer - i32.const 12 - 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 i32) - (local $5 i64) - (local $6 i64) - (local $7 i32) + i32.const 0 + i32.const 0 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $1 + i32.store offset=12 global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check + local.get $1 + i32.const 0 + i32.const 2 + global.set $~argumentsLength + i32.const 0 + call $~lib/typedarray/Uint8Array.wrap@varargs + local.tee $4 + i32.store offset=24 + local.get $4 + call $~lib/typedarray/Uint8Array#get:length + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 544 + i32.const 714 + i32.const 3 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer i32.const 0 - i32.store - local.get $0 - local.set $7 + i32.const 2 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $1 + i32.store offset=12 global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store - local.get $7 - call $~lib/typedarray/Uint64Array#get:length - local.set $2 - local.get $2 local.get $1 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store - local.get $7 - call $~lib/array/Array#get:length + i32.const 2 + i32.const 2 + global.set $~argumentsLength + i32.const 0 + call $~lib/typedarray/Uint8Array.wrap@varargs + local.tee $4 + i32.store offset=24 + local.get $4 + call $~lib/typedarray/Uint8Array#get:length + i32.const 0 i32.eq i32.eqz if i32.const 0 i32.const 544 - i32.const 735 + i32.const 718 i32.const 3 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/testTypedArraySet<~lib/typedarray/Int8Array> + call $std/typedarray/testTypedArraySet<~lib/typedarray/Uint8Array> + call $std/typedarray/testTypedArraySet<~lib/typedarray/Uint8ClampedArray> + call $std/typedarray/testTypedArraySet<~lib/typedarray/Int16Array> + call $std/typedarray/testTypedArraySet<~lib/typedarray/Uint16Array> + call $std/typedarray/testTypedArraySet<~lib/typedarray/Int32Array> + call $std/typedarray/testTypedArraySet<~lib/typedarray/Uint32Array> + call $std/typedarray/testTypedArraySet<~lib/typedarray/Int64Array> + call $std/typedarray/testTypedArraySet<~lib/typedarray/Uint64Array> + call $std/typedarray/testTypedArraySet<~lib/typedarray/Float32Array> + call $std/typedarray/testTypedArraySet<~lib/typedarray/Float64Array> + global.get $~lib/memory/__stack_pointer i32.const 0 - local.set $3 - loop $for-loop|0 - local.get $3 - local.get $2 - i32.lt_s - local.set $4 - local.get $4 - if - local.get $0 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store - local.get $7 - local.get $3 - call $~lib/typedarray/Uint64Array#__uget - local.set $5 - local.get $1 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store - local.get $7 - local.get $3 - call $~lib/array/Array#__uget - local.set $6 - local.get $5 - local.get $6 - i64.ne - if - i32.const 12256 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store - local.get $7 - i32.const 3 - local.get $3 - f64.convert_i32_s - local.get $5 - f64.convert_i64_u - local.get $6 - f64.convert_i64_u - f64.const 0 - f64.const 0 - call $~lib/builtins/trace - i32.const 0 - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 741 - i32.const 7 - call $~lib/builtins/abort - unreachable - end - end - local.get $3 - i32.const 1 - i32.add - local.set $3 - br $for-loop|0 - end - end + i32.const 10 + call $~lib/typedarray/Uint8ClampedArray#constructor + local.tee $4 + i32.store offset=24 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 3 + call $~lib/typedarray/Float32Array#constructor + local.tee $1 + i32.store offset=12 + local.get $1 + i32.const 0 + f32.const 400 + call $~lib/typedarray/Float32Array#__set + local.get $1 + i32.const 1 + f32.const nan:0x400000 + call $~lib/typedarray/Float32Array#__set + local.get $1 + i32.const 2 + f32.const inf + call $~lib/typedarray/Float32Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 4 + call $~lib/typedarray/Int64Array#constructor + local.tee $2 + i32.store offset=8 + local.get $2 + i32.const 0 + i64.const -10 + call $~lib/typedarray/Int64Array#__set + local.get $2 + i32.const 1 + i64.const 100 + call $~lib/typedarray/Int64Array#__set + local.get $2 + i32.const 2 + i64.const 10 + call $~lib/typedarray/Int64Array#__set + local.get $2 + i32.const 3 + i64.const 300 + call $~lib/typedarray/Int64Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 2 + call $~lib/typedarray/Int32Array#constructor + local.tee $3 + i32.store offset=16 + local.get $3 + i32.const 0 + i32.const 300 + call $~lib/typedarray/Int32Array#__set + local.get $3 + i32.const 1 + i32.const -1 + call $~lib/typedarray/Int32Array#__set + local.get $4 + local.get $1 + i32.const 1 + call $~lib/typedarray/Uint8ClampedArray#set<~lib/typedarray/Float32Array> + local.get $4 + local.get $2 + i32.const 4 + call $~lib/typedarray/Uint8ClampedArray#set<~lib/typedarray/Int64Array> + local.get $4 + local.get $3 + i32.const 8 + call $~lib/typedarray/Uint8ClampedArray#set<~lib/typedarray/Int32Array> + local.get $4 + i32.const 10 + i32.const 0 + i32.const 63 + i32.const 13552 + call $~lib/rt/__newArray + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + 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 $5 + i32.store offset=28 + local.get $5 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Uint32Array#__set + local.get $5 + i32.const 1 + i32.const 300 + call $~lib/typedarray/Uint32Array#__set + local.get $5 + i32.const 2 + i32.const 100 + call $~lib/typedarray/Uint32Array#__set + local.get $5 + i32.const 3 + i32.const -1 + call $~lib/typedarray/Uint32Array#__set global.get $~lib/memory/__stack_pointer + i32.const 0 i32.const 4 + call $~lib/typedarray/Int16Array#constructor + local.tee $0 + i32.store + local.get $0 + i32.const 0 + i32.const -10 + call $~lib/typedarray/Int16Array#__set + local.get $0 + i32.const 1 + i32.const 100 + call $~lib/typedarray/Int16Array#__set + local.get $0 + i32.const 2 + i32.const 10 + call $~lib/typedarray/Int16Array#__set + local.get $0 + i32.const 3 + i32.const 300 + call $~lib/typedarray/Int16Array#__set + local.get $4 + local.get $5 + i32.const 0 + call $~lib/typedarray/Uint8ClampedArray#set<~lib/typedarray/Uint32Array> + local.get $4 + local.get $0 + i32.const 5 + call $~lib/typedarray/Uint8ClampedArray#set<~lib/typedarray/Int16Array> + local.get $4 + i32.const 10 + i32.const 0 + i32.const 63 + i32.const 13584 + call $~lib/rt/__newArray + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + call $std/typedarray/valuesEqual<~lib/typedarray/Uint8ClampedArray> + 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 32 i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/typedarray/Uint64Array#set<~lib/array/Array> (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/arraybuffer/ArrayBufferView#constructor (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) - (local $11 f32) - (local $12 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 + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 2 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + local.get $0 i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer + call $~lib/arraybuffer/ArrayBufferView#set:buffer local.get $0 - local.tee $5 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - local.tee $4 - i32.store offset=4 - local.get $2 - local.set $3 i32.const 0 - drop - local.get $3 + call $~lib/arraybuffer/ArrayBufferView#set:dataStart + local.get $0 i32.const 0 - i32.lt_s + call $~lib/arraybuffer/ArrayBufferView#set:byteLength + local.get $1 + i32.const 1073741820 + local.get $2 + i32.shr_u + i32.gt_u if - i32.const 336 - i32.const 608 - i32.const 1864 - i32.const 19 + i32.const 32 + i32.const 80 + i32.const 18 + i32.const 57 call $~lib/builtins/abort unreachable end - local.get $4 - local.set $12 global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/array/Array#get:length + local.get $1 + local.get $2 + i32.shl + local.tee $1 + i32.const 0 + call $~lib/rt/itcms/__new + local.tee $3 + i32.store offset=4 local.get $3 - i32.add - local.get $5 - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/typedarray/Uint64Array#get:length - i32.gt_s - if - i32.const 336 - i32.const 608 - i32.const 1865 - i32.const 47 - call $~lib/builtins/abort - unreachable - end - i32.const 1 i32.const 0 - i32.eq - if (result i32) - i32.const 3 - i32.const 2 - i32.eq - else - i32.const 0 - end - if (result i32) - i32.const 0 - if (result i32) - i32.const 0 - else - i32.const 0 - end - i32.eqz - else - i32.const 0 - end - drop - local.get $5 - i32.load offset=4 + local.get $1 + call $~lib/memory/memory.fill + local.get $0 local.get $3 - i32.const 3 - i32.shl + call $~lib/arraybuffer/ArrayBufferView#set:buffer + local.get $0 + local.get $3 + call $~lib/arraybuffer/ArrayBufferView#set:dataStart + local.get $0 + local.get $1 + call $~lib/arraybuffer/ArrayBufferView#set:byteLength + local.get $0 + local.set $4 + global.get $~lib/memory/__stack_pointer + i32.const 8 i32.add - local.set $6 - local.get $4 - i32.load offset=4 - local.set $7 + global.set $~lib/memory/__stack_pointer local.get $4 - local.set $12 + ) + (func $~lib/typedarray/Int8Array#constructor (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 + call $~stack_check global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/array/Array#get:length - local.set $8 i32.const 0 - local.set $9 - loop $for-loop|0 - local.get $9 - local.get $8 - i32.lt_s - local.set $10 - local.get $10 - if - i32.const 0 - drop - i32.const 1 - if (result i32) - i32.const 0 - i32.eqz - else - i32.const 0 - end - drop - local.get $7 - local.get $9 - i32.const 2 - i32.shl - i32.add - f32.load - local.set $11 - local.get $6 - local.get $9 - i32.const 3 - i32.shl - i32.add - local.get $11 - local.get $11 - f32.sub - f32.const 0 - f32.eq - if (result i64) - local.get $11 - i64.trunc_f32_u - else - i64.const 0 - end - i64.store - local.get $9 - i32.const 1 - i32.add - local.set $9 - br $for-loop|0 - end + i32.store + 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 - i32.const 12 + local.get $0 + local.get $1 + i32.const 0 + call $~lib/arraybuffer/ArrayBufferView#constructor + local.tee $0 + i32.store + 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 $2 ) - (func $~lib/typedarray/Uint64Array#set<~lib/typedarray/Int64Array> (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) + (func $~lib/typedarray/Uint8Array#constructor (param $0 i32) (param $1 i32) (result i32) + (local $2 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 + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 4 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end global.get $~lib/memory/__stack_pointer local.get $0 - local.tee $5 + local.get $1 + i32.const 0 + call $~lib/arraybuffer/ArrayBufferView#constructor + local.tee $0 i32.store + local.get $0 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $1 - local.tee $4 - i32.store offset=4 + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer local.get $2 - local.set $3 - i32.const 0 - drop - local.get $3 + ) + (func $~lib/typedarray/Uint8ClampedArray#constructor (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 + call $~stack_check + global.get $~lib/memory/__stack_pointer i32.const 0 - i32.lt_s + i32.store + local.get $0 + i32.eqz if - i32.const 336 - i32.const 608 - i32.const 1864 - i32.const 19 - call $~lib/builtins/abort - unreachable + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 5 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store end - local.get $4 - local.set $6 global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=8 - local.get $6 - call $~lib/typedarray/Int64Array#get:length - local.get $3 + local.get $0 + local.get $1 + i32.const 0 + call $~lib/arraybuffer/ArrayBufferView#constructor + local.tee $0 + i32.store + local.get $0 + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 4 i32.add - local.get $5 - local.set $6 + global.set $~lib/memory/__stack_pointer + local.get $2 + ) + (func $~lib/typedarray/Int16Array#constructor (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=8 - local.get $6 - call $~lib/typedarray/Uint64Array#get:length - i32.gt_s + 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 $0 + i32.eqz if - i32.const 336 - i32.const 608 - i32.const 1865 - i32.const 47 - call $~lib/builtins/abort - unreachable + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 6 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store end + global.get $~lib/memory/__stack_pointer + local.get $0 + local.get $1 i32.const 1 - i32.const 1 - i32.eq - if (result i32) - i32.const 3 - i32.const 3 - i32.eq - else - i32.const 0 - end - if (result i32) - i32.const 0 - if (result i32) - i32.const 1 - else - i32.const 0 - end - i32.eqz - else - i32.const 0 - end - drop - local.get $5 - i32.load offset=4 - local.get $3 - i32.const 3 - i32.shl - i32.add - local.get $4 - i32.load offset=4 - local.get $4 - i32.load offset=8 - call $~lib/memory/memory.copy + call $~lib/arraybuffer/ArrayBufferView#constructor + local.tee $0 + i32.store + local.get $0 + local.set $2 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/Uint64Array#set<~lib/array/Array> (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 f64) - (local $12 i32) + (func $~lib/typedarray/Uint16Array#constructor (param $0 i32) (param $1 i32) (result i32) + (local $2 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 + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 7 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end global.get $~lib/memory/__stack_pointer local.get $0 - local.tee $5 + local.get $1 + i32.const 1 + call $~lib/arraybuffer/ArrayBufferView#constructor + local.tee $0 i32.store + local.get $0 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $1 - local.tee $4 - i32.store offset=4 + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer local.get $2 - local.set $3 - i32.const 0 - drop - local.get $3 - i32.const 0 - i32.lt_s - if - i32.const 336 - i32.const 608 - i32.const 1864 - i32.const 19 - call $~lib/builtins/abort - unreachable - end - local.get $4 - local.set $12 + ) + (func $~lib/typedarray/Int32Array#constructor (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/array/Array#get:length - local.get $3 - i32.add - local.get $5 - local.set $12 + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/typedarray/Uint64Array#get:length - i32.gt_s - if - i32.const 336 - i32.const 608 - i32.const 1865 - i32.const 47 - call $~lib/builtins/abort - unreachable - end - i32.const 1 i32.const 0 - i32.eq - if (result i32) - i32.const 3 - i32.const 3 - i32.eq - else - i32.const 0 - end - if (result i32) - i32.const 0 - if (result i32) - i32.const 0 - else - i32.const 0 - end - i32.eqz - else - i32.const 0 + i32.store + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 8 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store end - drop - local.get $5 - i32.load offset=4 - local.get $3 - i32.const 3 - i32.shl - i32.add - local.set $6 - local.get $4 - i32.load offset=4 - local.set $7 - local.get $4 - local.set $12 global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/array/Array#get:length - local.set $8 - i32.const 0 - local.set $9 - loop $for-loop|0 - local.get $9 - local.get $8 - i32.lt_s - local.set $10 - local.get $10 - if - i32.const 0 - drop - i32.const 1 - if (result i32) - i32.const 0 - i32.eqz - else - i32.const 0 - end - drop - local.get $7 - local.get $9 - i32.const 3 - i32.shl - i32.add - f64.load - local.set $11 - local.get $6 - local.get $9 - i32.const 3 - i32.shl - i32.add - local.get $11 - local.get $11 - f64.sub - f64.const 0 - f64.eq - if (result i64) - local.get $11 - i64.trunc_f64_u - else - i64.const 0 - end - i64.store - local.get $9 - i32.const 1 - i32.add - local.set $9 - br $for-loop|0 - end - end + local.get $0 + local.get $1 + i32.const 2 + call $~lib/arraybuffer/ArrayBufferView#constructor + local.tee $0 + i32.store + local.get $0 + local.set $2 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/Uint64Array#set<~lib/typedarray/Uint8Array> (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) + (func $~lib/typedarray/Uint32Array#constructor (param $0 i32) (param $1 i32) (result i32) + (local $2 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 + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 9 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end global.get $~lib/memory/__stack_pointer local.get $0 - local.tee $5 + local.get $1 + i32.const 2 + call $~lib/arraybuffer/ArrayBufferView#constructor + local.tee $0 i32.store + local.get $0 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $1 - local.tee $4 - i32.store offset=4 + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer local.get $2 - local.set $3 - i32.const 0 - drop - local.get $3 + ) + (func $~lib/typedarray/Int64Array#constructor (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 + call $~stack_check + global.get $~lib/memory/__stack_pointer i32.const 0 - i32.lt_s + i32.store + local.get $0 + i32.eqz if - i32.const 336 - i32.const 608 - i32.const 1864 - i32.const 19 - call $~lib/builtins/abort - unreachable + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 10 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store end - local.get $4 - local.set $11 global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=8 - local.get $11 - call $~lib/typedarray/Uint8Array#get:length - local.get $3 + local.get $0 + local.get $1 + i32.const 3 + call $~lib/arraybuffer/ArrayBufferView#constructor + local.tee $0 + i32.store + local.get $0 + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 4 i32.add - local.get $5 - local.set $11 + global.set $~lib/memory/__stack_pointer + local.get $2 + ) + (func $~lib/typedarray/Uint64Array#constructor (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=8 - local.get $11 - call $~lib/typedarray/Uint64Array#get:length - i32.gt_s + 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 $0 + i32.eqz if - i32.const 336 - i32.const 608 - i32.const 1865 - i32.const 47 - call $~lib/builtins/abort - unreachable - end - i32.const 1 - i32.const 1 - i32.eq - if (result i32) - i32.const 3 - i32.const 0 - i32.eq - else - i32.const 0 - end - if (result i32) - i32.const 0 - if (result i32) - i32.const 0 - else - i32.const 0 - end - i32.eqz - else - i32.const 0 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 11 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store end - drop - local.get $5 - i32.load offset=4 - local.get $3 + global.get $~lib/memory/__stack_pointer + local.get $0 + local.get $1 i32.const 3 - i32.shl + call $~lib/arraybuffer/ArrayBufferView#constructor + local.tee $0 + i32.store + local.get $0 + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 4 i32.add - local.set $6 - local.get $4 - i32.load offset=4 - local.set $7 - local.get $4 - local.set $11 + global.set $~lib/memory/__stack_pointer + local.get $2 + ) + (func $~lib/typedarray/Float32Array#constructor (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 + call $~stack_check global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=8 - local.get $11 - call $~lib/typedarray/Uint8Array#get:length - local.set $8 i32.const 0 - local.set $9 - loop $for-loop|0 - local.get $9 - local.get $8 - i32.lt_s - local.set $10 - local.get $10 - if - i32.const 0 - drop - i32.const 0 - if (result i32) - i32.const 0 - i32.eqz - else - i32.const 0 - end - drop - i32.const 0 - if (result i32) - i32.const 0 - i32.eqz - else - i32.const 0 - end - drop - local.get $6 - local.get $9 - i32.const 3 - i32.shl - i32.add - local.get $7 - local.get $9 - i32.const 0 - i32.shl - i32.add - i64.load8_u - i64.store - local.get $9 - i32.const 1 - i32.add - local.set $9 - br $for-loop|0 - end + i32.store + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 12 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store end global.get $~lib/memory/__stack_pointer - i32.const 12 + local.get $0 + local.get $1 + i32.const 2 + call $~lib/arraybuffer/ArrayBufferView#constructor + local.tee $0 + i32.store + 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 $2 ) - (func $~lib/typedarray/Uint64Array#set<~lib/typedarray/Int16Array> (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/typedarray/Float64Array#constructor (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 + call $~stack_check + 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 12 + i32.const 13 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + global.get $~lib/memory/__stack_pointer + local.get $0 + local.get $1 + i32.const 3 + call $~lib/arraybuffer/ArrayBufferView#constructor + local.tee $0 + i32.store + 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 $2 + ) + (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) @@ -68999,159 +52940,122 @@ (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 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 - global.get $~lib/memory/__stack_pointer - local.get $0 - local.tee $5 i32.store - global.get $~lib/memory/__stack_pointer + local.get $0 + local.set $5 local.get $1 - local.tee $4 - i32.store offset=4 + local.set $4 local.get $2 local.set $3 - i32.const 0 - drop - local.get $3 + local.get $5 + call $~lib/typedarray/Int32Array#get:length + local.set $6 + local.get $4 i32.const 0 i32.lt_s - if - i32.const 336 - i32.const 608 - i32.const 1864 - i32.const 19 - call $~lib/builtins/abort - unreachable - end - local.get $4 - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=8 - local.get $11 - call $~lib/typedarray/Int16Array#get:length - local.get $3 - i32.add - local.get $5 - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=8 - local.get $11 - call $~lib/typedarray/Uint64Array#get:length - i32.gt_s - if - i32.const 336 - i32.const 608 - i32.const 1865 - i32.const 47 - call $~lib/builtins/abort - unreachable - end - i32.const 1 - i32.const 1 - i32.eq if (result i32) - i32.const 3 - i32.const 1 - i32.eq - else + local.get $6 + local.get $4 + i32.add + local.tee $7 i32.const 0 + local.tee $8 + local.get $7 + local.get $8 + i32.gt_s + select + else + local.get $4 + local.tee $8 + local.get $6 + local.tee $7 + local.get $8 + local.get $7 + i32.lt_s + select end + local.set $4 + local.get $3 + i32.const 0 + i32.lt_s if (result i32) + local.get $6 + local.get $3 + i32.add + local.tee $7 i32.const 0 - if (result i32) - i32.const 1 - else - i32.const 0 - end - i32.eqz + local.tee $8 + local.get $7 + local.get $8 + i32.gt_s + select else - i32.const 0 + local.get $3 + local.tee $8 + local.get $6 + local.tee $7 + local.get $8 + local.get $7 + i32.lt_s + select end - drop + local.set $3 + local.get $3 + local.tee $7 + local.get $4 + local.tee $8 + local.get $7 + local.get $8 + i32.gt_s + select + local.set $3 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 8 + call $~lib/rt/itcms/__new + local.tee $7 + i32.store + local.get $5 + i32.load + local.set $8 + local.get $7 + local.get $8 + i32.store + local.get $7 + local.get $8 + i32.const 0 + call $~lib/rt/itcms/__link + local.get $7 local.get $5 i32.load offset=4 - local.get $3 - i32.const 3 + local.get $4 + i32.const 2 i32.shl i32.add - local.set $6 - local.get $4 - i32.load offset=4 - local.set $7 + i32.store offset=4 + local.get $7 + local.get $3 local.get $4 - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 + i32.sub + i32.const 2 + i32.shl i32.store offset=8 - local.get $11 - call $~lib/typedarray/Int16Array#get:length - local.set $8 - i32.const 0 + local.get $7 local.set $9 - loop $for-loop|0 - local.get $9 - local.get $8 - i32.lt_s - local.set $10 - local.get $10 - if - i32.const 0 - drop - i32.const 0 - if (result i32) - i32.const 0 - i32.eqz - else - i32.const 0 - end - drop - i32.const 0 - if (result i32) - i32.const 0 - i32.eqz - else - i32.const 0 - end - drop - local.get $6 - local.get $9 - i32.const 3 - i32.shl - i32.add - local.get $7 - local.get $9 - i32.const 1 - i32.shl - i32.add - i64.load16_s - i64.store - local.get $9 - i32.const 1 - i32.add - local.set $9 - br $for-loop|0 - end - end global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer + local.get $9 ) - (func $~lib/typedarray/Uint64Array#set<~lib/array/Array> (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/typedarray/Float64Array#subarray (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -69159,487 +53063,454 @@ (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 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 - global.get $~lib/memory/__stack_pointer - local.get $0 - local.tee $5 i32.store - global.get $~lib/memory/__stack_pointer + local.get $0 + local.set $5 local.get $1 - local.tee $4 - i32.store offset=4 + local.set $4 local.get $2 local.set $3 - i32.const 0 - drop - local.get $3 + local.get $5 + call $~lib/typedarray/Float64Array#get:length + local.set $6 + local.get $4 i32.const 0 i32.lt_s - if - i32.const 336 - i32.const 608 - i32.const 1864 - i32.const 19 - call $~lib/builtins/abort - unreachable - end - local.get $4 - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=8 - local.get $11 - call $~lib/array/Array#get:length - local.get $3 - i32.add - local.get $5 - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=8 - local.get $11 - call $~lib/typedarray/Uint64Array#get:length - i32.gt_s - if - i32.const 336 - i32.const 608 - i32.const 1865 - i32.const 47 - call $~lib/builtins/abort - unreachable - end - i32.const 1 - i32.const 1 - i32.eq if (result i32) - i32.const 3 + local.get $6 + local.get $4 + i32.add + local.tee $7 i32.const 0 - i32.eq + local.tee $8 + local.get $7 + local.get $8 + i32.gt_s + select else - i32.const 0 + local.get $4 + local.tee $8 + local.get $6 + local.tee $7 + local.get $8 + local.get $7 + i32.lt_s + select end + local.set $4 + local.get $3 + i32.const 0 + i32.lt_s if (result i32) + local.get $6 + local.get $3 + i32.add + local.tee $7 i32.const 0 - if (result i32) - i32.const 1 - else - i32.const 0 - end - i32.eqz + local.tee $8 + local.get $7 + local.get $8 + i32.gt_s + select else - i32.const 0 + local.get $3 + local.tee $8 + local.get $6 + local.tee $7 + local.get $8 + local.get $7 + i32.lt_s + select end - drop + local.set $3 + local.get $3 + local.tee $7 + local.get $4 + local.tee $8 + local.get $7 + local.get $8 + i32.gt_s + select + local.set $3 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 13 + call $~lib/rt/itcms/__new + local.tee $7 + i32.store + local.get $5 + i32.load + local.set $8 + local.get $7 + local.get $8 + i32.store + local.get $7 + local.get $8 + i32.const 0 + call $~lib/rt/itcms/__link + local.get $7 local.get $5 i32.load offset=4 - local.get $3 + local.get $4 i32.const 3 i32.shl i32.add - local.set $6 - local.get $4 - i32.load offset=4 - local.set $7 + i32.store offset=4 + local.get $7 + local.get $3 local.get $4 - local.set $11 + i32.sub + i32.const 3 + i32.shl + i32.store offset=8 + local.get $7 + local.set $9 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $9 + ) + (func $~lib/typedarray/Float64Array#sort@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 + call $~stack_check global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=8 - local.get $11 - call $~lib/array/Array#get:length - local.set $8 i32.const 0 - local.set $9 - loop $for-loop|0 - local.get $9 - local.get $8 - i32.lt_s - local.set $10 - local.get $10 - if - i32.const 0 - drop - i32.const 0 - if (result i32) - i32.const 0 - i32.eqz - else - i32.const 0 + i32.store + block $1of1 + block $0of1 + block $outOfRange + global.get $~argumentsLength + br_table $0of1 $1of1 $outOfRange end - drop + unreachable + end + global.get $~lib/memory/__stack_pointer + block $~lib/util/sort/COMPARATOR|inlined.0 (result i32) i32.const 0 - if (result i32) - i32.const 0 - i32.eqz - else - i32.const 0 - end drop - local.get $6 - local.get $9 - i32.const 3 - i32.shl - i32.add - local.get $7 - local.get $9 - i32.const 0 - i32.shl - i32.add - i64.load8_s - i64.store - local.get $9 i32.const 1 - i32.add - local.set $9 - br $for-loop|0 + drop + i32.const 8 + i32.const 4 + i32.eq + drop + i32.const 672 + br $~lib/util/sort/COMPARATOR|inlined.0 end + local.tee $1 + i32.store end + local.get $0 + local.get $1 + call $~lib/typedarray/Float64Array#sort + local.set $2 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer + local.get $2 ) - (func $std/typedarray/testTypedArraySet<~lib/typedarray/Uint64Array> - (local $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) + (func $~lib/rt/__newArray (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) (local $4 i32) (local $5 i32) (local $6 i32) + (local $7 i32) global.get $~lib/memory/__stack_pointer - i32.const 24 + i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=8 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=16 - global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 3 - call $~lib/typedarray/Int64Array#constructor - local.tee $0 i32.store local.get $0 - local.set $6 - 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 - local.get $0 - local.set $6 - 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 - local.get $0 - local.set $6 - 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 + local.get $1 + i32.shl + local.set $4 global.get $~lib/memory/__stack_pointer + local.get $4 i32.const 0 - i32.const 4 - call $~lib/typedarray/Uint8Array#constructor - local.tee $1 - i32.store offset=8 - local.get $1 + local.get $3 + call $~lib/rt/__newBuffer + local.tee $5 + i32.store + i32.const 16 + local.get $2 + call $~lib/rt/itcms/__new local.set $6 - global.get $~lib/memory/__stack_pointer local.get $6 - i32.store offset=4 + local.get $5 + i32.store local.get $6 + local.get $5 i32.const 0 - i32.const 100 - call $~lib/typedarray/Uint8Array#__set - local.get $1 - local.set $6 - global.get $~lib/memory/__stack_pointer + call $~lib/rt/itcms/__link local.get $6 + local.get $5 i32.store offset=4 local.get $6 - i32.const 1 - i32.const 101 - call $~lib/typedarray/Uint8Array#__set - local.get $1 - local.set $6 - global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=8 local.get $6 - i32.store offset=4 + local.get $0 + i32.store offset=12 local.get $6 - i32.const 2 - i32.const 102 - call $~lib/typedarray/Uint8Array#__set - local.get $1 - local.set $6 + local.set $7 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 + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $7 + ) + (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 $7 i32) + (local $8 i32) + (local $9 i32) global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 3 - call $~lib/typedarray/Int16Array#constructor - local.tee $2 - i32.store offset=12 - local.get $2 - local.set $6 + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 i32.const 0 - i32.const 1000 - call $~lib/typedarray/Int16Array#__set - local.get $2 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 1 - i32.const 1001 - call $~lib/typedarray/Int16Array#__set + i32.store + local.get $0 + local.set $5 + local.get $1 + local.set $4 local.get $2 + local.set $3 + local.get $5 + call $~lib/typedarray/Int8Array#get:length local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 2 - i32.const 1002 - call $~lib/typedarray/Int16Array#__set - global.get $~lib/memory/__stack_pointer + local.get $4 i32.const 0 - i32.const 10 - call $~lib/typedarray/Uint64Array#constructor - local.tee $3 - i32.store offset=16 + i32.lt_s + if (result i32) + local.get $6 + local.get $4 + i32.add + local.tee $7 + i32.const 0 + local.tee $8 + local.get $7 + local.get $8 + i32.gt_s + select + else + local.get $4 + local.tee $8 + local.get $6 + local.tee $7 + local.get $8 + local.get $7 + i32.lt_s + select + end + local.set $4 local.get $3 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - global.get $std/typedarray/setSource1 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=20 - local.get $6 i32.const 0 - call $~lib/typedarray/Uint64Array#set<~lib/array/Array> + i32.lt_s + if (result i32) + local.get $6 + local.get $3 + i32.add + local.tee $7 + i32.const 0 + local.tee $8 + local.get $7 + local.get $8 + i32.gt_s + select + else + local.get $3 + local.tee $8 + local.get $6 + local.tee $7 + local.get $8 + local.get $7 + i32.lt_s + select + end + local.set $3 local.get $3 - local.set $6 + local.tee $7 + local.get $4 + local.tee $8 + local.get $7 + local.get $8 + i32.gt_s + select + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 10 + i32.const 12 i32.const 3 - i32.const 68 - i32.const 12144 - call $~lib/rt/__newArray - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=20 - local.get $6 - call $std/typedarray/valuesEqual<~lib/typedarray/Uint64Array> - local.get $3 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 + call $~lib/rt/itcms/__new + local.tee $7 + i32.store + local.get $5 + i32.load + local.set $8 + local.get $7 + local.get $8 + i32.store + local.get $7 + local.get $8 + i32.const 0 + call $~lib/rt/itcms/__link + local.get $7 + local.get $5 + i32.load offset=4 + local.get $4 + i32.const 0 + i32.shl + i32.add i32.store offset=4 - local.get $6 - global.get $std/typedarray/setSource2 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=20 - local.get $6 - i32.const 3 - call $~lib/typedarray/Uint64Array#set<~lib/array/Array> + local.get $7 local.get $3 - local.set $6 + local.get $4 + i32.sub + i32.const 0 + i32.shl + i32.store offset=8 + local.get $7 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 10 - i32.const 3 - i32.const 68 - i32.const 12304 - call $~lib/rt/__newArray - local.set $6 + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $9 + ) + (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) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=20 - local.get $6 - call $std/typedarray/valuesEqual<~lib/typedarray/Uint64Array> - local.get $3 - local.set $6 + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 + i32.const 0 + i32.store local.get $0 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=20 - local.get $6 - i32.const 6 - call $~lib/typedarray/Uint64Array#set<~lib/typedarray/Int64Array> - local.get $3 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 10 - i32.const 3 - i32.const 68 - i32.const 12416 - call $~lib/rt/__newArray - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=20 - local.get $6 - call $std/typedarray/valuesEqual<~lib/typedarray/Uint64Array> - i32.const 1 - drop - local.get $3 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - global.get $std/typedarray/setSource3 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=20 - local.get $6 - i32.const 2 - call $~lib/typedarray/Uint64Array#set<~lib/array/Array> - local.get $3 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 10 - i32.const 3 - i32.const 68 - 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 $6 - call $std/typedarray/valuesEqual<~lib/typedarray/Uint64Array> - local.get $3 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 + local.set $5 local.get $1 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=20 - local.get $6 - i32.const 0 - call $~lib/typedarray/Uint64Array#set<~lib/typedarray/Uint8Array> - local.get $3 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 + local.set $4 local.get $2 + local.set $3 + local.get $5 + call $~lib/typedarray/Int32Array#get:length local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=20 - local.get $6 - i32.const 4 - call $~lib/typedarray/Uint64Array#set<~lib/typedarray/Int16Array> - local.get $3 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - global.get $std/typedarray/setSource7 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=20 - local.get $6 - i32.const 7 - call $~lib/typedarray/Uint64Array#set<~lib/array/Array> + local.get $4 + i32.const 0 + i32.lt_s + if (result i32) + local.get $4 + local.get $6 + i32.add + local.tee $7 + i32.const 0 + local.tee $8 + local.get $7 + local.get $8 + i32.gt_s + select + else + local.get $4 + local.tee $8 + local.get $6 + local.tee $7 + local.get $8 + local.get $7 + i32.lt_s + select + end + local.set $4 + local.get $3 i32.const 0 - drop + i32.lt_s + if (result i32) + local.get $3 + local.get $6 + i32.add + local.tee $7 + i32.const 0 + local.tee $8 + local.get $7 + local.get $8 + i32.gt_s + select + else + local.get $3 + local.tee $8 + local.get $6 + local.tee $7 + local.get $8 + local.get $7 + i32.lt_s + select + end + local.set $3 local.get $3 + local.get $4 + i32.sub + local.tee $7 + i32.const 0 + local.tee $8 + local.get $7 + local.get $8 + i32.gt_s + select local.set $6 global.get $~lib/memory/__stack_pointer + i32.const 0 local.get $6 - i32.store offset=4 - local.get $6 - i32.const 10 - i32.const 3 - i32.const 68 - i32.const 12640 - call $~lib/rt/__newArray - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=20 + call $~lib/typedarray/Int32Array#constructor + local.tee $7 + i32.store + local.get $7 + i32.load offset=4 + local.get $5 + i32.load offset=4 + local.get $4 + i32.const 2 + i32.shl + i32.add local.get $6 - call $std/typedarray/valuesEqual<~lib/typedarray/Uint64Array> + i32.const 2 + i32.shl + call $~lib/memory/memory.copy + local.get $7 + local.set $9 global.get $~lib/memory/__stack_pointer - i32.const 24 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer + local.get $9 ) - (func $~lib/typedarray/Float32Array#set<~lib/array/Array> (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/typedarray/Int8Array#map (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -69650,144 +53521,67 @@ (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 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 - global.get $~lib/memory/__stack_pointer local.get $0 - local.tee $5 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - local.tee $4 - i32.store offset=4 - local.get $2 local.set $3 - i32.const 0 - drop + local.get $1 + local.set $2 local.get $3 - i32.const 0 - i32.lt_s - if - i32.const 336 - i32.const 608 - i32.const 1864 - i32.const 19 - call $~lib/builtins/abort - unreachable - end - local.get $4 - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=8 - local.get $11 - call $~lib/array/Array#get:length + call $~lib/typedarray/Int8Array#get:length + local.set $4 local.get $3 - i32.add - local.get $5 - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=8 - local.get $11 - call $~lib/typedarray/Float32Array#get:length - i32.gt_s - if - i32.const 336 - i32.const 608 - i32.const 1865 - i32.const 47 - call $~lib/builtins/abort - unreachable - end - i32.const 0 - i32.const 1 - i32.eq - if (result i32) - i32.const 2 - i32.const 2 - i32.eq - else - i32.const 0 - end - if (result i32) - i32.const 0 - if (result i32) - i32.const 1 - else - i32.const 0 - end - i32.eqz - else - i32.const 0 - end - drop - local.get $5 i32.load offset=4 - local.get $3 - i32.const 2 + local.set $5 + local.get $4 + i32.const 0 i32.shl - i32.add local.set $6 - local.get $4 - i32.load offset=4 - local.set $7 - local.get $4 - local.set $11 global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=8 - local.get $11 - call $~lib/array/Array#get:length - local.set $8 + i32.const 12 + i32.const 3 + call $~lib/rt/itcms/__new + local.tee $7 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.const 0 + call $~lib/rt/itcms/__new + local.tee $8 + i32.store offset=4 i32.const 0 local.set $9 loop $for-loop|0 local.get $9 - local.get $8 + local.get $4 i32.lt_s local.set $10 local.get $10 if - i32.const 0 - drop - i32.const 0 - if (result i32) - i32.const 1 - i32.eqz - else - i32.const 0 - end - drop - i32.const 1 - if (result i32) - i32.const 0 - i32.eqz - else - i32.const 0 - end - drop - local.get $6 + local.get $8 local.get $9 - i32.const 2 + i32.const 0 i32.shl i32.add - local.get $7 + local.get $5 local.get $9 - i32.const 2 + i32.const 0 i32.shl i32.add + i32.load8_s + local.get $9 + local.get $3 + i32.const 3 + global.set $~argumentsLength + local.get $2 i32.load - f32.convert_i32_s - f32.store + call_indirect (type $i32_i32_i32_=>_i32) + i32.store8 local.get $9 i32.const 1 i32.add @@ -69795,225 +53589,231 @@ br $for-loop|0 end end + local.get $7 + local.get $8 + i32.store + local.get $7 + local.get $8 + i32.const 0 + call $~lib/rt/itcms/__link + local.get $7 + local.get $8 + i32.store offset=4 + local.get $7 + local.get $6 + i32.store offset=8 + local.get $7 + local.set $11 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer + local.get $11 ) - (func $std/typedarray/valuesEqual<~lib/typedarray/Float32Array> (param $0 i32) (param $1 i32) + (func $~lib/typedarray/Uint8Array#map (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) - (local $5 f32) - (local $6 f32) + (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 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 $0 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store - local.get $7 - call $~lib/typedarray/Float32Array#get:length - local.set $2 - local.get $2 + local.set $3 local.get $1 - local.set $7 + local.set $2 + local.get $3 + call $~lib/typedarray/Uint8Array#get:length + local.set $4 + local.get $3 + i32.load offset=4 + local.set $5 + local.get $4 + i32.const 0 + i32.shl + local.set $6 global.get $~lib/memory/__stack_pointer - local.get $7 + i32.const 12 + i32.const 4 + call $~lib/rt/itcms/__new + local.tee $7 i32.store - local.get $7 - call $~lib/array/Array#get:length - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 735 - i32.const 3 - call $~lib/builtins/abort - unreachable - end + global.get $~lib/memory/__stack_pointer + local.get $6 i32.const 0 - local.set $3 + call $~lib/rt/itcms/__new + local.tee $8 + i32.store offset=4 + i32.const 0 + local.set $9 loop $for-loop|0 - local.get $3 - local.get $2 - i32.lt_s - local.set $4 + local.get $9 local.get $4 + i32.lt_s + local.set $10 + local.get $10 if - local.get $0 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store - local.get $7 - local.get $3 - call $~lib/typedarray/Float32Array#__uget - local.set $5 - local.get $1 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store - local.get $7 - local.get $3 - call $~lib/array/Array#__uget - local.set $6 + local.get $8 + local.get $9 + i32.const 0 + i32.shl + i32.add local.get $5 - local.get $6 - f32.ne - if - i32.const 12816 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store - local.get $7 - i32.const 3 - local.get $3 - f64.convert_i32_s - local.get $5 - f64.promote_f32 - local.get $6 - f64.promote_f32 - f64.const 0 - f64.const 0 - call $~lib/builtins/trace - i32.const 0 - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 741 - i32.const 7 - call $~lib/builtins/abort - unreachable - end - end + local.get $9 + i32.const 0 + i32.shl + i32.add + i32.load8_u + local.get $9 local.get $3 + i32.const 3 + global.set $~argumentsLength + local.get $2 + i32.load + call_indirect (type $i32_i32_i32_=>_i32) + i32.store8 + local.get $9 i32.const 1 i32.add - local.set $3 + local.set $9 br $for-loop|0 end end + local.get $7 + local.get $8 + i32.store + local.get $7 + local.get $8 + i32.const 0 + call $~lib/rt/itcms/__link + local.get $7 + local.get $8 + i32.store offset=4 + local.get $7 + local.get $6 + i32.store offset=8 + local.get $7 + local.set $11 global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer + local.get $11 ) - (func $~lib/typedarray/Float32Array#set<~lib/array/Array> (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/typedarray/Uint8ClampedArray#map (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 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 - global.get $~lib/memory/__stack_pointer local.get $0 - local.tee $5 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - local.tee $4 - i32.store offset=4 - local.get $2 local.set $3 - i32.const 0 - drop + local.get $1 + local.set $2 local.get $3 - i32.const 0 - i32.lt_s - if - i32.const 336 - i32.const 608 - i32.const 1864 - i32.const 19 - call $~lib/builtins/abort - unreachable - end + call $~lib/typedarray/Uint8ClampedArray#get:length + local.set $4 + local.get $3 + i32.load offset=4 + local.set $5 local.get $4 + i32.const 0 + i32.shl local.set $6 global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=8 - local.get $6 - call $~lib/array/Array#get:length - local.get $3 - i32.add - local.get $5 - local.set $6 + i32.const 12 + i32.const 5 + call $~lib/rt/itcms/__new + local.tee $7 + i32.store global.get $~lib/memory/__stack_pointer local.get $6 - i32.store offset=8 - local.get $6 - call $~lib/typedarray/Float32Array#get:length - i32.gt_s - if - i32.const 336 - i32.const 608 - i32.const 1865 - i32.const 47 - call $~lib/builtins/abort - unreachable - end i32.const 0 + call $~lib/rt/itcms/__new + local.tee $8 + i32.store offset=4 i32.const 0 - i32.eq - if (result i32) - i32.const 2 - i32.const 2 - i32.eq - else - i32.const 0 - end - if (result i32) - i32.const 0 - if (result i32) + local.set $9 + loop $for-loop|0 + local.get $9 + local.get $4 + i32.lt_s + local.set $10 + local.get $10 + if + local.get $8 + local.get $9 i32.const 0 - else + i32.shl + i32.add + local.get $5 + local.get $9 i32.const 0 - end - i32.eqz - else - i32.const 0 - end - drop - local.get $5 - i32.load offset=4 - local.get $3 - i32.const 2 - i32.shl - i32.add - local.get $4 - i32.load offset=4 - local.get $4 - i32.load offset=8 - call $~lib/memory/memory.copy + i32.shl + i32.add + i32.load8_u + local.get $9 + local.get $3 + i32.const 3 + global.set $~argumentsLength + local.get $2 + i32.load + call_indirect (type $i32_i32_i32_=>_i32) + i32.store8 + local.get $9 + i32.const 1 + i32.add + local.set $9 + br $for-loop|0 + end + end + local.get $7 + local.get $8 + i32.store + local.get $7 + local.get $8 + i32.const 0 + call $~lib/rt/itcms/__link + local.get $7 + local.get $8 + i32.store offset=4 + local.get $7 + local.get $6 + i32.store offset=8 + local.get $7 + local.set $11 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer + local.get $11 ) - (func $~lib/typedarray/Float32Array#set<~lib/typedarray/Int64Array> (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/typedarray/Int16Array#map (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -70024,144 +53824,67 @@ (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 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 - global.get $~lib/memory/__stack_pointer local.get $0 - local.tee $5 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - local.tee $4 - i32.store offset=4 - local.get $2 local.set $3 - i32.const 0 - drop + local.get $1 + local.set $2 local.get $3 - i32.const 0 - i32.lt_s - if - i32.const 336 - i32.const 608 - i32.const 1864 - i32.const 19 - call $~lib/builtins/abort - unreachable - end - local.get $4 - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=8 - local.get $11 - call $~lib/typedarray/Int64Array#get:length + call $~lib/typedarray/Int16Array#get:length + local.set $4 local.get $3 - i32.add - local.get $5 - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=8 - local.get $11 - call $~lib/typedarray/Float32Array#get:length - i32.gt_s - if - i32.const 336 - i32.const 608 - i32.const 1865 - i32.const 47 - call $~lib/builtins/abort - unreachable - end - i32.const 0 - i32.const 1 - i32.eq - if (result i32) - i32.const 2 - i32.const 3 - i32.eq - else - i32.const 0 - end - if (result i32) - i32.const 0 - if (result i32) - i32.const 1 - else - i32.const 0 - end - i32.eqz - else - i32.const 0 - end - drop - local.get $5 i32.load offset=4 - local.get $3 - i32.const 2 + local.set $5 + local.get $4 + i32.const 1 i32.shl - i32.add local.set $6 - local.get $4 - i32.load offset=4 - local.set $7 - local.get $4 - local.set $11 global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=8 - local.get $11 - call $~lib/typedarray/Int64Array#get:length - local.set $8 + i32.const 12 + i32.const 6 + call $~lib/rt/itcms/__new + local.tee $7 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.const 0 + call $~lib/rt/itcms/__new + local.tee $8 + i32.store offset=4 i32.const 0 local.set $9 loop $for-loop|0 local.get $9 - local.get $8 + local.get $4 i32.lt_s local.set $10 local.get $10 if - i32.const 0 - drop - i32.const 0 - if (result i32) - i32.const 1 - i32.eqz - else - i32.const 0 - end - drop - i32.const 1 - if (result i32) - i32.const 0 - i32.eqz - else - i32.const 0 - end - drop - local.get $6 + local.get $8 local.get $9 - i32.const 2 + i32.const 1 i32.shl i32.add - local.get $7 + local.get $5 local.get $9 - i32.const 3 + i32.const 1 i32.shl i32.add - i64.load - f32.convert_i64_s - f32.store + i32.load16_s + local.get $9 + local.get $3 + i32.const 3 + global.set $~argumentsLength + local.get $2 + i32.load + call_indirect (type $i32_i32_i32_=>_i32) + i32.store16 local.get $9 i32.const 1 i32.add @@ -70169,12 +53892,29 @@ br $for-loop|0 end end + local.get $7 + local.get $8 + i32.store + local.get $7 + local.get $8 + i32.const 0 + call $~lib/rt/itcms/__link + local.get $7 + local.get $8 + i32.store offset=4 + local.get $7 + local.get $6 + i32.store offset=8 + local.get $7 + local.set $11 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer + local.get $11 ) - (func $~lib/typedarray/Float32Array#set<~lib/typedarray/Uint8Array> (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/typedarray/Uint16Array#map (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -70185,144 +53925,67 @@ (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 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 - global.get $~lib/memory/__stack_pointer local.get $0 - local.tee $5 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - local.tee $4 - i32.store offset=4 - local.get $2 local.set $3 - i32.const 0 - drop + local.get $1 + local.set $2 local.get $3 - i32.const 0 - i32.lt_s - if - i32.const 336 - i32.const 608 - i32.const 1864 - i32.const 19 - call $~lib/builtins/abort - unreachable - end - local.get $4 - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=8 - local.get $11 - call $~lib/typedarray/Uint8Array#get:length + call $~lib/typedarray/Uint16Array#get:length + local.set $4 local.get $3 - i32.add - local.get $5 - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=8 - local.get $11 - call $~lib/typedarray/Float32Array#get:length - i32.gt_s - if - i32.const 336 - i32.const 608 - i32.const 1865 - i32.const 47 - call $~lib/builtins/abort - unreachable - end - i32.const 0 - i32.const 1 - i32.eq - if (result i32) - i32.const 2 - i32.const 0 - i32.eq - else - i32.const 0 - end - if (result i32) - i32.const 0 - if (result i32) - i32.const 0 - else - i32.const 0 - end - i32.eqz - else - i32.const 0 - end - drop - local.get $5 i32.load offset=4 - local.get $3 - i32.const 2 + local.set $5 + local.get $4 + i32.const 1 i32.shl - i32.add local.set $6 - local.get $4 - i32.load offset=4 - local.set $7 - local.get $4 - local.set $11 global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=8 - local.get $11 - call $~lib/typedarray/Uint8Array#get:length - local.set $8 + i32.const 12 + i32.const 7 + call $~lib/rt/itcms/__new + local.tee $7 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.const 0 + call $~lib/rt/itcms/__new + local.tee $8 + i32.store offset=4 i32.const 0 local.set $9 loop $for-loop|0 local.get $9 - local.get $8 + local.get $4 i32.lt_s local.set $10 local.get $10 if - i32.const 0 - drop - i32.const 0 - if (result i32) - i32.const 1 - i32.eqz - else - i32.const 0 - end - drop - i32.const 1 - if (result i32) - i32.const 0 - i32.eqz - else - i32.const 0 - end - drop - local.get $6 + local.get $8 local.get $9 - i32.const 2 + i32.const 1 i32.shl i32.add - local.get $7 + local.get $5 local.get $9 - i32.const 0 + i32.const 1 i32.shl i32.add - i32.load8_u - f32.convert_i32_u - f32.store + i32.load16_u + local.get $9 + local.get $3 + i32.const 3 + global.set $~argumentsLength + local.get $2 + i32.load + call_indirect (type $i32_i32_i32_=>_i32) + i32.store16 local.get $9 i32.const 1 i32.add @@ -70330,12 +53993,29 @@ br $for-loop|0 end end + local.get $7 + local.get $8 + i32.store + local.get $7 + local.get $8 + i32.const 0 + call $~lib/rt/itcms/__link + local.get $7 + local.get $8 + i32.store offset=4 + local.get $7 + local.get $6 + i32.store offset=8 + local.get $7 + local.set $11 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer + local.get $11 ) - (func $~lib/typedarray/Float32Array#set<~lib/typedarray/Int16Array> (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/typedarray/Int32Array#map (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -70346,144 +54026,168 @@ (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 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 - global.get $~lib/memory/__stack_pointer local.get $0 - local.tee $5 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - local.tee $4 - i32.store offset=4 - local.get $2 local.set $3 - i32.const 0 - drop + local.get $1 + local.set $2 local.get $3 - i32.const 0 - i32.lt_s - if - i32.const 336 - i32.const 608 - i32.const 1864 - i32.const 19 - call $~lib/builtins/abort - unreachable - end + call $~lib/typedarray/Int32Array#get:length + local.set $4 + local.get $3 + i32.load offset=4 + local.set $5 local.get $4 - local.set $11 + i32.const 2 + i32.shl + local.set $6 global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=8 - local.get $11 - call $~lib/typedarray/Int16Array#get:length - local.get $3 - i32.add - local.get $5 - local.set $11 + i32.const 12 + i32.const 8 + call $~lib/rt/itcms/__new + local.tee $7 + i32.store global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=8 - local.get $11 - call $~lib/typedarray/Float32Array#get:length - i32.gt_s - if - i32.const 336 - i32.const 608 - i32.const 1865 - i32.const 47 - call $~lib/builtins/abort - unreachable - end + local.get $6 i32.const 0 - i32.const 1 - i32.eq - if (result i32) - i32.const 2 - i32.const 1 - i32.eq - else - i32.const 0 - end - if (result i32) - i32.const 0 - if (result i32) + call $~lib/rt/itcms/__new + local.tee $8 + i32.store offset=4 + i32.const 0 + local.set $9 + loop $for-loop|0 + local.get $9 + local.get $4 + i32.lt_s + local.set $10 + local.get $10 + if + local.get $8 + local.get $9 + i32.const 2 + i32.shl + i32.add + local.get $5 + local.get $9 + i32.const 2 + i32.shl + i32.add + i32.load + local.get $9 + local.get $3 + i32.const 3 + global.set $~argumentsLength + local.get $2 + i32.load + call_indirect (type $i32_i32_i32_=>_i32) + i32.store + local.get $9 i32.const 1 - else - i32.const 0 + i32.add + local.set $9 + br $for-loop|0 end - i32.eqz - else - i32.const 0 end - drop - local.get $5 - i32.load offset=4 + local.get $7 + local.get $8 + i32.store + local.get $7 + local.get $8 + i32.const 0 + call $~lib/rt/itcms/__link + local.get $7 + local.get $8 + i32.store offset=4 + local.get $7 + local.get $6 + i32.store offset=8 + local.get $7 + local.set $11 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $11 + ) + (func $~lib/typedarray/Uint32Array#map (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 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 $0 + local.set $3 + local.get $1 + local.set $2 + local.get $3 + call $~lib/typedarray/Uint32Array#get:length + local.set $4 local.get $3 + i32.load offset=4 + local.set $5 + local.get $4 i32.const 2 i32.shl - i32.add local.set $6 - local.get $4 - i32.load offset=4 - local.set $7 - local.get $4 - local.set $11 global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=8 - local.get $11 - call $~lib/typedarray/Int16Array#get:length - local.set $8 + i32.const 12 + i32.const 9 + call $~lib/rt/itcms/__new + local.tee $7 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.const 0 + call $~lib/rt/itcms/__new + local.tee $8 + i32.store offset=4 i32.const 0 local.set $9 loop $for-loop|0 local.get $9 - local.get $8 + local.get $4 i32.lt_s local.set $10 local.get $10 if - i32.const 0 - drop - i32.const 0 - if (result i32) - i32.const 1 - i32.eqz - else - i32.const 0 - end - drop - i32.const 1 - if (result i32) - i32.const 0 - i32.eqz - else - i32.const 0 - end - drop - local.get $6 + local.get $8 local.get $9 i32.const 2 i32.shl i32.add - local.get $7 + local.get $5 local.get $9 - i32.const 1 + i32.const 2 i32.shl i32.add - i32.load16_s - f32.convert_i32_s - f32.store + i32.load + local.get $9 + local.get $3 + i32.const 3 + global.set $~argumentsLength + local.get $2 + i32.load + call_indirect (type $i32_i32_i32_=>_i32) + i32.store local.get $9 i32.const 1 i32.add @@ -70491,12 +54195,29 @@ br $for-loop|0 end end + local.get $7 + local.get $8 + i32.store + local.get $7 + local.get $8 + i32.const 0 + call $~lib/rt/itcms/__link + local.get $7 + local.get $8 + i32.store offset=4 + local.get $7 + local.get $6 + i32.store offset=8 + local.get $7 + local.set $11 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer + local.get $11 ) - (func $~lib/typedarray/Float32Array#set<~lib/array/Array> (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/typedarray/Int64Array#map (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -70507,144 +54228,67 @@ (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 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 - global.get $~lib/memory/__stack_pointer local.get $0 - local.tee $5 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - local.tee $4 - i32.store offset=4 - local.get $2 local.set $3 - i32.const 0 - drop + local.get $1 + local.set $2 local.get $3 - i32.const 0 - i32.lt_s - if - i32.const 336 - i32.const 608 - i32.const 1864 - i32.const 19 - call $~lib/builtins/abort - unreachable - end - local.get $4 - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=8 - local.get $11 - call $~lib/array/Array#get:length + call $~lib/typedarray/Int64Array#get:length + local.set $4 local.get $3 - i32.add - local.get $5 - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=8 - local.get $11 - call $~lib/typedarray/Float32Array#get:length - i32.gt_s - if - i32.const 336 - i32.const 608 - i32.const 1865 - i32.const 47 - call $~lib/builtins/abort - unreachable - end - i32.const 0 - i32.const 1 - i32.eq - if (result i32) - i32.const 2 - i32.const 0 - i32.eq - else - i32.const 0 - end - if (result i32) - i32.const 0 - if (result i32) - i32.const 1 - else - i32.const 0 - end - i32.eqz - else - i32.const 0 - end - drop - local.get $5 i32.load offset=4 - local.get $3 - i32.const 2 + local.set $5 + local.get $4 + i32.const 3 i32.shl - i32.add local.set $6 - local.get $4 - i32.load offset=4 - local.set $7 - local.get $4 - local.set $11 global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=8 - local.get $11 - call $~lib/array/Array#get:length - local.set $8 + i32.const 12 + i32.const 10 + call $~lib/rt/itcms/__new + local.tee $7 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.const 0 + call $~lib/rt/itcms/__new + local.tee $8 + i32.store offset=4 i32.const 0 local.set $9 loop $for-loop|0 local.get $9 - local.get $8 + local.get $4 i32.lt_s local.set $10 local.get $10 if - i32.const 0 - drop - i32.const 0 - if (result i32) - i32.const 1 - i32.eqz - else - i32.const 0 - end - drop - i32.const 1 - if (result i32) - i32.const 0 - i32.eqz - else - i32.const 0 - end - drop - local.get $6 + local.get $8 local.get $9 - i32.const 2 + i32.const 3 i32.shl i32.add - local.get $7 + local.get $5 local.get $9 - i32.const 0 + i32.const 3 i32.shl i32.add - i32.load8_s - f32.convert_i32_s - f32.store + i64.load + local.get $9 + local.get $3 + i32.const 3 + global.set $~argumentsLength + local.get $2 + i32.load + call_indirect (type $i64_i32_i32_=>_i64) + i64.store local.get $9 i32.const 1 i32.add @@ -70652,309 +54296,130 @@ br $for-loop|0 end end + local.get $7 + local.get $8 + i32.store + local.get $7 + local.get $8 + i32.const 0 + call $~lib/rt/itcms/__link + local.get $7 + local.get $8 + i32.store offset=4 + local.get $7 + local.get $6 + i32.store offset=8 + local.get $7 + local.set $11 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer + local.get $11 ) - (func $std/typedarray/testTypedArraySet<~lib/typedarray/Float32Array> - (local $0 i32) - (local $1 i32) + (func $~lib/typedarray/Uint64Array#map (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 24 + 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 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=16 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 3 - call $~lib/typedarray/Int64Array#constructor - local.tee $0 - i32.store - local.get $0 - local.set $6 - 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 - local.get $0 - local.set $6 - 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 - local.get $0 - local.set $6 - 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 0 - i32.const 4 - call $~lib/typedarray/Uint8Array#constructor - local.tee $1 - i32.store offset=8 - local.get $1 - local.set $6 - 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 - local.get $1 - local.set $6 - 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 - local.get $1 - local.set $6 - 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 - local.get $1 - local.set $6 - 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 0 - i32.const 3 - call $~lib/typedarray/Int16Array#constructor - local.tee $2 - i32.store offset=12 - local.get $2 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - i32.const 1000 - call $~lib/typedarray/Int16Array#__set - local.get $2 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 1 - i32.const 1001 - call $~lib/typedarray/Int16Array#__set - local.get $2 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 2 - i32.const 1002 - call $~lib/typedarray/Int16Array#__set - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 10 - call $~lib/typedarray/Float32Array#constructor - local.tee $3 - i32.store offset=16 - local.get $3 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - global.get $std/typedarray/setSource1 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=20 - local.get $6 - i32.const 0 - call $~lib/typedarray/Float32Array#set<~lib/array/Array> - local.get $3 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 10 - i32.const 2 - i32.const 61 - i32.const 12752 - call $~lib/rt/__newArray - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=20 - local.get $6 - call $std/typedarray/valuesEqual<~lib/typedarray/Float32Array> - local.get $3 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - global.get $std/typedarray/setSource2 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=20 - local.get $6 - i32.const 3 - call $~lib/typedarray/Float32Array#set<~lib/array/Array> - local.get $3 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 10 - i32.const 2 - i32.const 61 - i32.const 12864 - call $~lib/rt/__newArray - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=20 - local.get $6 - call $std/typedarray/valuesEqual<~lib/typedarray/Float32Array> - local.get $3 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 local.get $0 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=20 - local.get $6 - i32.const 6 - call $~lib/typedarray/Float32Array#set<~lib/typedarray/Int64Array> - local.get $3 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 10 - i32.const 2 - i32.const 61 - i32.const 12928 - call $~lib/rt/__newArray - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=20 - local.get $6 - call $std/typedarray/valuesEqual<~lib/typedarray/Float32Array> - i32.const 0 - drop - local.get $3 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 + local.set $3 local.get $1 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=20 - local.get $6 - i32.const 0 - call $~lib/typedarray/Float32Array#set<~lib/typedarray/Uint8Array> + local.set $2 local.get $3 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - local.get $2 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=20 - local.get $6 - i32.const 4 - call $~lib/typedarray/Float32Array#set<~lib/typedarray/Int16Array> + call $~lib/typedarray/Uint64Array#get:length + local.set $4 local.get $3 + i32.load offset=4 + local.set $5 + local.get $4 + i32.const 3 + i32.shl local.set $6 global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - global.get $std/typedarray/setSource7 - local.set $6 + i32.const 12 + i32.const 11 + call $~lib/rt/itcms/__new + local.tee $7 + i32.store global.get $~lib/memory/__stack_pointer local.get $6 - i32.store offset=20 - local.get $6 - i32.const 7 - call $~lib/typedarray/Float32Array#set<~lib/array/Array> i32.const 0 - drop - local.get $3 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 + call $~lib/rt/itcms/__new + local.tee $8 i32.store offset=4 + i32.const 0 + local.set $9 + loop $for-loop|0 + local.get $9 + local.get $4 + i32.lt_s + local.set $10 + local.get $10 + if + local.get $8 + local.get $9 + i32.const 3 + i32.shl + i32.add + local.get $5 + local.get $9 + i32.const 3 + i32.shl + i32.add + i64.load + local.get $9 + local.get $3 + i32.const 3 + global.set $~argumentsLength + local.get $2 + i32.load + call_indirect (type $i64_i32_i32_=>_i64) + i64.store + local.get $9 + i32.const 1 + i32.add + local.set $9 + br $for-loop|0 + end + end + local.get $7 + local.get $8 + i32.store + local.get $7 + local.get $8 + i32.const 0 + call $~lib/rt/itcms/__link + local.get $7 + local.get $8 + i32.store offset=4 + local.get $7 local.get $6 - i32.const 10 - i32.const 2 - i32.const 61 - i32.const 12992 - call $~lib/rt/__newArray - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=20 - local.get $6 - call $std/typedarray/valuesEqual<~lib/typedarray/Float32Array> + i32.store offset=8 + local.get $7 + local.set $11 global.get $~lib/memory/__stack_pointer - i32.const 24 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer + local.get $11 ) - (func $~lib/typedarray/Float64Array#set<~lib/array/Array> (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/typedarray/Float32Array#map (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -70965,143 +54430,167 @@ (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 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 - global.get $~lib/memory/__stack_pointer local.get $0 - local.tee $5 + local.set $3 + local.get $1 + local.set $2 + local.get $3 + call $~lib/typedarray/Float32Array#get:length + local.set $4 + local.get $3 + i32.load offset=4 + local.set $5 + local.get $4 + i32.const 2 + i32.shl + local.set $6 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 12 + call $~lib/rt/itcms/__new + local.tee $7 i32.store global.get $~lib/memory/__stack_pointer - local.get $1 - local.tee $4 - i32.store offset=4 - local.get $2 - local.set $3 + local.get $6 i32.const 0 - drop - local.get $3 + call $~lib/rt/itcms/__new + local.tee $8 + i32.store offset=4 i32.const 0 - i32.lt_s - if - i32.const 336 - i32.const 608 - i32.const 1864 - i32.const 19 - call $~lib/builtins/abort - unreachable + local.set $9 + loop $for-loop|0 + local.get $9 + local.get $4 + i32.lt_s + local.set $10 + local.get $10 + if + local.get $8 + local.get $9 + i32.const 2 + i32.shl + i32.add + local.get $5 + local.get $9 + i32.const 2 + i32.shl + i32.add + f32.load + local.get $9 + local.get $3 + i32.const 3 + global.set $~argumentsLength + local.get $2 + i32.load + call_indirect (type $f32_i32_i32_=>_f32) + f32.store + local.get $9 + i32.const 1 + i32.add + local.set $9 + br $for-loop|0 + end end - local.get $4 - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $7 + local.get $8 + i32.store + local.get $7 + local.get $8 + i32.const 0 + call $~lib/rt/itcms/__link + local.get $7 + local.get $8 + i32.store offset=4 + local.get $7 + local.get $6 i32.store offset=8 - local.get $11 - call $~lib/array/Array#get:length - local.get $3 - i32.add - local.get $5 + local.get $7 local.set $11 global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer local.get $11 - i32.store offset=8 - local.get $11 + ) + (func $~lib/typedarray/Float64Array#map (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 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 $0 + local.set $3 + local.get $1 + local.set $2 + local.get $3 call $~lib/typedarray/Float64Array#get:length - i32.gt_s - if - i32.const 336 - i32.const 608 - i32.const 1865 - i32.const 47 - call $~lib/builtins/abort - unreachable - end - i32.const 0 - i32.const 1 - i32.eq - if (result i32) - i32.const 3 - i32.const 2 - i32.eq - else - i32.const 0 - end - if (result i32) - i32.const 0 - if (result i32) - i32.const 1 - else - i32.const 0 - end - i32.eqz - else - i32.const 0 - end - drop - local.get $5 - i32.load offset=4 + local.set $4 local.get $3 + i32.load offset=4 + local.set $5 + local.get $4 i32.const 3 i32.shl - i32.add local.set $6 - local.get $4 - i32.load offset=4 - local.set $7 - local.get $4 - local.set $11 global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=8 - local.get $11 - call $~lib/array/Array#get:length - local.set $8 + i32.const 12 + i32.const 13 + call $~lib/rt/itcms/__new + local.tee $7 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.const 0 + call $~lib/rt/itcms/__new + local.tee $8 + i32.store offset=4 i32.const 0 local.set $9 loop $for-loop|0 local.get $9 - local.get $8 + local.get $4 i32.lt_s local.set $10 local.get $10 if - i32.const 0 - drop - i32.const 0 - if (result i32) - i32.const 1 - i32.eqz - else - i32.const 0 - end - drop - i32.const 1 - if (result i32) - i32.const 0 - i32.eqz - else - i32.const 0 - end - drop - local.get $6 + local.get $8 local.get $9 i32.const 3 i32.shl i32.add - local.get $7 + local.get $5 local.get $9 - i32.const 2 + i32.const 3 i32.shl i32.add + f64.load + local.get $9 + local.get $3 + i32.const 3 + global.set $~argumentsLength + local.get $2 i32.load - f64.convert_i32_s + call_indirect (type $f64_i32_i32_=>_f64) f64.store local.get $9 i32.const 1 @@ -71110,121 +54599,150 @@ br $for-loop|0 end end + local.get $7 + local.get $8 + i32.store + local.get $7 + local.get $8 + i32.const 0 + call $~lib/rt/itcms/__link + local.get $7 + local.get $8 + i32.store offset=4 + local.get $7 + local.get $6 + i32.store offset=8 + local.get $7 + local.set $11 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer + local.get $11 ) - (func $std/typedarray/valuesEqual<~lib/typedarray/Float64Array> (param $0 i32) (param $1 i32) + (func $~lib/typedarray/Int8Array#filter (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) - (local $5 f64) - (local $6 f64) + (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) 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 $0 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store - local.get $7 - call $~lib/typedarray/Float64Array#get:length - local.set $2 - local.get $2 + local.set $3 local.get $1 - local.set $7 + local.set $2 + local.get $3 + call $~lib/typedarray/Int8Array#get:length + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $7 + i32.const 12 + i32.const 3 + call $~lib/rt/itcms/__new + local.tee $5 i32.store - local.get $7 - call $~lib/array/Array#get:length - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 735 - i32.const 3 - call $~lib/builtins/abort - unreachable - end + global.get $~lib/memory/__stack_pointer + local.get $4 i32.const 0 - local.set $3 + i32.shl + i32.const 0 + call $~lib/rt/itcms/__new + local.tee $6 + i32.store offset=4 + local.get $3 + i32.load offset=4 + local.set $7 + i32.const 0 + local.set $8 + i32.const 0 + local.set $9 loop $for-loop|0 - local.get $3 - local.get $2 - i32.lt_s - local.set $4 + local.get $9 local.get $4 + i32.lt_s + local.set $10 + local.get $10 if - local.get $0 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store - local.get $7 - local.get $3 - call $~lib/typedarray/Float64Array#__uget - local.set $5 - local.get $1 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store local.get $7 + local.get $9 + i32.const 0 + i32.shl + i32.add + i32.load8_s + local.set $11 + local.get $11 + local.get $9 local.get $3 - call $~lib/array/Array#__uget - local.set $6 - local.get $5 - local.get $6 - f64.ne + i32.const 3 + global.set $~argumentsLength + local.get $2 + i32.load + call_indirect (type $i32_i32_i32_=>_i32) if - i32.const 13168 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store - local.get $7 - i32.const 3 - local.get $3 - f64.convert_i32_s - local.get $5 local.get $6 - f64.const 0 - f64.const 0 - call $~lib/builtins/trace + local.get $8 + local.tee $12 + i32.const 1 + i32.add + local.set $8 + local.get $12 i32.const 0 - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 741 - i32.const 7 - call $~lib/builtins/abort - unreachable - end + i32.shl + i32.add + local.get $11 + i32.store8 end - local.get $3 + local.get $9 i32.const 1 i32.add - local.set $3 + local.set $9 br $for-loop|0 end end + local.get $8 + i32.const 0 + i32.shl + local.set $9 + local.get $6 + local.get $9 + call $~lib/rt/itcms/__renew + local.set $10 + local.get $5 + local.get $10 + i32.store + local.get $5 + local.get $10 + i32.const 0 + call $~lib/rt/itcms/__link + local.get $5 + local.get $9 + i32.store offset=8 + local.get $5 + local.get $10 + i32.store offset=4 + local.get $5 + local.set $13 global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer + local.get $13 ) - (func $~lib/typedarray/Float64Array#set<~lib/array/Array> (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/typedarray/Uint8Array#filter (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -71234,145 +54752,80 @@ (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.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 $0 + local.set $3 + local.get $1 + local.set $2 + local.get $3 + call $~lib/typedarray/Uint8Array#get:length + local.set $4 global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 + i32.const 12 + i32.const 4 + call $~lib/rt/itcms/__new local.tee $5 i32.store global.get $~lib/memory/__stack_pointer - local.get $1 - local.tee $4 - i32.store offset=4 - local.get $2 - local.set $3 - i32.const 0 - drop - local.get $3 - i32.const 0 - i32.lt_s - if - i32.const 336 - i32.const 608 - i32.const 1864 - i32.const 19 - call $~lib/builtins/abort - unreachable - end local.get $4 - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=8 - local.get $11 - call $~lib/array/Array#get:length - local.get $3 - i32.add - local.get $5 - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=8 - local.get $11 - call $~lib/typedarray/Float64Array#get:length - i32.gt_s - if - i32.const 336 - i32.const 608 - i32.const 1865 - i32.const 47 - call $~lib/builtins/abort - unreachable - end i32.const 0 + i32.shl i32.const 0 - i32.eq - if (result i32) - i32.const 3 - i32.const 2 - i32.eq - else - i32.const 0 - end - if (result i32) - i32.const 0 - if (result i32) - i32.const 0 - else - i32.const 0 - end - i32.eqz - else - i32.const 0 - end - drop - local.get $5 - i32.load offset=4 + call $~lib/rt/itcms/__new + local.tee $6 + i32.store offset=4 local.get $3 - i32.const 3 - i32.shl - i32.add - local.set $6 - local.get $4 i32.load offset=4 local.set $7 - local.get $4 - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=8 - local.get $11 - call $~lib/array/Array#get:length + i32.const 0 local.set $8 i32.const 0 local.set $9 loop $for-loop|0 local.get $9 - local.get $8 + local.get $4 i32.lt_s local.set $10 local.get $10 if - i32.const 0 - drop - i32.const 1 - if (result i32) - i32.const 1 - i32.eqz - else - i32.const 0 - end - drop - i32.const 1 - if (result i32) - i32.const 1 - i32.eqz - else - i32.const 0 - end - drop - local.get $6 - local.get $9 - i32.const 3 - i32.shl - i32.add local.get $7 local.get $9 - i32.const 2 + i32.const 0 i32.shl i32.add - f32.load - f64.promote_f32 - f64.store + i32.load8_u + local.set $11 + local.get $11 + local.get $9 + local.get $3 + i32.const 3 + global.set $~argumentsLength + local.get $2 + i32.load + call_indirect (type $i32_i32_i32_=>_i32) + if + local.get $6 + local.get $8 + local.tee $12 + i32.const 1 + i32.add + local.set $8 + local.get $12 + i32.const 0 + i32.shl + i32.add + local.get $11 + i32.store8 + end local.get $9 i32.const 1 i32.add @@ -71380,12 +54833,37 @@ br $for-loop|0 end end + local.get $8 + i32.const 0 + i32.shl + local.set $9 + local.get $6 + local.get $9 + call $~lib/rt/itcms/__renew + local.set $10 + local.get $5 + local.get $10 + i32.store + local.get $5 + local.get $10 + i32.const 0 + call $~lib/rt/itcms/__link + local.get $5 + local.get $9 + i32.store offset=8 + local.get $5 + local.get $10 + i32.store offset=4 + local.get $5 + local.set $13 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer + local.get $13 ) - (func $~lib/typedarray/Float64Array#set<~lib/typedarray/Int64Array> (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/typedarray/Uint8ClampedArray#filter (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -71395,145 +54873,80 @@ (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.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 - global.get $~lib/memory/__stack_pointer local.get $0 - local.tee $5 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - local.tee $4 - i32.store offset=4 - local.get $2 local.set $3 - i32.const 0 - drop + local.get $1 + local.set $2 local.get $3 - i32.const 0 - i32.lt_s - if - i32.const 336 - i32.const 608 - i32.const 1864 - i32.const 19 - call $~lib/builtins/abort - unreachable - end - local.get $4 - local.set $11 + call $~lib/typedarray/Uint8ClampedArray#get:length + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=8 - local.get $11 - call $~lib/typedarray/Int64Array#get:length - local.get $3 - i32.add - local.get $5 - local.set $11 + i32.const 12 + i32.const 5 + call $~lib/rt/itcms/__new + local.tee $5 + i32.store global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=8 - local.get $11 - call $~lib/typedarray/Float64Array#get:length - i32.gt_s - if - i32.const 336 - i32.const 608 - i32.const 1865 - i32.const 47 - call $~lib/builtins/abort - unreachable - end + local.get $4 i32.const 0 - i32.const 1 - i32.eq - if (result i32) - i32.const 3 - i32.const 3 - i32.eq - else - i32.const 0 - end - if (result i32) - i32.const 0 - if (result i32) - i32.const 1 - else - i32.const 0 - end - i32.eqz - else - i32.const 0 - end - drop - local.get $5 - i32.load offset=4 - local.get $3 - i32.const 3 i32.shl - i32.add - local.set $6 - local.get $4 + i32.const 0 + call $~lib/rt/itcms/__new + local.tee $6 + i32.store offset=4 + local.get $3 i32.load offset=4 local.set $7 - local.get $4 - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=8 - local.get $11 - call $~lib/typedarray/Int64Array#get:length + i32.const 0 local.set $8 i32.const 0 local.set $9 loop $for-loop|0 local.get $9 - local.get $8 + local.get $4 i32.lt_s local.set $10 local.get $10 if - i32.const 0 - drop - i32.const 0 - if (result i32) - i32.const 1 - i32.eqz - else - i32.const 0 - end - drop - i32.const 1 - if (result i32) - i32.const 0 - i32.eqz - else - i32.const 0 - end - drop - local.get $6 + local.get $7 local.get $9 - i32.const 3 + i32.const 0 i32.shl i32.add - local.get $7 + i32.load8_u + local.set $11 + local.get $11 local.get $9 + local.get $3 i32.const 3 - i32.shl - i32.add - i64.load - f64.convert_i64_s - f64.store + global.set $~argumentsLength + local.get $2 + i32.load + call_indirect (type $i32_i32_i32_=>_i32) + if + local.get $6 + local.get $8 + local.tee $12 + i32.const 1 + i32.add + local.set $8 + local.get $12 + i32.const 0 + i32.shl + i32.add + local.get $11 + i32.store8 + end local.get $9 i32.const 1 i32.add @@ -71541,12 +54954,37 @@ br $for-loop|0 end end + local.get $8 + i32.const 0 + i32.shl + local.set $9 + local.get $6 + local.get $9 + call $~lib/rt/itcms/__renew + local.set $10 + local.get $5 + local.get $10 + i32.store + local.get $5 + local.get $10 + i32.const 0 + call $~lib/rt/itcms/__link + local.get $5 + local.get $9 + i32.store offset=8 + local.get $5 + local.get $10 + i32.store offset=4 + local.get $5 + local.set $13 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer + local.get $13 ) - (func $~lib/typedarray/Float64Array#set<~lib/typedarray/Uint8Array> (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/typedarray/Int16Array#filter (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -71556,145 +54994,80 @@ (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.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 - global.get $~lib/memory/__stack_pointer local.get $0 - local.tee $5 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - local.tee $4 - i32.store offset=4 - local.get $2 local.set $3 - i32.const 0 - drop + local.get $1 + local.set $2 local.get $3 - i32.const 0 - i32.lt_s - if - i32.const 336 - i32.const 608 - i32.const 1864 - i32.const 19 - call $~lib/builtins/abort - unreachable - end - local.get $4 - local.set $11 + call $~lib/typedarray/Int16Array#get:length + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=8 - local.get $11 - call $~lib/typedarray/Uint8Array#get:length - local.get $3 - i32.add - local.get $5 - local.set $11 + i32.const 12 + i32.const 6 + call $~lib/rt/itcms/__new + local.tee $5 + i32.store global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=8 - local.get $11 - call $~lib/typedarray/Float64Array#get:length - i32.gt_s - if - i32.const 336 - i32.const 608 - i32.const 1865 - i32.const 47 - call $~lib/builtins/abort - unreachable - end - i32.const 0 + local.get $4 i32.const 1 - i32.eq - if (result i32) - i32.const 3 - i32.const 0 - i32.eq - else - i32.const 0 - end - if (result i32) - i32.const 0 - if (result i32) - i32.const 0 - else - i32.const 0 - end - i32.eqz - else - i32.const 0 - end - drop - local.get $5 - i32.load offset=4 - local.get $3 - i32.const 3 i32.shl - i32.add - local.set $6 - local.get $4 + i32.const 0 + call $~lib/rt/itcms/__new + local.tee $6 + i32.store offset=4 + local.get $3 i32.load offset=4 local.set $7 - local.get $4 - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=8 - local.get $11 - call $~lib/typedarray/Uint8Array#get:length + i32.const 0 local.set $8 i32.const 0 local.set $9 loop $for-loop|0 local.get $9 - local.get $8 + local.get $4 i32.lt_s local.set $10 local.get $10 if - i32.const 0 - drop - i32.const 0 - if (result i32) - i32.const 1 - i32.eqz - else - i32.const 0 - end - drop - i32.const 1 - if (result i32) - i32.const 0 - i32.eqz - else - i32.const 0 - end - drop - local.get $6 - local.get $9 - i32.const 3 - i32.shl - i32.add local.get $7 local.get $9 - i32.const 0 + i32.const 1 i32.shl i32.add - i32.load8_u - f64.convert_i32_u - f64.store + i32.load16_s + local.set $11 + local.get $11 + local.get $9 + local.get $3 + i32.const 3 + global.set $~argumentsLength + local.get $2 + i32.load + call_indirect (type $i32_i32_i32_=>_i32) + if + local.get $6 + local.get $8 + local.tee $12 + i32.const 1 + i32.add + local.set $8 + local.get $12 + i32.const 1 + i32.shl + i32.add + local.get $11 + i32.store16 + end local.get $9 i32.const 1 i32.add @@ -71702,12 +55075,37 @@ br $for-loop|0 end end + local.get $8 + i32.const 1 + i32.shl + local.set $9 + local.get $6 + local.get $9 + call $~lib/rt/itcms/__renew + local.set $10 + local.get $5 + local.get $10 + i32.store + local.get $5 + local.get $10 + i32.const 0 + call $~lib/rt/itcms/__link + local.get $5 + local.get $9 + i32.store offset=8 + local.get $5 + local.get $10 + i32.store offset=4 + local.get $5 + local.set $13 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer + local.get $13 ) - (func $~lib/typedarray/Float64Array#set<~lib/typedarray/Int16Array> (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/typedarray/Uint16Array#filter (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -71717,145 +55115,80 @@ (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.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 - global.get $~lib/memory/__stack_pointer local.get $0 - local.tee $5 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - local.tee $4 - i32.store offset=4 - local.get $2 local.set $3 - i32.const 0 - drop + local.get $1 + local.set $2 local.get $3 - i32.const 0 - i32.lt_s - if - i32.const 336 - i32.const 608 - i32.const 1864 - i32.const 19 - call $~lib/builtins/abort - unreachable - end - local.get $4 - local.set $11 + call $~lib/typedarray/Uint16Array#get:length + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=8 - local.get $11 - call $~lib/typedarray/Int16Array#get:length - local.get $3 - i32.add - local.get $5 - local.set $11 + i32.const 12 + i32.const 7 + call $~lib/rt/itcms/__new + local.tee $5 + i32.store global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=8 - local.get $11 - call $~lib/typedarray/Float64Array#get:length - i32.gt_s - if - i32.const 336 - i32.const 608 - i32.const 1865 - i32.const 47 - call $~lib/builtins/abort - unreachable - end - i32.const 0 + local.get $4 i32.const 1 - i32.eq - if (result i32) - i32.const 3 - i32.const 1 - i32.eq - else - i32.const 0 - end - if (result i32) - i32.const 0 - if (result i32) - i32.const 1 - else - i32.const 0 - end - i32.eqz - else - i32.const 0 - end - drop - local.get $5 - i32.load offset=4 - local.get $3 - i32.const 3 i32.shl - i32.add - local.set $6 - local.get $4 + i32.const 0 + call $~lib/rt/itcms/__new + local.tee $6 + i32.store offset=4 + local.get $3 i32.load offset=4 local.set $7 - local.get $4 - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=8 - local.get $11 - call $~lib/typedarray/Int16Array#get:length + i32.const 0 local.set $8 i32.const 0 local.set $9 loop $for-loop|0 local.get $9 - local.get $8 + local.get $4 i32.lt_s local.set $10 local.get $10 if - i32.const 0 - drop - i32.const 0 - if (result i32) - i32.const 1 - i32.eqz - else - i32.const 0 - end - drop - i32.const 1 - if (result i32) - i32.const 0 - i32.eqz - else - i32.const 0 - end - drop - local.get $6 - local.get $9 - i32.const 3 - i32.shl - i32.add local.get $7 local.get $9 i32.const 1 i32.shl i32.add - i32.load16_s - f64.convert_i32_s - f64.store + i32.load16_u + local.set $11 + local.get $11 + local.get $9 + local.get $3 + i32.const 3 + global.set $~argumentsLength + local.get $2 + i32.load + call_indirect (type $i32_i32_i32_=>_i32) + if + local.get $6 + local.get $8 + local.tee $12 + i32.const 1 + i32.add + local.set $8 + local.get $12 + i32.const 1 + i32.shl + i32.add + local.get $11 + i32.store16 + end local.get $9 i32.const 1 i32.add @@ -71863,12 +55196,37 @@ br $for-loop|0 end end + local.get $8 + i32.const 1 + i32.shl + local.set $9 + local.get $6 + local.get $9 + call $~lib/rt/itcms/__renew + local.set $10 + local.get $5 + local.get $10 + i32.store + local.get $5 + local.get $10 + i32.const 0 + call $~lib/rt/itcms/__link + local.get $5 + local.get $9 + i32.store offset=8 + local.get $5 + local.get $10 + i32.store offset=4 + local.get $5 + local.set $13 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer + local.get $13 ) - (func $~lib/typedarray/Float64Array#set<~lib/array/Array> (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/typedarray/Int32Array#filter (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -71878,145 +55236,80 @@ (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.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 - global.get $~lib/memory/__stack_pointer local.get $0 - local.tee $5 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - local.tee $4 - i32.store offset=4 - local.get $2 local.set $3 - i32.const 0 - drop + local.get $1 + local.set $2 local.get $3 - i32.const 0 - i32.lt_s - if - i32.const 336 - i32.const 608 - i32.const 1864 - i32.const 19 - call $~lib/builtins/abort - unreachable - end - local.get $4 - local.set $11 + call $~lib/typedarray/Int32Array#get:length + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=8 - local.get $11 - call $~lib/array/Array#get:length - local.get $3 - i32.add - local.get $5 - local.set $11 + i32.const 12 + i32.const 8 + call $~lib/rt/itcms/__new + local.tee $5 + i32.store global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=8 - local.get $11 - call $~lib/typedarray/Float64Array#get:length - i32.gt_s - if - i32.const 336 - i32.const 608 - i32.const 1865 - i32.const 47 - call $~lib/builtins/abort - unreachable - end + local.get $4 + i32.const 2 + i32.shl i32.const 0 - i32.const 1 - i32.eq - if (result i32) - i32.const 3 - i32.const 0 - i32.eq - else - i32.const 0 - end - if (result i32) - i32.const 0 - if (result i32) - i32.const 1 - else - i32.const 0 - end - i32.eqz - else - i32.const 0 - end - drop - local.get $5 - i32.load offset=4 + call $~lib/rt/itcms/__new + local.tee $6 + i32.store offset=4 local.get $3 - i32.const 3 - i32.shl - i32.add - local.set $6 - local.get $4 i32.load offset=4 local.set $7 - local.get $4 - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=8 - local.get $11 - call $~lib/array/Array#get:length + i32.const 0 local.set $8 i32.const 0 local.set $9 loop $for-loop|0 local.get $9 - local.get $8 + local.get $4 i32.lt_s local.set $10 local.get $10 if - i32.const 0 - drop - i32.const 0 - if (result i32) - i32.const 1 - i32.eqz - else - i32.const 0 - end - drop - i32.const 1 - if (result i32) - i32.const 0 - i32.eqz - else - i32.const 0 - end - drop - local.get $6 - local.get $9 - i32.const 3 - i32.shl - i32.add local.get $7 local.get $9 - i32.const 0 + i32.const 2 i32.shl i32.add - i32.load8_s - f64.convert_i32_s - f64.store + i32.load + local.set $11 + local.get $11 + local.get $9 + local.get $3 + i32.const 3 + global.set $~argumentsLength + local.get $2 + i32.load + call_indirect (type $i32_i32_i32_=>_i32) + if + local.get $6 + local.get $8 + local.tee $12 + i32.const 1 + i32.add + local.set $8 + local.get $12 + i32.const 2 + i32.shl + i32.add + local.get $11 + i32.store + end local.get $9 i32.const 1 i32.add @@ -72024,309 +55317,279 @@ br $for-loop|0 end end + local.get $8 + i32.const 2 + i32.shl + local.set $9 + local.get $6 + local.get $9 + call $~lib/rt/itcms/__renew + local.set $10 + local.get $5 + local.get $10 + i32.store + local.get $5 + local.get $10 + i32.const 0 + call $~lib/rt/itcms/__link + local.get $5 + local.get $9 + i32.store offset=8 + local.get $5 + local.get $10 + i32.store offset=4 + local.get $5 + local.set $13 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer + local.get $13 ) - (func $std/typedarray/testTypedArraySet<~lib/typedarray/Float64Array> - (local $0 i32) - (local $1 i32) + (func $~lib/typedarray/Uint32Array#filter (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) + (local $12 i32) + (local $13 i32) global.get $~lib/memory/__stack_pointer - 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 - i64.const 0 - i64.store offset=8 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=16 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 3 - call $~lib/typedarray/Int64Array#constructor - local.tee $0 - i32.store - local.get $0 - local.set $6 - 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 - local.get $0 - local.set $6 - 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 - local.get $0 - local.set $6 - 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 0 - i32.const 4 - call $~lib/typedarray/Uint8Array#constructor - local.tee $1 - i32.store offset=8 - local.get $1 - local.set $6 - 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 - local.get $1 - local.set $6 - 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 - local.get $1 - local.set $6 - 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 - local.get $1 - local.set $6 - 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 0 - i32.const 3 - call $~lib/typedarray/Int16Array#constructor - local.tee $2 - i32.store offset=12 - local.get $2 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - i32.const 1000 - call $~lib/typedarray/Int16Array#__set - local.get $2 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 1 - i32.const 1001 - call $~lib/typedarray/Int16Array#__set - local.get $2 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 2 - i32.const 1002 - call $~lib/typedarray/Int16Array#__set + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 10 - call $~lib/typedarray/Float64Array#constructor - local.tee $3 - i32.store offset=16 + i64.const 0 + i64.store + local.get $0 + local.set $3 + local.get $1 + local.set $2 local.get $3 - local.set $6 + call $~lib/typedarray/Uint32Array#get:length + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - global.get $std/typedarray/setSource1 - local.set $6 + i32.const 12 + i32.const 9 + call $~lib/rt/itcms/__new + local.tee $5 + i32.store global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=20 - local.get $6 + local.get $4 + i32.const 2 + i32.shl i32.const 0 - call $~lib/typedarray/Float64Array#set<~lib/array/Array> - local.get $3 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 + call $~lib/rt/itcms/__new + local.tee $6 i32.store offset=4 - local.get $6 - i32.const 10 - i32.const 3 - i32.const 62 - i32.const 13056 - call $~lib/rt/__newArray - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=20 - local.get $6 - call $std/typedarray/valuesEqual<~lib/typedarray/Float64Array> local.get $3 - local.set $6 - global.get $~lib/memory/__stack_pointer + i32.load offset=4 + local.set $7 + i32.const 0 + local.set $8 + i32.const 0 + local.set $9 + loop $for-loop|0 + local.get $9 + local.get $4 + i32.lt_s + local.set $10 + local.get $10 + if + local.get $7 + local.get $9 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $11 + local.get $11 + local.get $9 + local.get $3 + i32.const 3 + global.set $~argumentsLength + local.get $2 + i32.load + call_indirect (type $i32_i32_i32_=>_i32) + if + local.get $6 + local.get $8 + local.tee $12 + i32.const 1 + i32.add + local.set $8 + local.get $12 + i32.const 2 + i32.shl + i32.add + local.get $11 + i32.store + end + local.get $9 + i32.const 1 + i32.add + local.set $9 + br $for-loop|0 + end + end + local.get $8 + i32.const 2 + i32.shl + local.set $9 local.get $6 + local.get $9 + call $~lib/rt/itcms/__renew + local.set $10 + local.get $5 + local.get $10 + i32.store + local.get $5 + local.get $10 + i32.const 0 + call $~lib/rt/itcms/__link + local.get $5 + local.get $9 + i32.store offset=8 + local.get $5 + local.get $10 i32.store offset=4 - local.get $6 - global.get $std/typedarray/setSource2 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=20 - local.get $6 - i32.const 3 - call $~lib/typedarray/Float64Array#set<~lib/array/Array> - local.get $3 - local.set $6 + local.get $5 + local.set $13 global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 10 - i32.const 3 - i32.const 62 - i32.const 13216 - call $~lib/rt/__newArray - local.set $6 + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $13 + ) + (func $~lib/typedarray/Int64Array#filter (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 i64) + (local $12 i32) + (local $13 i32) global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=20 - local.get $6 - call $std/typedarray/valuesEqual<~lib/typedarray/Float64Array> - local.get $3 - local.set $6 + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 + i64.const 0 + i64.store local.get $0 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=20 - local.get $6 - i32.const 6 - call $~lib/typedarray/Float64Array#set<~lib/typedarray/Int64Array> + local.set $3 + local.get $1 + local.set $2 local.get $3 - local.set $6 + call $~lib/typedarray/Int64Array#get:length + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 + i32.const 12 i32.const 10 - i32.const 3 - i32.const 62 - i32.const 13328 - call $~lib/rt/__newArray - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=20 - local.get $6 - call $std/typedarray/valuesEqual<~lib/typedarray/Float64Array> - i32.const 0 - drop - local.get $3 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - local.get $1 - local.set $6 + call $~lib/rt/itcms/__new + local.tee $5 + i32.store global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=20 - local.get $6 + local.get $4 + i32.const 3 + i32.shl i32.const 0 - call $~lib/typedarray/Float64Array#set<~lib/typedarray/Uint8Array> - local.get $3 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 + call $~lib/rt/itcms/__new + local.tee $6 i32.store offset=4 - local.get $6 - local.get $2 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=20 - local.get $6 - i32.const 4 - call $~lib/typedarray/Float64Array#set<~lib/typedarray/Int16Array> local.get $3 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - global.get $std/typedarray/setSource7 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=20 - local.get $6 - i32.const 7 - call $~lib/typedarray/Float64Array#set<~lib/array/Array> + i32.load offset=4 + local.set $7 i32.const 0 - drop - local.get $3 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 10 + local.set $8 + i32.const 0 + local.set $9 + loop $for-loop|0 + local.get $9 + local.get $4 + i32.lt_s + local.set $10 + local.get $10 + if + local.get $7 + local.get $9 + i32.const 3 + i32.shl + i32.add + i64.load + local.set $11 + local.get $11 + local.get $9 + local.get $3 + i32.const 3 + global.set $~argumentsLength + local.get $2 + i32.load + call_indirect (type $i64_i32_i32_=>_i32) + if + local.get $6 + local.get $8 + local.tee $12 + i32.const 1 + i32.add + local.set $8 + local.get $12 + i32.const 3 + i32.shl + i32.add + local.get $11 + i64.store + end + local.get $9 + i32.const 1 + i32.add + local.set $9 + br $for-loop|0 + end + end + local.get $8 i32.const 3 - i32.const 62 - i32.const 13440 - call $~lib/rt/__newArray - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=20 + i32.shl + local.set $9 local.get $6 - call $std/typedarray/valuesEqual<~lib/typedarray/Float64Array> + local.get $9 + call $~lib/rt/itcms/__renew + local.set $10 + local.get $5 + local.get $10 + i32.store + local.get $5 + local.get $10 + i32.const 0 + call $~lib/rt/itcms/__link + local.get $5 + local.get $9 + i32.store offset=8 + local.get $5 + local.get $10 + i32.store offset=4 + local.get $5 + local.set $13 global.get $~lib/memory/__stack_pointer - i32.const 24 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer + local.get $13 ) - (func $~lib/typedarray/Uint8ClampedArray#set<~lib/typedarray/Float32Array> (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/typedarray/Uint64Array#filter (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -72335,120 +55598,173 @@ (local $8 i32) (local $9 i32) (local $10 i32) - (local $11 f32) + (local $11 i64) (local $12 i32) + (local $13 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 - global.get $~lib/memory/__stack_pointer local.get $0 + local.set $3 + local.get $1 + local.set $2 + local.get $3 + call $~lib/typedarray/Uint64Array#get:length + local.set $4 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 11 + call $~lib/rt/itcms/__new local.tee $5 i32.store global.get $~lib/memory/__stack_pointer - local.get $1 - local.tee $4 - i32.store offset=4 - local.get $2 - local.set $3 + local.get $4 + i32.const 3 + i32.shl i32.const 0 - drop + call $~lib/rt/itcms/__new + local.tee $6 + i32.store offset=4 local.get $3 + i32.load offset=4 + local.set $7 i32.const 0 - i32.lt_s - if - i32.const 336 - i32.const 608 - i32.const 1864 - i32.const 19 - call $~lib/builtins/abort - unreachable - end - local.get $4 - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/typedarray/Float32Array#get:length - local.get $3 - i32.add - local.get $5 - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/typedarray/Uint8ClampedArray#get:length - i32.gt_s - if - i32.const 336 - i32.const 608 - i32.const 1865 - i32.const 47 - call $~lib/builtins/abort - unreachable - end - i32.const 1 + local.set $8 i32.const 0 - i32.eq - if (result i32) - i32.const 0 - i32.const 2 - i32.eq - else - i32.const 0 - end - if (result i32) - i32.const 1 - if (result i32) - i32.const 0 - else - i32.const 0 + local.set $9 + loop $for-loop|0 + local.get $9 + local.get $4 + i32.lt_s + local.set $10 + local.get $10 + if + local.get $7 + local.get $9 + i32.const 3 + i32.shl + i32.add + i64.load + local.set $11 + local.get $11 + local.get $9 + local.get $3 + i32.const 3 + global.set $~argumentsLength + local.get $2 + i32.load + call_indirect (type $i64_i32_i32_=>_i32) + if + local.get $6 + local.get $8 + local.tee $12 + i32.const 1 + i32.add + local.set $8 + local.get $12 + i32.const 3 + i32.shl + i32.add + local.get $11 + i64.store + end + local.get $9 + i32.const 1 + i32.add + local.set $9 + br $for-loop|0 end - i32.eqz - else - i32.const 0 end - drop + local.get $8 + i32.const 3 + i32.shl + local.set $9 + local.get $6 + local.get $9 + call $~lib/rt/itcms/__renew + local.set $10 local.get $5 - i32.load offset=4 + local.get $10 + i32.store + local.get $5 + local.get $10 + i32.const 0 + call $~lib/rt/itcms/__link + local.get $5 + local.get $9 + i32.store offset=8 + local.get $5 + local.get $10 + i32.store offset=4 + local.get $5 + local.set $13 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $13 + ) + (func $~lib/typedarray/Float32Array#filter (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 f32) + (local $12 i32) + (local $13 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 $0 + local.set $3 + local.get $1 + local.set $2 local.get $3 - i32.const 0 - i32.shl - i32.add - local.set $6 + call $~lib/typedarray/Float32Array#get:length + local.set $4 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 12 + call $~lib/rt/itcms/__new + local.tee $5 + i32.store + global.get $~lib/memory/__stack_pointer local.get $4 + i32.const 2 + i32.shl + i32.const 0 + call $~lib/rt/itcms/__new + local.tee $6 + i32.store offset=4 + local.get $3 i32.load offset=4 local.set $7 - local.get $4 - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/typedarray/Float32Array#get:length + i32.const 0 local.set $8 i32.const 0 local.set $9 loop $for-loop|0 local.get $9 - local.get $8 + local.get $4 i32.lt_s local.set $10 local.get $10 if - i32.const 1 - drop - i32.const 1 - drop local.get $7 local.get $9 i32.const 2 @@ -72456,27 +55772,28 @@ i32.add f32.load local.set $11 - local.get $6 - local.get $9 - i32.const 0 - i32.shl - i32.add - local.get $11 local.get $11 - f32.sub - f32.const 0 - f32.eq - if (result i32) - f32.const 0 - f32.const 255 + local.get $9 + local.get $3 + i32.const 3 + global.set $~argumentsLength + local.get $2 + i32.load + call_indirect (type $f32_i32_i32_=>_i32) + if + local.get $6 + local.get $8 + local.tee $12 + i32.const 1 + i32.add + local.set $8 + local.get $12 + i32.const 2 + i32.shl + i32.add local.get $11 - f32.min - f32.max - i32.trunc_f32_u - else - i32.const 0 + f32.store end - i32.store8 local.get $9 i32.const 1 i32.add @@ -72484,12 +55801,37 @@ br $for-loop|0 end end + local.get $8 + i32.const 2 + i32.shl + local.set $9 + local.get $6 + local.get $9 + call $~lib/rt/itcms/__renew + local.set $10 + local.get $5 + local.get $10 + i32.store + local.get $5 + local.get $10 + i32.const 0 + call $~lib/rt/itcms/__link + local.get $5 + local.get $9 + i32.store offset=8 + local.get $5 + local.get $10 + i32.store offset=4 + local.get $5 + local.set $13 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer + local.get $13 ) - (func $~lib/typedarray/Uint8ClampedArray#set<~lib/typedarray/Int32Array> (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/typedarray/Float64Array#filter (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -72498,153 +55840,81 @@ (local $8 i32) (local $9 i32) (local $10 i32) - (local $11 i32) + (local $11 f64) (local $12 i32) + (local $13 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 - global.get $~lib/memory/__stack_pointer local.get $0 - local.tee $5 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - local.tee $4 - i32.store offset=4 - local.get $2 local.set $3 - i32.const 0 - drop + local.get $1 + local.set $2 local.get $3 - i32.const 0 - i32.lt_s - if - i32.const 336 - i32.const 608 - i32.const 1864 - i32.const 19 - call $~lib/builtins/abort - unreachable - end - local.get $4 - local.set $12 + call $~lib/typedarray/Float64Array#get:length + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/typedarray/Int32Array#get:length - local.get $3 - i32.add - local.get $5 - local.set $12 + i32.const 12 + i32.const 13 + call $~lib/rt/itcms/__new + local.tee $5 + i32.store global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/typedarray/Uint8ClampedArray#get:length - i32.gt_s - if - i32.const 336 - i32.const 608 - i32.const 1865 - i32.const 47 - call $~lib/builtins/abort - unreachable - end - i32.const 1 - i32.const 1 - i32.eq - if (result i32) - i32.const 0 - i32.const 2 - i32.eq - else - i32.const 0 - end - if (result i32) - i32.const 1 - if (result i32) - i32.const 1 - else - i32.const 0 - end - i32.eqz - else - i32.const 0 - end - drop - local.get $5 - i32.load offset=4 - local.get $3 - i32.const 0 - i32.shl - i32.add - local.set $6 local.get $4 + i32.const 3 + i32.shl + i32.const 0 + call $~lib/rt/itcms/__new + local.tee $6 + i32.store offset=4 + local.get $3 i32.load offset=4 local.set $7 - local.get $4 - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/typedarray/Int32Array#get:length + i32.const 0 local.set $8 i32.const 0 local.set $9 loop $for-loop|0 local.get $9 - local.get $8 + local.get $4 i32.lt_s local.set $10 local.get $10 if - i32.const 1 - drop - i32.const 0 - drop local.get $7 local.get $9 - i32.const 2 + i32.const 3 i32.shl i32.add - i32.load + f64.load local.set $11 - i32.const 1 - i32.eqz - drop - i32.const 1 - i32.const 4 - i32.le_u - drop - local.get $6 - local.get $9 - i32.const 0 - i32.shl - i32.add - local.get $11 - i32.const 31 - i32.shr_s - i32.const -1 - i32.xor - i32.const 255 local.get $11 - i32.sub - i32.const 31 - i32.shr_s - local.get $11 - i32.or - i32.and - i32.store8 + local.get $9 + local.get $3 + i32.const 3 + global.set $~argumentsLength + local.get $2 + i32.load + call_indirect (type $f64_i32_i32_=>_i32) + if + local.get $6 + local.get $8 + local.tee $12 + i32.const 1 + i32.add + local.set $8 + local.get $12 + i32.const 3 + i32.shl + i32.add + local.get $11 + f64.store + end local.get $9 i32.const 1 i32.add @@ -72652,12 +55922,36 @@ br $for-loop|0 end end + local.get $8 + i32.const 3 + i32.shl + local.set $9 + local.get $6 + local.get $9 + call $~lib/rt/itcms/__renew + local.set $10 + local.get $5 + local.get $10 + i32.store + local.get $5 + local.get $10 + i32.const 0 + call $~lib/rt/itcms/__link + local.get $5 + local.get $9 + i32.store offset=8 + local.get $5 + local.get $10 + i32.store offset=4 + local.get $5 + local.set $13 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer + local.get $13 ) - (func $~lib/typedarray/Uint8ClampedArray#set<~lib/typedarray/Uint32Array> (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/typedarray/Uint8Array#subarray (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -72665,3559 +55959,4201 @@ (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 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 - global.get $~lib/memory/__stack_pointer - local.get $0 - local.tee $5 i32.store - global.get $~lib/memory/__stack_pointer + local.get $0 + local.set $5 local.get $1 - local.tee $4 - i32.store offset=4 + local.set $4 local.get $2 local.set $3 - i32.const 0 - drop - local.get $3 + local.get $5 + call $~lib/typedarray/Uint8Array#get:length + local.set $6 + local.get $4 i32.const 0 i32.lt_s - if - i32.const 336 - i32.const 608 - i32.const 1864 - i32.const 19 - call $~lib/builtins/abort - unreachable - end - local.get $4 - local.set $14 - global.get $~lib/memory/__stack_pointer - local.get $14 - i32.store offset=8 - local.get $14 - call $~lib/typedarray/Uint32Array#get:length - local.get $3 - i32.add - local.get $5 - local.set $14 - global.get $~lib/memory/__stack_pointer - local.get $14 - i32.store offset=8 - local.get $14 - call $~lib/typedarray/Uint8ClampedArray#get:length - i32.gt_s - if - i32.const 336 - i32.const 608 - i32.const 1865 - i32.const 47 - call $~lib/builtins/abort - unreachable - end - i32.const 1 - i32.const 1 - i32.eq if (result i32) + local.get $6 + local.get $4 + i32.add + local.tee $7 i32.const 0 - i32.const 2 - i32.eq + local.tee $8 + local.get $7 + local.get $8 + i32.gt_s + select else - i32.const 0 + local.get $4 + local.tee $8 + local.get $6 + local.tee $7 + local.get $8 + local.get $7 + i32.lt_s + select end + local.set $4 + local.get $3 + i32.const 0 + i32.lt_s if (result i32) - i32.const 1 - if (result i32) - i32.const 0 - else - i32.const 0 - end - i32.eqz - else + local.get $6 + local.get $3 + i32.add + local.tee $7 i32.const 0 + local.tee $8 + local.get $7 + local.get $8 + i32.gt_s + select + else + local.get $3 + local.tee $8 + local.get $6 + local.tee $7 + local.get $8 + local.get $7 + i32.lt_s + select end - drop - local.get $5 - i32.load offset=4 + local.set $3 local.get $3 - i32.const 0 - i32.shl - i32.add - local.set $6 - local.get $4 - i32.load offset=4 - local.set $7 + local.tee $7 local.get $4 - local.set $14 + local.tee $8 + local.get $7 + local.get $8 + i32.gt_s + select + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $14 - i32.store offset=8 - local.get $14 - call $~lib/typedarray/Uint32Array#get:length + i32.const 12 + i32.const 4 + call $~lib/rt/itcms/__new + local.tee $7 + i32.store + local.get $5 + i32.load local.set $8 + local.get $7 + local.get $8 + i32.store + local.get $7 + local.get $8 i32.const 0 - local.set $9 - loop $for-loop|0 - local.get $9 - local.get $8 - i32.lt_s - local.set $10 - local.get $10 - if - i32.const 1 - drop - i32.const 0 - drop - local.get $7 - local.get $9 - i32.const 2 - i32.shl - i32.add - i32.load - local.set $11 - i32.const 0 - i32.eqz - drop - local.get $6 - local.get $9 - i32.const 0 - i32.shl - i32.add - i32.const 255 - local.tee $12 - local.get $11 - local.tee $13 - local.get $12 - local.get $13 - i32.lt_u - select - i32.store8 - local.get $9 - i32.const 1 - i32.add - local.set $9 - br $for-loop|0 - end - end + call $~lib/rt/itcms/__link + local.get $7 + local.get $5 + i32.load offset=4 + local.get $4 + i32.const 0 + i32.shl + i32.add + i32.store offset=4 + local.get $7 + local.get $3 + local.get $4 + i32.sub + i32.const 0 + i32.shl + i32.store offset=8 + local.get $7 + local.set $9 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer + local.get $9 ) - (func $start:std/typedarray - (local $0 i32) - (local $1 i32) - (local $2 i32) + (func $~lib/typedarray/Uint8ClampedArray#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 $7 i32) (local $8 i32) + (local $9 i32) global.get $~lib/memory/__stack_pointer - i32.const 36 + i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=8 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=16 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=24 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=32 - global.get $~lib/typedarray/Int8Array.BYTES_PER_ELEMENT - i32.const 1 - i32.eq - drop - global.get $~lib/typedarray/Uint8Array.BYTES_PER_ELEMENT - i32.const 1 - i32.eq - drop - global.get $~lib/typedarray/Uint8ClampedArray.BYTES_PER_ELEMENT - i32.const 1 - i32.eq - drop - global.get $~lib/typedarray/Int16Array.BYTES_PER_ELEMENT - i32.const 2 - i32.eq - drop - global.get $~lib/typedarray/Uint16Array.BYTES_PER_ELEMENT - i32.const 2 - i32.eq - drop - global.get $~lib/typedarray/Int32Array.BYTES_PER_ELEMENT - i32.const 4 - i32.eq - drop - global.get $~lib/typedarray/Uint32Array.BYTES_PER_ELEMENT - i32.const 4 - i32.eq - drop - global.get $~lib/typedarray/Int64Array.BYTES_PER_ELEMENT - i32.const 8 - i32.eq - drop - global.get $~lib/typedarray/Uint64Array.BYTES_PER_ELEMENT - i32.const 8 - i32.eq - drop - global.get $~lib/typedarray/Float32Array.BYTES_PER_ELEMENT - i32.const 4 - i32.eq - drop - global.get $~lib/typedarray/Float64Array.BYTES_PER_ELEMENT - i32.const 8 - i32.eq - drop - i32.const 256 - call $~lib/rt/itcms/initLazy - global.set $~lib/rt/itcms/pinSpace - i32.const 288 - call $~lib/rt/itcms/initLazy - global.set $~lib/rt/itcms/toSpace - i32.const 432 - call $~lib/rt/itcms/initLazy - global.set $~lib/rt/itcms/fromSpace - i32.const 0 - call $std/typedarray/testInstantiate - i32.const 5 - call $std/typedarray/testInstantiate - global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 3 - call $~lib/typedarray/Int32Array#constructor - local.tee $0 i32.store local.get $0 - local.set $8 - 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 - local.get $0 - local.set $8 - 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 - local.get $0 - local.set $8 - 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 - local.get $0 - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 - call $~lib/typedarray/Int32Array#get:length - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 95 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 - call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + local.get $5 + call $~lib/typedarray/Uint8ClampedArray#get:length + local.set $6 + local.get $4 i32.const 0 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 96 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load offset=8 - i32.const 3 - i32.const 4 - i32.mul - i32.eq - i32.eqz - if + i32.lt_s + if (result i32) + local.get $6 + local.get $4 + i32.add + local.tee $7 i32.const 0 - i32.const 544 - i32.const 97 - i32.const 3 - call $~lib/builtins/abort - unreachable + local.tee $8 + local.get $7 + local.get $8 + i32.gt_s + select + else + local.get $4 + local.tee $8 + local.get $6 + local.tee $7 + local.get $8 + local.get $7 + i32.lt_s + select end - local.get $0 - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 + local.set $4 + local.get $3 i32.const 0 - call $~lib/typedarray/Int32Array#__get - i32.const 1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 98 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 - i32.const 1 - call $~lib/typedarray/Int32Array#__get - i32.const 2 - i32.eq - i32.eqz - if + i32.lt_s + if (result i32) + local.get $6 + local.get $3 + i32.add + local.tee $7 i32.const 0 - i32.const 544 - i32.const 99 - i32.const 3 - call $~lib/builtins/abort - unreachable + local.tee $8 + local.get $7 + local.get $8 + i32.gt_s + select + else + local.get $3 + local.tee $8 + local.get $6 + local.tee $7 + local.get $8 + local.get $7 + i32.lt_s + select end - local.get $0 - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 + local.set $3 + local.get $3 + local.tee $7 + local.get $4 + local.tee $8 + local.get $7 local.get $8 - i32.const 2 - call $~lib/typedarray/Int32Array#__get - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 100 - i32.const 3 - call $~lib/builtins/abort - unreachable - end + i32.gt_s + select + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $0 + i32.const 12 + i32.const 5 + call $~lib/rt/itcms/__new + local.tee $7 + i32.store + local.get $5 + i32.load local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 + local.get $7 local.get $8 - i32.const 1 - i32.const 2 - call $~lib/typedarray/Int32Array#subarray - local.tee $0 i32.store - local.get $0 - local.set $8 - global.get $~lib/memory/__stack_pointer + local.get $7 local.get $8 + i32.const 0 + call $~lib/rt/itcms/__link + local.get $7 + local.get $5 + i32.load offset=4 + local.get $4 + i32.const 0 + i32.shl + i32.add i32.store offset=4 - local.get $8 - call $~lib/typedarray/Int32Array#get:length - i32.const 1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 103 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.set $8 + local.get $7 + local.get $3 + local.get $4 + i32.sub + i32.const 0 + i32.shl + i32.store offset=8 + local.get $7 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 - call $~lib/arraybuffer/ArrayBufferView#get:byteOffset - i32.const 1 - i32.const 4 - i32.mul - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 104 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load offset=8 - i32.const 1 i32.const 4 - i32.mul - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 105 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.set $8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $9 + ) + (func $~lib/typedarray/Int16Array#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 $7 i32) + (local $8 i32) + (local $9 i32) global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 - i32.const 0 - call $~lib/typedarray/Int32Array#__get - i32.const 2 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 106 - i32.const 3 - call $~lib/builtins/abort - unreachable - end + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 8 - call $~lib/typedarray/Float64Array#constructor - local.tee $0 i32.store local.get $0 - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + local.get $5 + call $~lib/typedarray/Int16Array#get:length + local.set $6 + local.get $4 i32.const 0 - f64.const 1 - call $~lib/typedarray/Float64Array#__set - local.get $0 - local.set $8 - 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 - local.get $0 - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 - i32.const 2 - f64.const 7 - call $~lib/typedarray/Float64Array#__set - local.get $0 - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 - i32.const 3 - f64.const 6 - call $~lib/typedarray/Float64Array#__set - local.get $0 - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 - i32.const 4 - f64.const 5 - call $~lib/typedarray/Float64Array#__set - local.get $0 - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 + i32.lt_s + if (result i32) + local.get $6 + local.get $4 + i32.add + local.tee $7 + i32.const 0 + local.tee $8 + local.get $7 + local.get $8 + i32.gt_s + select + else + local.get $4 + local.tee $8 + local.get $6 + local.tee $7 + local.get $8 + local.get $7 + i32.lt_s + select + end + local.set $4 + local.get $3 + i32.const 0 + i32.lt_s + if (result i32) + local.get $6 + local.get $3 + i32.add + local.tee $7 + i32.const 0 + local.tee $8 + local.get $7 + local.get $8 + i32.gt_s + select + else + local.get $3 + local.tee $8 + local.get $6 + local.tee $7 + local.get $8 + local.get $7 + i32.lt_s + select + end + local.set $3 + local.get $3 + local.tee $7 + local.get $4 + local.tee $8 + local.get $7 local.get $8 - i32.const 5 - f64.const 4 - call $~lib/typedarray/Float64Array#__set - local.get $0 - local.set $8 + i32.gt_s + select + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 + i32.const 12 i32.const 6 - f64.const 3 - call $~lib/typedarray/Float64Array#__set - local.get $0 - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 - i32.const 7 - f64.const 8 - call $~lib/typedarray/Float64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 + call $~lib/rt/itcms/__new + local.tee $7 + i32.store + local.get $5 + i32.load local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 + local.get $7 local.get $8 - i32.const 2 - i32.const 6 - call $~lib/typedarray/Float64Array#subarray - local.tee $0 i32.store - local.get $0 - local.set $8 - global.get $~lib/memory/__stack_pointer + local.get $7 local.get $8 + i32.const 0 + call $~lib/rt/itcms/__link + local.get $7 + local.get $5 + i32.load offset=4 + local.get $4 + i32.const 1 + i32.shl + i32.add i32.store offset=4 - local.get $8 - call $~lib/typedarray/Float64Array#get:length + local.get $7 + local.get $3 + local.get $4 + i32.sub + i32.const 1 + i32.shl + i32.store offset=8 + local.get $7 + local.set $9 + global.get $~lib/memory/__stack_pointer i32.const 4 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 122 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.set $8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $9 + ) + (func $~lib/typedarray/Uint16Array#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 $7 i32) + (local $8 i32) + (local $9 i32) global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 - call $~lib/arraybuffer/ArrayBufferView#get:byteOffset - i32.const 2 - i32.const 8 - i32.mul - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 123 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load offset=8 i32.const 4 - i32.const 8 - i32.mul - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 124 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.set $8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 - i32.const 0 - global.set $~argumentsLength i32.const 0 - call $~lib/typedarray/Float64Array#sort@varargs - drop + i32.store local.get $0 - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + local.get $5 + call $~lib/typedarray/Uint16Array#get:length + local.set $6 + local.get $4 i32.const 0 - call $~lib/typedarray/Float64Array#__get - f64.const 4 - f64.eq + i32.lt_s if (result i32) - local.get $0 - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 - i32.const 1 - call $~lib/typedarray/Float64Array#__get - f64.const 5 - f64.eq - else + local.get $6 + local.get $4 + i32.add + local.tee $7 i32.const 0 - end - if (result i32) - local.get $0 - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 + local.tee $8 + local.get $7 local.get $8 - i32.const 2 - call $~lib/typedarray/Float64Array#__get - f64.const 6 - f64.eq + i32.gt_s + select else - i32.const 0 + local.get $4 + local.tee $8 + local.get $6 + local.tee $7 + local.get $8 + local.get $7 + i32.lt_s + select end + local.set $4 + local.get $3 + i32.const 0 + i32.lt_s if (result i32) - local.get $0 - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 + local.get $6 + local.get $3 + i32.add + local.tee $7 + i32.const 0 + local.tee $8 + local.get $7 local.get $8 - i32.const 3 - call $~lib/typedarray/Float64Array#__get - f64.const 7 - f64.eq + i32.gt_s + select else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 126 - i32.const 3 - call $~lib/builtins/abort - unreachable + local.get $3 + local.tee $8 + local.get $6 + local.tee $7 + local.get $8 + local.get $7 + i32.lt_s + select end + local.set $3 + local.get $3 + local.tee $7 + local.get $4 + local.tee $8 + local.get $7 + local.get $8 + i32.gt_s + select + local.set $3 global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 3 - call $~lib/typedarray/Uint8ClampedArray#constructor - local.tee $0 + i32.const 12 + i32.const 7 + call $~lib/rt/itcms/__new + local.tee $7 i32.store - local.get $0 + local.get $5 + i32.load local.set $8 - global.get $~lib/memory/__stack_pointer + local.get $7 local.get $8 - i32.store offset=4 + i32.store + local.get $7 local.get $8 i32.const 0 - i32.const -32 - call $~lib/typedarray/Uint8ClampedArray#__set - local.get $0 - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 + call $~lib/rt/itcms/__link + local.get $7 + local.get $5 + i32.load offset=4 + local.get $4 + i32.const 1 + i32.shl + i32.add i32.store offset=4 - local.get $8 + local.get $7 + local.get $3 + local.get $4 + i32.sub i32.const 1 - i32.const 2 - call $~lib/typedarray/Uint8ClampedArray#__set - local.get $0 - local.set $8 + i32.shl + i32.store offset=8 + local.get $7 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 - i32.const 2 - i32.const 256 - call $~lib/typedarray/Uint8ClampedArray#__set - local.get $0 - local.set $8 + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $9 + ) + (func $~lib/typedarray/Uint32Array#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 $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 + call $~stack_check global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 i32.const 0 - call $~lib/typedarray/Uint8ClampedArray#__get + i32.store + local.get $0 + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + local.get $5 + call $~lib/typedarray/Uint32Array#get:length + local.set $6 + local.get $4 i32.const 0 - i32.eq - i32.eqz - if + i32.lt_s + if (result i32) + local.get $6 + local.get $4 + i32.add + local.tee $7 i32.const 0 - i32.const 544 - i32.const 135 - i32.const 3 - call $~lib/builtins/abort - unreachable + local.tee $8 + local.get $7 + local.get $8 + i32.gt_s + select + else + local.get $4 + local.tee $8 + local.get $6 + local.tee $7 + local.get $8 + local.get $7 + i32.lt_s + select end - local.get $0 - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 - i32.const 1 - call $~lib/typedarray/Uint8ClampedArray#__get - i32.const 2 - i32.eq - i32.eqz - if + local.set $4 + local.get $3 + i32.const 0 + i32.lt_s + if (result i32) + local.get $6 + local.get $3 + i32.add + local.tee $7 i32.const 0 - i32.const 544 - i32.const 136 - i32.const 3 - call $~lib/builtins/abort - unreachable + local.tee $8 + local.get $7 + local.get $8 + i32.gt_s + select + else + local.get $3 + local.tee $8 + local.get $6 + local.tee $7 + local.get $8 + local.get $7 + i32.lt_s + select end - local.get $0 - local.set $8 + local.set $3 + local.get $3 + local.tee $7 + local.get $4 + local.tee $8 + local.get $7 + local.get $8 + i32.gt_s + select + local.set $3 global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 9 + call $~lib/rt/itcms/__new + local.tee $7 + i32.store + local.get $5 + i32.load + local.set $8 + local.get $7 local.get $8 - i32.store offset=4 + i32.store + local.get $7 local.get $8 + i32.const 0 + call $~lib/rt/itcms/__link + local.get $7 + local.get $5 + i32.load offset=4 + local.get $4 i32.const 2 - call $~lib/typedarray/Uint8ClampedArray#__get - i32.const 255 - i32.eq - i32.eqz - if + i32.shl + i32.add + i32.store offset=4 + local.get $7 + local.get $3 + local.get $4 + i32.sub + i32.const 2 + i32.shl + i32.store offset=8 + local.get $7 + local.set $9 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $9 + ) + (func $~lib/typedarray/Int64Array#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 $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 + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + local.get $5 + call $~lib/typedarray/Int64Array#get:length + local.set $6 + local.get $4 + i32.const 0 + i32.lt_s + if (result i32) + local.get $6 + local.get $4 + i32.add + local.tee $7 i32.const 0 - i32.const 544 - i32.const 137 - i32.const 3 - call $~lib/builtins/abort - unreachable + local.tee $8 + local.get $7 + local.get $8 + i32.gt_s + select + else + local.get $4 + local.tee $8 + local.get $6 + local.tee $7 + local.get $8 + local.get $7 + i32.lt_s + select + end + local.set $4 + local.get $3 + i32.const 0 + i32.lt_s + if (result i32) + local.get $6 + local.get $3 + i32.add + local.tee $7 + i32.const 0 + local.tee $8 + local.get $7 + local.get $8 + i32.gt_s + select + else + local.get $3 + local.tee $8 + local.get $6 + local.tee $7 + local.get $8 + local.get $7 + i32.lt_s + select end + local.set $3 + local.get $3 + local.tee $7 + local.get $4 + local.tee $8 + local.get $7 + local.get $8 + i32.gt_s + select + local.set $3 global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 5 - call $~lib/typedarray/Int8Array#constructor - local.tee $0 + i32.const 12 + i32.const 10 + call $~lib/rt/itcms/__new + local.tee $7 i32.store - local.get $0 + local.get $5 + i32.load local.set $8 - global.get $~lib/memory/__stack_pointer + local.get $7 local.get $8 - i32.store offset=4 + i32.store + local.get $7 local.get $8 i32.const 0 - i32.const 1 - call $~lib/typedarray/Int8Array#__set - local.get $0 - local.set $8 - 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/Int8Array#__set - local.get $0 - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 - i32.const 2 + call $~lib/rt/itcms/__link + local.get $7 + local.get $5 + i32.load offset=4 + local.get $4 i32.const 3 - call $~lib/typedarray/Int8Array#__set - local.get $0 - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 + i32.shl + i32.add i32.store offset=4 - local.get $8 + local.get $7 + local.get $3 + local.get $4 + i32.sub i32.const 3 - i32.const 4 - call $~lib/typedarray/Int8Array#__set - local.get $0 - local.set $8 + i32.shl + i32.store offset=8 + local.get $7 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 i32.const 4 - i32.const 5 - call $~lib/typedarray/Int8Array#__set - local.get $0 - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 - i32.const 1 - i32.const 1 - i32.const 3 - call $~lib/typedarray/Int8Array#fill - drop - local.get $0 - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 - i32.const 5 - i32.const 0 - i32.const 15 - i32.const 704 - call $~lib/rt/__newArray - local.set $8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $9 + ) + (func $~lib/typedarray/Uint64Array#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 $7 i32) + (local $8 i32) + (local $9 i32) global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=8 - local.get $8 - call $std/typedarray/isInt8ArrayEqual - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 149 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.set $8 + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 - i32.const 0 i32.const 0 - global.get $~lib/builtins/i32.MAX_VALUE - call $~lib/typedarray/Int8Array#fill - drop + i32.store local.get $0 - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 - i32.const 5 + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + local.get $5 + call $~lib/typedarray/Uint64Array#get:length + local.set $6 + local.get $4 i32.const 0 - i32.const 15 - i32.const 784 - call $~lib/rt/__newArray - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=8 - local.get $8 - call $std/typedarray/isInt8ArrayEqual - i32.eqz - if + i32.lt_s + if (result i32) + local.get $6 + local.get $4 + i32.add + local.tee $7 i32.const 0 - i32.const 544 - i32.const 152 - i32.const 3 - call $~lib/builtins/abort - unreachable + local.tee $8 + local.get $7 + local.get $8 + i32.gt_s + select + else + local.get $4 + local.tee $8 + local.get $6 + local.tee $7 + local.get $8 + local.get $7 + i32.lt_s + select end - local.get $0 - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 - i32.const 1 - i32.const 0 - i32.const -3 - call $~lib/typedarray/Int8Array#fill - drop - local.get $0 - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 - i32.const 5 + local.set $4 + local.get $3 i32.const 0 - i32.const 15 - i32.const 816 - call $~lib/rt/__newArray - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=8 - local.get $8 - call $std/typedarray/isInt8ArrayEqual - i32.eqz - if + i32.lt_s + if (result i32) + local.get $6 + local.get $3 + i32.add + local.tee $7 i32.const 0 - i32.const 544 - i32.const 155 - i32.const 3 - call $~lib/builtins/abort - unreachable + local.tee $8 + local.get $7 + local.get $8 + i32.gt_s + select + else + local.get $3 + local.tee $8 + local.get $6 + local.tee $7 + local.get $8 + local.get $7 + i32.lt_s + select end - local.get $0 - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 - i32.const 2 - i32.const -2 - global.get $~lib/builtins/i32.MAX_VALUE - call $~lib/typedarray/Int8Array#fill - drop - local.get $0 - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 + local.set $3 + local.get $3 + local.tee $7 + local.get $4 + local.tee $8 + local.get $7 local.get $8 - i32.const 5 - i32.const 0 - i32.const 15 - i32.const 848 - call $~lib/rt/__newArray - local.set $8 + i32.gt_s + select + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=8 - local.get $8 - call $std/typedarray/isInt8ArrayEqual - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 158 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 + i32.const 12 + i32.const 11 + call $~lib/rt/itcms/__new + local.tee $7 + i32.store + local.get $5 + i32.load local.set $8 - global.get $~lib/memory/__stack_pointer + local.get $7 local.get $8 - i32.store offset=4 + i32.store + local.get $7 local.get $8 i32.const 0 - i32.const 1 - i32.const 0 - call $~lib/typedarray/Int8Array#fill - drop - local.get $0 - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 + call $~lib/rt/itcms/__link + local.get $7 + local.get $5 + i32.load offset=4 + local.get $4 + i32.const 3 + i32.shl + i32.add i32.store offset=4 - local.get $8 - i32.const 5 - i32.const 0 - i32.const 15 - i32.const 880 - call $~lib/rt/__newArray - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $7 + local.get $3 + local.get $4 + i32.sub + i32.const 3 + i32.shl i32.store offset=8 - local.get $8 - call $std/typedarray/isInt8ArrayEqual - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 161 - i32.const 3 - call $~lib/builtins/abort - unreachable - end + local.get $7 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $0 - local.set $8 + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $9 + ) + (func $~lib/typedarray/Float32Array#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 $7 i32) + (local $8 i32) + (local $9 i32) global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 - i32.const 1 i32.const 4 - call $~lib/typedarray/Int8Array#subarray - local.tee $2 - i32.store offset=12 - local.get $2 - local.set $8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 i32.const 0 - i32.const 0 - global.get $~lib/builtins/i32.MAX_VALUE - call $~lib/typedarray/Int8Array#fill - drop - local.get $2 - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 - call $~lib/typedarray/Int8Array#get:length - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 165 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 - call $~lib/arraybuffer/ArrayBufferView#get:byteOffset - i32.const 1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 166 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - i32.load offset=8 - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 167 - i32.const 3 - call $~lib/builtins/abort - unreachable - end + i32.store + local.get $0 + local.set $5 + local.get $1 + local.set $4 local.get $2 - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 - i32.const 3 + local.set $3 + local.get $5 + call $~lib/typedarray/Float32Array#get:length + local.set $6 + local.get $4 i32.const 0 - i32.const 15 - i32.const 912 - call $~lib/rt/__newArray - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=8 - local.get $8 - call $std/typedarray/isInt8ArrayEqual - i32.eqz - if + i32.lt_s + if (result i32) + local.get $6 + local.get $4 + i32.add + local.tee $7 i32.const 0 - i32.const 544 - i32.const 168 - i32.const 3 - call $~lib/builtins/abort - unreachable + local.tee $8 + local.get $7 + local.get $8 + i32.gt_s + select + else + local.get $4 + local.tee $8 + local.get $6 + local.tee $7 + local.get $8 + local.get $7 + i32.lt_s + select end - local.get $0 - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 - i32.const 5 + local.set $4 + local.get $3 i32.const 0 - i32.const 15 - i32.const 944 - call $~lib/rt/__newArray - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=8 - local.get $8 - call $std/typedarray/isInt8ArrayEqual - i32.eqz - if + i32.lt_s + if (result i32) + local.get $6 + local.get $3 + i32.add + local.tee $7 i32.const 0 - i32.const 544 - i32.const 169 - i32.const 3 - call $~lib/builtins/abort - unreachable + local.tee $8 + local.get $7 + local.get $8 + i32.gt_s + select + else + local.get $3 + local.tee $8 + local.get $6 + local.tee $7 + local.get $8 + local.get $7 + i32.lt_s + select end + local.set $3 + local.get $3 + local.tee $7 + local.get $4 + local.tee $8 + local.get $7 + local.get $8 + i32.gt_s + select + local.set $3 global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 5 - call $~lib/typedarray/Int32Array#constructor - local.tee $2 - i32.store offset=12 - local.get $2 + i32.const 12 + i32.const 12 + call $~lib/rt/itcms/__new + local.tee $7 + i32.store + local.get $5 + i32.load local.set $8 - global.get $~lib/memory/__stack_pointer + local.get $7 local.get $8 - i32.store offset=4 + i32.store + local.get $7 local.get $8 i32.const 0 - i32.const 1 - call $~lib/typedarray/Int32Array#__set - local.get $2 - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 - i32.const 1 + call $~lib/rt/itcms/__link + local.get $7 + local.get $5 + i32.load offset=4 + local.get $4 i32.const 2 - call $~lib/typedarray/Int32Array#__set - local.get $2 - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 + i32.shl + i32.add i32.store offset=4 - local.get $8 + local.get $7 + local.get $3 + local.get $4 + i32.sub i32.const 2 - i32.const 3 - call $~lib/typedarray/Int32Array#__set - local.get $2 - local.set $8 + i32.shl + i32.store offset=8 + local.get $7 + local.set $9 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 - local.get $2 - local.set $8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $9 + ) + (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) global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 i32.const 4 - i32.const 5 - call $~lib/typedarray/Int32Array#__set - local.get $2 - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 - i32.const 1 - i32.const 1 - i32.const 3 - call $~lib/typedarray/Int32Array#fill - drop - local.get $2 - local.set $8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 - i32.const 5 + i32.const 0 + i32.store + local.get $1 i32.const 2 - i32.const 16 - i32.const 976 - call $~lib/rt/__newArray - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=8 - local.get $8 - call $std/typedarray/isInt32ArrayEqual - i32.eqz + i32.lt_s + if (result i32) + i32.const 1 + else + local.get $1 + i32.const 36 + i32.gt_s + end if - i32.const 0 - i32.const 544 - i32.const 181 - i32.const 3 + i32.const 6080 + i32.const 6208 + i32.const 373 + i32.const 5 call $~lib/builtins/abort unreachable end - local.get $2 - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 - i32.const 0 - i32.const 0 - global.get $~lib/builtins/i32.MAX_VALUE - call $~lib/typedarray/Int32Array#fill - drop - local.get $2 - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 - i32.const 5 - i32.const 2 - i32.const 16 - i32.const 1024 - call $~lib/rt/__newArray - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=8 - local.get $8 - call $std/typedarray/isInt32ArrayEqual + local.get $0 i32.eqz if - i32.const 0 - i32.const 544 - i32.const 184 - i32.const 3 - call $~lib/builtins/abort - unreachable + i32.const 6272 + local.set $8 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $8 + return end + local.get $0 + i32.const 31 + i32.shr_u + local.set $2 local.get $2 - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 - i32.const 1 - i32.const 0 - i32.const -3 - call $~lib/typedarray/Int32Array#fill - drop - local.get $2 - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 - i32.const 5 - i32.const 2 - i32.const 16 - i32.const 1072 - call $~lib/rt/__newArray - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=8 - local.get $8 - call $std/typedarray/isInt32ArrayEqual - i32.eqz if i32.const 0 - i32.const 544 - i32.const 187 - i32.const 3 - call $~lib/builtins/abort - unreachable + local.get $0 + i32.sub + local.set $0 end - local.get $2 - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 - i32.const 2 - i32.const -2 - global.get $~lib/builtins/i32.MAX_VALUE - call $~lib/typedarray/Int32Array#fill - drop - local.get $2 - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 - i32.const 5 - i32.const 2 - i32.const 16 - i32.const 1120 - call $~lib/rt/__newArray - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=8 - local.get $8 - call $std/typedarray/isInt32ArrayEqual - i32.eqz + local.get $1 + i32.const 10 + i32.eq if + local.get $0 + call $~lib/util/number/decimalCount32 + local.get $2 + i32.add + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $3 + i32.store + local.get $3 + local.set $7 + local.get $0 + local.set $6 + local.get $4 + local.set $5 i32.const 0 - i32.const 544 - i32.const 190 - i32.const 3 - call $~lib/builtins/abort - unreachable + i32.const 1 + i32.ge_s + drop + local.get $7 + local.get $6 + local.get $5 + call $~lib/util/number/utoa32_dec_lut + else + local.get $1 + i32.const 16 + i32.eq + if + i32.const 31 + local.get $0 + i32.clz + i32.sub + i32.const 2 + i32.shr_s + i32.const 1 + i32.add + local.get $2 + i32.add + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $3 + i32.store + local.get $3 + local.set $7 + local.get $0 + local.set $6 + local.get $4 + local.set $5 + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $7 + local.get $6 + i64.extend_i32_u + local.get $5 + call $~lib/util/number/utoa_hex_lut + else + local.get $0 + local.set $4 + local.get $4 + i64.extend_i32_u + local.get $1 + call $~lib/util/number/ulog_base + local.get $2 + i32.add + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $3 + i32.store + local.get $3 + local.get $4 + i64.extend_i32_u + local.get $7 + local.get $1 + call $~lib/util/number/utoa64_any_core + end end local.get $2 - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 - i32.const 0 - i32.const 1 - i32.const 0 - call $~lib/typedarray/Int32Array#fill - drop - local.get $2 - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 - i32.const 5 - i32.const 2 - i32.const 16 - i32.const 1168 - call $~lib/rt/__newArray - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=8 - local.get $8 - call $std/typedarray/isInt32ArrayEqual - i32.eqz if - i32.const 0 - i32.const 544 - i32.const 193 - i32.const 3 - call $~lib/builtins/abort - unreachable + local.get $3 + i32.const 45 + i32.store16 end - global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $3 local.set $8 global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer local.get $8 - i32.store offset=4 - local.get $8 - i32.const 1 + ) + (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) + (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 4 - call $~lib/typedarray/Int32Array#subarray - local.tee $1 - i32.store offset=16 - local.get $1 - local.set $8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 - i32.const 0 i32.const 0 - global.get $~lib/builtins/i32.MAX_VALUE - call $~lib/typedarray/Int32Array#fill - drop - local.get $1 - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 - call $~lib/typedarray/Int32Array#get:length - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 197 - i32.const 3 - call $~lib/builtins/abort - unreachable - end + i32.store + local.get $0 + call $~lib/string/String#get:length + local.set $3 local.get $1 + local.tee $4 + i32.const 0 + local.tee $5 + local.get $4 + local.get $5 + i32.gt_s + select + local.tee $5 + local.get $3 + local.tee $4 + local.get $5 + local.get $4 + i32.lt_s + select + local.set $6 + local.get $2 + local.tee $4 + i32.const 0 + local.tee $5 + local.get $4 + local.get $5 + i32.gt_s + select + local.tee $5 + local.get $3 + local.tee $4 + local.get $5 + local.get $4 + i32.lt_s + select + local.set $7 + local.get $6 + local.tee $4 + local.get $7 + local.tee $5 + local.get $4 + local.get $5 + i32.lt_s + select + i32.const 1 + i32.shl local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 - call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + local.get $6 + local.tee $5 + local.get $7 + local.tee $4 + local.get $5 + local.get $4 + i32.gt_s + select i32.const 1 - i32.const 4 - i32.mul - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 198 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i32.load offset=8 - i32.const 3 - i32.const 4 - i32.mul - i32.eq + i32.shl + local.set $9 + local.get $9 + local.get $8 + i32.sub + local.set $10 + local.get $10 i32.eqz if - i32.const 0 - i32.const 544 - i32.const 199 - i32.const 3 - call $~lib/builtins/abort - unreachable + i32.const 6048 + local.set $12 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $12 + return end - local.get $1 - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 - i32.const 3 - i32.const 2 - i32.const 16 - i32.const 1216 - call $~lib/rt/__newArray - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=8 local.get $8 - call $std/typedarray/isInt32ArrayEqual i32.eqz - if + if (result i32) + local.get $9 + local.get $3 + i32.const 1 + i32.shl + i32.eq + else i32.const 0 - i32.const 544 - i32.const 200 - i32.const 3 - call $~lib/builtins/abort - unreachable end - local.get $2 - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 - i32.const 5 - i32.const 2 - i32.const 16 - i32.const 1248 - call $~lib/rt/__newArray - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=8 - local.get $8 - call $std/typedarray/isInt32ArrayEqual - i32.eqz if - i32.const 0 - i32.const 544 - i32.const 201 - i32.const 3 - call $~lib/builtins/abort - unreachable + local.get $0 + local.set $12 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $12 + return end global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 6 - call $~lib/typedarray/Int8Array#constructor - local.tee $1 - i32.store offset=16 - local.get $1 - local.set $8 - 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 - local.get $1 - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 + local.get $10 i32.const 1 - i32.const 2 - call $~lib/typedarray/Int8Array#__set - local.get $1 - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 + call $~lib/rt/itcms/__new + local.tee $11 + i32.store + local.get $11 + local.get $0 local.get $8 - i32.const 2 - i32.const 3 - call $~lib/typedarray/Int8Array#__set - local.get $1 - local.set $8 + i32.add + local.get $10 + call $~lib/memory/memory.copy + local.get $11 + local.set $12 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 - local.get $1 - local.set $8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $12 + ) + (func $~lib/util/string/joinIntegerArray (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) + (local $11 i32) global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 i32.const 4 - i32.const 5 - call $~lib/typedarray/Int8Array#__set - local.get $1 - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 - i32.const 5 - i32.const 6 - call $~lib/typedarray/Int8Array#__set + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store local.get $1 - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 i32.const 1 - i32.const 6 - call $~lib/typedarray/Int8Array#subarray - local.tee $2 - i32.store offset=12 - local.get $2 - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 + i32.sub + local.set $3 + local.get $3 i32.const 0 - call $~lib/typedarray/Int8Array#__get - i32.const 2 - i32.eq - i32.eqz + i32.lt_s if - i32.const 0 - i32.const 544 - i32.const 222 - i32.const 3 - call $~lib/builtins/abort - unreachable + i32.const 6048 + local.set $11 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $11 + return end - local.get $2 - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 - call $~lib/typedarray/Int8Array#get:length - i32.const 5 - i32.eq + local.get $3 i32.eqz if - i32.const 0 - i32.const 544 - i32.const 223 - i32.const 3 - call $~lib/builtins/abort - unreachable + local.get $0 + i32.load8_s + local.set $4 + i32.const 1 + drop + i32.const 1 + i32.const 4 + i32.le_u + drop + local.get $4 + i32.const 10 + call $~lib/util/number/itoa32 + local.set $11 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $11 + return end local.get $2 - local.set $8 + call $~lib/string/String#get:length + local.set $5 + i32.const 11 + local.get $5 + i32.add + local.get $3 + i32.mul + i32.const 11 + i32.add + local.set $6 global.get $~lib/memory/__stack_pointer + local.get $6 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $7 + i32.store + i32.const 0 + local.set $8 + i32.const 0 + local.set $4 + loop $for-loop|0 + local.get $4 + local.get $3 + i32.lt_s + local.set $10 + local.get $10 + if + local.get $0 + local.get $4 + i32.const 0 + i32.shl + i32.add + i32.load8_s + local.set $9 + local.get $8 + local.get $7 + local.get $8 + i32.const 1 + i32.shl + i32.add + local.get $9 + call $~lib/util/number/itoa_buffered + i32.add + local.set $8 + local.get $5 + if + local.get $7 + local.get $8 + i32.const 1 + i32.shl + i32.add + local.get $2 + local.get $5 + i32.const 1 + i32.shl + call $~lib/memory/memory.copy + local.get $8 + local.get $5 + i32.add + local.set $8 + end + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $for-loop|0 + end + end + local.get $0 + local.get $3 + i32.const 0 + i32.shl + i32.add + i32.load8_s + local.set $9 local.get $8 - i32.store offset=4 + local.get $7 local.get $8 - call $~lib/arraybuffer/ArrayBufferView#get:byteOffset i32.const 1 - i32.eq - i32.eqz + i32.shl + i32.add + local.get $9 + call $~lib/util/number/itoa_buffered + i32.add + local.set $8 + local.get $6 + local.get $8 + i32.gt_s if + local.get $7 i32.const 0 - i32.const 544 - i32.const 224 - i32.const 3 - call $~lib/builtins/abort - unreachable + local.get $8 + call $~lib/string/String#substring + local.set $11 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $11 + return + end + local.get $7 + local.set $11 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $11 + ) + (func $~lib/util/number/utoa32 (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 + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $1 + i32.const 2 + i32.lt_s + if (result i32) + i32.const 1 + else + local.get $1 + i32.const 36 + i32.gt_s end - local.get $2 - i32.load offset=8 - i32.const 5 - i32.eq - i32.eqz if - i32.const 0 - i32.const 544 - i32.const 225 - i32.const 3 + i32.const 6080 + i32.const 6208 + i32.const 350 + i32.const 5 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.get $2 - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 - i32.const 1 - i32.const 5 - call $~lib/typedarray/Int8Array#subarray - local.tee $0 - i32.store local.get $0 - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 - i32.const 0 - call $~lib/typedarray/Int8Array#__get - i32.const 3 - i32.eq i32.eqz if + i32.const 6272 + local.set $7 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $7 + return + end + local.get $1 + i32.const 10 + i32.eq + if + local.get $0 + call $~lib/util/number/decimalCount32 + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $2 + i32.store + local.get $2 + local.set $6 + local.get $0 + local.set $5 + local.get $3 + local.set $4 i32.const 0 - i32.const 544 - i32.const 228 - i32.const 3 - call $~lib/builtins/abort - unreachable + i32.const 1 + i32.ge_s + drop + local.get $6 + local.get $5 + local.get $4 + call $~lib/util/number/utoa32_dec_lut + else + local.get $1 + i32.const 16 + i32.eq + if + i32.const 31 + local.get $0 + i32.clz + i32.sub + i32.const 2 + i32.shr_s + i32.const 1 + i32.add + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $2 + i32.store + local.get $2 + local.set $6 + local.get $0 + local.set $5 + local.get $3 + local.set $4 + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $6 + local.get $5 + i64.extend_i32_u + local.get $4 + call $~lib/util/number/utoa_hex_lut + else + local.get $0 + i64.extend_i32_u + local.get $1 + call $~lib/util/number/ulog_base + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $2 + i32.store + local.get $2 + local.get $0 + i64.extend_i32_u + local.get $3 + local.get $1 + call $~lib/util/number/utoa64_any_core + end end - local.get $0 - local.set $8 + local.get $2 + local.set $7 global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 - call $~lib/typedarray/Int8Array#get:length i32.const 4 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 229 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.set $8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $7 + ) + (func $~lib/util/string/joinIntegerArray (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) + (local $11 i32) global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 - call $~lib/arraybuffer/ArrayBufferView#get:byteOffset - i32.const 2 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 230 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load offset=8 i32.const 4 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 231 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - local.set $8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 + i32.const 0 + i32.store + local.get $1 i32.const 1 - i32.const 4 - call $~lib/typedarray/Int8Array#subarray - local.tee $3 - i32.store offset=20 + i32.sub + local.set $3 local.get $3 - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 i32.const 0 - call $~lib/typedarray/Int8Array#__get - i32.const 4 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 234 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $3 - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 - call $~lib/typedarray/Int8Array#get:length - i32.const 3 - i32.eq - i32.eqz + i32.lt_s if - i32.const 0 - i32.const 544 - i32.const 235 - i32.const 3 - call $~lib/builtins/abort - unreachable + i32.const 6048 + local.set $11 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $11 + return end local.get $3 - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 - call $~lib/arraybuffer/ArrayBufferView#get:byteOffset - i32.const 3 - i32.eq i32.eqz if + local.get $0 + i32.load8_u + local.set $4 i32.const 0 - i32.const 544 - i32.const 236 - i32.const 3 - call $~lib/builtins/abort - unreachable + drop + i32.const 1 + i32.const 4 + i32.le_u + drop + local.get $4 + i32.const 10 + call $~lib/util/number/utoa32 + local.set $11 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $11 + return end + local.get $2 + call $~lib/string/String#get:length + local.set $5 + i32.const 10 + local.get $5 + i32.add local.get $3 - i32.load offset=8 - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 237 - i32.const 3 - call $~lib/builtins/abort - unreachable - end + i32.mul + i32.const 10 + i32.add + local.set $6 global.get $~lib/memory/__stack_pointer + local.get $6 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $7 + i32.store i32.const 0 - i32.const 5 - call $~lib/typedarray/Int32Array#constructor - local.tee $3 - i32.store offset=20 - local.get $3 local.set $8 - 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 + local.set $4 + loop $for-loop|0 + local.get $4 + local.get $3 + i32.lt_s + local.set $10 + local.get $10 + if + local.get $0 + local.get $4 + i32.const 0 + i32.shl + i32.add + i32.load8_u + local.set $9 + local.get $8 + local.get $7 + local.get $8 + i32.const 1 + i32.shl + i32.add + local.get $9 + call $~lib/util/number/itoa_buffered + i32.add + local.set $8 + local.get $5 + if + local.get $7 + local.get $8 + i32.const 1 + i32.shl + i32.add + local.get $2 + local.get $5 + i32.const 1 + i32.shl + call $~lib/memory/memory.copy + local.get $8 + local.get $5 + i32.add + local.set $8 + end + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $for-loop|0 + end + end + local.get $0 local.get $3 - local.set $8 - global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.shl + i32.add + i32.load8_u + local.set $9 local.get $8 - i32.store offset=4 + local.get $7 local.get $8 i32.const 1 - i32.const 2 - call $~lib/typedarray/Int32Array#__set - local.get $3 + i32.shl + i32.add + local.get $9 + call $~lib/util/number/itoa_buffered + i32.add local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 + local.get $6 local.get $8 - i32.const 2 - i32.const 3 - call $~lib/typedarray/Int32Array#__set - local.get $3 - local.set $8 + i32.gt_s + if + local.get $7 + i32.const 0 + local.get $8 + call $~lib/string/String#substring + local.set $11 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $11 + return + end + local.get $7 + local.set $11 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 - local.get $3 - local.set $8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $11 + ) + (func $~lib/util/string/joinIntegerArray (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) + (local $11 i32) global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 i32.const 4 - i32.const 5 - call $~lib/typedarray/Int32Array#__set - global.get $~lib/memory/__stack_pointer - local.get $3 - local.set $8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 i32.const 0 - global.get $~lib/builtins/i32.MAX_VALUE - call $~lib/typedarray/Int32Array#slice - local.tee $0 i32.store + local.get $1 + i32.const 1 + i32.sub + local.set $3 local.get $3 - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=24 - local.get $8 i32.const 0 - i32.const 3 - global.get $~lib/builtins/i32.MAX_VALUE - call $~lib/typedarray/Int32Array#copyWithin - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 - i32.const 5 - i32.const 2 - i32.const 16 - i32.const 1296 - call $~lib/rt/__newArray - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=8 - local.get $8 - call $std/typedarray/isInt32ArrayEqual + i32.lt_s + if + i32.const 6048 + local.set $11 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $11 + return + end + local.get $3 i32.eqz if - i32.const 0 - i32.const 544 - i32.const 248 - i32.const 3 - call $~lib/builtins/abort - unreachable + local.get $0 + i32.load16_s + local.set $4 + i32.const 1 + drop + i32.const 2 + i32.const 4 + i32.le_u + drop + local.get $4 + i32.const 10 + call $~lib/util/number/itoa32 + local.set $11 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $11 + return end - global.get $~lib/memory/__stack_pointer - local.get $0 - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 - i32.const 0 - global.get $~lib/builtins/i32.MAX_VALUE - call $~lib/typedarray/Int32Array#slice - local.tee $3 - i32.store offset=20 + local.get $2 + call $~lib/string/String#get:length + local.set $5 + i32.const 11 + local.get $5 + i32.add local.get $3 - local.set $8 + i32.mul + i32.const 11 + i32.add + local.set $6 global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=24 - local.get $8 + local.get $6 i32.const 1 - i32.const 3 - global.get $~lib/builtins/i32.MAX_VALUE - call $~lib/typedarray/Int32Array#copyWithin - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 - i32.const 5 - i32.const 2 - i32.const 16 - i32.const 1344 - call $~lib/rt/__newArray + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $7 + i32.store + i32.const 0 local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=8 - local.get $8 - call $std/typedarray/isInt32ArrayEqual - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 250 - i32.const 3 - call $~lib/builtins/abort - unreachable + i32.const 0 + local.set $4 + loop $for-loop|0 + local.get $4 + local.get $3 + i32.lt_s + local.set $10 + local.get $10 + if + local.get $0 + local.get $4 + i32.const 1 + i32.shl + i32.add + i32.load16_s + local.set $9 + local.get $8 + local.get $7 + local.get $8 + i32.const 1 + i32.shl + i32.add + local.get $9 + call $~lib/util/number/itoa_buffered + i32.add + local.set $8 + local.get $5 + if + local.get $7 + local.get $8 + i32.const 1 + i32.shl + i32.add + local.get $2 + local.get $5 + i32.const 1 + i32.shl + call $~lib/memory/memory.copy + local.get $8 + local.get $5 + i32.add + local.set $8 + end + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $for-loop|0 + end end - global.get $~lib/memory/__stack_pointer local.get $0 - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 - i32.const 0 - global.get $~lib/builtins/i32.MAX_VALUE - call $~lib/typedarray/Int32Array#slice - local.tee $3 - i32.store offset=20 local.get $3 - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=24 - local.get $8 i32.const 1 - i32.const 2 - global.get $~lib/builtins/i32.MAX_VALUE - call $~lib/typedarray/Int32Array#copyWithin - local.set $8 - global.get $~lib/memory/__stack_pointer + i32.shl + i32.add + i32.load16_s + local.set $9 local.get $8 - i32.store offset=4 + local.get $7 local.get $8 - i32.const 5 - i32.const 2 - i32.const 16 - i32.const 1392 - call $~lib/rt/__newArray + i32.const 1 + i32.shl + i32.add + local.get $9 + call $~lib/util/number/itoa_buffered + i32.add local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=8 + local.get $6 local.get $8 - call $std/typedarray/isInt32ArrayEqual - i32.eqz + i32.gt_s if + local.get $7 i32.const 0 - i32.const 544 - i32.const 252 - i32.const 3 - call $~lib/builtins/abort - unreachable + local.get $8 + call $~lib/string/String#substring + local.set $11 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $11 + return end + local.get $7 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $0 - local.set $8 + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $11 + ) + (func $~lib/util/string/joinIntegerArray (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) + (local $11 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 i32.const 0 - global.get $~lib/builtins/i32.MAX_VALUE - call $~lib/typedarray/Int32Array#slice - local.tee $3 - i32.store offset=20 + i32.store + local.get $1 + i32.const 1 + i32.sub + local.set $3 local.get $3 - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=24 - local.get $8 - i32.const 2 - i32.const 2 - global.get $~lib/builtins/i32.MAX_VALUE - call $~lib/typedarray/Int32Array#copyWithin - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 - i32.const 5 - i32.const 2 - i32.const 16 - i32.const 1440 - call $~lib/rt/__newArray - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=8 - local.get $8 - call $std/typedarray/isInt32ArrayEqual - i32.eqz + i32.const 0 + i32.lt_s if - i32.const 0 - i32.const 544 - i32.const 254 - i32.const 3 - call $~lib/builtins/abort - unreachable + i32.const 6048 + local.set $11 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $11 + return end - global.get $~lib/memory/__stack_pointer - local.get $0 - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 - i32.const 0 - global.get $~lib/builtins/i32.MAX_VALUE - call $~lib/typedarray/Int32Array#slice - local.tee $3 - i32.store offset=20 local.get $3 - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=24 - local.get $8 - i32.const 0 - i32.const 3 - i32.const 4 - call $~lib/typedarray/Int32Array#copyWithin - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 - i32.const 5 - i32.const 2 - i32.const 16 - i32.const 1488 - call $~lib/rt/__newArray - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=8 - local.get $8 - call $std/typedarray/isInt32ArrayEqual i32.eqz if + local.get $0 + i32.load16_u + local.set $4 i32.const 0 - i32.const 544 - i32.const 256 - i32.const 3 - call $~lib/builtins/abort - unreachable + drop + i32.const 2 + i32.const 4 + i32.le_u + drop + local.get $4 + i32.const 10 + call $~lib/util/number/utoa32 + local.set $11 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $11 + return end + local.get $2 + call $~lib/string/String#get:length + local.set $5 + i32.const 10 + local.get $5 + i32.add + local.get $3 + i32.mul + i32.const 10 + i32.add + local.set $6 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $6 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $7 + i32.store + i32.const 0 local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 i32.const 0 - global.get $~lib/builtins/i32.MAX_VALUE - call $~lib/typedarray/Int32Array#slice - local.tee $3 - i32.store offset=20 + local.set $4 + loop $for-loop|0 + local.get $4 + local.get $3 + i32.lt_s + local.set $10 + local.get $10 + if + local.get $0 + local.get $4 + i32.const 1 + i32.shl + i32.add + i32.load16_u + local.set $9 + local.get $8 + local.get $7 + local.get $8 + i32.const 1 + i32.shl + i32.add + local.get $9 + call $~lib/util/number/itoa_buffered + i32.add + local.set $8 + local.get $5 + if + local.get $7 + local.get $8 + i32.const 1 + i32.shl + i32.add + local.get $2 + local.get $5 + i32.const 1 + i32.shl + call $~lib/memory/memory.copy + local.get $8 + local.get $5 + i32.add + local.set $8 + end + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $for-loop|0 + end + end + local.get $0 local.get $3 - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=24 - local.get $8 i32.const 1 - i32.const 3 - i32.const 4 - call $~lib/typedarray/Int32Array#copyWithin - local.set $8 - global.get $~lib/memory/__stack_pointer + i32.shl + i32.add + i32.load16_u + local.set $9 local.get $8 - i32.store offset=4 + local.get $7 local.get $8 - i32.const 5 - i32.const 2 - i32.const 16 - i32.const 1536 - call $~lib/rt/__newArray + i32.const 1 + i32.shl + i32.add + local.get $9 + call $~lib/util/number/itoa_buffered + i32.add local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=8 + local.get $6 local.get $8 - call $std/typedarray/isInt32ArrayEqual - i32.eqz + i32.gt_s if + local.get $7 i32.const 0 - i32.const 544 - i32.const 258 - i32.const 3 - call $~lib/builtins/abort - unreachable + local.get $8 + call $~lib/string/String#substring + local.set $11 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $11 + return end + local.get $7 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $0 - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 - i32.const 0 - global.get $~lib/builtins/i32.MAX_VALUE - call $~lib/typedarray/Int32Array#slice - local.tee $3 - i32.store offset=20 - local.get $3 - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=24 - local.get $8 - i32.const 1 - i32.const 2 i32.const 4 - call $~lib/typedarray/Int32Array#copyWithin - local.set $8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $11 + ) + (func $~lib/util/string/joinIntegerArray (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) + (local $11 i32) global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 - i32.const 5 - i32.const 2 - i32.const 16 - i32.const 1584 - call $~lib/rt/__newArray - local.set $8 + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=8 - local.get $8 - call $std/typedarray/isInt32ArrayEqual + i32.const 0 + i32.store + local.get $1 + i32.const 1 + i32.sub + local.set $3 + local.get $3 + i32.const 0 + i32.lt_s + if + i32.const 6048 + local.set $11 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $11 + return + end + local.get $3 i32.eqz if - i32.const 0 - i32.const 544 - i32.const 260 - i32.const 3 - call $~lib/builtins/abort - unreachable + local.get $0 + i32.load + local.set $4 + i32.const 1 + drop + i32.const 4 + i32.const 4 + i32.le_u + drop + local.get $4 + i32.const 10 + call $~lib/util/number/itoa32 + local.set $11 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $11 + return end - global.get $~lib/memory/__stack_pointer - local.get $0 - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 - i32.const 0 - global.get $~lib/builtins/i32.MAX_VALUE - call $~lib/typedarray/Int32Array#slice - local.tee $3 - i32.store offset=20 + local.get $2 + call $~lib/string/String#get:length + local.set $5 + i32.const 11 + local.get $5 + i32.add local.get $3 - local.set $8 + i32.mul + i32.const 11 + i32.add + local.set $6 global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=24 - local.get $8 + local.get $6 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $7 + i32.store i32.const 0 - i32.const -2 - global.get $~lib/builtins/i32.MAX_VALUE - call $~lib/typedarray/Int32Array#copyWithin local.set $8 - global.get $~lib/memory/__stack_pointer + i32.const 0 + local.set $4 + loop $for-loop|0 + local.get $4 + local.get $3 + i32.lt_s + local.set $10 + local.get $10 + if + local.get $0 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $9 + local.get $8 + local.get $7 + local.get $8 + i32.const 1 + i32.shl + i32.add + local.get $9 + call $~lib/util/number/itoa_buffered + i32.add + local.set $8 + local.get $5 + if + local.get $7 + local.get $8 + i32.const 1 + i32.shl + i32.add + local.get $2 + local.get $5 + i32.const 1 + i32.shl + call $~lib/memory/memory.copy + local.get $8 + local.get $5 + i32.add + local.set $8 + end + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $for-loop|0 + end + end + local.get $0 + local.get $3 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $9 local.get $8 - i32.store offset=4 + local.get $7 local.get $8 - i32.const 5 - i32.const 2 - i32.const 16 - i32.const 1632 - call $~lib/rt/__newArray + i32.const 1 + i32.shl + i32.add + local.get $9 + call $~lib/util/number/itoa_buffered + i32.add local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=8 + local.get $6 local.get $8 - call $std/typedarray/isInt32ArrayEqual - i32.eqz + i32.gt_s if + local.get $7 i32.const 0 - i32.const 544 - i32.const 262 - i32.const 3 - call $~lib/builtins/abort - unreachable + local.get $8 + call $~lib/string/String#substring + local.set $11 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $11 + return end + local.get $7 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $0 - local.set $8 + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $11 + ) + (func $~lib/util/string/joinIntegerArray (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) + (local $11 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 i32.const 0 - global.get $~lib/builtins/i32.MAX_VALUE - call $~lib/typedarray/Int32Array#slice - local.tee $3 - i32.store offset=20 + i32.store + local.get $1 + i32.const 1 + i32.sub + local.set $3 local.get $3 - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=24 - local.get $8 i32.const 0 - i32.const -2 - i32.const -1 - call $~lib/typedarray/Int32Array#copyWithin - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 - i32.const 5 - i32.const 2 - i32.const 16 - i32.const 1680 - call $~lib/rt/__newArray - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=8 - local.get $8 - call $std/typedarray/isInt32ArrayEqual + i32.lt_s + if + i32.const 6048 + local.set $11 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $11 + return + end + local.get $3 i32.eqz if + local.get $0 + i32.load + local.set $4 i32.const 0 - i32.const 544 - i32.const 264 - i32.const 3 - call $~lib/builtins/abort - unreachable + drop + i32.const 4 + i32.const 4 + i32.le_u + drop + local.get $4 + i32.const 10 + call $~lib/util/number/utoa32 + local.set $11 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $11 + return end + local.get $2 + call $~lib/string/String#get:length + local.set $5 + i32.const 10 + local.get $5 + i32.add + local.get $3 + i32.mul + i32.const 10 + i32.add + local.set $6 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $6 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $7 + i32.store + i32.const 0 local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 i32.const 0 - global.get $~lib/builtins/i32.MAX_VALUE - call $~lib/typedarray/Int32Array#slice - local.tee $3 - i32.store offset=20 + local.set $4 + loop $for-loop|0 + local.get $4 + local.get $3 + i32.lt_s + local.set $10 + local.get $10 + if + local.get $0 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $9 + local.get $8 + local.get $7 + local.get $8 + i32.const 1 + i32.shl + i32.add + local.get $9 + call $~lib/util/number/itoa_buffered + i32.add + local.set $8 + local.get $5 + if + local.get $7 + local.get $8 + i32.const 1 + i32.shl + i32.add + local.get $2 + local.get $5 + i32.const 1 + i32.shl + call $~lib/memory/memory.copy + local.get $8 + local.get $5 + i32.add + local.set $8 + end + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $for-loop|0 + end + end + local.get $0 local.get $3 - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=24 - local.get $8 - i32.const -4 - i32.const -3 - i32.const -2 - call $~lib/typedarray/Int32Array#copyWithin - local.set $8 - global.get $~lib/memory/__stack_pointer + i32.const 2 + i32.shl + i32.add + i32.load + local.set $9 local.get $8 - i32.store offset=4 + local.get $7 local.get $8 - i32.const 5 - i32.const 2 - i32.const 16 - i32.const 1728 - call $~lib/rt/__newArray + i32.const 1 + i32.shl + i32.add + local.get $9 + call $~lib/util/number/itoa_buffered + i32.add local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=8 + local.get $6 local.get $8 - call $std/typedarray/isInt32ArrayEqual - i32.eqz + i32.gt_s if + local.get $7 i32.const 0 - i32.const 544 - i32.const 266 - i32.const 3 - call $~lib/builtins/abort - unreachable + local.get $8 + call $~lib/string/String#substring + local.set $11 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $11 + return end + local.get $7 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $0 - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 - i32.const 0 - global.get $~lib/builtins/i32.MAX_VALUE - call $~lib/typedarray/Int32Array#slice - local.tee $3 - i32.store offset=20 - local.get $3 - local.set $8 + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $11 + ) + (func $~lib/util/number/itoa64 (param $0 i64) (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) + (local $10 i32) global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=24 - local.get $8 - i32.const -4 - i32.const -3 - i32.const -1 - call $~lib/typedarray/Int32Array#copyWithin - local.set $8 + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 - i32.const 5 + i32.const 0 + i32.store + local.get $1 i32.const 2 - i32.const 16 - i32.const 1776 - call $~lib/rt/__newArray - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=8 - local.get $8 - call $std/typedarray/isInt32ArrayEqual - i32.eqz + i32.lt_s + if (result i32) + i32.const 1 + else + local.get $1 + i32.const 36 + i32.gt_s + end if - i32.const 0 - i32.const 544 - i32.const 268 - i32.const 3 + i32.const 6080 + i32.const 6208 + i32.const 431 + i32.const 5 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer local.get $0 - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 - i32.const 0 - global.get $~lib/builtins/i32.MAX_VALUE - call $~lib/typedarray/Int32Array#slice - local.tee $3 - i32.store offset=20 + i64.const 0 + i64.ne + i32.eqz + if + i32.const 6272 + 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 $0 + i64.const 63 + i64.shr_u + i32.wrap_i64 + local.set $2 + local.get $2 + if + i64.const 0 + local.get $0 + i64.sub + local.set $0 + end + local.get $1 + i32.const 10 + i32.eq + if + local.get $0 + global.get $~lib/builtins/u32.MAX_VALUE + i64.extend_i32_u + i64.le_u + if + local.get $0 + i32.wrap_i64 + local.set $4 + local.get $4 + call $~lib/util/number/decimalCount32 + local.get $2 + i32.add + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $3 + i32.store + local.get $3 + local.set $8 + local.get $4 + local.set $7 + local.get $5 + local.set $6 + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $8 + local.get $7 + local.get $6 + call $~lib/util/number/utoa32_dec_lut + else + local.get $0 + call $~lib/util/number/decimalCount64High + local.get $2 + i32.add + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $3 + i32.store + local.get $3 + local.set $7 + local.get $0 + local.set $9 + local.get $5 + local.set $6 + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $7 + local.get $9 + local.get $6 + call $~lib/util/number/utoa64_dec_lut + end + else + local.get $1 + i32.const 16 + i32.eq + if + 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.get $2 + i32.add + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $3 + i32.store + local.get $3 + local.set $4 + local.get $0 + local.set $9 + local.get $5 + local.set $8 + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $4 + local.get $9 + local.get $8 + call $~lib/util/number/utoa_hex_lut + else + local.get $0 + local.get $1 + call $~lib/util/number/ulog_base + local.get $2 + i32.add + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $3 + i32.store + local.get $3 + local.get $0 + local.get $5 + local.get $1 + call $~lib/util/number/utoa64_any_core + end + end + local.get $2 + if + local.get $3 + i32.const 45 + i32.store16 + end local.get $3 - local.set $8 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=24 - local.get $8 - i32.const -4 - i32.const -3 - global.get $~lib/builtins/i32.MAX_VALUE - call $~lib/typedarray/Int32Array#copyWithin - local.set $8 + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $10 + ) + (func $~lib/util/string/joinIntegerArray (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i64) + (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 - local.get $8 - i32.store offset=4 - local.get $8 - i32.const 5 - i32.const 2 - i32.const 16 - i32.const 1824 - call $~lib/rt/__newArray - local.set $8 + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=8 - local.get $8 - call $std/typedarray/isInt32ArrayEqual + i32.const 0 + i32.store + local.get $1 + i32.const 1 + i32.sub + local.set $3 + local.get $3 + i32.const 0 + i32.lt_s + if + i32.const 6048 + local.set $12 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $12 + return + end + local.get $3 i32.eqz if - i32.const 0 - i32.const 544 - i32.const 270 - i32.const 3 - call $~lib/builtins/abort - unreachable + local.get $0 + i64.load + local.set $4 + i32.const 1 + drop + i32.const 8 + i32.const 4 + i32.le_u + drop + local.get $4 + i32.wrap_i64 + i64.extend_i32_s + i32.const 10 + call $~lib/util/number/itoa64 + local.set $12 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $12 + return end + local.get $2 + call $~lib/string/String#get:length + local.set $5 + i32.const 21 + local.get $5 + i32.add + local.get $3 + i32.mul + i32.const 21 + i32.add + local.set $6 global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 5 - call $~lib/typedarray/Int32Array#constructor - local.tee $0 - i32.store - local.get $0 - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 - i32.const 0 + local.get $6 i32.const 1 - call $~lib/typedarray/Int32Array#__set - local.get $0 - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 + i32.shl i32.const 1 - i32.const 2 - call $~lib/typedarray/Int32Array#__set - local.get $0 + call $~lib/rt/itcms/__new + local.tee $7 + i32.store + i32.const 0 local.set $8 - 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 + i32.const 0 + local.set $10 + loop $for-loop|0 + local.get $10 + local.get $3 + i32.lt_s + local.set $11 + local.get $11 + if + local.get $0 + local.get $10 + i32.const 3 + i32.shl + i32.add + i64.load + local.set $9 + local.get $8 + local.get $7 + local.get $8 + i32.const 1 + i32.shl + i32.add + local.get $9 + call $~lib/util/number/itoa_buffered + i32.add + local.set $8 + local.get $5 + if + local.get $7 + local.get $8 + i32.const 1 + i32.shl + i32.add + local.get $2 + local.get $5 + i32.const 1 + i32.shl + call $~lib/memory/memory.copy + local.get $8 + local.get $5 + i32.add + local.set $8 + end + local.get $10 + i32.const 1 + i32.add + local.set $10 + br $for-loop|0 + end + end local.get $0 - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 + local.get $3 i32.const 3 - i32.const 4 - call $~lib/typedarray/Int32Array#__set - local.get $0 - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 - i32.const 4 - i32.const 5 - call $~lib/typedarray/Int32Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - local.set $8 - global.get $~lib/memory/__stack_pointer + i32.shl + i32.add + i64.load + local.set $9 local.get $8 - i32.store offset=4 + local.get $7 local.get $8 i32.const 1 - i32.const 4 - call $~lib/typedarray/Int32Array#subarray - local.tee $3 - i32.store offset=20 - local.get $3 + i32.shl + i32.add + local.get $9 + call $~lib/util/number/itoa_buffered + i32.add local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 + local.get $6 local.get $8 - call $~lib/typedarray/Int32Array#get:length - i32.const 3 - i32.eq - i32.eqz + i32.gt_s if + local.get $7 i32.const 0 - i32.const 544 - i32.const 282 - i32.const 3 - call $~lib/builtins/abort - unreachable + local.get $8 + call $~lib/string/String#substring + local.set $12 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $12 + return end - local.get $3 - local.set $8 + local.get $7 + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 - call $~lib/arraybuffer/ArrayBufferView#get:byteOffset i32.const 4 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 283 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $3 - i32.load offset=8 - i32.const 12 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 284 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - local.set $8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $12 + ) + (func $~lib/util/number/utoa64 (param $0 i64) (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 i64) + (local $9 i32) global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 - i32.const 1 - i32.const 3 - call $~lib/typedarray/Int32Array#slice - local.tee $2 - i32.store offset=12 - local.get $2 - local.set $8 + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 i32.const 0 - call $~lib/typedarray/Int32Array#__get + i32.store + local.get $1 i32.const 2 - i32.eq - i32.eqz + i32.lt_s + if (result i32) + i32.const 1 + else + local.get $1 + i32.const 36 + i32.gt_s + end if - i32.const 0 - i32.const 544 - i32.const 287 - i32.const 3 + i32.const 6080 + i32.const 6208 + i32.const 401 + i32.const 5 call $~lib/builtins/abort unreachable end - local.get $2 - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 - i32.const 1 - call $~lib/typedarray/Int32Array#__get - i32.const 3 - i32.eq + local.get $0 + i64.const 0 + i64.ne i32.eqz if - i32.const 0 - i32.const 544 - i32.const 288 - i32.const 3 - call $~lib/builtins/abort - unreachable + i32.const 6272 + local.set $9 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $9 + return end - local.get $2 - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 - call $~lib/typedarray/Int32Array#get:length - i32.const 2 + local.get $1 + i32.const 10 i32.eq - i32.eqz if - i32.const 0 - i32.const 544 - i32.const 289 - i32.const 3 - call $~lib/builtins/abort - unreachable + local.get $0 + global.get $~lib/builtins/u32.MAX_VALUE + i64.extend_i32_u + i64.le_u + if + local.get $0 + i32.wrap_i64 + local.set $3 + local.get $3 + call $~lib/util/number/decimalCount32 + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $2 + i32.store + local.get $2 + local.set $7 + local.get $3 + local.set $6 + local.get $4 + local.set $5 + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $7 + local.get $6 + local.get $5 + call $~lib/util/number/utoa32_dec_lut + else + local.get $0 + call $~lib/util/number/decimalCount64High + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $2 + i32.store + local.get $2 + local.set $6 + local.get $0 + local.set $8 + local.get $4 + local.set $5 + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $6 + local.get $8 + local.get $5 + call $~lib/util/number/utoa64_dec_lut + end + else + local.get $1 + i32.const 16 + i32.eq + if + 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.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $2 + i32.store + local.get $2 + local.set $3 + local.get $0 + local.set $8 + local.get $4 + local.set $7 + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $3 + local.get $8 + local.get $7 + call $~lib/util/number/utoa_hex_lut + else + local.get $0 + local.get $1 + call $~lib/util/number/ulog_base + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $2 + i32.store + local.get $2 + local.get $0 + local.get $4 + local.get $1 + call $~lib/util/number/utoa64_any_core + end end local.get $2 - local.set $8 + local.set $9 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $9 + ) + (func $~lib/util/string/joinIntegerArray (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i64) + (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 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 - call $~lib/arraybuffer/ArrayBufferView#get:byteOffset i32.const 0 - i32.eq - i32.eqz + i32.store + local.get $1 + i32.const 1 + i32.sub + local.set $3 + local.get $3 + i32.const 0 + i32.lt_s if - i32.const 0 - i32.const 544 - i32.const 290 - i32.const 3 - call $~lib/builtins/abort - unreachable + i32.const 6048 + local.set $12 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $12 + return end - local.get $2 - i32.load offset=8 - i32.const 8 - i32.eq + local.get $3 i32.eqz if + local.get $0 + i64.load + local.set $4 i32.const 0 - i32.const 544 - i32.const 291 - i32.const 3 - call $~lib/builtins/abort - unreachable + drop + i32.const 8 + i32.const 4 + i32.le_u + drop + local.get $4 + i32.const 10 + call $~lib/util/number/utoa64 + local.set $12 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $12 + return end - global.get $~lib/memory/__stack_pointer + local.get $2 + call $~lib/string/String#get:length + local.set $5 + i32.const 20 + local.get $5 + i32.add local.get $3 - local.set $8 + i32.mul + i32.const 20 + i32.add + local.set $6 global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 + local.get $6 i32.const 1 - i32.const 2 - call $~lib/typedarray/Int32Array#slice - local.tee $1 - i32.store offset=16 - local.get $1 + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $7 + i32.store + i32.const 0 local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 i32.const 0 - call $~lib/typedarray/Int32Array#__get - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 294 - i32.const 3 - call $~lib/builtins/abort - unreachable + local.set $10 + loop $for-loop|0 + local.get $10 + local.get $3 + i32.lt_s + local.set $11 + local.get $11 + if + local.get $0 + local.get $10 + i32.const 3 + i32.shl + i32.add + i64.load + local.set $9 + local.get $8 + local.get $7 + local.get $8 + i32.const 1 + i32.shl + i32.add + local.get $9 + call $~lib/util/number/itoa_buffered + i32.add + local.set $8 + local.get $5 + if + local.get $7 + local.get $8 + i32.const 1 + i32.shl + i32.add + local.get $2 + local.get $5 + i32.const 1 + i32.shl + call $~lib/memory/memory.copy + local.get $8 + local.get $5 + i32.add + local.set $8 + end + local.get $10 + i32.const 1 + i32.add + local.set $10 + br $for-loop|0 + end end - local.get $1 - local.set $8 - global.get $~lib/memory/__stack_pointer + local.get $0 + local.get $3 + i32.const 3 + i32.shl + i32.add + i64.load + local.set $9 local.get $8 - i32.store offset=4 + local.get $7 local.get $8 - call $~lib/typedarray/Int32Array#get:length i32.const 1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 295 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $1 + i32.shl + i32.add + local.get $9 + call $~lib/util/number/itoa_buffered + i32.add local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 + local.get $6 local.get $8 - call $~lib/arraybuffer/ArrayBufferView#get:byteOffset - i32.const 0 - i32.eq - i32.eqz + i32.gt_s if + local.get $7 i32.const 0 - i32.const 544 - i32.const 296 - i32.const 3 - call $~lib/builtins/abort - unreachable + local.get $8 + call $~lib/string/String#substring + local.set $12 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $12 + return end - local.get $1 - i32.load offset=8 + local.get $7 + local.set $12 + global.get $~lib/memory/__stack_pointer i32.const 4 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 297 - i32.const 3 - call $~lib/builtins/abort - unreachable - end + i32.add + global.set $~lib/memory/__stack_pointer + local.get $12 + ) + (func $~lib/util/number/dtoa (param $0 f64) (result i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) global.get $~lib/memory/__stack_pointer - local.get $0 - local.set $8 + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 i32.const 0 - global.get $~lib/builtins/i32.MAX_VALUE - call $~lib/typedarray/Int32Array#slice - local.tee $4 - i32.store offset=28 - local.get $4 + i32.store local.get $0 - i32.ne - i32.eqz + f64.const 0 + f64.eq if - i32.const 0 - i32.const 544 - i32.const 300 - i32.const 3 - call $~lib/builtins/abort - unreachable + i32.const 7936 + 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 $4 - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 - call $~lib/typedarray/Int32Array#get:length local.get $0 - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 - call $~lib/typedarray/Int32Array#get:length - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 301 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $4 - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 - call $~lib/arraybuffer/ArrayBufferView#get:byteOffset local.get $0 - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 - call $~lib/arraybuffer/ArrayBufferView#get:byteOffset - i32.eq + f64.sub + f64.const 0 + f64.eq i32.eqz if - i32.const 0 - i32.const 544 - i32.const 302 - i32.const 3 - call $~lib/builtins/abort - unreachable + local.get $0 + local.get $0 + f64.ne + if + i32.const 7968 + 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 + i32.const 8000 + i32.const 8048 + local.get $0 + f64.const 0 + f64.lt + select + 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 $4 - i32.load offset=8 + i32.const 8080 local.get $0 - i32.load offset=8 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 303 - i32.const 3 - 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/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 $~lib/util/number/dtoa_core + i32.const 1 + i32.shl + local.set $1 global.get $~lib/memory/__stack_pointer - i32.const 0 + local.get $1 i32.const 1 - call $~lib/typedarray/Float64Array#constructor - local.tee $1 - i32.store offset=16 + call $~lib/rt/itcms/__new + local.tee $2 + i32.store + local.get $2 + i32.const 8080 local.get $1 - local.set $8 + call $~lib/memory/memory.copy + local.get $2 + 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/util/string/joinFloatArray (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 f32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 i32.const 0 - f64.const nan:0x8000000000000 - call $~lib/typedarray/Float64Array#__set + i32.store local.get $1 - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 - f64.const nan:0x8000000000000 + i32.const 1 + i32.sub + local.set $3 + local.get $3 i32.const 0 - call $~lib/typedarray/Float64Array#indexOf - i32.const -1 - i32.eq - i32.eqz + i32.lt_s if - i32.const 0 - i32.const 544 - i32.const 630 - i32.const 3 - call $~lib/builtins/abort - unreachable + i32.const 6048 + local.set $11 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $11 + return end - local.get $1 - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 - f64.const nan:0x8000000000000 - i32.const 0 - call $~lib/typedarray/Float64Array#includes - i32.const 0 - i32.ne - i32.const 1 - i32.eq + local.get $3 i32.eqz if - i32.const 0 - i32.const 544 - i32.const 631 - i32.const 3 - call $~lib/builtins/abort - unreachable + local.get $0 + f32.load + f64.promote_f32 + call $~lib/util/number/dtoa + local.set $11 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $11 + return end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 1 - call $~lib/typedarray/Float32Array#constructor - local.tee $4 - i32.store offset=28 + local.get $2 + call $~lib/string/String#get:length + local.set $4 + i32.const 28 local.get $4 - local.set $8 + i32.add + local.get $3 + i32.mul + i32.const 28 + i32.add + local.set $5 global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 + local.get $5 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $6 + i32.store i32.const 0 - f32.const nan:0x400000 - call $~lib/typedarray/Float32Array#__set - local.get $4 - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 - f32.const nan:0x400000 + local.set $7 i32.const 0 - call $~lib/typedarray/Float32Array#indexOf - i32.const -1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 544 - i32.const 636 - i32.const 3 - call $~lib/builtins/abort - unreachable + local.set $9 + loop $for-loop|0 + local.get $9 + local.get $3 + i32.lt_s + local.set $10 + local.get $10 + if + local.get $0 + local.get $9 + i32.const 2 + i32.shl + i32.add + f32.load + local.set $8 + local.get $7 + local.get $6 + local.get $7 + i32.const 1 + i32.shl + i32.add + local.get $8 + f64.promote_f32 + call $~lib/util/number/dtoa_buffered + i32.add + local.set $7 + local.get $4 + if + local.get $6 + local.get $7 + i32.const 1 + i32.shl + i32.add + local.get $2 + local.get $4 + i32.const 1 + i32.shl + call $~lib/memory/memory.copy + local.get $7 + local.get $4 + i32.add + local.set $7 + end + local.get $9 + i32.const 1 + i32.add + local.set $9 + br $for-loop|0 + end end - local.get $4 + local.get $0 + local.get $3 + i32.const 2 + i32.shl + i32.add + f32.load local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 - f32.const nan:0x400000 - i32.const 0 - call $~lib/typedarray/Float32Array#includes - i32.const 0 - i32.ne + local.get $7 + local.get $6 + local.get $7 i32.const 1 - i32.eq - i32.eqz + i32.shl + i32.add + local.get $8 + f64.promote_f32 + call $~lib/util/number/dtoa_buffered + i32.add + local.set $7 + local.get $5 + local.get $7 + i32.gt_s if + local.get $6 i32.const 0 - i32.const 544 - i32.const 637 - i32.const 3 - call $~lib/builtins/abort - unreachable + local.get $7 + call $~lib/string/String#substring + local.set $11 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $11 + return 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> + local.get $6 + local.set $11 global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 0 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $1 - i32.store offset=16 + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $11 + ) + (func $~lib/util/string/joinFloatArray (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 f64) + (local $9 i32) + (local $10 i32) + (local $11 i32) global.get $~lib/memory/__stack_pointer - local.get $1 - local.set $8 + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 - i32.const 0 - i32.const 2 - global.set $~argumentsLength i32.const 0 - call $~lib/typedarray/Uint8Array.wrap@varargs - local.tee $4 - i32.store offset=28 - local.get $4 - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 - call $~lib/typedarray/Uint8Array#get:length + i32.store + local.get $1 + i32.const 1 + i32.sub + local.set $3 + local.get $3 i32.const 0 - i32.eq + i32.lt_s + if + i32.const 6048 + local.set $11 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $11 + return + end + local.get $3 i32.eqz if - i32.const 0 - i32.const 544 - i32.const 714 - i32.const 3 - call $~lib/builtins/abort - unreachable + local.get $0 + f64.load + call $~lib/util/number/dtoa + local.set $11 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $11 + return end + local.get $2 + call $~lib/string/String#get:length + local.set $4 + i32.const 28 + local.get $4 + i32.add + local.get $3 + i32.mul + i32.const 28 + i32.add + local.set $5 global.get $~lib/memory/__stack_pointer + local.get $5 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $6 + i32.store i32.const 0 - i32.const 2 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $1 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - local.get $1 - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 - i32.const 2 - i32.const 2 - global.set $~argumentsLength + local.set $7 i32.const 0 - call $~lib/typedarray/Uint8Array.wrap@varargs - local.tee $4 - i32.store offset=28 - local.get $4 + local.set $9 + loop $for-loop|0 + local.get $9 + local.get $3 + i32.lt_s + local.set $10 + local.get $10 + if + local.get $0 + local.get $9 + i32.const 3 + i32.shl + i32.add + f64.load + local.set $8 + local.get $7 + local.get $6 + local.get $7 + i32.const 1 + i32.shl + i32.add + local.get $8 + call $~lib/util/number/dtoa_buffered + i32.add + local.set $7 + local.get $4 + if + local.get $6 + local.get $7 + i32.const 1 + i32.shl + i32.add + local.get $2 + local.get $4 + i32.const 1 + i32.shl + call $~lib/memory/memory.copy + local.get $7 + local.get $4 + i32.add + local.set $7 + end + local.get $9 + i32.const 1 + i32.add + local.set $9 + br $for-loop|0 + end + end + local.get $0 + local.get $3 + i32.const 3 + i32.shl + i32.add + f64.load local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 + local.get $7 + local.get $6 + local.get $7 + i32.const 1 + i32.shl + i32.add local.get $8 - call $~lib/typedarray/Uint8Array#get:length - i32.const 0 - i32.eq - i32.eqz + call $~lib/util/number/dtoa_buffered + i32.add + local.set $7 + local.get $5 + local.get $7 + i32.gt_s if + local.get $6 i32.const 0 - i32.const 544 - i32.const 718 - i32.const 3 - call $~lib/builtins/abort - unreachable + local.get $7 + call $~lib/string/String#substring + local.set $11 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $11 + return 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/testTypedArraySet<~lib/typedarray/Int8Array> - call $std/typedarray/testTypedArraySet<~lib/typedarray/Uint8Array> - call $std/typedarray/testTypedArraySet<~lib/typedarray/Uint8ClampedArray> - call $std/typedarray/testTypedArraySet<~lib/typedarray/Int16Array> - call $std/typedarray/testTypedArraySet<~lib/typedarray/Uint16Array> - call $std/typedarray/testTypedArraySet<~lib/typedarray/Int32Array> - call $std/typedarray/testTypedArraySet<~lib/typedarray/Uint32Array> - call $std/typedarray/testTypedArraySet<~lib/typedarray/Int64Array> - call $std/typedarray/testTypedArraySet<~lib/typedarray/Uint64Array> - call $std/typedarray/testTypedArraySet<~lib/typedarray/Float32Array> - call $std/typedarray/testTypedArraySet<~lib/typedarray/Float64Array> + local.get $6 + local.set $11 global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 10 - call $~lib/typedarray/Uint8ClampedArray#constructor - local.tee $4 - i32.store offset=28 + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $11 + ) + (func $~lib/arraybuffer/ArrayBuffer#constructor (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 3 - call $~lib/typedarray/Float32Array#constructor - local.tee $1 - i32.store offset=16 - local.get $1 - local.set $8 + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 i32.const 0 - f32.const 400 - call $~lib/typedarray/Float32Array#__set - local.get $1 - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 - i32.const 1 - f32.const nan:0x400000 - call $~lib/typedarray/Float32Array#__set + i32.store + local.get $1 + i32.const 1073741820 + i32.gt_u + if + i32.const 32 + i32.const 80 + i32.const 49 + i32.const 43 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer local.get $1 - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 - i32.const 2 - f32.const inf - call $~lib/typedarray/Float32Array#__set - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 4 - call $~lib/typedarray/Int64Array#constructor - local.tee $2 - i32.store offset=12 - local.get $2 - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 i32.const 0 - i64.const -10 - call $~lib/typedarray/Int64Array#__set + call $~lib/rt/itcms/__new + local.tee $2 + i32.store local.get $2 - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 - i32.const 1 - i64.const 100 - call $~lib/typedarray/Int64Array#__set + i32.const 0 + local.get $1 + call $~lib/memory/memory.fill local.get $2 - local.set $8 + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 - i32.const 2 - i64.const 10 - call $~lib/typedarray/Int64Array#__set - local.get $2 - local.set $8 + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 + ) + (func $~lib/typedarray/Uint8Array.wrap (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) global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 - i32.const 3 - i64.const 300 - call $~lib/typedarray/Int64Array#__set + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 2 - call $~lib/typedarray/Int32Array#constructor - local.tee $3 - i32.store offset=20 - local.get $3 - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 + i32.store + local.get $0 + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + local.get $5 + call $~lib/arraybuffer/ArrayBuffer#get:byteLength + local.set $7 + local.get $4 + local.get $7 + i32.gt_u + local.get $4 i32.const 0 - i32.const 300 - call $~lib/typedarray/Int32Array#__set + i32.and + i32.or + if + i32.const 336 + i32.const 608 + i32.const 1826 + i32.const 5 + call $~lib/builtins/abort + unreachable + end local.get $3 - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 - i32.const 1 - i32.const -1 - call $~lib/typedarray/Int32Array#__set - local.get $4 - local.set $8 + i32.const 0 + i32.lt_s + if + local.get $3 + i32.const -1 + i32.eq + if + local.get $7 + i32.const 0 + i32.and + if + i32.const 32 + i32.const 608 + i32.const 1831 + i32.const 9 + call $~lib/builtins/abort + unreachable + end + local.get $7 + local.get $4 + i32.sub + local.set $6 + else + i32.const 32 + i32.const 608 + i32.const 1835 + i32.const 7 + call $~lib/builtins/abort + unreachable + end + else + local.get $3 + i32.const 0 + i32.shl + local.set $6 + local.get $4 + local.get $6 + i32.add + local.get $7 + i32.gt_s + if + i32.const 32 + i32.const 608 + i32.const 1840 + i32.const 7 + call $~lib/builtins/abort + unreachable + end + end global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 4 + call $~lib/rt/itcms/__new + local.tee $8 + i32.store local.get $8 - i32.store offset=4 + local.get $5 + i32.store local.get $8 - local.get $1 - local.set $8 - global.get $~lib/memory/__stack_pointer + local.get $5 + i32.const 0 + call $~lib/rt/itcms/__link local.get $8 + local.get $6 i32.store offset=8 local.get $8 - i32.const 1 - call $~lib/typedarray/Uint8ClampedArray#set<~lib/typedarray/Float32Array> + local.get $5 local.get $4 - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 + i32.add i32.store offset=4 local.get $8 - local.get $2 - local.set $8 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=8 - local.get $8 i32.const 4 - call $~lib/typedarray/Uint8ClampedArray#set<~lib/typedarray/Int64Array> - local.get $4 - local.set $8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $9 + ) + (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 $6 i32) + (local $7 i32) + (local $8 i32) global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 - local.get $3 - local.set $8 + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=8 - local.get $8 - i32.const 8 - call $~lib/typedarray/Uint8ClampedArray#set<~lib/typedarray/Int32Array> + i32.const 0 + i32.store + local.get $0 + call $~lib/arraybuffer/ArrayBuffer#get:byteLength + local.set $3 + local.get $1 + i32.const 0 + i32.lt_s + if (result i32) + local.get $3 + local.get $1 + i32.add + local.tee $4 + i32.const 0 + local.tee $5 + local.get $4 + local.get $5 + i32.gt_s + select + else + local.get $1 + local.tee $5 + local.get $3 + local.tee $4 + local.get $5 + local.get $4 + i32.lt_s + select + end + local.set $1 + local.get $2 + i32.const 0 + i32.lt_s + if (result i32) + local.get $3 + local.get $2 + i32.add + local.tee $4 + i32.const 0 + local.tee $5 + local.get $4 + local.get $5 + i32.gt_s + select + else + local.get $2 + local.tee $5 + local.get $3 + local.tee $4 + local.get $5 + local.get $4 + i32.lt_s + select + end + local.set $2 + local.get $2 + local.get $1 + i32.sub + local.tee $4 + i32.const 0 + local.tee $5 local.get $4 - local.set $8 + local.get $5 + i32.gt_s + select + local.set $6 global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 - i32.const 10 + local.get $6 i32.const 0 - i32.const 63 - i32.const 13552 - call $~lib/rt/__newArray + call $~lib/rt/itcms/__new + local.tee $7 + i32.store + local.get $7 + local.get $0 + local.get $1 + i32.add + local.get $6 + call $~lib/memory/memory.copy + local.get $7 local.set $8 global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer local.get $8 - i32.store offset=8 - local.get $8 - call $std/typedarray/valuesEqual<~lib/typedarray/Uint8ClampedArray> + ) + (func $~lib/typedarray/Int8Array.wrap (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) global.get $~lib/memory/__stack_pointer - i32.const 0 i32.const 4 - call $~lib/typedarray/Uint32Array#constructor - local.tee $5 - i32.store offset=32 - local.get $5 - local.set $8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check 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 + i32.store + local.get $0 + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 local.get $5 - local.set $8 + call $~lib/arraybuffer/ArrayBuffer#get:byteLength + local.set $7 + local.get $4 + local.get $7 + i32.gt_u + local.get $4 + i32.const 0 + i32.and + i32.or + if + i32.const 336 + i32.const 608 + i32.const 1826 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 0 + i32.lt_s + if + local.get $3 + i32.const -1 + i32.eq + if + local.get $7 + i32.const 0 + i32.and + if + i32.const 32 + i32.const 608 + i32.const 1831 + i32.const 9 + call $~lib/builtins/abort + unreachable + end + local.get $7 + local.get $4 + i32.sub + local.set $6 + else + i32.const 32 + i32.const 608 + i32.const 1835 + i32.const 7 + call $~lib/builtins/abort + unreachable + end + else + local.get $3 + i32.const 0 + i32.shl + local.set $6 + local.get $4 + local.get $6 + i32.add + local.get $7 + i32.gt_s + if + i32.const 32 + i32.const 608 + i32.const 1840 + i32.const 7 + call $~lib/builtins/abort + unreachable + end + end global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 3 + call $~lib/rt/itcms/__new + local.tee $8 + i32.store local.get $8 - i32.store offset=4 + local.get $5 + i32.store local.get $8 - i32.const 1 - i32.const 300 - call $~lib/typedarray/Uint32Array#__set local.get $5 - local.set $8 - global.get $~lib/memory/__stack_pointer + i32.const 0 + call $~lib/rt/itcms/__link local.get $8 - i32.store offset=4 + local.get $6 + i32.store offset=8 local.get $8 - i32.const 2 - i32.const 100 - call $~lib/typedarray/Uint32Array#__set local.get $5 - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $4 + i32.add i32.store offset=4 local.get $8 - i32.const 3 - i32.const -1 - call $~lib/typedarray/Uint32Array#__set + local.set $9 global.get $~lib/memory/__stack_pointer - i32.const 0 i32.const 4 - call $~lib/typedarray/Int16Array#constructor - local.tee $0 - i32.store - local.get $0 - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 - i32.const 0 - i32.const -10 - call $~lib/typedarray/Int16Array#__set - local.get $0 - local.set $8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $9 + ) + (func $~lib/typedarray/Uint8ClampedArray.wrap (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) global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 - i32.const 1 - i32.const 100 - call $~lib/typedarray/Int16Array#__set - local.get $0 - local.set $8 + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 - i32.const 2 - i32.const 10 - call $~lib/typedarray/Int16Array#__set + i32.const 0 + i32.store local.get $0 - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 - i32.const 3 - i32.const 300 - call $~lib/typedarray/Int16Array#__set + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + local.get $5 + call $~lib/arraybuffer/ArrayBuffer#get:byteLength + local.set $7 local.get $4 - local.set $8 + local.get $7 + i32.gt_u + local.get $4 + i32.const 0 + i32.and + i32.or + if + i32.const 336 + i32.const 608 + i32.const 1826 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 0 + i32.lt_s + if + local.get $3 + i32.const -1 + i32.eq + if + local.get $7 + i32.const 0 + i32.and + if + i32.const 32 + i32.const 608 + i32.const 1831 + i32.const 9 + call $~lib/builtins/abort + unreachable + end + local.get $7 + local.get $4 + i32.sub + local.set $6 + else + i32.const 32 + i32.const 608 + i32.const 1835 + i32.const 7 + call $~lib/builtins/abort + unreachable + end + else + local.get $3 + i32.const 0 + i32.shl + local.set $6 + local.get $4 + local.get $6 + i32.add + local.get $7 + i32.gt_s + if + i32.const 32 + i32.const 608 + i32.const 1840 + i32.const 7 + call $~lib/builtins/abort + unreachable + end + end global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 + i32.const 12 + i32.const 5 + call $~lib/rt/itcms/__new + local.tee $8 + i32.store local.get $8 local.get $5 - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=8 + i32.store local.get $8 + local.get $5 i32.const 0 - call $~lib/typedarray/Uint8ClampedArray#set<~lib/typedarray/Uint32Array> - local.get $4 - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 - local.get $0 - local.set $8 - global.get $~lib/memory/__stack_pointer + call $~lib/rt/itcms/__link local.get $8 + local.get $6 i32.store offset=8 local.get $8 - i32.const 5 - call $~lib/typedarray/Uint8ClampedArray#set<~lib/typedarray/Int16Array> + local.get $5 local.get $4 - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 + i32.add i32.store offset=4 local.get $8 - i32.const 10 - i32.const 0 - i32.const 63 - i32.const 13584 - call $~lib/rt/__newArray - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=8 - local.get $8 - call $std/typedarray/valuesEqual<~lib/typedarray/Uint8ClampedArray> - global.get $~lib/memory/__heap_base - global.set $~lib/memory/__stack_pointer - call $~lib/rt/itcms/__collect + local.set $9 global.get $~lib/memory/__stack_pointer - i32.const 36 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer + local.get $9 ) - (func $~lib/arraybuffer/ArrayBufferView#constructor (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/typedarray/Int16Array.wrap (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) 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 $0 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - end - local.get $0 - i32.const 0 - call $~lib/arraybuffer/ArrayBufferView#set:buffer - local.get $0 i32.const 0 - call $~lib/arraybuffer/ArrayBufferView#set:dataStart + i32.store local.get $0 - i32.const 0 - call $~lib/arraybuffer/ArrayBufferView#set:byteLength + local.set $5 local.get $1 - i32.const 1073741820 + local.set $4 local.get $2 - i32.shr_u + local.set $3 + local.get $5 + call $~lib/arraybuffer/ArrayBuffer#get:byteLength + local.set $7 + local.get $4 + local.get $7 i32.gt_u + local.get $4 + i32.const 1 + i32.and + i32.or if - i32.const 32 - i32.const 80 - i32.const 18 - i32.const 57 + i32.const 336 + i32.const 608 + i32.const 1826 + i32.const 5 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 0 - call $~lib/rt/itcms/__new - local.tee $3 - i32.store offset=4 - local.get $3 - i32.const 0 - local.get $1 - call $~lib/memory/memory.fill - local.get $0 - local.get $3 - call $~lib/arraybuffer/ArrayBufferView#set:buffer - local.get $0 local.get $3 - call $~lib/arraybuffer/ArrayBufferView#set:dataStart - local.get $0 - local.get $1 - call $~lib/arraybuffer/ArrayBufferView#set:byteLength - local.get $0 - local.set $4 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $4 - ) - (func $~lib/typedarray/Float64Array#sort@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 - call $~stack_check - global.get $~lib/memory/__stack_pointer i32.const 0 - i32.store - block $1of1 - block $0of1 - block $outOfRange - global.get $~argumentsLength - br_table $0of1 $1of1 $outOfRange + i32.lt_s + if + local.get $3 + i32.const -1 + i32.eq + if + local.get $7 + i32.const 1 + i32.and + if + i32.const 32 + i32.const 608 + i32.const 1831 + i32.const 9 + call $~lib/builtins/abort + unreachable end + local.get $7 + local.get $4 + i32.sub + local.set $6 + else + i32.const 32 + i32.const 608 + i32.const 1835 + i32.const 7 + call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - block $~lib/util/sort/COMPARATOR|inlined.0 (result i32) - i32.const 0 - drop - i32.const 1 - drop - i32.const 8 - i32.const 4 - i32.eq - drop - i32.const 672 - br $~lib/util/sort/COMPARATOR|inlined.0 + else + local.get $3 + i32.const 1 + i32.shl + local.set $6 + local.get $4 + local.get $6 + i32.add + local.get $7 + i32.gt_s + if + i32.const 32 + i32.const 608 + i32.const 1840 + i32.const 7 + call $~lib/builtins/abort + unreachable end - local.tee $1 - i32.store end - local.get $0 - local.get $1 - call $~lib/typedarray/Float64Array#sort - local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 6 + call $~lib/rt/itcms/__new + local.tee $8 + i32.store + local.get $8 + local.get $5 + i32.store + local.get $8 + local.get $5 + i32.const 0 + call $~lib/rt/itcms/__link + local.get $8 + local.get $6 + i32.store offset=8 + local.get $8 + local.get $5 + local.get $4 + i32.add + i32.store offset=4 + local.get $8 + local.set $9 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 + local.get $9 ) - (func $~lib/rt/__newArray (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (func $~lib/typedarray/Uint16Array.wrap (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) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -76227,52 +60163,116 @@ i32.const 0 i32.store local.get $0 + local.set $5 local.get $1 - i32.shl local.set $4 - global.get $~lib/memory/__stack_pointer + local.get $2 + local.set $3 + local.get $5 + call $~lib/arraybuffer/ArrayBuffer#get:byteLength + local.set $7 local.get $4 - i32.const 0 + local.get $7 + i32.gt_u + local.get $4 + i32.const 1 + i32.and + i32.or + if + i32.const 336 + i32.const 608 + i32.const 1826 + i32.const 5 + call $~lib/builtins/abort + unreachable + end local.get $3 - call $~lib/rt/__newBuffer - local.tee $5 - i32.store - i32.const 16 - local.get $2 + i32.const 0 + i32.lt_s + if + local.get $3 + i32.const -1 + i32.eq + if + local.get $7 + i32.const 1 + i32.and + if + i32.const 32 + i32.const 608 + i32.const 1831 + i32.const 9 + call $~lib/builtins/abort + unreachable + end + local.get $7 + local.get $4 + i32.sub + local.set $6 + else + i32.const 32 + i32.const 608 + i32.const 1835 + i32.const 7 + call $~lib/builtins/abort + unreachable + end + else + local.get $3 + i32.const 1 + i32.shl + local.set $6 + local.get $4 + local.get $6 + i32.add + local.get $7 + i32.gt_s + if + i32.const 32 + i32.const 608 + i32.const 1840 + i32.const 7 + call $~lib/builtins/abort + unreachable + end + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 7 call $~lib/rt/itcms/__new - local.set $6 - local.get $6 + local.tee $8 + i32.store + local.get $8 local.get $5 i32.store - local.get $6 + local.get $8 local.get $5 i32.const 0 call $~lib/rt/itcms/__link + local.get $8 local.get $6 + i32.store offset=8 + local.get $8 local.get $5 - i32.store offset=4 - local.get $6 local.get $4 - i32.store offset=8 - local.get $6 - local.get $0 - i32.store offset=12 - local.get $6 - local.set $7 + i32.add + i32.store offset=4 + local.get $8 + local.set $9 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $7 + local.get $9 ) - (func $~lib/util/number/itoa32 (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) + (func $~lib/typedarray/Int32Array.wrap (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) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -76281,164 +60281,117 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store + local.get $0 + local.set $5 local.get $1 - i32.const 2 - i32.lt_s - if (result i32) - i32.const 1 - else - local.get $1 - i32.const 36 - i32.gt_s - end + local.set $4 + local.get $2 + local.set $3 + local.get $5 + call $~lib/arraybuffer/ArrayBuffer#get:byteLength + local.set $7 + local.get $4 + local.get $7 + i32.gt_u + local.get $4 + i32.const 3 + i32.and + i32.or if - i32.const 6080 - i32.const 6208 - i32.const 373 + i32.const 336 + i32.const 608 + i32.const 1826 i32.const 5 call $~lib/builtins/abort unreachable end - local.get $0 - i32.eqz - if - i32.const 6272 - local.set $8 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $8 - return - end - local.get $0 - i32.const 31 - i32.shr_u - local.set $2 - local.get $2 - if - i32.const 0 - local.get $0 - i32.sub - local.set $0 - end - local.get $1 - i32.const 10 - i32.eq - if - local.get $0 - call $~lib/util/number/decimalCount32 - local.get $2 - i32.add - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.const 1 - i32.shl - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $3 - i32.store - local.get $3 - local.set $7 - local.get $0 - local.set $6 - local.get $4 - local.set $5 - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $7 - local.get $6 - local.get $5 - call $~lib/util/number/utoa32_dec_lut - else - local.get $1 - i32.const 16 - i32.eq - if - i32.const 31 - local.get $0 - i32.clz - i32.sub - i32.const 2 - i32.shr_s - i32.const 1 - i32.add - local.get $2 - i32.add - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.const 1 - i32.shl - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $3 - i32.store - local.get $3 - local.set $7 - local.get $0 - local.set $6 - local.get $4 - local.set $5 - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $7 - local.get $6 - i64.extend_i32_u - local.get $5 - call $~lib/util/number/utoa_hex_lut - else - local.get $0 - local.set $4 - local.get $4 - i64.extend_i32_u - local.get $1 - call $~lib/util/number/ulog_base - local.get $2 - i32.add - local.set $7 - global.get $~lib/memory/__stack_pointer + local.get $3 + i32.const 0 + i32.lt_s + if + local.get $3 + i32.const -1 + i32.eq + if local.get $7 - i32.const 1 - i32.shl - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $3 - i32.store - local.get $3 - local.get $4 - i64.extend_i32_u + i32.const 3 + i32.and + if + i32.const 32 + i32.const 608 + i32.const 1831 + i32.const 9 + call $~lib/builtins/abort + unreachable + end local.get $7 - local.get $1 - call $~lib/util/number/utoa64_any_core + local.get $4 + i32.sub + local.set $6 + else + i32.const 32 + i32.const 608 + i32.const 1835 + i32.const 7 + call $~lib/builtins/abort + unreachable end - end - local.get $2 - if + else local.get $3 - i32.const 45 - i32.store16 + i32.const 2 + i32.shl + local.set $6 + local.get $4 + local.get $6 + i32.add + local.get $7 + i32.gt_s + if + i32.const 32 + i32.const 608 + i32.const 1840 + i32.const 7 + call $~lib/builtins/abort + unreachable + end end - local.get $3 - local.set $8 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 8 + call $~lib/rt/itcms/__new + local.tee $8 + i32.store + local.get $8 + local.get $5 + i32.store + local.get $8 + local.get $5 + i32.const 0 + call $~lib/rt/itcms/__link + local.get $8 + local.get $6 + i32.store offset=8 + local.get $8 + local.get $5 + local.get $4 + i32.add + i32.store offset=4 + local.get $8 + local.set $9 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $8 + local.get $9 ) - (func $~lib/util/number/utoa32 (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) + (func $~lib/typedarray/Uint32Array.wrap (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) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -76447,142 +60400,117 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store + local.get $0 + local.set $5 local.get $1 - i32.const 2 - i32.lt_s - if (result i32) - i32.const 1 - else - local.get $1 - i32.const 36 - i32.gt_s - end + local.set $4 + local.get $2 + local.set $3 + local.get $5 + call $~lib/arraybuffer/ArrayBuffer#get:byteLength + local.set $7 + local.get $4 + local.get $7 + i32.gt_u + local.get $4 + i32.const 3 + i32.and + i32.or if - i32.const 6080 - i32.const 6208 - i32.const 350 + i32.const 336 + i32.const 608 + i32.const 1826 i32.const 5 call $~lib/builtins/abort unreachable end - local.get $0 - i32.eqz - if - i32.const 6272 - local.set $7 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $7 - return - end - local.get $1 - i32.const 10 - i32.eq + local.get $3 + i32.const 0 + i32.lt_s if - local.get $0 - call $~lib/util/number/decimalCount32 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.const 1 - i32.shl - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $2 - i32.store - local.get $2 - local.set $6 - local.get $0 - local.set $5 local.get $3 - local.set $4 - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $6 - local.get $5 - local.get $4 - call $~lib/util/number/utoa32_dec_lut - else - local.get $1 - i32.const 16 + i32.const -1 i32.eq if - i32.const 31 - local.get $0 - i32.clz + local.get $7 + i32.const 3 + i32.and + if + i32.const 32 + i32.const 608 + i32.const 1831 + i32.const 9 + call $~lib/builtins/abort + unreachable + end + local.get $7 + local.get $4 i32.sub - i32.const 2 - i32.shr_s - i32.const 1 - i32.add - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.const 1 - i32.shl - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $2 - i32.store - local.get $2 local.set $6 - local.get $0 - local.set $5 - local.get $3 - local.set $4 - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $6 - local.get $5 - i64.extend_i32_u - local.get $4 - call $~lib/util/number/utoa_hex_lut else - local.get $0 - i64.extend_i32_u - local.get $1 - call $~lib/util/number/ulog_base - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.const 1 - i32.shl - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $2 - i32.store - local.get $2 - local.get $0 - i64.extend_i32_u - local.get $3 - local.get $1 - call $~lib/util/number/utoa64_any_core + i32.const 32 + i32.const 608 + i32.const 1835 + i32.const 7 + call $~lib/builtins/abort + unreachable + end + else + local.get $3 + i32.const 2 + i32.shl + local.set $6 + local.get $4 + local.get $6 + i32.add + local.get $7 + i32.gt_s + if + i32.const 32 + i32.const 608 + i32.const 1840 + i32.const 7 + call $~lib/builtins/abort + unreachable end end - local.get $2 - local.set $7 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 9 + call $~lib/rt/itcms/__new + local.tee $8 + i32.store + local.get $8 + local.get $5 + i32.store + local.get $8 + local.get $5 + i32.const 0 + call $~lib/rt/itcms/__link + local.get $8 + local.get $6 + i32.store offset=8 + local.get $8 + local.get $5 + local.get $4 + i32.add + i32.store offset=4 + local.get $8 + local.set $9 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $7 + local.get $9 ) - (func $~lib/util/number/itoa64 (param $0 i64) (param $1 i32) (result i32) - (local $2 i32) + (func $~lib/typedarray/Int64Array.wrap (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 i64) - (local $10 i32) + (local $9 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -76591,201 +60519,116 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store + local.get $0 + local.set $5 local.get $1 - i32.const 2 - i32.lt_s - if (result i32) - i32.const 1 - else - local.get $1 - i32.const 36 - i32.gt_s - end + local.set $4 + local.get $2 + local.set $3 + local.get $5 + call $~lib/arraybuffer/ArrayBuffer#get:byteLength + local.set $7 + local.get $4 + local.get $7 + i32.gt_u + local.get $4 + i32.const 7 + i32.and + i32.or if - i32.const 6080 - i32.const 6208 - i32.const 431 + i32.const 336 + i32.const 608 + i32.const 1826 i32.const 5 call $~lib/builtins/abort unreachable end - local.get $0 - i64.const 0 - i64.ne - i32.eqz - if - i32.const 6272 - 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 $0 - i64.const 63 - i64.shr_u - i32.wrap_i64 - local.set $2 - local.get $2 - if - i64.const 0 - local.get $0 - i64.sub - local.set $0 - end - local.get $1 - i32.const 10 - i32.eq + local.get $3 + i32.const 0 + i32.lt_s if - local.get $0 - global.get $~lib/builtins/u32.MAX_VALUE - i64.extend_i32_u - i64.le_u + local.get $3 + i32.const -1 + i32.eq if - local.get $0 - i32.wrap_i64 - local.set $4 - local.get $4 - call $~lib/util/number/decimalCount32 - local.get $2 - i32.add - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.const 1 - i32.shl - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $3 - i32.store - local.get $3 - local.set $8 + local.get $7 + i32.const 7 + i32.and + if + i32.const 32 + i32.const 608 + i32.const 1831 + i32.const 9 + call $~lib/builtins/abort + unreachable + end + local.get $7 local.get $4 - local.set $7 - local.get $5 + i32.sub local.set $6 - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $8 - local.get $7 - local.get $6 - call $~lib/util/number/utoa32_dec_lut else - local.get $0 - call $~lib/util/number/decimalCount64High - local.get $2 - i32.add - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.const 1 - i32.shl - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $3 - i32.store - local.get $3 - local.set $7 - local.get $0 - local.set $9 - local.get $5 - local.set $6 - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $7 - local.get $9 - local.get $6 - call $~lib/util/number/utoa64_dec_lut + i32.const 32 + i32.const 608 + i32.const 1835 + i32.const 7 + call $~lib/builtins/abort + unreachable end else - local.get $1 - i32.const 16 - i32.eq + local.get $3 + i32.const 3 + i32.shl + local.set $6 + local.get $4 + local.get $6 + i32.add + local.get $7 + i32.gt_s if - 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.get $2 - i32.add - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.const 1 - i32.shl - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $3 - i32.store - local.get $3 - local.set $4 - local.get $0 - local.set $9 - local.get $5 - local.set $8 - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $4 - local.get $9 - local.get $8 - call $~lib/util/number/utoa_hex_lut - else - local.get $0 - local.get $1 - call $~lib/util/number/ulog_base - local.get $2 - i32.add - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.const 1 - i32.shl - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $3 - i32.store - local.get $3 - local.get $0 - local.get $5 - local.get $1 - call $~lib/util/number/utoa64_any_core + i32.const 32 + i32.const 608 + i32.const 1840 + i32.const 7 + call $~lib/builtins/abort + unreachable end - end - local.get $2 - if - local.get $3 - i32.const 45 - i32.store16 - end - local.get $3 - local.set $10 + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 10 + call $~lib/rt/itcms/__new + local.tee $8 + i32.store + local.get $8 + local.get $5 + i32.store + local.get $8 + local.get $5 + i32.const 0 + call $~lib/rt/itcms/__link + local.get $8 + local.get $6 + i32.store offset=8 + local.get $8 + local.get $5 + local.get $4 + i32.add + i32.store offset=4 + local.get $8 + local.set $9 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $10 + local.get $9 ) - (func $~lib/util/number/utoa64 (param $0 i64) (param $1 i32) (result i32) - (local $2 i32) + (func $~lib/typedarray/Uint64Array.wrap (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 i64) + (local $8 i32) (local $9 i32) global.get $~lib/memory/__stack_pointer i32.const 4 @@ -76795,160 +60638,102 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store + local.get $0 + local.set $5 local.get $1 - i32.const 2 - i32.lt_s - if (result i32) - i32.const 1 - else - local.get $1 - i32.const 36 - i32.gt_s - end + local.set $4 + local.get $2 + local.set $3 + local.get $5 + call $~lib/arraybuffer/ArrayBuffer#get:byteLength + local.set $7 + local.get $4 + local.get $7 + i32.gt_u + local.get $4 + i32.const 7 + i32.and + i32.or if - i32.const 6080 - i32.const 6208 - i32.const 401 + i32.const 336 + i32.const 608 + i32.const 1826 i32.const 5 call $~lib/builtins/abort unreachable end - local.get $0 - i64.const 0 - i64.ne - i32.eqz - if - i32.const 6272 - local.set $9 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $9 - return - end - local.get $1 - i32.const 10 - i32.eq + local.get $3 + i32.const 0 + i32.lt_s if - local.get $0 - global.get $~lib/builtins/u32.MAX_VALUE - i64.extend_i32_u - i64.le_u + local.get $3 + i32.const -1 + i32.eq if - local.get $0 - i32.wrap_i64 - local.set $3 - local.get $3 - call $~lib/util/number/decimalCount32 - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.const 1 - i32.shl - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $2 - i32.store - local.get $2 - local.set $7 - local.get $3 - local.set $6 - local.get $4 - local.set $5 - i32.const 0 - i32.const 1 - i32.ge_s - drop local.get $7 - local.get $6 - local.get $5 - call $~lib/util/number/utoa32_dec_lut - else - local.get $0 - call $~lib/util/number/decimalCount64High - local.set $4 - global.get $~lib/memory/__stack_pointer + i32.const 7 + i32.and + if + i32.const 32 + i32.const 608 + i32.const 1831 + i32.const 9 + call $~lib/builtins/abort + unreachable + end + local.get $7 local.get $4 - i32.const 1 - i32.shl - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $2 - i32.store - local.get $2 + i32.sub local.set $6 - local.get $0 - local.set $8 - local.get $4 - local.set $5 - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $6 - local.get $8 - local.get $5 - call $~lib/util/number/utoa64_dec_lut + else + i32.const 32 + i32.const 608 + i32.const 1835 + i32.const 7 + call $~lib/builtins/abort + unreachable end else - local.get $1 - i32.const 16 - i32.eq + local.get $3 + i32.const 3 + i32.shl + local.set $6 + local.get $4 + local.get $6 + i32.add + local.get $7 + i32.gt_s if - 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.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.const 1 - i32.shl - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $2 - i32.store - local.get $2 - local.set $3 - local.get $0 - local.set $8 - local.get $4 - local.set $7 - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $3 - local.get $8 - local.get $7 - call $~lib/util/number/utoa_hex_lut - else - local.get $0 - local.get $1 - call $~lib/util/number/ulog_base - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.const 1 - i32.shl - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $2 - i32.store - local.get $2 - local.get $0 - local.get $4 - local.get $1 - call $~lib/util/number/utoa64_any_core + i32.const 32 + i32.const 608 + i32.const 1840 + i32.const 7 + call $~lib/builtins/abort + unreachable end end - local.get $2 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 11 + call $~lib/rt/itcms/__new + local.tee $8 + i32.store + local.get $8 + local.get $5 + i32.store + local.get $8 + local.get $5 + i32.const 0 + call $~lib/rt/itcms/__link + local.get $8 + local.get $6 + i32.store offset=8 + local.get $8 + local.get $5 + local.get $4 + i32.add + i32.store offset=4 + local.get $8 local.set $9 global.get $~lib/memory/__stack_pointer i32.const 4 @@ -76956,10 +60741,14 @@ global.set $~lib/memory/__stack_pointer local.get $9 ) - (func $~lib/util/number/dtoa (param $0 f64) (result i32) - (local $1 i32) - (local $2 i32) + (func $~lib/typedarray/Float32Array.wrap (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) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -76969,79 +60758,116 @@ i32.const 0 i32.store local.get $0 - f64.const 0 - f64.eq + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + local.get $5 + call $~lib/arraybuffer/ArrayBuffer#get:byteLength + local.set $7 + local.get $4 + local.get $7 + i32.gt_u + local.get $4 + i32.const 3 + i32.and + i32.or if - i32.const 7936 - 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 336 + i32.const 608 + i32.const 1826 + i32.const 5 + call $~lib/builtins/abort + unreachable end - local.get $0 - local.get $0 - f64.sub - f64.const 0 - f64.eq - i32.eqz + local.get $3 + i32.const 0 + i32.lt_s if - local.get $0 - local.get $0 - f64.ne + local.get $3 + i32.const -1 + i32.eq if - i32.const 7968 - local.set $3 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $3 - return + local.get $7 + i32.const 3 + i32.and + if + i32.const 32 + i32.const 608 + i32.const 1831 + i32.const 9 + call $~lib/builtins/abort + unreachable + end + local.get $7 + local.get $4 + i32.sub + local.set $6 + else + i32.const 32 + i32.const 608 + i32.const 1835 + i32.const 7 + call $~lib/builtins/abort + unreachable end - i32.const 8000 - i32.const 8048 - local.get $0 - f64.const 0 - f64.lt - select - local.set $3 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer + else local.get $3 - return + i32.const 2 + i32.shl + local.set $6 + local.get $4 + local.get $6 + i32.add + local.get $7 + i32.gt_s + if + i32.const 32 + i32.const 608 + i32.const 1840 + i32.const 7 + call $~lib/builtins/abort + unreachable + end end - i32.const 8080 - 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 + i32.const 12 + i32.const 12 call $~lib/rt/itcms/__new - local.tee $2 + local.tee $8 i32.store - local.get $2 - i32.const 8080 - local.get $1 - call $~lib/memory/memory.copy - local.get $2 - local.set $3 + local.get $8 + local.get $5 + i32.store + local.get $8 + local.get $5 + i32.const 0 + call $~lib/rt/itcms/__link + local.get $8 + local.get $6 + i32.store offset=8 + local.get $8 + local.get $5 + local.get $4 + i32.add + i32.store offset=4 + local.get $8 + local.set $9 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $3 + local.get $9 ) - (func $~lib/arraybuffer/ArrayBuffer#constructor (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) + (func $~lib/typedarray/Float64Array.wrap (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) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -77050,33 +60876,107 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store + local.get $0 + local.set $5 local.get $1 - i32.const 1073741820 + local.set $4 + local.get $2 + local.set $3 + local.get $5 + call $~lib/arraybuffer/ArrayBuffer#get:byteLength + local.set $7 + local.get $4 + local.get $7 i32.gt_u + local.get $4 + i32.const 7 + i32.and + i32.or if - i32.const 32 - i32.const 80 - i32.const 49 - i32.const 43 + i32.const 336 + i32.const 608 + i32.const 1826 + i32.const 5 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $3 i32.const 0 + i32.lt_s + if + local.get $3 + i32.const -1 + i32.eq + if + local.get $7 + i32.const 7 + i32.and + if + i32.const 32 + i32.const 608 + i32.const 1831 + i32.const 9 + call $~lib/builtins/abort + unreachable + end + local.get $7 + local.get $4 + i32.sub + local.set $6 + else + i32.const 32 + i32.const 608 + i32.const 1835 + i32.const 7 + call $~lib/builtins/abort + unreachable + end + else + local.get $3 + i32.const 3 + i32.shl + local.set $6 + local.get $4 + local.get $6 + i32.add + local.get $7 + i32.gt_s + if + i32.const 32 + i32.const 608 + i32.const 1840 + i32.const 7 + call $~lib/builtins/abort + unreachable + end + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 13 call $~lib/rt/itcms/__new - local.tee $2 + local.tee $8 i32.store - local.get $2 + local.get $8 + local.get $5 + i32.store + local.get $8 + local.get $5 i32.const 0 - local.get $1 - call $~lib/memory/memory.fill - local.get $2 - local.set $3 + call $~lib/rt/itcms/__link + local.get $8 + local.get $6 + i32.store offset=8 + local.get $8 + local.get $5 + local.get $4 + i32.add + i32.store offset=4 + local.get $8 + local.set $9 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $3 + local.get $9 ) ) diff --git a/tests/compiler/super-inline.optimized.wat b/tests/compiler/super-inline.optimized.wat index c367c32172..18b06c8163 100644 --- a/tests/compiler/super-inline.optimized.wat +++ b/tests/compiler/super-inline.optimized.wat @@ -1,8 +1,8 @@ (module (type $i32_=>_i32 (func (param i32) (result i32))) (type $none_=>_none (func)) - (type $i32_=>_none (func (param i32))) (type $i32_i32_=>_none (func (param i32 i32))) + (type $i32_=>_none (func (param i32))) (type $i32_i32_i32_=>_none (func (param i32 i32 i32))) (type $i32_i32_i32_i32_=>_none (func (param i32 i32 i32 i32))) (type $none_=>_i32 (func (result i32))) @@ -1488,20 +1488,15 @@ i32.const 8 i32.sub i32.load - i32.const 4 - i32.eq - if - local.get $0 - call $super-inline/Bar#a - end + drop 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 global.get $~lib/memory/__stack_pointer i32.const 4 call $~lib/rt/itcms/__new @@ -1509,24 +1504,18 @@ 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 $super-inline/Foo#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 global.set $super-inline/bar global.get $~lib/memory/__stack_pointer global.get $super-inline/bar - local.tee $0 i32.store - local.get $0 - call $super-inline/Bar#a global.get $~lib/memory/__stack_pointer i32.const 4 i32.add @@ -1569,21 +1558,4 @@ global.set $~lib/memory/__stack_pointer local.get $0 ) - (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 - call $~stack_check - 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/super-inline.untouched.wat b/tests/compiler/super-inline.untouched.wat index e08177824a..0a709bba62 100644 --- a/tests/compiler/super-inline.untouched.wat +++ b/tests/compiler/super-inline.untouched.wat @@ -2356,6 +2356,12 @@ (func $super-inline/Foo#a (param $0 i32) (result i32) i32.const 1 ) + (func $super-inline/Bar#a (param $0 i32) (result i32) + (local $1 i32) + local.get $0 + local.set $1 + i32.const 1 + ) (func $super-inline/Foo#a@virtual (param $0 i32) (result i32) (local $1 i32) block $default @@ -2456,44 +2462,6 @@ unreachable end ) - (func $super-inline/Bar#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 - call $~stack_check - 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 0 - i32.const 4 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - end - global.get $~lib/memory/__stack_pointer - local.get $0 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $super-inline/Foo#constructor - local.tee $0 - i32.store - local.get $0 - 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:super-inline (local $0 i32) global.get $~lib/memory/__stack_pointer @@ -2568,9 +2536,8 @@ global.set $~lib/memory/__stack_pointer local.get $1 ) - (func $super-inline/Bar#a (param $0 i32) (result i32) + (func $super-inline/Bar#constructor (param $0 i32) (result i32) (local $1 i32) - (local $2 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -2579,16 +2546,27 @@ 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 4 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end global.get $~lib/memory/__stack_pointer local.get $0 - local.tee $1 + call $super-inline/Foo#constructor + local.tee $0 i32.store - i32.const 1 - local.set $2 + local.get $0 + 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 ) ) diff --git a/tests/compiler/typeof.optimized.wat b/tests/compiler/typeof.optimized.wat index 7309884268..9b510bb346 100644 --- a/tests/compiler/typeof.optimized.wat +++ b/tests/compiler/typeof.optimized.wat @@ -54,6 +54,122 @@ (global $~started (mut i32) (i32.const 0)) (export "memory" (memory $0)) (export "_start" (func $~start)) + (func $~lib/string/String.__eq (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + local.get $0 + local.get $1 + i32.eq + if + i32.const 1 + return + end + local.get $1 + i32.eqz + i32.const 1 + local.get $0 + select + if + i32.const 0 + return + end + 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.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u + i32.ne + if + i32.const 0 + return + end + block $__inlined_func$~lib/util/string/compareImpl (result i32) + local.get $0 + local.tee $3 + i32.const 7 + i32.and + local.get $1 + i32.const 7 + i32.and + i32.or + i32.eqz + i32.const 0 + local.get $2 + local.tee $0 + i32.const 4 + i32.ge_u + select + if + loop $do-continue|0 + local.get $3 + i64.load + local.get $1 + i64.load + i64.eq + if + local.get $3 + i32.const 8 + i32.add + local.set $3 + 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-continue|0 + end + end + end + loop $while-continue|1 + local.get $0 + local.tee $2 + i32.const 1 + i32.sub + local.set $0 + local.get $2 + if + local.get $3 + i32.load16_u + local.tee $2 + local.get $1 + i32.load16_u + local.tee $4 + i32.ne + if + local.get $2 + local.get $4 + i32.sub + br $__inlined_func$~lib/util/string/compareImpl + end + local.get $3 + i32.const 2 + i32.add + local.set $3 + local.get $1 + i32.const 2 + i32.add + local.set $1 + br $while-continue|1 + end + end + i32.const 0 + end + i32.eqz + ) (func $~lib/rt/itcms/initLazy (param $0 i32) (result i32) local.get $0 local.get $0 @@ -1422,152 +1538,6 @@ unreachable end ) - (func $~lib/string/String.__eq (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 - call $~stack_check - 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 - i32.const 1 - local.get $0 - select - 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 - block $__inlined_func$~lib/util/string/compareImpl (result i32) - local.get $0 - local.tee $3 - i32.const 7 - i32.and - local.get $1 - i32.const 7 - i32.and - i32.or - i32.eqz - i32.const 0 - local.get $2 - i32.const 4 - i32.ge_u - select - if - loop $do-continue|0 - local.get $3 - i64.load - local.get $1 - i64.load - i64.eq - if - local.get $3 - i32.const 8 - i32.add - local.set $3 - 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-continue|0 - end - end - end - loop $while-continue|1 - local.get $2 - local.tee $0 - i32.const 1 - i32.sub - local.set $2 - local.get $0 - if - local.get $3 - i32.load16_u - local.tee $4 - local.get $1 - i32.load16_u - local.tee $0 - i32.ne - if - local.get $4 - local.get $0 - i32.sub - br $__inlined_func$~lib/util/string/compareImpl - end - local.get $3 - i32.const 2 - i32.add - local.set $3 - local.get $1 - i32.const 2 - i32.add - local.set $1 - br $while-continue|1 - end - end - i32.const 0 - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - 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:typeof (local $0 i32) (local $1 i32) diff --git a/tests/compiler/typeof.untouched.wat b/tests/compiler/typeof.untouched.wat index 38af8cbfc6..1cff585d32 100644 --- a/tests/compiler/typeof.untouched.wat +++ b/tests/compiler/typeof.untouched.wat @@ -174,6 +174,48 @@ end i32.const 0 ) + (func $~lib/string/String.__eq (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + local.get $0 + local.get $1 + i32.eq + if + i32.const 1 + return + end + local.get $0 + i32.const 0 + i32.eq + if (result i32) + i32.const 1 + else + local.get $1 + i32.const 0 + i32.eq + end + if + i32.const 0 + return + end + local.get $0 + call $~lib/string/String#get:length + local.set $2 + local.get $2 + local.get $1 + call $~lib/string/String#get:length + i32.ne + if + i32.const 0 + return + end + local.get $0 + i32.const 0 + local.get $1 + i32.const 0 + local.get $2 + call $~lib/util/string/compareImpl + i32.eqz + ) (func $start:typeof~anonymous|0 nop ) @@ -2588,101 +2630,6 @@ unreachable end ) - (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 - call $~stack_check - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - local.get $0 - local.get $1 - 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 $0 - i32.const 0 - i32.eq - if (result i32) - i32.const 1 - else - local.get $1 - 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 $0 - 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 $2 - local.get $2 - local.get $1 - 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 $0 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store - local.get $3 - i32.const 0 - local.get $1 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - i32.const 0 - local.get $2 - 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 - ) (func $start:typeof (local $0 i32) global.get $~lib/memory/__stack_pointer diff --git a/tests/compiler/wasi/abort.optimized.wat b/tests/compiler/wasi/abort.optimized.wat index 6f5a21494b..5c9b753f71 100644 --- a/tests/compiler/wasi/abort.optimized.wat +++ b/tests/compiler/wasi/abort.optimized.wat @@ -1,7 +1,6 @@ (module (type $none_=>_none (func)) (type $i32_=>_none (func (param i32))) - (type $i32_i32_i32_i32_=>_none (func (param i32 i32 i32 i32))) (type $i32_=>_i32 (func (param i32) (result i32))) (type $i32_i32_i32_=>_i32 (func (param i32 i32 i32) (result i32))) (type $i32_i32_i32_i32_=>_i32 (func (param i32 i32 i32 i32) (result i32))) @@ -12,7 +11,6 @@ (data (i32.const 1048) "\01\00\00\00\16\00\00\00t\00h\00e\00 \00m\00e\00s\00s\00a\00g\00e") (data (i32.const 1084) ",") (data (i32.const 1096) "\01\00\00\00\1a\00\00\00w\00a\00s\00i\00/\00a\00b\00o\00r\00t\00.\00t\00s") - (global $~lib/memory/__stack_pointer (mut i32) (i32.const 17516)) (export "test" (func $wasi/abort/test)) (export "memory" (memory $0)) (export "_start" (func $~start)) @@ -230,148 +228,106 @@ i32.lt_u select ) - (func $wasi/abort/test - i32.const 1056 - i32.const 1104 - i32.const 4 + (func $~lib/wasi/index/abort + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) i32.const 3 - call $~lib/wasi/index/abort - unreachable - ) - (func $~start - nop - ) - (func $~lib/wasi/index/abort (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) - (local $4 i32) - global.get $~lib/memory/__stack_pointer + local.set $2 i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1132 - i32.lt_s - if - i32.const 17536 - i32.const 17584 - i32.const 1 - i32.const 1 - call $~lib/wasi/index/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store + local.set $1 i32.const 0 i32.const 12 i32.store i32.const 12 i64.const 9071471065260641 i64.store - local.get $0 - if (result i32) - 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 19 - call $~lib/string/String.UTF8.encodeUnsafe - i32.const 19 - i32.add - else - i32.const 19 - end - local.tee $4 + i32.const 1056 + i32.const 1052 + i32.load + i32.const 1 + i32.shr_u + i32.const 19 + call $~lib/string/String.UTF8.encodeUnsafe + i32.const 19 + i32.add + local.tee $0 i32.const 544106784 i32.store - local.get $4 + local.get $0 i32.const 4 i32.add - local.set $4 - local.get $1 - if - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $1 - local.get $1 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 1 - i32.shr_u - local.get $4 - call $~lib/string/String.UTF8.encodeUnsafe - local.get $4 - i32.add - local.set $4 - end - local.get $4 + local.tee $0 + i32.const 1104 + i32.const 1100 + i32.load + i32.const 1 + i32.shr_u + local.get $0 + call $~lib/string/String.UTF8.encodeUnsafe + i32.add + local.tee $0 i32.const 40 i32.store8 - local.get $2 + i32.const 4 call $~lib/util/number/decimalCount32 - local.tee $0 - local.get $4 + local.tee $3 + local.get $0 i32.const 1 i32.add i32.add - local.set $4 + local.set $0 loop $do-continue|0 - local.get $4 + local.get $0 i32.const 1 i32.sub - local.tee $4 - local.get $2 + local.tee $0 + local.get $1 i32.const 10 i32.rem_u i32.const 48 i32.add i32.store8 - local.get $2 + local.get $1 i32.const 10 i32.div_u - local.tee $2 + local.tee $1 br_if $do-continue|0 end local.get $0 - local.get $4 + local.get $3 i32.add local.tee $0 i32.const 58 i32.store8 - local.get $3 + i32.const 3 call $~lib/util/number/decimalCount32 local.tee $1 local.get $0 i32.const 1 i32.add i32.add - local.set $4 + local.set $0 loop $do-continue|1 - local.get $4 + local.get $0 i32.const 1 i32.sub - local.tee $4 - local.get $3 + local.tee $0 + local.get $2 i32.const 10 i32.rem_u i32.const 48 i32.add i32.store8 - local.get $3 + local.get $2 i32.const 10 i32.div_u - local.tee $3 + local.tee $2 br_if $do-continue|1 end + local.get $0 local.get $1 - local.get $4 i32.add local.tee $0 i32.const 2601 @@ -389,9 +345,12 @@ drop i32.const 255 call $~lib/bindings/wasi_snapshot_preview1/proc_exit - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer + ) + (func $wasi/abort/test + call $~lib/wasi/index/abort + unreachable + ) + (func $~start + nop ) ) diff --git a/tests/compiler/wasi/abort.untouched.wat b/tests/compiler/wasi/abort.untouched.wat index 615f56d3ba..ed30832a68 100644 --- a/tests/compiler/wasi/abort.untouched.wat +++ b/tests/compiler/wasi/abort.untouched.wat @@ -306,49 +306,12 @@ local.get $1 i32.store offset=4 ) - (func $wasi/abort/test - i32.const 0 - i32.eqz - if - i32.const 32 - i32.const 80 - i32.const 4 - i32.const 3 - call $~lib/wasi/index/abort - unreachable - end - ) - (func $~start - nop - ) - (func $~stack_check - global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__data_end - i32.lt_s - if - i32.const 16512 - i32.const 16560 - i32.const 1 - i32.const 1 - call $~lib/wasi/index/abort - unreachable - end - ) (func $~lib/wasi/index/abort (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 $9 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 12 call $~lib/bindings/wasi_snapshot_preview1/iovec#set:buf @@ -368,11 +331,6 @@ local.get $4 local.get $0 local.get $0 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store - local.get $9 call $~lib/string/String#get:length local.get $4 i32.const 0 @@ -394,11 +352,6 @@ local.get $4 local.get $1 local.get $1 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store - local.get $9 call $~lib/string/String#get:length local.get $4 i32.const 0 @@ -508,9 +461,20 @@ drop i32.const 255 call $~lib/bindings/wasi_snapshot_preview1/proc_exit - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer + ) + (func $wasi/abort/test + i32.const 0 + i32.eqz + if + i32.const 32 + i32.const 80 + i32.const 4 + i32.const 3 + call $~lib/wasi/index/abort + unreachable + end + ) + (func $~start + nop ) ) diff --git a/tests/compiler/wasi/seed.optimized.wat b/tests/compiler/wasi/seed.optimized.wat index f338b9de2c..9879f9fbd6 100644 --- a/tests/compiler/wasi/seed.optimized.wat +++ b/tests/compiler/wasi/seed.optimized.wat @@ -1,11 +1,9 @@ (module (type $i32_=>_i32 (func (param i32) (result i32))) - (type $none_=>_f64 (func (result f64))) (type $none_=>_none (func)) + (type $none_=>_f64 (func (result f64))) (type $i32_=>_none (func (param i32))) - (type $i32_i32_i32_i32_=>_none (func (param i32 i32 i32 i32))) (type $i32_i32_=>_i32 (func (param i32 i32) (result i32))) - (type $i32_i32_i32_=>_i32 (func (param i32 i32 i32) (result i32))) (type $i32_i32_i32_i32_=>_i32 (func (param i32 i32 i32 i32) (result i32))) (type $i64_=>_i64 (func (param i64) (result i64))) (import "wasi_snapshot_preview1" "random_get" (func $~lib/bindings/wasi_snapshot_preview1/random_get (param i32 i32) (result i32))) @@ -19,7 +17,6 @@ (global $~lib/math/random_state1_64 (mut i64) (i64.const 0)) (global $~lib/math/random_state0_32 (mut i32) (i32.const 0)) (global $~lib/math/random_state1_32 (mut i32) (i32.const 0)) - (global $~lib/memory/__stack_pointer (mut i32) (i32.const 17468)) (export "test" (func $wasi/seed/test)) (export "memory" (memory $0)) (export "_start" (func $~start)) @@ -76,47 +73,50 @@ i32.shr_u i32.xor ) - (func $~lib/string/String.UTF8.encodeUnsafe (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/string/String.UTF8.encodeUnsafe (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) (local $3 i32) (local $4 i32) - (local $5 i32) + i32.const 1056 + local.set $2 local.get $0 - local.get $1 i32.const 1 i32.shl + i32.const 1056 i32.add - local.set $4 - local.get $2 - local.set $1 + local.set $3 + i32.const 23 + local.set $0 loop $while-continue|0 - local.get $0 - local.get $4 + local.get $2 + local.get $3 i32.lt_u if - local.get $0 + local.get $2 i32.load16_u - local.tee $3 + local.tee $1 i32.const 128 i32.lt_u if (result i32) + local.get $0 local.get $1 - local.get $3 i32.store8 - local.get $1 + local.get $0 i32.const 1 i32.add else - local.get $3 + local.get $1 i32.const 2048 i32.lt_u if (result i32) + local.get $0 local.get $1 - local.get $3 i32.const 6 i32.shr_u i32.const 192 i32.or - local.get $3 + local.get $1 i32.const 63 i32.and i32.const 128 @@ -125,51 +125,51 @@ i32.shl i32.or i32.store16 - local.get $1 + local.get $0 i32.const 2 i32.add else - local.get $4 - local.get $0 + local.get $3 + local.get $2 i32.const 2 i32.add i32.gt_u i32.const 0 - local.get $3 + local.get $1 i32.const 64512 i32.and i32.const 55296 i32.eq select if - local.get $0 + local.get $2 i32.load16_u offset=2 - local.tee $5 + local.tee $4 i32.const 64512 i32.and i32.const 56320 i32.eq if + local.get $0 local.get $1 - local.get $3 i32.const 1023 i32.and i32.const 10 i32.shl i32.const 65536 i32.add - local.get $5 + local.get $4 i32.const 1023 i32.and i32.or - local.tee $3 + local.tee $1 i32.const 63 i32.and i32.const 128 i32.or i32.const 24 i32.shl - local.get $3 + local.get $1 i32.const 6 i32.shr_u i32.const 63 @@ -179,7 +179,7 @@ i32.const 16 i32.shl i32.or - local.get $3 + local.get $1 i32.const 12 i32.shr_u i32.const 63 @@ -189,31 +189,31 @@ i32.const 8 i32.shl i32.or - local.get $3 + local.get $1 i32.const 18 i32.shr_u i32.const 240 i32.or i32.or i32.store - local.get $1 - i32.const 4 - i32.add - local.set $1 local.get $0 i32.const 4 i32.add local.set $0 + local.get $2 + i32.const 4 + i32.add + local.set $2 br $while-continue|0 end end + local.get $0 local.get $1 - local.get $3 i32.const 12 i32.shr_u i32.const 224 i32.or - local.get $3 + local.get $1 i32.const 6 i32.shr_u i32.const 63 @@ -224,28 +224,28 @@ i32.shl i32.or i32.store16 + local.get $0 local.get $1 - local.get $3 i32.const 63 i32.and i32.const 128 i32.or i32.store8 offset=2 - local.get $1 + local.get $0 i32.const 3 i32.add end end - local.set $1 - local.get $0 + local.set $0 + local.get $2 i32.const 2 i32.add - local.set $0 + local.set $2 br $while-continue|0 end end - local.get $1 - local.get $2 + local.get $0 + i32.const 23 i32.sub ) (func $~lib/util/number/decimalCount32 (param $0 i32) (result i32) @@ -290,6 +290,110 @@ i32.lt_u select ) + (func $~lib/wasi/index/abort + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + i32.const 5 + local.set $2 + i32.const 1399 + local.set $1 + i32.const 0 + i32.const 12 + i32.store + i32.const 12 + i64.const 9071471065260641 + i64.store + i32.const 19 + i32.const 544106784 + i32.store + i32.const 1052 + i32.load + i32.const 1 + i32.shr_u + call $~lib/string/String.UTF8.encodeUnsafe + i32.const 23 + i32.add + local.tee $0 + i32.const 40 + i32.store8 + i32.const 1399 + call $~lib/util/number/decimalCount32 + local.tee $3 + local.get $0 + i32.const 1 + i32.add + i32.add + local.set $0 + loop $do-continue|0 + local.get $0 + i32.const 1 + i32.sub + local.tee $0 + local.get $1 + i32.const 10 + i32.rem_u + i32.const 48 + i32.add + i32.store8 + local.get $1 + i32.const 10 + i32.div_u + local.tee $1 + br_if $do-continue|0 + end + local.get $0 + local.get $3 + i32.add + local.tee $0 + i32.const 58 + i32.store8 + i32.const 5 + call $~lib/util/number/decimalCount32 + local.tee $1 + local.get $0 + i32.const 1 + i32.add + i32.add + local.set $0 + loop $do-continue|1 + local.get $0 + i32.const 1 + i32.sub + local.tee $0 + local.get $2 + i32.const 10 + i32.rem_u + i32.const 48 + i32.add + i32.store8 + local.get $2 + i32.const 10 + i32.div_u + local.tee $2 + br_if $do-continue|1 + end + local.get $0 + local.get $1 + i32.add + local.tee $0 + i32.const 2601 + i32.store16 + i32.const 4 + local.get $0 + i32.const 10 + i32.sub + i32.store + i32.const 2 + i32.const 0 + i32.const 1 + i32.const 8 + call $~lib/bindings/wasi_snapshot_preview1/fd_write + drop + i32.const 255 + call $~lib/bindings/wasi_snapshot_preview1/proc_exit + ) (func $~lib/math/NativeMath.random (result f64) (local $0 i64) (local $1 i64) @@ -351,10 +455,6 @@ select i32.eqz if - i32.const 0 - i32.const 1056 - i32.const 1399 - i32.const 5 call $~lib/wasi/index/abort unreachable end @@ -396,157 +496,4 @@ (func $~start nop ) - (func $~lib/wasi/index/abort (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 1084 - i32.lt_s - if - i32.const 17488 - i32.const 17536 - i32.const 1 - i32.const 1 - call $~lib/wasi/index/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - i32.const 0 - i32.const 12 - i32.store - i32.const 12 - i64.const 9071471065260641 - i64.store - local.get $0 - if (result i32) - 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 19 - call $~lib/string/String.UTF8.encodeUnsafe - i32.const 19 - i32.add - else - i32.const 19 - end - local.tee $4 - i32.const 544106784 - i32.store - local.get $4 - i32.const 4 - i32.add - local.set $4 - local.get $1 - if - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $1 - local.get $1 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 1 - i32.shr_u - local.get $4 - call $~lib/string/String.UTF8.encodeUnsafe - local.get $4 - i32.add - local.set $4 - end - local.get $4 - i32.const 40 - i32.store8 - local.get $2 - call $~lib/util/number/decimalCount32 - local.tee $0 - local.get $4 - i32.const 1 - i32.add - i32.add - local.set $4 - loop $do-continue|0 - local.get $4 - i32.const 1 - i32.sub - local.tee $4 - local.get $2 - i32.const 10 - i32.rem_u - i32.const 48 - i32.add - i32.store8 - local.get $2 - i32.const 10 - i32.div_u - local.tee $2 - br_if $do-continue|0 - end - local.get $0 - local.get $4 - i32.add - local.tee $0 - i32.const 58 - i32.store8 - local.get $3 - call $~lib/util/number/decimalCount32 - local.tee $1 - local.get $0 - i32.const 1 - i32.add - i32.add - local.set $4 - loop $do-continue|1 - local.get $4 - i32.const 1 - i32.sub - local.tee $4 - local.get $3 - i32.const 10 - i32.rem_u - i32.const 48 - i32.add - i32.store8 - local.get $3 - i32.const 10 - i32.div_u - local.tee $3 - br_if $do-continue|1 - end - local.get $1 - local.get $4 - i32.add - local.tee $0 - i32.const 2601 - i32.store16 - i32.const 4 - local.get $0 - i32.const 10 - i32.sub - i32.store - i32.const 2 - i32.const 0 - i32.const 1 - i32.const 8 - call $~lib/bindings/wasi_snapshot_preview1/fd_write - drop - i32.const 255 - call $~lib/bindings/wasi_snapshot_preview1/proc_exit - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - ) ) diff --git a/tests/compiler/wasi/seed.untouched.wat b/tests/compiler/wasi/seed.untouched.wat index 7336d440af..31186106c4 100644 --- a/tests/compiler/wasi/seed.untouched.wat +++ b/tests/compiler/wasi/seed.untouched.wat @@ -1,9 +1,9 @@ (module (type $i32_=>_i32 (func (param i32) (result i32))) (type $none_=>_f64 (func (result f64))) - (type $none_=>_none (func)) (type $i32_i32_=>_none (func (param i32 i32))) (type $i32_i32_i32_i32_=>_i32 (func (param i32 i32 i32 i32) (result i32))) + (type $none_=>_none (func)) (type $i32_=>_none (func (param i32))) (type $i64_=>_none (func (param i64))) (type $i32_i32_i32_i32_=>_none (func (param i32 i32 i32 i32))) @@ -408,144 +408,12 @@ local.get $1 i32.store offset=4 ) - (func $~lib/math/NativeMath.seedRandom (param $0 i64) - i32.const 1 - global.set $~lib/math/random_seeded - local.get $0 - call $~lib/math/murmurHash3 - global.set $~lib/math/random_state0_64 - global.get $~lib/math/random_state0_64 - i64.const -1 - i64.xor - call $~lib/math/murmurHash3 - global.set $~lib/math/random_state1_64 - local.get $0 - i32.wrap_i64 - call $~lib/math/splitMix32 - global.set $~lib/math/random_state0_32 - global.get $~lib/math/random_state0_32 - call $~lib/math/splitMix32 - global.set $~lib/math/random_state1_32 - global.get $~lib/math/random_state0_64 - i64.const 0 - i64.ne - if (result i32) - global.get $~lib/math/random_state1_64 - i64.const 0 - i64.ne - else - i32.const 0 - end - if (result i32) - global.get $~lib/math/random_state0_32 - i32.const 0 - i32.ne - else - i32.const 0 - end - if (result i32) - global.get $~lib/math/random_state1_32 - i32.const 0 - i32.ne - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 32 - i32.const 1399 - i32.const 5 - call $~lib/wasi/index/abort - unreachable - end - ) - (func $~lib/math/NativeMath.random (result f64) - (local $0 i64) - (local $1 i64) - (local $2 i64) - global.get $~lib/math/random_seeded - i32.eqz - if - call $~lib/wasi/index/seed - i64.reinterpret_f64 - call $~lib/math/NativeMath.seedRandom - end - global.get $~lib/math/random_state0_64 - local.set $0 - global.get $~lib/math/random_state1_64 - local.set $1 - local.get $1 - global.set $~lib/math/random_state0_64 - local.get $0 - local.get $0 - i64.const 23 - i64.shl - i64.xor - local.set $0 - local.get $0 - local.get $0 - i64.const 17 - i64.shr_u - i64.xor - local.set $0 - local.get $0 - local.get $1 - i64.xor - local.set $0 - local.get $0 - local.get $1 - i64.const 26 - i64.shr_u - i64.xor - local.set $0 - local.get $0 - global.set $~lib/math/random_state1_64 - local.get $1 - i64.const 12 - i64.shr_u - i64.const 4607182418800017408 - i64.or - local.set $2 - local.get $2 - f64.reinterpret_i64 - f64.const 1 - f64.sub - ) - (func $wasi/seed/test (result f64) - call $~lib/math/NativeMath.random - ) - (func $~start - nop - ) - (func $~stack_check - global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__data_end - i32.lt_s - if - i32.const 16464 - i32.const 16512 - i32.const 1 - i32.const 1 - call $~lib/wasi/index/abort - unreachable - end - ) (func $~lib/wasi/index/abort (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 $9 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 12 call $~lib/bindings/wasi_snapshot_preview1/iovec#set:buf @@ -565,11 +433,6 @@ local.get $4 local.get $0 local.get $0 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store - local.get $9 call $~lib/string/String#get:length local.get $4 i32.const 0 @@ -591,11 +454,6 @@ local.get $4 local.get $1 local.get $1 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store - local.get $9 call $~lib/string/String#get:length local.get $4 i32.const 0 @@ -705,9 +563,115 @@ drop i32.const 255 call $~lib/bindings/wasi_snapshot_preview1/proc_exit - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer + ) + (func $~lib/math/NativeMath.seedRandom (param $0 i64) + i32.const 1 + global.set $~lib/math/random_seeded + local.get $0 + call $~lib/math/murmurHash3 + global.set $~lib/math/random_state0_64 + global.get $~lib/math/random_state0_64 + i64.const -1 + i64.xor + call $~lib/math/murmurHash3 + global.set $~lib/math/random_state1_64 + local.get $0 + i32.wrap_i64 + call $~lib/math/splitMix32 + global.set $~lib/math/random_state0_32 + global.get $~lib/math/random_state0_32 + call $~lib/math/splitMix32 + global.set $~lib/math/random_state1_32 + global.get $~lib/math/random_state0_64 + i64.const 0 + i64.ne + if (result i32) + global.get $~lib/math/random_state1_64 + i64.const 0 + i64.ne + else + i32.const 0 + end + if (result i32) + global.get $~lib/math/random_state0_32 + i32.const 0 + i32.ne + else + i32.const 0 + end + if (result i32) + global.get $~lib/math/random_state1_32 + i32.const 0 + i32.ne + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1399 + i32.const 5 + call $~lib/wasi/index/abort + unreachable + end + ) + (func $~lib/math/NativeMath.random (result f64) + (local $0 i64) + (local $1 i64) + (local $2 i64) + global.get $~lib/math/random_seeded + i32.eqz + if + call $~lib/wasi/index/seed + i64.reinterpret_f64 + call $~lib/math/NativeMath.seedRandom + end + global.get $~lib/math/random_state0_64 + local.set $0 + global.get $~lib/math/random_state1_64 + local.set $1 + local.get $1 + global.set $~lib/math/random_state0_64 + local.get $0 + local.get $0 + i64.const 23 + i64.shl + i64.xor + local.set $0 + local.get $0 + local.get $0 + i64.const 17 + i64.shr_u + i64.xor + local.set $0 + local.get $0 + local.get $1 + i64.xor + local.set $0 + local.get $0 + local.get $1 + i64.const 26 + i64.shr_u + i64.xor + local.set $0 + local.get $0 + global.set $~lib/math/random_state1_64 + local.get $1 + i64.const 12 + i64.shr_u + i64.const 4607182418800017408 + i64.or + local.set $2 + local.get $2 + f64.reinterpret_i64 + f64.const 1 + f64.sub + ) + (func $wasi/seed/test (result f64) + call $~lib/math/NativeMath.random + ) + (func $~start + nop ) ) diff --git a/tests/compiler/wasi/trace.optimized.wat b/tests/compiler/wasi/trace.optimized.wat index b3455328b9..54ca8ba739 100644 --- a/tests/compiler/wasi/trace.optimized.wat +++ b/tests/compiler/wasi/trace.optimized.wat @@ -1,6 +1,6 @@ (module - (type $none_=>_none (func)) (type $i32_i32_i32_=>_none (func (param i32 i32 i32))) + (type $none_=>_none (func)) (type $i32_i32_=>_none (func (param i32 i32))) (type $i32_i32_=>_i32 (func (param i32 i32) (result i32))) (type $i32_i32_i32_=>_i32 (func (param i32 i32 i32) (result i32))) @@ -248,6 +248,131 @@ i32.lt_u select ) + (func $~lib/wasi/index/abort (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) + (local $4 i32) + i32.const 0 + i32.const 12 + i32.store + i32.const 12 + i64.const 9071471065260641 + i64.store + local.get $0 + if (result i32) + local.get $0 + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u + i32.const 19 + call $~lib/string/String.UTF8.encodeUnsafe + i32.const 19 + i32.add + else + i32.const 19 + end + local.tee $4 + i32.const 544106784 + i32.store + local.get $4 + i32.const 4 + i32.add + local.set $4 + local.get $1 + if + local.get $1 + local.get $1 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u + local.get $4 + call $~lib/string/String.UTF8.encodeUnsafe + local.get $4 + i32.add + local.set $4 + end + local.get $4 + i32.const 40 + i32.store8 + local.get $2 + call $~lib/util/number/decimalCount32 + local.tee $0 + local.get $4 + i32.const 1 + i32.add + i32.add + local.set $4 + loop $do-continue|0 + local.get $4 + i32.const 1 + i32.sub + local.tee $4 + local.get $2 + i32.const 10 + i32.rem_u + i32.const 48 + i32.add + i32.store8 + local.get $2 + i32.const 10 + i32.div_u + local.tee $2 + br_if $do-continue|0 + end + local.get $0 + local.get $4 + i32.add + local.tee $0 + i32.const 58 + i32.store8 + local.get $3 + call $~lib/util/number/decimalCount32 + local.tee $1 + local.get $0 + i32.const 1 + i32.add + i32.add + local.set $4 + loop $do-continue|1 + local.get $4 + i32.const 1 + i32.sub + local.tee $4 + local.get $3 + i32.const 10 + i32.rem_u + i32.const 48 + i32.add + i32.store8 + local.get $3 + i32.const 10 + i32.div_u + local.tee $3 + br_if $do-continue|1 + end + local.get $1 + local.get $4 + i32.add + local.tee $0 + i32.const 2601 + i32.store16 + i32.const 4 + local.get $0 + i32.const 10 + i32.sub + i32.store + i32.const 2 + i32.const 0 + i32.const 1 + i32.const 8 + call $~lib/bindings/wasi_snapshot_preview1/fd_write + drop + i32.const 255 + call $~lib/bindings/wasi_snapshot_preview1/proc_exit + ) (func $~lib/rt/tlsf/removeBlock (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) @@ -2376,228 +2501,11 @@ local.get $1 call $~lib/util/number/dtoa_core ) - (func $~start - global.get $~started - if - return - end - i32.const 1 - global.set $~started - 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 - i32.const 1056 - i32.store - i32.const 0 - f64.const 0 - f64.const 0 - f64.const 0 - f64.const 0 - f64.const 0 - call $~lib/wasi/index/trace - global.get $~lib/memory/__stack_pointer - i32.const 1056 - i32.store - i32.const 1 - f64.const 1.5 - f64.const 0 - f64.const 0 - f64.const 0 - f64.const 0 - call $~lib/wasi/index/trace - global.get $~lib/memory/__stack_pointer - i32.const 1056 - i32.store - i32.const 5 - f64.const -2.00001 - f64.const 3 - f64.const nan:0x8000000000000 - f64.const inf - f64.const -inf - call $~lib/wasi/index/trace - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 2128 - i32.lt_s - if - i32.const 18544 - i32.const 18592 - i32.const 1 - i32.const 1 - call $~lib/wasi/index/abort - unreachable - end - ) - (func $~lib/wasi/index/abort (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 - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - i32.const 0 - i32.const 12 - i32.store - i32.const 12 - i64.const 9071471065260641 - i64.store - local.get $0 - if (result i32) - 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 19 - call $~lib/string/String.UTF8.encodeUnsafe - i32.const 19 - i32.add - else - i32.const 19 - end - local.tee $4 - i32.const 544106784 - i32.store - local.get $4 - i32.const 4 - i32.add - local.set $4 - local.get $1 - if - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $1 - local.get $1 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 1 - i32.shr_u - local.get $4 - call $~lib/string/String.UTF8.encodeUnsafe - local.get $4 - i32.add - local.set $4 - end - local.get $4 - i32.const 40 - i32.store8 - local.get $2 - call $~lib/util/number/decimalCount32 - local.tee $0 - local.get $4 - i32.const 1 - i32.add - i32.add - local.set $4 - loop $do-continue|0 - local.get $4 - i32.const 1 - i32.sub - local.tee $4 - local.get $2 - i32.const 10 - i32.rem_u - i32.const 48 - i32.add - i32.store8 - local.get $2 - i32.const 10 - i32.div_u - local.tee $2 - br_if $do-continue|0 - end - local.get $0 - local.get $4 - i32.add - local.tee $0 - i32.const 58 - i32.store8 - local.get $3 - call $~lib/util/number/decimalCount32 - local.tee $1 - local.get $0 - i32.const 1 - i32.add - i32.add - local.set $4 - loop $do-continue|1 - local.get $4 - i32.const 1 - i32.sub - local.tee $4 - local.get $3 - i32.const 10 - i32.rem_u - i32.const 48 - i32.add - i32.store8 - local.get $3 - i32.const 10 - i32.div_u - local.tee $3 - br_if $do-continue|1 - end - local.get $1 - local.get $4 - i32.add - local.tee $0 - i32.const 2601 - i32.store16 - i32.const 4 - local.get $0 - i32.const 10 - i32.sub - i32.store - i32.const 2 - i32.const 0 - i32.const 1 - i32.const 8 - call $~lib/bindings/wasi_snapshot_preview1/fd_write - drop - i32.const 255 - call $~lib/bindings/wasi_snapshot_preview1/proc_exit - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - ) (func $~lib/wasi/index/trace (param $0 i32) (param $1 f64) (param $2 f64) (param $3 f64) (param $4 f64) (param $5 f64) (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 - call $~stack_check - 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 local.set $6 i32.const 1052 @@ -2713,9 +2621,6 @@ local.get $8 call $~lib/bindings/wasi_snapshot_preview1/fd_write drop - global.get $~lib/memory/__stack_pointer - i32.const 1056 - i32.store local.get $7 i32.const 1056 i32.const 1052 @@ -2904,6 +2809,62 @@ local.get $0 call $~lib/rt/tlsf/insertBlock end + ) + (func $~start + global.get $~started + if + return + 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 2128 + i32.lt_s + if + i32.const 18544 + i32.const 18592 + i32.const 1 + i32.const 1 + call $~lib/wasi/index/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 0 + f64.const 0 + f64.const 0 + f64.const 0 + f64.const 0 + f64.const 0 + call $~lib/wasi/index/trace + global.get $~lib/memory/__stack_pointer + i32.const 1056 + i32.store + i32.const 1 + f64.const 1.5 + f64.const 0 + f64.const 0 + f64.const 0 + f64.const 0 + call $~lib/wasi/index/trace + global.get $~lib/memory/__stack_pointer + i32.const 1056 + i32.store + i32.const 5 + f64.const -2.00001 + f64.const 3 + f64.const nan:0x8000000000000 + f64.const inf + f64.const -inf + call $~lib/wasi/index/trace global.get $~lib/memory/__stack_pointer i32.const 4 i32.add diff --git a/tests/compiler/wasi/trace.untouched.wat b/tests/compiler/wasi/trace.untouched.wat index 72eafc4580..1163603473 100644 --- a/tests/compiler/wasi/trace.untouched.wat +++ b/tests/compiler/wasi/trace.untouched.wat @@ -435,6 +435,162 @@ local.get $1 i32.store offset=4 ) + (func $~lib/wasi/index/abort (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) + i32.const 0 + i32.const 12 + call $~lib/bindings/wasi_snapshot_preview1/iovec#set:buf + i32.const 12 + local.set $4 + local.get $4 + i64.const 9071471065260641 + i64.store + local.get $4 + i32.const 7 + i32.add + local.set $4 + local.get $0 + i32.const 0 + i32.ne + if + local.get $4 + local.get $0 + local.get $0 + call $~lib/string/String#get:length + local.get $4 + i32.const 0 + call $~lib/string/String.UTF8.encodeUnsafe + i32.add + local.set $4 + end + local.get $4 + i32.const 544106784 + i32.store + local.get $4 + i32.const 4 + i32.add + local.set $4 + local.get $1 + i32.const 0 + i32.ne + if + local.get $4 + local.get $1 + local.get $1 + call $~lib/string/String#get:length + local.get $4 + i32.const 0 + call $~lib/string/String.UTF8.encodeUnsafe + i32.add + local.set $4 + end + local.get $4 + local.tee $5 + i32.const 1 + i32.add + local.set $4 + local.get $5 + i32.const 40 + i32.store8 + local.get $2 + call $~lib/util/number/decimalCount32 + local.set $6 + local.get $4 + local.get $6 + i32.add + local.set $4 + loop $do-continue|0 + local.get $2 + i32.const 10 + i32.div_u + local.set $5 + local.get $4 + i32.const 1 + i32.sub + local.tee $4 + i32.const 48 + local.get $2 + i32.const 10 + i32.rem_u + i32.add + i32.store8 + local.get $5 + local.set $2 + local.get $2 + local.set $7 + local.get $7 + br_if $do-continue|0 + end + local.get $4 + local.get $6 + i32.add + local.set $4 + local.get $4 + local.tee $7 + i32.const 1 + i32.add + local.set $4 + local.get $7 + i32.const 58 + i32.store8 + local.get $3 + call $~lib/util/number/decimalCount32 + local.set $6 + local.get $4 + local.get $6 + i32.add + local.set $4 + loop $do-continue|1 + local.get $3 + i32.const 10 + i32.div_u + local.set $7 + local.get $4 + i32.const 1 + i32.sub + local.tee $4 + i32.const 48 + local.get $3 + i32.const 10 + i32.rem_u + i32.add + i32.store8 + local.get $7 + local.set $3 + local.get $3 + local.set $8 + local.get $8 + br_if $do-continue|1 + end + local.get $4 + local.get $6 + i32.add + local.set $4 + local.get $4 + i32.const 2601 + i32.store16 + local.get $4 + i32.const 2 + i32.add + local.set $4 + i32.const 0 + local.get $4 + i32.const 12 + i32.sub + call $~lib/bindings/wasi_snapshot_preview1/iovec#set:buf_len + i32.const 2 + i32.const 0 + i32.const 1 + i32.const 8 + call $~lib/bindings/wasi_snapshot_preview1/fd_write + drop + i32.const 255 + call $~lib/bindings/wasi_snapshot_preview1/proc_exit + ) (func $~lib/rt/common/BLOCK#set:mmInfo (param $0 i32) (param $1 i32) local.get $0 local.get $1 @@ -4601,233 +4757,18 @@ call $~lib/rt/tlsf/checkUsedBlock call $~lib/rt/tlsf/freeBlock ) - (func $~start - global.get $~started - if - return - end - i32.const 1 - global.set $~started - call $start:wasi/trace - ) - (func $~stack_check - global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__data_end - i32.lt_s - if - i32.const 17920 - i32.const 17968 - i32.const 1 - i32.const 1 - call $~lib/wasi/index/abort - unreachable - end - ) - (func $~lib/wasi/index/abort (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 $9 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 12 - call $~lib/bindings/wasi_snapshot_preview1/iovec#set:buf - i32.const 12 - local.set $4 - local.get $4 - i64.const 9071471065260641 - i64.store - local.get $4 - i32.const 7 - i32.add - local.set $4 - local.get $0 - i32.const 0 - i32.ne - if - local.get $4 - local.get $0 - local.get $0 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store - local.get $9 - call $~lib/string/String#get:length - local.get $4 - i32.const 0 - call $~lib/string/String.UTF8.encodeUnsafe - i32.add - local.set $4 - end - local.get $4 - i32.const 544106784 - i32.store - local.get $4 - i32.const 4 - i32.add - local.set $4 - local.get $1 - i32.const 0 - i32.ne - if - local.get $4 - local.get $1 - local.get $1 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store - local.get $9 - call $~lib/string/String#get:length - local.get $4 - i32.const 0 - call $~lib/string/String.UTF8.encodeUnsafe - i32.add - local.set $4 - end - local.get $4 - local.tee $5 - i32.const 1 - i32.add - local.set $4 - local.get $5 - i32.const 40 - i32.store8 - local.get $2 - call $~lib/util/number/decimalCount32 - local.set $6 - local.get $4 - local.get $6 - i32.add - local.set $4 - loop $do-continue|0 - local.get $2 - i32.const 10 - i32.div_u - local.set $5 - local.get $4 - i32.const 1 - i32.sub - local.tee $4 - i32.const 48 - local.get $2 - i32.const 10 - i32.rem_u - i32.add - i32.store8 - local.get $5 - local.set $2 - local.get $2 - local.set $7 - local.get $7 - br_if $do-continue|0 - end - local.get $4 - local.get $6 - i32.add - local.set $4 - local.get $4 - local.tee $7 - i32.const 1 - i32.add - local.set $4 - local.get $7 - i32.const 58 - i32.store8 - local.get $3 - call $~lib/util/number/decimalCount32 - local.set $6 - local.get $4 - local.get $6 - i32.add - local.set $4 - loop $do-continue|1 - local.get $3 - i32.const 10 - i32.div_u - local.set $7 - local.get $4 - i32.const 1 - i32.sub - local.tee $4 - i32.const 48 - local.get $3 - i32.const 10 - i32.rem_u - i32.add - i32.store8 - local.get $7 - local.set $3 - local.get $3 - local.set $8 - local.get $8 - br_if $do-continue|1 - end - local.get $4 - local.get $6 - i32.add - local.set $4 - local.get $4 - i32.const 2601 - i32.store16 - local.get $4 - i32.const 2 - i32.add - local.set $4 - i32.const 0 - local.get $4 - i32.const 12 - i32.sub - call $~lib/bindings/wasi_snapshot_preview1/iovec#set:buf_len - i32.const 2 - i32.const 0 - i32.const 1 - i32.const 8 - call $~lib/bindings/wasi_snapshot_preview1/fd_write - drop - i32.const 255 - call $~lib/bindings/wasi_snapshot_preview1/proc_exit - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - ) (func $~lib/wasi/index/trace (param $0 i32) (param $1 i32) (param $2 f64) (param $3 f64) (param $4 f64) (param $5 f64) (param $6 f64) (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 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 8 i32.const 4 i32.add i32.const 1 i32.add local.get $0 - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store - local.get $12 i32.const 0 call $~lib/string/String.UTF8.byteLength local.tee $7 @@ -4868,11 +4809,6 @@ local.get $9 local.get $0 local.get $0 - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store - local.get $12 call $~lib/string/String#get:length local.get $11 i32.const 0 @@ -5018,10 +4954,28 @@ drop local.get $9 call $~lib/rt/tlsf/__free + ) + (func $~start + global.get $~started + if + return + end + i32.const 1 + global.set $~started + call $start:wasi/trace + ) + (func $~stack_check global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__data_end + i32.lt_s + if + i32.const 17920 + i32.const 17968 + i32.const 1 + i32.const 1 + call $~lib/wasi/index/abort + unreachable + end ) (func $start:wasi/trace (local $0 i32) From 7c3c73944fa37af175791ecdaae096b9b6cb610c Mon Sep 17 00:00:00 2001 From: dcode Date: Mon, 22 Feb 2021 15:57:52 +0100 Subject: [PATCH 3/3] matchTostack -> matchPattern --- src/passes/shadowstack.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/passes/shadowstack.ts b/src/passes/shadowstack.ts index a3baf9ee95..0b61d9365c 100644 --- a/src/passes/shadowstack.ts +++ b/src/passes/shadowstack.ts @@ -154,7 +154,7 @@ type SlotMap = Map; type TempMap = Map; /** Attempts to match the `__tostack(value)` pattern. Returns `value` if a match, otherwise `0`. */ -function matchTostack(module: Module, expr: ExpressionRef): ExpressionRef { +function matchPattern(module: Module, expr: ExpressionRef): ExpressionRef { if (_BinaryenExpressionGetId(expr) == ExpressionId.Call && module.readStringCached(_BinaryenCallGetTarget(expr)) == BuiltinNames.tostack) { assert(_BinaryenCallGetNumOperands(expr) == 1); return _BinaryenCallGetOperandAt(expr, 0); @@ -332,7 +332,7 @@ export class ShadowStackPass extends Pass { var numSlots = 0; for (let i = 0, k = operands.length; i < k; ++i) { let operand = operands[i]; - let match = matchTostack(module, operand); + let match = matchPattern(module, operand); if (!match) continue; if (!needsSlot(module, match)) { operands[i] = match; @@ -422,7 +422,7 @@ export class ShadowStackPass extends Pass { visitLocalSet(localSet: ExpressionRef): void { let module = this.module; let value = _BinaryenLocalSetGetValue(localSet); - let match = matchTostack(module, value); + let match = matchPattern(module, value); if (!match) return; if (!needsSlot(module, match)) { _BinaryenLocalSetSetValue(localSet, match);